启动优化的处理的时间应该在Application的onCreate开始到第一个Activity的onCreate
当App刚被启动时,大概会做两个耗时的事件,第一、App在系统中的初始化(eg,注册进程,开启服务)第二、App自己的数据请求、资源加载等即Application.onCreate到Activity.onCreate的时间。而第一个耗时是系统消耗,我们没法优化,所以只能优化第二个耗时。
-
伪优化
由于每次App开启的时候,App会加载一些资源和一些启动准备工作这些是必须要的耗时,所以谷歌为Android提供了黑白屏功能,提高用户的体验感。
操作方法:
给app启动Activity添加主题


这个是在点击app图标后,通过展示一张静态图片,让用户度过这个耗时期。这样操作只是提高了用户的体验,但是对程序的性能优化没用,所以是伪优化。
-
真优化
真优化的思想是缩短Application.onCreate到Activity.onCreate的耗时,如,耗时操作放在线程中,不要阻塞主线程。
查看前期耗时统计图
将测试代码放在Application.onCreate的开始与结尾
Appliction.onCreate(){
Debug.startMethodTracing("jszkApp");
....... 内容
Debug.stopMethodTracing();
}
打开app的存储权限,打开App.
生成的trace 文件在 /storage/emulated/0/Android/data/ 包名 / files/ jszkApp.trace

也可以执行命令 adb pull /storage/emulated/0/Android/data/ 。。。。

将该文件托到AndroidStudio中

下面可以看到详细信息

详情 :http://www.sohu.com/a/298490557_100063030
随便介绍几个adb命令
查看手机启动activity。手机默认会启动两个activity-------Launcher3和TaskRecord。

本文探讨了App启动过程中的优化策略,区分了伪优化与真优化的概念。介绍了如何利用主题改善用户体验,以及通过调整Application.onCreate与Activity.onCreate之间的操作来缩短启动时间。提供了使用Debug工具和adb命令进行性能分析的方法。
986

被折叠的 条评论
为什么被折叠?



