首頁 > 軟體

Android NDK入門開發範例

2019-11-28 06:32:52

目前網際網路上Android ndk開發的資料都比較陳舊,本人也是新學習的ndk,我從我的理解構建第一個NDK程式,希望對你有所幫助。注意,開始教學之前,先到http://jingyan.baidu.com/article/574c52193c80fb6c8c9dc153.html部署好NDK的開發環境!

1

首先新建一個專案,在佈局頁面新增一個按鈕即可,如下圖所示,圖中有兩個控制元件,一個是textview,另一個是button。



2

新建一個類,並寫一個native方法,我寫的方法是,public native int add(int a, int b);實現傳入的2個整形數位相加,這裡的native方法不需要實現


3

開啟本次專案的路徑,裡面有2個類,其中JNITest.java便是有native方法的類,下面需要先把這個java程式設計成class檔案然後再編譯成.h標頭檔案。


1

在CMD中依次輸入以下程式碼:

cd C:UsersAdministratorworkspaceJNITestsrc(切換到專案的src目錄下)

javac comliutawjnitestJNITest.java(編譯有native方法的java類)

javah com.liutaw.jnitest.JNITest(從class生成.h標頭檔案)



2

在專案的根目錄新建一個jni檔案夾,並把剛才javah生成的 com_liutaw_jnitest_JNITest.h檔案複製到jni目錄下


3

開啟com_liutaw_jnitest_JNITest.h,把定義的方法都改為實現,並把檔案名的字尾名改為.c,注意方法的引數要加上,以下是修改前後的對比圖。


4

在jni檔案夾下新建一個Android.mk檔案,輸入以下內容,注意更改成你自己的庫檔案名和原檔案名稱

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hellojni(庫檔案名)

LOCAL_SRC_FILES := com_liutaw_jnitest_JNITest.c(原檔案名稱)

include $(BUILD_SHARED_LIBRARY)

2個檔案完成之後應該是下面這張圖。



5

之後開啟Cygwin(windows沒有?請下載,linux等使用者自帶終端即可,這是模擬Linux執行環境用的),先切換到自己的專案目錄,再使用命令ndk-build一下,出現以下字幕,說明生成.so檔案(類似於windows的dll動態連結庫檔案)成功,也就是說,以後java程式碼可以呼叫自己寫的c方法了。


1

在JNITest類中寫一個靜態程式碼塊:

static {

     System.loadLibrary("hellojni");

}

hellojni是和剛才寫的Android.mk「LOCAL_MODULE    := hellojni」是一致的


2

在按鈕的監聽事件裡寫入自己的方法,我這裡寫的作用是,呼叫native程式碼之後把值顯示在TextView上面。


3

生成一下專案,我用的是真機偵錯,我們現在可以看效果了,點選按鈕之後數位4便顯示在了TextView上面。



IT145.com E-mail:sddin#qq.com