android studio創建native項目


 概念

什么是NDK,

Android NDK 就是一套工具集合,允許你使用C/C++語言來實現應用程序的部分功能

什么是JNI  

Java調用C/C++在Java語言里面本來就有的,並非Android自創的,即JNI。JNI就是Java調用C++的規范。當然,一般的Java程序使用的JNI標准可能和android不一樣,Android的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

                https://www.jianshu.com/p/0261e6cceb3e


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM