代码未优化造成的问题
在构建App时,我们经常需要引用一些第三方的sdk,而且项目业务越多,引用的第三方也越多,有些第三方会要求我们在Application的onCreate方法中对其初始化。这意味着:在application的onCreate方法中执行时间会越长,首个Activity布局的渲染时间也会相应的拉长。
同理,如果Activity的onCreate,onStart,onResume方法中执行的任务时间过长,同样也会导致布局被渲染的时间拉长。这样直接导致的问题就是,用户会感觉页面迟迟没有加载出来,用户体验级差。
App启动时间检测
adb shell am start -w com.goodboy/.MainActivity
//运行结果
ThisTime:最后一个Activity启动时间
TotalTime:一系列Activity启动时间
WaitTime:总启动时间,包含系统在冷启动时,需要加载app信息到内存的时间
代码执行时间统计
@Override
public void onCreate() {
super.onCreate();
File file = new File(Environment.getExternalStorageState(),"app.trace");
Debug.startMethodTracing(file.getAbsolutePath());
//中间业务逻辑代码
init();//初始化些东兴(一些耗时操作)
test();//初始化些东兴(一些耗时操作)
Debug.startMethodTracing();
}
//获取trace文件命令
adb pull /storage/emulated/0/app.trace
app.trace文件可以直接拖到Android studio 中分析那个方法耗时多少,然后对耗时方法进行优化。
onCreate方法是在Ui线程中进行的,所以耗时操作且不需要在UI进程初始化的,可以放到异步线程中进行初始化。懒加载