AOSP之Android Automotive
Android Automotive本质就是Android平台。那么Android Automotive与整个Android生态系统之间的是怎样的关系:
- Android Automotive就是Android平台。Android Automotive并非Android的分支或并行开发版本。它与手机和平板电脑等设备上搭载的Android使用相同的代码仓库,位于同一个存储区中。它基于开发时间逾10载的强大平台和功能集构建而成,因此能够利用现有的安全模型、兼容性计划、开发者工具和基础架构,同时继续保持较高的可定制性和可移植性,完全免费提供并且开源。
- Android Automotive扩展了Android平台。在将Android打造为功能完善的信息娱乐平台的过程中,我们增加了对汽车特定要求、功能和技术的支持。Android Automotive将是一个一站式全栈车载信息娱乐平台,就像现在的Android系统之于移动设备一样。
十多年来,运营商、原始设备制造商(OEM)和开发者一直在使用Android平台打造优质的设备、应用和体验。现在,Android Automotive将Android的强大功能引入汽车之中,让汽车制造商得以打造满足数字时代需求的强大信息娱乐系统。
AAOS(Android Automotive OS)服务功能控件
默认情况下,大多数汽车服务都是强制性的,且始终处于启用状态。不过,可以将一部分汽车服务指定为"可选",因为某些功能可能并非在所有汽车上都被支持。
可选汽车控制功能
启用和停用汽车控制功能
有三种方式来控制功能的启/停:
- 运行时资源叠加层(RROs,Runtime Resource Overlays)
- 车载硬件抽象层(VHAL,Vehicle Hardware Abstraction Layer)
- adb shell调试命令 (这种可用于调试阶段)
通过RRO开启/停用功能
使用名为config_allowed_optional_car_features的资源配置,其中列出可以启用的所有可选功能。当汽车首次启动时,系统会记录可能的可选汽车功能,并且如果这些功能未被VHAL列入屏蔽名单,系统会启用这些功能。参阅在运行时更改应用资源的值来详细了解RRO。
通过VHAL开启/停用功能
车载硬件抽象层(VHAL)通过作为停用特定可选功能的屏蔽名单来控制功能。名为DISABLED_OPTIONAL_FEATURES的VHAL属性列出了叠加层中要被停用的可选功能。如果此属性不存在,则RRO中列出的可选功能将全部启用。参阅VHAL概览以详细了解VHAL。
使用adb shell调试命令
控制要启用或停用哪些可选功能除了上述两种build中控制外,还有第三种方法,即使用一对shell命令(注:仅在user-debug build中可用),这些命令专供开发者使用。可选功能列表部分的表格列出了要用来代替<FEATURE_STRING_VALUE>的值。
如需启用某项功能,运行以下命令:
$adb root
$adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>
$adb reboot
如需停用某项功能,运行以下命令:
$adb root
$adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>
$adb reboot
确定功能启用情况
实际调试时免不了查看当前设备功能的启用/禁用情况,运行如下命令:
$adb shell dumpsys car_service --services CarFeatureController
此命令会列出以下所示类型信息:
例如某Car设备功能启用情况如下: