渲染
文章平均质量分 82
李小四的
值得你的时间
展开
-
「Android渲染」图像是怎样显示到屏幕上的?
我们每天花很多时间盯着手机屏幕,不知道你有没有好奇过:手机屏幕上的这些东西是怎么显示出来的?这时候来了一位Android程序员(当然也可以是iOS或者是前端程序员)说: 这里显示的其实是一个View树,我们看到的都是大大小小的View。。。。听起来很有道理,我们也经常指着屏幕说这个View怎么怎么样,可问题又来了:屏幕认识View吗?我们把一个View发给屏幕,它就显示出来了?程序员老兄又来了: 屏幕当然不能识别View,它作为一个硬件,只能根据收到的数据改变每个像素单元的数据,这样整体原创 2021-01-24 22:55:09 · 1803 阅读 · 2 评论 -
【Android渲染】在onDraw()中创建对象的隐形成本
熟悉Android自定义View的人大概都知道:不要在onDraw里创建对象大家在讲到这里,理由大概都是:onDraw()被调用快速高频 -->快速频繁申请内存 —>频繁GC–>线程挂起 -->UI卡顿当然,上面的理由重要且正确,没有什么可说的。因为它明显地写在了onDraw()里,你一看就能联想到这些内容,所见即所得。今天聊一个容易被忽略(或完全不知道)的隐形成本:我们重写onDraw()方法是为了自定义View,这时创建的对象很可能是与View绘制相原创 2021-01-18 03:05:33 · 826 阅读 · 0 评论 -
【Android渲染】为什么alpha渲染性能低?
开门见山1. 多次写入像素在渲染不透明的像素时,只需要写入一次在渲染透明像素时,每个像素至少需要写入两次第一次是之前的像素值第二次把之前的颜色与设置的不透明度做混合,产生一个新的颜色值,写入这个新的颜色值。我们看到的一层下面有另一层的半透明效果,对于屏幕来说就是一个混合后的具体的颜色值。2. 指令重排无效发给RenderThread的DisplayList,里面的内容是按照View层级来排列的,默认顺序执行,但这样性能并不好:分治、归并的思路可以提高性能,大家都听过指令重排序原创 2020-12-06 00:55:00 · 414 阅读 · 0 评论