Andriod是什么?首先,正如Android开源和兼容性技术负责人DanMorrill在Android开发人员手册的兼容性部分所解释的那样,“Android不是传统Linux风格的规范或发行版,也不是可重用组件的集成。Android是一块连接设备的软件。”Linux:一切的基础是稳定、最新的Linux内核(我当前的Nexus手机上的版本为2.6.32),以及我们精心打造的电源管理组件;当然还有将它们集成到上层Linux代码中的扩展和通用组件。Dalvik:Android的另一个重要组成部分,包括一个虚拟机和一套重要的运行环境。它的设计非常巧妙,是一款非常不错的移动端底层应用。代码是如何生成的?Dalvik虚拟机只执行.dex可执行文件。Java程序在编译时,需要通过SDK中的工具将其转换成.dex格式,才能在虚拟机上执行。需要强调的是,Android应用程序本身可以看作是可以在平台上运行并调用API的代码,所以不需要特别关注代码是如何生成的。特殊应用:图中一些基于Dalvik虚拟机的应用看起来像是Android的一部分,但实际上是由谷歌提供的。这些应用程序包括Dialer、Contact、Calendar、Gmail和Chat。它们中的大多数是开源的并且可以重用。只有少数例外,例如Google地图和AndroidMarket。开源的东西:下图中绿色的大部分组件都是在Apache许可下开源的,其余的都是基于GPL、LGPL和BSD。Android框架在Android开发者网(developer.android.com)上有很多文章可以帮助大家使用,这里不再赘述。这里的标准库“标准”的意思是“在开源环境中对开发者普遍可用”。应用程序中有什么Android应用程序包含在我们称为APK的压缩文件夹中。APK没什么好说的。需要注意的是AndroidManifest——App与Android系统的接口。大多数其他应用程序都是基于Dalvik的,我指的是游戏以外的应用程序。游戏开发者通常希望用C/C++编写,排除虚拟机的使用,所以可以通过AndriodNDK进行开发。
