gpt4 book ai didi

android - 谷歌 Agera 与 rxAndroid

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:05 25 4
gpt4 key购买 nike

当我第一次涉足 Android 中的响应式编程时,我发现了世界上许多开发人员都喜欢的 rxJavarxAndroid。但是今天我发现了另一个名为Agera的图书馆。仍在维护过程中的谷歌(最后一次提交是 2 个月前)。

乍一看很像 rxJava,但是有更有意义的 api 名称,可以帮助我轻松理解响应式编程。更重要的是,Google 的出色开发人员正在他们的项目 (Google Play Movies) 中使用它,我相信这是有原因的。

我想知道 Google Agera 是否应该更轻量级?与 rxJava 和 rxAndroid 相比性能如何?有没有大公司在生产中使用它?我需要学习它才能理解 Android 中的响应式编程吗?

最佳答案

来自 David Karnok(RxJava 维护者)的一个很好的比较可以在 issues on Github 中找到。 .

我浏览了文档,我的印象是 Agera 几乎是与第 0 代紧密联系的第 1 代响应式(Reactive)库。换句话说:

  • 第 0 代是当您拥有带有或不带有实际值的 addListener/removeListener 和 update() 时。 java.util.Observable 和大多数 GUI 框架可以被认为是第 0 代。用它们制作一个可组合的原生库是可能的,尽管通常很麻烦。

  • 第一代是 Microsoft 人员在大约 2009 年发明的。这是一个向上的步骤,具有简单的架构和出色的可组合性。然而,他们的概念在 2013 年末发现了一些缺点。示例:Rx.NET、Reactive4Java

  • 第二代是目前的 RxJava 1.x。它修复了同步取消问题,引入了一些可选的背压和提升到链中的概念。
  • 第三代是 Reactive-Streams 计划,具有充实的标准化 API,设计于 2015 年左右。该架构是带有背压的响应式(Reactive)推送。例如 Reactor 1、2 和 Akka-Streams。
  • 第 4 代是该领域的前沿。它建立在 Reactive-Streams 的基础上,并以运算符融合的形式添加了一个自适应推拉选项,允许高效的同步和异步使用。示例是 Reactor 2.5。 (RxJava 2.x 现在介于 3 和 4 之间)。

我知道这是一个可选库,如果你不喜欢就不要使用它。不要误会我的意思,这不是关于你有多少个运算符(operator),你的响应式(Reactive)库与底层平台的内联有多强大,或者你不关心 GUI 中的背压。它是关于 Rx 系列的架构经验、陷阱和可能性,它们可能会帮助/启发这个库。如果 Agera 是基于 Reactive-Streams 或以其精神设计的,我会说好吧,为什么不呢。

至于原来的问题:

Isn't it RxJava reinvented?

没有。

Is it supposed to be more light-weight?

看起来很 API-vise,不确定性能-vise

Complementary?

作为一般基于 addListener 的 API 的补充。 Observable 和 Supplier 的名称冲突可能会带来一些不便。

Or just inspired?

显然不受 Rx 的启发。

Google Play Movies and we like to open source code whenever possible

我看到了 Netflix 的脚步。你看,他们一路上得到了重要的帮助......

关于android - 谷歌 Agera 与 rxAndroid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47730699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com