网站大量收购独家精品文档,联系QQ:2885784924

《Android系统设计与开发》课件_第12章.pptx

《Android系统设计与开发》课件_第12章.pptx

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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%后边需要加上分号)

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档