谷歌agera vs rxAndroid

nho*_*ass 3 android rx-java rx-android

当我第一次进入Android中的反应式编程时,我发现rxJava和rxAndroid更喜欢世界上许多开发人员.但是今天我发现了另一个名为agera of Google的库,它仍在维护过程中(最后一次提交是2个月前).

它看起来像rxJava乍一看,但有更有意义的api名称,这有助于我轻松理解反应式编程.更重要的是,谷歌的优秀开发人员正在他们的项目中使用它(Google Play电影),我相信这是有道理的.

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

Lor*_*nMK 7

可以在Github上问题中找到David Karnok(RxJava维护者)的一个很好的比较.

我已经浏览了文档,我的印象是Agera几乎是第一代反应库,具有强大的第0代关系.从透视角度来看:

  • 第0代是指具有或不具有实际值的addListener/removeListener和update().java.util.Observable和大多数GUI框架都可以被认为是第0代.虽然通常很麻烦,但是从它们中制作可组合的本机库是很麻烦的.

  • 第一代是微软人在2009年发明的.通过简单的架构和出色的可组合性,它向上迈出了一步.然而,他们的概念在2013年末发现了一些缺点.示例:Rx.NET,Reactive4Java

  • 第二代是RxJava 1.x目前的产品.它修复了同步取消问题,引入了一些可选的背压和提升到链中的概念.
  • 第3代是Reactive-Streams计划,采用充实的标准化API,设计为〜2015年.该架构采用背压进行反应推动.实例是反应器1,2和Akka-Streams.
  • 第四代是该领域的前沿.它以Reactive-Streams为基础,并以运算符融合的形式添加了自适应推挽选项,允许高效的同步和异步使用.例子是Reactor 2.5.(RxJava 2.x现在在3到4之间).

我知道这是一个可选的库,如果你不喜欢它,请不要使用它.不要误会我的意思,这不是关于你有多少运营商,你有多强大的底层平台你的反应库,或者你不关心GUI中的背压.这是关于Rx家族的建筑经验,陷阱和可能性,可能有助于/启发这个图书馆.如果Agera是基于Reactive-Streams或者是按照它的精神设计的,我会说好的,为什么不呢.

至于原来的问题:

是不是RxJava重新发明了?

没有.

它应该更轻盈吗?

似乎是API-vise,不确定性能老虎钳

补充?

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

还是只是灵感?

显然没有受到Rx的启发.

Google Play电影,我们希望尽可能地打开源代码

在Netflix的脚步中,我看到了.你看,他们在途中得到了很大的帮助......