app启动时间查看:
1, log 中筛选displayd 可以看到相应的日志
如:
2, 如果要查看某一段方法的执行时间,
Debug.startMethodTracing(“file_path/app1.trace”)
........
要测试的方法
......
Debug.stopMethodTracing()
之后会在对应目录生成trace文件
把这个trace文件拖到AS 中,就会自动打开profile
切换到 top Down, 就可以清楚看到每个方法的执行时间
优化点:
1、在 Application 的构造器方法、attachBaseContext()、onCreate()方法中不要
进行耗时操作的初始化,一些数据预取放在异步线程中,能够採取 Callable 实现, 能够懒加载的尽量懒加载。
2, 对于 MainActivity,由于在获取到第一帧前。须要对 contentView 进行測量
布局绘制操作,尽量降低布局的层次。当然在onCreate、onStart、onResume 方法中避免做耗时操作
3, 开线程处理的时候应注意,子线程执行的 没有handler, 没有操作UI, 且主线程的运行没有特别依赖子线程执行的结果()
4, 黑白屏的处理:
解决方法 1
把启动白屏的背景换成一张图片
<item name="android:windowBackground">@color/background_material_light</
item>
换成
<item name="android:windowBackground">@drawable/xx.png</item>
这种是伪优化,并没有解决加载速度。
解决方法 2
把启动白屏背景变透明
<item name="android:windowIsTranslucent">true</item>
style 下面加上一句,意思是把启动背景变透明,这种
这两种方法最好新建一个样式,只在引导页中引用,如果在 application 节点中引用,会导致所有的页面启动都会有这种效果。