Android / WindowManagerService
文章平均质量分 94
Omni-Space
专注Android, Mobile Security and AI
展开
-
android的窗口机制分析------事件处理
由于Android是linux内核的,所以它的事件处理也在linux的基础上完成的,因此本文我们从linux 内核往应用这个方向慢慢理清它的处理过程。 linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventXX来命名的,如event0,event1等等,但是如果是虚拟转载 2017-03-09 18:15:02 · 428 阅读 · 0 评论 -
android的窗口机制分析------ViewRoot类
ViewRoot是GUI管理系统与GUI呈现系统之间的桥梁,根据ViewRoot的定义,我们发现它并不是一个View类型,而是一个Handler。它的主要作用如下:A. 向DecorView分发收到的用户发起的event事件,如按键,触屏,轨迹球等事件;B. 与WindowManagerService交互,完成整个Activity的GUI的绘制。 事件处理和GUI绘制转载 2017-03-09 18:16:27 · 424 阅读 · 0 评论 -
android的窗口机制分析------UI管理系统
Activity可以看做是整个Android系统的人机接口,它提供了一个窗口来绘制UI,每个Activity在启动时,我们都需要给它设置一个Content view,作为Activity所呈现的UI内容,这个过程是通过setContentView()方法来实现的。 众所周知,android系统中强化了view的概念,主要是体现在对view的管理上,Android中的view以2种形态转载 2017-03-09 18:17:36 · 518 阅读 · 0 评论 -
android surfaceflinger研究----Surface机制
前一篇文章介绍了Android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进行的。 android中的Surface机制这一块代码写的比较难理解,光叫Surface转载 2017-03-09 18:20:52 · 642 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是Android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理清思路,另一个原因就是以后当这块内容忘记的时候,能快速的通过这个记录捡起来。 一. android显示系统的建立 我们看Surfa转载 2017-03-09 18:22:28 · 561 阅读 · 0 评论 -
android surfaceflinger研究----SurfaceFlinger loop
上一篇文章介绍了整个Surface机制(我是这么称呼的,主要是Surface的建立,Surface的显示存储的管理),同时我们也介绍过了整个显示系统,那么这篇文章就介绍一下SurfaceFlinger 这个核心服务层的机制。 从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,转载 2017-03-09 18:23:58 · 545 阅读 · 0 评论 -
Activity到底是什么时候显示到屏幕上的呢
这两天我的包工头歪龙木·灵魂架构师·王半仙·Yrom( https://yrom.net )给我派了一个活:统计App冷启动时间。这个任务看上去不难,但是要求统计出来的时间要准,要特别准。意思就是,我必须要按Activity绘制到屏幕上这个时间节点作为标杆,来进行我的统计工作。毕竟如果是因为视图处理不当而导致的measure/layout/draw耗时太久,这是不能忍的,需要及时统计到。虽然有转载 2017-05-19 14:26:58 · 2235 阅读 · 0 评论 -
(原创)Android6.0亮屏流程分析
1.概述 Android的亮屏流程从android系统结构层次来分可以分为三个流程,App应用唤醒源;Framework层Power结合Display,Light服务做亮屏绘制准备工作;底层驱动点亮背光灯。这里重点分析一下Framework层亮屏的一系列准备工作流程。 2.流程分析 2.1 唤醒源 通过了解PowerMa转载 2017-11-18 13:29:07 · 886 阅读 · 0 评论 -
(原创)Android6.0亮屏流程之Keyguard Window绘制
亮灭屏问题一直是Android模块最常见的问题之一。 由于问题出现问题的地方涉及到公司代码,我这里仅仅只作原生代码模块的分析 其实在看过另外一篇关于android亮屏流程的文章就会发现,影响亮屏快慢的因素大致有三种:1.设置背光流程出问题了,导致屏幕黑屏,2.window绘制时间过长,导致屏幕block时间过长;3.底层surfacecontro转载 2017-11-18 13:38:34 · 750 阅读 · 1 评论