android 面试题 安卓巴士总结.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文档。上传文档
查看更多
android 面试题 安卓巴士总结.pdf

本文来自 安卓巴士 ( )整理总结     1、前言      6 月 26  日, Google Android 发布了  NDK  ,引起了很多发人员的兴趣。  NDK 全 称 :   Native  Development  Kit  。 下 载 地 址 为 :  /sdk/ndk/1.5_r1/index.html  。    2、误解      新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。    2.1、误解一:  NDK 发布之前, Android 不支持进行 C  开发      在 Google  中搜索  “NDK”  ,很多  “Android  终于可以使用 C++  开发  ” 之类 的标题,这是一种对 Android 平台编程方式的误解。其实, Android 平台从诞生起,就已 经支持 C  、 C++  开发。众所周知, Android  的 SDK 基于 Java  实现,这意味着基于 Android  SDK 进行开发的第三方应用都必须使用 Java 语言。但这并不等同于  “ 第三方应用只能使 用 Java ”  。在 Android SDK  首次发布时, Google 就宣称其虚拟机  Dalvik 支持 JNI 编程 方式,也就是第三方应用完全可以通过 JNI 调用自己的 C 动态库,即在 Android 平台上,  “Java+C ”  的编程方式是一直都可以实现的。      当然这种误解的产生是有根源的:在Android SDK 文档里,找不到任何 JNI 方面的 帮助。即使第三方应用开发者使用 JNI 完成了自己的 C 动态链接库( so  )开发,但是 so  如何和应用程序一起打包成 apk  并发布?这里面也存在技术障碍。我曾经花了不少时间, 安装交叉编译器创建 so  ,并通过 asset  (资源)方式,实现捆绑 so 发布。但这种方式只 能属于取巧的方式,并非官方支持。所以,在  NDK  出来之前,我们将  “Java+C ”  的开发 模式称之为灰色模式,即官方既不声明  “ 支持这种方式  ”  ,也不声明  “ 不支持这种方 式  ”  。    2.2、误解二:有了  NDK  ,我们可以使用纯 C  开发 Android 应用      Android SDK 采用 Java 语言发布,把众多的 C  开发人员排除在第三方应用开发外 ( 注意:我们所有讨论都是基于“ 第三方应用开发  ”  , Android  系统基于  Linux  ,系 统级别的开发肯定是支持 C 语言的。  )。NDK  的发布,许多人会误以为,类似于 Symbian  、  WM  ,在 Android 平台上终于可以使用纯 C  、 C++  开发第三方应用了!其实不然,  NDK  文档明确说明:  it is not a good way  。因为  NDK  并没有提供各种系统事件处理支持,也没 有提供应用程序生命周期维护。此外,在本次发布的  NDK  中,应用程序  UI 方面的 API 也 没有提供。至少目前来说,使用纯 C  、 C++  开发一个完整应用的条件还不完备。    3、NDK 是什么    对 NDK 进行了粗略的研究后,我对  “NDK 是什么  ”  的理解如下:    1、NDK 是一系列工具的集合。    NDK 提供了一系列的工具,帮助开发者快速开发 C  (或 C++  )的动态库,并能自动 将 so 和 java 应用一起打包成 apk  。这些工具对开发者的帮助是巨大的。    NDK 集成了交叉编译器,并提供了相应的  mk 文件隔离 CPU  、平台、 ABI 等差异, 开发人员只需要简单修改  mk 文件(指出  “  哪些文件需要编译  ”  、  “ 编译特性要求  ”  等),就可以创建出 so  。    NDK 可以自动地将 so 和 Java 应用一起打包,极大地减轻了开发人员的打包工作。    2、NDK 提供了一份稳定、功能有限的 API 头文件声明。      oogle 明确声明该 API  是稳定的,在后续所有版本中都稳定支持当前发布的 API  。 G 从该版本的  NDK  中看出,这

文档评论(0)

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

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

1亿VIP精品文档

相关文档