最近研究使用多种平台的USB通讯,这会回过头来用几个月前的东西,基本忘得差不多,一步步来,先总结下Cmake,后面想再整理JNI相关的内容,之后看是否整一篇USB相关的。
01
—
什么是Cmake
C/C++的编译文件在不同平台是不一样的。Linux下使用makefile文件编译,Windows下使用project文件编译。而CMake则是一个跨平台的编译工具,它并不会直接编译出对象,而是根据自定义的语言规则(CMakeLists.txt)生成对应makefile或project文件,然后再调用底层的编译。
谷歌从AndroidStudio2.2以上就添加了Cmake方式来编译NDK代码,相较之前复杂的NDK-BUILDE方式,Cmake则简单很多。
02
—
什么是NDKNDK全名NativeDevelopKit,andriod本地开发工具,是Google开发的一套方便开发者在Android平台上开发Native代码的工具。
使用NDK自带的工具,可快速对C/C++代码进行构建、编译和打包,最终生成动态/静态库供开发者使用,且不容易被反编译。
03
—
如何导入NDK与Cmake环境3.1在Setting的AndroidSDK中勾选以下配置。
3.2因为Cmake要用到NDK,所以AndroidNDKlocation需要指定本地NDK路径。04
—
如何在已有AS项目中导入Cmake4.1导入Cmake相关文件;路径可以自定义,这里选择的是"app/src/main/cpp/",其中CMakeLists.txt是Cmake的执行脚本,test-jni.c是Jni文件,用于编译生成so库;
4.2.app工程关联Cmake打开app目录下的build.gradle(见上图红框),添加以下语句,使AS工程关联上Cmake用于编译;
参考网址: