Yinchen 的博客
首页
分类
归档
关于
首页
分类
归档
关于
登录
标签:Surface
清除筛选
Android Framework(二十五)Android底层渲染:Surface的底层实现原理
2026/10/21
Android系统
Surface 是一块内存吗?从 Java 层的使用方式看,lockCanvas 像是直接锁定一块画布。底层对象关系却显示,Surface 并不对应一块固定内存。它持有 IGraphicBufferProducer(下文简称 IGBP),也就是 GraphicBuffer 生产者的远程 Binder 对象。 App 进程里的 Surface、Canvas 和 SkBitmap 负责申请缓冲区并
Android-Framework(二十三)-SurfaceFlinger 源码分析:屏幕刷新、Vsync 与帧分发
2026/10/16
Android系统
在 onDraw 里画完的东西不会立刻出现在屏幕上。这不是 Android 故意拖慢刷新,而是因为“画进内存”和“显示到屏幕”本来就是两件事:App 先把像素写进一块 Buffer,再把它交出去;SurfaceFlinger 等到合适的刷新时刻,合成各个窗口的 Buffer,最后才把结果送给显示硬件。 这条链路真正的节拍器是 Vsync,即垂直同步信号。对 60Hz 屏幕来说,它约每 16.6
Android-Framework(十四)-Launcher的启动过程
2026/10/07
Android系统
一、AMS.systemReady 桌面启动请求由 AMS 在 systemReady 里发出( frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java 第 11810 行附近): startHomeActivityLocked 做的事分三件: 拼home intent、让 PMS 解
SurfaceFlinger 图解
2026/09/05
Android系统
Android 显示问题最终常落到两个问题上:一块 Buffer 什么时候被拿去合成,以及它以什么形式交给显示硬件。SurfaceFlinger 的核心价值就在这里。它不负责 App 怎么画,也不直接控制 DPU 的寄存器;它站在系统窗口模型和硬件合成能力之间,把可见 Layer、Buffer、VSync、Fence、HWC 策略组织成一次可送显的提交。 这条链路看起来长,但边界清楚。App 生产