android性能优化---启动优化

app启动时间查看:

1, log 中筛选displayd 可以看到相应的日志

如:

android性能优化---启动优化

 

 2, 如果要查看某一段方法的执行时间, 

Debug.startMethodTracing(“file_path/app1.trace”)
........
要测试的方法
......
Debug.stopMethodTracing()

之后会在对应目录生成trace文件

把这个trace文件拖到AS 中,就会自动打开profile

android性能优化---启动优化

 

 切换到 top Down, 就可以清楚看到每个方法的执行时间

android性能优化---启动优化

 

 

优化点:

 

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

 

上一篇:Mac上查看Systrace的坑


下一篇:阿里可观测性数据引擎的技术实践