随笔分类 -  Framework

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

点击右上角即可分享
微信分享提示