当前位置: 首页 > news >正文

Android的AAC架构

AAC Android Architecture Components的简称,是一套用来搭建具有生命周期感知架构的系列组件,在2017年 GoogleI/O大会上发布。

dependencies {def lifecycle_version = "2.2.0"implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"...
}

AAC对于我来说,目前应用最常使用Lifecycle、LiveData和ViewModel。

1.Lifecycle一看就是用来管理生命周期的,它负责将Activity/Fragment的生命周期同步给其它模块,主要饱含三种角色:

Lifecycle:生命周期本身,其它模块(LifecycleObserver)可以对其进行观测,以便在状态发生变化时接收通知,同时也可以主动从这里获取当前状态。

LifecycleOwner:Lifecycle的持有者,一般为上下文对象,比如Activity和Fragment,因为生命周期就是从它们这里同步出去的。

LifecycleObserver:生命周期观察者,观察者通过向Lifecycle注册来监听生命周期的变化。

2.LiveData是一个可被观察的数据持有者,即它既是一个Observable(被观察者/发布者),同时持有数据模型(或者本身作为数据模型也可以),它的Observer(观察者)通常都是控制层对象(如Activity或Fragment)。与一般的Observable不同,LiveData能知道Observer的生命周期变化,这意味着它能同步到Activity、Fragment等组件的生命周期,这确保了LiveData只更新处于活跃状态的Observer。

3.ViewModel被设计用于存储和管理UI变化相关的数据,它允许屏幕横竖屏切换后数据仍然得到保存。ViewModel不应该持有任何View,生命周期相关的类,或者可能持有包含生命周期相关功能的类。如不能持有activity,fragment或者context等。

4.Room,基于SQLite的数据库,通过Room可以避免写重复的模版代码。

以下是ACC部分组件的组成 。

ACC的核心思想数据与表现层进行分离,当数据发生变化时,不会影响到表现层。

以后会继续补充给大家github上的代码。

http://www.lryc.cn/news/62467.html

相关文章:

  • 高功率激光切割中不良现象的排除技巧
  • MySQL-----复合查询
  • 10.Yarn概述
  • MFC实现背景透明,控件不透明的对话框,且点击图片有事件响应
  • 案例01-tlias智能学习辅助系统01-增删改查+参数传递
  • Spring之Bean的配置与实例
  • “不保留活动”打开,导致app返回前台崩溃问题解决
  • 解读vue3源码(3)——watch
  • 优秀简历的HR视角:怎样打造一份称心如意的简历?
  • 系统集成项目管理工程师——考试重点(三)项目管理一般知识
  • 为什么医疗保健需要MFT来帮助保护EHR文件传输
  • 对项目总体把控不足,项目经理应该怎么办?
  • 【学习笔记】CF603E Pastoral Oddities
  • 如何使用ESP32-CAM构建一个人脸识别系统
  • JavaWeb分页条件查询参数特殊字符处理
  • ubuntu18服务安装
  • 这些使用工具大推荐,现在知道不晚
  • 【Java|golang】1048. 最长字符串链
  • Hive基础和使用详解
  • c/c++:栈帧,传值,传址,实参传值给形参,传地址指针给形参
  • 玩元宇宙血亏后 蓝色光标梭哈AI也挺悬
  • 生物---英文
  • ENVI 国产高分2号(GF-2)卫星数据辐射定标 大气校正 影像融合
  • 操作系统考试复习——第二章 进程控制 同步与互斥
  • mac gitstats查看git提交记录
  • 电脑系统错误怎么办?您可以看看这5个方法!
  • 九款顶级AI工具推荐
  • StringRedisTemplate-基本使用
  • ansible自动运维——ansible使用临时命令通过模块来执行任务
  • python 之数据类型(四)