Android架构组件稳定版正式发布

2017年Google IO大会上发布的Android架构组件旨在简化应用程序开发。这些组件包括LiveData、ViewModel和Room,它们分别解决了数据持有、视图模型管理和数据库操作等问题。通过这些组件,开发者可以更专注于业务逻辑而无需担心生命周期管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


2017 Google IO 大会 不仅确立了 Kotlin 为安卓开发的官方语言,还有一个细节,发布了谷歌官方 Android 应用架构库。这新的架构库旨在帮助开发者设计健壮、可测试的和可维护的应用程序。在Mvp之后,Google又增加Mvp+Clean的开发架构,发现组件化是APP开发的趋势,又提供新的组件库(Android Architecture Components)。11月5日Google宣布kotlin支持iOS开发,昨天进一步发布Android架构组件稳定版。




在架构组件发布之前,google已经自己的 ViewModel 实现,通过Loader(点击查看)和依赖注入(Dependency Injection)保证即使配置数据更改后,ViewModel 依旧不变。Goole最最近改进到了架构组件中的 ViewModel 实现,并完全将开发者从的重复工作解脱出来,以给开发者提供更多的时间用于代码设计、业务逻辑和测试,而不是浪费在样板代码(模板)或担心 Android 生命周期的问题上。

Android Architecture Components


主要包含:


  • 应用程序架构指南

    https://developer.android.google.cn/topic/libraries/architecture/guide.html


  • 添加组件到项目中https://developer.android.google.cn/topic/libraries/architecture/guide.html


  • 处理生命周期

    https://developer.android.google.cn/topic/libraries/architecture/lifecycle.html


  • LiveData

    https://developer.android.google.cn/topic/libraries/architecture/livedata.html


  • ViewModel

    https://developer.android.google.cn/topic/libraries/architecture/viewmodel.html


  • Room

    https://developer.android.google.cn/topic/libraries/architecture/room.html


Components 架构原则


  • 关注支持分离

  • 模型驱动UI,优先持久化模型

  • 响应式编程


Components 介绍


Lifecycle


Android声明周期的回调,帮助我们将原先需要在onStart()等生命周期回调的代码可以分离到Activity或者Fragment之外。每个 Android 开发者都应该面对过生命周期问题,即操作系统启动、停止和销毁 Activity。有了Lifecyle这个组件,开发者可通过托管将大大减少内存泄露和Crash的概率。


LiveData


LiveData 是一款基于观察者模式的可感知生命周期的核心组件,他是一个数据持有类,持有数据并且这个数据可以被观察被监听,和其他Observer不同的是,LiveData 持有界面代码 Lifecycle 的引用,意味着它和Lifecycle是绑定的。可以及时作出相应更新和释放。


ViewModel


用于实现架构中的ViewModel,同时是与Lifecycle绑定的,使用者无需担心生命周期。ViewModel 将视图的数据和逻辑从具有生命周期特性的实体(如 Activity 和 Fragment)中剥离开来。方便在多个Fragment之前分享数据,比如旋转屏幕后Activity会重新create,这时候使用ViewModel可以轻松缓存使用之前的数据,开发者无需再次请求网络调用数据。


Room


谷歌推出的一个在Sqlite 之上的ORM映射曾,使用注解,极大简化数据库的操作,更重要的是对内置迁移的支持。而且 Room 可以和 LiveData 集成在一起,提供可观察数据库并能及时响应生命周期的对象。Room 集简洁、强大和可靠性为一身,在管理本地储存上表现卓越,Google强烈推荐开发者尝试。


合理化建议

我们借助Goole组件开发的同时,也可以借助其他三方库来辅助我们开发出更好的应用, 开发者技术前线建议:


  • LiveData在某些情况下可使用RxJava2代替。

  • Lifecyle等生命周期管理我们可以借助RxLifeCyle。

  • 数据层官方推荐使用Room或者Realm,等其他ORM皆可。

  • 网络请求库推荐使用Retrofit+Okhttp

  • 多层之间解耦合,推荐使用服务发现(Service Locator) 或者依赖注入(DI),推荐Dagger2

  • Modle和View绑定我们可以使用DataBinding进行快速实现

  • 在使用组件架构时候,推荐使用MvpClean,切记不要Mvp,Mvp,Mvp!


Google samples

https://github.com/googlesamples/android-architecture-components


本文章由Tamic原创,在掘金发布。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值