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模式下无法。