1. 程式人生 > >windows下 ADT NDK開發環境配置

windows下 ADT NDK開發環境配置

前提:
下載好Ecplise ADT並配置好開發環境,不會配置環境可以參考這裡:
http://blog.csdn.net/danfengw/article/details/47111107
步驟:
1、下載ndk並解壓(這個比較多了,可以參考這個網址的地址(http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html),下載比較方便,這裡下載r9d是因為r9d版本比較穩定)地址:
2、建立Android Application專案:
工具欄:window——preference——Android——NDK,設定NDK路徑
這裡寫圖片描述
3、右擊專案:Android Tools ——》Add Native Support輸入,將要生成的so庫名稱,設定完成後點選專案refresh(重新整理或者F5),此生會生成jni目錄(這裡截圖不太準確,一般是跟專案名一樣的,我這裡是JNITests.so,JNITests在後面的loadLibrary中也將使用)


這裡寫圖片描述
4、在專案中建立java檔案,新增native方法
這裡寫圖片描述
5、新增c、c++的path
新增兩個路徑,分別是:
(1)D:\software\NDK\android-ndk-r9d-windows-x86_64\android-ndk-r9d\toolchains\mipsel-linux-android-4.8\prebuilt\windows-x86_64\lib\gcc\mipsel-linux-android\4.8\include
(2)D:\software\NDK\android-ndk-r9d-windows-x86_64\android-ndk-r9d\platforms\android-18\arch-arm\usr\include
這裡寫圖片描述

6、編譯產生.h檔案
參考下面這篇部落格的方案二進行配置
http://blog.csdn.net/danfengw/article/details/52944591
右擊專案——》preference——》resource——》location,複製路徑。

7、重新整理專案(右鍵專案,refresh)。可以看到產生的.h檔案,開啟.h檔案,複製選中程式碼。在C\C++檔案中進行具體實現。
這裡寫圖片描述

8、在jni目錄下new一個sourcefile的,建立.c檔案,這裡的程式碼是從下載的ndk中samples中的hello-jni這個demo中複製的程式碼(可以提前將這個hello-jni這個demo在ec中開啟)
這裡寫圖片描述


另外還需要將hello-jni中的jni目錄下的Application.mk複製到該工程的jni目錄下,或者你也可以自己建立一個Application.mk檔案。將Android.mk中LOCAL_SRC_FILES改為c檔案,如下:
這裡寫圖片描述
9、這時候你會發現專案會報錯,此時選擇c/c++再點選小錘子樣式的編譯器,就可以編譯通過了,如圖
這裡寫圖片描述
10、最後在本地使用so庫
loadlibrary的名字跟生成的so庫名字相同
這裡寫圖片描述
11、ndk-build +run application
這裡寫圖片描述
12、備註:
LOCAL_MODULE := JNITests(so檔名,不加lib)
LOCAL_SRC_FILES := JNITests.c(編譯和呼叫的檔案)
13、總結:
主要步驟
(1)本地編寫native方法
(2)javah命令編譯 .h檔案
(3)開啟.h檔案複製方法名,建立c或者cpp檔案,將方法名複製到c或cpp檔案中並進行具體實現。
(4)修改Android.mk進行ndk編譯之後生成so檔案,在本地方法中loadLibrary呼叫

static {
        System.loadLibrary("JNITests");
    }