关于启动优化实战
来源:3-14 启动速度模拟面试

若邪913
2019-09-26
老师我这边有个实际情况是这样:
1、启动APP,有一个Splash界面;
2、跳转到应用主页;
在Splash界面中会做一些初始操作,比如主页有一个webview控件,需要每次打开时检查H5资源包是否有更新,如果有更新,会从后台下载这个资源包,解压,完成之后跳转到主页,之前是用的RxJava判断更新,下载,Rxjava本身有线程的切换,在子线程切换,下载完在主线程回调,现在是下载完之后在主线程回调中,开启子线程读写IO,将资源包写入文件,再解压缩,完成之后跳转到主页;
还有一个操作是在Splash界面初始化一个IM的SDK,也需要提前初始化好,进入主页会去读一个未读消息数,
这种情况下做启动优化,是要在主页显示出来才算启动完成,之前是在各种回调中判断(例如,资源包没有更新、下载完成、下载失败等情况下),延迟2000ms打开主页,相当于Splash界面显示2s,现在我去掉了各种回调,在Splash界面通过IdleHandler去判断主线程消息队列空闲时,再去打开主页,这样做法可以吗,这个IM的初始化该怎么操作
写回答
1回答
-
同学你好,“在Splash界面通过IdleHandler去判断主线程消息队列空闲时,再去打开主页”,这肯定不建议。如果你需要在首页就使用到IM,你可以在Application阶段尽可能的早的执行IM的初始化,这样IM的初始化结束也会提前不会对打开主页带来影响了。对webView也一样。
012019-10-21
相似问题