为Android SDK增加应用案例实现

移动开发 Android
为Android SDK增加应用案例实现是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK的内容来看本文详解。

Android SDK增加应用案例实现是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK的内容来看本文详解。

在开发Android开发应用的过程中,通常有两种方式:NDK和eclipse,或者直接在Android SDK增加。这里介绍如何在Android SDK环境中增加一个应用程序。其中涉及到JNI,JAVA对JNI的调用,其中JNI代码文件为C++。

***步,建立JNI层代码,注意,JNI代码的路径与JAVA的代码路径有很大的关系,一定要保持一致。

Android SDK在frameworks/base/core/jni目录下建立JNI C++文件android_test.cpp,内容如下:

  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);//此函数可以来自c代码或c库  
  8. };  
  9. namespace android   //注意名称空间和JAVA调用JNI所有的路径有紧密的关系,不能随便取名称空间。  
  10.  
  11.                     //原作者这句话不对  
  12.  
  13.                     //这只是c++的命名空间和JNI没有关系,如果不用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}, //***个参数为字串,这是JAVA层看到的函数名;  
  23.          //第二个参数为该函数的形参说明,  
  24.          //JAVA代码就是靠这个参数知道所调用函数的形参情况;  
  25.          //第三个参数为JNI代码中实际调用的C函数。  
  26.  }  
  27.  int register_android_test(JNIEnv *env)//这是JNI注册函数,android.test就是java调用层(第三步)看到的包路径,  
  28.          //如果这里是register_android_hardware_test,  
  29.          //那么JAVA调用层需要导入android.hardware.test包  
  30.  {  
  31.   return AndroidRuntime::registerNativeMethods(env, "android/test/Test",method_table,NELEM(method_table));  
  32.  }  
  33. }; 

第二步,把JNI代码注册函数添加到AndroidRuntime运行时库中。编辑frameworks/base/core/jni/AndroidRuntime.cpp文件:

Android SDK按照文件上的方法对应的增加以下两行:

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

第三步,建立JAVA调用层,在frameworks/base/core/java/android/test 目录下建立文件Test.java,内容如下:

  1. package android.test;  
  2. public class Test {  
  3.  private native int my_test();//Android 应用的代码中最终能调用的就是这个代码  
  4.  public Test()//构造函数  
  5.  {  
  6.   //Add Your Code Here.............  
  7.  }  
  8. }; 

第四步,在packages/apps/test目录下建立你的android应用(具体建立方法这里就不再作介绍),假设test_app.java是应用的主文件,则内容如下:

  1. package com.app;  
  2. import android.test;//导入自己的包  
  3. 在代码中这样使用:  
  4. test   test;  
  5. test.my_test();//最终调用 

 Android SDK JNI实现,Android SDK JNI C++代码,Android 调用C++,建立Android SDK下的JNI、JAVA应用完整步骤,Android JAVA调用C++代码。

小结:为Android SDK增加应用案例实现的内容介绍完了,希望通过Android SDK内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2012-08-06 09:52:03

Android搜索功能

2011-09-01 14:04:45

QT Webkit插件

2023-09-01 17:21:21

PyCharmLinuxWayland

2009-03-23 10:04:46

Java Web入侵检Java Web应用EasyJWeb

2013-07-05 10:26:40

Android

2012-07-30 09:41:04

Android搜索功能

2011-08-15 15:44:46

iPhone开发PDF

2011-08-18 16:24:44

iPhone开发图片

2013-12-04 14:29:18

Android SDK应用程序

2013-12-26 15:47:59

Android SDK应用程序

2020-03-10 09:16:42

勒索软件攻击赎金

2011-08-19 10:13:05

iPhone开发

2011-08-19 11:10:31

iPhone应用

2011-08-16 15:48:37

iPhone开发抓图程序

2013-12-04 15:20:33

Android SDK应用程序

2013-12-04 15:11:03

Android SDK应用程序

2013-12-04 13:51:38

Android SDK应用程序

2013-05-03 15:17:59

Android开发Android SDK

2011-08-30 09:18:39

EnterpriseD云计算迁移

2011-04-01 10:55:41

OA系统应用案例
点赞
收藏

51CTO技术栈公众号