Android性能优化之布局优化

为什么需要优化布局

优化布局不是说优化界面的显示效果更好看、更美观。是指让界面的交互体验更好、更流程。因为手机性能有限,而绘制UI布局是很吃资源的(CPU,GPU)。所以,需要我们写出优美简洁的布局,尽可能的少占资源。

我们平时玩游戏的时候,会看到游戏中会显示fps。当fps的值越大游戏越是流畅,当fps接近60的时候再往上也无法感知了。fps是指每秒钟显示的帧数,人眼感觉的平滑的帧数就是在60帧左右。所以,如果想要我们写出的UI体验看起来是流畅的,就要达到60fps,也就是一秒钟绘制60帧图,一帧图需要在16ms中绘制出来。如果我们的布局写的过于复杂,系统没办法在16ms中绘制出一帧的时候,这时候的页面体验就会让人感觉卡顿。

老司机是怎么优化的

① 使用include标签

对于像我们大部分页面都有的顶部的TopBar这类UI,完全不需要每一个UI自己都重新写一份,代码冗余也不利于管理。这时候我们可以将TopBar的部分单独写一个layout,然后在需要的地方直接通过include标签引进来即可。

② 使用merge标签

使用merge标签搭配include标签可以减少嵌套,不然正常情况下使用include会再增加一层嵌套的。

③ 使用viewstub标签

对于一些场景下使用viewstub是个不错的选择,比如你默认要隐藏部分View,如果使用传统的方式尽管使用了VISIABLE=GONE但是还是会被加载消耗资源,如果使用viewstub的话是不会加载的。

④ 使用ConstraintLayout

这个在之前的有一篇专门介绍的文章了,减少布局的嵌套使用这个布局是最好的了,以前那种使用好几层嵌套才能实现的UI。现在只需要ConstraintLayout就可以了。强烈推荐!!

如何分析自己的UI是否合理

这里介绍Android系统中提供的辅助开发工具:

1️⃣ 打开开发者选项中的GPU呈现模式分析

我们可以看到在屏幕的下方有条形图随着我们的交互在不停的变化,每个色值都是代表着GPU、CPU等的耗时,一条绿色的横线是16ms,所以如果你在滑动页面的时候所有的条形图都在绿线以下就表明是非常流畅的,否则是有卡顿的存在的。下图是页面示例:

在这里插入图片描述

2️⃣ 打开开发者选项中的调试过渡绘制

谷歌官方给的参考是:蓝色->绿色->淡红->深红。 表示UI从绘制一次都多次重复绘制的程度,颜色越红表示过渡绘制越是严重。所以我们要尽量控制我们的UI绘制是显示的蓝色或者绿色。
在这里插入图片描述

欢迎关注微信公众号:南京Android部落
更多Android、Java技巧等你来拿!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值