Android 硬件加速Android技术知识Android开发

Android硬件加速原理与实现

2018-03-04  本文已影响72人  三十二蝉
页面渲染背景知识:
CPU与GPU结构对比

硬件加速的主要原理,就是通过底层软件代码,将CPU不擅长的图形计算转换为GPU专用指令,由GPU完成。
很多计算机中的GPU有自己独立的显存;没有独立显存则使用共享内存的形式,从内存中划分一块区域作为显存。显存可以保存GPU指令等信息。

Android UI渲染处理节点

Android绘制流程

渲染场景 软件绘制 硬件加速 加速效果分析
页面初始化 绘制所有View 创建所有DisplayList GPU分担了复杂计算任务
在一个复杂页面调用背景透明TextView的setText()方法,且调用后尺寸位置不变 重绘脏区所有View TextView及每一级父View重建DisplayList 重叠的兄弟节点不需CPU重绘,GPU会自行处理
TextView逐帧播放Alpha/Transition/Scale动画 每帧都要重绘脏区所有View 除第一帧同场景2,之后每帧只刷新TextView对应RendorNode的属性 刷新一帧的性能极大提高,动画流畅度提高
修改TextView透明度 重绘脏区所有View 直接调用RendorNode.setAlpha更新 加速前需全页面遍历,并重绘很多View;加速后只触发DecorView.updateDisplayListIfDirty,不再往下遍历,CPU执行时间可忽略不计。
软件绘制刷新逻辑
总结:
本文参考
上一篇下一篇

猜你喜欢

热点阅读