Android Java原生接口(JNI) 令 『Java』 同『C\C++』代碼相互調用. 之前係『MainActivity.java』声明『native』原生代碼接口.
static public native String stringFromJNI(); |
『native-lib.cpp』『C\C++』代碼, 它編譯共享庫『.so』檔
extern “C” JNIEXPORT jstring JNICALL
Java_net_bookcard_compass_MainActivity_stringFromJNI(JNIEnv* env,jobject this) { return env->NewStringUTF(“native-lib”) ; } |
缺點係只能『MainActivity.java』調用, 更佳方發係將原生代碼接口擺係單獨『Java Class』. 并声明為『static』, 可係任意位置調用『C\C++』代碼.
- 新建『Class』
『File』->『New』->『Java Class』 |
- 新『Java Class』填『java』
- 載入共享庫”geomanticcompass.so”
static {
System.loadLibrary(“geomanticcompass”); } |
- 声明『native』原生『static』代碼接口.
static public native String stringFromJNI(); |