This article describes how to build Inference Engine for Android operating systems.
- CMake 3.13 or higher
- Android NDK (this guide has been validated with r20 release)
- Download and unpack Android NDK. Let's assume that
~/Downloads
is used as a working folder.
cd ~/Downloads
wget https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip
unzip android-ndk-r20-linux-x86_64.zip
mv android-ndk-r20 android-ndk
- Create a build folder:
mkdir build
- Change working directory to
build
and runcmake
to create makefiles. Then runmake
.
cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=~/Downloads/android-ndk/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=x86_64 \
-DANDROID_PLATFORM=21 \
-DANDROID_STL=c++_shared
make --jobs=$(nproc --all)
ANDROID_ABI
specifies target architecture:x86_64
for x64 buildarmeabi-v7a with NEON
for ARM with NEON supportarm64-v8a
for ARM 64 bits
ANDROID_PLATFORM
- Android API versionANDROID_STL
specifies that shared C++ runtime is used. Copy~/Downloads/android-ndk/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
from Android NDK along with built binaries
- To reduce the binaries size, use
strip
tool from NDK:
~/Downloads/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/x86_64-linux-android/bin/strip openvino/bin/intel64/Release/lib/*.so