导读: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.
开源那些事:
鄙人面的图中,绿色的大部分组件是根据Apache许可证开源,其他根据GPL、LGPL和BSD。
Android结构
在Android开发者网(developer.android.com)上已有不少篇幅来协助你运用它,在此就不再累述。
规范库
在这里“规范”是指“开发者在开源环境中一般能够运用的”。
App里边是什么
一个Android App包含在一个咱们称之为APK的紧缩文件夹中,APK并没有什么可说的,需求留意的是Android Manifest——介于App和Android System的接口。
其他
大多数运用是根据Dalvik的,我指的是除了游戏之外的运用。游戏开发者一般期望用C/C++来编写,排挤运用虚拟机,所以他们能够经过Andriod NDK来开发。(编译/杨东杰)
原文:http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is