自今天开始正式步入Andorid开发行列,作为IT业界的一名普通码农,代码写了不少,软件做了一堆,但文章确是一字未有。
路漫漫其修远兮,重要的是踏出的第一步,希望这次可以坚持下去。
首先从Android的发展历程开始。
Android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时以及Linux内核。
图1:Android系统架构图(来源于网络)
每层功能简要介绍如下:
一、Linux内核层
该层即为操作系统层,自2009年4月30日发布Android官方1.5版本,采用Linux2.6作为系统核心,以后陆续发布的Android版本也随着Linux内核版本的变化而采用不同的linux核心【1】。Android对操作系统的使用包括核心和驱动程序两部分,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。Android更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:
二、系统库和Android运行时
本层对应一般嵌入式系统,相当于中间件层。本层主要分为两个部分,一是系统库,另一个是Android 运行环境。本层的内容大多是使用C++实现的。
分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。
三、应用程序框架层
该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。
a) Activity Manager(活动管理器)
管理各个应用程序生命周期以及通常的导航回退功能
b) Window Manager(窗口管理器)
管理所有的窗口程序
c) Content Provider(内容提供器)
使得不同应用程序之间存取或者分享数据
d) View System(视图系统)
构建应用程序的基本组件
e) Notification Manager(通告管理器)
使得应用程序可以在状态栏中显示自定义的提示信息
f) Package Manager(包管理器)
Android系统内的程序管理
g)Telephony Manager(电话管理器)
管理所有的移动设备功能
h)Resource Manager(资源管理器)
提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
i)Location Manager(位置管理器)
提供位置服务
j)XMPP Service(XMPP服务)
提供Google Talk服务
四、 应用程序层
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
总结:
网上搜罗了相关文章,对Android相关架构有了一个基础了解,深入的了解需要以后进一步的学习。
【1】 https://zh.wikipedia.org/wiki/Android#Google.E7.9A.84.E6.94.B6.E8.B3.BC.E5.8F.8A.E7.99.BC.E5.B1.95 ,维基百科 ,Android
【2】http://zh.wikipedia.org/wiki/Linux ,维基百科,Linux
【3】http://blog.sina.com.cn/s/blog_4bc996c40100fawo.html#
【4】http://www.cnblogs.com/royenhome/archive/2010/04/24/1719293.html