Skip to main content
Android Developers
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!
  • Developer Verification
  • 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
  • Level Up guidelines
  • 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
  • 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.
  • 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.
  • Documentation
    Access detailed manuals, API references, and technical specifications to help you build and integrate with confidence.
/
  • 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 quality
Overview Core value User experience Technical quality Privacy & Security
Android Developers
  • Essentials
    • More
  • Design & Plan
    • More
    • Overview
    • Core value
    • User experience
    • Technical quality
    • Privacy & Security
  • Develop
    • More
  • Google Play
    • More
  • Blog
    • More
  • Android Studio
  • Overview
  • Performance
  • App performance guide
  • Get your App Performance Score
  • Memory
    • Overview
    • About memory management
    • Memory allocation among processes
    • Manage your app's memory
    • Processes and threads
    • Set app memory budgets
    • Understanding and troubleshooting Android memory
      • Introduction
      • Fundamental concepts
      • Quick assessment tools
      • Analyzing Java memory
      • Bitmaps and memory
      • Analyzing native memory
      • WebView and memory
      • App code is memory
      • Threads and memory
      • Memory locality and performance
      • Service bindings and process states
      • System-wide troubleshooting
      • Memory reclaim—eviction and swap
      • kswapd and lmkd interaction
  • Inspecting performance
    • About inspecting performance
    • Profile types and when each is helpful
    • Android Performance Analyzer (APA)
    • Android Studio Profilers
    • Profiling and tracing
      • Choose the right profiling method
      • Capture real user data using ProfilingManager
        • Overview
        • How to capture a profile
          • App-driven profiling
          • Trigger-based profiling
        • Retrieve and analyze profiling data
        • Query ProfilingManager profiles
        • Set up a worker for profile uploading
        • Bulk trace analysis
        • Practical performance debugging example ANR
        • Profiling limitations
        • Debug commands for local profiling
      • System tracing
        • Overview
        • Capture trace
          • Capture a trace in Android Studio
          • Capture a trace on a device
          • Capture a trace from the command line
        • Navigate a report
        • Custom events
          • Define custom events
          • Custom trace events in native code
      • In-process tracing
      • Inspect GPU rendering
    • Benchmarking
      • Benchmark your app
      • Macrobenchmark
        • Writing a benchmark
        • Capture the metrics
        • Control your app
        • Adding instrumentation arguments
      • Microbenchmark
        • About Microbenchmark
        • Write a benchmark
        • Profile a benchmark
        • Microbenchmark instrumentation arguments
        • Microbenchmark and Hilt
        • Building without Gradle
      • Benchmarking in CI
    • Measure performance
      • Overview
      • Examples
  • Improving performance
    • How to improve performance
    • Enable the R8 app optimizer
      • Enable app optimization
      • Optimize specified packages
      • Use R8 in full mode
      • Analyze R8 configuration
      • Choose libraries wisely
      • Adopt optimizations incrementally
      • Use keep rules
        • About keep rules
        • Add global options
        • Add keep rules
        • Add additional rule types
        • Follow best practices
        • Keep rule use cases and examples
      • Advanced configurations
        • Target a build variant
        • Customize which resources to keep
      • Test the optimization
      • Troubleshoot R8 optimizations
        • Fix optimization problems
        • Use rules to troubleshoot
      • Optimization for library authors
    • Baseline Profiles
      • Overview
      • Create Baseline Profiles
      • Create Baseline Profiles for a library
      • Configure Baseline Profile generation
      • Measure with Macrobenchmark library
      • Manually create and measure Baseline Profiles
      • Debug Baseline Profiles
      • Case study - Android Calendar
    • Startup Profiles
      • Overview
      • Create Startup Profiles
      • Confirm optimization
    • Difference between Baseline Profiles and Startup Profiles
    • App startup
      • Analyze and optimize app startup
      • Case study - Gmail Wear OS
      • App startup library
    • Guides
      • Set up your environment for testing
      • About background work ⍈
      • Declare a device performance class
      • About App Standby Buckets
      • About app hibernation
      • Verify app behavior on the Android runtime (ART)
    • Solving common problems
      • App Startup
      • ANRs
        • Keep your app responsive
        • Diagnose and fix ANRs
        • Find the unresponsive thread
      • Rendering
        • Performance of rendering
        • Reducing overdraw
        • Performance and view hierarchies
        • Analyzing with profile GPU rendering
        • Improve layout performance
      • Battery and power
        • Optimize for doze and app standby
        • Monitor the battery level and charging state
        • Monitor connectivity status and connection metering
        • Determining and monitor docking state and type
        • Profile battery usage with Batterystats and Battery Historian
        • Analyze power use with Battery Historian
        • Understand power management resource limits
        • Test power-related issues
        • Background optimizations
      • Reduce app size
      • Hardware acceleration
      • Best practices for SQLite performance
    • Performance best practices
  • Monitoring performance
    • About monitoring performance
    • Android vitals
      • About Android vitals
      • ANRs
      • Crashes
      • Slow Rendering
      • Slow Sessions
      • Low memory killers (LMKs)
      • Memory Usage (Anonymous RSS + swap)
      • Bitmap Memory Usage
      • Excessive Wake Locks
      • Stuck Partial Wake Locks
      • Excessive Wakeups
      • Excessive Background Wi-Fi Scans
      • Excessive Background Network Usage
      • Excessive Battery Usage
      • Permission Denials
      • App Startup Time
      • DEX Code Optimization
      • JankStats library
  • On Google Play
  • Android vitals
  • Healthy releases
  • Build AI experiences
  • Get started
  • Get started
  • Hello, world!
  • Developer Verification
  • 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
  • Android XR
  • Wear OS
  • Android Health
  • Better Together
  • All devices ⤵️
  • Libraries
  • Android platform
  • Jetpack libraries
  • Compose libraries
  • Google Play services ↗️
  • Google Play SDK index ↗️
  • Play Console
  • Go to Play Console
  • Learn more ↗️
  • Fundamentals
  • Play Monetization
  • Play Integrity
  • Play Policies
  • Play Programs ↗️
  • Games Dev Center
  • Overview
  • Play Asset Delivery
  • Play Games Services
  • Play Games on PC
  • Level Up guidelines
  • All Play guides ⤵️
  • Libraries
  • 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
  • Android App Bundles
  • Brand & marketing
  • Play Console APIs ↗️
  • the Android Developer's Blog
  • Read the latest
  • Explore the authors →
  • Explore categories
  • Product News
  • Community
  • How-tos
  • Case Studies
  • Events & Programs
  • Documentation