Android性能优化----UI流畅度优化
1个回答
展开全部
归纳如下:
说到UI流畅度首先要知道为什么不流畅,在这之前要明白一个概念:60fps VS 16ms
所谓的60fps VS 16msGoogle是官方出品的Android性能优化典范说的-------60帧每秒是目前最合适的图像显示速度,事实上绝大多数的Android设备也是按照每秒60帧来刷新的。为了让屏幕的刷新帧率达到60fps,我们需要确保在时间16ms(1000/60Hz)内完成单次刷新的操作(包括measure、layout以及draw),这也是Android系统每隔16ms就会发出一次VSYNC信号触发对UI进行渲染的原因。也就是说这个过程只要在16s内完成,就可以展示出流畅的画面.
那么问题来了导致卡顿的原因有哪些呢?
1. 过于复杂的布局,比如RelativeLayout、LinearLayout的多层套嵌,CPU负责UI布局元素的Measure, Layout, Draw等相关运算执行并绘制在屏幕上,如果布局层次太深(因为在view的绘制流程中测量时是以深度为优先级递归每个view所以层级套嵌越多,就会越慢),会导致CPU运算过于复杂,运算时长就可能大于16s,就会导致卡顿
2. 过度绘制,比如套嵌的布局还是用相同的背景,这样就会导致一个像素在屏幕上被多次绘制,CPU的绘制时间过长也会卡顿
3 .onDraw中多次创建对象,这样就会导致频繁的GC,会出现内存抖动,触发更多的GC,导致内存不足也会造成卡顿
4. UI线程的复杂运算,在主线程中有复杂的运算会占用时间,最终导致ANR
5 .listview
优化方案:
1.减少布局的套嵌层数,简单布局尽量使用线性布局Linearlayout,因为RelativeLayout会测量两次,相对复杂的布局可以使用约束布局ConstraintLayout(本人很喜欢使用这个布局,相信你也会喜欢的),约束布局简直是为去除嵌套量身定做的,合理使用merge和viewStub标签以及include标签
2. 删除重复的背景色或者背景图
3.自定义view中的onDraw中不要创建过多对象以及耗时操作
4.listview替换为recycleView
说到UI流畅度首先要知道为什么不流畅,在这之前要明白一个概念:60fps VS 16ms
所谓的60fps VS 16msGoogle是官方出品的Android性能优化典范说的-------60帧每秒是目前最合适的图像显示速度,事实上绝大多数的Android设备也是按照每秒60帧来刷新的。为了让屏幕的刷新帧率达到60fps,我们需要确保在时间16ms(1000/60Hz)内完成单次刷新的操作(包括measure、layout以及draw),这也是Android系统每隔16ms就会发出一次VSYNC信号触发对UI进行渲染的原因。也就是说这个过程只要在16s内完成,就可以展示出流畅的画面.
那么问题来了导致卡顿的原因有哪些呢?
1. 过于复杂的布局,比如RelativeLayout、LinearLayout的多层套嵌,CPU负责UI布局元素的Measure, Layout, Draw等相关运算执行并绘制在屏幕上,如果布局层次太深(因为在view的绘制流程中测量时是以深度为优先级递归每个view所以层级套嵌越多,就会越慢),会导致CPU运算过于复杂,运算时长就可能大于16s,就会导致卡顿
2. 过度绘制,比如套嵌的布局还是用相同的背景,这样就会导致一个像素在屏幕上被多次绘制,CPU的绘制时间过长也会卡顿
3 .onDraw中多次创建对象,这样就会导致频繁的GC,会出现内存抖动,触发更多的GC,导致内存不足也会造成卡顿
4. UI线程的复杂运算,在主线程中有复杂的运算会占用时间,最终导致ANR
5 .listview
优化方案:
1.减少布局的套嵌层数,简单布局尽量使用线性布局Linearlayout,因为RelativeLayout会测量两次,相对复杂的布局可以使用约束布局ConstraintLayout(本人很喜欢使用这个布局,相信你也会喜欢的),约束布局简直是为去除嵌套量身定做的,合理使用merge和viewStub标签以及include标签
2. 删除重复的背景色或者背景图
3.自定义view中的onDraw中不要创建过多对象以及耗时操作
4.listview替换为recycleView
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
柚鸥ASO
2024-03-16 广告
2024-03-16 广告
安卓ASO优化原理是通过优化APP名称、图标、描述、覆盖关键词、评论等多个维度,提升APP在应用商店中的榜单排名和搜索排名,从而增加APP的曝光量和下载量。影响ASO的因素包括关键词、应用名称、图标、应用截图及预览视频、描述、下载量、用户留...
点击进入详情页
本回答由柚鸥ASO提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询