1. 程式人生 > >Android studio中NDK開發(一)——使用CMake構建NDKDemo

Android studio中NDK開發(一)——使用CMake構建NDKDemo

一、前言

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

 

如有錯誤,歡迎指正,虛心學習!