Android Native 开发 要点记录

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 文件夹位置如图所示,里面可以把需要的架构库进行添加

Android Native 开发 要点记录_第1张图片

2. find_library 搜索指定的库文件,并将其链接到目标文件中,示例如下

Android Native 开发 要点记录_第2张图片

3. so 库体积优化NDK五部宝典(五)NDK 开发以及 so 库体积优化总结与学习笔记(深度干货,值得收藏) - 掘金

4. build.gradle 配置 CMakeLists.txt 路径

Android Native 开发 要点记录_第3张图片

5. build.gradle 配置 Cmake 编译选项

Android Native 开发 要点记录_第4张图片

上述示例主要包括以下内容:

  • 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 代码中调用注册函数进行函数的注册。

你可能感兴趣的:(android,c++,cmake,jni)