Android Jetpack 从使用到源码深耕【调度任务组件WorkManager 从实践到原理 】(一)
本文,我们对Jetpack的调度任务组件WorkManager ,由使用入手,对其源码进行深入学习、总结一下。
1.问题
研究这个框架之前,我们基于自己已有的知识体系,想一些问题,给自己设定一些目标,带着目标和问题,去阅读这块的源码,相信收获会更多更深一些。
1) WorkManager 是做什么的?
2) WorkManager 怎么用?
3) WorkManager 是如何实现的?我们自己如何去实现这样一个框架,如何实现?
4)尝试先用自己的已有知识体系,实现一下 WorkManager
5) WorkManager 如何实现调度任务管理、执行的?是否就是对ThreadPool+Runnable进行的一次封装实现?
6)WorkManager 的官方实现源码中,有哪些可以改进的地方?
希望读完本文,大家对于这些问题,都有自己的答案。
2.背景
使用之前,我们首先需要知道,Google开发公开这个组件的立意是什么?
我们之前讲过Handler、Looper、Thread、MQ、Message相关源码,以及相关的关系 ,从而也引出了这样一个基础知识点,Thread 是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,那么它可以是while true一直占用cpu资源运行,但是具体运行什么,需要由外界交