随笔分类 - Framework
摘要:1 前言 surfaceflinger 的作用是合成来自 WMS 的 Surface 数据,并发送到显示设备。 SurfaceFlinger 服务不同于 AMS、WMS、IMP、PMS、DMS 等服务,主要区别如下: AMS 等由 SystemServer.java 拉起,SurfaceFl
阅读全文
摘要:1 前言 IMS启动流程 中介绍了 IMS 在 Java 层和 Native 层的初始化流程,以及创建 NativeInputManager、InputManager、InputReader、InputDispatcher、EventHub 等对象过程;View添加过程 中介绍了从 WindowMa
阅读全文
摘要:1 前言 IMS 是 InputManagerService 的简称,主要负责输入事件管理。 1.1 基本概念 输入设备:屏幕、电源/音量、键鼠、充电口、蓝牙、wifi 等 设备节点:当输入设备可用时,Linux 内核会在 /dev/input 中创建对应的设备节点 输入事件:触摸事件、按键事件
阅读全文
摘要:1 前言 View添加过程 中介绍了从 WindowManagerImpl 的 addView() 方法到 WindowState、SurfaceSession 的创建流程,本文将介绍 Surface 的创建流程。应用进程中,ViewRootImpl 持有 Surface 对象,system_ser
阅读全文
摘要:1 前言 Activity启动流程 中介绍了从点击桌面上应用快捷方式到 Activity 的 onCreate() 方法调用流程,本将介绍应用进程的启动流程。由于应用进程启动流程复杂,本文按进程将其拆分为3个部分展开介绍: system_server 进程:介绍从 AMS.LocalService(
阅读全文
摘要:1 前言 ATMS启动流程 介绍了 ActivityTaskManagerService(ATMS)的启动和初始化流程,本文将介绍 Activity 的启动流程。由于 Activity 启动流程复杂,本文按进程将其拆分为3个部分展开介绍: Launcher 进程:介绍从 Launcher(start
阅读全文
摘要:1 前言 AMS 即 ActivityManagerService,负责 Activy、Service、Broadcast、ContentProvider 四大组件的生命周期管理。本文主要介绍 AMS 的启动流程和初始化过程。AMS 在初始化的过程中,也伴随着了ATMS(ActivityTask
阅读全文
摘要:1 前言 ATMS 即 ActivityTaskManagerService,用于管理 Activity 及其容器(任务、堆栈、显示等)。ATMS 在 Android 10 中才出现,由原来的 AMS(ActivityManagerService)分离而来,承担了 AMS 的部分职责。因此,在
阅读全文
摘要:1 前言 WMS启动流程 中介绍了 WindowManagerService 的启动流程,本文将介绍 View 的添加流程,按照进程分为以下2步: 应用进程:介绍从 WindowManagerImpl(addView 方法)到 Session(addToDisplay 方法)的调用流程; syste
阅读全文
摘要:1 前言 WMS 是 WindowManagerService 的简称。 (1)WMS 主要职责 窗口管理:负责启动、添加、删除窗口,管理窗口大小、层级,核心成员有:WindowContainer、RootWindowContainer、DisplayContent、TaskStack、Task
阅读全文
摘要:1 前言 Task 即任务,一个 Task 对应一个 Activity,其父容器为 TaskStack,子容器为 AppWindowToken。 关于其父类及祖父类的介绍,见 → WindowContainer简介、ConfigurationContainer简介。 2 源码 源码地址→
阅读全文
摘要:1 前言 DisplayContent 用于管理屏幕,一块屏幕对应一个 DisplayContent 对象,虽然手机只有一个显示屏,但是可以创建多个 DisplayContent 对象,如投屏时,可以创建一个虚拟的 DisplayContent。 关于其父类及祖父类的介绍,见 → Windo
阅读全文
摘要:1 前言 TaskStack 用于管理 app,一般一个应用程序对应一个 TaskStack,其父容器为 TaskStackContainers(DisplayContent 的子容器),子容器为 Task。 关于其父类及祖父类的介绍,见 → WindowContainer简介、Config
阅读全文
摘要:1 前言 RootWindowContainer 是窗口容器的根容器,子容器是 DisplayContent。关于其父类及祖父类的介绍,见→WindowContainer简介、ConfigurationContainer简介。 本文主要介绍 WallpaperController 和 Roo
阅读全文
摘要:1 前言 WindowContainer 继承自 ConfigurationContainer,是 WMS 家族的重要基类。ConfigurationContainer简介 中,已介绍 ConfigurationContainer。 本文主要介绍 WindowContainer、Surfac
阅读全文
摘要:1 前言 如图所示,ConfigurationContainer 是 AMS 家族的重要基类;WindowContainer 继承自 ConfigurationContainer,是 WMS 家族的重要基类。 本文主要介绍 ConfigurationContainer、Configurati
阅读全文