- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android JNI简介和调用流程
Android JNI简介和调用流程 android jni虚拟机javaexceptionbuild/******************************************************************************************** * author:conowen@大钟 * E-mail:conowen@ * /conowen * 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。 ********************************************************************************************/ 1、JNI简介 JNI全称为Java Native Interface(JAVA本地调用)。从Java1.1开始,JNI成为java平台的一部分,它允许Java代码与其他语言写的代码(如CC++)进行交互。并非从Android发布才引入JNI的概念的。 2、JNI和NDK 简单来说,Android的NDK提供了一些交叉编译工具链与Android自带的库,这些Android的库可以让开发者在编写本地语言的程序时调用。而NDK提供的交叉编译工具链就对已经编写好的CC++代码进行编译,生成库。 当然了,你也可以自己搭建交叉编译环境,而不用NDK的工具与库。然后生成库,只要规范操作,一样可以生成能让JAVA层成功调用的库文件的。 利用NDK进行编译本地语言可以参考这篇博文:/conowen/article/details/7522667 3、JNI 调用流程 众所周知,Android的应用层的类都是以Java写的,这些Java类编译为Dex文件之后,必须靠Dalvik虚拟机( Virtual Machine)来执行。假如在执行java程序时,需要载入CC++函数时,Dalvik虚拟机就会去加载CC++的库,(System.loadLibrary(libName);)让java层能顺利地调用这些本地函数。需要清楚一点,这些CC++的函数并不是在Dalvik虚拟机中运行的,所以效率与速度要比在Dalvik虚拟机中运行得快很多。 Dalvik虚拟机成功加载库之后,就会自动地寻找库里面的JNI_OnLoad函数,这个函数用途如下: (1)告诉Dalvik虚拟机此C库使用哪一个JNI版本。如果你的库里面没有写明JNI_OnLoad()函数,VM会默认该库使用最老的JNI 1.1版本。但是新版的JNI做了很多的扩充,也优化了一些内容,如果需要使用JNI的新版功能,就必须在JNI_OnLoad()函数声明JNI的版本。如 [java] view plaincopyprint? result = JNI_VERSION_1_4; result = JNI_VERSION_1_4;当没有JNI_OnLoad()函数时,Android调试信息会做出如下提示(No JNI_OnLoad found) [java] view plaincopyprint? 04-29 13:53:12.184: D/dalvikvm(361): Trying to load lib /data/data/com.conowen.helloworld/lib/libHelloWorld.so 0x44edea98 04-29 13:53:12.204: D/dalvikvm(361): Added shared lib /data/data/com.conowen.helloworld/lib/libHelloWorld.so 0x44edea98 04-29 13:53:12.204: D/dalvikvm(361): No
您可能关注的文档
最近下载
- 降低留置胃管非计划拔管发生率.ppt VIP
- HIKVISION海康威视U2系列 1080P专业级直播摄像机DS-U22_20211028.pdf
- 电化学储能站安全培训.pptx VIP
- 小学道德与法治_《学会识别广告》教学课件设计.ppt VIP
- 托幼机构卫生保健人员考试题库【附答案】.pdf VIP
- 三菱海尔商用空调.ppt VIP
- 2024-2030年中国桑蚕养殖行业市场发展分析及竞争格局与投资前景研究报告.docx
- 二元思辨:摆脱焦虑与焦虑是创造力的根基-备战2024年高考语文作文写作终极指导.pdf VIP
- 四年级上道德与法治《学会识别广告》教学设计.pdf VIP
- 2024融合大语言模型DeepSeek技术新人教版语文七年级上册《第四单元》大单元整体教学设计[2022课标].pdf
文档评论(0)