Android 层级结构梳理
Posted 童政通
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 层级结构梳理相关的知识,希望对你有一定的参考价值。
目录
初识android 系统
Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。
Android系统的层级结构
APPLICATION
主要为系统中的应用,如桌面,闹铃,设置,日历,电话,短信等系统应用。
APPLICATION FRAMEWORK
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供了以下服务:
- 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器;
- 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据;
- 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layout files );
- 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息;
- 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
Android Runtime Libraries
- Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 “dx” 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
- Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务
Linux Kernel
Android 的核心系统服务依赖于 Linux 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。
Framework简介
常规服务的简单介绍
SystemServer 是framework中非常重要的一个进程,它是在虚拟机启动后运行的第一个java进程,SystemServer启动其他系统服务,这些系统服务都是以一个线程的方式存在于SystemServer进程中。
- EntropyService 提供伪随机数
- PowerManagerService 电源管理服务
- ActivityManagerService 最核心的服务之一,管理Activity
- TelephonyRegistry 通过该服务注册电话模块的事件响应,比如重启、关闭、启动等
- PackageManagerService 程序包管理服务
- AccountManagerService 账户管理服务,是指联系人账户,而不是Linux系统的账户
- ContentService ContentProvider服务,提供跨进程数据交换
- BatteryService 电池管理服务
- LightsService 自然光强度感应传感器服务
- VibratorService 震动器服务
- AlarmManagerService 定时器管理服务,提供定时提醒服务
- WindowManagerService Framework最核心的服务之一,负责窗口管理
- BluetoothService 蓝牙服务
- DevicePolicyManagerService 提供一些系统级别的设置及属性
- StatusBarManagerService 状态栏管理服务
- ClipboardService 系统剪切板服务
- InputMethodManagerService 输入法管理服务
- NetStatService 网络状态服务
- NetworkManagementService 网络管理服务
- ConnectivityService 网络连接管理服务
- AccessibilityManagerService 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果
- MountService 挂载服务,可通过该服务调用Linux层面的mount程序
- NotificationManagerService 通知栏管理服务,Android中的通知栏和状态栏在一起,只是界面上前者在左边,后者在右边
- DeviceStorageMonitorService 磁盘空间状态检测服务
- LocationManagerService 地理位置服务
- SearchManagerService 搜索管理服务
- DropBoxManagerService 通过该服务访问Linux层面的Dropbox程序
- WallpaperManagerService 墙纸管理服务,墙纸不等同于桌面背景,在View系统内部,墙纸可以作为任何窗口的背景
- Audioservice 音频管理服务
- BackupManagerService 系统备份服务
- AppWidgetService Widget服务
- RecognitionManagerService 身份识别服务
- DiskStatsService 磁盘统计服务
核心服务介绍
1:ActivityManagerService
ActivityManagerService(以下简称:AMS)是android系统的一个系统服务,是应用进程的管理服务端,直接的控制了应用程序的各个行为,保证了系统中不同的应用程序之间能够和谐的合理的进行调度运行。
AMS是android上层系统最核心的模块之一,其主要的工作是对所有的应用进程及其进程中的四大组件进行管理。(当然这里面也涉及了一些window、电源、权限等内容)
对进程的管理包括:进程的创建与销毁、进程的优先级调整。对组件的管理包括:Activity的调度管理、Service的管理、Broadcast的分发、以及ContentProvider管理。
2:WindowManagerService
对系统中所有窗口进行管理;动画处理 ;Input分发、处理;Display管理(多屏显示) 。
以上是关于Android 层级结构梳理的主要内容,如果未能解决你的问题,请参考以下文章
DAOServiceController及View层级结构梳理
MySQL 基础知识梳理学习----记录在页面层级的组织管理