Android Jetpack从使用到源码深耕开篇
Posted itbird01
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Jetpack从使用到源码深耕开篇相关的知识,希望对你有一定的参考价值。
前言
Google I/O 2018年发布了一系列开发套件,旨在提升android开发人员的研发效率,它实际上是多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码、减少适配代码、减少重复代码,从而让开发者可将精力集中于真正重要的编码工作。
Android Jetpack 小编一直在用,但是从未对于其中的某些组件源码,进行过深入的探索、学习。今年2023疫情过去了,借这个机会,我们在接下来的系列文章中,旨在从使用入手,深入理解、阅读、分析Jetpack各个经典组件的源码,了解其中的实现原理。
历史
先说一下历史和结构吧,从事andorid开发的各位,肯定在日常开发中,接触过Android Support v4、v7、v13等兼容包,在app日常迭代开发中,我们使用sdk以外的一些api时,无可避免的肯定会使用到这些兼容包。
说一个具体的例子,fragment相信大家经常使用吧,这个控件最初android 是为了平板开发的,平板上经常会遇到多界面的应用开发场景,所以官方的sdk中,是从android 3.0版本开始支持的,也就是平常我们最多使用的( android.app.fragment),但是大家平常做机型适配开发的时候,估计遇到过这样的问题,很多android手机版本很老,
比如,小编刚刚从事android开发时,做的是输入法的开发,那么很多客户的手机都是2.x、1.6系统版本,这咋办?安装了我们的最新输入法app之后,必然就会崩溃,因为它的系统还是之前老的ÿ
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资源运行,但是具体运行什么,需要由外界交
以上是关于Android Jetpack从使用到源码深耕开篇的主要内容,如果未能解决你的问题,请参考以下文章
Android Jetpack 从使用到源码深耕调度任务组件WorkManager 从实践到原理
Android Jetpack 从使用到源码深耕数据库注解Room 从实践到原理
Android Jetpack 组建介绍——Lifecycler
Android Jetpack之AppCompat - Actionbar篇