準備
Android SDK/NDK, CMakeと GNU Makeを用意
- CMake (https://cmake.org/download/)
Make for Windows (http://gnuwin32.sourceforge.net/packages/make.htm)
OpenCV (https://github.com/opencv/opencv)
OpenCV Contrib (https://github.com/opencv/opencv_contrib)
展開した OpenCVと OpenCV Contribのディレクトリは同じ階層に置く
ビルド作業用ディレクトリを作って移動
mkdir -p opencv/platforms/build_android_arm
cd opencv/platforms/build_android_arm
バッチファイル
build.bat
@echo off
cd /d %~dp0
SET ANDROID_ABI="armeabi-v7a"
SET API_LEVEL=24
SET NDK_ROOT="C:\Android\android-ndk-r12b"
SET WD=%~dp0
SET EXTRAMODULES=%WD%\..\..\..\opencv_contrib\modules
SET INSTALL_DIR=%WD%\android_opencv\opencv
cmake -G "Unix Makefiles" ^
-DCMAKE_TOOLCHAIN_FILE=..\android\android.toolchain.cmake ^
-DOPENCV_EXTRA_MODULES_PATH="%EXTRAMODULES%" ^
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON ^
-DWITH_CUDA=OFF ^
-DWITH_MATLAB=OFF ^
-DBUILD_ANDROID_EXAMPLES=OFF ^
-DBUILD_DOCS=OFF ^
-DBUILD_PERF_TESTS=OFF ^
-DBUILD_TESTS=OFF ^
-DANDROID_NDK="%NDK_ROOT%" ^
-DANDROID_NATIVE_API_LEVEL=%API_LEVEL% ^
-DANDROID_ABI="%ANDROID_ABI%" ^
..\.. ^
実行
コマンドプロンプトから
build.bat
make
20分くらいかかる
TODO
- static libraryは作れたけど shared libraryは作れないの?
- contribのライブラリ、 Java wrapperが無いのでそのままでは使えない..