- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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中
您可能关注的文档
- [第六章附件网上税费支付系统解析.ppt
- [说明文是一种以说明为主要表达方式的文章体裁.doc
- [说明书8508A中文手册.doc
- [说明文是以说明为主要表达方式.doc
- [说明文是以说明为主要表达方式来解说事物.doc
- [对当前县域现金服务状况的调查与思考.doc
- [第六章非流动资产投资2.ppt
- [第六章键和花键.ppt
- [说明文的复习.doc
- [第六章饭店三大业务部门的服务与管理.ppt
- 2024至2030年中国人造棉面料行业投资前景及策略咨询报告.docx
- 重庆市渝中区遴选公务员2024年国家公务员考试考试大纲历年真题10340笔试历年典型考题及解题思路附.docx
- 2024至2030年中国甲基苯乙酮行业深度调研及发展预测报告.docx
- 2024至2030年中国羚羊角类饮片行业深度调查与前景预测分析报告.docx
- 重庆市面向中国农业大学定向选调2024届大学毕业生2024年国家公务员考试考试大纲历年真题14笔试历.docx
- 重庆市面向西北工业大学定向选调2024届大学毕业生00笔试历年典型考题及解题思路附答案详解.docx
- 中国不动杆菌感染治疗药行业市场现状分析及竞争格局与投资发展研究报告2024-2029版.docx
- 2024至2030年全球与中国ETL软件市场现状及未来发展趋势.docx
- 初中八年级(初二)生物下册期末考试1含答案解析.docx
- 干簧式继电器项目申请报告.docx
文档评论(0)