
Building a Lightweight Native Radio App for Android Automotive OS
Built a lightweight AAOS radio app because most automotive radio apps felt bloated, outdated, or simply not designed for actual driving.
So I made bradio.app — a native Android Automotive OS radio app focused on:
- fast launch
- low distraction UX
- privacy
- reliability
- native AAOS behavior
Current version:
- 100+ stations across Estonia, Latvia, Lithuania, Poland, and Ukraine
- ~150 streams total
- background playback
- steering wheel controls
- voice search
- Now Playing metadata (~97% metadata coverage)
- favourites + recents
- offline station catalogue cache
- no ads
- no accounts
- no analytics SDKs
- no Google Play Services dependency
A few things I intentionally didn’t add:
- no sleep timer
- no EQ
- no endless settings
- no webview-style UI
- no deep menu trees
The whole APK stays under 10 MB because AAOS hardware fragmentation is still very real.
Some AAOS-specific choices:
- Search + Settings locked while driving
- High-contrast dark-only UI
- Pure MediaBrowser / Media3-based media stack
- Home screen media card integration
- Custom Now Playing favourite actions
- Physical steering wheel button support
The app is currently distributed through:
- Google Play for Cars
- Harman Ready Link
- Appning by FORVIA
Distribution itself is global, but actual availability can vary depending on OEM integrations, regional storefronts, certification status, and vehicle platform decisions.
It also recently passed Harman Ignite Automotive APK validation with zero NOK findings.
What I’ve learned building for AAOS:
- simplicity matters more than feature count
- stability matters more than architectural purity
- many existing automotive apps are still designed like old desktop media browsers
- AAOS rewards apps that respect driver attention
I’m currently restructuring the internal architecture before eventually doing a full Media3 session migration, but trying very hard not to turn the app into another overengineered media platform.
Curious what other AAOS developers here think:
What are the biggest mistakes you see in current automotive media apps?
Also happy to answer technical questions about MediaBrowser compatibility, validator requirements, distraction optimization, OEM distribution, or AAOS UX constraints.
I’ve also been publishing some AAOS and other platform architecture notes, validator reports, and development writeups on bradio.dev for anyone interested in the engineering side of automotive Android apps.