>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 26097 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->操作符
  JavaWeb开发-->访问数据库(Ⅰ)
  JSP与Hibernate开发-->第一个helloapp应用
  Java网络编程-->ServerSocket用法详解
  精通Spring-->计算属性和数据监听
  Vue3开发-->虚拟DOM和render()函数
  Android开发随想:iPhone和Android之间的对话
  Android实用测试方法之Monkey与MonkeyRunner
  用Gradle 构建你的android程序
  Android Application Theme的实现及管理
  Android的Service和广播的讲解
  Android HelloGallery范例实验记录
  创建 和使用Android服务
  Android忽略HTTPS安全验证的解决
  Android 4.0 : 复制APK,复制动态库的Android.mk 文件
  Android学习建议
  UI渲染优化
  Android 加载大图/多图,有效避免OOM
  Android 架构
  Android ListView与SQLite综合使用(水果商品展示案例)
  Android-商品展示案例
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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