Google工程师多图详解Android系统架构

移动开发 Android
近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,您可以看一下Google工程师眼中的Android系统架构是什么样的。

51CTO曾对Android的系统架构做过详细的解析。近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,您可以看一下Google工程师眼中的Android系统架构是什么样的。以下为Sans Serif博文的译文:

Andriod是什么?

首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”

Andriod是什么?
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框架

在Android开发者网(developer.android.com)上已有不少篇幅来帮助你使用它,在此就不再累述。

Android框架
Android框架

标准库

在这里“标准”是指“开发者在开源环境中一般可以使用的”。

App里面是什么

一个Android App包含在一个我们称之为APK的压缩文件夹中,APK并没有什么可说的,需要注意的是Android Manifest——介于App和Android System的接口。

App里面是什么
App里面是什么(1)

App里面是什么
App里面是什么(2)

其他

大多数应用是基于Dalvik的,我指的是除了游戏之外的应用。游戏开发者通常希望用C/C++来编写,排斥使用虚拟机,所以他们可以通过Andriod NDK来开发。

原文名称:What Android Is

原文地址:http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is

原文作者:Sans Serif

  • 【编辑推荐】
  1. Android开发中实现多点触摸的方法
  2. Android系统架构基本模式解析
  3. 剖析Android系统架构说明介绍
  4. 探索Dalvik移植技术秘密所在
  5. 对Dalvik虚拟机核心部分解读分析

 

 

责任编辑:佚名 来源: csdn
相关推荐

2009-10-27 10:45:07

Google Wave

2011-01-07 13:33:07

Google平板系统蜂巢Android 3.0

2011-02-24 10:40:18

Google人才

2009-02-11 13:15:54

软件工程师女工程师google

2013-05-22 11:17:52

GoogleAndroid碎片化

2010-09-13 17:38:47

Google的系统工程

2009-03-04 09:17:47

GoogleChrome工程师

2010-01-26 10:00:30

Google工程师Web

2021-03-09 10:47:56

系统架构师算法工程师人工智能工程师

2021-03-09 10:24:46

数学计算机系统架构师

2011-04-25 09:34:52

PythoncGO

2010-12-07 09:30:58

Android 2.3

2009-10-30 09:36:10

GoogleLinux操作系统

2011-04-28 11:33:33

MeeGo平板电脑

2010-09-02 14:47:40

UIAndroid

2010-12-10 10:16:21

Android 2.3

2010-11-22 10:37:31

Google跳槽

2012-05-31 02:43:40

Google薪酬职位

2011-01-27 10:11:42

Android 3.0

2015-05-21 10:43:36

工程师如何写代码
点赞
收藏

51CTO技术栈公众号