Android方法调用耗时分析工具:开发者模式-System Tracing

Posted guangdeshishe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android方法调用耗时分析工具:开发者模式-System Tracing相关的知识,希望对你有一定的参考价值。

简介

搭载 android 9(API 级别 28)或更高版本的设备包含一个名为 System Tracing 的系统级应用。此应用类似于 systrace 命令行实用工具,但允许您直接从测试设备本身录制跟踪记录,而无需插入设备并通过 ADB 连接到该设备。然后,您可以使用此应用与开发团队共享根据这些跟踪记录得出的结果。在解决应用中与性能相关的错误(例如启动速度慢、转换速度慢或界面卡顿)时,录制跟踪记录特别有用。

本文主要记录如何通过该功能分析查看某个app的方法调用耗时情况,方便我们排查界面卡顿等问题

功能路径

开发者模式 -> 系统跟踪(System Tracing)

功能使用

  1.  点击“录制跟踪记录(Record trace)”按钮开始记录
  2. 开始对我们需要测试的app进行各种操作
  3. 再次点击“录制跟踪记录(Record trace)”按钮关闭该功能以结束记录
  4. 通知栏会弹出录制结束提示,点击该通知可以分享出去或者在电脑上执行adb命令"adb pull /data/local/traces/ ."以获取trace文件

打开“显示快捷设置图片”功能,在通知栏顶部会出现快捷开关图标,可以快捷开始/结束记录

测试app

包名:com.example.myapplication

package com.example.myapplication

import android.os.Trace

class MethodTest {

    fun testMethod1() {
        Trace.beginSection("testMethod1")
        Thread.sleep(1000)
        Trace.endSection()
    }

    fun testMethod2() {
        Trace.beginSection("testMethod2")
        Thread.sleep(2000)
        Trace.endSection()
    }

    fun testMethod3() {
        Trace.beginSection("testMethod3")
        Thread.sleep(3000)
        Trace.endSection()
    }

}
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val methodTest = MethodTest()
        methodTest.testMethod1()
        methodTest.testMethod2()
        methodTest.testMethod3()
    }
}

结果分析

  1. 打开"https://ui.perfetto.dev/#!/"网站
  2. "Open trace file"选择我们获取到的trace文件,后缀名是".perfetto-trace"
  3. 网页搜索我们要分析的app包名
  4. 展开要分析app包名下的进程,也就是能看到"activityStart"那部分
  5.  选中需要检查的时间段,然后底部会出现统计结果,切换到“Slices”就可以查看到不同阶段耗时(Wall duration)情况
  6. 其中"testMethod3" "testMethod2" "testMethod1" 就是是代码中trace统计耗时的方法,通过这个就可以看到哪个方法耗时较多了

官方介绍:https://developer.android.google.cn/topic/performance/tracing/on-device

以上是关于Android方法调用耗时分析工具:开发者模式-System Tracing的主要内容,如果未能解决你的问题,请参考以下文章

android eclipse如何查看耗时

ANR一般性分析方法

Android性能优化 - 启动速度优化

Android开发学习之路--性能优化之常用工具

android性能测试工具都有哪些

Android开发进阶:vivo客服端ANR日志分析全面解析