• 问题背景
  • 解决方法
  • 总结

阅读之前注意:

本文阅读建议用时:10min
本文阅读结构如下表:

项目

下属项目

测试用例数量

问题背景


0

解决方法


1

总结


0

问题背景

最近用Android Studio 4.0进行项目开发,需要编译so库。而Android Studio提供了2种方法来编译so库。一种是CMake,另一种是ndkBuild。

解决方法

1. Cmake方式

  1. Cmake方式很简单,直接新建项目的时候,选择Native-C++的形式就行了。如下图:
  2. 如果想要在已有项目中来编译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中编译,另一种则是用终端命令行来编译。

  1. 在Android Studio中用ndkBuild编译so库,类似于上面的用cmake在已有项目中来编译so库。只需要2点设置即可,如下图:

    添加jni目录可以直接在项目中添加,不需要再去finder中操作,如下图:
    build.gradle需要我们手动添加设置,如下图:
  2. 至于终端命令行来编译,则单独提取出jni文件夹,放在你的某个目录下,终端cd进jni目录,然后执行ndk-build即可:

总结

Android Studio编译so,有2种方式:cmake和ndkBuild。

cmake通过添加cpp文件夹和build.gradle设置来实现,ndkBuild则通过添加jni文件夹和build.gradle设置来实现。

2种方式也支持单独在文件夹中,用终端命令来编译生成so。

参考资料

  1. 在Android Studio中使用ndk-build
  2. Android mk详解
  3. android studio中编译c/c++文件成.so库 cmake方式


文章目录

  • 阅读之前注意:
  • 问题背景
  • 解决方法
  • 1. Cmake方式
  • 2. ndkBuild方式
  • 总结
  • 参考资料