Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Overview
Stay organized with collections
Save and categorize content based on your preferences.
An AppCard is a grouping of UI elements with styling controlled by the OEM,
and populated with information provided by apps. AppCards display an app's most
relevant data and functionality to users in a way that is accessible and always
available.

Figure 1. AppCard components.
Third-party developers can use AppCards to:
- Display the status of a takeout food order to a driver while en route.
- Show photos to passengers in vehicles to form a pleasant ambiance.
- Track and periodically update the price of crypto coins for investors.
Examples include:

Figure 2. AppCard examples.
AppCard
Source: AppCard.kt
An AppCard is an object that holds data. We support an ImageAppCard
, that has
two states. When defining any type of AppCard, each component must have a
unique ID.
Figure 3. Image with text.
|
Figure 4. Progress bar and buttons with text.
|
AppCard ContentProvider
Source: AppCardContentProvider.kt
A content provider that exists in an app, creates AppCards, and is instantiated
and communicates with AppCardHost
. To learn more, see
AppCardContentProviderExtension.
AppCard Host
Source: AppCardHost.kt
A system app that connects to AppCardContentProvider
(s) to display and manage
App Cards. To learn more, see Configure an AppCard host.
AppCard Context
Source: AppCardContext.kt
An object that provides hints to an AppCardContentProvider
about how an
AppCardHost
might display an AppCard. AppCardContext
contains this
information:
This information allows AppCard developers to optimize the information sent to
hosts.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-12 UTC."],[],[],null,["# Overview\n\nAn *AppCard* is a grouping of UI elements with styling controlled by the OEM,\nand populated with information provided by apps. AppCards display an app's most\nrelevant data and functionality to users in a way that is accessible and always\navailable.\n\n**Figure 1.** AppCard components.\n\nThird-party developers can use AppCards to:\n\n- Display the status of a takeout food order to a driver while en route.\n- Show photos to passengers in vehicles to form a pleasant ambiance.\n- Track and periodically update the price of crypto coins for investors.\n\nExamples include:\n\n**Figure 2.** AppCard examples.\n\nAppCard\n-------\n\n**Source:** [`AppCard.kt`](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/app-card/src/main/java/com/android/car/appcard/AppCard.kt)\n\nAn AppCard is an object that holds data. We support an `ImageAppCard`, that has\ntwo states. When defining any type of AppCard, each component must have a\nunique ID.\n\n|--------------------------------|---------------------------------------------------|\n| **Figure 3.** Image with text. | **Figure 4.** Progress bar and buttons with text. |\n\nAppCard ContentProvider\n-----------------------\n\n**Source:** [`AppCardContentProvider.kt`](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/app-card/src/main/java/com/android/car/appcard/AppCardContentProvider.kt)\n\nA content provider that exists in an app, creates AppCards, and is instantiated\nand communicates with `AppCardHost`. To learn more, see\n[AppCardContentProviderExtension](/docs/automotive/unbundled_apps/appcards/appcard#override).\n\nAppCard Host\n------------\n\n**Source:** [`AppCardHost.kt`](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-host-lib/app-card-host/src/main/java/com/android/car/appcard/host/AppCardHost.kt)\n\nA system app that connects to `AppCardContentProvider`(s) to display and manage\nApp Cards. To learn more, see [Configure an AppCard host](/docs/automotive/unbundled_apps/appcards/host).\n\nAppCard Context\n---------------\n\n**Source:** [`AppCardContext.kt`](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/app-card/src/main/java/com/android/car/appcard/AppCardContext.kt)\n\nAn object that provides hints to an `AppCardContentProvider` about how an\n`AppCardHost` might display an AppCard. `AppCardContext` contains this\ninformation:\n\n- API level\n- Refresh period for:\n\n - Complete AppCard updates\n - AppCard components tagged with `EnforceFastUpdateRate`\n- Is the host to support interactions with AppCard?\n\n- Maximum image size:\n\n - Center image\n - Button image\n - Header image\n- Minimum number of buttons expected to be displayed.\n\nThis information allows AppCard developers to optimize the information sent to\nhosts."]]