概念
什么是NDK,
Android NDK 就是一套工具集合,允许你使用C/C++语言来实现应用程序的部分功能
什么是JNI
JNI可以实现Java代码与C/C++代码的交互
android studio 创建项目
1、File->New project 创建一个Native c++项目
2、配置NDK,如下,如果没有下载可以点击下载,完成后选择下载目录即可
3、配置CMake
4、项目的build.gradle文件中配置平台
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
abiFilters "armeabi-v7a","x86"
}
}
配置完成
编译到启动app的过程发生了什么
1、Gradle 调用外部构建脚本 CMakeLists.txt文件中的配置信息
。
2、CMake 按照构建脚本中的命令将 C++ 源文件 native-lib.cpp
编译到共享的对象库中,并命名为 libnative-lib.so
,Gradle 随后会将其打包到 APK 中。
3、运行时,应用的 MainActivity
会使用 System.loadLibrary()
加载原生库。现在,应用可以使用库的原生函数 stringFromJNI()
。
4、MainActivity.onCreate()
调用 stringFromJNI()
,这将返回“Hello from C++”并使用这些文字更新 TextView
。
查看apk中是否包含.so文件
1、选择 Build > Analyze APK。
2、从 app/build/outputs/apk/
目录中选择 APK 并点击 OK。
3、 APK 分析器窗口的 lib/<ABI>/
下看到 libnative-lib.so
参考链接 https://www.jianshu.com/p/87ce6f565d37
https://www.cnblogs.com/roger-jc/p/11144705.html