概念
什么是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