国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
建立Android SDK下的JNI、JAVA應(yīng)用完整步驟---Android JAVA調(diào)用C++代碼
在開發(fā)Android應(yīng)用的過程中,通常有兩種方式:NDK和eclipse,或者直接在Android SDK增加。這里介紹如何在Android SDK環(huán)境中增加一個(gè)應(yīng)用程序。其中涉及到JNI,JAVA對JNI的調(diào)用,其中JNI代碼文件為C++。

--------------------------------------------------------------------------------
  第一步,建立JNI層代碼,注意,JNI代碼的路徑與JAVA的代碼路徑有很大的關(guān)系,一定要保持一致。
   在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)系,不能隨便取名稱空間。
{
 static jint android_test(JNIEnv *env, jobject clazz)
 {
  return test();
 }
 static JNINativeMethod method_table[] = {
  { "my_test", "()I", (void*)android_test}, //第一個(gè)參數(shù)為字串,這是JAVA層看到的函數(shù)名;
         //第二個(gè)參數(shù)為該函數(shù)的形參說明,
         //JAVA代碼就是靠這個(gè)參數(shù)知道所調(diào)用函數(shù)的形參情況;
         //第三個(gè)參數(shù)為JNI代碼中實(shí)際調(diào)用的C函數(shù)。
 }
 int register_android_test(JNIEnv *env)//這是JNI注冊函數(shù),android.test就是java調(diào)用層(第三步)看到的包路徑,
         //如果這里是register_android_hardware_test,
         //那么JAVA調(diào)用層需要導(dǎo)入android.hardware.test包
 {
  return AndroidRuntime::registerNativeMethods(env, "android/test/Test",method_table,NELEM(method_table));
/*這里的第二個(gè)參數(shù)和應(yīng)用層java文件調(diào)用包的路徑有關(guān)聯(lián),"android/test/Test"字符串參數(shù)和
frameworks/base/core/java/android/test/Test.java完整路徑是對應(yīng)的,對應(yīng)的包路徑是anroid.test,android.test.Test*/
 }
};

--------------------------------------------------------------------------------
第二步,把JNI代碼注冊函數(shù)添加到AndroidRuntime運(yùn)行時(shí)庫中。編輯frameworks/base/core/jni/AndroidRuntime.cpp文件:
按照文件上的方法對應(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;
/**
 * Native methods for managing fm.
 *
 * {@hide}
 */
public class Test {
 private native int my_test();//Android 應(yīng)用的代碼中最終能調(diào)用的就是這個(gè)代碼
 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;//導(dǎo)入自己的包
在代碼中這樣使用:
test   test;
test.my_test();//最終調(diào)用

--------------------------------------------------------------------------------
Tags:
 Android SDK JNI實(shí)現(xiàn),Android SDK JNI C++代碼,Android 調(diào)用C++,建立Android SDK下的JNI、JAVA應(yīng)用完整步驟,Android JAVA調(diào)用C++代碼
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java源代碼分析
Android開發(fā)搭環(huán)境步驟, ADT, JDK, SDK, NDK, Eclipse, CDT
android jni 學(xué)習(xí)筆記
Android 中Java 和C/C 的相互調(diào)用方法
什么叫做原生函數(shù)呢
JNI
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服