Android Developers
Platform Android Studio Google Play Android Jetpack Docs News
  • Documentation
Overview Guides Reference Samples Design & Quality
  • Platform
  • Android Studio
  • Google Play
  • Android Jetpack
  • Docs
    • Overview
    • Guides
    • Reference
    • Samples
    • Design & Quality
  • News
  • App Basics
  • Introduction
  • Build your first app
    • Overview
    • Create an Android project
    • Run your app
    • Build a simple user interface
    • Start another activity
  • App fundamentals
  • App resources
    • Overview
    • Handle configuration changes
    • Localization
      • Localize your app
      • Test your app with pseudolocales
      • Unicode and internationalization support
      • Language and locale resolution
    • Complex XML resources
    • Resource types
      • Overview
      • Animation
      • Color state list
      • Drawable
      • Layout
      • Menu
      • String
      • Style
      • Font
      • More types
  • App manifest file
    • Overview
    • <action>
    • <activity>
    • <activity-alias>
    • <application>
    • <category>
    • <compatible-screens>
    • <data>
    • <grant-uri-permission>
    • <instrumentation>
    • <intent-filter>
    • <manifest>
    • <meta-data>
    • <path-permission>
    • <permission>
    • <permission-group>
    • <permission-tree>
    • <provider>
    • <receiver>
    • <service>
    • <supports-gl-texture>
    • <supports-screens>
    • <uses-configuration>
    • <uses-feature>
    • <uses-library>
    • <uses-permission>
    • <uses-permission-sdk-23>
    • <uses-sdk>
  • App permissions
    • Overview
    • Request app permissions
    • App permissions best practices
    • Define custom permissions
  • Devices
  • Device compatibility
    • Overview
    • Screen compatibility overview
    • Support different screen sizes
    • Support different pixel densities
    • Support display cutouts
    • Declare restricted screen support
    • Multiple APK support
      • Overview
      • Create multiple APKs for different API levels
      • Create multiple APKs for different screen sizes
      • Create multiple APKs for different GL textures
      • Create multiple APKs with several dimensions
    • Support different languages and cultures
    • Support different platform versions
    • Filters on Google Play
  • Wear
    • Overview
    • Adding wearable features to notifications
      • Overview
      • Creating a notification
      • Notification styles
      • Bridging mode for notifications
      • Maintaining compatibility
    • Creating wearable apps
      • Overview
      • Creating and running a wearable app
      • Standalone apps
      • Creating custom layouts
      • Keeping your app visible
      • Authentication in Wear
      • Adding voice capabilities
      • Packaging and distributing Wear apps
      • Debugging a Wear app
      • Capturing Wear UI screenshots
      • Creating Wear apps for China
    • Creating custom UIs
      • Overview
      • Defining layouts
      • Creating lists
      • Showing confirmations
      • Exiting full-screen activities
      • Using the Wear UI library
      • Wear navigation and actions
      • Multi-function buttons
      • Rotary input
      • Creating input method editors
      • Using wrist gestures
    • Sending and syncing data
      • Overview
      • Network access and syncing
      • Accessing the wearable data layer
      • Syncing data items
      • Transferring assets
      • Sending and receiving messages
      • Handling data layer events
      • Migrating Wear apps to GoogleApi
    • Creating data providers
      • Overview
      • Expose data to complications
    • Creating watch faces
      • Overview
      • Designing watch faces
      • Building a watch face service
      • Drawing watch faces
      • Watch face complications
      • Exposing data to complications
      • Adding complications to a watch face
      • Creating interactive watch faces
      • Providing configuration activities
      • Addressing common issues
      • Optimizing watch faces
    • Detecting location
    • Requesting Permissions
    • Using the Speaker
  • Android TV
    • Overview
    • Building TV Apps
      • Overview
      • Getting started with TV apps
      • Handling TV hardware
      • Managing TV controllers
      • Building TV layouts
      • Creating TV navigation
    • Building TV playback apps
      • Overview
      • Creating a catalog browser
      • Providing a card view
      • Building a details view
      • Using Leanback transport controls
      • Displaying a now playing card
      • Adding a guided step
      • Introducing first-time users to your app
      • Enabling background playback
    • Helping users find content on TV
      • Overview
      • Recommending TV content
        • Overview
        • Channels on the home screen
        • Video program attributes
        • Audio program attributes
        • Game program attributes
        • Watch next attributes
        • Previewing videos
        • Recommendations in Android N and earlier
      • Making TV apps searchable
      • Searching within TV Apps
    • Building TV games
    • Building TV channels
      • Overview
      • Developing a TV input service
      • Working with channel data
      • Managing user interaction
      • Supporting time-shifting
      • Supporting content recording
    • TV Apps checklist
  • Android Auto
    • Overview
    • Getting Started with Auto
    • Playing Audio for Auto
    • Messaging for Auto
    • Testing for Auto
  • Android Things
    • Overview
    • Platform differences
    • Google services
    • Supported hardware
    • Developer kits
      • Get started
      • NXP i.MX7D
      • Raspberry Pi 3
      • Advanced setup
        • Overview
        • Manually flash an image
        • Recover a device
        • Connecting to Wi-Fi with adb
    • Build apps
      • Create a Things app
        • Overview
        • Create a project
        • Connect the hardware
        • Interact with peripherals
        • Integrate peripheral drivers
      • Communicate with wireless devices
        • Bluetooth
        • LoWPAN
      • Configure devices
        • Settings
        • Updates
      • Interact with peripherals
        • Overview
        • GPIO
        • PWM
        • I2C
        • SPI
        • UART
        • Native PIO
        • CLI tool
      • Integrate native code
      • Build user-space drivers
        • Overview
        • Location
        • Input
        • Sensors
        • LoWPAN
      • Samples
    • Manage devices
      • Overview
      • Create a product
      • Configure a product
      • Create a build
        • Overview
        • Manage apps
      • Push an update
        • Overview
        • Automatic updates
      • Monitor analytics
    • Terms
      • Console Terms of Service
      • SDK License Agreement
    • Android Things Console
  • Chrome OS devices
    • Overview
    • Building apps for Chrome OS
    • Preparing your development environment
    • Optimizing Apps for Chrome OS
    • Resolving Issues with Screen Size
    • App Manifest Compatibility for Chromebooks
    • Loading Apps on Chromebooks
    • Chrome OS Device Support for Apps
    • App Rendering Differences on Chromebooks
    • Window management
    • Input compatibility for Chromebooks
    • Chrome OS devices on Emulator
    • Test Cases for Android Apps on Chrome OS
  • Core topics
  • Activities
    • Introduction to activities
    • The activity lifecycle
    • Activity state changes
    • Test your activities
    • Tasks and back stack
    • Processes and app lifecycle
    • Parcelables and bundles
    • Fragments
      • Overview
      • Create a fragment
      • Test your fragments
      • Build a flexible UI
      • Communicate with other fragments
    • Interact with other apps
      • Overview
      • Sending the user to another app
      • Getting a result from an activity
      • Allowing other apps to start your activity
    • Handling app links
      • Overview
      • Enabling links to app content
      • Verify app links
      • Create app links for instant apps
    • Loaders
    • Recents screen
    • Multi-window support
    • App shortcuts
      • Overview
      • Create shortcuts
      • Manage shortcuts
      • Best practices for shortcuts
    • App widgets
      • Overview
      • Build an app widget
      • Build an app widget host
  • Architecture Components
    • Overview
    • Adding Components to your Project
    • Data Binding Library
      • Overview
      • Get started
      • Layouts and binding expressions
      • Work with observable data objects
      • Generated binding classes
      • Binding adapters
      • Bind layout views to Architecture Components
      • Two-way data binding
    • Handling Lifecycles
    • LiveData
    • Paging Library
      • Overview
      • Display paged lists
      • Load paged data
    • Room Persistence Library
    • ViewModel
    • WorkManager
      • Overview
      • Getting Started
      • How-To Guides
        • Defining your WorkRequests
        • Observing the status of your work
        • Chaining work together
        • Cancelling and stopping work
        • Handling recurring work
        • Handling unique work
        • Testing your Workers
      • Advanced Concepts
        • Configuration and Initialization
        • Threading in WorkManager
          • Overview
          • Threading in Worker
          • Threading in CoroutineWorker
          • Threading in RxWorker
          • Threading in ListenableWorker
      • Migrating from Firebase JobDispatcher
    • Saving States
    • Saved State module for ViewModel
    • Release notes
    • Additional resources
  • Navigation
    • Overview
    • Principles of Navigation
    • Getting started
    • Design for different form factors
    • Design navigation graphs
    • Nested graphs
    • Global actions
    • Conditional navigation
    • Pass data between destinations
    • Create a deep link for a destination
    • Animate transitions between destinations
    • Update UI components with NavigationUI
    • Create swipe views with tabs
    • Interact programmatically
    • Test navigation
    • Add new destination types
    • Provide custom back navigation
    • Migrate to the Navigation component
  • Intents and intent filters
    • Overview
    • Common intents
  • User interface
    • Overview
    • Layouts
      • Overview
      • Build a responsive UI with ConstraintLayout
      • Create a list with RecyclerView
      • Create a card-based layout
      • Implementing adaptive UI flows
      • Improving layout performance
        • Overview
        • Optimizing layout hierarchies
        • Re-using layouts with <include/>
        • Delayed loading of views
      • Linear layout
      • Adapter view
      • Relative layout
      • Custom view components
        • Overview
        • Creating a custom view class
        • Implementing custom drawing
        • Making the view interactive
        • Optimizing the view
    • Look and feel
      • Material design
      • Styles and themes
      • Adaptive icons
      • Add a floating action button
      • Create shadows and clip views
      • Text
        • Autosizing TextViews
        • Downloadable fonts
        • Fonts in XML
        • Emoji compatibility
        • Magnifier widget
        • Spans
      • Buttons
      • Checkboxes
      • Radio buttons
      • Toggle buttons
      • Spinners
      • Pickers
      • Tooltips
    • Notifications
      • Overview
      • Create a notification
      • Create an expandable notification
      • Start an activity from a notification
      • Create a group of notifications
      • Create and manage notification channels
      • Modify a notification Badge
      • Create a custom notification
    • Add the app bar
      • Overview
      • Set up the app bar
      • Add and handle actions
      • Add an up action
      • Use action views and action providers
    • Control the system UI visibility
      • Overview
      • Dim the system bars
      • Hide the status bar
      • Hide the navigation bar
      • Enable fullscreen mode
      • Respond to UI visibility changes
    • Supporting swipe-to-refresh
      • Overview
      • Adding swipe-to-refresh to your app
      • Responding to a refresh gesture
    • Toasts overview
    • Pop-up messages overview
      • Overview
      • Build and display a pop-up message
      • Add an action to a message
    • Dialogs
    • Menus
    • Settings
      • Overview
      • Organize your settings
      • Customize your settings
      • Use saved values
      • Build a hierarchy in code
      • Handle other form factors
      • Preference components and attributes
    • Search
      • Overview
      • Creating a search interface
      • Adding recent query suggestions
      • Adding custom suggestions
      • Searchable configuration
      • Adding search functionality
        • Overview
        • Setting up the search interface
        • Storing and searching for data
        • Remaining backward compatible
    • Copy and paste
    • Drag and drop
    • Picture-in-picture Support
    • Creating backward-compatible UIs
      • Overview
      • Abstracting the new APIs
      • Proxying to the new APIs
      • Creating an implementation with older APIs
      • Using the version-aware component
  • Animations & transitions
    • Overview
    • Animations overview
    • Property animation overview
    • Animate drawable graphics
    • Reveal or hide a view using animation
    • Move a view using animation
    • Move a view using a fling animation
    • Enlarge a view using a zoom animation
    • Animate movement using spring physics
    • Auto animate layout updates
    • Animate layout changes using a transition
    • Create a custom transition animation
    • Start an activity using an animation
  • Images & graphics
    • Overview
    • Drawables overview
    • Vector drawables overview
    • Handling bitmaps
    • Selecting colors with the palette API
    • Reducing image download sizes
    • Hardware acceleration
    • OpenGL ES
    • Displaying graphics with OpenGL ES
      • Overview
      • Building an OpenGL ES environment
      • Defining shapes
      • Drawing shapes
      • Applying projection and camera views
      • Adding motion
      • Responding to touch events
    • Rendering
      • Overview
      • Reducing overdraw
      • Performance and view hierarchies
      • Analyzing with profile GPU rendering
    • Enhancing graphics with wide color content
  • Audio & video
    • Audio & video overview
    • Supported media formats
    • Media app architecture
      • Media app architecture overview
      • Using a media session
      • Building an audio app
        • Audio app overview
        • Building a media browser service
        • Building a media browser client
        • Media session callbacks
      • Building a video app
        • Video app overview
        • Building a video player activity
        • Media session callbacks
      • Responding to media buttons
      • Handling changes in audio output
      • Managing audio focus
      • The Google Assistant and media apps
    • Routing between devices
      • Routing overview
      • MediaRouter overview
      • MediaRouteProvider overview
    • Control amplitude with VolumeShaper
    • MediaPlayer overview
    • MediaRecorder overview
    • ExoPlayer
    • Additional Resources for Media
  • Background tasks
    • Overview
    • Guide to background processing
    • Sending operations to multiple threads
      • Overview
      • Specify the code to run on a thread
      • Create a manager for multiple threads
      • Run code on a thread pool thread
      • Communicate with the UI thread
    • Services
      • Overview
      • Create a background service
      • Send work requests to the background service
      • Report work status
      • Bound services
      • AIDL overview
    • Background optimizations
    • Broadcasts overview
    • Implicit Broadcast Exceptions
    • Manage device awake state
      • Overview
      • Keep the device awake
      • Schedule repeating alarms
  • App data & files
    • Overview
    • Storage overview
    • Save files on device storage
    • Save key-value data
    • Save data in a local database
      • Overview
      • Define data using entities
      • Create views into a database
      • Access data using DAOs
      • Migrate your database
      • Test your database
      • Reference complex data
    • Sharing simple data
      • Overview
      • Sending simple data to other apps
      • Receiving simple data from other apps
      • Adding an easy share action
    • Sharing files
      • Overview
      • Setting up file sharing
      • Sharing a file
      • Requesting a shared file
      • Retrieving file information
    • Sharing files with NFC
      • Overview
      • Sending files to another device
      • Receiving files from another device
    • Printing files
      • Overview
      • Printing photos
      • Printing HTML documents
      • Printing custom documents
    • Content providers
      • Overview
      • Content provider basics
      • Creating a content provider
      • Open files using storage access framework
      • Create a custom document provider
    • App install location
  • User data & identity
    • Overview
    • Add sign-in workflow
    • Autofill framework
      • Overview
      • Optimize your app for autofill
      • Build autofill services
    • Calendar provider overview
    • Contacts provider
      • Overview
      • Retrieving a list of contacts
      • Retrieving details for a contact
      • Modifying contacts using intents
      • Displaying the quick contact badge
    • Account transfer
    • Data backup
      • Overview
      • Back up user data
      • Back up key-value pairs
        • Overview
        • Register
      • Test backup and restore
    • Best practices for unique identifiers
    • Remember and authenticate users
      • Overview
      • Remember your user
      • Authenticate to OAuth2 services
      • Create a custom account type
  • User location
    • Overview
    • Optimize location for battery
    • Get the last known location
    • Change location settings
    • Receive location updates
    • Display a location address
    • Create and monitor geofences
    • Detect when users start an activity
    • Migrate to location and context APIs
    • Add maps
  • Touch & input
    • Overview
    • Input events
    • Using touch gestures
      • Overview
      • Detect common gestures
      • Track touch and pointer movements
      • Animate a scroll gesture
      • Handle multi-touch gestures
      • Drag and scale
      • Manage touch events in a ViewGroup
    • Handling keyboard input
      • Overview
      • Specifying the input method type
      • Handling input method visibility
      • Supporting keyboard navigation
      • Handling keyboard actions
    • Supporting game controllers
      • Overview
      • Handling controller actions
      • Supporting controllers across Android versions
      • Supporting multiple game controllers
    • Input method editors
      • Creating an input method
      • Image keyboard
    • Spelling checker
  • Camera
    • Overview
    • Taking photos
    • Recording videos
    • Controlling the camera
    • Camera API
  • Sensors
    • Overview
    • Sensors overview
    • Motion sensors
    • Position sensors
    • Environment sensors
    • Raw GNSS measurements
  • Connectivity
    • Overview
    • Performing network operations
      • Overview
      • Connect to the network
      • Manage network usage
      • Optimize network data usage
      • Parse XML data
    • Transmit network data using Volley
      • Overview
      • Send a simple request
      • Set up RequestQueue
      • Make a standard request
      • Implement a custom request
    • Perform network operations using Cronet
      • Overview
      • Send a simple request
      • Cronet request lifecycle
      • Reference
        • org.chromium.net
          • Overview
          • CallbackException
          • CronetEngine
            • Overview
            • CronetEngine.Builder
              • Overview
              • LibraryLoader
          • CronetException
          • InlineExecutionProhibitedException
          • NetworkException
          • QuicException
          • UploadDataProvider
          • UploadDataProviders
          • UploadDataSink
          • UrlRequest
            • Overview
            • Builder
            • Callback
            • Status
            • StatusListener
          • UrlResponseInfo
            • Overview
            • HeaderBlock
    • Transferring data without draining the battery
      • Overview
      • Optimize downloads for efficient network access
      • Minimize the effect of regular updates
      • Avoid redundant downloads
      • Modify patterns based on the connectivity type
    • Reduce network battery drain
      • Overview
      • Collecting network traffic data
      • Analyzing data traffic
      • Optimizing user-initiated network use
      • Optimizing app-initiated network use
      • Optimizing server-initiated network use
      • Optimizing general network use
    • Transfer data using Sync Adapters
      • Overview
      • Create a Stub Authenticator
      • Create a Stub Content Provider
      • Create a Sync Adapter
      • Run a Sync Adapter
    • Bluetooth
      • Overview
      • Bluetooth low energy overview
    • NFC
      • Overview
      • NFC basics
      • Advanced NFC
      • Host-based card emulation overview
    • Telecom
      • Overview
      • Build a calling app
    • Wi-Fi
      • Wi-Fi scanning overview
      • Wi-Fi peer-to-peer overview
      • Wi-Fi aware overview
      • Wi-Fi location with RTT
    • Companion device pairing overview
    • USB
      • Overview
      • Accessory overview
      • Host overview
    • VPN
    • Session initiation protocol overview
    • Discover and connect
      • Overview
      • Use network service discovery
      • Create P2P connections with Wi-Fi
      • Use Wi-Fi P2P for service discovery
  • Renderscript
    • Overview
    • Advanced RenderScript
    • Runtime API reference
      • Overview
      • Numerical types
      • Object types
      • Conversion functions
      • Mathematical constants and functions
      • Vector math functions
      • Matrix functions
      • Quaternion functions
      • Atomic update functions
      • Time functions and types
      • Allocation data access functions
      • Object characteristics functions
      • Kernel invocation functions and types
      • Input/output functions
      • Debugging functions
      • Graphics functions and types
      • Index
  • Web-based content
    • Overview
    • Building web apps in WebView
    • Managing WebView objects
    • Migrating to WebView in Android 4.4
    • Supporting different screens in web apps
    • Debugging web apps
    • Best practices for web apps
  • Android App Bundles
    • Overview
    • Download modules with the Play Core Library
  • Google Play Instant
    • Overview of Google Play Instant
    • Get started with instant apps
      • Create an instant-enabled app bundle
      • UX best practices for apps
    • Get started with instant games
      • Overview
      • Unity plugin
      • Technical requirements checklist for games
      • UX best practices for games
      • Migrate to Android App Bundles
    • Reduce the size of your instant app or game
    • Add ads to your instant app or game
    • Provide multiple entry points
    • Integrate with Firebase
      • Add Google Analytics for Firebase to your instant app
      • Use Firebase Dynamic Links with instant apps
    • Google Play Instant policy
    • Resources
      • Reference
      • Code samples
      • SDK release notes
    • Support
      • FAQs
      • Known issues
      • StackOverflow
  • App Actions
  • Slices
    • Overview
    • Getting Started
    • Slice templates
  • Best practices
  • Testing
    • Overview
    • Fundamentals of testing
    • Set up project
    • Building effective unit tests
      • Overview
      • Building local unit tests
      • Building instrumented unit tests
    • Automating UI tests
      • Overview
      • Testing UI for a single app
      • Testing UI for multiple apps
    • Testing app component integrations
      • Overview
      • Testing your service
      • Testing your content provider
    • Testing UI performance
    • Espresso
      • Overview
      • Setup instructions
      • Basics
      • Recipes
      • Multiprocess
      • Accessibility checking
      • Lists
      • Intents
      • Web
      • Idling resource
      • Cheat sheet
      • Additional resources
    • UI Automator
    • JUnit4 Rules
    • AndroidJUnitRunner
    • Release notes
    • Additional resources
  • Performance
    • Overview
    • Android Vitals
      • Overview
      • Stuck Partial Wake Locks
      • Excessive Wakeups
      • Excessive Background Wi-Fi Scans
      • Excessive Background Network Usage
      • ANRs
      • Crashes
      • Slow Rendering
      • Frozen Frames
      • Permission Denials
      • App Startup Time
    • App Standby Buckets
    • Processes and Threads Overview
    • Better Performance through Threading
    • Optimizing for Battery Life
      • Overview
      • Optimizing for Doze and App Standby
      • Monitoring the Battery Level and Charging State
      • Determining and Monitoring the Docking State and Type
      • Determining and Monitoring the Connectivity Status
      • Power Management Restrictions
      • Analyzing Power Use with Battery Historian
      • Testing power-related issues
    • Reduce App Size
    • Manage Your App's Memory
    • Overview of Memory Managemement
    • Designing for Seamlessness
    • Keeping Your App Responsive
    • Performance Tips
    • SMP Primer for Android
    • Verifying App Behavior on the Android Runtime (ART)
  • Accessibility
    • Overview
    • Build and test apps for accessibility
      • Make apps more accessible
      • Test your app's accessibility
      • Analyze a window's accessibility tree
      • Make custom views more accessible
    • Create your own accessibility service
    • Additional resources
  • Security
    • App security best practices
    • Security tips
    • Security with HTTPS and SSL
    • Network security configuration
    • Updating your security provider to protect against SSL exploits
    • Protecting against security threats with SafetyNet
      • Overview
      • SafetyNet Attestation API
      • SafetyNet Safe Browsing API
      • SafetyNet reCAPTCHA API
      • SafetyNet Verify Apps API
    • Cryptography
    • Android Keystore System
    • Verifying hardware-backed key pairs with key attestation
    • Android Protected Confirmation
    • Supporting Direct Boot
    • Using scoped directory access
    • App security improvement program
  • Build for Billions
    • Overview
    • Connectivity
    • Device capability
    • Data cost
    • Battery consumption
    • UI and content
  • Build for Enterprise
    • Overview
    • Developer guide
    • Work profiles
    • Set up managed configurations
    • Work contacts
    • Device management policies
    • Device management
      • Overview
      • Build a device policy controller
      • Work profiles on fully managed devices
      • Dedicated devices
        • Overview
        • Lock task mode
        • Multiple users
        • Cookbook
      • Device control
      • Networking and telephony
      • Security
      • System updates
      • Network activity logging
    • Android versions
      • Overview
      • Android 9
      • Android 8.0
      • Android 7.0
    • Device administration
  • Google Play
    • Google Play Billing
      • Overview
      • Use the Google Play Billing Library
        • Overview
        • Add one-time product-specific features
        • Add rewarded-product-specific features
        • Add subscription-specific features
        • Play Billing Library reference
        • Play Billing Library release notes
      • Use Google Play Billing with AIDL
        • Overview
        • Google Play Billing Reference
      • Add Real-time Developer Notifications
      • Best Practices
      • Test Google Play Billing
    • Making Your App Content Searchable by Google
    • Optimizing Contextual Content for the Assistant
    • Google Play Developer API
    • APK Expansion Files
    • Application Licensing
      • Overview
      • Licensing Overview
      • Setting Up for Licensing
      • Adding Licensing to Your App
      • Licensing Reference
    • Google Play Install Referrer
      • Overview
      • Play Install Referrer Library
        • Overview
        • Reference
        • Releases Notes
      • Play Install Referrer API
Google I/O 2019 is coming on May 7-9! See what's happening
  • Android Developers
  • Docs
  • Guides

Test Release Notes

The release notes for the test component now appear in the AndroidX release notes. The old original release notes are available in the release note archive.

Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.

  • Twitter Twitter
    Follow @AndroidDev on Twitter
  • YouTube YouTube
    Check out Android Developers on YouTube
  • More Android

    • Android
    • Enterprise
    • Security
    • Source
  • Support

    • Report platform bug
    • Report documentation bug
    • Google Play support
    • Join user studies
  • Documentation

    • Developer guides
    • Design guides
    • API reference
    • Samples
    • Android Studio
Google Developers
  • Android
  • Chrome
  • Firebase
  • Google Cloud Platform
  • All products
  • Privacy
  • License
  • Brand guidelines
  • Get news and tips by email Subscribe