前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android性能优化之布局优化

Android性能优化之布局优化

作者头像
吴延宝
发布2019-01-09 11:26:42
5550
发布2019-01-09 11:26:42
举报
文章被收录于专栏:中国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绘制是显示的蓝色或者绿色。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 南京Android部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要优化布局
  • 老司机是怎么优化的
    • ① 使用include标签
      • ② 使用merge标签
        • ③ 使用viewstub标签
          • ④ 使用ConstraintLayout
          • 如何分析自己的UI是否合理
            • 1️⃣ 打开开发者选项中的GPU呈现模式分析
              • 2️⃣ 打开开发者选项中的调试过渡绘制
              相关产品与服务
              GPU 云服务器
              GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档