美文网首页
Android屏幕渲染机制

Android屏幕渲染机制

作者: 李die喋 | 来源:发表于2019-10-04 22:47 被阅读0次

知识储备

  • CPU:中央处理器,集成了运算等单元 将对象处理为多维图形、纹理(bitmpas drawables等都是一起打包到同意的纹理)
  • GPU:一个类似于CPU的专门用来处理graphics(图像)的处理器,用来帮助加快栅格化操作 也有相应的缓存数据机制。
  • OpenGL ES:功能完善的2D和3D图形应用程序接口API
  • DisplayList:在Android把xml布局文件转换成GPU能够识别并绘制的对象。这个操作是有display(提供逻辑显示区域大小、密度的相关信息)完成的。display持有所有将要交给GPU绘制到屏幕上的数据信息。
  • 栅格化:将图片等矢量图转化为一格格像素点的像素图显示到屏幕上。一个特别费时的操作。
  • 垂直同步VSYNC:帧同步。为了保证CPU、GPU生成帧的速度和display刷新的速度保持一致。

Android 每隔16.6ms会刷新一次屏幕

关于16ms

大多数的Android显示屏是以每秒60帧来刷新的(也就是60Hz)。一帧可以看做是一张独立的照片,60帧每秒就意味着:16ms=1000/60Hz,相当于60fps。这也是为什么Android系统每隔16ms就会发出一次VSYNC信号触发对UI进行渲染,如果这16ms没有完成对视图的绘制,就会出现丢帧的情况。那么为什么Android系统是每秒刷新60帧呢?有专家解释:

人眼与大脑之间的协作是无法感知超过60fps的画面更新,低于30fps是无法顺畅表现绚丽的画面内容的。所以就用60fps来达到想要的效果。

渲染机制分析

渲染流程简介

UI对象---->CPU处理为多维图形,纹理---->通过OpenGL ES接口调用GPU---->GPU对图进行光栅化---->硬件时钟---->VSYNC---->投射到屏幕

16ms的时间主要被两件事情所占用:1.将ui对象转换为一系列多边形和纹理。2.CPU传递处理数据到GPU。

相关文章

网友评论

      本文标题:Android屏幕渲染机制

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