Skip to main content
Essentials
Build AI experiences
Build AI-powered Android apps with Gemini APIs and more.
Get started
Get started
Create your first app. Use Compose for UI and adaptive app development to support multiple device form factors.
Hello, world!
Adaptive apps
Compose for UI
AI-powered IDE
Training
Monetization with Play ↗️
Optimize by form factor
Build apps that optimize the user experience on phones, tablets, foldables, cars, XR, and more.
Phones, tablets, foldables
Android for Cars
Android TV
Android XR
Googlebook
ChromeOS
Wear OS
Build by category
Learn to build for your use case by following Google's prescriptive and opinionated guidance.
Games
Camera & media
Social & messaging
Health & fitness
Productivity
Enterprise apps
Get the latest
Stay in touch with the latest releases throughout the year, join our preview programs, and give us your feedback.
Latest updates
Experimental updates
Android Studio preview
Jetpack & Compose libraries
Wear OS releases
Privacy Sandbox ↗️
Design & Plan
Excellent Experiences
Build the best experiences for your best users.
Learn more
UI Design
Design a beautiful user interface using Android best practices.
Design for Android
Mobile
Desktop experiences
XR Headsets & XR Glasses
AI Glasses
Widgets
Wear OS
Android TV
Android for Cars
Architecture
Design robust, testable, and maintainable app logic and services.
Introduction
Libraries
Navigation
Modularization
Testing
Kotlin Multiplatform
Quality
Plan for app quality and align with Play store guidelines.
Overview
Core value
User experience
Accessibility
Technical quality
Excellent Experiences
Security
Safeguard users against threats and ensure a secure Android experience.
Overview
Privacy
Permissions
Identity
Fraud prevention
Develop
Gemini in Android Studio
Your AI development companion for Android development.
Learn more
Get Android Studio
Core areas
Get the samples and docs for the features you need.
Samples
Multidevice support
User interfaces
Background work
Data and files
Connectivity
All core areas ⤵️
Tools and workflow
Use the IDE to write and build your app, or create your own pipeline.
Write and debug code
Build projects
Test your app
Performance
Command-line tools
Gradle plugin API
Android Bench
Device tech
Write code for form factors. Connect devices and share data.
Phones, tablets, foldables
ChromeOS
Android for Cars
Android TV
Android XR
Wear OS
Android Health
Better Together
All devices ⤵️
Libraries
Browse API reference documentation with all the details.
Android platform
Jetpack libraries
Compose libraries
Google Play services ↗️
Google Play SDK index ↗️
Google Play
Play Console
Publish your app or game and grow your business on Google Play.
Go to Play Console
Learn more ↗️
Fundamentals
Learn how to engage users, monitize, and secure your app.
Play Monetization
Play Integrity
Play Policies
Play Programs ↗️
Games Dev Center
Develop and deliver games. Get tools, downloads, and samples.
Overview
Play Asset Delivery
Play Games Services
Play Games on PC
All Play guides ⤵️
Libraries
Browse API reference documentation with all the details.
Play Feature Delivery
Play In-app Updates
Play In-app Reviews
Play Install Referrer
Google Play services ↗️
Google Play SDK index ↗️
All Play libraries ⤵️
Tools & resources
Tools for publishing, promoting, and managing your app.
Android App Bundles
Brand & marketing
Play Console APIs ↗️
Blog
the Android Developer's Blog
Read the latest
Explore the authors →
Explore categories
Case Studies
Real-world results from real-world users. Explore how different teams use our tools to achieve their goals.
Events & Programs
Get the details on upcoming webinars, workshops, meetups, and special initiatives designed to help you grow.
Product News
Stay in the loop with the latest updates, feature releases, and behind-the-scenes looks at how we’re evolving.
Community
Discover stories from our users, spotlight features, and the collaborative projects that bring us all together.
How-tos
From quick tips to deep-dive tutorials, these step-by-step guides are designed to help you work smarter and faster.
/
English
Deutsch
Español – América Latina
Français
Indonesia
Italiano
Polski
Português – Brasil
Tiếng Việt
Türkçe
Русский
עברית
العربيّة
فارسی
हिंदी
বাংলা
ภาษาไทย
中文 – 简体
中文 – 繁體
日本語
한국어
Android Studio
Sign in
App architecture
Essentials
More
Design & Plan
More
Develop
More
Google Play
More
Blog
More
Android Studio
Introduction
Guide to app architecture
About app architecture
Architecture recommendations
Learning pathway ⍈
App fundamentals
UI layer libraries
About the UI layer
UI events
State holders and UI state
State production
Lifecycle-aware components
Lifecycles
Handle lifecycles
ViewModel
About ViewModel
Create ViewModels with dependencies
ViewModel Scoping APIs
Saved State module for ViewModel
ViewModel APIs cheat sheet
Save UI states
Use Kotlin coroutines with lifecycle-aware components
Paging Library
About paging
Load and display paged data
Page from network and database
Transform data streams
Manage and present loading states
Test your Paging implementation
Migrate to Paging 3
Domain layer
Data layer libraries
About the data layer
Offline first
DataStore
WorkManager ⍈
App startup
Modularization
About modularization
Common patterns
App resources
About app resources
Handle configuration changes
Localization
Localize your app
Test your app with pseudolocales
Unicode and internationalization support
Language and locale resolution
Per-app language preferences
Resource types
String
Fonts
More resource types
App manifest file
About app manifests
<action>
<activity>
<activity-alias>
<application>
<attribution>
<category>
<compatible-screens>
<data>
<grant-uri-permission>
<instrumentation>
<intent-filter>
<layout>
<manifest>
<meta-data>
<path-permission>
<permission>
<permission-group>
<permission-tree>
<profileable>
<property>
<provider>
<queries>
<receiver>
<service>
<supports-gl-texture>
<supports-screens>
<uri-relative-filter-group>
<uses-configuration>
<uses-feature>
<uses-library>
<uses-native-library>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
App entry points
Activities
Introduction to activities
The activity lifecycle
Activity state changes
Test your app's activities
Tasks and the back stack
Processes and app lifecycle
Parcelables and bundles
Recents screen
Activity security
Add app shortcuts ⍈
App navigation
Principles of navigation
Navigation component
Overview
Navigation controller
Design your navigation graph
Overview
Dialog destinations
Activity destinations
Nested graphs
Deep links
New destination types
Type safety
Encapsulate your code
Global actions
Fragments and the Kotlin DSL
Use the Navigation editor
Use your navigation graph
Navigate to a destination
Navigate with options
Safe args
Pass data between destinations
Animate transitions between destinations
Conditional navigation
Interact programmatically with the Navigation component
The back stack
Overview
Dialogs and the back stack
Circular navigation and the back stack
Multiple back stacks
Integrations
Navigate with feature modules
Multi-module projects
Connect UI components to NavController
Migrate to the Navigation component
Test navigation
Test fragment navigation
Test Compose navigation
Custom back navigation
Custom back navigation
Predictive back gesture
Add support for predictive back animations
Add support for predictive back animations in Views
Navigation Event
Overview
Set up development environment
Handle back gestures and animations
Set up a dispatcher
Responsive design
Handling configuration changes
Design for different form factors
Swipe between views
Swipe views using ViewPager2
Swipe views using ViewPager
Navigation 3
Overview
Get started
Understand and implement the basics
Save and manage navigation state
Configure metadata
Modularize navigation code
Create custom layouts using Scenes
Overview
Modify scenes with scene decorators
Animate between destinations
Apply logic or wrappers to destinations
Migrate from Navigation 2
Fragments
About fragments
Create a fragment
Fragment manager
Fragment transactions
Animate transitions between fragments
Fragment lifecycle
Saving state with fragments
Communicate with fragments
Working with the app bar
Displaying dialogs with DialogFragment
Debug your fragments
Test your fragments
Deep links
About deep links
Create deep links
Implement App Links
About App Links
Add intent filters
Configure website associations
Verify App Links
Test App Links
Troubleshoot
App Links FAQ
Developer tools
Interact with other apps
About interacting with other apps
About intents and intent filters
About common intents
Google Maps intents for Android
Send users to another app
Get a result from an activity
Allow other apps to start your activity
Limit loading in on-device Android containers
Package visibility
About package visibility
Know which packages are visible automatically
Declare package visibility needs
Fulfill common use cases
Test package visibility
Dependency injection
About dependency injection
Manual dependency injection
Dependency injection with Hilt
Hilt in multi-module apps
Use Hilt with other Jetpack libraries
Hilt testing guide
Hilt and Dagger annotations cheat sheet
Dagger
Dagger basics
Using Dagger in Android apps
Using Dagger in multi-module apps
Build AI experiences
Get started
Get started
Hello, world!
Adaptive apps
Compose for UI
AI-powered IDE
Training
Monetization with Play ↗️
Optimize by form factor
Phones, tablets, foldables
Android for Cars
Android TV
Android XR
Googlebook
ChromeOS
Wear OS
Build by category
Games
Camera & media
Social & messaging
Health & fitness
Productivity
Enterprise apps
Get the latest
Latest updates
Experimental updates
Android Studio preview
Jetpack & Compose libraries
Wear OS releases
Privacy Sandbox ↗️
Excellent Experiences
Learn more
UI Design
Design for Android
Mobile
Desktop experiences
XR Headsets & XR Glasses
AI Glasses
Widgets
Wear OS
Android TV
Android for Cars
Architecture
Introduction
Libraries
Navigation
Modularization
Testing
Kotlin Multiplatform
Quality
Overview
Core value
User experience
Accessibility
Technical quality
Excellent Experiences
Security
Overview
Privacy
Permissions
Identity
Fraud prevention
Gemini in Android Studio
Learn more
Get Android Studio
Core areas
Samples
Multidevice support
User interfaces
Background work
Data and files
Connectivity
All core areas ⤵️
Tools and workflow
Write and debug code
Build projects
Test your app
Performance
Command-line tools
Gradle plugin API
Android Bench
Device tech
Phones, tablets, foldables
ChromeOS
Android for Cars
Android TV