BuildingForAndroid - akuporos/openvino GitHub Wiki
Build on Android* Systems
This section describes how to build Inference Engine for Android operating systems.
Table of content
Software Requirements
- CMake* 3.13 or higher
- Android NDK (this guide has been validated with r20 release)
Build Steps
- Download and unpack Android NDK: https://developer.android.com/ndk/downloads. 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
- Clone submodules
cd openvino
git submodule update --init --recursive
- 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 \
-DENABLE_OPENCV=OFF
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