启动过程一般是四个过程:1,预览窗口显示。这个过程如果我们禁用预览窗口或者预览窗口设置为透明,我们看到的还是桌面。2,闪屏显示。3,主屏显示。4,界面可操作。
具体的优化方式,我们可以把他们分为1,闪屏优化。2,业务梳理。3,业务优化。4,线程优化。5,GC优化。6,系统调用优化。
1,闪屏优化:建议Android6.0以上再使用预览闪屏方案。
2,业务梳理:根据不同业务模块梳理出那些需要启动加载,那些可以使用时加载。注意懒加载不要集中处理,不然容易卡顿。
3,业务优化:有些业务模块可以通过优化逻辑,算法的方式时运行时间缩短。
4,线程优化:线程的优化主要在于减少CPU调度带来的波动,让应用的启动时间更加稳定。具体的做法就是减少线程启动的数量,使用线程池。
5,GC优化:在启动过程中,要尽量减少GC的次数。具体的做法有避免进行大量的字符串操作,特别是序列号话反序列化过程,一些频繁创建的对象尽量能复用,如果是必须的需要频繁创建对象,可以考虑放入Native中实现。
6,系统调用优化:启动过程中尽量不做系统调用,比如PackageManagerService的操作,binder的调用。启动过程中不要尽早的拉起其他进程。
进阶优化可以有:1,IO优化,尽量不做网络IO操作。2,数据重排,类重排。3,资源文件重排。
网友评论