AndroidNDK是什么?
AndroidNDK是什么?AndroidNDK是在SDK前面又加上了"原
生"二字,即NativeDevelopmentKit,因此又被Google称为"NDK"。
在此之前,Android平台的第三方应用程序均是依靠基于Java的
Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加
直接的接触Android系统资源,并使用传统的C或C++语言编写程序,
并在程序封包文件(.apks)中直接嵌入原生库文件。
1、AndroidNDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的
动态库,并能自动将so和java应用一起打包成apk。这些工
具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平
台、ABI等差异,开发人员只需要简单修改mk文件(指出"哪
些文件需要编译"、"编译特性要求"等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开
发人员的打包工作。
2、AndroidNDK提供了一份稳定、功能有限的API头文
件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支
持当前发布的API。从该版本的NDK中看出,这些API支持的功能非
常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库
(libz)、Log库(liblog)。
3、AndroidNDK带来什么
1)NDK的发布,使"Java+C"的开发方式终于转正,成为官
方支持的开发方式。
使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从
而提高应用程序的执行效率。
使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,
Java包都是可以反编译的。
NDK促使专业so组件商的出现。(乐观猜想,要视乎Android
用户的数量)
2)NDK将是Android平台支持C开发的开端。
NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布
C组件。同时,Google承诺在NDK后续版本中提高"可调式"能力,即
提供远程的gdb工具,x使我们可以便捷地调试C源码。
4、AndroidNDK的缺点
使用NDK编写运行于android设备上的通用代码并不好,你的应
用依然应该主要使用Java编写,这样才能正确处理Android系统的
事件来避免"应用无反应"对话框的出现或处理应用的生命周期。
NDK仅仅为android系统所支持的本地API和库中的一小部分些
提供了头文件。然而一个典型的Android系统映像包含了很多本地共
享库,但这些应被看做是实现的细节,这些实现可能在平台更新或发
布时发生彻底的变化。
如果一个Android系统的库没有被NDK的头文件明确支持,那么
应用不应依赖于它。否则可能在下一次系统升级后出现杯具。
5、NDK开发实践
1)把本地代码放在$PROJECT/jni/…下,比如将hello.c放到
apps/hello/jni/目录下
2)在你的NDK编译系统中在$PROJECT/jni/来描述你
的源代码
3)可选:在$PROJECT/jni/到你的编译系统中来
详细描述你的项目,尽管你开始的话不一定需要它,但是它允许你使
用更多的CPU或者覆盖编译器/链接器的标记
4)从你的项目的目录开始通过运行"$NDK/ndk-build"来编译你
的代码,或者从子目录开始
5)最后一步可以copy,万一成功,剥离共享库的应用层序需
要你的应用程序的项目根目录。然后你通过通常的方法来生成最终的
apk。
本文发布于:2023-03-15 02:06:49,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678817210256376.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:android是什么.doc
本文 PDF 下载地址:android是什么.pdf
留言与评论(共有 0 条评论) |