Bring Your Video App to Cars

Ben Sagmoe
Android Developers
Published in
8 min readMar 15, 2023

Why Cars?

Video content stands out with large screens and immersive audio in cars with Google built-in. For many people, their best sound system is in their cars! Whether charging an EV or waiting for a pickup, cars with Google built-in are a great place to catch up on shows and movies.

It’s easy to bring your video app to cars with Google built-in. You can reuse the investments you’ve made in your Android mobile app and distribute through the Play Store to reach a broad set of vehicles. To meet driver distraction guidelines, video content can be played only while the vehicle is parked.

Plan & Design

Before you bring your app to cars, it’s best to understand what cars are like in relation to the rest of the Android ecosystem. In many ways, cars are similar to other large screen devices like tablets and foldables. They have touchscreens with similar sizes, resolutions, and aspect ratios and which may be in either portrait or landscape orientation (though, unlike tablets, their orientation is fixed). They are also connected devices which may come in and out of network connection.

The biggest difference is in viewing/interaction distance — car screens are generally further away from the user even when the screen size may be the same. The Video in Cars UX Guidelines deck details ways to account for this and improve your app’s user experience in cars. For example, the following are recommended minimum dimensions for use in cars:

  • Touch targets should be at least 64x64dp (vs. 48x48dp for other large screen devices)
  • Touch targets should have a distance of at least 24dp between them (vs. 8dp) and should also be at least 24dp from screen edges (since some vehicles have deep bezels that make it hard to touch near the edge).
  • Font sizes should be at least 24sp

With all that in mind, it’s not surprising that apps which are already optimized for large screens (primarily the LS-C1 and LS-U1 large screen quality guidelines) often require a minimal amount of work to bring a great user experience to cars.

Important: Your app doesn’t need to be fully optimized for large screens to be compatible with Android Automotive OS. As long as your app meets the Android for Cars video app quality guidelines, it can be distributed via the Play Store.

Gather device specifications

To find out the exact specifications of cars, you can use the Play Developer Console’s Device Catalog as follows:

First, open the Device catalog page from within the Reach and Devices subsection of the Release section of the navigation drawer.

Next, select All devices from the catalog mode dropdown (in the top left of the next screenshot).

Note: After you’ve implemented support for Android Automotive OS devices, you can use Supported devices to get an even more accurate view of the devices that support your application (since that setting will take into account all of the other requirements your app has beyond those specific to video in cars).

Next, add a filter using the Form factor option.

This list of devices represents the set of Android Automotive OS vehicles with Google built-in. Note that the same device may be used across multiple models (for example, the same head unit is used in the Volvo XC40 Recharge as in the Volvo XC60). To analyze the device specifications, you can use the “Export device list” feature, which will download a CSV with details such as the screen resolution, DPI, SoC, GPU, and ABI.

Tip: Video apps built for Android Automotive OS used to require a dependency on the android-automotive-video shared library that is only available on a subset of vehicles with Google built-in, but that dependency is now discouraged as it limits the addressable market of your app.

Implement

Follow the guide for building video apps, which includes steps to test with the generic Android Automotive with Play Store emulator available in Android Studio. As mentioned in the guide, make sure you’re meeting the quality guidelines for video apps.

Test

OEM Emulators

Beyond the generic Android Automotive with Play Store emulator available through Android Studio, you can also test with OEM emulators to see how your app looks on different devices. Note that not all of the production vehicles represented by the emulators below may support video apps currently — the set shown by the Device Catalog as described in the “Gather Device Specifications” section should be treated as the source of truth for which vehicles on the road today are supported.

Additionally, new vehicles with Google built-in are hitting the road every year. Consider reaching out to OEMs to find out about the latest vehicles and emulators you may be able to target.

If there is no emulator available for a configuration you’d like to test, you can also configure an emulator to have matching screen resolution and density using the following adb commands:

# Set the resolution
# e.g. adb shell wm size 1280x800
adb shell wm size <horiz_px>x<vert_px>
# Set the DPI
# e.g. adb shell wm density 160
adb shell wm density <dpi>

When finished testing, you can reset these values to the original using the following commands:

adb shell wm size reset
adb shell wm density reset

Simulating Driving

To test the DD-2 quality guideline (which requires playback to stop when the vehicle is in motion), you can simulate driving using the emulator’s extended controls.

A video application being blocked while the vehicle is in motion. The onPause lifecycle callback is called when this happens.

First, open the extended controls menu by clicking the icon with three dots in the toolbar.

By default, the speed is set to 0 mph and the gear is set to Park.

To simulate driving, all you need to do is set the speed to be non-zero and the gear to be anything other than Park.

To simulate stopping driving, all you need to do is reset the gear to Park (the speed is ignored when in Park).

Release

Publishing your app for Android Automotive OS requires a few additional steps on top of what’s required to release an app for phones and tablets.

Automotive OS Track Setup

To distribute your app to cars through Google Play, you’ll need to first set up the Android Automotive OS Release type.

To do this, navigate to the Advanced Settings page of the Release section of the navigation drawer on the Play Developer Console page for your app.

On that page, select the Form factors tab. Click the + Add form factor button and select Android Automotive OS from the dropdown. You will then see a checklist like the following.

Add screenshots

To add screenshots for your Automotive OS release, simply click the item that says “Upload Android Automotive OS screenshots” and follow the instructions on the page it takes you too. Note that screenshots should only be taken using the generic emulator image, not with an OEM image.

Screenshots must be added to all of your store’s listing — that is, both the main listing and any custom listings — for this step to be marked as complete.

Release a build

The next step is to add a build of your app to a testing track. Again, clicking the to-do item is the quickest way to get started. Note the release type dropdown in the upper right corner of the page. When submitting Automotive OS builds, always make sure the dropdown says “Automotive OS only”. These tracks are separate from the “Standard” option used for other form factors.

Accept the Terms of Service

Any developer account role with Admin permissions can accept these terms of service. The text of this document can be found here. Accepting these terms only needs to be done once per developer account.

Agree to the review policy

This step cannot be started until the previous three are completed and involves agreeing to the additional testing criteria to which Android Automotive OS apps are subject.

Additional setup

If your app requires an account to access certain features, ensure you’ve uploaded testing credentials to the Play Console as described in the App Access section of the Play Console’s Prepare your app for review guide. If credentials are required (e.g. no content can be played without an account) and not made available, the app will be rejected during the review process.

Submit your app for review

After submitting a release, your app will be reviewed manually to ensure adherence to the quality guidelines.

If your app gets rejected, make sure to increment the version for the new build and deactivate the rejected version when making the next submission — if a previously rejected app version is included in a submission, the result of that version’s review will automatically be applied again (i.e. a rejected version will automatically be rejected again). Additionally, please be aware that, while rejections for Closed Testing artifacts will not cause your entire Play Console submission to be rejected, the same is not true for Open Testing or Production artifacts.

Reference

For more details on releasing your app, please see the guide on distributing Android apps for cars.

--

--

Ben Sagmoe
Android Developers

Android Developer Relations Engineer @Google. Working on Android for Cars (Android Auto and Android Automotive OS)