青菜

首页 » 常识 » 常识 » AS上Cmake的搭建与使用以生成
TUhjnbcbe - 2021/3/30 13:10:00

最近研究使用多种平台的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

什么是NDK

NDK全名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用于编译;

参考网址:

1
查看完整版本: AS上Cmake的搭建与使用以生成