本文使用Skia Debugger来分析图层合成的方法,可以评估App或者系统的图层参数设置是否正确,是否存在多余的图层。特别是在座舱、屏幕比较多、自定义UI和图层比较多的场景下,用途是非常大的。(它也是可以用于分析App绘制的Skia过程哦。)
本文从大的视图给出一个Android图层合成的技术描述,从App端开始,直到在屏幕上显示。本文侧重于SurfaceFlinger端,包括了HWC合成与GPU合成,大致涵盖了各个模块的作用和关联。由于是技术栈的概述性文章,目的是一览技术栈,明白Android图形是怎么显示的,会省略很多基础性的内容,以及详细的描述。
本文介绍 window layer布局,即 DisplayArea树 构建方法。有别于其它文章的介绍,从窗口层级的角度,探索其本身的设计思想,具有鲜明的原创特征。通过本文,我敢说window layer布局,或者说 窗口层级结构,比DisplayArea树更直观易懂。
Android是如何感知进程死亡,又是如何处理的呢?基于AppExitInfoTracker,本文将梳理进程的各种原因死亡流程,包括:自杀、被杀、Native Crash、Java Crash。
你是否思考过,我们在java 看到的OomAdj是什么?其实来源于 kernel中的oom_killer,oom_adj 全称为 Out of Memory Adjustment
。所以,adj就是Adjustment的缩写。那么,用户空间的adj与内核空间的adj又是什么关系呢?
Kernel 的 oom_kill 主要解决内核内存紧张的问题,当系统内存不足时,内核会触发 oom_kill 机制,选择性杀掉进程,并利用 reaper 快速清理匿名页。