Introduction to Android Automotive OS

What is Android Automotive OS?

Android Automotive OS (AAOS) is a version of Android designed to run in vehicle head units and provide "In-Vehicle Infotainment" (IVI) systems. In modern vehicles, IVI systems control heating and ventilation, provide audio streaming, display rear-view (and side-view) cameras, provide navigation...and many other functions.

The core of AAOS is part of the Android Open Source Project (AOSP), and because it is open source, anyone can use the code to create IVI products. But don't get carried away by the thought. The code in AOSP is just the bare minimum, with a very basic home screen and some "demo quality" apps for music, heating controls, etc. Automakers still have a lot of work to do before they have a viable product.

Of course, Google has a solution. They license a set of proprietary APIs called Google Automotive Services or GAS. This is similar to Google Mobile Services (GMS) in the mobile world: GAS provides the Play Store, Google Navigation, Google Assistant (for voice activation and hands-free driving), and more. In March 2020, the first car to feature AAOS was the Polestar 2, which includes GAS and the full suite of Google services. However, GAS is somewhat controversial in the automotive world, since a Google license means losing control, not to mention sharing valuable data with Google that carmakers prefer to keep private. Expect to see a version of AAOS without GAS in the near future.

Note that Google has another product with a similar name: Android Auto . This is a whole different beast. The Auto app runs on a regular Android phone and connects to the host using USB or (the closest) WiFi. The console is not running Android. In most cases, it's actually running an embedded Linux operating system developed by the automaker. This blog is definitely not about Android Auto

Why choose AAOS?

"Why" is always a more complicated question. my concerns are twofold

From an automaker's perspective, the appeal of AAOS lies in the reduced development and maintenance costs. Most cars on the market today have IVI systems developed in-house or in partnership with Tier 1 software providers. Development is expensive and slow. AAOS, on the other hand, is an off-the-shelf solution with a full suite of media codecs, a suite of applications (if you get the GAS license), and an excellent developer network. Also, it's easier (and cheaper) to hire an Android developer than a C++ developer who knows the Qt programming environment

AAOS is also a customer win. The current IVI system doesn't have a great reputation for usability, whereas AAOS has the familiar Android UX and the ability to install new apps from the app store. As a final note, the experience here will depend on whether the manufacturer is GAS licensed or not. If not, there might still be some kind of app store, just not the full Google Play Store.

software structure

AAOS is an add-on to normal Android. The main components are the vehicle HAL, Car Service and Car Manager, as shown in the diagram below:
insert image description here
Starting from the bottom, we have the Electronic Control Unit (ECU). They are part of the vehicle. They monitor and control every aspect of the vehicle. They are connected to the vehicle bus, usually the CAN bus.

On the Android side of the vehicle bus, we have the Vehicle Hardware Abstraction Layer (VHAL), which represents signals from the bus as vehicle attributes. There are more than 150 predefined "system" properties in Android 12. For example, there is a property called PERF_VEHICLE_SPEED that represents velocity in meters per second. OEMs can add their own "supplier" attributes.

Car Service takes vehicle attributes and adds information from other sources to create a set of services useful to the application.

The app does not directly call car services. Instead, they call the Car Manager library that implements the android.car.* packages ( https://developer.android.com/reference/android/car/packages ). There are demo car applications in AOSP that show how to use the android.car class. Most of these apps are system apps, which means they are written by the manufacturer and come pre-installed on the vehicle. They can access low-level functions such as lowering and raising the side windows.

Tip: Please visit https://developer.android.google.cn/reference/android/car/packages in China

Finally, we have third-party Auto apps that you can install from the Play Store or other app stores. The parts of the car they can enter are very limited and must follow guidelines to avoid driver distraction. These are things like streaming music, audiobooks, and navigation. For more information check out https://developer.android.com/training/cars/start

Tip: Please visit https://developer.android.google.cn/training/cars in China

AutomotiveUser Interface

AAOS is designed to be easy to use while driving. It has a simple tile-based UI with large icons. This is a screenshot of the default UI for AOSP 12 with the navigation bar at the bottom and the status bar at the top. The
insert image description here
icons on the navigation bar are Home, Phone, Apps, HVAC, and Notifications. The app icon takes you to the apps menu, where you'll find pre-installed system apps as well as any apps you've installed yourself. A gear in the top left takes you to a simplified settings menu, and touching the user icon in the top right lets you tell who's driving the car.

You'll almost certainly never see an actual vehicle with this layout. This is where automakers are encouraged to brand their own brand and user experience. For example, the Polestar 2 implementation is very different from the default.

in conclusion

From my experience, it seems like most automakers are integrating AAOS into their cars: AAOS will soon be in a vehicle near you. It will be a learning curve, not only for automakers, but also for Android developers as they add features to deal with the automotive environment.

おすすめ

転載: blog.csdn.net/CJohn1994/article/details/127273593
おすすめ