使用后会显示
ThisTime: 代表启动最后一个Activity的耗时
TotalTime: 代表启动所有的Activity的耗时
WaitTime: 代表AMS启动所有的Activity的耗时
注意点:该命令只能是获取配置了的Activity, 其他的无效,因为Android组件中有个 exported 属性,没有intent-filter时exported 属性默认为false,此组件只能由本应用用户访问,配备了intent-filter后此值改变为true,允许外部调用。
缺点: adb命令只能查看配置了的Activity,其他的无法查看,并且也无法精准的查看其方法具体耗费的时间,所以因为其局限性 并不能很好的解决我们问题,我们采用手动打点的方式查看。
4.手动打点
先看代码
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
initBugly();
initBaiduMap();
initJPushInterface();
initShareSDK();
…
}
private void initBugly() throws InterruptedException {
Thread.sleep(1000); // 模拟耗费的时间
}
private void initBaiduMap() throws InterruptedException {
Thread.sleep(2000); // 模拟耗费的时间
}
private void initJPushInterface() throws InterruptedException {
Thread.sleep(3000); // 模拟耗费的时间
}
private void initShareSDK() throws InterruptedException {
Thread.sleep(500); // 模拟耗费的时间
}
}
代码不用我说,项目中很常见,现在的问题是APP启动加载很慢, 那么如何精准的查询到具体耗时的方法?
long startTime = System.currentTimeMillis();
initBugly();
Log.d(“lybj”, “initBugly()方法耗时:”+ (System.currentTimeMillis() - startTime));
long startTime = System.currentTimeMillis();
initBaiduMap();
Log.d(“lybj”, “initBaiduMap()方法耗时:”