NDK開發

1.準備工做

  首先要確保eclipse的c++開發環境是否搭建好,以後下載ndk,而且把ndk環境搭建好,詳情參見官網。 java

2.建立android工程

  新建一個android工程,以後右鍵工程選擇Android-Tools->add Native Support.輸入名稱後會生成jni目錄,裏面生成cpp文件和mk文件. android

 打開cpp文件,在include"jni.h"上會有錯誤提示,找不到該頭文件. c++

 右鍵工程,點擊properties 如圖: windows

展開 C/C++ General 選擇Paths and Symbols 在右側窗口中點擊add,在彈框中勾選add to all language 如圖所示: eclipse

以後點擊File System按鈕.選擇 ndk的目錄->platforms->android-x(x是數字)->arch-arm->usr->include 以後點擊Apply. 這個時候cpp文件中的錯誤便會消失.  spa

3.編寫java本地接口

   NativeInterface.java 代碼以下: code

public class NativeInterface {

	public native int getCode();
	
	public native String getMessage();
	
	static{
		System.loadLibrary("NDKtest");
	}
}

loadLibrary中的文件名參見jni目錄下.mk 文件的LOCAL_MODULE字段. orm

 4.實現本地方法

   在控制檯中進入工程根目錄中的bin目錄下的classes目錄中 ,執行以下命令 : 接口

  javah -d <項目目錄>\jni -jni com.example.ndktest.NativeInterface . ip

 命令能夠參考 javah --help.

 -d 是文件的輸出目錄 ,這裏指定爲根目錄下的jni文件夾, -jni 是生成jni樣式的頭文件 後面的參數是本地方法所在的類,類的路徑名要完整 ,以前已經在classes目錄下了 ,因此類的路徑是從com開始的.  執行完該命令,會在工程下jni目錄中產生com.example.ndktest.NativeInterface.h如圖所示:


打開.h文件如圖所示:

在cpp中添加頭文件的引用include<com.example.ndktest.NativeInterface.h>,將頭文件中的倆個方法拷貝到.cpp文件中 ,去掉方法名JNIEXPORT 和 JNICALL 以後,實現其具體方法,如圖:

5.在java類中調用方法

如圖:

 最後運行

6.ant腳本代替控制檯輸入

每一次修改java本地接口都要在控制檯中執行javah命令,比較麻煩.

還有另外一種方法,就是建立ant文件,右鍵工程點擊New->File 建立 .ant文件,我起的名字是GenCI,如圖:

,在eclipse菜單中選擇windows->show View 選擇ant ,將剛纔建立的ant文件添加到ant的視圖上 :

打開.ant文件 ,按alt+/  出現以下圖:

 

以後將代碼修改成以下:

project name是工程名 default設置爲 .ant文件名 ,而後target name設爲.ant 文件名.

executable是要執行的控制檯命令 這裏是javah. 命令執行路徑是 項目中bin目錄下的classes目錄.

剩下的是命令參數. ,${basedir}是工程根目錄.

以後雙擊antView上的ant文件會自動執行該腳本,生成.h文件.

最後運行項目.

Good Luck   

相關文章
相關標籤/搜索