2018年12月19日 星期三

Android NDK Compiler

在Android Studio的編譯環境可以將JNI (Java Native Interface)編譯成.so檔,並透過APP載入運行,不過有時需要特殊需求直接在Android平台上運行執行檔就要編譯成可執行檔就要透過NDK (Native Development Kit)來達成了。

一、創建需要編譯的資料夾


新增資料夾test (可自行定義),裡面再新增一個jni資料夾。



二、配置JNI編譯檔


在jni資料夾再建立主程式test資料夾、配置檔Android.mk和Application.mk。



1. Android.mk


語法是說明當前目錄有需要編譯的檔案都會進行編譯。



2. Application.mk


APP_ABI是設定執行環境,也可以設定成x86或arm64-v8a。

APP_PLATFORM是設定Android SDK的版本。



三、主程式test資料夾


裡面是存放Android.mk編譯配置檔和程式碼。



1. Android.mk


主要需要注意的有LOCAL_MODULE是編譯完輸出檔案的名稱,LOCAL_SRC_FILES是需要編譯的程式檔。



四、開始編譯程式


進到jni資料夾後,開啟cmd指令模式,並透過指令ndk-build.cmd (執行路徑依據Android Studio安裝路徑)編譯程式,編譯完成後會看到輸出程式在lib/armeabi-v7a/test之下。





五、運行編譯後的執行檔


使用adb push上傳到Android平台上。



需要使用chmod讓執行檔有執行的權限,然後再運行它,可以看到執行的結果。