您的位置:首页 > 教育 > 锐评 > Android 使用 Debug.startMethodTracing 分析方法耗时

Android 使用 Debug.startMethodTracing 分析方法耗时

2024/10/5 2:55:40 来源:https://blog.csdn.net/weixin_44021334/article/details/140361127  浏览:    关键词:Android 使用 Debug.startMethodTracing 分析方法耗时

参考 Generate Trace Logs by Instrumenting Your App

官网提供了 trace 工具来分析方法耗时。

生成 trace 文件

package com.test.luodemo.trace;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.os.Debug;
import android.util.Log;import com.test.luodemo.R;public class DebugActivity extends AppCompatActivity {public static final String TAG = "DebugActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//save to ./data/media/0/Android/data/com.test.luodemo/files/dmtrace.traceDebug.startMethodTracing();setContentView(R.layout.activity_debug);test1();test2();Debug.stopMethodTracing();}private void test1(){Log.d(TAG, "test1");}/*** 模拟耗时方法* */private void test2(){try {Thread.sleep(500);} catch (InterruptedException e) {throw new RuntimeException(e);}}
}
  • Debug.startMethodTracing(); 启动方法跟踪 。不传参数,默认生成 ./data/media/0/Android/data/<应用包名>/files/dmtrace.trace
  • Debug.stopMethodTracing(); 停止方法跟踪。

Debug.startMethodTracing() 可以传入参数,示例,加个时间戳

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//save to ./data/media/0/Android/data/com.test.luodemo/files/dmtrace.trace//Debug.startMethodTracing();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss", Locale.getDefault());String logDate = dateFormat.format(new Date());Debug.startMethodTracing("luoah-" + logDate);setContentView(R.layout.activity_debug);test1();test2();Debug.stopMethodTracing();}

生成文件
在这里插入图片描述

trace 文件分析

在 AS 里打开 Device Explorer ,找到生成路径,双击生成的 dmtrace.trace 文件,
在这里插入图片描述
很明显,test2() 方法耗时 500毫秒。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com