硬件加速和软件加速区别
layout: post title: “2020-02-27-硬件加速和软件加速区别.markdown” date: 2020-02-27 12:11:30 +0800
- 硬件加速流程 从CPU开始将绘制数据传递给GPU,通过OpenGl生成展示数据,传给surfaceflinger 合成最终屏幕展示的图像.
-
软件渲染 从CPU中获取绘制数据,通过skia绘制程序直接生成界面数据,然后传给surfaceflinger
-
硬件加速的优势体现在2个方面 1) 使用GPU,动画运算性能有优势 2) Canvas使用的是DisplayListCanvas,对比compatibleCanvas, 增加了绘制命令的缓存,进一步提升性能.
- 测试 1) 新建一个View,在onDraw打印canvas类型和tag 2) 新建Recyclerview,子view包含上面的View, 并在绑定时,设置tag为position 3) 在Activity开启和关闭硬件加速,观察log变化; 验证 在关闭硬件加速时,简单的滑动会带来canvas重绘,而打开硬件 加速,没有View的重绘流程.