Android App 优化之性能分析工具

为了便于阅读, 应邀将Android App性能优化系列, 转移到掘金原创上来.
掘金的新出的"收藏集"功能能够用来作系列文集了.html

第一篇 App性能测试和分析工具.android

先上个图:git

性能分析工具

本文暂不对工具的使用作过多的深刻.
在后续的具体实例中会具体说明怎么用这些工具来达成分析目的和解决问题的.github

1, 官方工具

通常来讲, 学习一门新的技术, 最应该作的就是阅读其官方文档, 那是最权威的.
Android自己给咱们提供了不少App性能测试和分析工具, 并且大部分都集成到Android Studio或DDMS中, 很是方便使用.浏览器

1.1 StrictMode

  • 说明
    顾名思义, "严格模式", 主要用来限制应用作一些不符合性能规范的事情. 通常用来检测主线程中的耗 时操做和阻塞. 开启StrictMode后, 若是线程中作一些诸如读写文件, 网络访问等操做, 将会在Log console输出一些警告, 警告信息包含Stack Trace来显示哪一个地方出了问题.性能优化

  • 文档网络

  • 做用eclipse

    • 主要用来作主线程优化分析

1.2 Systrace

  • 说明
    Systrace是一个收集和检测时间信息的工具, 它能显示CPU和时间被消耗在哪儿了, 每一个进程和线程都在其CPU时间片内作了什么事儿. 并且会指示哪一个地方出了问题, 以及给出Fix建议.
    其以trace文件(html)的方式记录. 能够直接用Chrome浏览器打开查看. 界面以下:
    工具

    14716169060393

  • 文档布局

  • 做用

    • 做用不少, 我的主要用来分析UI的绘制时间, 结合Hierarchy Viewer来提高UI性能.
    • 也能够用来发现耗时操做.

1.3 Hierarchy Viewer

  • 说明
    Hierarchy Viewer提供了一个可视化的界面来观测布局的层级, 让咱们能够优化布局层级, 删除多余的没必要要的View层级, 提高布局速度.

    14716178266122

    有必要说明下的是:
    上图红框标出的三个点是关键分析数据. 左起依次表明View的Measure, Layout和Draw的性能. 另外颜色表示该View的该项时间指数, 分为:

    • 绿色, 表示该View的此项性能比该View Tree中超过50%的View都要快.
    • 黄色, 表示该View的此项性能比该View Tree中超过50%的View都要慢.
    • 红色, 表示该View的此项性能是View Tree中最慢的.
  • 文档

  • 做用

    • 用来作View层级分析, 能够分析出View Tree中的性能阻塞点, 以便对症下药, 提高布局性能.

Hierarchy Viewer须要Root的机器(产品机没有开启ViewServer)才能够执行.
能够使用第三方的开源的ViewServer来协助咱们在未Root的机器上使用Hierarchy Viewer分析.

1.4 TraceView

1.5 Memory Monitor

1.6 Other Monitor

1.7 其余

Android的开发者模式中也提供了较多的用来监测性能的选项, 能够用下:

14716202213835

2, 第三方工具

如下工具所有开源, 开源万岁...

2.1 Google的Battery Historian

  • 说明
    Google出品, 经过Android系统的bugreport文件来作电量使用分析的工具.

  • 文档

  • 做用

    • 用来作电量使用分析.

2.2 网易的

  • 说明
    针对Android App的CPU, 内存, 网络, 电量等多项综合的测试分析.

  • 文档

  • 做用

    • 比官方工具更适合国人使用来作App的总体性能分析.

2.3 Square

  • 说明
    Square出品, 必属精品.
    相似与App探针的内存泄露监测工具.

  • 文档

  • 做用

    • 集成到App中, 用来作内存问题预防最好不过了.

2.4 AndroidDevMetrics

  • 说明
    一个library, 用来检测Activity生命周期执行性能, Dagger2注入性能以及帧率性能的工具.

  • 文档

  • 做用

    • 若是你的应用使用的Dagger2, 这个就比较必要了.

3, 结语

MAT没有侧重的提, 是由于这个工具在ADT时代比较经常使用, AS2.0以后, 自己的Memory Monitor愈来愈强大, 结合日益完善的第三方工具基本上能够完成内存方面的优化了.

欢迎你们分享本身经常使用的App性能分析工具, 共同窗习~

相关文章
相关标签/搜索