>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20465 个阅读者 刷新本主题
 * 贴子主题:  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 重新编辑]
  Java面向对象编程-->Java常用类(上)
  JavaWeb开发-->Servlet技术详解(Ⅱ)
  JSP与Hibernate开发-->Java应用分层架构及软件模型
  Java网络编程-->对象的序列化与反序列化
  精通Spring-->Vue CLI脚手架工具
  Vue3开发-->创建综合购物网站应用
  Android 控件布局实现卡片效果,阴影效果
  Android的Service和广播的讲解
  Android 自定义Menu
  Android线程处理简述
  编译Irrlicht On Android
  在Window中下载Android源代码的步骤
  Android UI学习 - Menu
  Android多线程及异步处理问题
  Android多线程断点续传
  Android资源命名规范
  Android OpenGL ES2.0学习:基础三角形案例
  Android性能优化技巧
  Android性能优化-过度渲染
  到底什么是AndroidX?
  Android炫酷菜单
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。