从今天开始,打算写一个jetpack系列的博客
一来是把自己掌握的一些技术点分享出来
二来也是对自己学习到的东西做一个总结
那么现在开始!
因为是系列博客的第一篇
所以打算分成四个部分来讲
1.什么是jetpack
2.jetpack包含那些东西
3.学习jetpack有什么用
4.怎么学习jetpack
接下来,就让我们一探究竟吧
1、什么是jetpack
JetPack是Google推出的一些库的集合。是Android基础支持库SDK以外的部分。包含了组件、工具、架构方案等...开发者可以自主按需选择接入具体的哪个库。
从Goole IO 2017开始。Google 开始推出Architecture Component, ORM库Room, 用户生命周期管理的ViewModel/ListData.
Goole IO 2018将Support lib 更名为androidx. 将许多Google认为是正确的方案和实践集中起来。以高效的开发Android APP.
以上种种,现在统称为JetPack.其最核心的出发点就是帮助开发者快速构建出稳定、高性能、测试友好同时向后兼容的APP。
在官方文档上,是这样描写的:
Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。
我个人以为
说白了,就是谷歌主动给我们定制了很多高效实用的开发库,方便我们开发程序
要知道这些年,Android开发里涌现的第三方库层出不穷,质量也是参差不齐。
很多东西用着用着就不维护了,或者过时了
在一些重要的项目里使用起来有一定风险
现在官方主动提供了这些库,意味着我们可以放心地利用它们进行开发
把更多的时间和精力集中在业务上面
2、jetpack包含那些东西
jetpack里面包含了很多的库,具体可以参考下面的这张图
具体又可以分为下面四类
基础
AppCompat : 使得支持较低的Android版本。从以前继承Activity到现在继承AppCompatActivity 就是属于这一部分。
Android KTX: Kotlin的扩展支持库
Multidex: 多dex文件支持
Test: 测试支持库
架构
Data Binding: MVVM的一种实践
Lifecycles: 管理你的 Activity 和 Fragment 生命周期
LiveData: 通过观察者模式感知数据变化,类比RxJava
Navigation: 处理Fragment导航相关逻辑
Paging: 分页数据加载方案
Room: 官方ORM库
ViewModel: 通过数据驱动V视图发生改变
WorkManager: 管理后台任务
行为
DownloadManager: 管理下载任务
Media app: 多媒体播放和一些向后兼容的API。主要包含MediaPalyer和ExoPlayer
Notifications: 提供向后兼容的通知 API,支持 Wear 和 Auto
Permissions: 权限管理,这个应该都接触过。用于检查和请求应用权限
Settings: Preference相关API。基本每个应用都会用到
Share Action: 提供分享操作。这块在国内使用的不多,都是自己封装或者采用第三方方案。
Slices: 可以让应用通过外部(其他APP)显示APP界面(通过设备自带的搜索,语音助手等)
界面
界面部分所包含的东西基本是我们接触的最多的了:
Animations and Transitions: 动画,界面转场等
Auto: 针对车辆的标准化界面和模式。这方面实在接触的少,不感妄加评论。
Emoji: Emoji 相关。这个...同上面的Auto吧
Fragment: 基础概念
Layout: 基础概念
Palette-Colors: 调色板。接触的不多
TV: Android TV 开发相关
Wear: 可穿戴设备(目前主要是手表)开发相关
3、学习jetpack有什么用
说白了,我们开发项目,肯定是希望自己的项目更加高效,可维护
采用了官方推荐的这些解决方案,对于我们去开发也好,迭代也好
以及其他人去阅读我们的代码也好
都是有很大的帮助的
JetPack里目前包含的内容,未来也会是Google大力维护和扩展的内容。
对应开发者来说也是值得去学习使用的且相对无后顾之忧的。
JetPack里没有的,除开一些优秀的第三方库,未来应该也会慢慢被新的API替代,逐渐边缘化,直至打上Deprecate注解。
总的来说,JetPack的推广对广大开发者而言是利远远大于弊的。
所以我们才要抓紧学会这里面的东西
4、怎么学习jetpack
学习jetpack
不是说要去熟练掌握里面所有的库
而是根据自己的能力和业务需求
灵活的去学习和掌握
当然,里面有一些应用比较广泛的库
我们还是要抓紧时间掌握的
这个系列也是从这些实际用的多的库开始介绍
并不是jetpack里面所有的库都会涉猎
关于自学jetpack
可以参考jetpack官方文档
也可以看一些教学视频
比如B站的
2021年最全面的Jetpack系统学习课程,看他就够了,更新中
还有一些不错的博客文章
也可以抽出时间关注
最后,开篇文章到这里就结束了
希望大家动起来
尽快掌握这一整套开发利器!
加油!
5、资料分享
这个系列的博客,除了这篇初识Jetpack
每一篇我都写了对应的代码,全部在里面,要的自取
链接:百度网盘 请输入提取码
提取码:7wxj