基本操作
Android C/C++原生开发官方目前的默认方式是使用cmake。ndk-build的方式虽然也不难,但是归根到底还是需要打包成lib供上层调用。Anndroid Studio 3.x自带的c++支持可以很好的支持开发萌新们迅速实现原生代码的集成和打包。这里简单展示一下一个船新的native library是怎样实现的。
首先,创建一个带c++支持的module,你也可以把任何一个普通的module变成c++ support,右键这个module即可看到选项。
指定cmakelist.txt文件,这个是cmake的编译配置,这个位置自己指定,as一般放在根目录下或者cpp文件夹。
编写一个native声明,例如这样
进入到src/main/java,使用javah生成native声明方法的头文件。你也可以直接手写这个头文件。
把头文件放入cmakelist指定的cpp文件夹中。
创建cmakelist指定的源文件,然后实现这个native方法。
编译,运行。
导入一个完整的c/c++项目
很多时候我们会需要把一个完整src目录结构的项目生成so库,这需要我们编写CMakeList.txt,在add_library中添加所有需要编译的源文件。手动添加毕竟很麻烦,这里有一个简单的办法:
使用CLion,添加src目录成为一个CLion的项目。CLion采用CMake编译,所以你你能够在工程目录下面找到一个可正确运行的CMakeList.txt,把里面的源文件列表原盘拷贝过来。
编写原生库的主文件
JVM与原生库的交互是通过JNI进行