万丈高楼平地起,说的是重在基础,用来形容Android的学习正好合适(人往高处走,基础扎实,水平才能稳步提高)。上篇“Android 初级之路-Android 发展史”我们知道了Android的由来及历史发展,本篇我们继续来了解其基础–Android系统架构。
Android是基于Linux
内核的操作系统并对Linux内核进行了加强,如其系统架构图(我是用Viso作图的),其系统架构采用分层思想,从上到下分别为Application(应用层)、Application Framework(应用框架层)、Libraries and Android Runtime(系统库及Android运行时,系统运行库层)和Linux Kernel(Linux内核层)。
Android应用层
Android应用层提供的服务即我们常说的应用,它是与用户直接交互的,如系统自带的日历、通话、短信、浏览器等以及我们在Android应用商店(不同的手机品牌叫法不一样)中下载的打飞机游戏、音乐软件等,其提供了实实在在的功能供用户使用。
Android应用框架层
Android应用框架层提供了开发Android应用程序所需的一系列类库,通常是系统API
接口,使开发人员可以方便、快速地构建应用整体框架,其具体的模块内容及功能如下:
(1)Activity Manager
(活动管理器):管理各个应用程序活动窗口并为窗口提供交互的接口;
(2)Window Manager
(窗口管理器):管理所有开启的窗口程序;(3)Content Provider
(内容提供者):提供应用内或应用程序间数据共享功能;
(4)View System
:创建应用程序基本视图组件,如ListView、TextView、WebView等控件;
(5)Notification Manager
(通知管理器):用户可以自定义状态栏中的提示信息;
(6)Package Manager
(包管理器):应用程序安装进手机后,以包名作为文件夹名进行存储,此API提供诸如应用程序的安装与卸载功能以及提示相关的权限信息;
(7)Resource Manager
(资源管理器):提供图片、音视频等非代码资源;(8)Location Manager
(位置管理器):提供位置信息服务;
(9)Telephony Manager
(电话管理器):管理所有移动设备功能;
(10)XMPP
服务:Google提供的后台推送服务;
Android系统运行库层
Android系统运行时库层包含两部分内容,一个是系统库,一个是Android运行时。
系统库提供了系统功能通过Android应用程序框架层为开发者提供服务,其类库的内容主要包含数据库、2D/3D图形处理引擎、多媒体库、数据传输服务等。另外,Android NDK
(Android Native Development Kit
,Android原生库)也为开发者提供了直接使用Android系统资源的能力。
Android运行时包含核心库与Dalvik
虚拟机两部分。
(1)核心库提供了Java SE API
的绝大多数功能,并提供Android的核心API,如android.os、android.net、android.util、android.meida
等。
(2)Dalvik
虚拟机是基于Apache
的Java虚拟机,被改进以适应低内存、低处理速度的移动设备环境,负责运行Android应用程序,提供实现进程隔离与线程调试管理、安全和异常管理、垃圾回收等重要功能。
Android Linux内核层
Android Linux内核层作为系统架构的最底层借助Linux内核服务实现硬件设备驱动,从而为上层提供诸如进程与内存管理、网络协议栈、电源管理以及驱动模型等功能,同时Linux内核也是硬件与软件之间的抽象层(Hardware Abstract Layer
,HAL),它是对硬件设备具体实现的抽象,这样开发者就无需考虑系统底部的实现细节,提高开发效率了。
总结
这就是Android四层架构模型的简介,从Android架构图中我们可以发现,上层依赖下层或底层提供的各种功能或服务,它们之间相互独立且分工明确,这种分层结构保证了层与层之间的低耦合,当下层或下层层内发生改变时,上层应用无需任何改变,开发者能专心于应用层的开发。
只因坚持,所有不曾放弃;只因努力,所以遇见美好。