Android 车机初体验:Auto,Automotive 傻傻分不清楚?

简介: Android 车机初体验:Auto,Automotive 傻傻分不清楚?

WWDC 2022 上野心勃勃的 CarPlay 让不少车企感受了更多可能,也让不少车企察觉到了危机。


作为手机行业的一贯对手 Google 亦在车机上早有布局,包括 Android Auto 和 Automotive。虽推出已有数年,但中国开发者还很陌生,今天让我们来简单了解一下。

Android Automotive OS, AAOS

1832b220aa754cd18c504acc7686a560.pngAndroid Automotive OS 简称 AAOS,是扩展自 Android OS 的操作系统、直接基于车载硬件运行。和 Android 一样是一个可定制程度非常高的全栈开源平台。


在电动车大浪潮下,可为车企的信息娱乐体验提供强大的技术支持。同时为了兼容性考虑,AAOS 支持专为 Android 打造的应用,以及专为 Android Auto 打造的应用。

Android VS Android Auto VS AAOS

Auto 和 Automotive 的命名比较相似,貌似分不清楚,实则区别非常明显。

1832b220aa754cd18c504acc7686a560.png

首先,Android Auto 不是 OS。它是集成在 Android OS 里的 feature。当通过 USB、Wi-Fi 将 Android Phone 连接到支持 Android Auto 的车机上后,Android OS 将自动加载支持 Auto 模式下的 App 并将图像投屏到车机屏幕上。


跟 CarPlay 一样,其本质上是投屏。Phone 提供计算、渲染,车机只是 Display,Display 和按键回传 Input 的事件,Phone 处理好之后将新的帧数据回传进行 Display。


而 Android Automotive 是 OS,其归属于 AOSP 项目,代码也在 Android OS 之中。在编译的时候选择 automotive 的编译 target 即可生成车载机使用的 AAOS。


它支持加载 Android Auto 的 App,即将 Android Phone 和 AAOS 车机仍旧能像 Android Auto 一样使用。同时支持 Android OS 的 App,即不适配车载机亦能运行在 AAOS 上。这可能也是主流互联网 App 无意适配 AAOS 的部分原因,同时导致适配车机 UI 的任务落到了车企身上。

1672191330269.png

Develop Apps for Android Cars

模拟器

车机资源比较宝贵、稀少,很难像手机、平板设备一样非常便捷地在真机上开发和测试,而模拟器则是比较好的选择。Google 和车企都有相应的 AAOS Image 可供创建模拟器。

Generic AOSP Image

官方说 9.0 公开了 AAOS Image,打开 AS 的 SDK Manager 页面反复刷新和尝试都没有出现官方的 Image Item。偶然间还会出现如下的错误:


No System Images available. Are you connected to the internet?


即基于未知原因官方暂时下架了 AAOS 的 Image。

1832b220aa754cd18c504acc7686a560.png

OEM Image

好在 Volvo 及旗下的 Polestar 作为最早开发 Android Automotive 车机的车企,对外公开了 Image。虽不支持 ARM 架构,可以在 PC 上安装体验。


在 SDK Manager 的 SDK Update Sites 页面可以添加如下的 Url 来添加 Volvo 的站点。


https://developer.volvocars.com/sdk/volvo-sys-img.xml

1832b220aa754cd18c504acc7686a560.png

添加好了之后,可以再次打开 SDK Manager 页面,就可以在 SDK Platforms 页面看到 Volvo 的 Image 了。

1035234-20181020215539574-213176954.png

Check 之后会自动下载,像手机 Image 一样方便的创建 Automotive 车机模拟器。

1832b220aa754cd18c504acc7686a560.png

启动之后,可以看到整体界面:

1832b220aa754cd18c504acc7686a560.png

除了 Drawer、Video、座椅、空调等 Icon 以外还有 Map、BT、Google Assistant 这几个常用 App。

点击 Assistant App 可以进行语音操作:

1832b220aa754cd18c504acc7686a560.png

点击抽屉按钮,可以看到除了 Map、BT、Google Assistant 还可以看到 Google Play、Car 使用说明这几个 App。

1832b220aa754cd18c504acc7686a560.png

Car 使用说明 App 的截图:

1832b220aa754cd18c504acc7686a560.png

Polestar2 车型也对外公开了 Image,像上面一样添加如下的 Url 即可创建其模拟器。


https://developer.polestar.com/sdk/polestar2-sys-img.xml

不亏是一家的,界面和 Volvo 差不多,Launcher 的布局由列表布局改成了四宫格。

1832b220aa754cd18c504acc7686a560.png

其他也有车企采用了 AAOS,比如 Honda,只是没有公开。

Develop Apps

接下来就可以开发针对 AAOS 的 App 了,官方提供了 Car 相关的 SDK 供我们开发,即 Android for Cars App Library。为了兼容非 Car 的设备集成到了 AndroidX 中。

1832b220aa754cd18c504acc7686a560.png

另外提供了针对导航等几个场景提供了开发 Sample:


https://github.com/android/car-samples

这些 Sample 的优势在于,其兼顾了 Phone 和 Automotive 两种开发场景。将 App 共通的 Car 部分放置在 Common Module 里,各自的逻辑放在独立的 Module 中。

1832b220aa754cd18c504acc7686a560.png

好处是编译 Phone Task 的话生成的 Apk 安装在 Phone 上,当其进入 Android Auto 模式之后会自动加载 Common 里的 Car 逻辑。而编译到 Automotive 的 Apk 可直接运行在 AAOS 上,以执行 Common 逻辑和特有的 Car 逻辑。


有点需要注意的是该 Sample 的 Gradle 和 AGP 版本需要升级到最新,才能编译通过。

Phone 运行到 Auto

可以利用 DHU 将手机转为 Android Auto 模式,这样的话就可以测试 App 的 Auto 模式下的表现。

1832b220aa754cd18c504acc7686a560.png

Automotive 运行在 AAOS

Automotive 的 Sample Apk 运行到 Volvo 和 Polestar2 模拟器中都是如下结果,貌似无法正常使用。

1832b220aa754cd18c504acc7686a560.png

经过日志排查和文档确认发现 Sample 依赖了 Car 中最新的特性,需要 AAOS 去下载和安装最新版的 Google Automotvie App Host Apk。

1832b220aa754cd18c504acc7686a560.png

1832b220aa754cd18c504acc7686a560.png

可是遇到如下问题,无法安装:


该 App 需要 11 及以上的 AAOS 系统,而 Volvo 和 Polestar2 公开的最新的版本都是 10


该 App 在 APK Downloader 等网站上均无法直接下载


Volvo 的 AAOS Emulator 上 GooglePlay 无法连接网络


adb shell am start -n com.android.vending/com.google.android.finsky.carmainactivity.MainActivity

1832b220aa754cd18c504acc7686a560.png

结语

虽然 Sample 运行遇到了点问题,但是成功地运行了 AAOS 模拟器,也感受了一下 Car 的开发 Module 构成。

后续将继续深入研究 AAOS 上 App 开发的特有场景,敬请期待。

参考文档

Android Auto


支持 Android Auto 的设备


Android Auto App


Android Automotive


What is Automotive


测试 Android 车载应用


test-automotive-os


Car Library


android car samples


相关文章
|
安全 定位技术 Android开发
Android Auto汽车下载使用教程(中国版)
Android Auto汽车下载使用教程(中国版)
Android Auto汽车下载使用教程(中国版)
|
Java API 开发工具
初体验-阿里云短视频 SDK For Android 快速接入
近期的一些创意短视频 App 风靡年轻群体,比较典型的例如抖音、MUSE 等,阿里云也适时地推出了简单易用的短视频 SDK,帮助开发者们以较低的成本快速引入功能完备的创意短视频功能。本文主要介绍如何快速接入阿里云短视频 SDK 的三个版本(基础版、标准版和专业版)。
35349 1
|
编解码 视频直播 开发工具
视频直播Android推流SDK初体验
使用阿里云直播产品如何进行推流播流,可以参考视频直播快速开始进行创建直播域名推流播流。那么移动端要如何进行推流呢,视频直播提供了Android、IOS推流SDK,用户可以使用对应的SDK进行推流,本文旨在让读者可以按照文章快速的应用Android推流SDK进行推流并且了解常见推流参数的设置
8911 0
|
前端开发 Android开发 数据格式
Android DataBinding使用(一):DataBinding初体验
目录 前言 MVVM ( Model — View — ViewModel )最初是在2005年由微软提出的一个UI架构概念 。 相比MVP模式,MVVM将Presenter改为了 ViewModel,同时实现View和VievvModel的双向绑定。
2257 0
|
Shell Android开发 开发者
Android测试之Monkey初体验
什么是Monkey? Monkey是Android中自带的用来进行压力测试的一个命令行工具。 用Monkey进行App压力测试的结果有三种 正常 Crash :程序崩溃 ANR:程序无响应 Monkey简单测试步骤 1.手机与电脑进行USB连接,并在开发者选项中选中USB调试 2.确认手机与电脑连接:打开cmd命令行或者使用Android Studio的朋友可以打开Terminal视图,输入adb devices查看已连接的设备。
1528 0
|
开发工具 Android开发 Linux
|
Java 测试技术 API
Macaca初体验-Android端(Python)
前言: Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案。由阿里巴巴公司开源:http://macacajs.github.io/macaca/ 特点: 同时支持PC端和移动端(Android、iOS)自动化测试。
1486 0