在我寫這篇文章的時候,Android Studio已經(jīng)是2.3版本了,已經(jīng)集成CMake 編譯工具,

用戶只需在 新建項(xiàng)目的時候,添加選項(xiàng)(Include C++ support),Android Studio就會自動

幫你部署好相應(yīng)的NDK環(huán)境。但我還是想嘗試使用 Android.mk 配置文件方式來實(shí)現(xiàn)NDK開發(fā),

了解其配置的原理,然后再使用 CMake 來部署,這樣能了解兩者間的區(qū)別。后續(xù)的文章就會寫

到用CMake來部署NDK環(huán)境。

 

     假設(shè)你已經(jīng)安裝好了 Android Studio 與NDK 環(huán)境。

建議將ndk-build所在目錄加入PATH環(huán)境變量,以便后續(xù)調(diào)試。

1、打開 File => Project Structure 如下:

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

如果選框中為空,說明你沒有配置好NDK環(huán)境。

 

2、copy 路徑, 然后打開如下 windows 系統(tǒng)下的環(huán)境變量

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

在 Path 變量里添加你的 NDK路徑,即上一步copy的內(nèi)容,記住在路徑前添加 ; 分號。

確定之后,就在Windows 命令窗口 輸入 ndk-build,得到如下圖,說明你配置成功了。

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

下面我們來新建一個Android項(xiàng)目,實(shí)現(xiàn)一個簡單的NDK方法。

1、創(chuàng)建一個NDKUtils.Java類, 新建一個 native 方法,

public native String invokeCmethod();

 

然后在該類 添加如下代碼,即載入庫的含義:

     static {

          System.loadLibrary("NDKUtils");//導(dǎo)入生成的鏈接庫文件

      }

 

2、點(diǎn)擊 菜單 Build =>Make Project,就會編譯項(xiàng)目,然后在

你的項(xiàng)目跟路徑 app\build\intermediates\classes\debug\com\magicing\eigenndk

可以看到 NDKUtils.class 文件(com\magicing\eigenndk 是包名,對應(yīng)你自己的包名)

 

3、進(jìn)入Android Studio命令行頁面:

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

如果你沒有這個選項(xiàng),則你從 View菜單欄里 Tool Windows => Terminal 調(diào)出該頁面。

 

輸入如下命令:

      cd app/src/main   // 進(jìn)入該路徑

      然后執(zhí)行下面編譯命令

      javah -d jni -classpath F:\AndroidSDK\platforms\android- 23\android.jar;..\..\build\intermediates\classes\debug com.magicing.ndktest2.NDKUtils

 

解釋(根據(jù)自身的情況來設(shè)置):

    F:\AndroidSDK\platforms\android-23\android.jar;   //是你的SDK路徑,

    ..\..\build\intermediates\classes\debug                  //相對路徑,都一樣

    com.magicing.ndktest2.NDKUtils                          // NDKUtils 的命名空間

 

4、當(dāng)上述的命令執(zhí)行成功后,在app/src/main 多了一個 jni 文件夾,里面

網(wǎng)友評論