Android 层级结构梳理

Posted 童政通

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 层级结构梳理相关的知识,希望对你有一定的参考价值。

目录

初识Android 系统

Android系统的层级结构

APPLICATION 

APPLICATION FRAMEWORK  

Android Runtime   Libraries 

Linux Kernel

Framework简介

常规服务的简单介绍

核心服务介绍

1:ActivityManagerService

2:WindowManagerService


初识android 系统

   Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。

 

Android系统的层级结构

 

APPLICATION 

      主要为系统中的应用,如桌面,闹铃,设置,日历,电话,短信等系统应用。

 

APPLICATION FRAMEWORK  

 

Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供了以下服务:

  1. 丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器;
  2. 内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据;
  3. 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layout files );
  4. 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息;
  5. 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

 

Android Runtime   Libraries 

  1.   Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 “dx” 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
  2. Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务

Linux Kernel

     Android 的核心系统服务依赖于 Linux 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。

 

Framework简介

常规服务的简单介绍

 SystemServer 是framework中非常重要的一个进程,它是在虚拟机启动后运行的第一个java进程,SystemServer启动其他系统服务,这些系统服务都是以一个线程的方式存在于SystemServer进程中。 

  1. EntropyService 提供伪随机数
  2. PowerManagerService 电源管理服务
  3. ActivityManagerService 最核心的服务之一,管理Activity
  4. TelephonyRegistry 通过该服务注册电话模块的事件响应,比如重启、关闭、启动等
  5. PackageManagerService 程序包管理服务
  6. AccountManagerService 账户管理服务,是指联系人账户,而不是Linux系统的账户 
  7. ContentService ContentProvider服务,提供跨进程数据交换
  8.  BatteryService 电池管理服务
  9. LightsService 自然光强度感应传感器服务
  10.  VibratorService 震动器服务 
  11. AlarmManagerService 定时器管理服务,提供定时提醒服务
  12.  WindowManagerService Framework最核心的服务之一,负责窗口管理
  13.  BluetoothService 蓝牙服务
  14. DevicePolicyManagerService 提供一些系统级别的设置及属性
  15.  StatusBarManagerService 状态栏管理服务
  16. ClipboardService 系统剪切板服务
  17.  InputMethodManagerService 输入法管理服务
  18.  NetStatService 网络状态服务
  19. NetworkManagementService 网络管理服务
  20. ConnectivityService 网络连接管理服务
  21. AccessibilityManagerService 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果
  22.  MountService 挂载服务,可通过该服务调用Linux层面的mount程序
  23. NotificationManagerService 通知栏管理服务,Android中的通知栏和状态栏在一起,只是界面上前者在左边,后者在右边
  24.  DeviceStorageMonitorService 磁盘空间状态检测服务
  25.  LocationManagerService 地理位置服务
  26.  SearchManagerService 搜索管理服务
  27.  DropBoxManagerService 通过该服务访问Linux层面的Dropbox程序
  28.  WallpaperManagerService 墙纸管理服务,墙纸不等同于桌面背景,在View系统内部,墙纸可以作为任何窗口的背景 
  29. Audioservice 音频管理服务
  30. BackupManagerService 系统备份服务
  31. AppWidgetService         Widget服务
  32.  RecognitionManagerService 身份识别服务
  33.  DiskStatsService 磁盘统计服务

 

核心服务介绍

1:ActivityManagerService

        ActivityManagerService(以下简称:AMS)是android系统的一个系统服务,是应用进程的管理服务端,直接的控制了应用程序的各个行为,保证了系统中不同的应用程序之间能够和谐的合理的进行调度运行。

AMS是android上层系统最核心的模块之一,其主要的工作是对所有的应用进程及其进程中的四大组件进行管理。(当然这里面也涉及了一些window、电源、权限等内容)

对进程的管理包括:进程的创建与销毁、进程的优先级调整。对组件的管理包括:Activity的调度管理、Service的管理、Broadcast的分发、以及ContentProvider管理。

 

 

2:WindowManagerService

   对系统中所有窗口进行管理;动画处理 ;Input分发、处理;Display管理(多屏显示) 。

 

 

 

 

 

 

 

以上是关于Android 层级结构梳理的主要内容,如果未能解决你的问题,请参考以下文章

DAOServiceController及View层级结构梳理

MySQL 基础知识梳理学习----记录在页面层级的组织管理

VUE展示无限层级树形数据结构

3Android 12DisplayArea层级结构

Android 12 - WMS 层级结构 && DisplayAreaGroup 引入

Android 12 - WMS 层级结构 && DisplayAreaGroup 引入