关于Android架构组件,Android Architecture Components,使用AAC构建项目
来源:互联网 发布:云熙软件 编辑:程序博客网 时间:2024/06/06 07:47
关于Android架构组件
Google在Google IO 2017大会期间宣布了一个非常棒的工具,它被称为架构组件,即Android Architecture Components,本文的出发点是假设你已经掌握了Android开发的基本知识,在此基础上你才能看懂这些组件的作用,如果没有,可阅读相关知识后再进行本文的阅读。
在学习了这些新的元素之后,我们可以通过写出一个简单的Demo项目,在那里你可以检查你的学习成果(如果你没有任何AAC开发经验)。
在学习了这些新的元素之后,我们可以通过写出一个简单的Demo项目,在那里你可以检查你的学习成果(如果你没有任何AAC开发经验)。
MVVM + 观察者模式 + Repositories + 架构组件 ?
不要被这些名词所左右,其实它比第一眼看起来简单。
Repositories服务 是数据和应用程序其余部分之间的沟通桥梁 。 构建一个Foo特性,即 FooRepository从FooViewModel中提取数据源,同时提供必要的Observables将数据流传输到后者。
另一方面,ViewModel应该连接Repository和View,这也是业务逻辑所在的地方,就像MVP中的Presenter或者MVC中的Controller一样,但是有一些关键的区别,我们通过扩展框架,以及搭建自己的arch.lifecycle.ViewModel类,它具有一些内部生命周期,使我们的开发减少一些基本的流程,但其实细分流程会更多。
FooView将保存对相应的FooViewModel实例的引用,这与调用一样简单:
不要被这些名词所左右,其实它比第一眼看起来简单。
Repositories服务 是数据和应用程序其余部分之间的沟通桥梁 。 构建一个Foo特性,即 FooRepository从FooViewModel中提取数据源,同时提供必要的Observables将数据流传输到后者。
另一方面,ViewModel应该连接Repository和View,这也是业务逻辑所在的地方,就像MVP中的Presenter或者MVC中的Controller一样,但是有一些关键的区别,我们通过扩展框架,以及搭建自己的arch.lifecycle.ViewModel类,它具有一些内部生命周期,使我们的开发减少一些基本的流程,但其实细分流程会更多。
FooView将保存对相应的FooViewModel实例的引用,这与调用一样简单:
viewModel = ViewModelProviders.of(this).get(FooViewModel.class);
ViewModel对象的范围是在获取ViewModel时传递给ViewModelProvider的Lifecycle。 ViewModel保留在内存中,直到生命周期结束 - 在Activity的情况下,当它被finished; 如果是Fragment的情况下,当它被Detached。
ViewModel
下一步也是最后一步是订阅ViewModel公开的数据可观察对象,显示进入的数据,并将用户操作报告给ViewModel。就是这样,不需要大量的回调,保持你的视图(一如既往)的逻辑自由,但现在不那么冗长,因此更容易维护。
与其他模式相比,使用这种结构可以使我们的代码更加可重用/模块化。随着新的Android架构组件编写测试和关注的分离就将变得异常简单,从而实现数据和事件的无缝流动。
与其他模式相比,使用这种结构可以使我们的代码更加可重用/模块化。随着新的Android架构组件编写测试和关注的分离就将变得异常简单,从而实现数据和事件的无缝流动。
LiveData <T>:是一个数据持有者类,它保留一个值并允许观察这个值。 与常规的observable不同,LiveData符合应用程序组件的生命周期,以便Observer可以指定应该观察的生命周期。
Android的ViewModel为我们提供了一个生命周期感知组件,而不需要持有对View(例如Activity,Fragment)的引用,这样不容易导致内存泄漏。 但是,它将拥有数据的所有权,因此我们必须把重点放在操作数据和业务逻辑上。
注意:由于ViewModel超出了特定的Activity和Fragment实例,因此它不应该引用View或任何可能持有对Activity Context的引用的类。 如果ViewModel需要Application的Context(例如,查找系统服务),则可以扩展AndroidViewModel类并在构造函数中具有接收Application的构造函数(因为Application类扩展了Context)。
未完,后续将有更多博客和Demo介绍架构组件的其他知识。
声明
欢迎转载,但请保留文章原始出处
作者:Jaiky_杰哥
出处:http://blog.csdn.net/jaikydota163/article/details/78645012
阅读全文
0 0
- 关于Android架构组件,Android Architecture Components,使用AAC构建项目
- "Android 架构组件"详解( Architecture Components) 未完待续
- 谷歌官方推出Android应用开发架构组件介绍(Android Architecture Components)
- Android Architecture Components使用介绍(一)
- Android Architecture Components
- 浅谈Android Architecture Components
- 【译】Android Architecture Components
- Android Architecture Components(1)
- Android Architecture Components(2)
- Android Architecture Components(3)
- Android官方应用程序架构设置指南--Architecture Components
- 基于Android Architecture Components的应用架构指南
- 基于Android Architecture Components的应用架构指南
- Android Architecture Components应用架构组件源码详解(基于1.0以上)(第二篇ViewModel和LiveData)
- Android Architecture Components+MVP 实战
- 【翻译】App Architecture (Android架构组件) 指南
- Android Architecture Components应用架构组件源码详解(基于1.0以上)(第一篇生命周期监听分离LifecycleObserver和LifecycleOwner源码详解)
- 谷歌官方Android应用架构库(Android Architecture Components)学习完整版
- java上传下载实例
- tomcat reload 时报web应用已停止,不能加载jdbc异常的解决方法
- 一键离线地图发布(工具软件下载) 使用教程
- MyBatis(7)--spring boot集成MyBatis,集成Druid批量更新报错multi-statement not allow
- 关于使用Genymotion运行安装app失败的问题
- 关于Android架构组件,Android Architecture Components,使用AAC构建项目
- easyui表格datagrid居中不齐的问题
- u-boot i2c 的调试
- 等着涉嫌醉驾的郎永淳的会是什么?
- Android 如何在设置字体大小不统一的情况下,设置全局字体大小
- 【CCF】201604_2俄罗斯方块
- scikit-learn 中文文档-神经网络模型-监督学习|ApacheCN
- spring MVC 原理
- 静默推送