您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)為Android SDK增加應(yīng)用的案例實現(xiàn)是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在開發(fā)Android開發(fā)應(yīng)用的過程中,通常有兩種方式:NDK和eclipse,或者直接在Android SDK增加。這里介紹如何在Android SDK環(huán)境中增加一個應(yīng)用程序。其中涉及到JNI,JAVA對JNI的調(diào)用,其中JNI代碼文件為C++。
第一步,建立JNI層代碼,注意,JNI代碼的路徑與JAVA的代碼路徑有很大的關(guān)系,一定要保持一致。
Android SDK在frameworks/base/core/jni目錄下建立JNI C++文件android_test.cpp,內(nèi)容如下:
#define LOG_TAG "FMC" #include "jni.h" #include "android_runtime/AndroidRuntime.h" #include <nativehelper/JNIHelp.h> #include "utils/Log.h" extern "C" { int test(void);//此函數(shù)可以來自c代碼或c庫 }; namespace android //注意名稱空間和JAVA調(diào)用JNI所有的路徑有緊密的關(guān)系,不能隨便取名稱空間。 //原作者這句話不對 //這只是c++的命名空間和JNI沒有關(guān)系,如果不用android namespace那么在 //AndroidRuntime.cpp里面也要聲明在android namespace外面。 { static jint android_test(JNIEnv *env, jobject clazz) { return test(); } static JNINativeMethod method_table[] = { { "my_test", "()I", (void*)android_test}, //***個參數(shù)為字串,這是JAVA層看到的函數(shù)名; //第二個參數(shù)為該函數(shù)的形參說明, //JAVA代碼就是靠這個參數(shù)知道所調(diào)用函數(shù)的形參情況; //第三個參數(shù)為JNI代碼中實際調(diào)用的C函數(shù)。 } int register_android_test(JNIEnv *env)//這是JNI注冊函數(shù),android.test就是java調(diào)用層(第三步)看到的包路徑, //如果這里是register_android_hardware_test, //那么JAVA調(diào)用層需要導入android.hardware.test包 { return AndroidRuntime::registerNativeMethods(env, "android/test/Test",method_table,NELEM(method_table)); } };
第二步,把JNI代碼注冊函數(shù)添加到AndroidRuntime運行時庫中。編輯frameworks/base/core/jni/AndroidRuntime.cpp文件:
Android SDK按照文件上的方法對應(yīng)的增加以下兩行:
.......... extern int register_android_test(JNIEnv* env);//這是android_test.cpp文件中的注冊函數(shù) .......................... static const RegJNIRec gRegJNI[] = { ......... ......... REG_JNI(register_android_test), ......... ....... };
第三步,建立JAVA調(diào)用層,在frameworks/base/core/java/android/test 目錄下建立文件Test.java,內(nèi)容如下:
package android.test; public class Test { private native int my_test();//Android 應(yīng)用的代碼中最終能調(diào)用的就是這個代碼 public Test()//構(gòu)造函數(shù) { //Add Your Code Here............. } };
第四步,在packages/apps/test目錄下建立你的android應(yīng)用(具體建立方法這里就不再作介紹),假設(shè)test_app.java是應(yīng)用的主文件,則內(nèi)容如下:
package com.app; import android.test;//導入自己的包 在代碼中這樣使用: test test; test.my_test();//最終調(diào)用
Android SDK JNI實現(xiàn),Android SDK JNI C++代碼,Android 調(diào)用C++,建立Android SDK下的JNI、JAVA應(yīng)用完整步驟,Android JAVA調(diào)用C++代碼。
上述就是小編為大家分享的為Android SDK增加應(yīng)用的案例實現(xiàn)是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。