- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第12章AndroidNDK编程;
12.1JNI与NDK简介;
;
Java具备跨平台的特点,导致了Java与本地代码交互的能力非常弱,而采用JNI之后,Java与本地代码交互的能力就会大大增强。除此之外,许多基于JNI的标准库以及相关的API可以供Java程序员使用,提高开发的效率。JNI框架允许Native层语言与Java层语言双向交互,给开发带来了极大的优势。;
接下来了解一下JNI的实现步骤,具体如下所示。
(1)编写带有Native方法的Java类(即需要调用的本地方法);
(2)使用javac命令编译所编写的Java类(得到.class文件);
(3)使用javah+Java类名生成扩展名为h的头文件(.h文件);
(4)用C/C++实现Java中声明的Native方法;
(5)将C/C++编写的文件生成动态链接库(.so文件);
(6)通过Java命令执行Java程序,最终实现Java调用本地代码。;
12.1.2NDK简介
NDK(NativeDevelopmentKit)是Android的一个开发工具包,与Java并无直接关系。它主要是用来快速开发C、C++的动态库,并自动将.so库文件和应用一起打包成APK。主要在Android的场景下使用JNI时会用到NDK。;
NDK具有如下的特点:
1.性能方面
(1)运行效率高。在开发要求高性能的需求中,采用C/C++更加有效率,如使用本地代码(C/C++)执行算法,能大大提高算法的执行效率。
(2)代码安全性高。Java是半解释型语言,容易被反汇编后得到源代码,而本地有些代码类型(如C/C++)则不会,能提高系统的安全性。;
2.功能方面
功能拓展性好,可方便地使用其他开发语言的开源库,除了Java的开源库,还可以使用开发语言(C/C++)的开源库。
3.使用方面
易于代码复用和移植,用本地代码(如C/C++)开发的代码不仅可在Android中使用,还可以嵌入其他类型平台上使用。;
除上述特点之外,读者还需注意NDK提供的库比较有限,仅用于处理算法效率和敏感的问题,另外NDK还提供了交叉编译器,用于生成特定的CPU平台动态库。
接下来了解一下NDK的基本使用步骤,具体如下:
(1)配置好AndroidNDK开发环境;
(2)创建Android项目,并关联NDK;
(3)在项目中声明所需要调用的Native方法;
(4)使用C/C++实现在Android项目中声明的Native方法;
(5)通过ndk–bulid命令编译产生.so库文件;
(6)编译AndroidStudio工程,从而实现Android和本地代码的交互。;
12.1.3JNI与NDK的关系
12.1.1节和12.1.2节讲述了JNI和NDK的概念、特点及使用步骤,读者对二者有了基本的认识,但是可能还是有许多读者学完之后仍不清楚两者之间的关系,下面通过表格的形式让读者对JNI与NDK之间的关系有一个比较直观的认识,如表12.1所示。;
;
12.2NDK开发环境;
;
NDK是Android原生开发套件,主要是为了在Android应用中使用C和C++代码,前面已经详细介绍过NDK。读者在此处需要注意的是CMake,它是一款外部编译工具,可与Gradle搭配使用来编译原生库(如果读者只计划使用ndk-build,则可以不需要该组件)。另外上面提到的LLDB是AndroidStudio用于调试原生代码的调试程序,默认情况下,LLDB将与AndroidStudio一起安装。;
下载安装完NDK和CMake后,需要配置一下NDK环境,在AndroidStudio主界面上点击File→ProjectStructure…→SDKLocation,在AndroidNDKlocation部分,选择NDK默认的安装路径,点击OK按钮即可,如图12.3所示。;
;
读者也可以在下载完成时通过local.properties文件查看SDK和NDK在电脑上的保存路径,如图12.4所示。并在电脑上找到NDK对应的路径,将其复制到上述AndroidNDKlocation部分也可。;
;
如果没有环境变量,那么再设置系统环境变量,右键点击计算机→属性→高级系统设置→环境变量→系统变量,新建一个系统变量,变量名为NDK_ROOT,变量值为NDK的路径,然后点击确定按钮即可,如图12.5所示。;
;
然后再在Path变量路径下添加NDK_ROOT变量,直接输入%NDK_ROOT%即可(注意%NDK_ROOT%后边需要加上分号)
您可能关注的文档
- 《MATLAB基础与编程入门》课件_第6章 图形基础.pptx
- 《Java基础实践教程》课件_第九章.pptx
- 《高级财务会计》课件_第七章租赁.ppt
- 《电子技术基础技能实训教程》课件)_第5章.pptx
- 《MATLAB基础与编程入门》课件_第7章 图形用户界面基础.pptx
- 《高级财务会计》课件_第二章 职工薪酬.ppt
- 《电子技术基础技能实训教程》课件)_第7章.pptx
- 《Android系统设计与开发》课件_第2章.pptx
- 《MATLAB基础与编程入门》课件_第2章 矩阵和数组.pptx
- 《Android系统设计与开发》课件_第4章.pptx
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
文档评论(0)