Android冷启动优化之启动器

    科技2026-04-24  1

    Android启动优化方向:

    1、合理利用多线程,核心线程数的设置。利用Systrace辅助查看各任务的启动时间耗时

    cpu time:真正使用的时间。(数据小为IO密集型操作,可以随便开线程开启该任务,如使用线程池的newCachedThreadPool。)

    wall time:包含等待的时间片。(就绪状态:等待时间片的到来。或者阻塞状态:主动的等待条件)

    2、延迟初始化(不重要的任务)

    3、IdleHandler

    4、sp优化:优先使用apply;分多个文件存储;editor替换多次提交;在Application提早初始化;

    5、启动阶段不启动子进程

    6、提前异步类加载,class.forName或者new对象。思路是替换系统的classLoader,打印出来。


    启动器功能:

    按照任务的依赖关系,进行拓扑排序,然后按照是否必须运行在主线程,用对应的线程池或者handler执行任务,简化启动的代码。

    拓扑排序示例:

    运行效果:

    使用方式:

    Initiator.getInstance() .addTask(new C14()) .addTask(new C13()) .addTask(new C12()) .addTask(new C11()) .addTask(new C10()) .addTask(new C9()) .addTask(new C8()) .addTask(new C7()) .addTask(new C3()) .addTask(new C2()) .addTask(new C1()) .start();

    项目地址:https://github.com/Ulez/Initiator

    Processed: 0.009, SQL: 9