倒霉的菜鸟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

posted on 2021-10-24 23:17  倒霉的菜鸟  阅读(169)  评论(0编辑  收藏  举报