分析工具
原生工具
1. StrictMode
-
主线程优化分析工具
-
StrictMode 最常用于捕获应用程序主线程上耗时,阻塞操作,例如意外磁盘或网络访问,通过该工具我们可以将意外发生的耗时操作放到主线程 结合loading等动画,让ui变得更流畅同时也预防ANR的产生
-
使用方式
-
在APPlication 或者activity中配置如下代码
-
public void onCreate() { if (DEVELOPER_MODE) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() .build()); } super.onCreate(); }
-
开启该功能将会在Log console输出一些警告, 警告信息包含Stack Trace来显示哪个地方出了问题.
-
-
2. Systrace & Perfetto 主要分析掉帧,卡顿等情况
-
每帧16ms 绘制不完就会卡顿
-
Systrace是一个遗留的平台提供的命令行工具,适用于android 4.3 以上
- 可以通过DDMS(Android Device Monitor)获取
- https://blog.csdn.net/vicwudi/article/details/100191529
-
Perfetto是安卓10 及以上最新的追踪分析工具
- 可以看作是Systrace的升级版
- https://www.jianshu.com/p/f4cf101cc64f
3. Andorid Profiler
-
分析 内存 cpu 网络
-
可以分析 TraceView(分析方法耗时,线程的执行情况)
- https://www.jianshu.com/p/7e9ca2c73c97
- https://blog.csdn.net/xiyangyang8/article/details/50545707
-
按下dump 可以生成.hprof文件供MAT分析
-
https://developer.android.google.cn/studio/profile/android-profiler
4. DDMS
- 可以分析TraceView
- root设备可以通过Hierarchy Viewer分析布局
- 1.查看特定进程中正在运行的进程、线程情况;
2.查看进程中分配内存的情况;
3.查看特定进程中的Logcat信息;
三方工具
- leakCanery
- 用来检测内存泄漏
- MAt
- 生成hprof文件 打开mat分析 可以分析堆信息 用来检测内存泄漏
- blockCanery
- 检测UI卡顿优化布局