Android操作系统是一款开源的手机操作系统。从发布至今,通过各个公司以及编程爱好者们的修改,其性能正在一步步的向前健康的发展。在这里我们可以了解到Android
1、前言
6月26日,Google
2、误解
新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。
2.1、误解一:NDK发布之前,Android不支持进行C开发
在Google中搜索“NDK”,很多“Android终于可以使用C++开发”之类的标题,这是一种对Android平台编程方式的误解。其实,Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android
当然这种误解的产生是有根源的:在Android
2.2、误解二:有了NDK,我们可以使用纯C开发Android应用
Android
3、Android
对NDK进行了粗略的研究后,我对“NDK是什么”的理解如下:
3.1、NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
3.2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。
4、Android
4.1、NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。
使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。
NDK促使专业so组件商的出现。(乐观猜想,要视Android用户的数量)
4.2、NDK将是Android平台支持C开发的开端。
NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。同时,Google承诺在Android
4.3、NDK的作用到底有哪些?
(1)代码的保护。由于Java层代码很容易被反编译,而C/C++库反编译难度很大。
(2)可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
(3)提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
(4)便于移植。用C/C++写的库可以方便的在其他的嵌入式平台上再次使用。
以上是转载的一篇文章,经过稍微的修改。