NDK环境配置好的基础上移植DSST到安卓所需的改动并不多,主要还是编译的配置。
版权声明
原创文章,转载请说明出处:sheng-blog.cn
原文出处
博文结构:
移植环境
- android studio 2.2.3
- opencv4android 3.2.0
- 测试机:荣耀7(arm64-v8a)、台电X98 Air III(x86)
前提条件
顺利运行需要目标机器cpu架构是x86或x86_64的(直接使用SSE)或者arm64-v8a(原因上篇博文说过的)。自己的渣机还是armeabi-v7a的,跑不了,在室友清明去浪的前夜赶紧测试了一下他的手机和平板,正是我想要的!果断扣下平板留着后面测试啊哈哈!
啥?白天出去浪晚上回旅馆要拿平板看电影?
诶诶诶,一堆人晚上玩点别的多好,狼人杀啥的,还一个人看电影?
室友对曰:一堆人看电影最好~
我:……
我:要看你就还是拿手机看吧2333~
查看自己手机或平板的cpu架构方法:
adb shell
cat /proc/cpuinfo
如图为室友平板的信息,对于flag一栏,需有sse。
ARM架构的长这样(Features这一栏需有neon,当然这还不够,ARMv7还是32位机器,这个工程需要64位机器才能正常运行):
移植过程及所遇问题
首先在/app/src/main下新建一个include文件夹用于保存c头文件,将DSST的那几个头文件拷贝进来,而cpp文件则和native-lib.cpp放一块,即/app/src/main/cpp。然后在CMakeLists里加入头文件路径,并把其余cpp文件也编译添加到native-lib中来:
include_directories(src/main/include)
add_library(
native-lib