星期四, 3月 30, 2017

[ Android] Android NDK (一) 基本介紹


安裝方式

然後要加入ndk path時如果遇到錯誤,
就在ndk的資料夾內建一個檔案"ndk-build"。
那就會過了。

在實作方面,
一開始在c檔裡要宣告android的格式,
這樣java檔才能透過jni取得c的function,

#include <jni.h>
JNIEXPORT jstring JNICALL
Java_com_example_ndkdemo_MainActivity_stringFromCJNI( JNIEnv* env, jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}

記得他的名字和activity和function name要填對,
不然也會讀取錯誤。

而 Android.mk就像之前寫那樣就行了,
把你要的c檔寫進去,再把他build成shared library。

之後在compile app時,ndk就會一起把library build出來,
並放到各個平台的資料夾內,
(如果沒指定要build哪個target的話)











然後在java檔內,要宣告去使用jni library,
一開始先宣告function name,

public native String stringFromCJNI();

然後宣告說要去load哪一個library,

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

最後直接使用就可以了,

tv.setText(stringFromCJNI());

出來的結果就會在text上印出library回傳回來的string。



SourceCode

Ref 1
Ref 2
Ref 3
Ref 4

沒有留言: