Section 2

Technical requirements and characteristics

From a hardware and software perspective, an Automotive Android device, in the Appning environment is like a traditional phone/tablet without Google Mobile services. Below you can better understand our technical requirements and the main characteristics.

Google Mobile Services

Our Apps Market distributes apps for automotive environments based on the Android Open-Source Project (AOSP). AOSP solutions don’t come with the licensed Google Mobile Services (GMS), so it is required that your app does not have any hard dependency from GMS.

A hard dependency is one that compromises the application functionality and usability, for example, an application that requires Google Billing for the user to be able to pay in the app.

You might have soft dependencies that won’t affect the app performance for the users (e.g., internal analytics). For Appning, those apps are functional and as such will be allowed to be distributed in the car.

Some of the most common dependencies are associated with login/signing, billing, and location, resulting in app crashes, sign in button not working, warning messages informing lack of GMS, app crashes when playing.

Screen resolution and orientation

Automotive displays vary in aspect ratio and orientation not only among OEMs, but also across different car models within the same OEM. Therefore, it is essential to consider the following if your app does not rely on existing automotive templates, or if it uses a template but includes custom screens such as Settings or Sign-in:

  • Ensure that your app supports both Portrait and Landscape mode to provide a consistent user experience across devices and orientations.

  • Make sure that your app scales correctly to different screen sizes and densities, to prevent visual distortions and ensure readability.

  • Thoroughly test your app against different hardware profiles provided in “Testing the apps in an automotive environment” or a representative subset of the provided profiles.

By adhering to these guidelines, you can ensure that your app is fully functional, compatible, and optimized for different automotive displays, providing drivers and passengers with a seamless and satisfying experience.

Digital rights management

There are apps, such as Music Streaming and Video on Demand apps, that require an additional encryption layer to play on a device. Digital rights management allows apps to secure their digital content preventing unauthorized use and piracy.

In all devices in which it will be pre-loaded our apps market solution, hardware will be compliant with music rights. For video, it will be a case by case.

Geo restrictions

App publishers might want to distribute their apps in specific countries, be it because they have legal constraints, or the app is not designed for those regions. On the developer portal, developers can define countries availability. By default, all countries are selected.

Distracting content

For IVI app distribution, driver distraction is the main concern of both app publishers and OEMs. Some of the apps might have content that can distract the driver. We consider distracting apps those that by its nature (e.g., video apps), or because they have a distracting feature (e.g., popups/video ads), might affect driver behavior and passenger safety. More guidelines on distracting content here.

On IVI systems, any application that is not correctly optimized will be blocked while the car is in movement. On the other hand, RSE systems can run any type of content whether the car is moving or not. If one or more of an application use cases are a good fit for the IVI system, it is recommended to adapt it to respect both the Driver Distraction Checklist and UI/UX Guidelines

App Versioning  

Versioning plays a crucial role in managing the upgrade and maintenance strategy for your application. Clear version information is essential for users, compatibility checks and upgrade/downgrade relationships. Please check the official android documentation on versioning your app, such as: 

  • versionCode: “A positive integer used as an internal version number. This number helps determine whether one version is more recent than another, with higher numbers indicating more recent versions. This is not the version number shown to users; that number is set by the versionName setting. The Android system uses the versionCode value to protect against downgrades by preventing users from installing an APK with a lower versionCode than the version currently installed on their device.”
  • versionName:“A string used as the version number shown to users. This setting can be specified as a raw string or as a reference to a string resource. The value is a string so that you can describe the app version as a .. string or as any other type of absolute or relative version identifier. The versionName is the only value displayed to users.”

We recommend the developer to consider the following guidelines when uploading a new version to the Developers Portal:

  • Mandatory: If a new version is submitted with a previously used versionCode, it will be rejected.
  • Mandatory: Increase both the versionName and versionCode. Since the versionName is the value visible to end users on the car, if you increase the versionCode but not the versionName, it would be confusing for the users.
  • Recommended: Version name follows the <major>.<minor>.< point > format.
Video Apps

Video applications should integrate with media session. Depending on the content, the app must support either the play/pause or stop playback commands. Additionally, the app must provide title and thumbnail metadata for every media item. See Control and advertise playback using a MediaSession.