在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. 新增三個指令,如下:
(備註:有$符號包住的參數代表為marcos,如$JDKPath$, $SourcepathEntry$等,可點選右邊的insert marco...查詢&插入)
參數詳細說明:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javah.html
2-3-2. ndk-build (產生各平台的***.so檔案)
編譯你的C/C++程式碼,同時會讀取Application.mk & Android.mk中的設定,來決定要為那些平台產生native libraries.(.so, .a)
本文章中將會新增3個External Tools指令,往後若是我們自定義的Java NDK class 或 C/C++檔案有變更時,都會需要再使用到這些指令。
2-1. 開啟Preference(command + , )
2-2. 前往Tools -> External Tools頁面
2-3. 新增三個指令,如下:
- javah (系統自動產生***.h檔案)
- ndk-build (產生各平台的***.so檔案)
- ndk-build clean (清除已產生的二進制碼(binaries))
(備註:有$符號包住的參數代表為marcos,如$JDKPath$, $SourcepathEntry$等,可點選右邊的insert marco...查詢&插入)
2-3-1. javah (系統自動產生***.h檔案)
javah會依據你所選的java程式碼檔案,自動生成NDK的C/C++所要使用的header file(.h檔),其中包括了參數的傳入與傳回,完全自動幫你產生好。
使用時只要複製貼上到C/C++程式碼中包你萬無一失!
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
2-3-3. ndk-build clean (清除已產生的二進制碼(binaries))
// 將路徑指到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
留言
張貼留言