Android Studio的Profiler生成trace排查Android冷启动耗时,Kotlin

Android Studio的Profiler生成trace排查Android冷启动耗时,Kotlin

利用AS自带的Profiler抓取trace排查定位冷启动耗时方法,不用写代码,直接配置AS即可完成。

例如下面代码:

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        mySleep500()
        setContentView(R.layout.activity_main)
        mySleep1000()
    }

    private fun mySleep500() {
        Thread.sleep(500)
    }

    private fun mySleep1000() {
        Thread.sleep(1000)
    }
}

上面有两个方法耗时:mySleep500()和mySleep1000(),目标是通过Profiler的trace把这两个冷启动阶段的耗时方法找到。

1、编辑配置

2.勾选

3.点击运行

此时AS下面就会自动记录、生成trace,因为只是排查冷启动阶段耗时,所以可以阶段很多时间trace即可,但至少需要大于1500ms,因为那两个耗时方法需要覆盖到。

4.选择、分析main线程

5.通过拖动上方的CPU Usage,使冷启动阶段的调用链展现出来

注意,上面的调用层次结构自上往下即是函数方法的调用链,上面的函数启动了下面的函数。矩形的长度代表了耗时的长度。绿色为自定义的两个耗时方法,找到了mySleep500()和mySleep1000()。每一行,从左往右是代码(函数)运行顺序,可以看到mySleep500()在mySleep1000()之前。

W-A-S-D和电脑游戏上的操作快捷键一样,控制放大或缩小每一片耗时段函数层次关系。

6.查看耗时时间

鼠标移动上去显示耗时。

Profiler在debug模式下才能进行,release模式下无法。

Android adb shell命令捕获systemtrace_android 抓trace-CSDN博客文章浏览阅读1.5k次。Android ADB调试真机设备Android ADB(Andorid Debug Bridge),是Android开发中有用的测试和调试工具。使用Android ADB调试设备,直接在Windows的dos命令窗口输入命名adb即可,如图:为什么执行adb命令后是这样?Android ADB(Andorid Debug Bridge)调试真机设备_adb在线执行器_zhangphil的博客-CSDN博客。-t 时长,20s,20秒的trace文件。-o 保存文件路径。_android 抓tracehttps://blog.csdn.net/zhangphil/article/details/131249820

相关推荐

  1. Android启动优化

    2024-04-09 12:40:05       38 阅读
  2. Android 启动service(Kotlin)

    2024-04-09 12:40:05       30 阅读
  3. Spring 知识:利用 @Profile 实现 AOP 预先配置

    2024-04-09 12:40:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 12:40:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 12:40:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 12:40:05       87 阅读
  4. Python语言-面向对象

    2024-04-09 12:40:05       96 阅读

热门阅读

  1. 【Linux】手搓shell

    2024-04-09 12:40:05       43 阅读
  2. python实现网络爬虫

    2024-04-09 12:40:05       32 阅读
  3. 从零开始精通RTSP之初识实时流协议

    2024-04-09 12:40:05       40 阅读
  4. 计算机网络---第三天

    2024-04-09 12:40:05       34 阅读
  5. SpringBoot通过token实现用户互踢功能

    2024-04-09 12:40:05       36 阅读
  6. C++:万能进制转换

    2024-04-09 12:40:05       41 阅读
  7. iOS MT19937随机数生成,结合AES-CBC加密算法实现。

    2024-04-09 12:40:05       27 阅读
  8. 头歌:共享单车之数据可视化

    2024-04-09 12:40:05       39 阅读
  9. 计算机网络-ICMP和ARP协议——沐雨先生

    2024-04-09 12:40:05       38 阅读
  10. Ubuntu22.04 安装 Supabase

    2024-04-09 12:40:05       34 阅读
  11. 【力扣】238. 除自身以外数组的乘积

    2024-04-09 12:40:05       42 阅读