性能优化(四)分析工具

分析工具

原生工具

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卡顿优化布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值