August 13, 2026
Android 18 Canary Preview: The New APIs Every Android Developer Should Try Now
Google ditched the old “Developer Preview” playbook for continuous Canary drops and the AI-native APIs quietly shipping right now are worth…

By AndroidLab by Andre
2 min read
Google ditched the old "Developer Preview" playbook for continuous Canary drops and the AI-native APIs quietly shipping right now are worth your weekend.
Has there ever been that time when you visit changelog page, refresh it, and see like an entire platform shift happened in between? That's Android right now.
If you weren't bitten by the big "Android 18 Developer Preview" announcement that hit in March — HMMPPP. Google killed that model. From Android 17, there would be no more previews — just one (nearly) continuous track of Canary builds dropping monthly. Miss a build, miss an API.
Here is what you really should be focusing on.
1. MCP Server using your app as an MCP Server
This is the one that no one talks about enough. AppFunctions (Android MCP) enables your app to serve its own features as an on-device Model Context Protocol server — Gemini (or any agent, really!) can invoke your capabilities through a well-defined interface so that they can complete tasks for the user instead of just scraping the UI.
// Exposing a simple app function via the AppFunctions library
@AppFunction(description = "Add an item to the user's grocery list")
suspend fun addGroceryItem(
itemName: String,
quantity: Int = 1
): AppFunctionResult {
val entry = GroceryEntry(name = itemName, qty = quantity)
groceryRepository.insert(entry)
return AppFunctionResult.success("Added $itemName x$quantity")
}// Exposing a simple app function via the AppFunctions library
@AppFunction(description = "Add an item to the user's grocery list")
suspend fun addGroceryItem(
itemName: String,
quantity: Int = 1
): AppFunctionResult {
val entry = GroceryEntry(name = itemName, qty = quantity)
groceryRepository.insert(entry)
return AppFunctionResult.success("Added $itemName x$quantity")
}It's still experimental but if you're building anything adjacent to agents, start prototyping right now.
2. Hybrid Inference on Firebase AI Logic
Never Opted-out of On Device vs. Cloud Inference at Build-time! Hybrid Inference routes dynamically:
PREFER_ON_DEVICE— fast, private, offline-capablePREFER_CLOUD— less lightweight models, better accuracyONLY_ON_DEVICE— hard privacy constraint
val config = InferenceConfig.Builder()
.setOrchestrationMode(OrchestrationMode.PREFER_ON_DEVICE)
.build()val config = InferenceConfig.Builder()
.setOrchestrationMode(OrchestrationMode.PREFER_ON_DEVICE)
.build()Bet this pattern becomes the default for all serious AI-powered Compose app by next year.
3. Emulator & ADB: Boring But Gold
- Zero-config peer-to-peer emulator networking — test multi-device flows (multiplayer, companion apps) without manual port forwarding.
- ADB Wi-Fi 2.0 — Does not break when you switch networks or the machine goes to sleep This will save you hours a week on its own.
Why This is Important for Your Stack
This was the framing Google gave to I/O '26 — Android is an operating system, and a continuing evolution into an intelligence system and those APIs certainly bear that out.
And if your also doing backend work — gRPC/GraphQL calls orchestrated with on device inference, and AppFunctions bridging server-side logic directly to system level AI agents. Not just API sugar, that is actually a new architecture pattern!
Key Takeaways
- Developer Previews is dead — follow Canary builds monthly instead.
- AppFunctions is what makes your app an agent-callable service.
- Hybrid Inference is where real control over on-device vs. cloud AI balance comes into play.
- Upgrading tooling (emulator networking, ADB Wi-Fi 2.0) to resolve years of hassle for developers without making a big deal out of it
Don't wait for a version number You can already find the APIs that will shape the next decade of Android sitting in your SDK Manager — go grab a recent Canary and play with one this week.