04-Android, UI and the GPU

作者: Viking_Den | 来源:发表于2016-05-14 07:25 被阅读54次

了解Android是如何利用GPU进行画面渲染有助于我们更好的理解性能问题。那么一个最实际的问题是:activity的画面是如何绘制到屏幕上的?那些复杂的XML布局文件又是如何能够被识别并绘制出来的?

Resterization栅格化是绘制那些Button,Shape,Path,String,Bitmap等组件最基础的操作。它把那些组件拆分到不同的像素上进行显示。这是一个很费时的操作,GPU的引入就是为了加快栅格化的操作。

CPU负责把UI组件计算成Polygons,Texture纹理,然后交给GPU进行栅格化渲染。

然而每次从CPU转移到GPU是一件很麻烦的事情,所幸的是OpenGL ES可以把那些需要渲染的纹理Hold在GPU Memory里面,在下次需要渲染的时候直接进行操作。所以如果你更新了GPU所hold住的纹理内容,那么之前保存的状态就丢失了。

在Android里面那些由主题所提供的资源,例如Bitmaps,Drawables都是一起打包到统一的Texture纹理当中,然后再传递到 GPU里面,这意味着每次你需要使用这些资源的时候,都是直接从纹理里面进行获取渲染的。当然随着UI组件的越来越丰富,有了更多演变的形态。例如显示图 片的时候,需要先经过CPU的计算加载到内存中,然后传递给GPU进行渲染。文字的显示更加复杂,需要先经过CPU换算成纹理,然后再交给GPU进行渲 染,回到CPU绘制单个字符的时候,再重新引用经过GPU渲染的内容。动画则是一个更加复杂的操作流程。

为了能够使得App流畅,我们需要在每一帧16ms以内处理完所有的CPU与GPU计算,绘制,渲染等等操作。

参考资料

Google 发布 Android 性能优化典范

相关文章

  • 04-Android, UI and the GPU

    了解Android是如何利用GPU进行画面渲染有助于我们更好的理解性能问题。那么一个最实际的问题是:activit...

  • Flutter的四大线程

    - Platform Task Runner 、UI Task Runner、GPU Task Runner 和 ...

  • Android UI优化

    Android性能优化 - UI篇Android性能优化 - CPU/GPU篇 一、UI层级优化 借助工具:Hie...

  • Android中的UI布局优化

    UI卡顿介绍 Android系统每隔16ms会发出信号触发UI渲染,每次渲染成功就会让UI流畅(CPU,GPU必须...

  • UIView 视图显示原理和卡顿掉帧原因

    CPU - GPU CPU 视图展示cpu操作: Layou: UI布局 文本计算Display: 绘...

  • metal初探

    前言 metal是iOS底层图形渲染技术,它是利用GPU进行渲染,它允许我们程序员直接操作GPU绘制,所以相比UI...

  • 性能优化之UI绘制优化

    UI绘制优化 一.CPU与GPU工作流程 cpu:中央处理器(用于计算) gpu:图形处理器(用于显示) C...

  • Flutter事件模型(基于Android)

    在创建AndroidShellHolder的过程中,会通过ThreadHost创建UI、GPU、IO线程,这些线程...

  • View 性能优化(一)

    1 View 机制简单介绍 UI 渲染还依赖两个核心的硬件:CPU 与 GPU。UI 组件在绘制到屏幕之前,都需要...

  • 性能优化(二,UI绘制优化)

    GPU渲染流程 我们要做UI绘制优化,首先要了解GPU的绘制流程.即问题产生的原因,APP为什么会出现画面的卡顿和...

网友评论

    本文标题:04-Android, UI and the GPU

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