Bryn Flow
Platform Update

Android 17 Is Here: What Every Android Developer Needs to Know

RS
Raiyan Shahid Building ExamAI & FileForge under Bryn Flow · Get in touch

Android 17 (API level 37) has rolled out to Pixel devices and a wave of partner phones from Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo, and Xiaomi. Google is framing it as the release where Android stops being just an operating system and starts being what they're calling an "intelligence system" — but the more immediately consequential change for anyone shipping apps is a lot simpler: Jetpack Compose is now the only UI toolkit getting new platform investment, and large-screen support just became mandatory. Here's what actually matters if you're targeting SDK 37.

The change that affects every app: Compose-first

This is the headline for existing codebases. As of Android 17, every new Android API, library, and piece of platform guidance is built exclusively for Jetpack Compose. Legacy View-based components — android.widget, Fragments, RecyclerView, ViewPager — are now in maintenance mode: they'll keep getting critical bug fixes, but no new features. If you're still maintaining a View-based app, nothing breaks today, but the platform has told you clearly where its investment is going from here. Google has shipped an XML-to-Compose migration skill specifically to help with this transition, which is as strong a signal as any that they expect a wave of legacy codebases to start migrating over the coming release cycles.

AppFunctions: apps as tools for AI agents

The other big platform addition is AppFunctions — effectively an on-device equivalent of the Model Context Protocol, letting your app expose specific capabilities as orchestrable "tools" that AI agents and assistants (Google's Gemini included) can discover and execute with access to your app's actual state. Implementation is deliberately lightweight — you annotate a suspend function and describe it in KDoc:

class NoteFunctions(private val noteRepository: NoteRepository) {
    /**
     * Adds a new note to the app.
     * @param appFunctionContext The execution context.
     * @param title The title of the note.
     * @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}

Android Studio ships an AppFunctions agent skill that generates this kind of Kotlin boilerplate and optimizes your KDocs automatically, plus a test agent app for trying it locally before wider rollout. If your app has a natural "action" a user might ask an assistant to perform on their behalf — creating a note, starting a timer, adding an item to a list — this is the API built for exposing that.

Large-screen support is no longer optional

This is the change most likely to actually break something if you ignore it. For apps targeting API 37+, the system now ignores screenOrientation, resizeableActivity=false, and aspect ratio constraints on large screens (anything over 600dp shortest width) — there's no opt-out. Games are exempt based on their Play Store category, but everything else is expected to support free-form windowing and every window size. Pair that with new multitasking surfaces — App Bubbles (long-press a launcher icon to float any app), a Bubble Bar for organizing them on tablets and foldables, and a fully interactive Desktop Picture-in-Picture mode (not the read-only PiP you're used to) — and it's clear Google is pushing hard on Android as a genuine multi-window, multi-device platform, not just a phone OS with tablet support bolted on.

Compose helps here too: the new NavigationSuiteScaffold can automatically transition a bottom nav bar into navigation rails as the window grows, and Navigation 3's Scenes (ListDetailSceneStrategy, SupportingPaneSceneStrategy) give you multi-pane layouts without hand-rolling breakpoint logic yourself.

Performance changes worth knowing about

A few platform-level performance changes land in this release that are worth being aware of even if they don't require code changes:

Privacy and security changes

Several privacy-preserving APIs landed alongside the intelligence-system framing: a System Contact Picker that grants temporary access to specific contact fields instead of the broad READ_CONTACTS permission, a session-only precise location button, and an EyeDropper API for system color picking without needing screen-capture permission. On the security side, Android 17 adds post-quantum cryptography support via ML-DSA key generation and a hybrid classical/ML-DSA APK signature scheme (v3.2), tightens rules around dynamic native code loading (libraries loaded via System.load() must now be read-only, or you'll hit an UnsatisfiedLinkError), and adds delays to SMS OTP delivery for apps targeting SDK 37+ as an anti-fraud measure, with exemptions for default SMS, assistant, and companion apps.

Your migration checklist before targeting SDK 37

The bottom line

Android 17 is less about any single flashy feature and more about Google drawing a clear line under where the platform is headed: Compose as the only fully-supported UI layer, large-screen and multi-window support as a baseline requirement rather than a nice-to-have, and on-device AppFunctions as the standard way apps expose capability to AI agents. None of it forces an immediate rewrite if you're not targeting SDK 37 yet — but if you're planning your Compose migration timeline, this release is a strong signal to stop treating it as optional.

Where to go next

Ready to start building?

Whichever tool or track you're using, the Learn Hub has full project tutorials, cheat sheets, and interview prep to back it up.

Explore the Learn Hub