美文网首页
知识体系七:android 源代码效率优化的点

知识体系七:android 源代码效率优化的点

作者: WangRain1 | 来源:发表于2020-05-07 11:06 被阅读0次

1.android 在ui绘制方面上做的优化主要体现在:
      1. 硬件/软件加速绘制的缓存、
      2. VSYNC信号的引入、
      3. 控件树代码绘制流程:加入dirty区域绘制/动画模块代码区分不改变区域大小的动画(透明度)和改变区域大小的动画(移动/缩放)
          view实心空心绘制的区分、
都体现了绘制方向的优化,极大的改善了早期android在ui界面上效率底下的问题。

performDraw() 首先判断是否开启硬件加速缓存,开启走硬件绘制,主要是通过opengl指令进行绘制,否走软件绘制,软件绘制首先计算dirty rect区域,并且通过surface.lockSurface()的到对应的canvse。并且把canvse传递给Decorview的draw()。

调用view的draw()然后判断背景是否透明,透明就不用绘制背景。onDraw()绘制父类界面,dispatchDraw(),分发给子view。这里分发给ViewGroup,在viewGRoup中首先会拿到所有ziview,并且循环把canvse传给ziview,子view首先判断是否有动画需要绘制,然后对canvse进行移动tanslate,缩放等matrix处理,透明,剪切,这也是为什么传统动画不会改变view的大小尺寸位置,因为matrix是作用在canvse上的。生成bitmap buildcache缓存,

相关文章

网友评论

      本文标题:知识体系七:android 源代码效率优化的点

      本文链接:https://www.haomeiwen.com/subject/icyoghtx.html