Oboe is a C++ library which makes it easy to build high-performance audio apps on Android. It was created primarily to allow developers to target a simplified API that works across multiple API levels back to API level 16 (Jelly Bean).
- Compatible with API 16 onwards - runs on 99% of Android devices
- Chooses the audio API (OpenSL ES on API 16+ or AAudio on API 27+) which will give the best audio performance on the target Android device
- Automatic latency tuning
- Modern C++ allowing you to write clean, elegant code
- Workarounds for some known issues
- Used by popular apps and frameworks
To build Oboe you'll need a compiler which supports C++14 and the Android header files. The easiest way to obtain these is by downloading the Android NDK r17 or above. It can be installed using Android Studio's SDK manager, or via direct download.
- Getting Started Guide
- Full Guide to Oboe
- API reference
- Tech Notes
- History of Audio features/bugs by Android version
- Migration guide for apps using OpenSL ES
- Frequently Asked Questions (FAQ)
- Our roadmap - Vote on a feature/issue by adding a thumbs up to the first comment.
- Getting started with Oboe
- Low Latency Audio - Because Your Ears Are Worth It (Android Dev Summit '18)
- Winning on Android - How to optimize an Android audio app. (ADC '18)
Sample code and apps
- Sample apps can be found in the samples directory.
- A complete "effects processor" app called FXLab can be found in the apps/fxlab folder.
- Also check out the Rhythm Game codelab.
Third party sample code
- Ableton Link integration demo (author: jbloit)
We would love to receive your pull requests. Before we can though, please read the contributing guidelines.
View the releases page.