目录
大体可以把工具分为一下两类:
官方推荐工具 | 第三方工具 |
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 堆和内存分配
二,第三方工具
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控制台进行信息展示和参数修改。
文档
2.10,Lint
简介
Android Lint是ADT 16(和工具16)中引入的一种新工具,可以扫描Android项目源中的潜在错误。
以下是它查找的错误类型的一些示例:
缺少翻译(没用上的翻译)比如国际化未被翻译的字段值
布局性能问题(旧layoutopt工具用于查找的所有问题,以及更多)
未使用的资源
数组大小不一致(在多个配置中定义数组时)
可访问性和国际化问题(硬编码字符串,缺少内容描述等)
图标问题(如缺少密度,重复图标,错误尺寸等)
可用性问题(例如未在文本字段中指定输入类型)
文档