# Develop for Android

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.


## Docs

- [Develop for Android](https://developer.android.com/develop.md.txt): Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.
- [Data transfer background task options](https://developer.android.com/develop/background-work/background-tasks/data-transfer-options.md.txt): This guide outlines choices for reliable background data transfer in Android apps and provides examples for how to implement them.
- [Work states](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/states.md.txt): This document details the various lifecycle states that one-time and periodic background work goes through in Android&#39;s WorkManager, including terminal and non-terminal states like ENQUEUED, RUNNING, SUCCEEDED, FAILED, CANCELLED, and BLOCKED.
- [Foreground service timeouts](https://developer.android.com/develop/background-work/services/fgs/timeout.md.txt): This document details the new foreground service timeout restrictions introduced in Android 15 and higher, specifically for dataSync and mediaProcessing service types, and provides guidance on handling these limits.
- [Connect Bluetooth devices](https://developer.android.com/develop/connectivity/bluetooth/connect-bluetooth-devices.md.txt): Learn how to establish a connection between two Bluetooth devices by implementing both server-side and client-side mechanisms using BluetoothServerSocket and BluetoothSocket.
- [Set up Bluetooth](https://developer.android.com/develop/connectivity/bluetooth/setup.md.txt): This document explains how to set up Bluetooth Classic and Bluetooth Low Energy (BLE) in an Android app, covering how to verify Bluetooth support and enable it on the device.
- [UrlResponseInfo](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlResponseInfo.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UploadDataProviders](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/UploadDataProviders.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Develop for constrained satellite networks](https://developer.android.com/develop/connectivity/satellite/constrained-networks.md.txt): This document guides Android app developers on how to optimize and adapt their applications to function effectively on constrained satellite networks, which have limited data and higher latency, by identifying the app as satellite-optimized and managing network behavior.
- [Build a default phone application](https://developer.android.com/develop/connectivity/telecom/dialer-app.md.txt): This document outlines how to develop a calling application on Android using the Telecom framework, covering the implementation of ConnectionService and InCallService, necessary manifest declarations and permissions, and handling various call scenarios.
- [Use Wi-Fi Direct (P2P) for service discovery](https://developer.android.com/develop/connectivity/wifi/nsd-wifi-direct.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Wi-Fi Network Request API for peer-to-peer connectivity](https://developer.android.com/develop/connectivity/wifi/wifi-bootstrap.md.txt): Learn how to use the Wi-Fi Bootstrap API on Android 10 (API level 29) and higher to prompt users to connect to a specific Wi-Fi access point for bootstrapping secondary devices, like Chromecast or Google Home.
- [Request permission to access nearby Wi-Fi devices](https://developer.android.com/develop/connectivity/wifi/wifi-permissions.md.txt): This document explains how Android 13 and higher handle Wi-Fi permissions using the new NEARBY_WIFI_DEVICES runtime permission, detailing its use, backward compatibility, and how it differs from previous versions that relied on ACCESS_FINE_LOCATION.
- [Wi-Fi location: ranging with RTT](https://developer.android.com/develop/connectivity/wifi/wifi-rtt.md.txt): This document explains how to use the Wi-Fi RTT API for highly accurate indoor location services, detailing its functionality, implementation differences across Android versions, and setup requirements.
- [App Actions Test Library](https://developer.android.com/develop/devices/assistant/app-actions-test-library.md.txt): The App Actions Test Library (AATL) provides capabilities for developers to programmatically test App Action fulfillment, ensuring `shortcut.xml` configurations and Android intent invocations are correct through automated testing.
- [Assistant sharing](https://developer.android.com/develop/devices/assistant/assistant-sharing.md.txt): This document explains how to enable Google Assistant to share structured app content, rather than just text or screenshots, by implementing the onProvideAssistContent() method.
- [Develop UI](https://developer.android.com/develop/ui.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [API defaults](https://developer.android.com/develop/ui/compose/accessibility/api-defaults.md.txt): Learn how Material, Compose UI, and Foundation APIs provide built-in accessibility support by default, covering topics like minimum touch target sizes, graphic elements, interactive components, and guidelines for custom components.
- [Style guidelines for Jetpack Compose APIs](https://developer.android.com/develop/ui/compose/api-guidelines.md.txt): This document introduces and links to detailed guidelines for writing scalable, performant, and consistent Jetpack Compose code, APIs, and UI components, catering to app developers, framework developers, and library creators.
- [Compose UI Architecture](https://developer.android.com/develop/ui/compose/architecture.md.txt): This document explains the unidirectional data flow (UDF) pattern in Jetpack Compose, detailing how state flows down and events flow up, and how to implement events, state holders, and work with ViewModels to manage UI state effectively.
- [Date pickers](https://developer.android.com/develop/ui/compose/components/datepickers.md.txt): This document explains how to implement date pickers in Android apps using Jetpack Compose, allowing users to select single dates or date ranges via calendar dialogs or text input fields.
- [Dialogs for time pickers](https://developer.android.com/develop/ui/compose/components/time-pickers-dialogs.md.txt): This document explains how to implement time pickers within dialogs using Jetpack Compose, providing examples for both basic AlertDialog integration and more advanced custom dialog implementations.
- [Material Design 3 in Compose](https://developer.android.com/develop/ui/compose/designsystems/material3.md.txt): This document explores how to implement Material Design 3 (M3) in Jetpack Compose applications, covering theming, color schemes, typography, shapes, and accessibility features like dynamic color and tonal elevation.
- [Additional resources](https://developer.android.com/develop/ui/compose/glance/additional-resources.md.txt): This document provides a comprehensive list of resources, including design kits, code samples, and API references, to help developers learn and implement Android app widgets using Jetpack Glance.
- [Graphics modifiers](https://developer.android.com/develop/ui/compose/graphics/draw/modifiers.md.txt): This document explores various drawing modifiers like drawWithContent, drawBehind, and drawWithCache, and graphics modifiers such as graphicsLayer in Jetpack Compose. It covers their usage for custom content drawing, transformations, clipping, alpha control, compositing strategies, and creating custom drawing modifiers.
- [Add shadows in Compose](https://developer.android.com/develop/ui/compose/graphics/draw/shadows.md.txt): This document details how to implement various shadow effects in Jetpack Compose using Modifier.shadow(), Modifier.dropShadow(), and Modifier.innerShadow(), covering basic, animated, gradient, neumorphic, neobrutalist, and realistic shadows.
- [Icons](https://developer.android.com/develop/ui/compose/graphics/images/material.md.txt): This document explains how to use the `Icon` composable in Jetpack Compose to draw single-color Material Design icons, detailing its features, usage, and best practices for modern icon integration.
- [Interoperability APIs](https://developer.android.com/develop/ui/compose/migrate/interoperability-apis.md.txt): This document introduces the key APIs required to integrate Jetpack Compose components within an existing View-based Android application, enabling incremental migration.
- [Auto-format a phone number in a text field](https://developer.android.com/develop/ui/compose/quick-guides/content/auto-format-phone-number.md.txt): You can auto format a phone number in a text field to save time and increase user engagement, productivity, and efficiency.
- [Display an app bar](https://developer.android.com/develop/ui/compose/quick-guides/content/display-app-bar.md.txt): An app bar is a container at the top or bottom of the screen that contains key features and navigation items.
- [Support multiple links in a single string of text](https://developer.android.com/develop/ui/compose/quick-guides/content/support-multiple-links.md.txt): You can support multiple links in a single string of text to give users options where to go and increase engagement.
- [Validate input as the user types](https://developer.android.com/develop/ui/compose/quick-guides/content/validate-input.md.txt): You can validate input as the user types in a text field, such as entering a name, email, address, or other contact information. This validation reduces errors and saves your users time.
- [About window insets](https://developer.android.com/develop/ui/compose/system/insets.md.txt): This document explains how WindowInsets in Jetpack Compose help manage system UI elements like status and navigation bars, enabling apps to go edge-to-edge without content being obscured by the system UI. It details various inset types and their use for safe drawing and gesture handling.
- [Testing APIs](https://developer.android.com/develop/ui/compose/testing/apis.md.txt): This document explains the core concepts of interacting with Compose UI elements for testing, detailing how to use finders to select elements, assertions to verify their state, and actions to simulate user events.
- [Autofill in Compose](https://developer.android.com/develop/ui/compose/text/autofill.md.txt): This document explains how to implement and utilize the Autofill framework within Android Compose applications to streamline the process of filling and saving user credentials and form data.
- [Display text](https://developer.android.com/develop/ui/compose/text/display-text.md.txt): Learn the basic methods for displaying text in Jetpack Compose, including using a direct String and referencing string resources for better internationalization and code sharing.
- [Display emoji](https://developer.android.com/develop/ui/compose/text/emoji.md.txt): This document explains how to support the latest emojis in Android apps, particularly within Compose UI, covering backward compatibility, interoperability with Views, and troubleshooting common issues like &#39;tofu&#39; display.
- [About stylus input](https://developer.android.com/develop/ui/compose/touch-input/stylus-input.md.txt): Learn how to integrate stylus input into Android applications, supporting various features like handwritten input, pressure, tilt, and palm detection for an enhanced user experience.
- [Stylus input in text fields](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/stylus-input-in-text-fields.md.txt): This document explains how to enable and manage stylus input within Jetpack Compose TextField components, including configuration, default behavior, and input delegation.
- [Drag and drop](https://developer.android.com/develop/ui/compose/touch-input/user-interactions/drag-and-drop.md.txt): This document explains how to implement drag and drop functionality in Jetpack Compose using the `dragAndDropSource` and `dragAndDropTarget` modifiers, enabling data transfer within and between applications.
- [Handling user interactions](https://developer.android.com/develop/ui/compose/touch-input/user-interactions/handling-interactions.md.txt): Learn how UI components in Compose handle user interactions, from low-level Interaction events to using InteractionSource for observing and emitting these events. The document also covers building custom visual effects with Indication for consistent feedback.
- [Reveal or hide a view using animation](https://developer.android.com/develop/ui/views/animations/reveal-or-hide-view.md.txt): This document details how to implement reveal, crossfade, and card flip animations to show or hide UI elements in Android apps, emphasizing smoother user experiences.
- [Create an advanced widget](https://developer.android.com/develop/ui/views/appwidgets/advanced.md.txt): This document outlines recommended practices for creating advanced Android widgets, focusing on optimizing content updates, managing update frequency and timing, and generating accurate previews for collection widgets.
- [Use saved Preference values](https://developer.android.com/develop/ui/views/components/settings/use-saved-values.md.txt): This document describes how to store, retrieve, and listen for changes to Preference values saved by the Preference library, covering both SharedPreferences and custom PreferenceDataStore implementations.
- [Define shapes](https://developer.android.com/develop/ui/views/graphics/opengl/shapes.md.txt): Develop your UI on Android.
- [Create custom haptic effects](https://developer.android.com/develop/ui/views/haptics/custom-haptic-effects.md.txt): This document provides examples and guidance on how to create custom haptic effects in Android, including custom vibration patterns, compositions using haptic primitives, and advanced waveform envelopes.
- [Manually set up the edge-to-edge display](https://developer.android.com/develop/ui/views/layout/edge-to-edge-manually.md.txt): This document provides steps for manually configuring an edge-to-edge display in an Android app, including laying out the app in full screen, changing system bar colors, and handling insets, as an alternative to the recommended `enableEdgeToEdge` function.
- [Create a two-pane layout](https://developer.android.com/develop/ui/views/layout/twopane.md.txt): This document explains how to implement two-pane layouts using the SlidingPaneLayout component to create responsive user interfaces for Android devices, especially on larger screens and foldables.
- [Overview of Trusted Web Activities](https://developer.android.com/develop/ui/views/layout/webapps/trusted-web-activities.md.txt): Trusted Web Activity is a new protocol based on Custom Tabs for opening web-app content, such as Progressive Web Apps (PWAs), directly from your Android application.
- [Use picture-in-picture (PiP)](https://developer.android.com/develop/ui/views/picture-in-picture.md.txt): Android 8.0 allows activities to launch in picture-in-picture (PiP) mode
- [Add custom search suggestions](https://developer.android.com/develop/ui/views/search/adding-recent-query-suggestions.md.txt): Develop your UI on Android.
- [AppSearch](https://developer.android.com/develop/ui/views/search/appsearch.md.txt): AppSearch is a high-performance, on-device search solution for managing locally stored, structured data, enabling custom in-app search capabilities even while offline.
- [Develop with WebXR](https://developer.android.com/develop/xr/develop-with-webxr.md.txt): Android XR (Extended Reality) device development hub
- [Add spatial audio to your XR app](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-spatial-audio.md.txt): Integrate and customize spatial audio features in Android XR apps using Jetpack SceneCore for immersive 3D audio.
- [XR_ANDROID_performance_metrics OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_performance_metrics.md.txt): This OpenXR extension provides APIs to enumerate and query various performance metrics counters for an XR device, its compositor, and the XR application, enabling developers to perform performance analysis and targeted optimization.
- [AndroidXRMouseUsages Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRMouseInteractionProfile/AndroidXRMouseUsages.md.txt): Android XR (Extended Reality) for Unity development hub
- [XRPassthroughFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRPassthroughFeature.md.txt): Android XR (Extended Reality) device development hub
- [Asynchronous background processing](https://developer.android.com/develop/background-work/background-tasks/asynchronous.md.txt): This document defines asynchronous work in Android, outlining its characteristics and differentiating it from persistent work, and notes considerations for Java and Kotlin.
- [Set a wake lock](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/set.md.txt): This document explains how to set and acquire a wake lock in an Android app to temporarily keep the device awake, including necessary permissions and code examples in Kotlin and Java.
- [Define work requests](https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started/define-work.md.txt): This guide demonstrates how to define and customize WorkRequest objects within WorkManager, covering aspects like scheduling one-time and periodic tasks, setting constraints, implementing delays, retry policies, handling input data, and tagging work.
- [Support for long-running workers](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/long-running.md.txt): This document explains how WorkManager supports long-running workers, enabling tasks to run for extended periods by managing a foreground service and showing a configurable notification.
- [Migrating from GCMNetworkManager to WorkManager](https://developer.android.com/develop/background-work/background-tasks/persistent/migrate-from-legacy/gcm.md.txt): This document explains how to migrate Android applications from using GCMNetworkManager for background operations to the modern WorkManager client library, including how to define workers, schedule work requests, and map constraints.
- [Changes to foreground services](https://developer.android.com/develop/background-work/services/fgs/changes.md.txt): This document outlines significant changes and new requirements for Android foreground services across various API levels, detailing how best practices and restrictions have evolved for apps targeting different Android versions.
- [Transfer Bluetooth data](https://developer.android.com/develop/connectivity/bluetooth/transfer-data.md.txt): This document explains how to transfer data between connected Bluetooth devices using BluetoothSocket, InputStream, and OutputStream, emphasizing the importance of dedicated threads for handling blocking read and write operations.
- [Use Cronet with other libraries](https://developer.android.com/develop/connectivity/cronet/integration.md.txt): This document explores how Cronet integrates with various popular Android libraries and frameworks such as ExoPlayer, gRPC, OkHttp, Glide, and Dart, enhancing networking capabilities and performance.
- [ImplicitFlowControlCallback](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/ImplicitFlowControlCallback.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Host-based card emulation overview](https://developer.android.com/develop/connectivity/nfc/hce.md.txt): This document explains Host-based Card Emulation (HCE) on Android, a method that allows Android applications to emulate NFC cards and communicate directly with NFC readers without requiring a secure element. It covers how HCE works, its implementation details, and its interaction with secure element-based emulation.
- [Connectivity guides](https://developer.android.com/develop/connectivity/overview.md.txt): Connectivity guides overview
- [Telecom framework overview](https://developer.android.com/develop/connectivity/telecom.md.txt): The Android Telecom framework manages audio and video calls on an Android device, including both SIM-based and VoIP calls, by routing them between ConnectionService implementations and InCallService user interfaces.
- [Build App Actions](https://developer.android.com/develop/devices/assistant/get-started.md.txt): This document outlines the steps to integrate App Actions into an Android application, allowing users to launch app functionality using Google Assistant and Android shortcuts.
- [Implement navigation app intents](https://developer.android.com/develop/devices/assistant/intents-assistant-nav-app.md.txt): This document details how navigation apps can integrate with Gemini or Google Assistant by supporting specific intent formats, including navigation, search, and custom action intents, through intent filters in their manifest.
- [Read It](https://developer.android.com/develop/devices/assistant/read-it.md.txt): This document explains how to integrate the Google Assistant&#39;s &#34;Read It&#34; feature into Android apps, allowing users to have web-based content read aloud.
- [Release notes](https://developer.android.com/develop/devices/assistant/release-notes.md.txt): A changelog listing new plugin and SDK releases, and describing updates to App Actions features for Android development.
- [Google Assistant for Wear OS](https://developer.android.com/develop/devices/assistant/wear.md.txt): Learn how to extend Wear OS apps to Google Assistant using App Actions, enabling users to control app features with voice commands for media and workout tracking scenarios.
- [Change location settings](https://developer.android.com/develop/sensors-and-location/location/change-location-settings.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Create and monitor geofences](https://developer.android.com/develop/sensors-and-location/location/geofencing.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Maps and places](https://developer.android.com/develop/sensors-and-location/location/maps-and-places.md.txt): This document explains how to allow users to explore the world with rich Google Maps, identify locations with custom markers, augment map data with overlays, embed maps as fragments, and show details about nearby points of interest.
- [Analyze raw measurements with GnssLogger](https://developer.android.com/develop/sensors-and-location/sensors/gnss-analyze-raw.md.txt): This document explains how to view and analyze raw GNSS data on the Measurements screen of GnssLogger v3.1, detailing the various fields and their significance.
- [Animations in Compose](https://developer.android.com/develop/ui/compose/animation/introduction.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Animations additional resources](https://developer.android.com/develop/ui/compose/animation/resources.md.txt): This document provides a comprehensive list of additional resources for learning about animation in Jetpack Compose, including cheat sheets, samples, blog posts, codelabs, and videos.
- [Common shared element use cases](https://developer.android.com/develop/ui/compose/animation/shared-elements/common-use-cases.md.txt): This document outlines specific recommendations and best practices for animating shared elements in Android Compose, focusing on asynchronous images and text elements.
- [BOM to library version mapping](https://developer.android.com/develop/ui/compose/bom/bom-mapping.md.txt): This document provides a mapping of Compose libraries to their respective versions within different Bill of Materials (BOMs), along with links to their release notes.
- [Dialog](https://developer.android.com/develop/ui/compose/components/dialog.md.txt): Learn how to use the Dialog and AlertDialog composables in Jetpack Compose to display dialog messages, confirm user actions, and request input.
- [Navigation rail](https://developer.android.com/develop/ui/compose/components/navigation-rail.md.txt): Learn how to implement and use navigation rails in your Compose app to provide access to top-level destinations on large-screen devices like tablets and desktops.
- [Create custom modifiers](https://developer.android.com/develop/ui/compose/custom-modifiers.md.txt): This document explains how to create custom modifiers in Jetpack Compose, detailing different implementation strategies such as chaining existing modifiers, using composable modifier factories, and leveraging the lower-level Modifier.Node API for advanced behavior.
- [Support foldable display modes](https://developer.android.com/develop/ui/compose/layouts/adaptive/foldables/support-foldable-display-modes.md.txt): This document explains how to support rear display mode and dual-screen mode on foldable devices using the Jetpack WindowManager APIs, enabling unique viewing experiences like rear-camera selfies and simultaneous content display on multiple screens.
- [Support different display sizes](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-different-display-sizes.md.txt): This document explains how to design responsive and adaptive layouts in Jetpack Compose to support a wide variety of display sizes and form factors, emphasizing the use of window metrics and size classes over physical screen dimensions.
- [Thinking in Compose](https://developer.android.com/develop/ui/compose/mental-model.md.txt): This document explains the conceptual model behind Jetpack Compose, focusing on its declarative UI approach, the nature of composable functions, and the intelligent recomposition process that updates the UI efficiently.
- [Migrate existing View-based apps](https://developer.android.com/develop/ui/compose/migrate.md.txt): This document outlines how to integrate Jetpack Compose into existing View-based Android applications, highlighting its interoperability features for incremental adoption without a full rewrite.
- [Create a card as a container](https://developer.android.com/develop/ui/compose/quick-guides/content/create-card-as-container.md.txt): A card provides a Material Design container for your UI.
- [Create a slide-in menu with the navigation drawer component](https://developer.android.com/develop/ui/compose/quick-guides/content/create-navigation-drawer.md.txt): A navigation drawer is a slide-in navigation menu.
- [Display a bottom app bar](https://developer.android.com/develop/ui/compose/quick-guides/content/display-bottom-app-bar.md.txt): Create a bottom app bar to help users navigate and access functions in your app.
- [Manage detachable keyboard configuration changes](https://developer.android.com/develop/ui/compose/quick-guides/content/manage-detachable-keyboards.md.txt): Learn how to manage detachable keyboard configuration changes.
- [Animation in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/animation-in-compose.md.txt): See how to animate state values, using transitions, animating visibility or size changes and crossfades by using the Compose animation APIs.
- [Insets in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/insets-in-compose.md.txt): Learn how insets communicate to your app where system decorations are placed, and how Compose APIs help your content automatically move with the system bars, software keyboard, and the taskbar. Don&#39;t be afraid to go edge-to-edge!
- [Compose samples &nbsp;|&nbsp; Android Developers](https://developer.android.com/develop/ui/compose/samples.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Use Material 3 insets](https://developer.android.com/develop/ui/compose/system/material-insets.md.txt): Understand how Material 3 composables handle window insets and how to apply or override insets in Jetpack Compose.
- [Migrate to state-based text fields](https://developer.android.com/develop/ui/compose/text/migrate-state-based.md.txt): This document provides practical examples and guidelines for migrating existing Compose TextField implementations from value-based (using value and onValueChange) to the newer state-based approach (using TextFieldState).
- [Tap and press](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/tap-and-press.md.txt): This document explains how to handle single-pointer gestures like taps, clicks, long-presses, and double-taps in Jetpack Compose, covering built-in modifiers and lower-level APIs.
- [Provide flexible widget layouts](https://developer.android.com/develop/ui/views/appwidgets/layouts.md.txt): This document describes how to implement refined widget sizing and flexible layouts using new APIs introduced in Android 12, including responsive and exact layouts.
- [App widgets overview](https://developer.android.com/develop/ui/views/appwidgets/overview.md.txt): Learn about Android App Widgets, which provide at-a-glance views of an app&#39;s most important data and functionality on the home screen. This document covers widget types, design principles, limitations, and integration with Google Assistant.
- [Add checkboxes to your app](https://developer.android.com/develop/ui/views/components/checkbox.md.txt): Develop your UI on Android.
- [Settings](https://developer.android.com/develop/ui/views/components/settings.md.txt): This document explains how to integrate user-configurable settings into an Android app using the AndroidX Preference library, covering hierarchy creation, inflation, monitoring changes, and reading current preference values.
- [AGSL Quick Reference](https://developer.android.com/develop/ui/views/graphics/agsl/agsl-quick-reference.md.txt): The Android Graphics Shading Language (AGSL) works within the Android graphics rendering system to customize drawing.
- [Differences between AGSL and GLSL](https://developer.android.com/develop/ui/views/graphics/agsl/agsl-vs-glsl.md.txt): The Android Graphics Shading Language (AGSL) works within the Android graphics rendering system to customize drawing.
- [Add motion](https://developer.android.com/develop/ui/views/graphics/opengl/motion.md.txt): Develop your UI on Android.
- [Implement haptics on Android](https://developer.android.com/develop/ui/views/haptics.md.txt): This documentation covers the use of haptic feedback in Android devices, detailing how modern vibration actuators can provide rich, subtle user experiences through touch.
- [Analyze vibration waveforms](https://developer.android.com/develop/ui/views/haptics/actuators.md.txt): This document explains Linear Resonant Actuators (LRAs) as the common vibration actuators on Android devices, detailing their characteristics, how they generate haptic feedback, and how to create effective haptic patterns using Android APIs.
- [Build a responsive UI with ConstraintLayout](https://developer.android.com/develop/ui/views/layout/constraint-layout.md.txt): Learn how to use ConstraintLayout to build complex and responsive UIs with a flat view hierarchy in Android, leveraging its flexibility and integration with Android Studio&#39;s Layout Editor.
- [Manage WebView objects](https://developer.android.com/develop/ui/views/layout/webapps/managing-webview.md.txt): Android 8.0 introduces several new APIs that you can use in WebView objects, including the Version API, the Google Safe Browsing API, the Termination Handle API, and the Renderer Importance API.
- [Build web apps in WebView](https://developer.android.com/develop/ui/views/layout/webapps/webview.md.txt): This document describes how to integrate and configure a WebView in an Android app to display web content, enable JavaScript, handle page navigation, and manage windows, while also addressing security implications.
- [Use Downloadable Fonts](https://developer.android.com/develop/ui/views/text-and-emoji/downloadable-fonts.md.txt): Android 8.0 (API level 26) lets you download fonts instead of bundling them in your APK.
- [Custom text editors](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/custom-text-editors.md.txt): This document guides developers on how to implement stylus handwriting support in custom Android text editors, which are views that handle text input but are not standard EditText or WebView components.
- [Add 3D models to your app](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-3d-models.md.txt): Load and animate glTF 2.0 3D models in your Android XR app with the Jetpack XR SDK or the built-in Scene Viewer.
- [Bring your Android app into 3D with XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-xr-to-existing.md.txt): How to adapt your existing app for XR
- [Set up your development environment](https://developer.android.com/develop/xr/jetpack-xr-sdk/setup.md.txt): Android XR (Extended Reality) device development hub
- [Plan a GPU frame budget](https://developer.android.com/develop/xr/unity/performance/gpu-frame-budget.md.txt): This document emphasizes the critical importance of hitting specific frame rate targets in XR applications to ensure user comfort and avoid motion sickness, recommending minimum and ideal frame budgets.
- [AndroidXRMouseInteractionProfile Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRMouseInteractionProfile.md.txt): Android XR (Extended Reality) for Unity development hub
- [AndroidXRObjectTrackingSubsystem Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRObjectTrackingSubsystem.md.txt): Android XR (Extended Reality) device development hub
- [AndroidXRPermissionExtensions Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRPermissionExtensions.md.txt): Android XR (Extended Reality) device development hub
- [XRMarkerDatabaseEntry Struct Reference](https://developer.android.com/develop/xr/unity/reference/struct/Google/XR/Extensions/XRMarkerDatabaseEntry.md.txt): Android XR (Extended Reality) device development hub
- [Manage calls using the Telecom API](https://developer.android.com/develop/connectivity/bluetooth/ble-audio/telecom-api-managed-calls.md.txt): This guide explains how to route audio for Bluetooth devices in Android using the Telecom API for managed VoIP calls, leveraging ConnectionService and Connection classes to manage audio state and device selection.
- [DnsOptions.Experimental](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.Experimental.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [InMemoryTransformCronetCallback](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/InMemoryTransformCronetCallback.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Advanced NFC overview](https://developer.android.com/develop/connectivity/nfc/advanced-nfc.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Redirect a call](https://developer.android.com/develop/connectivity/telecom/dialer-app/redirect-a-call.md.txt): Learn how to redirect outgoing calls on Android 10 and higher using the CallRedirectionService API and RoleManager, which replaces the deprecated ACTION_NEW_OUTGOING_CALL broadcast.
- [Screen calls](https://developer.android.com/develop/connectivity/telecom/dialer-app/screen-calls.md.txt): Learn how to use Android 10 (API level 29) and the CallScreeningService to identify, screen, and manage calls from numbers not in a user&#39;s address book, particularly for spam detection.
- [Wi-Fi infrastructure overview](https://developer.android.com/develop/connectivity/wifi/wifi-infrastructure.md.txt): This document describes the Wi-Fi infrastructure APIs available in Android 10 and higher, including the Wi-Fi suggestion API for internet connectivity, the Wi-Fi network request API for peer-to-peer connections, and the `ACTION_WIFI_ADD_NETWORKS` API for adding saved networks or Passpoint configurations.
- [Wi-Fi scanning overview](https://developer.android.com/develop/connectivity/wifi/wifi-scan.md.txt): Learn how to use the WifiManager API for Wi-Fi scanning on Android devices, covering the scanning process, required permissions, and scan throttling restrictions across various Android versions.
- [Grow your app with App Actions](https://developer.android.com/develop/devices/assistant/grow-overview.md.txt): Learn how to use App Actions with Google Assistant to increase user engagement and retention by implementing system and in-app shortcut suggestions for your Android app.
- [Advanced animation example: Gestures](https://developer.android.com/develop/ui/compose/animation/advanced.md.txt): This document explains how to handle touch events with animations in Jetpack Compose, including interrupting ongoing animations and synchronizing animation values with touch input like drag and fling gestures, using APIs like Animatable and pointerInput.
- [Chip](https://developer.android.com/develop/ui/compose/components/chip.md.txt): &#34;Learn about the Chip component in Jetpack Compose, including its four types (Assist, Filter, Input, Suggestion), their API surfaces, and how to implement them in your Android apps.&#34;
- [Pull to refresh](https://developer.android.com/develop/ui/compose/components/pull-to-refresh.md.txt): This document explains how to implement the pull-to-refresh component in Android Compose, covering basic usage with PullToRefreshBox, customizing the indicator color, and creating fully custom indicators.
- [Tabs](https://developer.android.com/develop/ui/compose/components/tabs.md.txt): Learn how to implement primary and secondary tabs in your Android Compose app to organize related content and facilitate navigation between different screens.
- [Tooltip](https://developer.android.com/develop/ui/compose/components/tooltip.md.txt): This document explains how to implement plain and rich tooltips in your Android app using Jetpack Compose, providing context to UI elements like buttons.
- [Custom design systems in Compose](https://developer.android.com/develop/ui/compose/designsystems/custom.md.txt): Learn how to create custom design systems in Jetpack Compose, offering various approaches from extending MaterialTheme to building entirely custom themes with unique styling and components.
- [Add generated previews to your widget picker](https://developer.android.com/develop/ui/compose/glance/generated-previews.md.txt): Learn how to implement generated previews for Glance widgets for Android applications, so they accurately reflect how widgets appear on a user&#39;s home screen across different Android versions.
- [Handle user interaction](https://developer.android.com/develop/ui/compose/glance/user-interaction.md.txt): This document explains how Glance simplifies handling user interaction using Action classes, which define operations performed in response to user actions on app widgets, such as launching activities, services, or sending broadcast events.
- [Build adaptive navigation](https://developer.android.com/develop/ui/compose/layouts/adaptive/build-adaptive-navigation.md.txt): This document explains how to use NavigationSuiteScaffold in Jetpack Compose to build adaptive navigation UIs that automatically switch between navigation bars and rails based on window size, and how to customize its appearance and behavior.
- [Canonical layouts](https://developer.android.com/develop/ui/compose/layouts/adaptive/canonical-layouts.md.txt): This document describes canonical layouts, which are proven, versatile layouts for Android UIs, including list-detail, feed, and supporting pane layouts, and their implementation using Jetpack Compose for various screen sizes.
- [Flow layouts in Compose](https://developer.android.com/develop/ui/compose/layouts/flow.md.txt): This document introduces FlowRow and FlowColumn in Jetpack Compose, which are composables similar to Row and Column but allow items to flow to the next line when space runs out, enabling responsive UI layouts.
- [List of Compose modifiers](https://developer.android.com/develop/ui/compose/modifiers-list.md.txt): This document provides a comprehensive list of Android Compose UI modifiers, categorized by their functionality, including actions, alignment, animation, drawing, focus, layout, padding, pointer input, scrolling, sizing, testing, and transformations.
- [Use a baseline profile](https://developer.android.com/develop/ui/compose/performance/baseline-profiles.md.txt): Learn how Baseline Profiles improve Android app and library performance, especially for Jetpack Compose, by enabling ahead-of-time compilation for critical code paths, thereby reducing startup time and improving runtime efficiency.
- [Fix stability issues](https://developer.android.com/develop/ui/compose/performance/stability/fix.md.txt): This document outlines various techniques to make unstable classes stable in Jetpack Compose to improve application performance, covering strong skipping, immutability, immutable collections, annotations, configuration files, and handling multi-module architectures.
- [Manage RecyclerView state](https://developer.android.com/develop/ui/compose/quick-guides/content/manage-recyclerview-state.md.txt): Maintain RecyclerView state during configuration changes.
- [Testing cheatsheet](https://developer.android.com/develop/ui/compose/testing/testing-cheatsheet.md.txt): This document provides a quick reference for some of the most useful Compose test APIs.
- [Preview your UI with composable previews](https://developer.android.com/develop/ui/compose/tooling/previews.md.txt): This document explains how to use `@Preview` annotations in Jetpack Compose to preview composables directly within Android Studio, customize their appearance, and interact with them without needing an emulator.
- [Keyboard Shortcuts Helper](https://developer.android.com/develop/ui/compose/touch-input/keyboard-input/keyboard-shortcuts-helper.md.txt): Keyboard Shortcuts Helper allows users to discover keyboard shortcuts for Android apps, enhancing productivity and ease of use, and can be opened by pressing Meta&#43;/.
- [Additional resources for animation](https://developer.android.com/develop/ui/views/animations/additional-resources.md.txt): This document provides a comprehensive list of additional resources, including videos and code samples, for learning about animations in Android UI development, covering both traditional views and Jetpack Compose.
- [Property Animation Overview](https://developer.android.com/develop/ui/views/animations/prop-animation.md.txt): Develop your UI on Android.
- [Slide between fragments using ViewPager2](https://developer.android.com/develop/ui/views/animations/screen-slide-2.md.txt): Develop your UI on Android.
- [Start an activity using an animation](https://developer.android.com/develop/ui/views/animations/transitions/start-activity.md.txt): Learn how to implement custom activity transitions and shared element animations in Material Design apps on Android 5.0 (API 21) and higher, including specifying transitions in themes and code.
- [View Animation](https://developer.android.com/develop/ui/views/animations/view-animation.md.txt): You can use the view animation system to perform tweened animation on Views. Tween animation calculates the animation with information such as the start point, end point, size, rotation, and other common aspects of an animation. A tween animation can …
- [Create a basic widget](https://developer.android.com/develop/ui/views/appwidgets.md.txt): App Widgets are miniature application views that can be embedded in other applications (such as the home screen) and receive periodic updates. These views are referred to as Widgets in the user interface, and you can publish one with a widget provider…
- [Android Graphics Shading Language (AGSL)](https://developer.android.com/develop/ui/views/graphics/agsl.md.txt): The Android Graphics Shading Language (AGSL) works within the Android graphics rendering system to customize drawing.
- [Vector drawables overview](https://developer.android.com/develop/ui/views/graphics/vector-drawable-resources.md.txt): This document explains the overall usage of the vector drawable resources through either framework APIs or support libraries
- [Darken web content in WebView](https://developer.android.com/develop/ui/views/layout/webapps/dark-theme.md.txt): This document explains how Android apps can support a Dark theme for web content displayed within WebView, adapting to the system theme and leveraging web standards like `prefers-color-scheme`.
- [Create a group of notifications](https://developer.android.com/develop/ui/views/notifications/group.md.txt): This document explains how to group related notifications in Android 7.0 (API level 24) and higher, covering the creation of individual notifications, setting a group summary, and understanding automatic grouping behavior.
- [Add custom search suggestions](https://developer.android.com/develop/ui/views/search/adding-custom-suggestions.md.txt): Develop your UI on Android.
- [Spans](https://developer.android.com/develop/ui/views/text-and-emoji/spans.md.txt): Spans are powerful markup objects in Android that allow you to style text at the character or paragraph level, enabling changes to appearance, metrics, and text layout.
- [Spell checker framework](https://developer.android.com/develop/ui/views/touch-and-input/spell-checker-framework.md.txt): Develop your UI on Android.
- (https://developer.android.com/develop/xr.md.txt): Android XR (Extended Reality) device development hub
- [Add spatial video to your app](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-spatial-video.md.txt): This document explains how to play various types of spatial video, including stereoscopic, MV-HEVC, DRM-protected, and 180/360-degree content, within Android XR applications using Jetpack SceneCore and Media3 ExoPlayer.
- [Detect planes using ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/planes.md.txt): This document explains how to detect and interact with flat surfaces (planes) in ARCore for Jetpack XR, including configuring plane tracking, retrieving plane information, and performing hit-tests.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_depth_texture.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Improve audio performance](https://developer.android.com/develop/xr/unity/performance/audio.md.txt): This document provides Unity settings and guidelines to prevent audio-related performance impacts, focusing on limiting audio sources, managing spatial audio, and proper audio loading.
- [Adjust OpenXR Feature settings for optimal performance](https://developer.android.com/develop/xr/unity/performance/openxr-feature-settings.md.txt): This guide details how to access and enable performance-related features within Unity&#39;s OpenXR settings, including XR Performance Settings and foveated rendering, to optimize GPU performance for Android XR applications.
- [Android XR Extensions for Unity](https://developer.android.com/develop/xr/unity/reference.md.txt): Android XR (Extended Reality) device development hub
- [ARTrackedObjectExtensions Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/ARTrackedObjectExtensions.md.txt): Android XR (Extended Reality) device development hub
- [AndroidXRAnchorSubsystem Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRAnchorSubsystem.md.txt): Android XR (Extended Reality) device development hub
- [XRBodyTrackingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRBodyTrackingFeature.md.txt): Android XR (Extended Reality) device development hub
- [XRSessionFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature.md.txt): Android XR (Extended Reality) device development hub
- [XRSystemStateFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSystemStateFeature.md.txt): Android XR (Extended Reality) for Unity development hub
- [Google Namespace](https://developer.android.com/develop/xr/unity/reference/namespace/Google.md.txt): Android XR (Extended Reality) device development hub
- [Using a ListenableFuture](https://developer.android.com/develop/background-work/background-tasks/asynchronous/listenablefuture.md.txt): ListenableFuture is a Guava-provided type of Future that represents the result of an asynchronous computation, allowing registration of callbacks to be executed upon completion.
- [Use wake locks](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock.md.txt): High-level summary of topics related to Android wake locks.
- [Follow wake lock best practices](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/best-practices.md.txt): This document outlines best practices for using wake locks to avoid common pitfalls and minimize their impact on device performance and battery life.
- [Using a ListenableFuture](https://developer.android.com/develop/background-work/background-tasks/asynchronous/listenablefuture.md.txt): ListenableFuture is a Guava-provided type of Future that represents the result of an asynchronous computation, allowing registration of callbacks to be executed upon completion.
- [Use wake locks](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock.md.txt): High-level summary of topics related to Android wake locks.
- [Follow wake lock best practices](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/best-practices.md.txt): This document outlines best practices for using wake locks to avoid common pitfalls and minimize their impact on device performance and battery life.
- [Threading in CoroutineWorker](https://developer.android.com/develop/background-work/background-tasks/persistent/threading/coroutineworker.md.txt): This document explains how to use WorkManager&#39;s CoroutineWorker for performing background tasks with Kotlin coroutines, including how to customize dispatchers and handle work stoppages. It also covers using RemoteCoroutineWorker to bind workers to specific processes.
- [Find Bluetooth devices](https://developer.android.com/develop/connectivity/bluetooth/find-bluetooth-devices.md.txt): Learn how to find remote Bluetooth devices on Android by querying paired devices or performing device discovery, including handling permissions, registering receivers, and enabling device discoverability.
- [UploadDataSink](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UploadDataSink.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequest.Callback](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Callback.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Detect eSIMs and SIM cards](https://developer.android.com/develop/connectivity/telecom/dialer-app/telephony-ids.md.txt): This document describes the different types of IDs used in Android telephony APIs, including Subscription ID, Logical slot ID, Physical slot ID, and Card ID, along with details on Open Mobile API reader support.
- [Add notifications to a media app](https://developer.android.com/develop/connectivity/telecom/voip-app/notifications.md.txt): Learn how to properly use and configure notifications for incoming and active calls in VoIP applications to verify correct priority, non-dismissibility, and audio attributes for ringtones.
- [USB accessory overview](https://developer.android.com/develop/connectivity/usb/accessory.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Wi-Fi Easy Connect](https://developer.android.com/develop/connectivity/wifi/wifi-easy.md.txt): Learn about Wi-Fi Easy Connect, a feature introduced in Android 10 (API level 29) that allows provisioning Wi-Fi credentials to a peer device, replacing WPS.
- [Save networks and Passpoint configurations](https://developer.android.com/develop/connectivity/wifi/wifi-save-network-passpoint-config.md.txt): This document details how Android apps can save or modify Wi-Fi and Passpoint network configurations using the ACTION_WIFI_ADD_NETWORKS intent on Android 11 (API level 30) and higher.
- [Google Assistant for Android](https://developer.android.com/develop/devices/assistant/overview.md.txt): This document provides an overview of Gemini or Google Assistant&#39;s capabilities for Android apps, focusing on how developers can enable deep voice control and integrate app functionality using App Actions and Built-in Intents.
- [Optimize location use for battery life](https://developer.android.com/develop/sensors-and-location/location/battery/optimize.md.txt): Learn strategies to minimize battery drain in your Android app when using location services, including removing updates, setting timeouts, batching requests, and using passive updates.
- [Motion sensors](https://developer.android.com/develop/sensors-and-location/sensors/sensors_motion.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Sensors Overview](https://developer.android.com/develop/sensors-and-location/sensors/sensors_overview.md.txt): This document provides an overview of Android&#39;s built-in sensors, the sensor framework for accessing sensor data, various sensor types and their uses, and best practices for handling sensor events and configurations in Android applications.
- [Use a Bill of Materials](https://developer.android.com/develop/ui/compose/bom.md.txt): This document explains how the Compose Bill of Materials (BOM) simplifies managing Compose library versions by specifying a single BOM version, ensuring compatibility among libraries.
- [Create a dynamic top app bar](https://developer.android.com/develop/ui/compose/components/app-bars-dynamic.md.txt): Learn how to implement dynamic top app bars in Jetpack Compose that adapt their title and actions based on item selection, such as in a selectable list.
- [Carousel](https://developer.android.com/develop/ui/compose/components/carousel.md.txt): Carousels display scrollable lists of items that adapt dynamically to window size, designed to showcase collections of related visual content with brief text.
- [Floating action button](https://developer.android.com/develop/ui/compose/components/fab.md.txt): Learn how to use Floating Action Buttons (FABs) in Jetpack Compose, including standard, small, large, and extended FABs, and how to customize them.
- [Time pickers](https://developer.android.com/develop/ui/compose/components/time-pickers.md.txt): This document explains how to implement time pickers in Android Compose using the TimePicker and TimeInput composables, covering both dial and input types, and how to manage their state.
- [Locally scoped data with CompositionLocal](https://developer.android.com/develop/ui/compose/compositionlocal.md.txt): This document explains CompositionLocal in Jetpack Compose, a tool for implicitly passing data down the UI tree, detailing how to create and provide values for custom CompositionLocals, and discussing when to use it versus alternatives.
- [Working with images](https://developer.android.com/develop/ui/compose/graphics/images.md.txt): This document provides an overview of various aspects of working with images in Android Jetpack Compose, covering topics such as loading, formats, customization, and performance optimization.
- [About adaptive layouts](https://developer.android.com/develop/ui/compose/layouts/adaptive.md.txt): This document guides developers on designing and implementing adaptive UIs for Android applications to accommodate a wide variety of device screen sizes and configurations, leveraging Jetpack Compose.
- [Adaptive do&#39;s and don&#39;ts](https://developer.android.com/develop/ui/compose/layouts/adaptive/adaptive-dos-and-donts.md.txt): This document outlines best practices and common pitfalls to avoid when developing adaptive Android applications using Jetpack Compose, focusing on resizability, orientation, aspect ratio, window size, and input methods to support all display sizes.
- [Learn about foldables](https://developer.android.com/develop/ui/compose/layouts/adaptive/foldables/learn-about-foldables.md.txt): This document explores key considerations for developing apps for foldable devices, including responsive and adaptive design principles, handling foldable states and postures, ensuring app continuity, supporting multitasking, and implementing drag and drop features.
- [Support desktop windowing](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-desktop-windowing.md.txt): This document explains desktop windowing on Android tablets, detailing features like resizable app windows, customizable header bars, multi-instance support, and drag-and-drop gestures, along with APIs for developers to optimize their apps for this mode.
- [Alignment lines in Jetpack Compose](https://developer.android.com/develop/ui/compose/layouts/alignment-lines.md.txt): This document explains how to use and create custom AlignmentLines in Jetpack Compose to precisely align and position UI elements within parent layouts, enabling more flexible and custom layout behaviors.
- [Using Views in Compose](https://developer.android.com/develop/ui/compose/migrate/interoperability-apis/views-in-compose.md.txt): This document explains how to integrate traditional Android View hierarchies and Fragments into a Jetpack Compose UI, and how to interact with the Android framework from Compose.
- [Migration strategy](https://developer.android.com/develop/ui/compose/migrate/strategy.md.txt): This document outlines an incremental migration strategy for moving existing View-based Android applications to Jetpack Compose, emphasizing building new screens, creating UI component libraries, and replacing existing features gradually.
- [Navigation with Compose](https://developer.android.com/develop/ui/compose/navigation.md.txt): This document details how to integrate and utilize the Android Navigation component within Jetpack Compose applications, covering setup, navigation basics, deep linking, adaptive UI considerations, interoperability with fragments, and testing strategies.
- [Create a home screen scaffold](https://developer.android.com/develop/ui/compose/quick-guides/collections/create-a-home-screen-scaffold.md.txt): Use these Quick Guides to create a home screen scaffold, which can help give your app's home screen a coherent look and feel.
- [Display layered images on a canvas](https://developer.android.com/develop/ui/compose/quick-guides/content/display-layered-image.md.txt): You can blend or overlay source images to display layered images on a canvas. For example, you can replicate how the Android Framework generates app icons by combining separate background and foreground drawables.
- [Display a paging list](https://developer.android.com/develop/ui/compose/quick-guides/content/display-paging-list.md.txt): Create a paging list so that users can scroll to access content too large to fit on a single screen. Horizontal paging lists can help users navigate through content such as images, slideshows, or product carousels. Vertical paging lists are useful for content-heavy apps where users may need to scroll through a large number of items, such as articles.
- [Create a parallax scrolling effect](https://developer.android.com/develop/ui/compose/quick-guides/content/parallax-scrolling.md.txt): Parallax scrolling is a technique in which the background content and foreground content scroll at different speeds. You can implement this technique to enhance your app&#39;s UI, creating a more dynamic experience as your users scroll.
- [Lazy lists in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/lazy-lists-compose.md.txt): Compose gives you a simpler and more-performant way of creating scrolling lists, using fewer lines of code than RecyclerView. Learn how to use lazy layouts to create lists that let add content to lists, on demand.
- [Where to hoist state](https://developer.android.com/develop/ui/compose/state-hoisting.md.txt): This document explains the best practices for hoisting UI state in Jetpack Compose applications, detailing scenarios where state management is driven by UI logic versus business logic.
- [Use keyboard IME animations](https://developer.android.com/develop/ui/compose/system/keyboard-animations.md.txt): This document describes how to use `Modifier.imeNestedScroll()` in Jetpack Compose to automatically open and close the Input Method Editor (IME) when scrolling to the bottom of a container, enhancing the user experience with keyboard animations.
- [Add PiP through a button](https://developer.android.com/develop/ui/compose/system/pip-add.md.txt): This document explains how to programmatically enter Picture-in-Picture (PiP) mode in an Android Compose application by calling `enterPictureInPictureMode()` using a button click.
- [Test how your content renders with cutouts](https://developer.android.com/develop/ui/compose/system/test-cutouts.md.txt): This document explains how to test your app&#39;s display on devices with screen cutouts, including simulating different cutout configurations on an emulator or device.
- [Test your Compose layout](https://developer.android.com/develop/ui/compose/testing.md.txt): This document describes how to test your Jetpack Compose UI to verify correct behavior using Compose&#39;s dedicated testing APIs for finding elements, verifying attributes, and performing user actions.
- [Text in Compose](https://developer.android.com/develop/ui/compose/text.md.txt): This document introduces how Jetpack Compose simplifies displaying and writing text in UIs, differentiating between the basic `BasicText`/`BasicTextField` and the Material Design-compliant `Text`/`TextField` composables.
- [React to focus](https://developer.android.com/develop/ui/compose/touch-input/focus/react-to-focus.md.txt): This document explains how to implement visual cues for focused elements in Jetpack Compose, from simple border changes to advanced custom indications. It also details how to understand and react to different focus states using `onFocusChanged` and its properties.
- [Animate drawable graphics](https://developer.android.com/develop/ui/views/animations/drawable-animation.md.txt): Develop your UI on Android.
- [Add an Up action](https://developer.android.com/develop/ui/views/components/appbar/up-action.md.txt): Develop your UI on Android.
- [Tooltips](https://developer.android.com/develop/ui/views/components/tooltips.md.txt): This document explains how to add tooltips to views in Android apps, providing a small descriptive message when users long press or hover over a view, useful for icon-based layouts.
- [Hardware acceleration](https://developer.android.com/develop/ui/views/graphics/hardware-accel.md.txt): Develop your UI on Android.
- [Create shortcuts](https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts.md.txt): Develop your UI on Android.
- [Load in-app content](https://developer.android.com/develop/ui/views/layout/webapps/load-local-content.md.txt): This document explains how to integrate web-based content, such as HTML, JavaScript, and CSS, directly into an Android application rather than fetching it from the internet, leveraging `WebView` for display.
- [Modify a notification badge](https://developer.android.com/develop/ui/views/notifications/badges.md.txt): This document explains how to manage notification badges (dots) on app icons, covering how to disable them, set custom notification counts, and modify their appearance, for apps running on Android 8.0 (API level 26) and higher.
- [Notification runtime permission](https://developer.android.com/develop/ui/views/notifications/notification-permission.md.txt): This document explains the `POST_NOTIFICATIONS` runtime permission introduced in Android 13 (API level 33), detailing how apps should request it, the impact of user choices, and best practices for implementation.
- [Create custom Quick Settings tiles for your app](https://developer.android.com/develop/ui/views/quicksettings-tiles.md.txt): Learn how to create custom Quick Settings tiles for Android applications, manage their lifecycle, update their state, handle user interactions, and categorize them for improved user experience. It also covers the API for prompting users to add tiles.
- [Integrate Android search features into your app](https://developer.android.com/develop/ui/views/search.md.txt): Develop your UI on Android.
- [Create a search interface](https://developer.android.com/develop/ui/views/search/search-dialog.md.txt): Develop your UI on Android.
- [Enable users to personalize their color experience in your app](https://developer.android.com/develop/ui/views/theming/dynamic-colors.md.txt): Dynamic Color, introduced in Android 12, enables users to personalize their device&#39;s color scheme based on their wallpaper. This document provides instructions for implementing Dynamic Colors in Android apps, covering how the system generates color schemes, uses design tokens, and applies to views, adaptive icons, and widgets.
- [Material Design for Android](https://developer.android.com/develop/ui/views/theming/look-and-feel.md.txt): Develop your UI on Android.
- [Implement drag and drop with views](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop/view.md.txt): This document details how to implement drag-and-drop functionality within Android `View` components, covering the process from initiating a drag to handling various drag events and customizing the drag shadow.
- [Create a note-taking app](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/create-a-note-taking-app.md.txt): This document provides comprehensive guidelines for developing a note-taking application on Android, focusing on integrating stylus input, enabling lock screen access, supporting floating windows, and implementing content capture capabilities.
- [Draw a stroke](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-draw-stroke.md.txt): Optimize stylus drawing performance on Android Views.
- [Get started with the Jetpack XR SDK](https://developer.android.com/develop/xr/jetpack-xr-sdk/getting-started.md.txt): Android XR (Extended Reality) device development hub
- [XR_ANDROID_mouse_interaction OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_mouse_interaction.md.txt): This OpenXR extension enables mouse and trackpad input through an XrPath, defining a common action pose and introducing an interaction profile specifically for mouse devices within the OpenXR action system.
- [XRFaceTrackingManager Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRFaceTrackingManager.md.txt): Android XR (Extended Reality) for Unity development hub
- [Extensions Namespace](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR/Extensions.md.txt): Android XR (Extended Reality) device development hub
- [Implicit broadcast exceptions](https://developer.android.com/develop/background-work/background-tasks/broadcasts/broadcast-exceptions.md.txt): Implicit broadcasts that are exempted from background restrictions.
- [Task scheduling](https://developer.android.com/develop/background-work/background-tasks/persistent.md.txt): Explains how to use WorkManager to schedule tasks that will run across app or device restarts.
- [Custom WorkManager Configuration and Initialization](https://developer.android.com/develop/background-work/background-tasks/persistent/configuration/custom-configuration.md.txt): This document details how to customize WorkManager&#39;s configuration, primarily through on-demand initialization, by removing the default initializer and implementing `Configuration.Provider`.
- [Testing Worker implementation](https://developer.android.com/develop/background-work/background-tasks/testing/persistent/worker-impl.md.txt): This document describes how to test various WorkManager Worker implementations, including Worker, ListenableWorker, CoroutineWorker, and RxWorker, using TestWorkerBuilder and TestListenableWorkerBuilder.
- [Schedule alarms](https://developer.android.com/develop/background-work/services/alarms.md.txt): Learn how to use Android&#39;s AlarmManager to schedule time-based operations that can run even when your application is not active, distinguishing between inexact and exact alarms and their implications for system resources.
- [Launch a foreground service](https://developer.android.com/develop/background-work/services/fgs/launch.md.txt): How to launch a foreground service that&#39;s already been declared.
- [Stop a foreground service](https://developer.android.com/develop/background-work/services/fgs/stop-fgs.md.txt): How to remove a service from the foreground while leaving it running.
- [Audio recording](https://developer.android.com/develop/connectivity/bluetooth/ble-audio/audio-recording.md.txt): This guide demonstrates how to record high-quality stereo audio from Bluetooth Low Energy (BLE) Audio hearables using the AudioManager API, including configuring your application, finding BLE Audio devices, and setting up the audio recorder.
- [Bluetooth Low Energy Audio](https://developer.android.com/develop/connectivity/bluetooth/ble-audio/overview.md.txt): This document provides an overview of Bluetooth Low Energy Audio (LEA) support in Android 13 (API level 33), detailing its benefits, use cases, key scenarios, and the Android APIs required for integration.
- [Bluetooth permissions](https://developer.android.com/develop/connectivity/bluetooth/bt-permissions.md.txt): This document guides developers on declaring necessary Bluetooth permissions for Android apps, specifying required features, and checking Bluetooth availability at runtime for different Android versions.
- [Perform network operations using Cronet](https://developer.android.com/develop/connectivity/cronet.md.txt): Cronet is the Chromium network stack provided as a library for Android apps, designed to improve network request latency and throughput by leveraging various advanced technologies.
- [Cronet request lifecycle](https://developer.android.com/develop/connectivity/cronet/lifecycle.md.txt): Learn about the lifecycle of requests created using Cronet and how to manage them using the callback methods provided by the library.
- [QuicException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicException.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [QuicOptions.QuichePassthroughOption](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicOptions.QuichePassthroughOption.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [org.chromium.net](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/package-summary.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Read network state](https://developer.android.com/develop/connectivity/network-ops/reading-network-state.md.txt): This document explains how Android applications can monitor and respond to dynamic changes in network connectivity using `ConnectivityManager` and `NetworkCallback` to get real-time updates on network status, capabilities, and properties.
- [Parse XML data](https://developer.android.com/develop/connectivity/network-ops/xml.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Audio routing API updates in Android 14 for VoIP apps](https://developer.android.com/develop/connectivity/telecom/voip-app/api-updates.md.txt): Learn about the API updates in Android 14 that impact audio routing behavior for VoIP apps, particularly concerning Bluetooth LE Audio devices and hearing aids, and how to adapt your application.
- [Create shortcuts.xml](https://developer.android.com/develop/devices/assistant/action-schema.md.txt): This document details how to define App Actions using the shortcuts.xml file, explaining the schema for capabilities and shortcuts to enable voice control via Google Assistant.
- [Test animations](https://developer.android.com/develop/ui/compose/animation/testing.md.txt): This document explains how to deterministically test animations in Jetpack Compose using `ComposeTestRule` and its `mainClock` to control and advance the test time.
- [Radio button](https://developer.android.com/develop/ui/compose/components/radio-button.md.txt): Enable single-option selection in your Compose UI using the RadioButton composable. Learn implementation details and accessibility best practices.
- [Jetpack Glance](https://developer.android.com/develop/ui/compose/glance.md.txt): Jetpack Glance is a framework built on top of the Jetpack Compose runtime, enabling the development and design of app widgets using Kotlin APIs.
- [Images and graphics in Compose](https://developer.android.com/develop/ui/compose/graphics.md.txt): This document introduces different ways to render visuals on screen in Android apps using Compose, covering vectors, bitmaps, and direct canvas drawing.
- [Custom painter](https://developer.android.com/develop/ui/compose/graphics/images/custompainter.md.txt): This document explains how to create and implement custom Painter objects in Jetpack Compose to draw custom graphics and influence a composable&#39;s measurement and layout, offering an alternative to DrawModifier for scenarios requiring layout impact.
- [Constraints and modifier order](https://developer.android.com/develop/ui/compose/layouts/constraints-modifiers.md.txt): This article explains how chained modifiers in Jetpack Compose influence constraints, affecting the measurement and placement of composables in the UI tree.
- [Jetpack Compose Performance](https://developer.android.com/develop/ui/compose/performance.md.txt): This document provides guidance on optimizing Jetpack Compose application performance by using best practices, understanding key concepts like phases and stability, and properly configuring the app with tools like Baseline Profiles and R8.
- [Diagnose stability issues](https://developer.android.com/develop/ui/compose/performance/stability/diagnose.md.txt): This document outlines various methods for diagnosing performance issues in Jetpack Compose applications that stem from unnecessary or excessive recomposition, primarily focusing on the Layout Inspector and interpreting Compose compiler reports.
- [Request user input](https://developer.android.com/develop/ui/compose/quick-guides/collections/request-user-input.md.txt): Make your app interactive by enabling users to enter text and other inputs.
- [Create a button](https://developer.android.com/develop/ui/compose/quick-guides/content/create-button.md.txt): A button triggers a specific action.
- [Create a progress indicator](https://developer.android.com/develop/ui/compose/quick-guides/content/create-progress-indicator.md.txt): A progress indicator shows the status of an operation.
- [Resources in Compose](https://developer.android.com/develop/ui/compose/resources.md.txt): This document explains how to access and use various Android resources like strings, dimensions, colors, images, and fonts within Jetpack Compose applications.
- [Set up window insets](https://developer.android.com/develop/ui/compose/system/insets-ui.md.txt): Handle system UI insets in Jetpack Compose to display content edge-to-edge and keep interactable elements visible.
- [Tools for Compose](https://developer.android.com/develop/ui/compose/tooling.md.txt): This document describes the collection of tools available in Android Studio to assist with UI design, development, testing, and debugging using Jetpack Compose.
- [Input compatibility on large screens](https://developer.android.com/develop/ui/compose/touch-input/input-compatibility-on-large-screens.md.txt): This document guides Android app developers on ensuring their applications provide a compatible and robust user experience on large screen devices by properly handling various input methods like keyboards, mice, trackpads, styluses, and gamepads.
- [Move a View with animation](https://developer.android.com/develop/ui/views/animations/reposition-view.md.txt): Learn how to smoothly reposition Android UI views on screen using property animations, focusing on ObjectAnimator for linear and curved motion.
- [Animate layout changes using a transition](https://developer.android.com/develop/ui/views/animations/transitions.md.txt): This document describes the Android transition framework, explaining how to animate UI motion between layouts using scenes, built-in transitions, and delayed transitions, along with key features and usage examples.
- [Enhance your widget](https://developer.android.com/develop/ui/views/appwidgets/enhance.md.txt): This document details optional widget enhancements available from Android 12, covering dynamic colors, voice support, widget naming and descriptions, smoother transitions, and runtime modifications for RemoteViews.
- [Add menus](https://developer.android.com/develop/ui/views/components/menus.md.txt): Develop your UI on Android.
- [Activity embedding](https://developer.android.com/develop/ui/views/layout/activity-embedding.md.txt): Activity embedding optimizes multi-activity, legacy Android apps for large screens by splitting the task window between two activities or two instances of the same activity, enhancing user experience without extensive code refactoring.
- [Create a custom drawing](https://developer.android.com/develop/ui/views/layout/custom-views/custom-drawing.md.txt): The most important part of a custom view is its appearance. Custom drawing can be easy or complex according to your application&#39;s needs. This lesson covers some of the most common operations. The most important step in drawing a custom view is to …
- [Load views on demand](https://developer.android.com/develop/ui/views/layout/improving-layouts/loading-ondemand.md.txt): Sometimes your layout requires complex views that are rarely used. Whether they are item details, progress indicators, or undo messages, you can reduce memory usage and speed up rendering by loading the views only when they are needed. ViewStub is…
- [Optimize layout hierarchies](https://developer.android.com/develop/ui/views/layout/improving-layouts/optimizing-layouts.md.txt): It is a common misconception that using the basic layout structures leads to the most efficient layouts. However, each widget and layout you add to your app requires initialization, layout, and drawing. For example, using nested instances of LinearLayout…
- [Pop-up messages overview](https://developer.android.com/develop/ui/views/notifications/snackbar.md.txt): There are many situations where you might want your app to show a quick message to the user, without necessarily waiting for the user to respond. For example, when a user performs an action like sending an email or deleting a file, your app should show…
- [Build and display a pop-up message](https://developer.android.com/develop/ui/views/notifications/snackbar/showing.md.txt): You can use a Snackbar to display a brief message to the user. The message automatically goes away after a short period. A Snackbar is ideal for brief messages that the user doesn&#39;t necessarily need to act on. For example, an email app could use a…
- [Display time-sensitive notifications](https://developer.android.com/develop/ui/views/notifications/time-sensitive.md.txt): This document explains how to handle urgent notifications on Android, covering the necessary permissions, channel creation, and display methods for time-sensitive alerts, especially for devices running Android 10 to Android 13.
- [Styles and themes](https://developer.android.com/develop/ui/views/theming/themes.md.txt): Develop your UI on Android.
- [Overview](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-features.md.txt): This document explores the advanced features of Android game controllers, including haptics, motion sensors, lights, and touchpads, designed to enhance player interaction and immersion.
- [Handle controller actions](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input.md.txt): Develop your UI on Android.
- [Support multiple game controllers](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/multiple-controllers.md.txt): Develop your UI on Android.
- [Track touch and pointer movements](https://developer.android.com/develop/ui/views/touch-and-input/gestures/movement.md.txt): This document explains how to track movement in touch events on Android, covering concepts like touch slop, using VelocityTracker for velocity tracking, and implementing pointer capture for mouse events.
- [About swipe-to-refresh](https://developer.android.com/develop/ui/views/touch-and-input/swipe.md.txt): Develop your UI on Android.
- [Access a session for creating spatialized UI and entities](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-session.md.txt): This document explains how to create and access a Session object, which serves as the primary interface for spatialized functionality in Android XR applications, using both Jetpack Compose for XR and Jetpack XR Runtime.
- [Develop UI for Android Views-based Apps](https://developer.android.com/develop/xr/jetpack-xr-sdk/develop-ui-views.md.txt): Android XR (Extended Reality) device development hub
- [Build with supported OpenXR extensions](https://developer.android.com/develop/xr/openxr/extensions.md.txt): Android XR supports many OpenXR vendor extensions, including specific Android extensions for capabilities like passthrough, depth texture, eye tracking, and hand mesh, along with other general OpenXR extensions.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_light_estimation.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Improve frame rates, reduce GPU load, and reduce rendering latency using Android XR Extensions settings](https://developer.android.com/develop/xr/unity/performance/androidxr-extension-settings.md.txt): This document outlines how to enable specific performance-related features in Unity for Android XR, such as spacewarp, Vulkan subsampling, and late latching, to improve frame rates, reduce GPU load, and minimize tracked rendering latency.
- [Optimize performance using Unity tools and APIs](https://developer.android.com/develop/xr/unity/performance/unity-tools.md.txt): Learn about Unity&#39;s performance-related tools and APIs for XR development, including how to measure metrics, specify display refresh rates, and use the Frame Debugger for analyzing frame rendering.
- [AndroidXRSessionSubsystem Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRSessionSubsystem.md.txt): Android XR (Extended Reality) device development hub
- [Unity project setup](https://developer.android.com/develop/xr/unity/setup.md.txt): This guide details the recommended editor versions, graphics settings, URP settings, and Android project settings for developing a Unity application for Android XR, including optimal configurations for performance and compatibility.
- [Android XR Extensions for Unity quickstart](https://developer.android.com/develop/xr/unity/xr-extensions-quickstart.md.txt): This quickstart guides you through importing the Android XR Extensions for Unity package and configuring the face tracking sample.
- [Avoid unoptimized downloads](https://developer.android.com/develop/connectivity/avoid-unoptimized-downloads.md.txt): This document provides strategies for Android developers to reduce app data downloads, improving user experience, especially for those with limited internet access or data plans. It covers techniques like downloading only necessary data, optimizing image sizes, and effective HTTP caching.
- [Package Index](https://developer.android.com/develop/connectivity/cronet/reference.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [ConnectionMigrationOptions.Experimental](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/ConnectionMigrationOptions.Experimental.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [DnsOptions.StaleDnsOptions](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [QuicOptions.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicOptions.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequest.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [StringCronetCallback](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/StringCronetCallback.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [VPN](https://developer.android.com/develop/connectivity/vpn.md.txt): This document explains how to develop, test, and manage custom VPN client solutions for Android devices using the VpnService API, covering user experience, service implementation, and features like always-on and per-app VPN.
- [Connect devices wirelessly](https://developer.android.com/develop/connectivity/wifi.md.txt): This document describes how Android&#39;s wireless APIs, including Network Service Discovery (NSD) and Wi-Fi Peer-to-Peer (P2P), enable communication with other devices on the same local network or nearby, even without a traditional network connection.
- [Inline inventory](https://developer.android.com/develop/devices/assistant/inline-inventory.md.txt): Learn about inline inventory, a feature for App Actions that simplifies handling variations in user requests by mapping them to predefined item identifiers in static Android shortcuts, improving BII parameter fulfillment.
- [Access location in the background](https://developer.android.com/develop/sensors-and-location/location/background.md.txt): This document provides guidelines and best practices for Android apps requiring background location access, focusing on critical functionality, user benefits, and compliance with Google Play policies and privacy. It includes a checklist for identifying and evaluating background location usage within an app.
- [About background location and battery life](https://developer.android.com/develop/sensors-and-location/location/battery.md.txt): This document explains how background location usage impacts battery life and provides strategies and APIs to optimize Android applications for better battery efficiency when collecting location data.
- [Request location access at runtime](https://developer.android.com/develop/sensors-and-location/location/permissions/runtime.md.txt): Provides best practices for requesting location permissions at runtime, emphasizing in-context requests, handling approximate versus precise location on Android 12&#43;, and performing incremental permission requests.
- [Test your app&#39;s location workflows](https://developer.android.com/develop/sensors-and-location/location/testing.md.txt): Provides guidelines for evaluating Android apps to support the latest location features and behavior, specifically focusing on how apps handle approximate location.
- [Overview](https://developer.android.com/develop/sensors-and-location/overview.md.txt): This document provides an overview of integrating sensor data and location services into Android applications.
- [Animation tooling support](https://developer.android.com/develop/ui/compose/animation/tooling.md.txt): Android Studio&#39;s Animation Preview tool allows developers to inspect, preview frame by frame, and coordinate various Compose animation functions like `animate*AsState`, `CrossFade`, and `AnimatedContent`.
- [Badges](https://developer.android.com/develop/ui/compose/components/badges.md.txt): This document explains how to implement badges in Jetpack Compose to display small visual elements like status or numeric values on other composables, utilizing the BadgedBox and Badge APIs with code examples.
- [Slider](https://developer.android.com/develop/ui/compose/components/slider.md.txt): Learn how to implement and customize the Slider and RangeSlider composables in Jetpack Compose to allow users to select values from a range.
- [Display a list or grid](https://developer.android.com/develop/ui/compose/quick-guides/collections/display-a-list-or-grid.md.txt): Display and arrange collections of items efficiently with lists and grids.
- [Build a list using multiple item types](https://developer.android.com/develop/ui/compose/quick-guides/content/build-list-multiple-item-types.md.txt): You can use a list with multiple item types to display mixed content types such as text, images, and interactive elements.
- [Create a finite scrollable list](https://developer.android.com/develop/ui/compose/quick-guides/content/finite-scrolling-list.md.txt): Scrollable lists can help manage datasets, create responsive designs, and facilitate navigation. To display a finite set of items in your app, you can create a scrollable list using the `verticalScroll` or `horizontalScroll` modifiers.
- [Five quick animations in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/five-animations-compose.md.txt): These 5 quick and easy animations can help make your app come to life in just a few minutes. Make your Compose app stand out even if you don&#39;t have the time to learn everything there is to know about animations.
- [State in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/state-in-compose.md.txt): Learn how state flows through your Compose-based app and how the framework can automatically update UI to display new values. See how to create observable states, how to retain state across recompositions or configuration changes, and how to structure your composables for optimal data flow.
- [About cutouts](https://developer.android.com/develop/ui/compose/system/cutouts.md.txt): This document explains what display cutouts are, their support across Android versions, and how to implement support for devices with display cutouts in Jetpack Compose applications.
- [Set up Predictive back](https://developer.android.com/develop/ui/compose/system/predictive-back-setup.md.txt): This document guides developers on setting up and implementing predictive back gestures and system animations in their Android Compose apps, covering integration with Navigation Compose, custom transitions, shared elements, and Material Design components.
- [Migrate from ViewPager to ViewPager2](https://developer.android.com/develop/ui/views/animations/vp2-migration.md.txt): Learn how to migrate your Android app from the older ViewPager library to the improved ViewPager2, covering benefits, XML and adapter updates, and TabLayout integration.
- [Reducing image download sizes](https://developer.android.com/develop/ui/views/graphics/reduce-image-sizes.md.txt): Improve network performance by optimizing image size.
- [Splash screens](https://developer.android.com/develop/ui/views/launch/splash-screen.md.txt): This document explains how to implement and customize splash screens in Android 12 and higher using the `SplashScreen` API and the Jetpack `SplashScreen` compat library, ensuring animated launches and consistent branding.
- [Create custom view components](https://developer.android.com/develop/ui/views/layout/custom-views/custom-components.md.txt): Android offers a sophisticated and powerful componentized model for building your UI, based on the fundamental layout classes: View and ViewGroup. To start with, the platform includes a variety of prebuilt View and ViewGroup subclasses — called widgets…
- [Relative Layout](https://developer.android.com/develop/ui/views/layout/relative.md.txt): RelativeLayout is a view group that displays child views in relative positions. The position of each view can be specified as relative to sibling elements (such as to the left-of or below another view) or in positions relative to the parent RelativeLayout…
- [Add media playback controls to your app](https://developer.android.com/develop/ui/views/playback-controls.md.txt): Learn how to add UI components for displaying media and controlling audio and video playback in an Android app, using AndroidX Media3&#39;s PlayerView and ExoPlayer.
- [Emoji Picker](https://developer.android.com/develop/ui/views/text-and-emoji/emoji-picker.md.txt): The Emoji Picker is a modern UI solution for Android apps, offering up-to-date emoji selection, variant options, and recent emoji functionality, reducing the need for developers to build custom pickers.
- [Add a font as an XML resource](https://developer.android.com/develop/ui/views/text-and-emoji/fonts-in-xml.md.txt): Develop your UI on Android.
- [Enable drag and drop](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop.md.txt): This document outlines the Android drag-and-drop framework, detailing how to implement interactive content transfer within and between applications using both traditional Views and mentioning its use in Jetpack Compose.
- [Drag and drop in multi-window mode](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop/multi-window.md.txt): This document describes how to implement drag and drop functionality for data transfer between different applications running in Android&#39;s multi-window mode, focusing on the necessary flags and permission handling for content URI sharing.
- [Retrieve depth information in your app with ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/depth.md.txt): Learn how to retrieve and use depth information from ARCore through Jetpack XR, including session configuration, enabling depth map retrieval, and calculating depth values.
- [Implement Material Design for your spatial UI](https://developer.android.com/develop/xr/jetpack-xr-sdk/material-design.md.txt): This guide explains how Material Design 3 components and layouts adapt for XR devices, detailing how to use the EnableXrComponentOverrides wrapper to enable spatial UI behaviors in existing Compose apps.
- [Subspace modifiers](https://developer.android.com/develop/xr/jetpack-xr-sdk/subspacemodifiers.md.txt): Android XR (Extended Reality) device development hub
- [XR_ANDROID_raycast OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_raycast.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Package and distribute apps for Android XR](https://developer.android.com/develop/xr/package-and-distribute.md.txt): This guide provides instructions on how to prepare and distribute Android XR applications to users through Google Play, covering essential steps from Play Console setup to managing release tracks and device compatibility.
- [XRHumanBodyProportions Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRHumanBodyProportions.md.txt): Android XR (Extended Reality) device development hub
- [XRObjectTrackingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRObjectTrackingFeature.md.txt): Android XR (Extended Reality) device development hub
- [XRSceneMeshingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSceneMeshingFeature.md.txt): Android XR (Extended Reality) device development hub
- [XRFaceState Struct Reference](https://developer.android.com/develop/xr/unity/reference/struct/Google/XR/Extensions/XRFaceState.md.txt): Android XR (Extended Reality) for Unity development hub
- [Release a wake lock](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/release.md.txt): Learn how to properly release a wake lock held by your Android app to prevent unnecessary battery drain, using Kotlin and Java examples.
- [Getting started with WorkManager](https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started.md.txt): This document provides a comprehensive guide on how to get started with WorkManager, covering essential steps from importing dependencies to defining and enqueuing background tasks in Android applications.
- [Services overview](https://developer.android.com/develop/background-work/services.md.txt): Android allows your app to do work in the background. Here's how.
- [Communicate in the background](https://developer.android.com/develop/connectivity/bluetooth/ble/background.md.txt): This guide provides an overview of supporting key use cases for communicating with Bluetooth Low Energy (BLE) peripheral devices when your Android app is running in the background, covering how to find, connect to, and stay connected with devices.
- [CronetEngine.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [NetworkException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [CronetRequestCompletionListener](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/CronetRequestCompletionListener.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Send a simple request](https://developer.android.com/develop/connectivity/cronet/start.md.txt): This document guides Android developers on how to set up and use the Cronet Library for efficient network operations, covering essential steps from dependency setup to handling network responses.
- [Optimize network data usage](https://developer.android.com/develop/connectivity/network-ops/data-saver.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Prevent caller ID spoofing](https://developer.android.com/develop/connectivity/telecom/dialer-app/prevent-spoofing.md.txt): This document explains how Android 11 and higher support STIR/SHAKEN protocols to prevent call spoofing and how apps can use the CallScreeningService API to access carrier verdict data for identifying spam calls.
- [Suggest shortcuts using the In-App Promo SDK](https://developer.android.com/develop/devices/assistant/in-app-promo-sdk.md.txt): This document explains how to use the In-App Promo SDK to proactively suggest Assistant shortcuts to users within an Android app, enabling them to easily trigger app functionality with voice commands.
- [Google Assistant plugin for Android Studio](https://developer.android.com/develop/devices/assistant/test-tool.md.txt): The Google Assistant plugin for Android Studio provides a test tool to create and manage previews of App Actions, allowing developers to test how their app handles various parameters before deployment.
- [Optimize location use for real-world scenarios](https://developer.android.com/develop/sensors-and-location/location/battery/scenarios.md.txt): This document describes typical location-gathering scenarios in Android development, offering recommendations for optimal use of the geofencing and fused location provider APIs for various use cases, including foreground and background updates.
- [Detect when users start or end an activity](https://developer.android.com/develop/sensors-and-location/location/transitions.md.txt): This document explains how to use the Activity Recognition Transition API to detect when a user starts or stops specific activities such as walking, biking, or driving, enabling apps to respond to these state changes.
- [Accessibility in Jetpack Compose](https://developer.android.com/develop/ui/compose/accessibility.md.txt): This document discusses how to develop Android applications with accessibility in mind using Jetpack Compose, focusing on making UIs usable for everyone by leveraging Compose&#39;s declarative APIs and tools.
- [Material Components](https://developer.android.com/develop/ui/compose/components.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Button](https://developer.android.com/develop/ui/compose/components/button.md.txt): This document describes the five fundamental types of buttons in Material Design for Android Compose, detailing their appearance, usage, and implementation.
- [Glance interoperability](https://developer.android.com/develop/ui/compose/glance/interoperability.md.txt): This document explains how to use the `AndroidRemoteViews` composable in Glance to integrate existing `RemoteViews` (XML-based layouts) within a Glance UI, facilitating interoperability between Compose and traditional Android views.
- [Track metrics for your widget](https://developer.android.com/develop/ui/compose/glance/metrics.md.txt): This document explains how to use Android 16&#39;s `AppWidgetEvent` API to track detailed engagement metrics for App Widgets, including tap actions, scrolls, impressions, and widget position. It provides a code example for gathering these metrics and discusses reporting intervals.
- [Glance setup](https://developer.android.com/develop/ui/compose/glance/setup.md.txt): Learn how to set up your Android development environment for Glance, including adding necessary dependencies for AppWidgets and Material interop, and configuring the Compose compiler.
- [Loading images](https://developer.android.com/develop/ui/compose/graphics/images/loading.md.txt): This document explains how to load images in Jetpack Compose from local disk resources using `painterResource` and from the internet using third-party libraries like Coil and Glide, emphasizing accessibility considerations.
- [Build a list-detail layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/list-detail.md.txt): This document explains the list-detail UI pattern and provides a guide on how to implement it in Jetpack Compose using `NavigableListDetailPaneScaffold`, including adaptive layouts and navigation behaviors.
- [Lazy lists and lazy grids](https://developer.android.com/develop/ui/compose/lists.md.txt): Learn how to efficiently display collections of items in Jetpack Compose using lazy lists and grids, including features like item keys, animations, sticky headers, scroll position management, and Paging library integration.
- [Tooling](https://developer.android.com/develop/ui/compose/performance/tooling.md.txt): This document outlines essential tools like Layout Inspector and composition tracing to help identify and narrow down performance issues in Android Compose UI.
- [Display images](https://developer.android.com/develop/ui/compose/quick-guides/collections/display-images.md.txt): Work with images onscreen using a vector, bitmap, or directly drawing with a canvas on screen.
- [Display nested scrolling items in a list](https://developer.android.com/develop/ui/compose/quick-guides/content/display-nested-list.md.txt): You can display nested scrolling items within a list to present complex layouts, such as product catalogs, media galleries, news feeds, and more. Presenting content in this way can enhance the usability of your app, making it easier for users to navigate.
- [Create a button to enable snap scrolling](https://developer.android.com/develop/ui/compose/quick-guides/content/enable-snap-scrolling.md.txt): You can display a button to let a user snap scroll to a specific point in a list, saving time and increasing user engagement.
- [Lazily load data with lists and Paging](https://developer.android.com/develop/ui/compose/quick-guides/content/lazily-load-list.md.txt): Use the Paging library to support large lists of items—including an infinite list—in your app by loading and displaying data incrementally. With lazy loading, you can reduce initial load times and optimize memory usage, enhancing performance.
- [Load and display images](https://developer.android.com/develop/ui/compose/quick-guides/content/load-images.md.txt): To display images in your app for content and for responses to user actions, load the images from the disk or from an external source on the internet.
- [Common patterns](https://developer.android.com/develop/ui/compose/testing/common-patterns.md.txt): This document outlines common patterns and best practices for testing Jetpack Compose UI, including testing in isolation, accessing activity resources, custom semantics properties, verifying state restoration, and simulating different device configurations.
- [Synchronize your tests](https://developer.android.com/develop/ui/compose/testing/synchronization.md.txt): This document explains how Compose tests are synchronized with the UI, covering default automatic synchronization, methods to disable it, managing idle resources, and various manual synchronization techniques for effective testing.
- [Pointer input in Compose](https://developer.android.com/develop/ui/compose/touch-input/pointer-input.md.txt): Compose offers a range of APIs for detecting user gestures, including high-level modifiers like `clickable` and lower-level detectors for more flexible gesture handling such as taps, drags, scrolls, and multi-touch.
- [Scroll](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/scroll.md.txt): This document details the various scrolling modifiers available in Jetpack Compose, such as verticalScroll, horizontalScroll, scrollableArea, and scrollable. It clarifies their usage, differences, and provides examples for implementing both standard and custom scrollable UI components.
- [Brush APIs](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/ink-api-brush-apis.md.txt): Use the Brush APIs to define the visual style of strokes, create custom brushes, and modify brush properties in Compose.
- [Enable users to configure app widgets](https://developer.android.com/develop/ui/views/appwidgets/configuration.md.txt): Learn how to create and implement a configuration activity for Android App Widgets, including declaring the activity, handling widget updates, and specifying configuration options like reconfigurability and optional initial setup.
- [Build a widget host](https://developer.android.com/develop/ui/views/appwidgets/host.md.txt): The Android home screen available on most Android devices allows the user to embed a widget for quick access to content. If you&#39;re building a home screen replacement or a similar app, you can also allow the user to embed widgets by implementing an…
- [Organize your settings](https://developer.android.com/develop/ui/views/components/settings/organize-your-settings.md.txt): This document explains how to effectively organize Android settings screens using Preference Categories and by splitting hierarchies into multiple screens with PreferenceFragmentCompat.
- [Drawables overview](https://developer.android.com/develop/ui/views/graphics/drawables.md.txt): Develop your UI on Android.
- [Creating multiple APKs for different GL textures](https://developer.android.com/develop/ui/views/graphics/multiple-apks/texture.md.txt): Develop your UI on Android.
- [Displaying graphics with OpenGL ES](https://developer.android.com/develop/ui/views/graphics/opengl.md.txt): Develop your UI on Android.
- [Haptics design principles](https://developer.android.com/develop/ui/views/haptics/haptics-principles.md.txt): This document explains the principles of haptic feedback on Android devices, covering use cases, classifications of haptic effects (clear, rich, and buzzy), and essential design guidelines for app developers.
- [Best practices for shortcuts](https://developer.android.com/develop/ui/views/launch/shortcuts/best-practices.md.txt): Develop your UI on Android.
- [Create a card-based layout](https://developer.android.com/develop/ui/views/layout/cardview.md.txt): This document explains how to implement UI cards using the CardView widget in Android, covering dependency setup, XML layout creation, and visual customization.
- [Lay out your app within window insets](https://developer.android.com/develop/ui/views/layout/insets.md.txt): Explains how to lay out Android apps edge-to-edge, covering various window insets like system bars, display cutouts, and keyboard transitions that impact content display and user interaction.
- [Use window size classes](https://developer.android.com/develop/ui/views/layout/use-window-size-classes.md.txt): Window size classes are a set of viewport breakpoints that help design responsive and adaptive layouts by categorizing the available display area for width and height.
- [Support different screens in web apps](https://developer.android.com/develop/ui/views/layout/webapps/targeting.md.txt): Develop your UI on Android.
- [People and conversations](https://developer.android.com/develop/ui/views/notifications/conversations.md.txt): This document details the Android &#39;people and conversations&#39; initiative, which elevates real-time conversations in system surfaces, explaining how notifications, bubbles, and shortcuts are used to prioritize these interactions.
- [Create a QR Code Payment Quick Settings tile](https://developer.android.com/develop/ui/views/quicksettings-tiles/qr-code.md.txt): This document details how to create a custom Quick Settings tile for QR Code payments, including implementing the `onClick` method and handling secure device interactions.
- [Add search functionality](https://developer.android.com/develop/ui/views/search/training.md.txt): Develop your UI on Android.
- [Support modern emoji](https://developer.android.com/develop/ui/views/text-and-emoji/emoji2.md.txt): This document explains how to integrate the `androidx.emoji2:emoji2` library to support the latest emoji across various Android versions, especially on Android 11 and lower, to prevent incorrectly rendered emoji sequences.
- [Use touch gestures](https://developer.android.com/develop/ui/views/touch-and-input/gestures.md.txt): This class describes how to write apps that allow users to interact with an app via touch gestures. Android provides a variety of APIs to help you create and detect gestures. Although your app should not depend on touch gestures for basic behaviors (since…
- [Manage touch events in a ViewGroup](https://developer.android.com/develop/ui/views/touch-and-input/gestures/viewgroup.md.txt): Develop your UI on Android.
- [Image keyboard support](https://developer.android.com/develop/ui/views/touch-and-input/image-keyboard.md.txt): This document explains how to use the Commit Content API, introduced in Android 7.1 (API level 25), to enable input method editors (IMEs) to send rich content like images, emoji, and stickers directly to text editors in apps.
- [Brush APIs](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-brush-apis.md.txt): Develop your UI on Android.
- [State preservation and persistent storage](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-persistent-storage.md.txt): Learn how to serialize and deserialize Ink API strokes and their associated data (Brush and StrokeInputBatch) for persistent storage and retrieval in Android applications.
- [Stylus input in text fields](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/stylus-input-in-text-fields.md.txt): Learn how Android 14 and higher support stylus input in text fields by default, including customization for EditText, implementing input delegation for placeholder UIs, and handling overlaps with drawing surfaces.
- [XR_ANDROID_hand_mesh OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_hand_mesh.md.txt): This OpenXR extension enables hand tracking represented as a dynamic hand mesh on Android devices, providing vertex and index buffers for personalized hand representation, primarily for occlusion and visualization.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_trackables_qr_code.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [XR_ANDROID_unbounded_reference_space OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_unbounded_reference_space.md.txt): This OpenXR extension allows applications to create an UNBOUNDED_ANDROID reference space, enabling free movement through large environments while maintaining coordinate system stability. It is designed for world-scale content that extends beyond a single stage.
- [Develop with Unity for Android XR](https://developer.android.com/develop/xr/unity.md.txt): Provides an overview of developing Extended Reality (XR) experiences for Android using Unity, detailing Unity&#39;s support for Android XR, essential packages like Unity OpenXR and Android XR Extensions, and various input and interaction methods.
- [Optimize GPU rendering](https://developer.android.com/develop/xr/unity/performance/gpu-rendering.md.txt): This document outlines various advanced GPU features in Unity, such as GPU Resident Drawer, GPU Occlusion Culling, and Buffer Discard optimization, to enhance performance in XR applications by reducing draw calls and rendering hidden objects.
- [XRAvatarSkeletonJointIDUtility Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRAvatarSkeletonJointIDUtility.md.txt): Android XR (Extended Reality) for Unity development hub
- [XREnvironmentBlendModeFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XREnvironmentBlendModeFeature.md.txt): Android XR (Extended Reality) device development hub
- [Threading in Worker](https://developer.android.com/develop/background-work/background-tasks/persistent/threading/worker.md.txt): This document explains how WorkManager handles threading for `Worker.doWork()`, including customizing the Executor and gracefully handling worker termination through `onStopped()` or `isStopped()`.
- [Foreground service types](https://developer.android.com/develop/background-work/services/fgs/service-types.md.txt): This document outlines the specific foreground service types required for apps targeting Android 14 (API level 34) and higher, detailing their manifest declarations, associated permissions, runtime prerequisites, and intended use cases.
- [Bluetooth overview](https://developer.android.com/develop/connectivity/bluetooth.md.txt): The Android platform supports the Bluetooth network stack, enabling devices to wirelessly exchange data with other Bluetooth devices through Bluetooth APIs.
- [CronetException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetException.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [DnsOptions.StaleDnsOptions.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [NetworkQualityThroughputListener](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkQualityThroughputListener.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [QuicOptions.Experimental](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicOptions.Experimental.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Use a local-only Wi-Fi hotspot](https://developer.android.com/develop/connectivity/wifi/localonlyhotspot.md.txt): This document explains how to use a local-only Wi-Fi hotspot on Android devices for inter-application communication without internet access, outlining the necessary permission requirements for different API levels.
- [Build location-aware apps](https://developer.android.com/develop/sensors-and-location/location.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Get the last known location](https://developer.android.com/develop/sensors-and-location/location/retrieve-current.md.txt): Learn how to use Google Play services location APIs, specifically the Fused Location Provider, to request the last known location of an Android device, which often represents the user&#39;s current location.
- [About the latest GnssLogger features](https://developer.android.com/develop/sensors-and-location/sensors/gnss-about-latest.md.txt): Learn about the features in GnssLogger for Android and Wear OS.
- [Navigation bar](https://developer.android.com/develop/ui/compose/components/navigation-bar.md.txt): Learn how to implement a navigation bar in your Jetpack Compose app using NavigationBar and NavigationBarItem composables to enable seamless screen navigation.
- [Design systems in Compose](https://developer.android.com/develop/ui/compose/designsystems.md.txt): This document serves as an index to learn how to implement design systems in Jetpack Compose, covering Material Design 3, custom systems, and migration strategies from older versions or XML themes.
- [Anatomy of a theme in Compose](https://developer.android.com/develop/ui/compose/designsystems/anatomy.md.txt): This document details the fundamental constructs and APIs that form themes in Jetpack Compose, explaining how they are built from lower-level systems and can be applied in both MaterialTheme and custom design systems.
- [Migrate XML themes to Compose](https://developer.android.com/develop/ui/compose/designsystems/views-to-compose.md.txt): This document explains how to migrate existing XML themes from View-based Android applications to MaterialTheme in Jetpack Compose, emphasizing the use of the Material Theme Builder for Material 3.
- [Unit testing with Glance](https://developer.android.com/develop/ui/compose/glance/testing.md.txt): Use the Glance unit test API for testing Glance code without UI inflation, verifying conditions with matchers. Learn how to to set up, test structure, and handling context and size for composable functions in a lightweight manner.
- [Implement a Glance theme](https://developer.android.com/develop/ui/compose/glance/theme.md.txt): Learn how to manage themes for Glance composables, covering built-in Material colors, custom color schemes, dynamic color support, and adding custom shapes using Android Drawables.
- [Brush: gradients and shaders](https://developer.android.com/develop/ui/compose/graphics/draw/brush.md.txt): This document describes how to use Brush in Jetpack Compose for drawing various visual effects, including built-in gradient brushes, custom color distributions with colorStops and TileMode, image-based brushes, and advanced AGSL RuntimeShader brushes.
- [Optimizing bitmap images](https://developer.android.com/develop/ui/compose/graphics/images/optimization.md.txt): This document provides best practices for optimizing image performance in Android applications, focusing on techniques to prevent OutOfMemoryError and improve UI rendering efficiency when working with bitmaps and vectors.
- [Jetpack Compose architectural layering](https://developer.android.com/develop/ui/compose/layering.md.txt): This document provides a high-level overview of the architectural layers that make up Jetpack Compose and the core design principles.
- [Build a supporting pane layout](https://developer.android.com/develop/ui/compose/layouts/adaptive/build-a-supporting-pane-layout.md.txt): This document explains how to implement a supporting pane layout in Jetpack Compose using NavigableSupportingPaneScaffold, covering its adaptive behavior, required dependencies, navigation, and predictive back handling.
- [Custom layouts](https://developer.android.com/develop/ui/compose/layouts/custom.md.txt): This document explains how to create custom layouts in Jetpack Compose, detailing the three-step layout process (measure, decide size, place) and demonstrating the use of the `layout` modifier and `Layout` composable for custom placement and arrangement of UI elements.
- [Pager in Compose](https://developer.android.com/develop/ui/compose/layouts/pager.md.txt): Learn how to implement `HorizontalPager` and `VerticalPager` composables in Jetpack Compose to display scrollable content, including managing state, customizing appearance, and handling user interaction.
- [Compose and other libraries](https://developer.android.com/develop/ui/compose/libraries.md.txt): This document describes how to integrate popular Android libraries and components such as Activity, ViewModel, Hilt, Navigation, Paging, and Maps with Jetpack Compose applications.
- [Lifecycle of composables](https://developer.android.com/develop/ui/compose/lifecycle.md.txt): This document explains the lifecycle of a composable in Jetpack Compose, from initial composition to recomposition, and how Compose optimizes UI updates, including the role of keys and stable types.
- [Compose phases and performance](https://developer.android.com/develop/ui/compose/performance/phases.md.txt): This document outlines the three phases of Jetpack Compose UI updates (Composition, Layout, and Drawing) and explains how understanding these phases, along with general principles like moving calculations out of composables and deferring state reads, can improve UI performance.
- [Optimize for large screens](https://developer.android.com/develop/ui/compose/quick-guides/collections/optimize-for-large-screens.md.txt): Enable your app to support an optimized user experience on tablets, foldables, and ChromeOS devices.
- [Lists in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/lists-in-compose.md.txt): Explore Compose&#39;s Lazy components that make it easy to display lists of items. Learn how to show different item types and even how to implement sticky headers. See how to programmatically control or react to the scroll-position changes.
- [Side-effects in Compose](https://developer.android.com/develop/ui/compose/side-effects.md.txt): Explains how to safely manage and execute side-effects in Jetpack Compose applications using various Effect APIs for more predictable behavior and proper lifecycle management.
- [About picture-in-picture (PiP)](https://developer.android.com/develop/ui/compose/system/picture-in-picture.md.txt): Learn about Picture-in-picture (PiP), which is a special multi-window mode for video playback, allowing users to watch a video in a small, pinned window while interacting with other apps, and this document explains how to handle UI elements when in PiP mode.
- [Semantics](https://developer.android.com/develop/ui/compose/testing/semantics.md.txt): This document explains how UI tests in Jetpack Compose leverage semantics to interact with and describe the UI hierarchy, primarily for accessibility and testing purposes.
- [Composition tracing](https://developer.android.com/develop/ui/compose/tooling/tracing.md.txt): Learn how to use composition tracing to identify performance issues by visualizing individual composable functions within system traces in Android Studio, including setup, capturing traces, and caveats.
- [Copy and paste](https://developer.android.com/develop/ui/compose/touch-input/copy-and-paste.md.txt): This document explains the Android clipboard framework for copying and pasting various data types, detailing how to implement text and rich content copy/paste in Jetpack Compose applications, and considerations for sensitive content.
- [Change focus behavior](https://developer.android.com/develop/ui/compose/touch-input/focus/change-focus-behavior.md.txt): This document explains how to override and customize the default focus behavior of elements in Jetpack Compose, covering various scenarios from grouping to explicit focus control.
- [Change focus traversal order](https://developer.android.com/develop/ui/compose/touch-input/focus/change-focus-traversal-order.md.txt): This document details how to override Compose&#39;s default focus traversal order for both one-dimensional (tab key) and two-dimensional (arrow keys) navigation using `FocusRequester` and `focusProperties` modifiers.
- [Modules](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/ink-api-modules.md.txt): Understand the modular components of the Ink API
- [State preservation and persistent storage](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/ink-api-state-preservation.md.txt): This document explains how to preserve UI state for custom Ink API objects like `Brush` using `rememberSaveable` with custom `Saver`s in Jetpack Compose, and how to serialize Ink API strokes for persistent storage.
- [Why Compose](https://developer.android.com/develop/ui/compose/why-adopt.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Optimize frame rate with adaptive refresh rate](https://developer.android.com/develop/ui/views/animations/adaptive-refresh-rate.md.txt): This document describes Android&#39;s Adaptive Refresh Rate (ARR) feature, introduced in Android 15, which optimizes display refresh rates to match content rendering, reducing power consumption while maintaining smooth animations.
- [Manage motion and widget animation with MotionLayout](https://developer.android.com/develop/ui/views/animations/motionlayout.md.txt): MotionLayout is a powerful layout type that extends ConstraintLayout, enabling developers to manage complex motion and widget animations declaratively in XML.
- [Carousel with MotionLayout](https://developer.android.com/develop/ui/views/animations/motionlayout/carousel.md.txt): This document explains how to build custom carousel views using the Carousel motion helper object, leveraging MotionLayout for complex motion and dimension changes.
- [Create a custom transition animation](https://developer.android.com/develop/ui/views/animations/transitions/custom-transitions.md.txt): Develop your UI on Android.
- [Set up the app bar](https://developer.android.com/develop/ui/views/components/appbar/setting-up.md.txt): Develop your UI on Android.
- [Customize your settings](https://developer.android.com/develop/ui/views/components/settings/customize-your-settings.md.txt): This document describes how to customize Preference objects in your Android settings hierarchy, covering visibility, summaries, dialog behavior, and actions.
- [Add toggle buttons](https://developer.android.com/develop/ui/views/components/togglebutton.md.txt): This document explains how to implement toggle buttons in Android&#39;s View-based layouts using `SwitchMaterial`, `SwitchCompat`, and `AppCompatToggleButton`, and provides guidance on handling their state changes.
- [Canonical layouts](https://developer.android.com/develop/ui/views/layout/canonical-layouts.md.txt): Canonical layouts are proven, versatile design patterns derived from Material Design, offering an optimal user experience across various Android form factors, including phones, tablets, foldables, and ChromeOS devices. They provide aesthetic and functional foundations for creating engaging and productivity-enhancing user interfaces using specialized Android framework components.
- [Trusted Web Activities Quick Start Guide](https://developer.android.com/develop/ui/views/layout/webapps/guide-trusted-web-activities-version2.md.txt): This guide helps developers create a basic Android project using Trusted Web Activities to display a website, covering setup with Bubblewrap, understanding signing keys, and configuring Digital Asset Links for verification.
- [In-app browsing using Embedded Web](https://developer.android.com/develop/ui/views/layout/webapps/in-app-browsing-embedded-web.md.txt): This document explains how to provide a full browser experience within your Android app using Custom Tabs or WebView, allowing users to stay in context while viewing web content.
- [Create a call style notification for call apps](https://developer.android.com/develop/ui/views/notifications/call-style.md.txt): Learn how to implement high-priority CallStyle notifications for incoming, ongoing, and screening calls on Android 12 (API 31) and later, and how to ensure compatibility with older Android versions.
- [Autosize TextViews](https://developer.android.com/develop/ui/views/text-and-emoji/autosizing-textview.md.txt): Develop your UI on Android.
- [Input compatibility on large screens](https://developer.android.com/develop/ui/views/touch-and-input/input-compatibility-on-large-screens.md.txt): This document provides guidelines for making Android applications compatible with external input devices like keyboards, mice, styluses, and game controllers on large-screen devices, including detailed instructions for handling various input types.
- [Handle input method visibility](https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/visibility.md.txt): Learn how to control and respond to the visibility of the soft keyboard (input method) in Android applications, including showing it on activity start, on demand, and managing its interaction with UI layout, dialogs, and overlay views.
- [Enhance app experiences with perception using ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore.md.txt): Learn how ARCore for Jetpack XR enables apps to understand the real world through perception APIs for XR devices.
- [Android Studio tools for XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/studio-tools.md.txt): This document guides you through using the Android XR Emulator and the Layout Inspector in Android Studio, essential tools for building and debugging XR applications.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_eye_tracking.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Samples | Android XR | UI Design](https://developer.android.com/develop/xr/samples.md.txt): Android XR (Extended Reality) device development hub
- [XRMarkerDatabase Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMarkerDatabase.md.txt): Android XR (Extended Reality) device development hub
- [XRMeshSubsystemExtension Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMeshSubsystemExtension.md.txt): Android XR (Extended Reality) device development hub
- [XR Namespace](https://developer.android.com/develop/xr/unity/reference/namespace/Google/XR.md.txt): Android XR (Extended Reality) device development hub
- [Update work that is already enqueued](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/update-work.md.txt): This document explains how to use WorkManager&#39;s updateWork() API to modify enqueued WorkRequests, detailing when to update versus cancel work, and how to track work generations.
- [Threading in WorkManager](https://developer.android.com/develop/background-work/background-tasks/persistent/threading.md.txt): This document explores threading and concurrency within WorkManager, detailing how different work primitives like Worker, CoroutineWorker, RxWorker, and ListenableWorker handle background execution.
- [Threading in ListenableWorker](https://developer.android.com/develop/background-work/background-tasks/persistent/threading/listenableworker.md.txt): This document explains how to use ListenableWorker in WorkManager to implement custom threading strategies for callback-based asynchronous operations, detailing its API, cancellation handling, and multiprocess execution with RemoteListenableWorker.
- [Bound services overview](https://developer.android.com/develop/background-work/services/bound-services.md.txt): Android allows your app to do work in the background. Here's how.
- [ConnectionMigrationOptions.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/ConnectionMigrationOptions.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [CronetEngine](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [DnsOptions](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [NetworkQualityRttListener](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkQualityRttListener.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [RequestFinishedInfo](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [CronetResponse](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/CronetResponse.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Connect to the network](https://developer.android.com/develop/connectivity/network-ops/connecting.md.txt): This document outlines how to perform network operations in an Android application, covering necessary permissions, security best practices, options for HTTP clients, DNS resolution, and architectural patterns like the repository pattern and ViewModel to manage network requests.
- [About preserving battery](https://developer.android.com/develop/connectivity/preserving-battery.md.txt): This document outlines strategies and techniques for Android developers to minimize battery drain caused by network requests and connectivity, ensuring a better user experience and system health. It covers various update categories and tools for maximizing efficiency.
- [Range between devices](https://developer.android.com/develop/connectivity/ranging.md.txt): This document introduces the Android 16 Ranging module, which offers a unified and standardized API for precise distance and position measurement between devices using various technologies like Ultra-wideband, Bluetooth channel sounding, and Wi-Fi NAN RTT.
- [Core-Telecom](https://developer.android.com/develop/connectivity/telecom/voip-app/telecom.md.txt): This document details how to integrate your calling application with the Android platform using the Core-Telecom library, covering setup, call management, audio routing, and advanced features like remote surface support and call extensions.
- [Use network service discovery](https://developer.android.com/develop/connectivity/wifi/use-nsd.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Troubleshoot issues](https://developer.android.com/develop/devices/assistant/troubleshoot.md.txt): This document describes common issues and their fixes when developing App Actions, covering general setup problems and issues with the App Actions test tool.
- [Raw GNSS Measurements](https://developer.android.com/develop/sensors-and-location/sensors/gnss.md.txt): Learn about accessing and analyzing raw Global Navigation Satellite System (GNSS) measurements on Android devices using tools like GnssLogger and the GNSS Analysis app for development, testing, and debugging.
- [Support user-scalable content](https://developer.android.com/develop/ui/compose/accessibility/scalable-content.md.txt): Learn how to implement pinch-to-zoom gestures in Jetpack Compose to create scalable content, improving accessibility by allowing users to adjust the size of UI elements and text.
- [Navigation with shared elements](https://developer.android.com/develop/ui/compose/animation/shared-elements/navigation.md.txt): Implement shared element transitions with Navigation 2 & 3 in Jetpack Compose, including predictive back gesture integration.
- [Menus](https://developer.android.com/develop/ui/compose/components/menu.md.txt): Learn how to create basic and complex drop-down menus in Jetpack Compose, including implementations with dividers, icons, and scrollable options.
- [Switch](https://developer.android.com/develop/ui/compose/components/switch.md.txt): Learn how to implement the Jetpack Compose Switch component in your Android app. Discover its basic usage, and advanced customizations for thumb content and colors.
- [Build UI with Glance](https://developer.android.com/develop/ui/compose/glance/build-ui.md.txt): Build flexible and responsive app widget UIs using Glance Compose, explaining layout components, different SizeMode configurations, and how to integrate various UI elements like compound buttons and text styling.
- [Create an app widget with Glance](https://developer.android.com/develop/ui/compose/glance/create-app-widget.md.txt): Create a basic app widget using Glance, covering manifest declaration, metadata configuration, defining the GlanceAppWidget, and building the user interface with Glance composables.
- [Handle errors with Glance](https://developer.android.com/develop/ui/compose/glance/error-handling.md.txt): This document outlines best practices and API features for implementing robust error handling in Glance, including custom error layouts and action callbacks, starting from Android 15.
- [Compose modifiers](https://developer.android.com/develop/ui/compose/modifiers.md.txt): Learn how modifiers are used in Jetpack Compose to decorate or augment composables, covering their chaining, order significance, built-in types, scope safety, and best practices for reuse.
- [Stability in Compose](https://developer.android.com/develop/ui/compose/performance/stability.md.txt): This guide explains how Compose determines stability for types and composables, and how understanding and improving stability can enhance app performance by optimizing recomposition behavior.
- [Display interactive components](https://developer.android.com/develop/ui/compose/quick-guides/collections/display-interactive-components.md.txt): Choose the right component for your UI and see how to implement it in your app.
- [Add a switch that users can toggle](https://developer.android.com/develop/ui/compose/quick-guides/content/add-toggle-switch.md.txt): You can use a toggle switch to let users choose one of two states.
- [Add a custom page indicator](https://developer.android.com/develop/ui/compose/quick-guides/content/custom-page-indicator.md.txt): Using page indicators, you can help your users understand their current position within your app&#39;s content, providing a visual indication of progress.
- [Display a top app bar](https://developer.android.com/develop/ui/compose/quick-guides/content/display-top-app-bar.md.txt): Create a top app bar to help users navigate and access functions in your app, using the TopAppBar composable.
- [Display pop-up messages or requests for user input](https://developer.android.com/develop/ui/compose/quick-guides/content/display-user-input.md.txt): Dialogs display pop-up messages or request user input on a layer above the main app content.
- [Debugging recomposition in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/debugging-recomposition.md.txt): A look into debugging a performance issue in Jetsnack and how to fix it in Jetpack Compose. Learn why deferring state reads by using a lambda means composition can be skipped.
- [About WindowInsetsRulers](https://developer.android.com/develop/ui/compose/system/evaluate-rulers.md.txt): This document explains how to use WindowInsetsRulers in Jetpack Compose to manage system UI elements like status bars, navigation bars, and IME, providing an alternative to WindowInsets for precise content alignment.
- [Debug tests](https://developer.android.com/develop/ui/compose/testing/debug.md.txt): This document explains how to debug issues in Jetpack Compose tests by utilizing the semantics tree, specifically through printing its content to the log.
- [Style text](https://developer.android.com/develop/ui/compose/text/style-text.md.txt): This document explains how to style text in Jetpack Compose, covering common styling options like color, size, font weight, and shadow, as well as advanced techniques using AnnotatedString, Brush API for gradients, and the basicMarquee modifier for scrolling text effects.
- [Draw a stroke](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/ink-api-draw-stroke.md.txt): Draw strokes in Jetpack Compose using the Ink API. Use the `InProgressStrokes` composable to handle wet and dry strokes.
- [Setup](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/ink-api-setup.md.txt): This document outlines the initial steps for integrating the Ink API into an Android application by adding the necessary dependencies from the Google Maven repository.
- [Android Compose Tutorial](https://developer.android.com/develop/ui/compose/tutorial.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Introduction to animations](https://developer.android.com/develop/ui/views/animations/overview.md.txt): This document provides an overview of various animation APIs in Android, explaining how to add motion to your UI to enhance user experience and provide visual cues.
- [Use collection widgets](https://developer.android.com/develop/ui/views/appwidgets/collections.md.txt): This document explains how to implement App Widgets that display collections of items, utilizing `RemoteViewsService` and `RemoteViewsFactory` to handle remote data and enable interactive elements within the collection.
- [Add radio buttons to your app](https://developer.android.com/develop/ui/views/components/radiobutton.md.txt): Develop your UI on Android.
- [Add spinners to your app](https://developer.android.com/develop/ui/views/components/spinner.md.txt): Develop your UI on Android.
- [Handling bitmaps](https://developer.android.com/develop/ui/views/graphics.md.txt): Improve your app's performance by learning how to optimize power consumption, launch times, and other important areas of performance.
- [Draw shapes](https://developer.android.com/develop/ui/views/graphics/opengl/draw.md.txt): Develop your UI on Android.
- [Migrate your splash screen implementation to Android 12 and later](https://developer.android.com/develop/ui/views/launch/splash-screen/migrate.md.txt): Learn how to migrate your app&#39;s custom splash screen implementation to the SplashScreen API to ensure it displays correctly and consistently on Android 12 and later, preventing degraded or unintended user experiences.
- [Insets: Apply rounded corners](https://developer.android.com/develop/ui/views/layout/insets/rounded-corners.md.txt): Learn how to use Android 12 (API level 31) and higher APIs to prevent UI elements from being truncated on devices with rounded screen corners, including how to apply padding to avoid content clipping.
- [User privacy in WebView reporting](https://developer.android.com/develop/ui/views/layout/webapps/webview-privacy.md.txt): This document describes how Android WebView collects usage statistics and crash reports, detailing the data collected and providing instructions for apps to opt out of these collections.
- [Use notification bubbles for conversations](https://developer.android.com/develop/ui/views/notifications/bubbles.md.txt): Bubbles are a feature built into the Android notification system that allow users to view and interact with app content, especially conversations, as floating, expandable overlays.
- [Emoji Compatibility](https://developer.android.com/develop/ui/views/text-and-emoji/emoji-compat.md.txt): Emoji support library helps keep Android devices up to date with the latest emoji.
- [Copy and paste](https://developer.android.com/develop/ui/views/touch-and-input/copy-paste.md.txt): Develop your UI on Android.
- [Create an input method](https://developer.android.com/develop/ui/views/touch-and-input/creating-input-method.md.txt): Develop your UI on Android.
- [Key concepts](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop/concepts.md.txt): This document outlines the fundamental concepts and processes involved in implementing drag-and-drop functionality for Android views, detailing the stages of a drag operation, drag events, drag shadows, and event listeners.
- [Support controllers across android versions](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/compatibility.md.txt): Develop your UI on Android.
- [Advanced stylus features](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/advanced-stylus-features.md.txt): Learn to enhance Android apps with advanced stylus features, covering MotionEvent data for pressure, orientation, tilt, and hover, implementing palm rejection, reducing latency with low-latency graphics and motion prediction, and integrating note-taking capabilities and ML Kit digital ink recognition.
- [Enhance your Android XR app with AI using Gemini API](https://developer.android.com/develop/xr/gemini.md.txt): Use Gemini APIs with Firebase AI Logic to build AI-powered features for XR devices, including integrating cloud-based Gemini models and enhancing apps with voice interfaces, image generation, and game interactions.
- [Develop with the Jetpack XR SDK](https://developer.android.com/develop/xr/jetpack-xr-sdk.md.txt): Develop with the Jetpack XR SDK tools and libraries to building immersive and augmented experiences across different Android XR devices.
- [Add a subspace to your app](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-subspace.md.txt): Learn how to use subspaces in Android XR development to partition 3D space within your app, place 3D models, build 3D layouts, and add depth to 2D content using Jetpack Compose spatial composables.
- [XR_ANDROID_device_anchor_persistence OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_device_anchor_persistence.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [XR_ANDROID_face_tracking OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_face_tracking.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [XR_ANDROID_trackables_object OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_trackables_object.md.txt): Android XR (Extended Reality) device development hub
- [Get support for the Android XR SDK](https://developer.android.com/develop/xr/support.md.txt): This document provides resources and guidelines for obtaining support, reporting bugs, and accessing release notes for the Android XR SDK and its related components.
- [XRMarkerTrackingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMarkerTrackingFeature.md.txt): Android XR (Extended Reality) device development hub
- [XRUnboundedRefSpaceFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRUnboundedRefSpaceFeature.md.txt): Android XR (Extended Reality) device development hub
- [Choose the right API to keep the device awake](https://developer.android.com/develop/background-work/background-tasks/awake.md.txt): This document guides developers on how to prevent an Android device from entering a suspend state, detailing various approaches to keep the CPU active or the screen on while minimizing battery drain. It explains when and how to use different Android technologies, including when to avoid wake locks.
- [Keep the screen on](https://developer.android.com/develop/background-work/background-tasks/awake/screen-on.md.txt): Learn how to prevent the device screen from turning off in Android applications using `FLAG_KEEP_SCREEN_ON` programmatically or the `android:keepScreenOn` XML attribute, while being mindful of battery consumption.
- [Observe intermediate worker progress](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/observe.md.txt): This document explains how to set and observe intermediate progress for WorkManager workers, including how to update progress using `setProgressAsync()` and observe it via `WorkInfo` and LiveData or Flow, as well as observing worker stop reasons.
- [Threading in RxWorker](https://developer.android.com/develop/background-work/background-tasks/persistent/threading/rxworker.md.txt): This document explains how to integrate RxJava with WorkManager by using `RxWorker` for handling asynchronous background tasks.
- [Bluetooth Low Energy](https://developer.android.com/develop/connectivity/bluetooth/ble/ble-overview.md.txt): Android offers built-in platform support for Bluetooth Low Energy (BLE), enabling apps to discover devices, query services, and transmit small amounts of data efficiently for use cases like proximity sensing and health monitoring.
- [Transfer BLE data](https://developer.android.com/develop/connectivity/bluetooth/ble/transfer-ble-data.md.txt): This document explains how to interact with a Bluetooth Low Energy (BLE) GATT server, covering service discovery, reading characteristics, and receiving notifications for data changes.
- [QuicOptions](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicOptions.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequest](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [RedirectHandler](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/RedirectHandler.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequestCallbacks.CallbackAndResponseFuturePair](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/UrlRequestCallbacks.CallbackAndResponseFuturePair.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [org.chromium.net.apihelpers](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/package-summary.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Manage network usage](https://developer.android.com/develop/connectivity/network-ops/managing.md.txt): This document describes how to implement fine-grained control over an Android application&#39;s network resource usage, including checking connection states, managing user preferences for data downloads (Wi-Fi vs. mobile), and responding to network connectivity changes.
- [Build a calling app](https://developer.android.com/develop/connectivity/telecom/voip-app.md.txt): The Telecom Jetpack library enables developers to build high-quality VoIP applications, providing features like call management, foreground support, call streaming, and integration with Android Auto and Wear OS.
- [About sensors and location](https://developer.android.com/develop/sensors-and-location.md.txt): This document introduces how Android-powered devices use various sensors and location APIs to provide users with contextual information about their surroundings, enhancing user experience.
- [Request background location](https://developer.android.com/develop/sensors-and-location/location/permissions/background.md.txt): This document explains how to request background location access, how the request is handled based on your app&#39;s target SDK version, and how user preferences for approximate location affect background location access.
- [Request location updates](https://developer.android.com/develop/sensors-and-location/location/request-updates.md.txt): This document explains how to request regular updates about a device&#39;s location using the Fused Location Provider&#39;s requestLocationUpdates() method in Android.
- [Access and share logs from GnssLogger for Wear OS](https://developer.android.com/develop/sensors-and-location/sensors/gnss-wear-share-logs.md.txt): This document explains how to share GNSS log files from the GnssLogger app on Wear OS devices, either through a paired phone or directly using Android Studio or ADB.
- [Publications](https://developer.android.com/develop/sensors-and-location/sensors/publications.md.txt): Explore peer-reviewed publications about Android raw GNSS measurements for positioning, navigation, and more.
- [Inspect and debug](https://developer.android.com/develop/ui/compose/accessibility/inspect-debug.md.txt): This document details how to inspect and debug accessibility issues in Android Compose applications using tools like Android Accessibility Suite, Layout Inspector, and Accessibility Scanner.
- [Choose an animation API](https://developer.android.com/develop/ui/compose/animation/choose-api.md.txt): This document provides a decision tree to help developers choose the most appropriate animation API in Jetpack Compose for their specific use case, covering art-based animations, layout transitions, and property animations.
- [Shared element transitions in Compose](https://developer.android.com/develop/ui/compose/animation/shared-elements.md.txt): This document explains how to implement shared element transitions in Jetpack Compose, enabling seamless visual connections between different screens or composables as a user navigates.
- [Value-based animations](https://developer.android.com/develop/ui/compose/animation/value-based.md.txt): Learn to create value-based animations in Jetpack Compose using APIs like `animate*AsState`, `Transition`, `rememberInfiniteTransition`, and low-level `Animatable` for animating values based on their current and target states.
- [Compose Compiler Gradle plugin](https://developer.android.com/develop/ui/compose/compiler.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Partial bottom sheet](https://developer.android.com/develop/ui/compose/components/bottom-sheets-partial.md.txt): Learn how to partially show a bottom sheet in Jetpack Compose, allowing users to expand it to full screen or dismiss it.
- [Migrate from Material 2 to Material 3 in Compose](https://developer.android.com/develop/ui/compose/designsystems/material2-material3.md.txt): This guide details the process of migrating Android apps from the Compose Material (Material Design 2) Jetpack library to the Compose Material 3 Jetpack library, covering differences in theming, components, and best practices.
- [Get started with Jetpack Compose](https://developer.android.com/develop/ui/compose/documentation.md.txt): Jetpack Compose is the modern toolkit for building Android UI, simplifying the development of apps that adapt to any display size.
- [Customize an image](https://developer.android.com/develop/ui/compose/graphics/images/customize.md.txt): This document explains how to customize images in Jetpack Compose using properties like contentScale and colorFilter, and modifiers for clipping, adding borders, aspect ratios, and blur effects.
- [Animate character-by-character the appearance of text](https://developer.android.com/develop/ui/compose/quick-guides/content/animate-text.md.txt): You can animate, character-by-character, the appearance of text, so it looks like a streaming typing effect.
- [Create a floating action button (FAB)](https://developer.android.com/develop/ui/compose/quick-guides/content/create-floating-action-button.md.txt): A floating action button lets the user perform a primary action in the app.
- [Show or hide password based on a user toggle](https://developer.android.com/develop/ui/compose/quick-guides/content/show-hide-password.md.txt): You can create an icon to hide or show a password based on a user toggle to improve security and enhance the user experience.
- [Save UI state in Compose](https://developer.android.com/develop/ui/compose/state-saving.md.txt): This document explains how to save and restore UI state in Jetpack Compose, covering different APIs like `rememberSaveable` and `SavedStateHandle` for various scenarios including configuration changes and system-initiated process death.
- [Enter PiP at correct times](https://developer.android.com/develop/ui/compose/system/pip-enter.md.txt): This document explains how to control when an Android app enters Picture-in-Picture (PiP) mode using state variables, differentiating between pre-Android 12 and post-Android 12 implementations, and how to use setSourceRectHint for smoother animations.
- [Set up your app for PiP](https://developer.android.com/develop/ui/compose/system/pip-setup.md.txt): This document provides instructions on how to configure an Android app for Picture-in-Picture (PiP) mode using Jetpack Compose, covering manifest declarations, activity handling, and specific implementations for pre- and post-Android 12 devices, including aspect ratio settings.
- [Work with fonts](https://developer.android.com/develop/ui/compose/text/fonts.md.txt): This document describes how to set fonts in your Jetpack Compose application, covering standard, custom, downloadable, and variable fonts.
- [Configure text fields](https://developer.android.com/develop/ui/compose/text/user-input.md.txt): This document details how to implement and customize TextField composables in Android, focusing on state-based and value-based TextField types, state management, input/output transformations, and keyboard configuration.
- [Touch and input in Compose](https://developer.android.com/develop/ui/compose/touch-input.md.txt): This document introduces how users interact with Android applications through various input methods and how Compose provides built-in support for these interactions, explaining scenarios where customization is needed.
- [Animations and Transitions](https://developer.android.com/develop/ui/views/animations.md.txt): Develop your UI on Android.
- [Add a floating action button](https://developer.android.com/develop/ui/views/components/floating-action-button.md.txt): This document explains how to add and customize a Floating Action Button (FAB) in an Android XML layout, configure its properties, and implement click listeners for interaction.
- [Create a hierarchy in code](https://developer.android.com/develop/ui/views/components/settings/programmatic-hierarchy.md.txt): This document demonstrates how to programmatically create and organize preference screens and categories in Android settings using Kotlin and Java.
- [Build responsive navigation](https://developer.android.com/develop/ui/views/layout/build-responsive-navigation.md.txt): Learn how to implement responsive and adaptive navigation in Android applications, adjusting UI elements like navigation bars, rails, and drawers based on display size while maintaining consistent navigation principles.
- [Hide system bars for immersive mode](https://developer.android.com/develop/ui/views/layout/immersive.md.txt): Learn how to use immersive mode to provide a fullscreen experience by hiding system bars for media-rich content, while considering user experience implications.
- [Create dynamic lists with RecyclerView](https://developer.android.com/develop/ui/views/layout/recyclerview.md.txt): Learn to efficiently display large datasets in Android apps using RecyclerView, which improves performance and responsiveness by recycling view elements. This guide covers key classes, implementation steps, and customization options for building dynamic lists.
- [Responsive/adaptive design with views](https://developer.android.com/develop/ui/views/layout/responsive-adaptive-design-with-views.md.txt): This document explains how to implement responsive and adaptive layouts using the Android Views system to optimize the user experience across various screen sizes, orientations, and configurations.
- [Beta program](https://developer.android.com/develop/ui/views/layout/webapps/webview-testing.md.txt): This guide explains how to join and leave the Android WebView Beta program, explores other testing channels like Dev and Canary, details the use of WebView DevTools for debugging, and introduces androidx.webkit for broader compatibility.
- [Create and manage notification channels](https://developer.android.com/develop/ui/views/notifications/channels.md.txt): This document explains how to implement notification channels, a feature introduced in Android 8.0 (API level 26), which requires all notifications to be assigned to a channel. It covers creating, configuring, and managing these channels, as well as channel groups, to allow users to control notification behavior.
- [Start an Activity from a Notification](https://developer.android.com/develop/ui/views/notifications/navigation.md.txt): Learn how to preserve the user&#39;s expected navigation experience when starting an activity from a notification, covering both regular and special activities by properly configuring PendingIntents and the activity manifest.
- [Receive rich content](https://developer.android.com/develop/ui/views/receive-rich-content.md.txt): Android 12 (API level 31) introduces a unified API, also available in AndroidX, that simplifies how apps receive rich content like images and videos from various sources, including the clipboard, keyboard, and drag-and-drop. This API consolidates content handling into a single `OnReceiveContentListener` callback.
- [Implement a text magnifier](https://developer.android.com/develop/ui/views/text-and-emoji/magnifier.md.txt): Learn about the Magnifier widget in Android, a virtual magnifying glass that displays an enlarged copy of a View through an overlay pane to improve user experience for text insertion, selection, and other use cases.
- [Support game controllers](https://developer.android.com/develop/ui/views/touch-and-input/game-controllers.md.txt): Develop your UI on Android.
- [Setup](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-setup.md.txt): Add the Ink API library dependencies to your app.
- [Build for Android XR](https://developer.android.com/develop/xr/get-started.md.txt): This guide covers the essentials for developing applications on Android XR, including selecting development tools, designing XR apps, configuring the app manifest, understanding permissions, ensuring app quality, and packaging for distribution.
- [Create anchors with ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/anchors.md.txt): This document explains how to create, configure, persist, and manage anchors in ARCore using the Jetpack XR SDK for augmented reality experiences.
- [Incorporate the head position in your app with ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/head.md.txt): Android XR (Extended Reality) for Jetpack XR SDK development hub
- [Transition from Home Space to Full Space](https://developer.android.com/develop/xr/jetpack-xr-sdk/transition-home-space-to-full-space.md.txt): This document explains how to transition between Home Space and Full Space in Android XR applications, either programmatically using composables or libraries, or by declaring a default launch mode in the manifest.
- [Create, control, and manage entities](https://developer.android.com/develop/xr/jetpack-xr-sdk/work-with-entities.md.txt): Create, control, and manage entities like 3D models and UI panels using Jetpack SceneCore within the Jetpack XR SDK.
- [AndroidXRPermissionUtil Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRPermissionUtil.md.txt): Android XR (Extended Reality) device development hub
- [AndroidXRRuntimeImageLibrary Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary.md.txt): Android XR (Extended Reality) device development hub
- [Identify and optimize wake lock use cases](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/identify-wls.md.txt): This document helps identify wake lock use cases acquired by various Android APIs and libraries, such as AlarmManager, SensorManager, and WorkManager, to assist in debugging and optimizing battery usage.
- [Integration tests with WorkManager](https://developer.android.com/develop/background-work/background-tasks/testing/persistent/integration-testing.md.txt): This document explains how to perform integration testing for WorkManager using the `work-testing` artifact, covering setup, basic worker testing, and simulating constraints, delays, and periodic work.
- [User-initiated data transfer](https://developer.android.com/develop/background-work/background-tasks/uidt.md.txt): Learn about User-initiated data transfer (UIDT) jobs, introduced in Android 14, for handling long-duration data transfers initiated by the device user, such as large file downloads, using JobScheduler.
- [Audio Manager self-managed call guide](https://developer.android.com/develop/connectivity/bluetooth/ble-audio/audio-manager.md.txt): This guide demonstrates how communication applications can self-manage their audio and hearable device state, focusing on migrating to AudioManager#setCommunicationDevice() for BLE audio headsets in Android 13 and higher.
- [Connect to a GATT server](https://developer.android.com/develop/connectivity/bluetooth/ble/connect-gatt-server.md.txt): This document provides a step-by-step guide on how to connect an Android app to a Bluetooth Low Energy (BLE) GATT server, covering service setup, GATT connection management, and communication between service and activity.
- [UploadDataProviders](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UploadDataProviders.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [RedirectHandlers](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/RedirectHandlers.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Minimize the effect of regular updates](https://developer.android.com/develop/connectivity/minimize-effect-regular-updates.md.txt): Learn how to optimize user-initiated, app-initiated, and server-initiated network requests to reduce battery drain caused by frequent radio activation and data transfers on Android devices.
- [Perform network operations overview](https://developer.android.com/develop/connectivity/network-ops.md.txt): This guide explains how to connect to, monitor, and manage network connections in Android applications, including handling connection changes, user control over network usage, and parsing XML data.
- [Optimize network access](https://developer.android.com/develop/connectivity/network-ops/network-access-optimization.md.txt): This document explains how wireless radio state machines impact battery drain and provides techniques for optimizing an app&#39;s network access to minimize power consumption.
- [Near field communication (NFC) overview](https://developer.android.com/develop/connectivity/nfc.md.txt): Near Field Communication (NFC) is a short-range wireless technology that allows Android devices to share small data payloads with NFC tags or other Android devices, operating in reader/writer or card emulation modes.
- [Troubleshoot network issues](https://developer.android.com/develop/connectivity/troubleshoot-network-issues.md.txt): This document explains how to monitor and categorize an app&#39;s network traffic using tools like Network Profiler and Traffic Stats API to identify and resolve issues, especially for optimizing battery life.
- [Wi-Fi Aware overview](https://developer.android.com/develop/connectivity/wifi/wifi-aware.md.txt): Learn how to use Wi-Fi Aware (Neighbor Awareness Networking) APIs in Android to enable devices to discover and connect directly to each other, facilitate message exchange, and establish network connections, with details on setup and enhancements in Android 12 and 13.
- [Wi-Fi suggestion API for internet connectivity](https://developer.android.com/develop/connectivity/wifi/wifi-suggest.md.txt): Learn how to use Wi-Fi suggestions to allow your app to provide network credentials for auto-connecting to Wi-Fi access points on Android 10 and higher, including features for Passpoint, security, and privacy.
- [Built-in intents for App Actions](https://developer.android.com/develop/devices/assistant/intents.md.txt): This document explains how Built-in Intents (BIIs) enable Android apps to declare fulfillment capabilities to Google Assistant, allowing users to launch specific app screens or complete tasks through voice queries.
- [Request location permissions](https://developer.android.com/develop/sensors-and-location/location/permissions.md.txt): This document describes the different types of location requirements for Android apps, including foreground and background access, and varying accuracy levels, explaining how to request the appropriate location permissions for each use case.
- [Detect GNSS jamming and spoofing](https://developer.android.com/develop/sensors-and-location/sensors/gnss-spoof-jam.md.txt): This document explains GNSS jamming and spoofing, how to identify these interference types using carrier-to-noise ratio (C/N0) and automatic gain control (AGC), and how to use the GnssLogger app for real-time detection.
- [Merging and clearing](https://developer.android.com/develop/ui/compose/accessibility/merging-clearing.md.txt): This document explains how to use Compose APIs like `mergeDescendants`, `clearAndSetSemantics`, and `hideFromAccessibility` to control how UI elements are grouped, separated, or hidden from accessibility services, ensuring a better user experience for accessibility.
- [Testing](https://developer.android.com/develop/ui/compose/accessibility/testing.md.txt): This document outlines methods for testing accessibility in Jetpack Compose applications, combining manual verification with automated checks using Compose testing APIs and the Accessibility Test Framework.
- [Animation modifiers and composables](https://developer.android.com/develop/ui/compose/animation/composables-modifiers.md.txt): This document describes how to use built-in composables like AnimatedVisibility, AnimatedContent, and Crossfade, along with modifiers like animateContentSize, to handle various animation use cases in Jetpack Compose.
- [Card](https://developer.android.com/develop/ui/compose/components/card.md.txt): Implement cards in Jetpack Compose. Learn how to use the Card composable to display single content blocks, including basic usage and creating filled, elevated, and outlined cards.
- [Search bar](https://developer.android.com/develop/ui/compose/components/search-bar.md.txt): This document explains how to use the SearchBar composable in Jetpack Compose to implement search functionality within your Android application, particularly when search is a primary focus.
- [Manage and update GlanceAppWidget](https://developer.android.com/develop/ui/compose/glance/glance-app-widget.md.txt): This document describes how to manage and update the state of GlanceAppWidget instances, distinguishing between application and Glance-specific states, and outlining different strategies for updating widgets immediately or periodically.
- [Support connected displays](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-connected-displays.md.txt): This document explains how to adapt Android apps to support connected displays, which extend the desktop windowing experience from phones and tablets to external monitors, enhancing user productivity.
- [Use window size classes](https://developer.android.com/develop/ui/compose/layouts/adaptive/use-window-size-classes.md.txt): Window size classes are opinionated viewport breakpoints that help design, develop, and test responsive and adaptive layouts by categorizing available display area into width and height classifications like compact, medium, and expanded.
- [ConstraintLayout in Compose](https://developer.android.com/develop/ui/compose/layouts/constraintlayout.md.txt): Learn how to use ConstraintLayout in Jetpack Compose for complex UI layouts, including its DSL, decoupled API, guidelines, barriers, and chains, as an alternative to deeply nested Row and Column composables.
- [Other considerations](https://developer.android.com/develop/ui/compose/migrate/other-considerations.md.txt): This document discusses various additional considerations when migrating a View-based Android application to Jetpack Compose, covering theming, navigation, testing, architecture, shared UI, and state management.
- [Follow best practices](https://developer.android.com/develop/ui/compose/performance/bestpractices.md.txt): Learn best practices to optimize your Jetpack Compose app&#39;s UI performance by minimizing expensive calculations, using lazy layout keys, limiting recompositions, deferring state reads, and avoiding backwards writes.
- [Create a bottom sheet](https://developer.android.com/develop/ui/compose/quick-guides/content/create-bottom-sheet.md.txt): A bottom sheet shows secondary content at the bottom of the screen.
- [Create a scrollable grid](https://developer.android.com/develop/ui/compose/quick-guides/content/create-scrollable-grid.md.txt): You can manage large datasets and dynamic content with lazy grids, improving app performance. With lazy grid composables, you can display items in a scrollable container, spanned across multiple columns or rows.
- [Create a notification with a snackbar](https://developer.android.com/develop/ui/compose/quick-guides/content/create-snackbar-notification.md.txt): A snackbar shows a brief notification at the bottom of the screen.
- [Manage WebView state](https://developer.android.com/develop/ui/compose/quick-guides/content/manage-webview-state.md.txt): Manage the state of a WebView across configuration changes.
- [Restrict app orientation on phones and foldable outer screens but not on larger displays](https://developer.android.com/develop/ui/compose/quick-guides/content/restrict-app-orientation-on-phones.md.txt): Restrict app orientation on small screens but not on large screens.
- [About system bar protection](https://developer.android.com/develop/ui/compose/system/system-bars.md.txt): This document explains how to implement transparent or translucent system bars in Android Compose UI for an edge-to-edge experience, detailing methods for both gesture and three-button navigation.
- [Enable user interactions](https://developer.android.com/develop/ui/compose/text/user-interactions.md.txt): This document explains how to enable and manage user interactions such as text selection and clickable text within Jetpack Compose `Text` composables, including how to use `SelectionContainer`, `DisableSelection`, and `LinkAnnotation`.
- [Handle keyboard actions](https://developer.android.com/develop/ui/compose/touch-input/keyboard-input/commands.md.txt): This document explains how to handle hardware keyboard input and customize keyboard shortcuts in Jetpack Compose applications, covering default shortcuts, key event handling, and event propagation with `onKeyEvent` and `onPreviewKeyEvent` modifiers.
- [Understand gestures](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/understand-gestures.md.txt): This document explains key terms like pointers, pointer events, and gestures, and details the different abstraction levels available for gesture handling in Android Compose, along with event consumption and propagation.
- [Advanced stylus features](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/advanced-stylus-features.md.txt): This document details advanced stylus features for Android and ChromeOS app development, covering MotionEvent data, palm rejection, low-latency graphics, motion prediction, and digital ink recognition to enhance user experience.
- [Swipe to dismiss or update](https://developer.android.com/develop/ui/compose/touch-input/user-interactions/swipe-to-dismiss.md.txt): This document explains how to implement swipe-to-dismiss functionality in Jetpack Compose using the `SwipeToDismissBox` component, covering basic usage for item dismissal/update and advanced animations for background colors.
- [Add buttons to your app](https://developer.android.com/develop/ui/views/components/button.md.txt): Develop your UI on Android.
- [Dialogs](https://developer.android.com/develop/ui/views/components/dialogs.md.txt): Develop your UI on Android.
- [Using AGSL in your Android app](https://developer.android.com/develop/ui/views/graphics/agsl/using-agsl.md.txt): The Android Graphics Shading Language (AGSL) works within the Android graphics rendering system to customize drawing.
- [Build an OpenGL ES environment](https://developer.android.com/develop/ui/views/graphics/opengl/environment.md.txt): Develop your UI on Android.
- [Select colors with the Palette API](https://developer.android.com/develop/ui/views/graphics/palette-colors.md.txt): The Palette library is a Jetpack library that extracts prominent colors from images to help you create visually engaging apps.
- [Android haptics API reference](https://developer.android.com/develop/ui/views/haptics/haptics-apis.md.txt): This document introduces the various haptics APIs available in Android, explaining how to create different haptic effects and how to check for necessary device support.
- [App shortcuts overview](https://developer.android.com/develop/ui/views/launch/shortcuts.md.txt): Learn how to add shortcuts to specific actions within your app.
- [AdapterView](https://developer.android.com/develop/ui/views/layout/binding.md.txt): Note that it is necessary to have the People._ID column in projection used with CursorAdapter or else you will get an exception. If, during the course of your application&#39;s life, you change the underlying data that is read by your Adapter, you should…
- [Create a view class](https://developer.android.com/develop/ui/views/layout/custom-views/create-view.md.txt): A well-designed custom view is much like any other well-designed class. It encapsulates a specific set of functionality with an easy-to-use interface, it uses CPU and memory efficiently, and so forth. In addition to being a well-designed class, though…
- [Make a custom view interactive](https://developer.android.com/develop/ui/views/layout/custom-views/making-interactive.md.txt): Drawing a UI is only one part of creating a custom view. You also need to make your view respond to user input in a way that closely resembles the real-world action you&#39;re mimicking. Objects should always act in the same way that real objects do. …
- [Display content edge-to-edge in views](https://developer.android.com/develop/ui/views/layout/edge-to-edge.md.txt): This document explains how to implement an edge-to-edge display in Android applications using traditional views, covering enablement, handling overlaps with system bars through insets, and other display considerations.
- [Support multi-window mode](https://developer.android.com/develop/ui/views/layout/support-multi-window-mode.md.txt): Multi-window mode enables multiple apps to share the same screen simultaneously, allowing them to be side-by-side (split-screen), one app overlaying others (picture-in-picture), or individual apps in resizable windows (desktop windowing).
- [Embedding web content into your app as primary or supporting content](https://developer.android.com/develop/ui/views/layout/webapps/embed-web-content-in-app.md.txt): This document explains how to integrate web content into an Android app using the WebView API, detailing its features, capabilities, and how it differs from a standard web browser.
- [Implement dark theme](https://developer.android.com/develop/ui/views/theming/darktheme.md.txt): This document describes how to implement a dark theme in an Android app, including benefits, setting up themes, handling in-app theme changes, and best practices for notifications and launch screens.
- [DropHelper for simplified drag and drop](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop/drophelper.md.txt): This document explains how to use the Jetpack DropHelper class to implement drag-and-drop capabilities in Android applications, covering setting up drag sources, specifying and configuring drop targets, and handling dropped data.
- [Ensure compatibility with gesture navigation](https://developer.android.com/develop/ui/views/touch-and-input/gestures/gesturenav.md.txt): This document outlines how Android app developers can ensure their applications are compatible with gesture-based navigation, covering topics like extending content edge-to-edge, handling gesture conflicts, and supporting the predictive back gesture.
- [Touch and input overview](https://developer.android.com/develop/ui/views/touch-and-input/input.md.txt): Develop your UI on Android.
- [Input events overview](https://developer.android.com/develop/ui/views/touch-and-input/input-events.md.txt): Develop your UI on Android.
- [Handle keyboard actions](https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/commands.md.txt): Develop your UI on Android.
- [Experiments | Android XR](https://developer.android.com/develop/xr/experiments.md.txt): Android XR (Extended Reality) device development hub
- [Check for spatial capabilities](https://developer.android.com/develop/xr/jetpack-xr-sdk/check-spatial-capabilities.md.txt): Learn how to check for spatial capabilities in your Android XR app using either Jetpack Compose for XR or the SceneCore library to ensure supported features are used in the current environment.
- [Develop with OpenXR](https://developer.android.com/develop/xr/openxr.md.txt): This document provides an overview of Android XR&#39;s support for OpenXR, an open standard for creating immersive and interactive experiences across various XR devices, detailing supported features, input devices, and performance capabilities.
- [XrSystemState Struct Reference](https://developer.android.com/develop/xr/unity/reference/struct/Google/XR/Extensions/XrSystemState.md.txt): Android XR (Extended Reality) for Unity development hub
- [Broadcasts overview](https://developer.android.com/develop/background-work/background-tasks/broadcasts.md.txt): This document explains how Android apps send and receive broadcast messages from the Android system and other Android apps, detailing the concepts, implementation methods, and important behavioral changes across different Android versions.
- [Optimize battery use for task scheduling APIs](https://developer.android.com/develop/background-work/background-tasks/optimize-battery.md.txt): This document outlines best practices for setting up well-behaved background tasks, primarily focused on reducing battery consumption, but also improving device performance and network use.
- [Debug WorkManager](https://developer.android.com/develop/background-work/background-tasks/testing/persistent/debug.md.txt): This document provides various debugging steps for WorkManager, including enabling verbose logging, using adb shell dumpsys jobscheduler to inspect job details, and requesting diagnostic information from WorkManager 2.4.0&#43;.
- [Android Interface Definition Language (AIDL)](https://developer.android.com/develop/background-work/services/aidl.md.txt): Android allows your app to do work in the background. Here's how.
- [Troubleshoot foreground services](https://developer.android.com/develop/background-work/services/fgs/troubleshooting.md.txt): This document covers common issues and failures in Android foreground services, including Application Not Responding (ANR) errors and various exceptions, offering diagnostic steps and solutions.
- [Find BLE devices](https://developer.android.com/develop/connectivity/bluetooth/ble/find-ble-devices.md.txt): This document explains how to scan for Bluetooth Low Energy (BLE) devices on Android, detailing the methods to start and stop scans and how to handle the results.
- [ConnectionMigrationOptions](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/ConnectionMigrationOptions.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [CronetEngine.Builder.LibraryLoader](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CronetEngine.Builder.LibraryLoader.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [InlineExecutionProhibitedException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/InlineExecutionProhibitedException.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [JsonCronetCallback](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/JsonCronetCallback.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequestCallbacks](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/apihelpers/UrlRequestCallbacks.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [NFC basics](https://developer.android.com/develop/connectivity/nfc/nfc.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [USB host and accessory overview](https://developer.android.com/develop/connectivity/usb.md.txt): This document explains the two primary USB connectivity modes supported by Android devices: USB accessory mode and USB host mode, detailing their functionality, supported Android versions, and debugging considerations.
- [USB host overview](https://developer.android.com/develop/connectivity/usb/host.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [App Actions for Cars](https://developer.android.com/develop/devices/assistant/cars.md.txt): This document explains how to integrate App Actions into point of interest (POI) car apps, allowing drivers to use Gemini or Google Assistant for voice control without diverting attention from the road.
- [Customize animations](https://developer.android.com/develop/ui/compose/animation/customize.md.txt): This document explains how to customize animations in Jetpack Compose using the AnimationSpec parameter, detailing various AnimationSpec types like spring, tween, keyframes, and repeatable, along with custom easing and support for animating custom data types.
- [Additional samples](https://developer.android.com/develop/ui/compose/animation/shared-elements/additional-samples.md.txt): This document provides a collection of additional code samples for implementing shared element animations in Jetpack Compose, showcasing various use cases from basic transitions to complex nested and container transformations.
- (https://developer.android.com/develop/ui/compose/announcement.md.txt)
- [Navigation drawer](https://developer.android.com/develop/ui/compose/components/drawer.md.txt): Learn how to implement, control, and structure navigation drawers in Jetpack Compose, a Material Design component that enhances app navigation.
- [Graphics in Compose](https://developer.android.com/develop/ui/compose/graphics/draw/overview.md.txt): This document provides an overview of custom drawing in Compose, detailing how to use modifiers like `drawWithContent` and `Canvas` with `DrawScope`, understand coordinate systems, apply transformations, and draw various elements such as text, images, and basic shapes.
- [Shapes in Compose](https://developer.android.com/develop/ui/compose/graphics/draw/shapes.md.txt): Learn how to create, customize, and morph polygonal shapes with rounded corners in Jetpack Compose using the `graphics-shapes` library for advanced graphics.
- [Image bitmap versus image vector](https://developer.android.com/develop/ui/compose/graphics/images/compare.md.txt): This document compares raster and vector images, explaining their characteristics and how to load and use them in Jetpack Compose as ImageBitmap and ImageVector, respectively.
- [Display text](https://developer.android.com/develop/ui/compose/quick-guides/collections/display-text.md.txt): Enhance your app's usability and aesthetic appeal by customizing the way it displays text.
- [Display an image clipped to a shape](https://developer.android.com/develop/ui/compose/quick-guides/content/clipped-image.md.txt): You can draw shadows around the clipped area of the image so that you can display an image in the shape of a clip.
- [Advanced layouts in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/advanced-layouts-compose.md.txt): See how to build complex designs for your Compose layouts, focusing on layout phase and constraints, subcompose layouts, and intrinsic measurements.
- [Style paragraph](https://developer.android.com/develop/ui/compose/text/style-paragraph.md.txt): Learn how to apply paragraph-level styling to text in Jetpack Compose, covering aspects like text alignment, line height adjustments, adding multiple styles, configuring line breaks, and enabling hyphenation.
- [Debug your Compose UI](https://developer.android.com/develop/ui/compose/tooling/debug.md.txt): This document details how to use Android Studio&#39;s Layout Inspector to debug Compose UI, including monitoring recompositions and inspecting semantics, and introduces the Compose UI Check feature for accessibility and adaptiveness.
- [Drag, swipe, and fling](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/drag-swipe-fling.md.txt): This document explains how to implement drag and swipe gestures in Jetpack Compose using modifiers like `draggable`, `pointerInput`, and `swipeable`, providing code examples for each.
- [Add inking to your app with the Ink API](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/about-ink-api.md.txt): The Ink API simplifies adding beautiful, low-latency freehand drawing to Android apps, handling input and rendering complexities for responsive stylus and pointer input surfaces.
- [Create a note-taking app](https://developer.android.com/develop/ui/compose/touch-input/stylus-input/create-a-note-taking-app.md.txt): This document guides developers on building a note-taking app for Android, focusing on features like stylus input, lock screen access, floating windows, and content capture.
- [Auto-animate layout updates](https://developer.android.com/develop/ui/views/animations/layout.md.txt): Develop your UI on Android.
- [Use action views and action providers](https://developer.android.com/develop/ui/views/components/appbar/action-views.md.txt): Develop your UI on Android.
- [Add and handle actions](https://developer.android.com/develop/ui/views/components/appbar/actions.md.txt): Develop your UI on Android.
- [Add pickers to your app](https://developer.android.com/develop/ui/views/components/pickers.md.txt): Develop your UI on Android.
- [Control external devices](https://developer.android.com/develop/ui/views/device-control.md.txt): Learn how to surface external device controls, like lights and thermostats, in the Android UI&#39;s Quick Access Device Controls feature using `ControlsProviderService` and linking them to your control app.
- [OpenGL ES](https://developer.android.com/develop/ui/views/graphics/opengl/about-opengl.md.txt): Develop your UI on Android.
- [Add haptic feedback to events](https://developer.android.com/develop/ui/views/haptics/haptic-feedback.md.txt): This document details how to implement haptic feedback in Android applications using three primary methods: View components, predefined VibrationEffect APIs, and advanced compositions with primitives, offering guidance and code examples for each.
- [Add capabilities to shortcuts](https://developer.android.com/develop/ui/views/launch/shortcuts/adding-capabilities.md.txt): Capabilities in shortcuts.xml allow developers to declare actions users can take to launch an app and perform specific tasks, enabling integrations with features like Google Assistant App Actions using built-in intents (BIIs).
- [Optimize a custom view](https://developer.android.com/develop/ui/views/layout/custom-views/optimizing-view.md.txt): Now that you have a well-designed view that responds to gestures and transitions between states, ensure that the view runs fast. To avoid a UI that feels sluggish or stutters during playback, ensure that animations consistently run at 60 frames per second…
- [Support display cutouts](https://developer.android.com/develop/ui/views/layout/display-cutout.md.txt): Display cutouts allow for an edge-to-edge experience while providing space for sensors.
- [Improve layout performance](https://developer.android.com/develop/ui/views/layout/improving-layouts.md.txt): Develop your UI on Android.
- [Best practices for web apps](https://developer.android.com/develop/ui/views/layout/webapps/best-practices.md.txt): Develop your UI on Android.
- [Debug web apps](https://developer.android.com/develop/ui/views/layout/webapps/debugging.md.txt): Learn to debug JavaScript and web content in Android&#39;s WebView using console APIs with Logcat, and discover how to test experimental web features.
- [Support keyboard navigation](https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/navigation.md.txt): Develop your UI on Android.
- [Modules](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-modules.md.txt): Understand the modules of the Ink API.
- [Add swipe-to-refresh to your app](https://developer.android.com/develop/ui/views/touch-and-input/swipe/add-swipe-interface.md.txt): Develop your UI on Android.
- [Add spatial environments to your app](https://developer.android.com/develop/xr/jetpack-xr-sdk/add-environments.md.txt): Learn how to add and manage spatial environments, including skyboxes, glTF geometry, and passthrough surfaces, within your Android XR applications using the Jetpack XR SDK.
- [Incorporate face tracking in your app with ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/face.md.txt): This document explains how to enable and retrieve detailed face tracking data, including blend shape values and confidence levels, using ARCore for Jetpack XR in Android applications.
- [Optimize environment assets](https://developer.android.com/develop/xr/jetpack-xr-sdk/optimize-environment-assets.md.txt): Optimize spatial environment assets in Jetpack XR by separating geometry and skybox textures from Image Based Lighting information.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_scene_meshing.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [XR_ANDROID_trackables OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_trackables.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [XRFoveationFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRFoveationFeature.md.txt): Android XR (Extended Reality) for Unity development hub
- [XRQrCodeTrackingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRQrCodeTrackingFeature.md.txt): Android XR (Extended Reality) device development hub
- [Background Work](https://developer.android.com/develop/background-work.md.txt): Android allows your app to do work in the background. Here's how.
- [Background tasks overview](https://developer.android.com/develop/background-work/background-tasks.md.txt): This document explains the various Android APIs available for performing background work and provides guidance on choosing the right option based on task characteristics, such as whether it&#39;s user-initiated or event-driven, and its duration and interruptibility.
- [Asynchronous work with Java threads](https://developer.android.com/develop/background-work/background-tasks/asynchronous/java-threads.md.txt): This document explains how to use Java background threads and thread pools in Android to handle long-running operations asynchronously and communicate results back to the main thread to maintain UI responsiveness.
- [System restrictions on background tasks](https://developer.android.com/develop/background-work/background-tasks/bg-work-restrictions.md.txt): This document details various restrictions placed on background processes and tasks in Android to enhance device performance and user experience, and provides solutions for working within these limitations.
- [Managing work](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/manage-work.md.txt): This document outlines how to enqueue, manage, observe, and cancel work requests using Android&#39;s WorkManager, emphasizing the use of unique work to avoid duplicates and handle conflicts.
- [Foreground services overview](https://developer.android.com/develop/background-work/services/fgs.md.txt): High-level summary of topics related to Android foreground services.
- [Handle user-initiated stopping of apps running foreground services](https://developer.android.com/develop/background-work/services/fgs/handle-user-stopping.md.txt): What to do when a user stops a foreground service.
- [Restrictions on starting a foreground service from the background](https://developer.android.com/develop/background-work/services/fgs/restrictions-bg-start.md.txt): This document outlines the restrictions on starting foreground services from the background in Android 12 (API level 31) and higher, detailing specific exemptions and additional considerations for services requiring while-in-use permissions.
- [Enhance your apps with 5G](https://developer.android.com/develop/connectivity/5g/enhance-with-5g.md.txt): This document explores how 5G capabilities can transform Android app user experiences, enabling new use cases and features beyond just faster speeds and lower latency.
- [Companion device pairing](https://developer.android.com/develop/connectivity/bluetooth/companion-device-pairing.md.txt): This document explains how to implement companion device pairing on Android 8.0 (API level 26) and higher, allowing apps to scan for nearby Bluetooth or Wi-Fi devices without requiring the ACCESS_FINE_LOCATION permission, thus maximizing user privacy.
- [UploadDataProvider](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UploadDataProvider.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequest.StatusListener](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.StatusListener.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Passpoint](https://developer.android.com/develop/connectivity/wifi/passpoint.md.txt): Passpoint is a Wi-Fi Alliance (WFA) protocol that allows mobile devices to discover and authenticate to Wi-Fi hotspots for internet access.
- [Create P2P connections with Wi-Fi Direct](https://developer.android.com/develop/connectivity/wifi/wifi-direct.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [App Actions support](https://developer.android.com/develop/devices/assistant/app-actions-support.md.txt): Find resources for App Actions development questions, reporting issues, and connecting with the community, including developer forums and Google support contacts.
- [Push dynamic shortcuts to Assistant](https://developer.android.com/develop/devices/assistant/dynamic-shortcuts.md.txt): This document explains how to use the Google Shortcuts Integration Jetpack library to make Android dynamic shortcuts eligible for proactive suggestions by Google Assistant, enhancing user discovery and voice-enabled functionality for your app.
- [Integrate App Actions with Android widgets](https://developer.android.com/develop/devices/assistant/widgets.md.txt): This guide explains how to fulfill Google Assistant user queries using Android app widgets and how to enhance the widget experience for Assistant with the App Actions Widgets Extension library.
- [Position sensors](https://developer.android.com/develop/sensors-and-location/sensors/sensors_position.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Adopt Compose for Teams](https://developer.android.com/develop/ui/compose/adopt.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Adopt Compose for teams](https://developer.android.com/develop/ui/compose/adopt/for-large-teams.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Divider](https://developer.android.com/develop/ui/compose/components/divider.md.txt): Learn how to implement horizontal and vertical dividers in Jetpack Compose using the HorizontalDivider and VerticalDivider composables, including API details and examples.
- [Icon buttons](https://developer.android.com/develop/ui/compose/components/icon-button.md.txt): This document describes how to implement various types of icon buttons in Jetpack Compose, including standard, toggle, and momentary buttons for repeated actions.
- [Kotlin for Jetpack Compose](https://developer.android.com/develop/ui/compose/kotlin.md.txt): This document explores essential Kotlin idioms and features, such as default arguments, higher-order functions, delegated properties, and coroutines, that are fundamental for writing effective and idiomatic Jetpack Compose code.
- [Layouts in Compose](https://developer.android.com/develop/ui/compose/layouts.md.txt): This document provides an overview of how to design and implement layouts efficiently in Jetpack Compose, linking to detailed guides on various layout topics.
- [Support multi-window mode](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-multi-window-mode.md.txt): This document provides comprehensive guidance on how to support and configure multi-window mode in Android applications, covering various multi-window types, API level-specific behaviors, activity lifecycle considerations, and testing procedures.
- [Compare Compose and View metrics](https://developer.android.com/develop/ui/compose/migrate/compare-metrics.md.txt): This document analyzes how migrating an existing Android app to Jetpack Compose impacts key metrics such as APK size, build times, and runtime performance, comparing it against the traditional View system.
- [Using Compose in Views](https://developer.android.com/develop/ui/compose/migrate/interoperability-apis/compose-in-views.md.txt): This document explains how to integrate Jetpack Compose UI into existing View-based Android applications using setContent() for activities and ComposeView for fragments and XML layouts, discussing different ViewCompositionStrategy options for managing composition lifecycles.
- [Migrate CoordinatorLayout to Compose](https://developer.android.com/develop/ui/compose/migrate/migration-scenarios/coordinator-layout.md.txt): This document guides developers on migrating a CoordinatorLayout implementation from Android Views to Jetpack Compose using the Scaffold composable, including steps for handling common UI patterns like collapsible toolbars, navigation drawers, and snackbars.
- [Migrate Jetpack Navigation to Navigation Compose](https://developer.android.com/develop/ui/compose/migrate/migration-scenarios/navigation.md.txt): This document describes how to migrate an Android app from using Fragment-based Jetpack Navigation to Navigation Compose, as part of a larger UI migration from View-based to Jetpack Compose.
- [Display an animated image](https://developer.android.com/develop/ui/compose/quick-guides/content/display-animated-image.md.txt): You can create a more interactive and engaging user experience in your app by loading a drawable file to display animated images. Animated images are useful for creating loading indicators, success or error indicators, facilitating game development, and various other UI functions.
- [Reject stylus palm touches](https://developer.android.com/develop/ui/compose/quick-guides/content/reject-stylus-palm-touches.md.txt): Reject accidental stylus palm touches.
- [Style parts of text](https://developer.android.com/develop/ui/compose/quick-guides/content/style-parts-text.md.txt): You can style parts of text to improve readability, increase positive user experience, and encourage greater creativity through use of colors and fonts.
- [About Predictive back](https://developer.android.com/develop/ui/compose/system/predictive-back.md.txt): This document introduces Android&#39;s predictive back gesture navigation feature, explaining how it integrates with Compose to provide smoother user transitions and outlines various implementation guides.
- [Set up Edge-to-edge](https://developer.android.com/develop/ui/compose/system/setup-e2e.md.txt): This guide describes the necessary steps to enable edge-to-edge display for an Android app built with Compose, including full control over content drawing, proper animation with the software keyboard, and handling of system UI insets to prevent overlaps.
- [Interoperability](https://developer.android.com/develop/ui/compose/testing/interoperability.md.txt): This document explains how to test Compose components within hybrid applications by ensuring interoperability with popular Android testing frameworks like Espresso and UiAutomator.
- [Configure text layout](https://developer.android.com/develop/ui/compose/text/configure-layout.md.txt): This document describes how to configure your text layout in Jetpack Compose using parameters like maxLines and overflow for the Text composable.
- [Editor actions](https://developer.android.com/develop/ui/compose/tooling/editor-actions.md.txt): This document outlines Android Studio features like live templates and gutter icons that enhance productivity when developing with Jetpack Compose.
- [Iterative code development](https://developer.android.com/develop/ui/compose/tooling/iterative-development.md.txt): This document explains how Android Studio and Jetpack Compose provide tools, primarily Live Edit, to facilitate step-by-step UI development without requiring a full build for inspection, modification, and verification, thereby optimizing the UI development workflow.
- [Multitouch: Panning, zooming, rotating](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/multi-touch.md.txt): Learn how to detect multitouch gestures like panning, zooming, and rotating in Jetpack Compose using the `transformable` modifier and `detectTransformGestures`.
- [Slide between fragments using ViewPager](https://developer.android.com/develop/ui/views/animations/screen-slide.md.txt): Develop your UI on Android.
- [Animate movement using spring physics](https://developer.android.com/develop/ui/views/animations/spring-animation.md.txt): In a spring-based animation, the properties of a spring, the value, and the velocity are used for creating an animation.
- [Enlarge a view using a zoom animation](https://developer.android.com/develop/ui/views/animations/zoom.md.txt): Develop your UI on Android.
- [Handle other form factors](https://developer.android.com/develop/ui/views/components/settings/handle-other-form-factors.md.txt): This document discusses how to use the AndroidX Preference Library for building settings on different form factors, specifically Android TV, using the Leanback Preference Library.
- [Reuse layouts with &lt;include&gt;](https://developer.android.com/develop/ui/views/layout/improving-layouts/reusing-layouts.md.txt): Although Android offers a variety of widgets to provide small and reusable interactive elements, you might also need to reuse larger components that require a special layout. To efficiently reuse complete layouts, you can use the View, you can do it…
- [Create a custom notification layout](https://developer.android.com/develop/ui/views/notifications/custom-notification.md.txt): This document explains how to create custom layouts for Android notifications using NotificationCompat.DecoratedCustomViewStyle, when the standard notification templates do not meet specific design requirements.
- [Remaining Backward Compatible](https://developer.android.com/develop/ui/views/search/training/backward-compat.md.txt): The SearchView and action bar are only available on Android 3.0 and later. To support older platforms, you can fall back to the search dialog. The search dialog is a system provided UI that overlays on top of your application when invoked. To setup the…
- [Set up the search interface](https://developer.android.com/develop/ui/views/search/training/setup.md.txt): Develop your UI on Android.
- [Create shadows and clip views](https://developer.android.com/develop/ui/views/theming/shadows-clipping.md.txt): Material design introduces elevation for UI elements. Elevation helps users understand the relative importance of each element and focus their attention to the task at hand. The elevation of a view, represented by the Z property, determines the visual…
- [Detect common gestures](https://developer.android.com/develop/ui/views/touch-and-input/gestures/detector.md.txt): Develop your UI on Android.
- [Drag and scale](https://developer.android.com/develop/ui/views/touch-and-input/gestures/scale.md.txt): Develop your UI on Android.
- [Stylus](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input.md.txt): Develop your UI on Android.
- [Add inking to your app with the Ink API](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/about-ink-api.md.txt): The Ink API simplifies adding low-latency freehand drawing to Android apps, handling input and rendering complexities for styluses and other pointer inputs.
- [Work with hands using ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/hands.md.txt): This document explains how to implement hand tracking using ARCore within the Jetpack XR SDK, allowing developers to access real-time hand and joint pose information for interactive augmented reality experiences.
- [XR_ANDROID_composition_layer_passthrough_mesh OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_composition_layer_passthrough_mesh.md.txt): This OpenXR extension allows applications to project passthrough textures onto arbitrary mesh geometry through an additional composition layer, enabling mixed reality experiences on Android devices.
- [Optimize rendering using URP Asset settings](https://developer.android.com/develop/xr/unity/performance/urp-asset-settings.md.txt): This document details how to configure Unity&#39;s Universal Render Pipeline (URP) Asset settings to optimize performance and visual quality specifically for mobile XR hardware. It provides steps to enable or disable features like HDR, post-processing, Depth Priming Mode, MSAA, and SRP Batcher.
- [AndroidXRHumanBodySubsystem Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRHumanBodySubsystem.md.txt): Android XR (Extended Reality) device development hub
- [XRHandMeshFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRHandMeshFeature.md.txt): Android XR (Extended Reality) for Unity development hub
- [Debug wake locks locally](https://developer.android.com/develop/background-work/background-tasks/awake/wakelock/debug-locally.md.txt): This document outlines various tools such as dumpsys, System tracing, and the Background Task Inspector, that help debug locally-running Android applications using wake locks to identify and resolve performance issues.
- [Migrating from Firebase JobDispatcher to WorkManager](https://developer.android.com/develop/background-work/background-tasks/persistent/migrate-from-legacy/firebase.md.txt): This document provides a guide on migrating from Firebase JobDispatcher to WorkManager, covering how to transition from JobService to Workers, manage job metadata using WorkRequest, and schedule or cancel background tasks.
- [Declare foreground services and request permissions](https://developer.android.com/develop/background-work/services/fgs/declare.md.txt): Learn how to declare foreground services in your Android app&#39;s manifest, specify their types using `android:foregroundServiceType`, and request the necessary permissions for apps targeting API level 34 and higher.
- [Android Connectivity](https://developer.android.com/develop/connectivity.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Android 5G](https://developer.android.com/develop/connectivity/5g.md.txt): Explore the Android platform. Learn about the latest releases and technologies for creating Android apps.
- [Use network slicing](https://developer.android.com/develop/connectivity/5g/use-network-slicing.md.txt): This guide explains how Android apps can leverage 5G network slicing to obtain performance boosts for specific use cases and how to implement the network slicing upsell user experience flow when a purchase is required.
- [Bluetooth profiles](https://developer.android.com/develop/connectivity/bluetooth/profiles.md.txt): This document details the Bluetooth profiles supported by Android, including Headset, A2DP, and Health Device profiles, providing implementation steps and code examples for integrating them into Android apps.
- [CallbackException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/CallbackException.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [DnsOptions.Builder](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.Builder.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [RequestFinishedInfo.Listener](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/RequestFinishedInfo.Listener.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [UrlRequest.Status](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/UrlRequest.Status.md.txt): Connectivity describes how Android apps connect to and use network connections, including WiFi and Bluetooth.
- [Custom intents](https://developer.android.com/develop/devices/assistant/custom-intents.md.txt): This document explains how to use custom intents to extend App Actions when built-in intents (BIIs) don&#39;t cover specific app functionality. It details their structure, limitations, and how to define them in shortcuts.xml using query patterns.
- [Migrate to Google Play services location and context APIs](https://developer.android.com/develop/sensors-and-location/location/migration.md.txt): This document guides developers on migrating Android applications from the deprecated framework location APIs to the more robust and efficient location and context APIs provided by Google Play services.
- [Environment sensors](https://developer.android.com/develop/sensors-and-location/sensors/sensors_environment.md.txt): Provide more relevant information to users based on their location and device sensors, after checking that users have granted the necessary permissions.
- [Quick guide to Animations in Compose](https://developer.android.com/develop/ui/compose/animation/quick-guide.md.txt): This quick guide provides an overview of common animation use cases in Jetpack Compose, including animating composable properties, switching content, navigating, repeating animations, and optimizing performance.
- [Customize shared element transition](https://developer.android.com/develop/ui/compose/animation/shared-elements/customize.md.txt): This document details how to customize shared element transitions in Jetpack Compose, covering animation specs, resize modes, dynamic enabling/disabling, overlay behavior, and handling size changes for shared elements.
- [Build adaptive apps](https://developer.android.com/develop/ui/compose/build-adaptive-apps.md.txt): Prepare your app UI to adapt to various screen sizes and configurations by designing and implementing adaptive layouts in Jetpack Compose, using window size classes and canonical layouts.
- [App bars](https://developer.android.com/develop/ui/compose/components/app-bars.md.txt): This document explains how to implement top and bottom app bars using Jetpack Compose, detailing their types, core parameters, and various scroll behaviors to create consistent user interfaces aligned with Material Design.
- [Navigate from top app bar](https://developer.android.com/develop/ui/compose/components/app-bars-navigate.md.txt): This guide demonstrates how to make the navigation icon in a top app bar perform navigation actions, specifically using it to navigate back to the previous destination.
- [Bottom sheets](https://developer.android.com/develop/ui/compose/components/bottom-sheets.md.txt): Learn how to implement and control bottom sheets in your Jetpack Compose app using the ModalBottomSheet composable and SheetState.
- [Checkbox](https://developer.android.com/develop/ui/compose/components/checkbox.md.txt): This document explains how to use checkboxes in Android&#39;s Jetpack Compose, detailing their purpose, anatomy, states, and implementation.
- [Progress indicators](https://developer.android.com/develop/ui/compose/components/progress.md.txt): This document explains how to use progress indicators in Android Compose UI, covering both determinate and indeterminate types, and their linear and circular forms.
- (https://developer.android.com/develop/ui/compose/components/scaffold.md.txt): Learn how to use the Scaffold composable in Jetpack Compose to quickly assemble complex UI structures according to Material Design guidelines.
- [Segmented button](https://developer.android.com/develop/ui/compose/components/segmented-button.md.txt): Learn how to implement single-select and multi-select segmented buttons in your Jetpack Compose Android applications, enabling users to choose from a set of options.
- [Material Design 2 in Compose](https://developer.android.com/develop/ui/compose/designsystems/material.md.txt): This document explains how to implement Material Design principles in Jetpack Compose, focusing on customizing color, typography, and shape attributes using MaterialTheme, and covering aspects like dark theme, component states, and ripples.
- [Pin Glance widgets in-app](https://developer.android.com/develop/ui/compose/glance/pin-in-app.md.txt): This document explains how to enable users to pin Glance widgets to their home screen directly from within an Android app, detailing the process for creating a pin request and handling the system&#39;s response.
- [Compose layout basics](https://developer.android.com/develop/ui/compose/layouts/basics.md.txt): This document introduces the fundamental concepts and components for arranging UI elements in Jetpack Compose, emphasizing its performance benefits and flexibility in creating custom layouts.
- [Visibility tracking in Compose](https://developer.android.com/develop/ui/compose/layouts/visibility-modifiers.md.txt): This document explains how to track UI element visibility in Jetpack Compose using `onVisibilityChanged` and `onLayoutRectChanged` modifiers for analytics, UI state management, and resource optimization.
- (https://developer.android.com/develop/ui/compose/quick-guides.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Compose basics](https://developer.android.com/develop/ui/compose/quick-guides/collections/compose-basics.md.txt): This series of videos introduces various Compose APIs, quickly showing you what's available and how to use them.
- [Filter a list while typing](https://developer.android.com/develop/ui/compose/quick-guides/content/filter-list-while-typing.md.txt): You can filter through a list of strings based on text input to dynamically update a list based on user search queries.
- [Accessibility in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/accessibility-in-compose.md.txt): Add accessibility features to your app. See how to increase your app&#39;s reach and versatility with a small amount of work.
- [Draw text in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/draw-text-compose.md.txt): See how to use Compose APIs specifically designed to draw text on a canvas. This segment shows the code to draw an emoji font in a rounded rectangle.
- [Intro to drawing in Compose](https://developer.android.com/develop/ui/compose/quick-guides/content/video/drawing-in-compose.md.txt): After you&#39;re comfortable working in Compose, you might want to start drawing your own custom components. This video covers how to get started with custom drawing.
- [Quick start](https://developer.android.com/develop/ui/compose/setup.md.txt): This document provides instructions on how to set up Jetpack Compose for Android development, covering steps to create new Compose-enabled projects, integrate Compose into existing apps, and import sample projects.
- [Add remote actions to PiP](https://developer.android.com/develop/ui/compose/system/pip-remote-actions.md.txt): Learn how to add interactive controls, such as play and pause buttons, to a Picture-in-Picture (PiP) window using RemoteAction and a BroadcastReceiver in an Android Compose application.
- [Access progress manually](https://developer.android.com/develop/ui/compose/system/predictive-back-progress.md.txt): Learn how to intercept and react to the user&#39;s back gesture in real-time using the PredictiveBackHandler composable in Jetpack Compose, enabling custom animations and behaviors based on gesture progress.
- [Focus in Compose](https://developer.android.com/develop/ui/compose/touch-input/focus.md.txt): This document explains how focus works in Jetpack Compose, covering default traversal order for various input methods like keyboards and D-pads, and how to manage focus in different UI layouts.
- [Migrate from Swipeable to AnchoredDraggable](https://developer.android.com/develop/ui/compose/touch-input/pointer-input/migrate-swipeable.md.txt): This guide details how to migrate Android Compose UI components from the deprecated Material `Swipeable` API to the newer Foundation `AnchoredDraggable` API, covering changes to state holders, modifiers, and API surfaces.
- [Migrate to Indication and Ripple APIs](https://developer.android.com/develop/ui/compose/touch-input/user-interactions/migrate-indication-ripple.md.txt): This guide explains how to migrate deprecated Indication and ripple APIs in Jetpack Compose to new, more performant APIs, including `ripple()` and `IndicationNodeFactory`, and how to adapt custom ripple implementations.
- [Move views using a fling animation](https://developer.android.com/develop/ui/views/animations/fling-animation.md.txt): Fling-based animation continues a UI object's initial momentum and gradually slows it down.
- [MotionLayout examples](https://developer.android.com/develop/ui/views/animations/motionlayout/examples.md.txt): This document provides various examples of using MotionLayout for Android UI animations, showcasing different types of motion, custom attributes, and integration with other UI components.
- [Widget discoverability](https://developer.android.com/develop/ui/views/appwidgets/discoverability.md.txt): This document explains how to allow users to pin app widgets directly from your application to their home screen on Android 8.0 and higher devices, including code examples and related design guidance.
- [Add the app bar](https://developer.android.com/develop/ui/views/components/appbar.md.txt): Develop your UI on Android.
- [Preference components and attributes](https://developer.android.com/develop/ui/views/components/settings/components-and-attributes.md.txt): This document describes the most commonly-used Preference components and their attributes for building Android settings screens.
- [Respond to touch events](https://developer.android.com/develop/ui/views/graphics/opengl/touch.md.txt): Develop your UI on Android.
- [Manage shortcuts](https://developer.android.com/develop/ui/views/launch/shortcuts/managing-shortcuts.md.txt): This document describes common ways to manage app shortcuts, covering their behavior, how to update, disable, track usage, and handle backup and restore scenarios.
- [Create a linear layout](https://developer.android.com/develop/ui/views/layout/linear.md.txt): LinearLayout is a view group that aligns all children in a single direction, vertically or horizontally. You can specify the layout direction with the LinearLayout are stacked one after the other, so a vertical list will only have one child per row, no…
- [Customize a dynamic list](https://developer.android.com/develop/ui/views/layout/recyclerview-custom.md.txt): Advanced customization options for RecyclerView.
- [Control and animate the software keyboard](https://developer.android.com/develop/ui/views/layout/sw-keyboard.md.txt): This document details how to manage and animate the software keyboard (IME) in Android views, leveraging WindowInsetsCompat to check visibility and WindowInsetsAnimationCompat for synchronized transitions.
- [Simplify your WebView implementation with Jetpack Webkit](https://developer.android.com/develop/ui/views/layout/webapps/jetpack-webkit-overview.md.txt): This document describes the benefits of the Jetpack Webkit library, how it works, and how to implement it to manage WebViews and overcome feature inconsistencies across Android OS versions.
- [Executing JavaScript and WebAssembly](https://developer.android.com/develop/ui/views/layout/webapps/jsengine.md.txt): This document describes how to use the Jetpack JavaScriptEngine library for non-interactive JavaScript evaluation in Android applications, detailing its benefits, basic usage, and advanced features like Wasm execution and crash handling.
- [Create an expandable notification](https://developer.android.com/develop/ui/views/notifications/expanded.md.txt): This document describes how to create large, expandable notifications in Android by applying various notification templates to display more information than basic notifications.
- [Create live update notifications](https://developer.android.com/develop/ui/views/notifications/live-update.md.txt): Create Live Update notifications on Android. Understand the requirements, usage criteria, and UX best practices.
- [Handle multi-touch gestures](https://developer.android.com/develop/ui/views/touch-and-input/gestures/multi.md.txt): Develop your UI on Android.
- [Animate a scroll gesture](https://developer.android.com/develop/ui/views/touch-and-input/gestures/scroll.md.txt): This document explains how to implement custom scrolling and overscroll effects in Android views, particularly focusing on using scrollers like OverScroller in response to touch gestures like flinging, and detailing the stretch overscroll effect introduced in Android 12.
- [Specify the input method type](https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/style.md.txt): Develop your UI on Android.
- [Geometry APIs](https://developer.android.com/develop/ui/views/touch-and-input/stylus-input/ink-api-geometry-apis.md.txt): Learn how to use the Ink API&#39;s Geometry APIs to create interactive tools like erasers, with a practical example demonstrating a whole stroke eraser implementation.
- [Respond to a refresh request](https://developer.android.com/develop/ui/views/touch-and-input/swipe/respond-refresh-request.md.txt): Develop your UI on Android.
- [XR_ANDROID_passthrough_camera_state OpenXR extension](https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_passthrough_camera_state.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [ARTrackedImageExtensions Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/ARTrackedImageExtensions.md.txt): Android XR (Extended Reality) device development hub
- [AndroidXRMouse Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRMouseInteractionProfile/AndroidXRMouse.md.txt): Android XR (Extended Reality) for Unity development hub
- [App orientation, aspect ratio, and resizability](https://developer.android.com/develop/ui/compose/layouts/adaptive/app-orientation-aspect-ratio-resizability.md.txt): This document explains how Android 16 (API level 36) enhances app adaptability across various device form factors by overriding restrictions on screen orientation, aspect ratio, and resizability, especially for larger screens.
- [Use notification bubbles for conversations](https://developer.android.com/develop/ui/compose/notifications/bubbles.md.txt): Bubbles are a feature built into the Android notification system that allow users to view and interact with app content, especially conversations, as floating, expandable overlays.
- [Create a notification](https://developer.android.com/develop/ui/compose/notifications/create-notification.md.txt): This document provides a comprehensive guide on how to build and manage various types of notifications in Android applications, covering basic notifications, action buttons, direct replies, urgent messages, and messaging styles.
- [Get started with adaptive apps](https://developer.android.com/develop/ui/compose/layouts/adaptive/get-started-with-adaptive-apps.md.txt): This document guides developers on designing and implementing adaptive UIs for Android applications to accommodate a wide variety of device screen sizes and configurations, leveraging Jetpack Compose.
- [Get started with adaptive apps](https://developer.android.com/develop/adaptive-apps/guides/get-started-with-adaptive-apps.md.txt): This document explains what adaptive Android apps are, why they are important for diverse devices and user experiences, and how to build and test them using modern Android development tools like Jetpack Compose and its Material 3 Adaptive library.
- [Build UI for display glasses with Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer.md.txt): Review the tasks required to build UI for display glasses with Jetpack Compose Glimmer.
- [Enable users to configure app widgets](https://developer.android.com/develop/ui/compose/glance/configuration.md.txt): Configure your widget using Glance.
- [Develop spatial UI with Jetpack Compose for XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/ui-compose.md.txt): This document guides developers on building spatial user interfaces for Extended Reality (XR) devices using Jetpack Compose, covering key concepts, components, and code examples for creating immersive 3D experiences.
- [List state management](https://developer.android.com/develop/adaptive-apps/cookbook/recyclerview-state.md.txt): Android adaptive app recipe for maintaining list scroll position and element state during configuration changes in Jetpack Compose.
- [App orientation restricted on phones but not on large screens](https://developer.android.com/develop/adaptive-apps/cookbook/orientation-restriction.md.txt): Android adaptive app recipe for temporarily restricting app orientation on phones while enabling landscape orientation on large screen devices.
- [Stylus palm rejection](https://developer.android.com/develop/adaptive-apps/cookbook/stylus-palm-rejection.md.txt): Android adaptive app recipe for identifying and rejecting extraneous touch events from palm touches when using a stylus.
- [App orientation, aspect ratio, and resizability](https://developer.android.com/develop/adaptive-apps/guides/app-orientation-aspect-ratio-resizability.md.txt): This document explains how Android 16 (API level 36) enhances app adaptability across various device form factors by overriding restrictions on screen orientation, aspect ratio, and resizability, especially for larger screens.
- [Make your app fold aware](https://developer.android.com/develop/adaptive-apps/guides/foldables/make-your-app-fold-aware.md.txt): Learn how to make Compose apps aware of foldable device states and features using Compose Material 3 Adaptive APIs, enabling adaptive layouts for postures like tabletop and book.
- [Canonical layouts](https://developer.android.com/develop/adaptive-apps/guides/canonical-layouts.md.txt): This document describes canonical layouts, which are proven, versatile layouts for Android UIs, including list-detail, feed, and supporting pane layouts, and their implementation using Jetpack Compose for various screen sizes.
- [Custom layouts](https://developer.android.com/develop/adaptive-apps/guides/custom.md.txt): Learn how to create custom layouts in Jetpack Compose, including using the layout modifier and the Layout composable to manually measure and place child elements.
- [Build a supporting pane layout](https://developer.android.com/develop/adaptive-apps/guides/build-a-supporting-pane-layout.md.txt): This document explains how to implement a supporting pane layout in Jetpack Compose using NavigableSupportingPaneScaffold, covering its adaptive behavior, required dependencies, navigation, and predictive back handling.
- [Grid](https://developer.android.com/develop/adaptive-apps/guides/grid.md.txt): Implement adaptive two-dimensional layouts using the Jetpack Compose Grid API.
- [Set container behavior](https://developer.android.com/develop/adaptive-apps/guides/flexbox/container-behavior.md.txt): This document covers setting layout direction, item alignment along main and cross axes, wrapping behavior, and managing spacing with gaps with FlexBox.
- [Query information for adaptive layouts with mediaQuery](https://developer.android.com/develop/adaptive-apps/guides/mediaquery.md.txt): Use the mediaQuery API to adapt your app UI based on the application&#39;s environment, including window size, posture, and hardware capabilities.
- [Get started with FlexBox](https://developer.android.com/develop/adaptive-apps/guides/flexbox/get-started.md.txt): This document describes how to get started with FlexBox, including project setup and basic implementation examples that include centered elements and multi-row wrapping with unequal item growth.
- [Set item properties](https://developer.android.com/develop/adaptive-apps/guides/grid/item-properties.md.txt): Set position, spanning, and alignment of Grid items with gridItem.
- [Support different display sizes](https://developer.android.com/develop/adaptive-apps/guides/support-different-display-sizes.md.txt): This document explains how to design responsive and adaptive layouts in Jetpack Compose to support a wide variety of display sizes and form factors, emphasizing the use of window metrics and size classes over physical screen dimensions.
- [Build a list-detail layout](https://developer.android.com/develop/adaptive-apps/guides/list-detail.md.txt): This document explains the list-detail UI pattern and provides a guide on how to implement it in Jetpack Compose using `NavigableListDetailPaneScaffold`, including adaptive layouts and navigation behaviors.
- [Use window size classes](https://developer.android.com/develop/adaptive-apps/guides/use-window-size-classes.md.txt): Window size classes are opinionated viewport breakpoints that help design, develop, and test responsive and adaptive layouts by categorizing available display area into width and height classifications like compact, medium, and expanded.
- [Support connected displays](https://developer.android.com/develop/adaptive-apps/guides/support-connected-displays.md.txt): This document explains how to adapt Android apps to support connected displays, which extend the desktop windowing experience from phones and tablets to external monitors, enhancing user productivity.
- [Get started](https://developer.android.com/develop/adaptive-apps/guides/grid/get-started.md.txt): Describes how to get started with Grid, including project setup and basic implementation example.
- [Set container properties](https://developer.android.com/develop/adaptive-apps/guides/grid/container-properties.md.txt): Describes how to set container properties with Grid.
- [Detachable keyboard management](https://developer.android.com/develop/adaptive-apps/cookbook/detachable-keyboard.md.txt): Android adaptive app recipe for responding to external keyboards being attached or detached without recreating the running activity.
- [Set item behavior](https://developer.android.com/develop/adaptive-apps/guides/flexbox/item-behavior.md.txt): This document outlines how to use the Modifier.flex API in Jetpack Compose to control individual item behavior within a FlexBox, as well as covering sizing properties and cross-axis alignment overrides with alignSelf and custom layout ordering.
- [FlexBox](https://developer.android.com/develop/adaptive-apps/guides/flexbox.md.txt): This document provides an introduction to FlexBox in Jetpack Compose, a flexible layout container inspired by CSS.
- [Chaining work](https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/chain-work.md.txt): This document explains how to chain dependent WorkManager tasks, including handling input mergers and understanding how work statuses (success, failure, cancellation) affect the entire chain.
- [Unified call history](https://developer.android.com/develop/connectivity/telecom/call-log-integration.md.txt): Integrate VoIP application call logs with the system dialer, handle callbacks, verify entries, and display VoIP call logs in dialer apps.
- [Semantics](https://developer.android.com/develop/ui/compose/accessibility/semantics.md.txt): This document explains semantics in Jetpack Compose, which provides additional context about composables for accessibility services, autofill, and testing. It covers semantic properties, how to adapt the semantics tree, and how to inspect it.
- [Animated vector images in Compose](https://developer.android.com/develop/ui/compose/animation/vectors.md.txt): This document outlines various methods for animating vector graphics in Jetpack Compose, covering `AnimatedVectorDrawable`, `ImageVector` with Compose animation APIs, and third-party solutions like Lottie.
- [Wi-Fi Direct (peer-to-peer or P2P) overview](https://developer.android.com/develop/connectivity/wifi/wifip2p.md.txt): This document describes how to use Android&#39;s Wi-Fi Direct (P2P) APIs to enable devices with appropriate hardware to connect directly, facilitating data sharing between applications without an intermediate access point.
- [Snackbar](https://developer.android.com/develop/ui/compose/components/snackbar.md.txt): This document describes the Snackbar component in Android Compose, a brief notification that appears at the bottom of the screen to provide feedback without interrupting the user.
- [Migrate XML themes to Material 3 in Compose](https://developer.android.com/develop/ui/compose/designsystems/migrate-xml-theme-to-compose.md.txt): This document explains how to migrate existing XML themes from View-based Android applications to Material 3 in Jetpack Compose.
- [Enhance your widget](https://developer.android.com/develop/ui/compose/glance/enhance.md.txt): Add enhancements to widgets such as name and description.
- [Mesh gradients](https://developer.android.com/develop/ui/compose/graphics/draw/mesh-gradient.md.txt): This document describes how to use Mesh gradients in Jetpack Compose to create complex, multi-directional color transitions.
- [Set container behavior](https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md.txt): This document covers setting layout direction, item alignment along main and cross axes, wrapping behavior, and managing spacing with gaps with FlexBox.
- [Get started with FlexBox](https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox/get-started.md.txt): This document describes how to get started with FlexBox, including project setup and basic implementation examples that include centered elements and multi-row wrapping with unequal item growth.
- [FlexBox](https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox.md.txt): This document provides an introduction to FlexBox in Jetpack Compose, a flexible layout container inspired by CSS.
- [Set item behavior](https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md.txt): This document outlines how to use the Modifier.flex API in Jetpack Compose to control individual item behavior within a FlexBox, as well as covering sizing properties and cross-axis alignment overrides with alignSelf and custom layout ordering.
- [Grid](https://developer.android.com/develop/ui/compose/layouts/adaptive/grid.md.txt): Implement adaptive two-dimensional layouts using the Jetpack Compose Grid API.
- [Get started](https://developer.android.com/develop/ui/compose/layouts/adaptive/grid/get-started.md.txt): Describes how to get started with Grid, including project setup and basic implementation example.
- [Make your app fold aware](https://developer.android.com/develop/ui/compose/layouts/adaptive/foldables/make-your-app-fold-aware.md.txt): Learn how to make Compose apps aware of foldable device states and features using Compose Material 3 Adaptive APIs, enabling adaptive layouts for postures like tabletop and book.
- [Set container properties](https://developer.android.com/develop/ui/compose/layouts/adaptive/grid/container-properties.md.txt): Describes how to set container properties with Grid.
- [Migrate RecyclerView to Lazy list](https://developer.android.com/develop/ui/compose/migrate/migration-scenarios/recycler-view.md.txt): This document provides a step-by-step guide on how to migrate an existing RecyclerView implementation in an Android app to use Compose&#39;s Lazy lists, covering layout managers, item composables, and common use cases like item decorations and animations.
- [Intrinsic measurements in Compose layouts](https://developer.android.com/develop/ui/compose/layouts/intrinsic-measurements.md.txt): This document explains how to use intrinsic measurements in Jetpack Compose to query child information before actual measurement, addressing common layout challenges like aligning elements correctly.
- [Query information for adaptive layouts with mediaQuery](https://developer.android.com/develop/ui/compose/layouts/adaptive/mediaquery.md.txt): The UiMediaQuery API provides a declarative, and performant way to adapt UI based on the application&#39;s environment.
- [Create and manage notification channels](https://developer.android.com/develop/ui/compose/notifications/channels.md.txt): This document explains how to implement notification channels, a feature introduced in Android 8.0 (API level 26), which requires all notifications to be assigned to a channel. It covers creating, configuring, and managing these channels, as well as channel groups, to allow users to control notification behavior.
- [About notifications](https://developer.android.com/develop/ui/compose/notifications.md.txt): Learn about Android notifications, including where they appear on a device, their structure, actions, importance, and how to manage them through channels and groups.
- [Create an expandable notification](https://developer.android.com/develop/ui/compose/notifications/expanded.md.txt): This document describes how to create large, expandable notifications in Android by applying various notification templates to display more information than basic notifications.
- [Create live update notifications](https://developer.android.com/develop/ui/compose/notifications/live-update.md.txt): This document outlines the requirements, characteristics, and appropriate usage criteria for Live Update notifications on Android, including details on their promotion, status chips, and dismissal behavior.
- [Create a progress-centric notification](https://developer.android.com/develop/ui/compose/notifications/progress-centric.md.txt): Use the Notification.ProgressStyle template in Android 16 to track user-initiated journeys like rideshare and deliveries with upgraded visibility.
- [Set item properties](https://developer.android.com/develop/ui/compose/layouts/adaptive/grid/item-properties.md.txt): Set position, spanning, and alignment of Grid items with gridItem.
- [Wrap a WebView in Compose](https://developer.android.com/develop/ui/compose/migrate/interoperability-apis/wrap-webview-in-compose.md.txt): Wrap a WebView in Jetpack Compose with the AndroidView API. Handle state, navigation, insets, themes, and permissions.
- [Create a slider for a range of values](https://developer.android.com/develop/ui/compose/quick-guides/content/create-range-slider.md.txt): A range slider lets users make selections from a range of values.
- [Notification runtime permission](https://developer.android.com/develop/ui/compose/notifications/notification-permission.md.txt): This document explains the `POST_NOTIFICATIONS` runtime permission introduced in Android 13 (API level 33), detailing how apps should request it, the impact of user choices, and best practices for implementation.
- [Jetpack Compose phases](https://developer.android.com/develop/ui/compose/phases.md.txt): This document details the three core phases of UI rendering in Jetpack Compose: Composition, Layout, and Drawing, explaining how state reads interact with each phase to optimize performance.
- [Create a chip to represent complex entities](https://developer.android.com/develop/ui/compose/quick-guides/content/create-chip.md.txt): A chip component visually represents complex entities, often with an icon and a label.
- [Create a scaffold component to hold the UI together](https://developer.android.com/develop/ui/compose/quick-guides/content/create-scaffold.md.txt): A scaffold provides holds together different parts of the UI, such as app bars and floating action buttons, giving apps a coherent look and feel.
- [Provide Direct Share targets](https://developer.android.com/develop/ui/compose/sharing/direct-share-targets.md.txt): This document guides developers on implementing Direct Share targets in Android applications using the Sharing Shortcuts API, explaining how to publish, rank, and manage these shortcuts for an improved user sharing experience.
- [State and Jetpack Compose](https://developer.android.com/develop/ui/compose/state.md.txt): This document explains what state is in an Android app, how to manage it in Jetpack Compose using APIs like remember and mutableStateOf, how state hoisting improves composable reusability, and how to restore state across configuration changes with rememberSaveable. It also covers integrating various observable types for state management.
- [Compose state callbacks with RememberObserver and RetainObserver](https://developer.android.com/develop/ui/compose/state-callbacks.md.txt): You can use RememberObserver and RetainObserver to manage the lifecycle of complex objects in Jetpack Compose.
- [Current limitations](https://developer.android.com/develop/ui/compose/styles/limitations.md.txt): Current limitations of the Styles API in Jetpack Compose.
- [Theming with Styles](https://developer.android.com/develop/ui/compose/styles/theming.md.txt): How to use Styles in a Theming system.
- [Styles versus modifiers](https://developer.android.com/develop/ui/compose/styles/styles-vs-modifiers.md.txt): Comparison between Styles and Modifiers in Jetpack Compose.
- [Set up the Compose Compiler Gradle plugin](https://developer.android.com/develop/ui/compose/setup-compose-dependencies-and-compiler.md.txt): Provides instructions for setting up Jetpack Compose dependencies and compiler in an Android project, using the new Compose Compiler Gradle plugin (for Kotlin 2.0&#43;) and the standard `buildFeatures` approach. It covers dependency management with the Compose BOM, core and optional dependencies for activities, ViewModels, and testing. Use this to set up Compose to an Android Gradle project.
- [Receive simple data from other apps](https://developer.android.com/develop/ui/compose/sharing/receive.md.txt): Learn how to enable your Android app to receive data from other applications, focusing on configuring intent filters for various MIME types and handling incoming content.
- [State lifespans in Compose](https://developer.android.com/develop/ui/compose/state-lifespans.md.txt): This documentation explains the differences between the remember, retain, rememberSaveable, and rememberSerializable APIs in Jetpack Compose, providing a framework for choosing the correct state persistence method based on whether data needs to survive recomposition, configuration changes, or process death.
- [Send data to other apps](https://developer.android.com/develop/ui/compose/sharing/send.md.txt): When you construct an intent, you must specify the action you want the intent to &quot;trigger.&quot; Android defines several actions, including ACTION_SEND which, as you can probably guess, indicates that the intent is sending data from one activity …
- [Use insets in Views and Compose](https://developer.android.com/develop/ui/compose/system/insets-views-compose.md.txt): This document explains how to manage system insets when an Android app combines Compose and View code, including overriding defaults, ensuring backward compatible dispatching, and updating system bar icon colors.
- [Examples with Styles](https://developer.android.com/develop/ui/compose/styles/examples.md.txt): Explore practical Jetpack Compose Styles examples. Build dynamic buttons with hover, depth, and gradient glow effects.
- [Use the Jetpack Picture-in-Picture Library](https://developer.android.com/develop/ui/compose/system/pip-jetpack.md.txt): Jetpack library for picture-in-picture
- [Do&#39;s and don&#39;ts with Styles](https://developer.android.com/develop/ui/compose/styles/dos-donts.md.txt): Discover Jetpack Compose Styles best practices: dos and don&#39;ts for visuals, animations, and design systems.
- [State and animations in Styles](https://developer.android.com/develop/ui/compose/styles/state-animations.md.txt): Implement state-based styling and animations in Jetpack Compose. Use the Styles API, `StyleState`, and `Modifier.styleable` to manage UI changes for interaction states and define custom states.
- [Fundamentals of Styles](https://developer.android.com/develop/ui/compose/styles/fundamentals.md.txt): Fundamentals of using Styles in Jetpack Compose for consistent and performant UI customization.
- [Performance benefits with Styles](https://developer.android.com/develop/ui/compose/styles/performance.md.txt): Performance benefits of using Styles in Jetpack Compose.
- [Test the predictive back gesture animation](https://developer.android.com/develop/ui/compose/system/predictive-back-test.md.txt): This document provides instructions on how to test predictive back-to-home animations on Android 13, Android 14, and notes its default enablement on Android 15 and later.
- [App shortcuts overview](https://developer.android.com/develop/ui/compose/system/shortcuts.md.txt): Learn how to add shortcuts to specific actions within your app.
- [Create shortcuts](https://developer.android.com/develop/ui/compose/system/shortcuts/creating-shortcuts.md.txt): Create different types of shortcuts to allow users to access your app.
- [Add capabilities to shortcuts](https://developer.android.com/develop/ui/compose/system/shortcuts/adding-capabilities.md.txt): Capabilities in shortcuts.xml allow developers to declare actions users can take to launch an app and perform specific tasks.
- [Create shortcuts](https://developer.android.com/develop/ui/compose/system/shortcuts/best-practices.md.txt): Creating app shortcuts using these guidelines.
- [Manage shortcuts](https://developer.android.com/develop/ui/compose/system/shortcuts/managing-shortcuts.md.txt): This document describes common ways to manage app shortcuts, covering their behavior, how to update, disable, track usage, and handle backup and restore scenarios.
- [Animation Preview](https://developer.android.com/develop/ui/compose/tooling/animation-preview.md.txt): Android Studio&#39;s Animation Preview tool allows developers to inspect, debug, and coordinate animations in Jetpack Compose, offering features like scrubbing, slowing down, and visualizing animation curves.
- [Compose lint](https://developer.android.com/develop/ui/compose/tooling/lint.md.txt): This document discusses Compose&#39;s built-in lint checks, their minimum version requirements with Android Gradle Plugin (AGP), and how to ensure compatibility.
- [Stack traces in Compose](https://developer.android.com/develop/ui/compose/tooling/stacktraces.md.txt): This document explains how Jetpack Compose&#39;s multi-phase execution can lead to confusing crash stack traces and details an opt-in API to add richer crash location information for easier debugging, outlining different modes like Auto, GroupKeys, and SourceInformation.
- [Understand scroll phases](https://developer.android.com/develop/ui/compose/touch-input/scroll/scroll-phases.md.txt): Learn how Jetpack Compose processes scroll events through multiple phases, including overscroll, nested scrolling, and delta transformation, to coordinate movement across components.
- [Nested scrolling modifiers](https://developer.android.com/develop/ui/compose/touch-input/scroll/nested-scroll-modifiers.md.txt): Nested scrolling in Jetpack Compose allows multiple scrolling components within each other to coordinate their scroll gestures and share deltas, supporting both automatic behavior and advanced customization through modifiers and connections.
- [Scroll modifiers](https://developer.android.com/develop/ui/compose/touch-input/scroll/scroll-modifiers.md.txt): Implement Jetpack Compose scroll modifiers like verticalScroll, horizontalScroll, scrollableArea, and scrollable.
- [Add previews to your widget picker](https://developer.android.com/develop/ui/views/appwidgets/previews.md.txt): Learn how to implement generated, scalable, and backward-compatible widget previews for Android applications, so they accurately reflect how widgets appear on a user&#39;s home screen across different Android versions.
- [Two-dimensional scrolling: scrollable2D, draggable2D](https://developer.android.com/develop/ui/compose/touch-input/scroll/two-dimensional-scrolling.md.txt): Implement Jetpack Compose scroll modifiers like scrollable2D, draggable2D for two dimensional scrolling.
- [Use web content within your Android app](https://developer.android.com/develop/ui/views/layout/webapps.md.txt): This document explains how to embed web content into Android apps using WebView for inline content and Custom Tabs for in-app browsing, detailing their benefits and primary use cases.
- [Understand window insets in WebView](https://developer.android.com/develop/ui/views/layout/webapps/understand-window-insets.md.txt): This document explains how WebView handles window insets to align web content, manage system UI elements like keyboards and system bars, and prevent issues like double-padding in Android web applications.
- [Check device availability at runtime for audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/check-availability.md.txt): How to check the device availability of audio glasses and display glasses at runtime.
- [Icons in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/icons.md.txt): Use the Jetpack Compose Glimmer Icon component to render single-color icons in your app.
- [Icon buttons in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/icon-buttons.md.txt): Use the Jetpack Compose Glimmer IconButton component for compact, supplementary actions in your app.
- [Track a device&#39;s pose using ARCore for Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/device-pose.md.txt): How to track a device&#39;s pose in your app using ARCore for Jetpack XR.
- [Buttons in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/buttons.md.txt): Use the Jetpack Compose Glimmer Button component for primary or secondary actions in your app.
- [Text in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/text.md.txt): Use the Jetpack Compose Glimmer Text component to display text.
- [Use a projected context to access hardware on audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/access-hardware-projected-context.md.txt): Access hardware on audio glasses and display glasses using a projected context.
- [Shapes in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/shapes.md.txt): Use and customize shapes in Jetpack Compose Glimmer.
- [List items in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/list-items.md.txt): Use the Jetpack Compose Glimmer list item component to display a single row of content.
- [Lists in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/lists.md.txt): Use the Jetpack Compose Glimmer lazy column component to lay out items in a list with focus on a single item at a time.
- [Voice input indicator in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/voice-input-indicator.md.txt): Use the Jetpack Compose Glimmer Voice Input Indicator component to indicate when audio is being recorded.
- [Create your first activity for audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/first-activity.md.txt): Create your first dedicated activity for audio glasses and display glasses.
- [Title chips in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/title-chips.md.txt): Use the Jetpack Compose Glimmer Title Chip component to provide brief, non-interactive context for associated content.
- [Toggle buttons in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/toggle-buttons.md.txt): Use the Jetpack Compose Glimmer ToggleButton component for actions that can be switched on or off.
- [Surfaces in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/surfaces.md.txt): Use the Jetpack Compose Glimmer Surface component to supplement your layouts built on components.
- [Vertical stacks in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/vertical-stacks.md.txt): Use the Jetpack Compose Glimmer VerticalStack component to arrange items in a visually overlapping, three-dimensional sequence.
- [Develop spatial UI for Android Views-based apps](https://developer.android.com/develop/xr/jetpack-xr-sdk/ui-views.md.txt): This document outlines methods for integrating existing Android View-based applications with spatial UI development using the Jetpack XR SDK, providing approaches for teams not fully migrated to Jetpack Compose.
- [Wear OS app quality](https://developer.android.com/develop/adaptive-apps/quality-guidelines/wear-app-quality.md.txt): Requirements to help you assess the quality of your Wear OS app and follow the Principles of Wear OS development.
- [Media playback pause and resume with keyboard Spacebar](https://developer.android.com/develop/adaptive-apps/cookbook/media-playback-spacebar.md.txt): Android adaptive app recipe for handling physical keyboard input to pause and resume media playback with the Spacebar.
- [Support multi-window mode](https://developer.android.com/develop/adaptive-apps/guides/support-multi-window-mode.md.txt): This document provides comprehensive guidance on how to support and configure multi-window mode in Android applications, covering various multi-window types, API level-specific behaviors, activity lifecycle considerations, and testing procedures.
- [Build adaptive navigation](https://developer.android.com/develop/adaptive-apps/guides/build-adaptive-navigation.md.txt): This document explains how to use NavigationSuiteScaffold in Jetpack Compose to build adaptive navigation UIs that automatically switch between navigation bars and rails based on window size, and how to customize its appearance and behavior.
- [Modify traversal order](https://developer.android.com/develop/ui/compose/accessibility/traversal.md.txt): This document explains how to control accessibility traversal order in Jetpack Compose apps using `isTraversalGroup` to group elements and `traversalIndex` to customize the order of individual elements within those groups, especially for non-standard layouts like clock faces.
- [Create a call style notification for call apps](https://developer.android.com/develop/ui/compose/notifications/call-style.md.txt): Learn how to implement high-priority CallStyle notifications for incoming, ongoing, and screening calls on Android 12 (API 31) and later, and how to ensure compatibility with older Android versions.
- [Customize 3D models in your app](https://developer.android.com/develop/xr/jetpack-xr-sdk/customize-3d-models.md.txt): Learn how to enhance 3D models in Jetpack XR by defining custom material properties and applying custom textures, using classes like KhronosPbrMaterial and GltfModelNode.
- [Run ARCore for Jetpack XR apps on mobile devices](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/mobile.md.txt): This document describes how ARCore for Jetpack XR operates on mobile devices, outlining feature compatibility and providing guidance on accessing the underlying ARCore runtime for advanced functionalities.
- [Test your app with ARCore test rules](https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/testing.md.txt): Test ARCore experiences within the Jetpack XR SDK, allowing developers to verify their augmented reality apps are working correctly.
- [Automate virtual device management with projected test rules](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/test-device-state.md.txt): Create a projected test environment that you can use to handle virtual device management while testing for audio glasses and display glasses.
- [Check device capabilities at runtime for audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/check-capabilities.md.txt): Check the device capabilities of audio glasses and display glasses at runtime.
- [Unreal Engine project setup](https://developer.android.com/develop/xr/unreal/setup.md.txt): Set up an Unreal Engine project for Android XR development with the recommended engine versions, required SDKs, and Android project settings.
- [Request hardware permissions for audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/request-hardware-permissions.md.txt): How to request permissions that grant your app access to the hardware on audio glasses and display glasses.
- [Check if your mobile app is ready for Android XR](https://developer.android.com/develop/xr/check-mobile-app-readiness.md.txt): Check if your mobile app is ready for Android XR.
- [Explore augmented experiences for XR](https://developer.android.com/develop/xr/explore/augmented.md.txt): Android XR (Extended Reality) device development hub
- [Explore immersive experiences for XR](https://developer.android.com/develop/xr/explore/immersive.md.txt): Android XR (Extended Reality) device development hub
- [Migrate XML Views to Jetpack Compose](https://developer.android.com/develop/ui/compose/migrate/migrate-xml-views-to-jetpack-compose.md.txt): Provides an overview for migrating Android XML Views to Jetpack Compose.
- [Styles in Compose](https://developer.android.com/develop/ui/compose/styles.md.txt): Customize Jetpack Compose UI with Styles. Boost performance, simplify state-based styling, and streamline component APIs.
- [XRImageTrackingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRImageTrackingFeature.md.txt): Android XR (Extended Reality) for Unity development hub
- (https://developer.android.com/develop/xr/openxr/extensions/XR_ANDROID_spatial_annotation_tracking.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Adaptive icons](https://developer.android.com/develop/ui/compose/system/icon_design_adaptive.md.txt): Adaptive icons in Android dynamically adapt to device capabilities, user theming, and support engaging visual effects. Learn their design requirements and implementation in applications.
- [Set up the Jetpack XR SDK](https://developer.android.com/develop/xr/jetpack-xr-sdk/set-up-sdk.md.txt): This guide provides instructions on how to set up the Jetpack XR SDK for Android development, covering Android SDK compatibility and adding necessary library dependencies for various XR device types and experiences.
- [Run your app&#39;s immersive experiences on the emulator](https://developer.android.com/develop/xr/jetpack-xr-sdk/run/emulator/xr-headsets-glasses.md.txt): How to run your app&#39;s immersive experiences on the Android XR emulator and use emulator controls.
- [Grid table layout](https://developer.android.com/develop/adaptive-apps/cookbook/grid-table-layout.md.txt): Build multi-column comparison tables in Jetpack Compose using the Grid API.
- [Manage WebView state efficiently](https://developer.android.com/develop/ui/views/layout/webapps/manage-state.md.txt): Learn how to manage Android WebView state efficiently to preserve navigation history and session integrity.
- [Handle WebView termination](https://developer.android.com/develop/ui/views/layout/webapps/handle-termination.md.txt): Handle WebView renderer process terminations in Android apps by overriding onRenderProcessGone to prevent foreground terminations and recover web content.
- [Optimize WebView startup](https://developer.android.com/develop/ui/views/layout/webapps/optimize-webview-startup.md.txt): Learn how to use the startUpWebView API to optimize WebView initialization, reduce main-thread blocking, and prevent ANRs in your Android app.
- [Car app quality](https://developer.android.com/develop/adaptive-apps/quality-guidelines/car-app-quality.md.txt): This document provides comprehensive checklists and tests for designing and developing Android apps to ensure compatibility and a great user experience in cars, covering both Android Auto and Android Automotive OS.
- [What&#39;s included in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/whats-included.md.txt): Learn what&#39;s included in Jetpack Compose Glimmer, including composables, components, theming, and more.
- [XRMultimodalFaceFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMultimodalFaceFeature.md.txt): Android XR (Extended Reality) device development hub
- [Horizontal pagers in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/pager.md.txt): Use the Jetpack Compose Glimmer GlimmerHorizontalPager component to display content in sequentially scrollable horizontal pages with automatic snapping and visual indicators.
- [Sharing data between apps](https://developer.android.com/develop/ui/compose/sharing.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [FAndroidXRFieldOfView Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRFieldOfView.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRTrackableTracker Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRTrackableTracker.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRDepthAcquireResult Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRDepthAcquireResult.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRDepthSwapchain Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRDepthSwapchain.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRPerformanceMetricsCounter Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRPerformanceMetricsCounter.md.txt): Android XR (Extended Reality) device development hub
- [Cards in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/cards.md.txt): Use the Jetpack Compose Glimmer Card component to group and display related information in a single unit.
- [Handle indirect pointer inputs in Jetpack Compose Glimmer](https://developer.android.com/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/indirect-pointer.md.txt): Receive and respond to high-level indirect pointer events, such as those from a device touchpad.
- [FAndroidXRFaceState Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRFaceState.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRSceneSubmeshState Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRSceneSubmeshState.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRTrackable Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRTrackable.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRSceneMeshSnapshot Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRSceneMeshSnapshot.md.txt): Android XR (Extended Reality) device development hub
- [AndroidXR Namespace](https://developer.android.com/develop/xr/unreal/reference/namespace/AndroidXR.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRDepthSwapchainImage Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRDepthSwapchainImage.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRDepthView Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRDepthView.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRSceneSubmeshData Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRSceneSubmeshData.md.txt): Android XR (Extended Reality) device development hub
- [FAndroidXRTrackablePlane Struct Reference](https://developer.android.com/develop/xr/unreal/reference/struct/FAndroidXRTrackablePlane.md.txt): Android XR (Extended Reality) device development hub
- [Android XR Unreal Reference](https://developer.android.com/develop/xr/unreal/reference.md.txt): Android XR (Extended Reality) device development hub
- [XRRecommendedSettingsFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRRecommendedSettingsFeature.md.txt): Android XR (Extended Reality) device development hub
- (https://developer.android.com/develop/xr/openxr/extensions/XR_EXT_spatial_plane_tracking.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Enhanced page navigation with WebViewCompat.navigate](https://developer.android.com/develop/ui/views/layout/webapps/navigate.md.txt): Learn how to navigate pages, manage HTTP headers with saveState and restoreState, and track navigation states using the WebViewCompat.navigate API in Jetpack Webkit.
- [XRStreamingFeature Class Reference](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRStreamingFeature.md.txt): Android XR (Extended Reality) device development hub
- [Wide classic card layout with Grid](https://developer.android.com/develop/adaptive-apps/cookbook/wide-classic-card-layout-with-grid.md.txt): Implement the Wide Classic Card component using the Grid API.
- [Core app quality guidelines](https://developer.android.com/develop/adaptive-apps/quality-guidelines/core-app-quality.md.txt): The core app quality guidelines and tests directly influence the long-term success of your app in terms of number of installs and user reviews, engagement, and retention.
- [Manage and diagnose WebView memory](https://developer.android.com/develop/ui/views/layout/webapps/manage-webview-memory.md.txt): Learn how WebView uses memory, manage its lifecycle to prevent leaks, and use diagnostic tools to debug memory usage.
- [UI element overlays with Grid](https://developer.android.com/develop/adaptive-apps/cookbook/grid-ui-overlay.md.txt): Manage UI element overlays and coordinate depth in Jetpack Compose two-dimensional Grid layouts.
- [Tabletop posture layout with Grid and mediaQuery](https://developer.android.com/develop/adaptive-apps/cookbook/tabletop-posture-media-query-grid.md.txt): Learn how to build an adaptive tabletop posture layout using Grid and mediaQuery in Jetpack Compose.
- [Run your app&#39;s augmented experiences on the emulator](https://developer.android.com/develop/xr/jetpack-xr-sdk/run/emulator/glasses.md.txt): Run your app&#39;s augmented experiences on the Android XR emulator and use emulator controls.
- [Storing and Searching for Data](https://developer.android.com/develop/ui/views/search/training/search.md.txt): Develop your UI on Android.
- [Understand subspace modifiers](https://developer.android.com/develop/xr/jetpack-xr-sdk/subspace-modifiers.md.txt): Learn how to use SubspaceModifier in Jetpack XR to manipulate composables in 3D space, controlling their position, rotation, size, and appearance.
- [Develop for the web on Android XR](https://developer.android.com/develop/xr/web.md.txt): This document guides developers on building WebXR experiences for Android XR devices, detailing supported features, framework choices, and adapting code for stereoscopic depth sensing, hand input, and managing permissions.
- [Increase app availability across device types](https://developer.android.com/develop/ui/compose/layouts/adaptive/increase-app-availability.md.txt): Learn how to maximize your app&#39;s availability across device types by making hardware and software features optional and tracking feature requirements with automated CI badging.
- [Increase app availability across device types](https://developer.android.com/develop/adaptive-apps/guides/increase-app-availability.md.txt): Learn how to maximize your app&#39;s availability across device types by making hardware and software features optional and tracking feature requirements with automated CI badging.
- [Handle input from audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/input.md.txt): How to handle the different types of user input from audio glasses and display glasses.
- [Handle physical input from audio and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/physical-input.md.txt): Handle physical input from audio and display glasses.
- [Access native APIs with JavaScript bridge](https://developer.android.com/develop/ui/views/layout/webapps/native-api-access-jsbridge.md.txt): Develop your UI on Android.
- [Support trifolds and landscape foldables](https://developer.android.com/develop/ui/compose/layouts/adaptive/foldables/trifolds-and-landscape-foldables.md.txt): This document addresses the unique challenges and solutions for developing Android applications on trifold and landscape foldable devices, covering adaptive layouts, camera preview handling, configuration changes, and sensor remapping to ensure a high-quality user experience.
- [Support trifolds and landscape foldables](https://developer.android.com/develop/adaptive-apps/guides/foldables/trifolds-and-landscape-foldables.md.txt): This document addresses the unique challenges and solutions for developing Android applications on trifold and landscape foldable devices, covering adaptive layouts, camera preview handling, configuration changes, and sensor remapping to ensure a high-quality user experience.
- [Learn about foldables](https://developer.android.com/develop/adaptive-apps/guides/foldables/learn-about-foldables.md.txt): This document explores key considerations for developing apps for foldable devices, including responsive and adaptive design principles, handling foldable states and postures, ensuring app continuity, supporting multitasking, and implementing drag and drop features.
- [Compose test v2 APIs](https://developer.android.com/develop/ui/compose/testing/migrate-v2.md.txt): Explains how to migrate from v1 Compose testing APIs to v2 Compose testing APIs.
- [Modifier breakdown by phase](https://developer.android.com/develop/ui/compose/performance/modifier-phases.md.txt): Jetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
- [Backwards Write](https://developer.android.com/develop/ui/compose/performance/backwards-write.md.txt): Covering the concept of backwards writes in Jetpack Compose, what a consequence of backwards writes are, and how to avoid them.
- [Android XR Catalyst](https://developer.android.com/develop/xr/catalyst.md.txt): Android XR (Extended Reality) device development hub
- [Build adaptive apps for TV](https://developer.android.com/develop/adaptive-apps/guides/tv/build-adaptive-apps-for-tv.md.txt): This document describes how to build adaptive apps for Android TV.
- [Understand notification behavior for audio glasses and display glasses](https://developer.android.com/develop/xr/jetpack-xr-sdk/glasses/notifications/behavior.md.txt): Understand how Android notifications are adapted for audio glasses and display glasses, including supported styles, bridging criteria, Live Update notifications, and available notification actions.
- (https://developer.android.com/develop/xr/openxr/extensions/XR_EXT_spatial_marker_tracking.md.txt): Android XR (Extended Reality) for OpenXR development hub
- [Speculative loading in WebView](https://developer.android.com/develop/ui/views/layout/webapps/speculative-loading.md.txt): Reduce navigation latency in Android WebView using speculative loading and connection optimization APIs.