之前的文章中,我介绍了自研的 Android 启动任务调度工具 AndroidStartup。近期,因为在组件化项目中运用该项目的需要,我对这个库做了一番升级。在最新的 2.2 版本中,我新增了一些特性。相比于目前市面上其他的启动任务调度库,使其具备了更多的优势。这里我只介绍下经过新的版本迭代之后该项目与其他项目的不同点。对于其基础的实现原理,可以参考我之前的文章 《异步、非阻塞式 Android 启动任务调度库》。
1、支持多种线程模型
这是相对于 Jetpack 的启动任务库的优势,在指定任务的时候,你可以通过 ISchedulerJob 的 threadMode() 方法指定该任务执行的线程,当前支持主线程(ThreadMode.MAIN)和非主线程(ThreadMode.BACKGROUND)两种情况。前者在主线程当中执行,后者在线程池当中执行,同时,该库还允许你自定义自己的线程池。关于这块的实现原理可以参考之前的文章或者项目源码。
2、非阻塞的任务调度方式
在之前的文章中也提到了,如果说采用 CountDownLatch 等阻塞的方式来实现任务调度,虽然不会占用主线程的 CPU,但是子线程会被阻塞,一样会导致 CPU 空转,影响程序执行的性能,尤其启动的时候大量任务执

本文介绍了自研的Android启动任务调度库的新特性,包括支持多种线程模型、非阻塞调度、非Class依赖、任务优先级、指定执行进程以及注解组件化调用。这些改进使得该库在组件化项目中更加灵活高效,降低了组件间的耦合,提升了性能。
最低0.47元/天 解锁文章
1220

被折叠的 条评论
为什么被折叠?



