近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,您可以看一下Google工程师眼中的Android系统架构是什么样的。以下为Sans Serif博文的译文:
Andriod是什么?
首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”
Andriod是什么?
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框架
在Android开发者网(developer.android.com)上已有不少篇幅来帮助你使用它,在此就不再累述。
Android框架
标准库
在这里“标准”是指“开发者在开源环境中一般可以使用的”。
App里面是什么
一个Android App包含在一个我们称之为APK的压缩文件夹中,APK并没有什么可说的,需要注意的是Android Manifest——介于App和Android System的接口。
App里面是什么(1)
App里面是什么(2)
其他
大多数应用是基于Dalvik的,我指的是除了游戏之外的应用。游戏开发者通常希望用C/C++来编写,排斥使用虚拟机,所以他们可以通过Andriod NDK来开发。
分享到:
相关推荐
中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对 Android的介绍很好,您可以看一下Google工程师眼中的Android 系统架构是什么样的。本文档为Sans Serif的译文,并附上Android基础知识详解文档,...
Android系统架构是由Google开发的一款基于Linux内核的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。Android系统因其开放性和灵活性,深受开发者和制造商的欢迎。以下是对Android系统架构的详细解读: ...
Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于1998年9月7日以私有股份... 近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄
《Android应用开发详解》这本书是为初中级Android开发工程师量身打造的一本指南,旨在深入浅出地介绍Android应用开发的各个方面。以下是对书中主要内容的详细解析: 一、Android系统架构 Android系统由Linux内核、...
### 安卓系统详解及其与塞班系统的比较 #### 安卓系统概述 安卓系统,全称为Android,是由Google公司主导开发的一款基于Linux内核的开放性操作系统。它不仅仅局限于智能手机,还广泛应用在平板电脑、智能家居设备...
- **四层架构**:Android系统分为四层,分别是应用程序层、应用程序框架层、库和Android运行时、Linux内核。 - **应用程序层**:包含预装应用程序。 - **应用程序框架层**:提供核心应用程序服务。 - **库和...
- **知识点**:详细解析 Android 操作系统的架构、组件及其工作原理。 - **适用人群**:适合有一定基础的 Android 开发者深入了解系统内部机制。 4. **《Android 程序开发初级教程》PDF 版技术文档** - **知识点...
在Android开发领域,资源是开发者不可或缺的工具,无论是初学者还是经验丰富的工程师,都能从中获取宝贵的指导和灵感。"很全,很有用的Android开发书,资源汇总"这个标题暗示了我们即将探讨的是一个全面且实用的...
#### 四、Android架构体系 **4.1 架构体系** Android的架构层次分明,自底向上依次为: - **Linux内核层**:提供了操作系统的核心功能,如电源管理、内存管理、进程管理等。 - **硬件抽象层 (HAL)**:为硬件驱动...
- **Google Android**:基于Linux的开源操作系统,广泛应用于移动设备。 - **Angstrom桌面环境发行版**:基于Linux的嵌入式系统发行版,支持多种硬件平台。 - **DVSDK(数字视频软件包)**:支持音频和视频硬件解码...
Genymotion是一款专为开发者、测试工程师及营销专家设计的强大Android虚拟机平台。该工具能够帮助用户在不同的操作系统上(包括Windows、Linux和MacOS)快速地搭建Android开发或测试环境。Genymotion不仅拥有高效的...
**CTS Verifier**(兼容性测试套件验证器)是Google提供的一套用于Android设备的兼容性和功能验证工具,旨在确保设备能够按照Android兼容性定义文档(CDD)的要求正常运行。该文档将详细介绍CTS Verifier的各个测试...