Android Studio 中写 C++ 代码
android studio创建C++项目_android studio native c++-CSDN博客 项目配置参考
【CMake】CMakeLists.txt的超傻瓜手把手教程(附实例源码)_【cmake】cmakelists.txt的超傻瓜手把手教程(附实例源码)-CSDN博客 CMakeLists.txt 讲解
补充:
1. target_link_libraries 链接操作
target_link_libraries 链接 jniLibs 中的库文件,jniLibs 文件夹位置如图所示,里面可以把需要的架构库进行添加
2. find_library 搜索指定的库文件,并将其链接到目标文件中,示例如下
3. so 库体积优化NDK五部宝典(五)NDK 开发以及 so 库体积优化总结与学习笔记(深度干货,值得收藏) - 掘金
4. build.gradle 配置 CMakeLists.txt 路径
5. build.gradle 配置 Cmake 编译选项
上述示例主要包括以下内容:
cppFlags
:设置C++编译选项,这里指定使用C++11标准,并将符号隐藏。cFlags
:设置C编译选项,这里也将符号隐藏。abiFilters
:指定要构建的CPU架构,这里仅构建armeabi-v7a架构,如果extendAbiFilters为true,则额外构建x86、arm64-v8a和x86_64架构。arguments
:设置CMake的参数,这里指定使用的STL库为项目中配置的androidSTL变量。
6. JNI Native 函数的注册方式
静态注册:是指在编写Java代码时,就已经将Java方法与C/C++函数进行了绑定,即在Java代码中声明native方法时,就已经指定了对应的C/C++函数。
静态注册的优点是简单易用,缺点是不够灵活,只能在编写Java代码时进行绑定,无法动态添加或删除函数。
动态注册:是指在运行时通过JNI函数库动态地将Java方法和C/C++函数进行绑定。
动态注册的优点是灵活性高,可以在运行时动态地添加或删除函数,缺点是比较繁琐,需要在 C/C++ 代码中使用 RegisterNatives 编写注册函数,并在 Java 代码中调用注册函数进行函数的注册。