在Mac的Android Studio 2.1 中使用Android NDK(Native Development Kit) Part 2: NDK 相關 External Tools設置

Part 2:NDK 相關 External Tools設置
本文章中將會新增3個External Tools指令,往後若是我們自定義的Java NDK class 或 C/C++檔案有變更時,都會需要再使用到這些指令。




2-1. 開啟Preference(command + , )

2-2. 前往Tools -> External Tools頁面

2-3. 新增三個指令,如下:
  1. javah (系統自動產生***.h檔案)
  2. ndk-build (產生各平台的***.so檔案)
  3. ndk-build clean (清除已產生的二進制碼(binaries))
點選下方的" + "(加號)逐個新增指令,下面將敘述詳細步驟。
(備註:有$符號包住的參數代表為marcos,如$JDKPath$, $SourcepathEntry$等,可點選右邊的insert marco...查詢&插入)


2-3-1. javah (系統自動產生***.h檔案)
javah會依據你所選的java程式碼檔案,自動生成NDK的C/C++所要使用的header file(.h檔),其中包括了參數的傳入與傳回,完全自動幫你產生好。
使用時只要複製貼上到C/C++程式碼中包你萬無一失!


參數詳細說明:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javah.html
    // 設定要執行的javah路徑,在jdk/bin之中。
    Program: $JDKPath$/bin/javah
    // 設定輸出為jni的prototypes,並輸出至專案中的jni資料夾。
    Parameters: -v -jni -d $ModuleFileDir$/src/main/jni $FileClass$
    // 作用的路徑
    Working_directory: $SourcepathEntry$

2-3-2. ndk-build (產生各平台的***.so檔案)
編譯你的C/C++程式碼,同時會讀取Application.mk & Android.mk中的設定,來決定要為那些平台產生native libraries.(.so, .a)

ndk-build參數詳細資料: https://developer.android.com/ndk/guides/ndk-build.html
    // 將路徑指到Part 1已解壓縮好的ndk路徑中的ndk-build
    Program: /Users/{your_user_name}/Library/Android/sdk/ndk-bundle/ndk-build
    Parameters: 
        NDK_PROJECT_PATH=$ModuleFileDir$/build/intermediates/ndk 
        // NDK library(.so檔)輸出路徑
        NDK_LIBS_OUT=$ModuleFileDir$/src/main/jniLibs 
        // 指定Application.mk位置(此範例放在/jni/Application.mk)
        NDK_APPLICATION_MK=$ModuleFileDir$/src/main/jni/Application.mk
        // 指定Android.mk位置(此範例放在/jni/Android.mk)
        APP_BUILD_SCRIPT=$ModuleFileDir$/src/main/jni/Android.mk
        // build並顯示指令
        V=1  
    // 作用的目錄
    Working_directory: $ProjectFileDir$

2-3-3. ndk-build clean (清除已產生的二進制碼(binaries))

    // 將路徑指到Part 1已解壓縮好的ndk路徑中的ndk-build
    Program: /Users/{your_user_name}/Library/Android/sdk/ndk-bundle/ndk-build
    // 清除已產生的二進制碼(binaries)
    Parameters: clean
    // 作用的目錄
    Working_directory: $ProjectFileDir$/app/src/main








留言

這個網誌中的熱門文章

電信帳單開立電子發票之中獎領取流程(以台灣大哥大為例)

Android Studio Logcat Color 顏色修改

在Mac的Android Studio 2.1 中使用Android NDK(Native Development Kit) Part 4: ndk-build以及如何在Android中呼叫C/C++ function