加载优化
1.懒加载优化
- 该优化在新闻类app中十分常见
ViewPager+Fragment的搭配在日常开发中也比较常见,可用于切换展示不同类别的页面。
懒加载,其实也就是延迟加载,就是等到该页面的UI展示给用户时,再加载该页面的数据(从网络、数据库等),而不是依靠ViewPager预加载机制提前加载两三个,甚至更多页面的数据。这样可以提高所属Activity的初始化速度,也可以为用户节省流量.而这种懒加载的方式也已经/正在被诸多APP所采用。
- 具体看这篇文章
www.jianshu.com/p/cf1f4104d…
2. 启动页优化
- 启动时间分析
系统创建进程的时间和应用进程启动的时间,前者是由系统自行完成的,一般都会很快,我们也干预不了,我觉得能做的就是去优化应用进程启动,具体说来就是从发Application的onCreate()执行开始到MainActivity的onCreate()执行结束这一段时间。
- 启动时间优化
Application的onCreate()方法
MainActivity的onCreate()方法
优化的手段也无非三种,如下所示:a.延迟初始化
b.后台任务
c.启动界面预加载
- 启动页白屏优化
为什么存在这个问题?
a.当系统启动一个APP时,zygote进程会首先创建一个新的进程去运行这个APP,但是进程的创建是需要时间的,在创建完成之前,界面是呈现假死状态,于是系统根据你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏。而这个黑(白)屏正式的称呼应该是PreviewWindow,即预览窗口。
b.实际上就是是activity默认的主题中的android:windowBackground为白色或者黑色导致的。
c.总结来说启动顺序就是:app启动——Preview Window(也称为预览窗口)——启动页
解决办法:
a.常见有三种,这里解决办法是给当前启动页添加一个有背景的style样式,然后SplashActivity引用当前theme主题,注意在该页面将window的背景图设置为空!
b.更多关于启动页为什么白屏闪屏,以及不同解决办法
- 启动时间优化
IntentService子线程分担部分初始化工作
a.现在application初始化内容有:阿里云推送初始化,腾讯bugly初始化,im初始化,神策初始化,内存泄漏工具初始化,头条适配方案初始化,阿里云热修复……等等。将部分逻辑放到IntentService中处理,可以缩短很多时间。
b.开启IntentSerVice线程,将部分逻辑和耗时的初始化操作放到这里处理,可以减少application初始化时间
c.关于IntentService使用和源码分析,性能分析等可以参考博客:IntentService源码分析
来源:https://blog.csdn.net/Aerfa789/article/details/100939991