导读:
Sans Serif 是 Google 的一位工程师,近日发布了一篇博文非常清楚的描述了 Android
系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对
Android 的介绍很好,如下是 CSDN 对文章的简单编译:
Andriod 是什么?
首先,就像
Android 开源和兼容性技术负责人 Dan Morrill 在 Android 开发手册兼容性部分
所解释的,
“Android 并不是传统的 Linux 风格的一个规范或分发版本,也不是一系列可重
用的组件集成,
Android 是一个用于连接设备的软件块。”
§
Linux:
所 有 东 西 的
底 层 是 一 个
稳 定 的 保 持
更
新
的
Linux 内 核
( 我 现 在 用
的
Nexus 手
机 所 用 的 就
是
2.6.32 版
的 内 核 ) ,
以 及 我 们 精
心打造的能源管理组件;当然还有将它们整合至上层
Linux 代码的扩展和公共组件。
Dalvik:
Android 另一个重要的部分,包括虚拟机和一组重要的运行环境。它的设计非常巧妙,是个
很好的一个手机终端的底层应用。
代码如何生成?
Dalvik 虚拟机只执行.dex 的可执行文件。当 Java 程序通过编译,最后还需要通过 SDK 中的
工具转化成
.dex 格式才能在虚拟机上执行。
我需要强调的是,
Android 应用本身就可视作可在平台上运行并调用 APIs 的代码,所以对
代码如何生成不需特别看重。
特别的
Apps:
在图中有些基于
Dalvik 虚拟机的 Apps 看起来像是 Android 的一部分,其实是由 Google 提
供,这些应用包括
Dialer、 Contact、Calendar、Gmail 和 Chat 等。它们中的绝大部分是开源并
可复用的。只有少部分例外,比如
Google Maps 和 Android Market.