Android studio中NDK開發(一)——使用CMake構建NDKDemo
阿新 • • 發佈:2018-12-29
一、前言
NDK可以支援使用C/C++來編寫Android程式,不但可以接入C/C++中優秀的庫資源,而且處理效率高,在音視訊方面有著廣泛的應用。本篇主要以CMake的方式來構建NDK,主要以最常規的方式建立一個NDKImportDemo,並對自動建立官方例子進行分析構建的過程以及CMakeLists.txt構建檔案的配置。
二、準備
1、檢查Android studio版本
Android studio 2.2以上才支援CMake構建,我的版本是3.2.1
2、檢查是否下載CMake、NDK
NDK:原生開發工具包,可以支援使用C/C++編寫Android應用
CMake:跨平臺的獨立自動化構建工具,輔助構建原生庫
LLDB:可以用來除錯C/C++程式碼
3、配置NDK(路徑為:“你的SDK”/ndk-bundle)
也可以通過https://developer.android.google.cn/ndk/downloads/下載自己電腦平臺對應的NDK壓縮包,解壓到SDK路徑下,再通過第三步將 ndk-bundle 配置進來。
三、建立
新建NDKImportDemo,記得把“include C++ support”勾選上,選擇“Next”下一步
Exceptions Support(-fexceptions):支援C++的異常處理
Runtime Type Information Support(-frtti):支援執行時到的型別資訊顯示
四、分析
調到 “Project” 檢視,重點關注下圖中的四個檔案:native-lib.cpp、build.gradle(app)、CMakeLists.txt、MainActivity
1、MainActivity
注意:這裡的native方法只是宣告,那麼實現在哪裡呢?看下面的native-lib.cpp檔案
2、native-lib.cpp
注意:這個方法名一定是固定的格式,方法裡面是具體的native方法的實現,通過C/C++來實現,因為這是cpp檔案,所以使用的是C++。
3、CMakeLists.txt
目前CMake的語法暫時瞭解這四個,其他的在以後的需要用到的時候再學。
注意:這只是構建好CMakeLists.txt檔案,還需要在app的build.gradle中配置CMakeLi.txt的路徑
4、buid.gradle
五、生成so庫
在以上檔案配置好後,Make一下project,進行編譯
編譯通過之後就會生成相應的so庫,在app/build/intermediates/cmake/debug/obj/${ANDROID_ABI}(相應的架構)目錄下就可以看到相應的CPU架構對應的so庫了
最後,點選“Run”執行,就可以看到自動生成的Demo效果了
六、參考
https://blog.csdn.net/Hi_Red_Beetle/article/details/79052169
https://developer.android.google.cn/studio/projects/add-native-code