Android App启动速度优化
Android App启动速度优化
主要分两步:
1. 找出启动过程中,在主线程上耗时的操作函数
2. 修改它,让它延时操作、或者运行在子线程
我觉得这里面最最主要的工作是第一点是,找出耗时的操作。
如何找到耗时的操作?
借助工具。Debug.trace
generate-trace-logs:https://developer.android.com/studio/profile/generate-trace-logs
// 这里使用时间作为trace文件的文件名,好处就是方便识别多个trace文件。在多进程的情况下,特别有用。 SimpleDateFormat date = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss"); String logDate = date.format(new Date()); Debug.startMethodTracing( "sample-" + logDate);
Debug.stopMethodTracing();
在Android Studio中打开这个文件,从其中的时间轴上可以看到各个方法的时间消耗情况。
时间值会变大,但是它们在整个流程中暂居的耗时比例是不变的,非常具有参考意义。
关于App启动速度优化的基本原则
1. 不要干太多的事情
2. 优先选择懒加载
3. AppContext可以被全局访问
4. 可以考虑延时执行