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 节点中引用,会导致所有的页面启动都会有这种效果。