NDK开发样例.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NDK开发样例.pdf

NDK开开发发样样例例 一、NDK产生的背景 And ro id平台从诞生起 ,就已经支持 、 ++开发。众所周知 ,And ro id 的SDK基于Java实现 ,这意味着基于And ro id SDK 进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java” 。在And ro id SDK首次发布 时 ,Goog le就宣称其虚拟机Da lvik支持JNI编程方式 ,也就是第三方应用完全可以通过JNI调用 自己的 动态库 ,即在 And ro id平台上 ,“Java+ ”的编程方式是一直都可以实现的。 不过 ,Goog le也表示 ,使用原生SDK编程相比Da lvik虚拟机也有一些劣势 ,And ro id SDK文档里 ,找不到任何JNI方面的 帮助。即使第三方应用开发者使用JNI完成了自己的 动态链接库 (so )开发 ,但是so如何和应用程序一起打包成a pk并 发布 ?这里面也存在技术障碍 。比如程序更加复杂 ,兼容性难以保障 ,无法访问Framewo rk API ,De bug 难度更大等。 开发者需要 自行斟酌使用。 于是NDK就应运而生了。NDK全称是Native Deve lo pme nt Kit。 NDK的发布 ,使“Java+ ”的开发方式终于转正 ,成为官方支持的开发方式。NDK将是And ro id平台支持 开发的开端 。 二、为什么使用NDK 1.代码的保护 。由于a pk的j ava层代码很容易被反编译 ,而 / ++库反汇难度较大。 2.可以方便地使用现存的开源库。大部分现存的开源库都是用 / ++代码编写的。 3.提高程序的执行效率。将要求高性能的应用逻辑使用 开发 ,从而提高应用程序的执行效率。 4.便于移植 。用 / ++写得库可以方便在其他的嵌入式平台上再次使用。 三、NDK简介 1.NDK是一系列工具的集合 NDK提供了一系列的工具 ,帮助开发者快速开发 (或 ++)的动态库 ,并能 自动将so和j ava应用一起打包成a pk。这些 工具对开发者的帮助是巨大的。 NDK集成了交叉编译器 ,并提供了相应的mk文件隔离 PU、平台、ABI等差异 ,开发人员只需要简单修改mk文件 (指 出“哪些文件需要编译” 、“编译特性要求”等 ) ,就可以创建出so 。 NDK可以自动地将so和Java应用一起打包 ,极大地减轻了开发人员的打包工作 。 2.NDK提供了一份稳定、功能有限的API头文件声明 Goog le 明确声明该API是稳定的 ,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出 ,这些API支持的 功能非常有限 ,包含有 : 标准库 (libc )、标准数学库 (libm )、压缩库 (libz )、Log 库 (lib log )。 四、需要下载NDK ,安装cyg w in才能编译NDK程序 五、 用 NDK 来编译程序 a .现在我们用安装好的 NDK 来编译一个简单的程序吧 ,我们选择 nd k 自带的例子 he llo-j ni ,我的位于E:\and ro id- nd k-r5\samples\he llo-j ni( 根据你具体的安装位置而定 ) , b .运行 cyg w in ,输入命令 cd /cyg d rive/e/and ro id-nd k-r5/samples/he llo-j ni ,进入到 E:\and ro id-nd k- r5\samples\he llo-j ni 目录。 c .输入 $NDK_ ROOT /nd k-build .cmd (一定要在你需要编译的程序的目录下运行$NDK_ ROOT /nd k-build .cmd ,因为是 使用NDK编译你需要的工程 ,编译时会在你所在工程的j ni目录找And ro id .mk文件来确定需要编译的文件) ,执行成功后 , 它会 自动生成一个 libs 目录 ,把编译生成的 .so 文件放在里面。 ($NDK_ ROOT 是调用我们之前配置好的环境变 量 , nd k-build 是调用 nd k 的编译程序 ) d .此时去 he llo-j ni 的 libs 目录下看有没有生成的 .so 文件 ,如果有 ,你的

您可能关注的文档

文档评论(0)

shaoyifen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档