什么是JetPack
先附上官网:https://developer.android.com/jetpack
期待解决的问题:
遵循最佳做法:Android Jetpack 组件采用最新的设计方法构建,具有向后兼容性,可以减少崩溃和内存泄露。
消除样板代码:Android Jetpack 可以管理各种繁琐的 Activity(如后台任务、导航和生命周期管理),以便您可以专注于打造出色的应用。
减少不一致:这些库可在各种 Android 版本和设备中以一致的方式运作,助您降低复杂性。
JetPack常用工具
使用:
https://developer.android.com/jetpack/androidx/releases/lifecycle(英文)
https://developer.android.com/topic/libraries/architecture(中文)
架构组件
这个模块的组件就是专门为MVVM框架服务的,但是每个库都是可以单独使用的,也是jetpack中比较重要的一大模块。
MVVM:Model—View—ViewModel。
Model层主要指数据,比如服务器数据,本地数据库数据,所以网络操作和数据库读取就是这一层,只保存数据。
View层主要指UI相关,比如xml布局文件,Activity界面显示
ViewModel层是MVVM的核心,连接view和model,需要将model的数据展示到view上,以及view上的操作数据反映转化到model层,所以就相当于一个双向绑定。
所以就需要,databinding进行数据的绑定,单向或者双向。viewmodel进行数据管理,绑定view和数据。lifecycle进行生命周期管理。LiveData进行数据的及时反馈。
DataBinding:数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。
//布局 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<EditText android