`
david_je
  • 浏览: 368994 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JNI基础(翻译)

 
阅读更多

           JNI定义在native系统中了下列JNI的数据类型,他们分别对应着java的数据类型。

           1. Java的原始数据类型,JNI中的数据类型jint,jbyte,jshort,jlong,jfloat,jdouble,jchar,jboolean 分别对应的java中的数据类型,int,byte,short,long,float,double,char和boolean。

           2. Java的引用类型,JNI中的jobject对应中java中的java.lang.Object. 同时也定义了下列子类型:

                  a. jclass对应java.lang.Class

                  b. jstring对应java.lang.String

                  c. jthrowable对应java.lang.Throwable

                  d. jarray对应Java.array.java的array是引用类型,拥有8种原始类型的数组和一个Object数组。因此,对应有8中原始数组,jintArray,jbyteArray,jshortArray,jlongArray,jfloatArray,jdoubleArray和jbooleanArray,加上一个对象数组jobjectArray.

           

            native的函数接受上层的JNI类型的参数,返回值为JNI类型的。当然,native函数操作的数据类型是(如C的string和C 的数组int[])native层的,所以在JNI类型和native层需要做一个转换。

 

 

             native的程序:

  1.   接受JNI类型的参数(由java程序传递的)
  2.    对于引用的JNI类型,转换或者拷贝参数成为本地的native类型,比如:jstring转换成C-String类型,jintArray转换成C的int数组。原始JNI类型,比如jint和jdouble是不需要转换,可以被直接操作。
  3.    执行相应的操作和运算,按照native类型
  4.    创建返回对象用JNI类型,复制结果并返回
  5.    返回  

             

             在JNI编程中,最具有挑战性和烦人的是在JNI引用类型和原始类型之间的转换,JNI环境提供了许多功能来执行转换。

             JNI是C的接口,并不是面向对象的,并不是真正传递对象。

分享到:
评论

相关推荐

    Android 初学中阶高阶书籍_集合打包2

    段,Android 图像处理篇,Android_CTS测试研,GoogleMaps基础开发教程,Android_GPS架构分析,android_JNI编程_一些技 巧,android_jni操作指南,Android_NDK开发实例,Android_RIL层剖析(官方翻译),Android2.2+API+中文...

    Android 初学中阶高阶书籍_集合打包3

    段,Android 图像处理篇,Android_CTS测试研,GoogleMaps基础开发教程,Android_GPS架构分析,android_JNI编程_一些技 巧,android_jni操作指南,Android_NDK开发实例,Android_RIL层剖析(官方翻译),Android2.2+API+中文...

    android精品源码

    Android_GoogleMaps基础开发教程.pdf Android_GPS架构分析.doc android_jni操作指南.pdf android_JNI编程_一些技巧.doc Android_NDK开发实例.doc Android_RIL层剖析(官方翻译).doc Android与JUnit深入浅出.pdf ...

    JAVA-Android-Learning

    NDK,JNI的基础 达尔维克,艺术 Java字节码和字节码操作 每个主题的EN / KR博客文章 博客文章, 如果需要,可以为一个主题发表多个帖子 写完所有帖子后用韩语翻译。 有效的JAVA 每天2条规则 每个规则将在进行总结...

    Google Android SDK开发范例大全(第3版)part2

     6.25 在SDK开发环境中访问JNI接口  第7章 娱乐多媒体  7.1 访问Drawable资源的宽和高  7.2 绘制几何图形  7.3 手机屏幕保护程序  7.4 用手指移动画面里的照片  7.5 加载存储卡的Gallery相簿  7.6 ...

    《Google Android SDK开发范例大全(第3版)》.pdf

    6.25 在sdk开发环境中访问jni接口 397 第7章 娱乐多媒体 401 7.1 访问drawable资源的宽和高 402 7.2 绘制几何图形 404 7.3 手机屏幕保护程序 408 7.4 用手指移动画面里的照片 418 7.5 加载存储卡...

    Google Android SDK开发范例大全(第3版) 1/5

    6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片...

    Google Android SDK开发范例大全(第3版) 4/5

    6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片...

    Google Android SDK开发范例大全(第3版) 3/5

    6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片...

    Google Android SDK开发范例大全(第3版) 5/5

    6.25 在SDK开发环境中访问JNI接口 第7章 娱乐多媒体 7.1 访问Drawable资源的宽和高 7.2 绘制几何图形 7.3 手机屏幕保护程序 7.4 用手指移动画面里的照片 7.5 加载存储卡的Gallery相簿 7.6 取得手机内置媒体中的图片...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

Global site tag (gtag.js) - Google Analytics