植树节快来InfoQ技术大会认领你的专属果树吧>> 了解详情
写点什么

安卓架构组件 1.0:Lifecycle、LiveData、ViewModel 和 Room

  • 2017 年 11 月 14 日
  • 本文字数:761 字

    阅读完需:约 2 分钟

谷歌推出了安卓架构组件1.0 ,一系列用于设计“健壮、可测试和可维护应用程序”的组件库。目前包含了Lifecycle、LiveData、ViewModel 和Room,其他更多的组件会陆续推出。

谷歌创建架构组件的目的是帮助“持久化数据、管理组件生命周期、编写模块化应用、处理常见错误、编写更少的重复代码”。这些主要组件如下:

Lifecycle 组件用于创建能够感知自身生命周期、能够基于自身状态调整行为的 activity 和 fragment。组件可以经历多种状态——初始化、已创建、已启动、已恢复、已销毁,在状态发生改变时会调用生命周期方法来执行各种动作。生命周期将持有组件的状态信息,负责处理状态的变化及释放任务所使用的组件。目的是让代码更简单,更易于理解。

LiveData 组件用于持有可观测的数据,它掌握着组件的生命周期信息,在组件出现活跃状态时提供更新,一般用于创建反应式 UI。

ViewModel 组件用于管理 activity 和 fragment 的数据,这些数据会在重新创建 UI 组件时保存起来,比如发生屏幕旋转时需要重新创建 UI。ViewModel 包含了一些与数据相关的代码,从而简化了 UI 控制器。

Room 组件是一个对象映射层,负责将数据保存到 SQLite。Room 提供了编译时的查询验证,对可能出现错误的查询做出标记。谷歌建议使用 Room 来代替直接访问 SQLite,因为这样可以在本地缓存数据,并且可以与 LiveDat 集成,让它成为组件生命周期的一部分。

在不久的将来,谷歌将推出一个新的组件,叫作 PagedList ,目前处于 alpha 测试阶段。PagedList 可以渐进式地加载数据,无需等待数据库查询完毕。在未来几个月,他们还将陆续推出其他组件。

谷歌还发布了架构指南,说明如何使用这些组件。他们说,这些组件已经“准备好用于生产环境”,建议开发者使用它们来构建安卓应用。

查看英文原文 Android Architecture Components 1.0: Lifecycle, LiveData, ViewModel and Room

2017 年 11 月 14 日 18:006736
用户头像

发布了 321 篇内容, 共 117.4 次阅读, 收获喜欢 122 次。

关注

评论

发布
暂无评论
发现更多内容

如何利用FL Studio进行听湿录干的声音录制

懒得勤快

市场战略再升级 解析融云的生态平台+纵深发展

融云 RongCloud

网络攻防学习笔记 Day101

穿过生命散发芬芳

态势感知 网络攻防 8月日更

企业上云之前选择服务器类型的几点建议

九河云安全

闭关刷题3个月,五轮面试共六个小时,斩获腾讯Java开发岗位

Crud的程序员

Java 编程 程序员 架构 面试

通过字节Java研发岗4轮面试,收到sp offer(月薪30k)

Crud的程序员

Java 编程 架构

从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

Java~~~

Java spring 面试 微服务 JVM

快速发展的互联网通信,站在开发者背后的融云

融云 RongCloud

保险=诈骗?区块链赋予保险的“四个机会”

旺链科技

区块链 保险业 信任构建

企业架构概述

涛哥

IOS技术分享| 互动连麦场景实现

anyRTC开发者

ios 音视频 移动开发 视频直播 直播连麦

完美!腾讯技术官发布Java零基础就业宝典,不用再怀疑人生了

Java~~~

Java spring 面试 微服务 架构师

限量!Alibaba首发“Java成长笔记”,差距不止一点点

Java~~~

Java spring 面试 微服务 架构师

史上最全的服务器选择指南,这六点你必须知道!

九河云安全

FastApi-09-模型嵌套

Python研究所

FastApi 8月日更

高防服务器在使用过程中可以做到高效、稳定的防止钓鱼攻击

九河云安全

堡垒机价格与什么有关?价格差别大吗?

行云管家

云计算 堡垒机

【等保测评】江西等保测评机构只有3家吗?都在哪里?

行云管家

等保 等级保护 等保测评 等保评测

黑科技解密!实现socket进程间迁移

Java 程序员 架构 面试 架构师

OAuth2.0授权码模式实战

码农参上

OAuth 2.0 8月日更

Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

Java~~~

Java kafka 面试 MQ 架构师

耗时三年才总结出了这份Alibaba(P5-P9)学习进阶路线图

Java架构追梦

Java 阿里巴巴 架构 面试 架构成长路线

不安全的服务器和云服务器:远程工作如何增加了黑客可以攻击的攻击面

九河云安全

前端性能优化|什么是防抖和节流?

青云技术社区

JavaScript 大前端 防抖节流 函数防抖

从平台到生态,钉钉、飞书和企业微信的巨头之争

ToB行业头条

钉钉 企业微信 飞书

如果用柔性屏做雨伞,那雨伞就不仅仅是雨伞了

船医特拉法尔加

开发者工具

从源码角度搞懂 Ribbon 的负载策略

普普通通程序员

Alibaba内部出品“Java初学者宝典”,让你就业没压力

Java~~~

Java 面试 JVM 多线程 架构师

爱了!Alibaba技术官甩出的SpringCloud笔记,GitHub已标星81.6k

Java~~~

Java 面试 微服务 Spring Cloud 架构师

Java书单-比较全的一篇

汤圆学Java

程序员

Qunar 大讲堂问题排查

Qunar技术沙龙

问题处理 问题排查 管理系统 开发管理 问题总结

安卓架构组件1.0:Lifecycle、LiveData、ViewModel和Room_移动_Abel Avram_InfoQ精选文章