[第十一章JAVA本地调用.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第十一章JAVA本地调用

第 * 页 Android系统移植 第八章 Java本地调用 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 一、java本地调用 二、jni的基本概念 三、jni的实现 四、框架层中使用jni 五、APK中使用jni Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 8.1 android的java本地调用 Jni是java native interface的缩写,直译中文为“java本地接口”,一般情况下称为“java本地调用”,从java1.1开始,标准规java称为java平台的一部分,他允许java代码和其他语言编写的代码进行交互,jni是本地程序接口,他使得java虚拟机(VM)内部运行的java代码能够与其他编程语言(例如:C、C++和汇编语言)编写的程序和库进行内部交互操作。 在android中提供的jni的方式,让java程序可以调用C语言编写的程序,JNI也是android系统连接本地层和java层的主要手段。 Android的jni Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 在android中提供的jni的方式,让java程序可以调用C语言编写的程序,android中很多java类具有native接口,这些native接口就是由本地实现,然后注册到系统中的。 在Android中主要的jni代码在一下的路径中: Frameworks/base/core/jni/这个路径中的内容将被编译成库libandroid_runtime.so,这就是一个普通的动态库,被放置在目标系统的/system/lib目录中。 除此之外,android还包含其他的jni库,录入媒体部分的jni在目录frameworks/base/media/jni中,被编译成libmedia_jni.so。 Jni中的各个文件实际上就是C++的普通文件,其命令一般和支持的java类有对应关系,这种关系式习惯上的写法,而不是强制的。 在android中实现的jni库,需要连接动态库libnativehelper.so。 Jni在android层次结构中的作用 8.1.1 android的jni实现 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. Jni在android层次结构中的作用如图所示: Android系统的jni和标准的java基本类似,实现jni主要的流程为在java源代码中声明本地方法, 并注册到对应的java类中,在java层的声明方面,android和标准的java使用了完全相同的方法,在本地层的实现方面,原本jni也没有绝对完整的规则,android系统具有一定的特殊性 8.1.1 android的jni实现 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 8.1.1 android的jni实现 Android jni本地部分主要的头文件的路径为:/dalvik/libnativehelper/include/nativehelper/jni.h Jni.h实际上是android根据java本地调用的标准写成的一个头文件,jni.h中包含了基本类型以及javaVM、JNIEnv、jclass、jmethodID、jfieldID等数据结构定义,并通过让C++层提供java环境,注册JNI方法、类的建立与异常处理。 在android中实现和使用jni一定需要jni.h文件,而通目录中的JNIHelp.h却不一定需要,也不一定需要libnativehelper.so库。 Jni.h首先完成了基本类型的定义,将java部分的基本数据结构和对象类型(java.lang.Object)对应到本地,这些数据类型也就是jni中

文档评论(0)

zhuanyewd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档