1. 開啟Eclipse, 點選Help -> Install New Software
2. 選取Juno - http://download.eclipse.org/releases/juno
3. 下拉選單, 把關於C/C++ 與CDT的全部都勾選, 然後按下Next
(有時候你的電腦並不支援一些選項, 這時候就取消選取)
4. 如果你選的選項都支援的話, Next的案件就會可以按, 接著按下Next
5. 按下同意之後選擇Finish
6. 開始安裝, 會跑出安裝畫面
7. 安裝完畢後, 需要重新啟動Eclipse, 這時可以按下視窗的Yes, 立刻重新啟動
8. 重啟後, 重新執行步驟1, 這次要選擇Android Developer Tools Update Site的選項
打開Developer Tools的項目, 勾選Android Native Development Tools的選項
並把Contact all update sites during install to find required software的選項取消勾選
(這邊有個bug, 就是勾起來會不能安裝, 如果你勾起來可以安裝的話, 建議是勾選)
,之後按下Next
9. 安裝過程中如果他問你要不要安裝這未簽章的內容, 請選擇OK
10. 和步驟7一樣, 安裝完後需要重新啟動Eclipse
11. 上官網https://developer.android.com/tools/sdk/ndk/index.html下載最新的NDK
選擇你對應的作業系統版本, 這邊以Win7 64-bit為例
12. 按下同意後開始下載
13. 下載完後解壓縮, 將解壓縮出來的檔案放在你找的到的地方
14. 接著開啟Eclipse, 點選Window -> Preferences
15. 展開Android, 選擇NDK, 然後按下右邊畫面的Browse, 選取剛解壓縮的資料夾
按下確定, 之後按下OK
16. 開啟一個新Android專案, 這邊以TestNDK命名為例
17. 之後在開啟的專案上點選滑鼠右鍵, 選擇Android Tools -> Add Native Support
18. 之後為你的Library命名, 這邊是隨意的, 為了鑑別, 以TestNDKLib為例, 然後按下Finish
19. 完成之後會發現你的專案下多了jni的資料夾, 而裡面會有一個mk檔和你剛命名好的.cpp檔案
20. 接著點開cpp檔案, 會發現include <jni.h>前面有個?, 代表找不到該連結
21. 在cpp檔案上按下滑鼠右鍵, 點選Properties進到下列畫面
展開C/C++ build, 點選Paths and Symbols
22. 接著按下右邊的Add, 然後點選Files system..., 選取你下載的NDK位置, 不過這一次
要點選到include那層, 按下確定, 範例路徑如下:
你放的資料夾\android-ndk-r10b\platforms\android-L\arch-arm\usr\include
23. 好了之後會發現路徑顯示在上面, 然後按下OK
24. 之後要要重新啟動Eclipse
25. 再回到之前的cpp檔, 如果前面的? 消失就代表連結對了, 否則就代表路徑沒設對
26. 之後回到MainActivity.java, 這邊要呼叫Library, 呼叫方法就如同下圖所示
static{
System.LoadLibrary("Library名稱");
}
27. 接著宣告要從.cpp檔案內呼叫的方法Method的名稱, 在宣告的前頭要加native
這時候不需要先把實體寫出來
28. 然後回到.cpp檔案, 一開始就要用
extern "C"
{
}
這方式, 然後把要寫的東西寫在大括號內
29. 接著要寫你的方法method, 範例如下圖,
JNIEXPORT jstring 這邊的寫法是代表有回傳值是string類型的, 在裡面資料型態前面都會加一個小寫的j
Java_com_example_testndk_MainActivity_StringFromJNI(JNIEnv *env, jobject thiz)
第一個Java是固定的, 然後com_example_testndk就是你package的路徑,
MainActivity是該路徑下的class名稱, StringFromJNI就是你剛宣告的方法名稱
整理一下就會發下他的規則是
Java_Package名稱_class名稱_方法名稱(JNIEnv *env, jobject thiz)
而回傳字串的方法就是return env->NewStringUTF("字串");
30. 前面步驟都完成後, 再回到MainActivity,java, 這邊就以宣告一個TextView的方式
來顯示剛的字串, 做完這步驟
31. 居著點選jni的資料夾, 按下滑鼠右鍵, 選擇New -> File
32. 然後創造一個檔案叫Application.mk, 然後按下OK
33. 點開剛創建的.mk檔, 在裡面加入APP_ABI := all
這是為了讓所有的處理器類型能使用, 也有可能不用這樣加入你的模擬器就能執行了
34. 然後按下執行, 就會看到字串從JNI的.cpp檔案回傳到主畫面