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

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

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

Android Automotive OS, AAOS

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

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

Android VS Android Auto VS AAOS

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

image.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 的任务落到了车企身上。

Android Eco What Target Compativity
Android OS Phone Android App
Android Auto Platform Phone when connected to
Car supported Auto
Android App supported Auto
AAOS OS Car Android + Auto + AAOS App

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。

image.png

OEM Image

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

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

Screen Shot 2022-06-17 at 23.13.40.png

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

Screen Shot 2022-06-17 at 23.14.29.png Check 之后会自动下载,像手机 Image 一样方便的创建 Automotive 车机模拟器。

Screen Shot 2022-06-17 at 23.12.39.png

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

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

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

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

volvo-drawer.jpg Car 使用说明 App 的截图:

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

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

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

Develop Apps

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

Screen Shot 2022-06-17 at 23.10.52.png

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

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

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

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

Phone 运行到 Auto

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

Automotive 运行在 AAOS

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

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

01657850b1121b338b1fc37297857b43.png

Unnamed file6.jpg

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

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

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

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

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

volvo-aaos-store-error.jpg

结语

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

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

参考文档

猜你喜欢

转载自juejin.im/post/7110767099579990030
今日推荐