Android FrameWork基础讲解

android的系统架构采用了分层架构的思想,如图下图所示。

 

Android FrameWork基础讲解_第1张图片

 

 

从下层到上层共包括四层,分别是linux内核层、系统运行库层、应用框架层和应用层。

 

详细介绍

 

linux内核层

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

 

 

 

系统运行库层

如图可知,该层又分为系统库和Android运行时。

系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机。前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.Net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。--SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中;OpenGL-开放图形库(英语:Open Graphics Library,缩写为 OpenGL)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规范,它用于生成二维、三维图像。

 

 

 

应用框架层(Android FrameWork)

该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。

该框架包含:活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器、XMPP服务。

 

活动管理器:管理各个应用程序的生命周期以及通常的导航回退功能。作用:负责一新ActivityThread进程创建,Activity生命周期的维护。其自身也存在一个框架,本文就不再讨论,有兴趣的可以看一看。

 

 窗口管理器:管理所有的窗口程序,在安卓应用框架中窗口主要分为两种:

(一)是应用窗口(一个activity有一个主窗口,弹出的对话框也有一个窗口,Menu菜单也是一个窗口。在同一个activity中,主窗口、对话框、Menu窗口之间通过该activity关联起来)。

(二)是公共界面的窗口(系统级别的窗口如:最近运行对话框、关机对话框、状态栏下拉栏、锁屏界面等)窗口管理系统是基于C/S模式的。整个窗口系统分为服务端和客户端两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等。

 

 内容提供器:使得不同应用程序之间存取或者分享数据。就是可以配置自己的Content Provider去存取其他的应用程序或者通过其他应用程序暴露的Content Provider去存取它们的数据,总的来说就是提供了一个数据共享机制。

 

 视图系统:构建应用程序的基本组就是文本框、按钮等。

 

 通告管理器:使得应用程序可以在状态栏显示自定义的提示信息,通过NotificationManager 、 Notification这两个类可以完成在状态栏显示提示的信息。

 

 

包管理器:安卓系统内的程序管理,Package Manger是一个实际上管理应用程序安装、卸载和升级的API。当我们安装APK文件时,Package Manager会解析APK包文件和显示确认信息。

     

电话管理器:管理所有的移动设备 用于管理手机通话状态、获取电话信息(设备、sim卡、网络信息),监听电话状态以及调用电话拨号器拨打电话。

 

资源管理器:提供应用程序使用的各种非代码资源。提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

        

位置管理器:提供位置服务,LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置、注册和注销来自某个。LocationProvider的周期性的位置更新、注册和注销接近某个坐标时对一个已定义的Intent的触发等。总的来说就是提供有关位置的操作。

     

XMPP服务:例如提供Google Talk 服务,XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议):是一种即时消息协议用于信息的传输。是一种基于XML的开放式实时通信协议,XMPP是基于服务器的也是分散式的。

 

 

 

 

应用层

所有安装在手机上的应用程序都是这个层,比如手机自带的程序或者下载的各种APP等等。

你可能感兴趣的:(综合)