Android jetpack zui佳总结和实践

本文详细介绍了Android Jetpack的各个组件,包括Lifecycles、ViewModel、LiveData、WorkManager、Navigation、Paging和Room等,阐述它们在解决生命周期管理、数据持久化、后台任务调度等问题上的应用。通过具体的实例,如登录页面、歌单广场页面和视频播放等,展示了Jetpack如何简化Android开发。此外,文章还探讨了MVVM架构以及Kotlin的Flow和View Binding在项目中的使用。
摘要由CSDN通过智能技术生成

背景

在Android开发中经常面临的问题:

(1)在应用程序(Activity、Fragment)的生命周期管理困难,尤其是Fragment的跳转带来的生命周期管理问题。

(2)在Activity需要重新创建的时候,界面控制器(View层)中存储的数据丢失,需要重新初始化,影响用户体验。

(3)Android的异步操作(DB,NetWork)时,在界面控制器(View层)被销毁后,界面控制器需要结束和任务的订阅关系,避免内存泄漏和不必要的信息回调。

(4)Android的后台服务和任务愈发困难。主要是由于Android系统的DOZE省电模式,以及后来对于后台任务和服务的限制。

(5)用户偏好设置和网络请求数据的本地存储问题。

针对以上问题,Google推出Android Jetpack框架来解决以上问题。Jetpack主要分为4个部分(下图): 基础、架构、行为、界面 。

同时Google也推出 AndroidX 库,AndroidX 是对support library的重大改进。在AndroidX中将所有软件包名都以字符串**androidx.**开头,位于一致的命名空间中。

使用Android Jetpack组件的优势:

(1)Lifecycles轻松管理应用程序的生命周期。

(2)LiveData构建可观察的数据对象,以便在基础数据更改时通知视图。

(3)ViewModel存储在应用程序轮换中未销毁的UI相关数据,在界面重建后恢复数据。

(4)Room轻松的实现SQLite数据库。

(5)WorkManager系统自动调度后台任务的执行,优化使用性能。

(6)Navigation导航组件轻松管理Fragment等页面跳转问题。

google推荐的基于Jetpack的Android客户端软件开发架构图:

(1)通过定义Repository管理数据来源(Model)。

(2)使用LiveData驱动界面(View)更新。

(3)使用ViewModel代替Presenter管理数据(VM)。

(4)Room(Sqlite)储存本地序列化的数据,Retrofit获取远程数据的数据。

关于该架构的疑问:该模式的是MVP还是MVVM架构?

与传统的MVP架构相比有以下优点:

(1)在MVP架构中,Presenter中持有View层的引用,如果生命周期处理不当,会存在内存泄露的风险。在MVVM架构中View层和VM层通过LiveData通信,避免了内存泄漏。。

(2)传统MVP架构由于各层之间的通信是通过接口,所以会导致接口数量惊人,上诉架构通过观察者模式(LiveData)避免了接口问题。

如果在上诉架构中加入Databidning。实现View和Model的双向绑定接可以演变成MVVM架构。但是基于DataBinding的MVVM架构有如下缺点:

(1)数据双向绑定,导致View不可重用。

(2)通过DataBinding实现数据绑定,会增加Bug调试难度。

(3

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值