文档章节

Android的系统架构

 等待流星
发布于 2014/01/21 14:52
字数 760
阅读 188
收藏 0

  Android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

      图1:Android系统架构图

      每层功能简要介绍如下:

      一 应用程序层

      该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

     二 应用程序框架层

     该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

     三 系统库和Android运行时

     系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

     四 Linux内核

     Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、BinderIPC)驱动、电源管理等。

     总结:

     1 Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。

     2 Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;若是从事Android系统开发,那应该研究Android的系统库和Android运行时;若是从事Android驱动开发,那应该研究Android的Linux内核。总之,找准切入点,实践出真知。


本文转载自:http://blog.csdn.net/wangloveall/article/details/8033725

粉丝 5
博文 78
码字总数 10995
作品 0
崇明
私信 提问
Android 源码分析之旅1--系统架构与分析方法、工具

《Android 源码分析之旅》目录 apefwkall.png 《Android 源码分析之旅》的全部目录将作如下安排: 第1章节——本篇文章,将介绍一些基本的概念、方法、工具。 第2章节——着重介绍Binder IP...

猴亮屏
2017/10/19
0
0
Android系统简介(上、中、下):历史渊源

上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记《Just for Fun》, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味。 而实际上,对我而已,虽然做软件开发很多年,...

润物互动技术团队博客
2014/08/19
0
4
系统学习android开发 让android之路更清晰

不知道 android开发 应该怎么学?遇见瓶颈不知道该怎么做? 首先,要明白,android学习应该是系统化的,并不是东一块西一块的学一点代码就OK的了。 系统的学习android开发技术,从应用到底层...

达尔文子
2013/07/10
557
0
移动互联遇短板 台湾IT行业大陆抢人才

21世纪经济报道 程久龙 北京报道 面对传统PC向移动互联网的转变,台湾IT行业的人才资源也面临一次由“硬”到“软”的转型。 不仅在岛内争夺升温,大量的台湾硬件厂商还把目光瞄向了内地——这...

红薯
2011/06/04
1K
6
是不是 Android? YunOS 3.0 体验评测

HELLO,大家好!我是评测网大米,2012年9月13号的时候,宏碁与阿里的智能手机发布会,在开始前突然取消,原因是宏碁收到谷歌的警告,如果新产品搭载yunos系统则会与其解除安卓的相关技术授权,...

oschina
2014/12/15
10.1K
59

没有更多内容

加载失败,请刷新页面

加载更多

研究下这代码,用到了guava和线程池

import com.google.common.util.concurrent.FutureCallback;import com.google.common.util.concurrent.Futures;import com.google.common.util.concurrent.ListenableFuture;import c......

暗中观察
27分钟前
3
0
《css 揭秘》 之垂直居中的实现

最近看了 Lea Verou 的 《css揭秘》一书,让我对自己的 css学习产生了深深的怀疑。这本书真是太棒了,里面涉及到很多优雅又有趣的效果实现,真的是非常棒。如果你有时间,十分建议你去看看。...

IrisHuang
32分钟前
3
0
java 抽象类(2)

/*需求: 描述一个图形、圆形、 矩形三个类。不管哪种图形都会具备计算面积与周长的行为,但是每种图形计算的方式不一致而已。常量的命名规范:全部字母大写,单词与单词 之间 使用下...

hellation_
35分钟前
3
0
总结:堆和栈

堆 堆比较好理解,即存放对象的地方。这里的对象由GC管理 1、类变量(static修饰的变量):在程序加载时系统就为它在堆中开辟了内存,堆中的内存地址存放于栈以便于高速访问。静态变量的生命...

浮躁的码农
40分钟前
1
0
JavaScript 新语法详解:Class 的私有属性与私有方法

译者按: 为什么偏要用**#**符号? 原文:JavaScript's new #private class fields 译者:Fundebug 本文采用意译,版权归原作者所有 proposal-class-fields与proposal-private-methods定义了 ...

Fundebug
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部