偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為Android SDK增加應(yīng)用案例實(shí)現(xiàn)

移動(dòng)開(kāi)發(fā) Android
為Android SDK增加應(yīng)用案例實(shí)現(xiàn)是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)Android SDK的內(nèi)容,具體關(guān)于Android SDK的內(nèi)容來(lái)看本文詳解。

Android SDK增加應(yīng)用案例實(shí)現(xiàn)是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)Android SDK的內(nèi)容,具體關(guān)于Android SDK的內(nèi)容來(lái)看本文詳解。

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

***步,建立JNI層代碼,注意,JNI代碼的路徑與JAVA的代碼路徑有很大的關(guān)系,一定要保持一致。

Android SDK在frameworks/base/core/jni目錄下建立JNI C++文件android_test.cpp,內(nèi)容如下:

  1. #define LOG_TAG "FMC"  
  2. #include "jni.h"  
  3. #include "android_runtime/AndroidRuntime.h"  
  4. #include <nativehelper/JNIHelp.h> 
  5. #include "utils/Log.h"  
  6. extern "C" {  
  7.       int test(void);//此函數(shù)可以來(lái)自c代碼或c庫(kù)  
  8. };  
  9. namespace android   //注意名稱空間和JAVA調(diào)用JNI所有的路徑有緊密的關(guān)系,不能隨便取名稱空間。  
  10.  
  11.                     //原作者這句話不對(duì)  
  12.  
  13.                     //這只是c++的命名空間和JNI沒(méi)有關(guān)系,如果不用android namespace那么在  
  14.  
  15.                     //AndroidRuntime.cpp里面也要聲明在android namespace外面。  
  16. {  
  17.  static jint android_test(JNIEnv *env, jobject clazz)  
  18.  {  
  19.   return test();  
  20.  }  
  21.  static JNINativeMethod method_table[] = {  
  22.   { "my_test", "()I", (void*)android_test}, //***個(gè)參數(shù)為字串,這是JAVA層看到的函數(shù)名;  
  23.          //第二個(gè)參數(shù)為該函數(shù)的形參說(shuō)明,  
  24.          //JAVA代碼就是靠這個(gè)參數(shù)知道所調(diào)用函數(shù)的形參情況;  
  25.          //第三個(gè)參數(shù)為JNI代碼中實(shí)際調(diào)用的C函數(shù)。  
  26.  }  
  27.  int register_android_test(JNIEnv *env)//這是JNI注冊(cè)函數(shù),android.test就是java調(diào)用層(第三步)看到的包路徑,  
  28.          //如果這里是register_android_hardware_test,  
  29.          //那么JAVA調(diào)用層需要導(dǎo)入android.hardware.test包  
  30.  {  
  31.   return AndroidRuntime::registerNativeMethods(env, "android/test/Test",method_table,NELEM(method_table));  
  32.  }  
  33. }; 

第二步,把JNI代碼注冊(cè)函數(shù)添加到AndroidRuntime運(yùn)行時(shí)庫(kù)中。編輯frameworks/base/core/jni/AndroidRuntime.cpp文件:

Android SDK按照文件上的方法對(duì)應(yīng)的增加以下兩行:

  1. ..........  
  2. extern int register_android_test(JNIEnv* env);//這是android_test.cpp文件中的注冊(cè)函數(shù)  
  3. ..........................  
  4. static const RegJNIRec gRegJNI[] = {  
  5. .........  
  6. .........  
  7. REG_JNI(register_android_test),  
  8. .........  
  9. .......  
  10. }; 

第三步,建立JAVA調(diào)用層,在frameworks/base/core/java/android/test 目錄下建立文件Test.java,內(nèi)容如下:

  1. package android.test;  
  2. public class Test {  
  3.  private native int my_test();//Android 應(yīng)用的代碼中最終能調(diào)用的就是這個(gè)代碼  
  4.  public Test()//構(gòu)造函數(shù)  
  5.  {  
  6.   //Add Your Code Here.............  
  7.  }  
  8. }; 

第四步,在packages/apps/test目錄下建立你的android應(yīng)用(具體建立方法這里就不再作介紹),假設(shè)test_app.java是應(yīng)用的主文件,則內(nèi)容如下:

  1. package com.app;  
  2. import android.test;//導(dǎo)入自己的包  
  3. 在代碼中這樣使用:  
  4. test   test;  
  5. test.my_test();//最終調(diào)用 

 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++代碼。

小結(jié):為Android SDK增加應(yīng)用案例實(shí)現(xiàn)的內(nèi)容介紹完了,希望通過(guò)Android SDK內(nèi)容的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2012-08-06 09:52:03

Android搜索功能

2011-09-01 14:04:45

QT Webkit插件

2011-08-15 15:44:46

iPhone開(kāi)發(fā)PDF

2011-08-18 16:24:44

iPhone開(kāi)發(fā)圖片

2009-03-23 10:04:46

Java Web入侵檢Java Web應(yīng)用EasyJWeb

2012-07-30 09:41:04

Android搜索功能

2013-07-05 10:26:40

Android

2011-08-16 15:48:37

iPhone開(kāi)發(fā)抓圖程序

2011-08-19 11:10:31

iPhone應(yīng)用

2011-08-19 10:13:05

iPhone開(kāi)發(fā)

2023-09-01 17:21:21

PyCharmLinuxWayland

2020-03-10 09:16:42

勒索軟件攻擊贖金

2013-12-04 14:29:18

Android SDK應(yīng)用程序

2013-12-26 15:47:59

Android SDK應(yīng)用程序

2011-04-01 10:55:41

OA系統(tǒng)應(yīng)用案例

2011-08-18 15:24:40

iPhone國(guó)際化

2011-08-16 15:36:47

iPhone應(yīng)用測(cè)試

2011-08-30 09:18:39

EnterpriseD云計(jì)算遷移

2013-12-04 15:11:03

Android SDK應(yīng)用程序

2013-12-04 15:20:33

Android SDK應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)