# reactivex/rxandroid

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/reactivex-rxandroid).**

19,964 stars · 2,938 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/ReactiveX/RxAndroid
- awesome-repositories: https://awesome-repositories.com/repository/reactivex-rxandroid.md

## Description

RxAndroid is a reactive programming library and binding layer that integrates RxJava with the Android runtime environment. It provides a framework for composing asynchronous data streams and managing event-driven workflows specifically tailored for Android's threading requirements.

The library functions as an Android thread scheduler, routing reactive operations to the main UI thread or specific Android loopers. This ensures that asynchronous task outcomes are dispatched to the primary interface thread for safe updates of visual components while preventing background processing from blocking the user interface.

The project covers core capability areas including Android thread management, UI thread synchronization, and the coordination of asynchronous workflows via the Android message queue and system handlers.

## Tags

### User Interface & Experience

- [Main Thread Dispatchers](https://awesome-repositories.com/f/user-interface-experience/main-thread-dispatchers.md) — Provides mechanisms to safely route asynchronous data streams to the primary Android UI thread.

### Mobile Development

- [Reactive Programming Patterns](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-development/reactive-programming-patterns.md) — Enables event-driven programming using RxJava to manage asynchronous data streams in Android apps.
- [Android Thread Management](https://awesome-repositories.com/f/mobile-development/android-thread-management.md) — Handles the execution of asynchronous tasks and coordinates their return to the main UI thread.
- [Reactive Stream Bindings](https://awesome-repositories.com/f/mobile-development/reactive-stream-bindings.md) — Wraps Java reactive primitives to provide Android-specific scheduling capabilities.
- [RxJava Android Bindings](https://awesome-repositories.com/f/mobile-development/rxjava-android-bindings.md) — Integrates RxJava with Android to manage threading and scheduling for reactive streams.
- [Asynchronous Workflow Coordination](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-development/asynchronous-workflow-coordination.md) — Manages complex sequences of background operations and coordinates completion via Android loopers.

### Software Engineering & Architecture

- [Android System Handlers](https://awesome-repositories.com/f/software-engineering-architecture/android-system-handlers.md) — Provides the fundamental mechanism for posting runnable tasks into Android system event loops.
- [Android Looper Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/execution-control/concurrency-controlled-schedulers/execution-schedulers/android-looper-schedulers.md) — Implements scheduling that maps reactive stream emissions directly to Android message queues.
- [Reactive Programming Libraries](https://awesome-repositories.com/f/software-engineering-architecture/reactive-programming-libraries.md) — Provides a framework for composing asynchronous data streams using observable patterns.
- [Android Runtime Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/asynchronous-thread-schedulers/custom-thread-executors/android-runtime-schedulers.md) — Provides a set of schedulers that route reactive operations to the main UI thread or specific loopers.
- [Looper-Based Dispatchers](https://awesome-repositories.com/f/software-engineering-architecture/background-thread-dispatchers/looper-based-dispatchers.md) — Enables binding asynchronous communication to designated message loops for background thread processing. ([source](https://github.com/reactivex/rxandroid#readme))

### Part of an Awesome List

- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — RxJava bindings for Android-specific reactive programming.
