下面經過一個案例說明一下,利用工具jni快速開發步驟java
1.新建一個Android工程,命名爲"03_對int數組加1",以下:android
2. 在MainActivity.java中對addIntArray方法進行聲明,以下:c++
3. 生成com_himi_addarray_MainActivity.h頭文件,以下:windows
com_himi_addarray_MainActivity.h以下已經成功生成:數組
4. 利用快速工具,以下:函數
(1)選中"03_對int數組加1"工程,以下:工具
點擊Android Tools ----> Add Native Support,以下:spa
點擊Eclipse中的 窗口--->首選項,以下:3d
(2)接下來咱們再次以下界面:orm
這個時候咱們看看工程,發現:
同時打開Android.mk,以下:
上面默認生成的.cpp(C++)代碼,直接把擴展名.cpp改爲.c(addarray.cpp修改擴展名,同時Android.mk中也要修改),以下:
(3)打開addarray.c,咱們會發現頭文件jni.h沒有關聯好,顯示下劃線,怎麼辦?
選中"03_對int數組加1"工程,右擊"屬性",而後是"C/C++ General " --->"Paths and Symbols",以下:
以後jni.h頭文件的下劃線警告就會消失了。
(4)打開addarray.c文件,開始編寫其中的代碼:
jni函數聲明在頭文件Java_com_himi_addarray_MainActivity.h中,以下:
將上面的jni函數聲明覆制到addarray.c文件中(去掉JNIEXPORT 和 JNICALL,同時括號裏添加形參),以下:
(5)回到這個MainActivity,以下:
同時讓程序能夠在多個平臺運行,以下:
(6)佈署程序到模擬器上運行,以下:
2. 工具開發jni(詳細步驟)
(1)建立工程
(2)建立native方法
(3)配置ndk路徑
windows-->preference-->android-->ndk 找到ndk目錄 ,肯定
(4)右鍵工程-->android tools -->add native support 輸入動態庫的文件名稱,肯定
(5)把生成的.cpp文件改爲.c,而且在Android.mk中也要.cpp改爲.c
(6)右鍵工程-->properties-->c/c++ general -->paths and sysmbols -->includes -->點擊add按鈕-->點擊file system-->找到一個任何一個平臺的include目錄
如: I:\android-ndk-r9\platforms\android-9\arch-arm\usr\include
(7)c工程師實現功能,在jni方法中調用
(8)在源代碼中加動態庫:
static {
System.loadLibrary(".so文件名");
(9)調用native方法
(10)運行。
3. 總而言之,JNI開發流程能夠歸納爲下面的步驟:
(1)在java中聲明native方法
(2)編譯java源文件獲得class文件,而後經過javah命令導出JNI頭文件
(3)實現jni方法(java中native聲明的方法),使用C、C++實現
(4)編譯成so庫並在java中調用