在Android中存在两棵树一个View树,一个Layer树,前者用来存储xml树信息,后者用来作为硬件加速的树。Android使用图形库OpenGL ES、Vulkan、Skia绘制树所描述的ui信息,在软件绘制的时候使用Skia库,在硬件绘制的时候使用Skia、OpenGL ES、Vulkan混合使用(OpenGL ES、Vulkan作为后端),为了优化Android平台的绘制流程度,引进了垂直信号和三级缓存。

接下来我们将要学习的内容有如下:

工程结构

  • AOSP项目结构
    • frameworks/base/opengl/java : opengl java接口
    • frameworks/base/core/java/android/view : view树
    • frameworks/base/graphics :graphics java接口
    • frameworks/base/libs/hwui : 硬件加速、渲染线程
    • frameworks/native/opengl : opengl native接口
    • frameworks/native/vulkan : vulkan接口

参考资料

从架构到源码:一文了解Flutter渲染机制

如果您觉得写得还不错或者对您有所启发,那就赶紧动动您的小指头,点击下面的红色按钮,狠狠地打赏一番吧。