目的:帮助开发者的应用与标准 Android 服务(如通知、权限、分享)相集成;
- CameraX:帮助开发简化相机应用的开发工作,提供一致且易于使用的界面,适用于大多数 Android 设备,并可向后兼容至 Android 5.0(API 21);
- DownloadManager:处理长时间运行的 HTTP 下载的系统服务;
- 媒体和播放:用于媒体播放和路由(包括 Google Cast)的向后兼容 API;
- 通知:提供向后兼容的通知 API,支持 Wear 和 Auto;
- 权限:用于检查和请求应用权限的兼容性 API;
- 设置:创建交互式设置,建议使用 AndroidX Preference Library 库将用户可配置设置集成到应用中;
- 分享操作:可以更轻松地实现友好的用户分享操作;
- 切片:切片是一种 UI 模板,创建可在应用外部显示应用数据的灵活界面元素;
- Animation and Transition:该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调;
- Emoji Compatibility:即便用户没有更新 Android 系统也可以获取最新的表情符号;
- Fragment:组件化界面的基本单位;
- 布局:用 XML 中声明 UI 元素或者在代码中实例化 UI 元素;
- 调色板:从调色板中提取出有用的信息;
注意:所以接下来的关注点主要是在Architecture 架构部分
上面的图之前在官网是存在的,现在官网已经找不到此图,只有jetpack架构组件的文档入口;
猜想google官方也是旨在强化Architecture架构组件,因为UI、Behavior、Foundation 这三部分大多是对已有内容的收集整理 。

文章插图
4、Jetpack 与 AndroidX参考官网Jetpack使用
1、Jetpack 库可以单独使用,也可以组合使用,以满足应用的不同需求 。androidx介绍:
2、Jetpack 库在 androidx 命名空间中发布 。
androidx 命名空间中的工件包含 Android Jetpack 库 。与支持库一样,androidx 命名空间中的库与 Android 平台分开提供,并向后兼容各个 Android 版本 。
AndroidX 对原始 Android 支持库进行了重大改进,后者现在已不再维护 。androidx 软件包完全取代了支持库,不仅提供同等的功能,而且提供了新的库 。
AndroidX 还包括以下功能:
AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头 。支持库软件包已映射到对应的 androidx.* 软件包 。有关所有旧类到新类以及旧构建工件到新构建工件的完整映射,请参阅软件包重构页面 。
与支持库不同,androidx 软件包会单独维护和更新 。从版本 1.0.0 开始,androidx 软件包使用严格的语义版本控制 。您可以单独更新项目中的各个 AndroidX 库 。
版本 28.0.0 是支持库的最后一个版本 。我们将不再发布 android.support 库版本 。所有新功能都将在 androidx 命名空间中开发 。
所以,目前我们的项目【朴新网校】、【朴新助教】、【数学宝典】都已经迁移使用了androidx库 。
androidx迁移参照官网
注意:Jetpack 是各种组件库的统称,AndroidX 是这些组件的统一包名 。二、Jetpack架构组件库1、应用架构指南官网推荐应用架构:

文章插图
【Android Jetpack 架构浅析】
在项目中运用到的框架的搭建基本基于改图,运用到的jetpack组件库有ViewModel、LiveData、DataBinding;接下来逐一介绍他们的特性和用法 。
2、ViewModel & LiveDataViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据 。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存 。

文章插图
专栏
Go语言Web开发从入门到项目实战
作者:猿芯
18币
19人已购
查看LiveData 是一种可观察的数据存储器类 。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期 。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者 。
LiveData,ViewModel 组件都是基于Lifecycle来实现的,LiveData&ViewModel也是结合使用的,接下来具体看下如何使用
推荐阅读
- 你的平台有这四大技术架构群吗?
- SMP、MPP和Hadoop数据库架构方案
- 搞懂Android应用启动过程,再也不怕面试官了
- 软件架构设计分层模型和构图思考
- 细数软件架构中的解耦
- Netflix如何实现Android与 iOS共用一套代码?
- Linux主流架构运维工作简单剖析
- 一文看懂微服务架构之注册中心Consul、Nacos
- 程序员也需了解的主流云计算网络架构
- 数据中台到底包括什么内容?一文详解架构设计与组成
