1. NDK下载
2. NDK 环境配置
1) 设置NDK的路径到环境变量
打开/etc/profile文件,在文件尾部添加如下内容:
export NDK_HOME=/home/embedclub/android-ndk-r8
export PATH=$NDK_HOME:$PATH
2) 使环境变量生效
打开终端输入如下命令:
source /etc/profile
3. 基于NDK的OpenCV静态库编译
1) 下载基于linux OpenCV 源码。
2) 在OpenCV目录下新建文件夹android
3) 打开终端输入cd到刚才新建的android目录
4) 在开终端中输入export ANDROID_NDK=/home/embedclub/android-ndk-r8
5) 继续输入如下命令:
cmake-DCMAKE_TOOLCHAIN_FILE=path/to/the/android.toolchain.cmake ..
Cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON-DHAVE_EIGEN=1 -DHAVE_CAMV4L2=ON -DBUILD_TBB=ON -DWITH_TBB=ON -DHAVE_OPENMP=1 -DBUILD_EXA
MPLES=1-DANDROID_ABI="armeabi-v7a" -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake$@ ../..
(前提是保证系统安装了CMake工具)
6) 如果没有错误,继续在终端输入:make -j4, 开始编译
4. 动态库封装
1) 新建工程文件夹,并在在此目录下新建jni文件夹,用来防止源码和Android.mk以及Application.mk
2) 编辑完成源码和Android.mk和Application.mk文件后,打开终端cd到工程目录下后输入ndk-build命令
5. 注意事项
1) Android.mk文件如果依赖其它动态库或者静态库,必须在本项目之前加入他们的描述,如下红色部分为libCWDetectSDK动态库的声明
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := CWDetectSDK
LOCAL_SRC_FILES := $(LOCAL_PATH)/CWDetectLib/lib/libCWDetectSDK.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_CPPFLAGS := -frtti -fexceptions
LOCAL_MODULE := testSDK
LOCAL_MODULE_TAGS := option
LOCAL_SRC_FILES := \
main.cpp
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/CWDetectLib/include
LOCAL_LDLIBS += -lstdc++
LOCAL_SHARED_LIBRARIES := CWDetectSDK
include $(BUILD_EXECUTABLE)