我可以在单个 java class 库中使用 RxJava2 和 RxAndroid 吗?

Can I use RxJava2 and RxAndroid in a single java class library?

我的任务是创建一个 SDK,可以使用 ReactiveX programming. I already have an android project using RxAndroid created, but now I need to extend it with RxJava2 从 Android 和 Java 应用程序中使用。

我面临的问题是我是否应该创建 'regular' java class 库并将其用于两种情况或创建 2 个单独的包(这意味着很多重复代码+维护)。

这可能吗?如果是这样,这是一个好习惯吗?

whether I should create 'regular' java class library and use it for both scenarios

是的。我要做的只是简单地将您的 Android 库项目更改为标准 Java 库,并将 RxAndroid 依赖项替换为 RxJava。大多数代码应该仍然可以编译。不使用的代码将主要使用 RxAndroid 提供的调度程序,并且可以更改为采用 Scheduler 个参数。

然后创建一个依赖于 Java 库的 Android 库项目,并将 RxAndroid-特定代码放在那里。

作为@AlexeyRomanov 回答的补充,请随时查看可用于 Android 和 Java 项目的库:https://github.com/JakeWharton/RxRelay.

它基本上是对 RxJava 的扩展,但它可能会给您一个可靠的思路。祝你好运!