- 问题背景
- 解决方法
- 总结
阅读之前注意:
本文阅读建议用时:10min
本文阅读结构如下表:
项目 | 下属项目 | 测试用例数量 |
问题背景 | 无 | 0 |
解决方法 | 无 | 1 |
总结 | 无 | 0 |
问题背景
最近用Android Studio 4.0进行项目开发,需要编译so库。而Android Studio提供了2种方法来编译so库。一种是CMake,另一种是ndkBuild。
解决方法
1. Cmake方式
- Cmake方式很简单,直接新建项目的时候,选择Native-C++的形式就行了。如下图:
- 如果想要在已有项目中来编译so库。那么可以参考你创建新Native-C++项目的设置,为已有的项目添加Native-C++支持。
对比分析普通项目和Native-C++项目。可以知道区别在于2点,一个是src/mian/目录下添加了cpp文件夹,一个是build.gradle中添加了设置,具体如下图:
因此在已有项目中,为src/mian/目录下添加cpp文件夹,在build.gradle中添加cmake设置即可。
2. ndkBuild方式
ndkBuild支持2种形式,一种是在Android Studio中编译,另一种则是用终端命令行来编译。
- 在Android Studio中用ndkBuild编译so库,类似于上面的用cmake在已有项目中来编译so库。只需要2点设置即可,如下图:
添加jni目录可以直接在项目中添加,不需要再去finder中操作,如下图:
build.gradle需要我们手动添加设置,如下图: - 至于终端命令行来编译,则单独提取出jni文件夹,放在你的某个目录下,终端cd进jni目录,然后执行ndk-build即可:
总结
Android Studio编译so,有2种方式:cmake和ndkBuild。
cmake通过添加cpp文件夹和build.gradle设置来实现,ndkBuild则通过添加jni文件夹和build.gradle设置来实现。
2种方式也支持单独在文件夹中,用终端命令来编译生成so。
参考资料
- 在Android Studio中使用ndk-build
- Android mk详解
- android studio中编译c/c++文件成.so库 cmake方式
文章目录
- 阅读之前注意:
- 问题背景
- 解决方法
- 1. Cmake方式
- 2. ndkBuild方式
- 总结
- 参考资料