JHDF5 on Android

Hello everyone. I am a new in the Android development, but I am work on the application which collect data from sensors and store them into the hdf5 files. Now i am stacked with one problem, that the single fully java library is the “nujan” which is quite old and not allow me stream data in the file, cause the 2d arrays which i want to store in the hdf5 files can be bigger then 65 MB (The maximum amount of heap size on Android OS) , I am look to the newer library but the JHDF require native precompiled library for android operating system, can anyone helps me with integrating c++ native code to compile it for android, i need to know how to do that, may be someone has experience with that. I am appreciate any help with that. Thanks in advance.


I am the author of H5CPP you may be interested in packet table example that has throughput in the range of underlying filesystem. The library is header only, has no other limitation than the underlying HDF5 CAPI, and for those limitations please consult the manual page. You find plenty of examples on my github page, or if you choose to install from debian or rpm packages in the /usr/ ??/ share/h5cpp directory.
Think of H5CPP as a shim, that integrates HDF5 CAPI for you. Keep in mind, as this is a header only library you still need a libhdf5.so installed on your android, and link against it.

As for general C++ programs compiling for android OS, you may want to ask on their forum? Nevertheless android at c/c++ level it is a linux distribution running on possible an ARM processor.

best of luck:

For this you want to use the Android NDK.

I have a blog entry which, in general terms, discusses the building of
libraries like libsodium and boost for the android.

The blog entry refers to a script I use for building for various

Maybe there are elements in the script for the two libraries which will
help to build HDF5? Android uses a CMake system, and as HDF5 uses a
CMake system, there may be compatibilities.

Maybe there might something useful in there?


1 Like