Android 绘制优化.md
场景UI
绘制
刷新
启动
冷启动
温启动
热启动
跳转
页面间切换
前后台优化
响应
按键
系统事件
滑动
根本原因界面绘制
绘制层级太深
页面复杂:控件个数 > 80。
刷新不合理
数据处理
在UI主线程处理数据
数据处理占用CPU高,导致主线程拿不到时间片
内存增加导致GC频繁而引起的卡顿
Android系统显示原理渲染简述Android应用把经过测量,布局,绘制后的surface缓存数据,通过SurfaceFlinger把数据渲染到显示屏幕上,通过Android的刷新机制来刷新绘制。
应用层负责绘制
系统层负责渲染
C/S架构
SurfaceFlinger(C++)
Java API
C++底层具体实现
应用层
Measure
深度优先:先遍历子节点,再遍历兄弟节点。
广度优先:先遍历兄弟节点,在遍历子节点。
Layout:深度优先
Draw
软件绘制
硬件加速(GPU)
比CPU耗电
兼容问题
内存大
系统层
主要工作
响应客户端事件,创建Layer与客户端的Surface建立联系
接收客户端数据及属性,修改Laye ...
绘制优化
场景UI
绘制
刷新
启动
冷启动
温启动
热启动
跳转
页面间切换
前后台优化
响应
按键
系统事件
滑动
根本原因界面绘制
绘制层级太深
页面复杂:控件个数 > 80。
刷新不合理
数据处理
在UI主线程处理数据
数据处理占用CPU高,导致主线程拿不到时间片
内存增加导致GC频繁而引起的卡顿
Android系统显示原理渲染简述Android应用把经过测量,布局,绘制后的surface缓存数据,通过SurfaceFlinger把数据渲染到显示屏幕上,通过Android的刷新机制来刷新绘制。
应用层负责绘制
系统层负责渲染
C/S架构
SurfaceFlinger(C++)
Java API
C++底层具体实现
应用层
Measure
深度优先:先遍历子节点,再遍历兄弟节点。
广度优先:先遍历兄弟节点,在遍历子节点。
Layout:深度优先
Draw
软件绘制
硬件加速(GPU)
比CPU耗电
兼容问题
内存大
系统层
主要工作
响应客户端事件,创建Layer与客户端的Surface建立联系
接收客户端数据及属性,修改Layer属性,如 ...