Android APP性能分析工具大全

目录

官方推荐工具

第三方工具

一,官方工具

1.1,TraceView

1.2,StrictMode

1.3,Systrace

1.4,Hierarchy Viewer 

 1.5,AndroidStudio Profiler

二,第三方工具

2.1,Battery Historian(Google)

2.2,Emmagee(网易)

2.3,leakcanary(Square)

2.4,AndroidDevMetrics

2.5,Trepn Profiler

2.6,App Tune-up kit

2.7,WakeLock Detector

2.8,GSam Battery Monitor

2.9,腾讯GT

2.10,Lint


大体可以把工具分为一下两类:

官方推荐工具

第三方工具

TraceView

Battery Historian

StrictMode

Emmagee

Systrace

leakcanary

Hierarchy Viewer

AndroidDevMetrics

AndroidStudio Profiler

Trepn Profiler

 

App Tune-up kit

 

WakeLock Detector

 

GSam Battery Monitor

 

腾讯GT

 

Lint

一,官方工具

1.1,TraceView

简介

TraceView是Android平台配备一个很好的性能分析工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到方法。用来展示和分析方法的执行时间。

文档

https://developer.android.com/studio/profile/traceview

作用

分析方法调用栈以及其执行时间, 优化方法执行。可以获取单次执行最耗时的方法;

1.2,StrictMode

 简介

StrictMode严格模式,主要用来检测程序中违例情况的开发者工具。一般用来检测主线程中的耗 时操作和阻塞. 开启StrictMode后, 如果线程中做一些诸如读写文件, 网络访问等操作, 将会在Log console输出一些警告, 警告信息包含Stack Trace来显示哪个地方出了问题。

文档

https://developer.android.com/reference/android/os/StrictMode

作用

主要用来做主线程优化分析

1.3,Systrace

简介

Systrace是分析Android性能问题的神器,Google IO 2017上更是对其各种强推. 是分析卡顿掉帧问题核心工具,只要能提供卡顿现场,systrace就能很好定位问题,但是有一定上手难度,所以会稍微花比较多的篇幅来学习,当然systrace配合traceView使用效果更佳,之后也会介绍traceView。

文档

https://developer.android.com/studio/profile/systrace

https://developer.android.com/studio/profile/systrace-walkthru

作用

作用很多, 个人主要用来分析UI的绘制时间, 结合Hierarchy Viewer来提升UI性能;也可以用来发现耗时操作;

1.4,Hierarchy Viewer 

简介

主要是来查看布局层级,较少不必要的冗余的View。

文档

https://developer.android.com/studio/profile/hierarchy-viewer.html

https://developer.android.com/studio/profile/hierarchy-viewer-walkthru.html

作用

用来做View层级分析, 可以分析出View Tree中的性能阻塞点, 以便对症下药, 提升布局性能.

 1.5,AndroidStudio Profiler

简介

Android Studio 3.0 采用全新的 “Android Profiler” 窗口取代 Android Monitor 工具。 这些全新的分析工具能够提供关于应用 CPU、内存和网络 Activity 的实时数据。 您可以执行基于样本的函数跟踪来记录代码执行时间、采集堆转储数据、查看内存分配,以及查看网络传输文件的详情。

文档

https://developer.android.com/studio/profile/cpu-profiler.html

https://developer.android.com/studio/profile/memory-profiler.html

https://developer.android.com/studio/profile/network-profiler.html

作用

使用 CPU Profiler 检查 CPU Activity 和函数跟踪

利用 Memory Profiler 检查 Java 堆和内存分配

利用 Network Profiler 检查网络流量

二,第三方工具

2.1,Battery Historian(Google)

简介

BatteryStats是安卓框架中包含的一个工具,用于在设备上收集电池数据。您可以使用ADB将收集到的电池数据转储到您的开发机器中,并创建一个可以使用电池历史记录分析的报告。Battery Historian将报告从BatteryStats转换为HTML可视化,您可以在浏览器中查看。

文档

https://developer.android.com/studio/profile/battery-historian#how-to

https://github.com/google/battery-historian

作用

用来做电量使用分析.

2.2,Emmagee(网易)

简介

Emmagee是一款实用,方便的性能测试工具,适用于指定的Android App,它可以监控CPU,内存,网络流量,电池电流和状态(某些设备不受支持)。它还提供了一些很酷的功能,例如自定义收集数据的间隔,在浮动窗口中呈现实时进程状态等等。

文档

https://github.com/NetEase/Emmagee

作用

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

2.3,leakcanary(Square)

简介

类似与App探针的内存泄露监测工具.

文档

https://github.com/square/leakcanary

作用

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

2.4,AndroidDevMetrics

简介

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

文档

https://github.com/frogermcs/AndroidDevMetrics

作用

如果你的应用使用的Dagger2, 这个就比较必要了.

2.5,Trepn Profiler

简介

六个快速加载的分析预设
覆盖显示在正在分析的应用程序顶部的屏幕上
配置您的设备或单个应用
显示支持的设备上的电池电量
并非所有设备都能够报告准确的电池电量。请参阅Trepn论坛中支持的设备列表。
查看CPU和GPU频率和利用率
GPU频率和利用率仅适用于基于Snapdragon(骁龙芯片)的设备。
显示网络使用情况(手机和Wi-Fi)
适用于大多数Android智能手机和平板电脑(Android 4.0及更高版本)
高级模式,用于手动选择数据点并保存数据以供以后分析 

下载路径:

https://developer.qualcomm.com/download/software

2.6,App Tune-up kit

简介

也是高通开发的一款性能检测工具,可让开发人员在60秒内分析和分析任何Android应用程序。可以从CUP,GPU,功耗,发热量以及移动网络数据五个方面来评测一个app的性能;

下载地址:

https://developer.qualcomm.com/download/software

2.7,WakeLock Detector

简介

对手机的运行状态进行探测记录,能统计那些应用触发了CPU运行消耗cpu,那些应用触发了屏幕点亮。同时还可以对运行时间进行统计,可以查看应用内使用细节。

2.8,GSam Battery Monitor

简介

检测手机电池电量的消耗去向,能够用折线图进行统计展示。

2.9,腾讯GT

简介

GT(随身调)是APP的随身调试平台,它是直接运行在手机上的“集成调试环境”(IDTE,Integrated Debug Environment)。

利用GT,仅凭一部手机,无需连接电脑,即可对APP进行快速的性能测试(CPU,内存,流量,电量,帧率/流畅度等等),开发日志的查看,崩溃日志查看,网络数据包的抓取,APP内部参数的调试,真机代码耗时统计等。

Android版由一个可直接安装的GT控制台APP和GT SDK组成,GT控制台可以独立安装使用,SDK需要嵌入被调试的应用,并利用GT控制台进行信息展示和参数修改。

文档

https://github.com/Tencent/GT

2.10,Lint

简介

Android Lint是ADT 16(和工具16)中引入的一种新工具,可以扫描Android项目源中的潜在错误。

以下是它查找的错误类型的一些示例:

缺少翻译(没用上的翻译)比如国际化未被翻译的字段值
布局性能问题(旧layoutopt工具用于查找的所有问题,以及更多)
未使用的资源
数组大小不一致(在多个配置中定义数组时)
可访问性和国际化问题(硬编码字符串,缺少内容描述等)
图标问题(如缺少密度,重复图标,错误尺寸等)
可用性问题(例如未在文本字段中指定输入类型)

文档

http://tools.android.com/tips/lint

你可能感兴趣的:(性能分析)