>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20185 个阅读者 刷新本主题
 * 贴子主题:  Android UI优化—从Android渲染原理理解UI卡顿 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2020-03-08 15:26:27     消息  查看  搜索  好友  邮件  复制  引用

                                                                                                

Android UI优化—从Android渲染原理理解UI卡顿

Android渲染机制

1、Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染

2、渲染的过程是由CPU与GPU协作完成

如下图:

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

为什么是16ms?

1、人眼与大脑之间的协作无法感知超过60fps的画面更新

2、1000/60hz,相当于16ms

什么是GPU?

解释什么是GPU,首先要弄清楚一个概念—栅格化。

栅格化就是将Button,Shape,Path,String,Bitmap等UI组件拆分到不同的像素上进行显示。如下图:

     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

UI的渲染过程由CPU和GPU共同完成,其中CPU负责把UI组件计算成Polygons,Texture纹理,然后交给GPU进行栅格化渲染。  GPU的引入就是为了加快栅格化的操作。

CPU和GPU协同工作的示意图如下:

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

UI卡顿的原因

没有办法在16ms内完成UI更新操作

如何解决UI卡顿

1、优化UI层次结构,去除不必要的嵌套,尽量使布局扁平化

2、减少过度绘制

                                                                                                                
----------------------------
原文链接:https://blog.csdn.net/jiangguangchao/article/details/85066718

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-10 11:22:25 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=2656

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员