线下工具
CPU Profiler
- CPU Profiler 优点
- 图形化的形式展示执行时间、调用栈等。
- 信息全面,包含所有线程。
- CPU Profiler 缺点
- 运行时开销严重,所有函数不等比变慢。
- CPU Profiler 使用
- Debug.startMethodTracing("");
- Debug.stopMethodTracing();
- 生成文件在sd卡:Android/data/packagename/files。
- 官网教程
Systrace
- Systrace 介绍
- 监控和跟踪Api调用、线程运行情况,生成Html报告。
- Systrace 优点
- 轻量级,开销小。
- 直观反映CPU利用率。
- 给出建议(绘制慢,GC频繁)。
- Systrace 使用
- python systrace.py -b 8000 -t 5 -o systrace.html
- 官网教程
- Android性能分析工具systrace使用
StrictMode
- StrickMode 介绍
- StrictMode严苛模式,是Android提供的一种运行时检测机制,包含线程策略和虚拟机策略检测。
-
线程策略
- 自定义的耗时调用 使用detectCustomSlowCalls()开启。
- 磁盘读取操作 使用detectDiskReads()开启。
- 磁盘写入操作 使用detectDiskWrites()开启。
- 网络操作 使用detectNetwork()开启。
-
虚拟机策略
- Activity泄露 使用detectActivityLeaks()开启。
- 未关闭的Closable对象泄露 使用detectLeakedClosableObjects()开启。
- 泄露的Sqlite对象 使用detectLeakedSqlLiteObjects()开启。
- 检测实例数量 使用setClassInstanceLimit()开启。
-
- StrictMode严苛模式,是Android提供的一种运行时检测机制,包含线程策略和虚拟机策略检测。
- StrictMode 使用