码迷,mamicode.com
首页 > 移动开发 > 详细

Android Studido下的应用性能优化总结--布局优化

时间:2016-04-18 09:58:06      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

  • 前言:一个应用的成功=产品设计*性能 ,再此我们不讨论一个应用的设计,那交给我们可爱又可恨的产品经理和UI设计师来决定!所以这里分步骤讨论如何提升一个应用的性能,这里先探讨布局优化问题。

布局优化

  1. 避免过度回执(Overdraw),由于过度绘制会浪费很多的CPU,GPU资源, 
    检查方法:

通过打开开发者选项–>GPU模式呈现分析–>在屏幕上显示为条形图。然后就会看到如下图的情况,最好用真机,模拟器回执有问题。

技术分享 
你可以观察一下绘制的条形图 
tips:每一条柱状线都包含三部分,蓝色代表测量回执Display List的时间,红色代表 OpenGL 渲染 Display List所需要的时间,黄色代码CPU 等待GPU的处理的时间。中间的绿线横线代码VSYNC时间 16ms,需要尽量将所有的条形图控制在这条绿线之下。 如果超过了很多就表明你的布局需要优化了。

通过Hierarchy Viewer分析布局优化

  1. 打开Android Device Monitor方式两种,如图 
    技术分享
  2. 进入以前Eclipse经常遇到的界面,然后在Android Device Monitor按图打开 
    技术分享
  3. 打开自己要看的进程 
    技术分享
  4. 如下图,View Hierarcy 同时能帮助你识别渲染性能比较低的部分。View节点中带有红色或黄色的点代表速度较慢的View对象。如单步运行应用程序那样,你可以这样来判断某个View 速度一直很慢,还是只在某个特定环境下速度才慢。 
    请注意,低性能并不表示一定有问题,特别像是ViewGroup对象,View的子节点越多,结构越复杂,性能越差。 
    View Hierarchy 窗口还可以帮助你找到性能问题。只要看每个View节点的性能指标(颜色点)就可以,你可以看到测量(布局或绘制)最慢的View对象是哪个,这样你就能快速确定,要优先察看哪个问题。 
    技术分享

显示GPU过度绘制

  • 你可以在手机打开 设置—->开发者选项—->显示GPU过度绘制,这个开关的作用是按不同颜色值来显示布局的过度绘制,绘制的层次从最优到最差:蓝,绿,淡红,红。如图

技术分享

  • 图片从上到下代表不同层次的OverDraw,我们在布局时候,尽量减少红色 Overdraw,看到更多的蓝色区域。来看看微信的 Overdraw图和我们自定义的布局Overdraw图吧 
    技术分享

解决布局优化问题

    1. 优化布局层级 
      在Android 中系统对View进行测量布局绘制时,都是对View数的遍历进行操作的。如果一个View的层级数太多,就会严重影响测量布局绘制的速度。Google也在API文档里边中提到讲义View的层级不宜超过10层。tips: 早期Google在Android 中使用LinearLayout为默认的根布局,现在的Android中默认的是RelativeLayout,原因就是因为减少布局层级的原因
    2. 使用< include > 标签重用Layout 
      比如在UI上的Toolbar公用一套布局,而且有些方面也通用一套UI布局的时候,就需要考虑复用标签的问题 tips: 在Android Studio中可以直接提取布局,如图,点击Layout然后起个布局名字就可以提取出include标签了 
      技术分享

    3. 具体情况具体分析,通过上边的三种分析方法分析到需要优化的布局的地方,然后解决优化问题即可…..

Android Studido下的应用性能优化总结--布局优化

标签:

原文地址:http://www.cnblogs.com/zhujiabin/p/5403226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!