为了简化将移动应用移植到 Android Automotive OS 设备的过程,某些汽车配备了兼容性模式,可解决将现有移动应用移植到汽车时面临的常见问题。
虽然支持汽车的移动应用计划使用此兼容模式,但未加入该计划的应用也可以在此模式下运行。
了解兼容模式
Android Automotive OS 兼容性模式是一项软件功能,某些车辆提供此功能,旨在改进专为移动设备构建的应用在 Android Automotive OS 上运行时所提供的用户体验。
返回导航
与其他设备规格不同,Android Automotive OS 设备无需具有硬件或软件返回功能。兼容模式通过要求系统提供返回功能(例如硬件按钮、软件按钮或手势)来解决此问题。这意味着,如果应用仅定位到处于兼容模式的设备,则无需提供自己的返回导航控件。
启用兼容模式的情况下
未采用兼容模式
安全区域呈现
在汽车中,系统栏和显示屏刘海屏等软件和硬件元素可能会使主要为移动设备开发应用时所做的假设失效。兼容模式通过在安全区域内呈现应用来解决此问题。
密度缩放
由于汽车中的互动距离大于其他大屏设备,因此在汽车上运行时,触摸目标和字号通常比建议的小。兼容性模式通过允许 OEM 指定渲染应用时使用的 DPI 缩放比例来解决此问题。
activity 生命周期
如向停放状态的应用添加 Android Automotive OS 支持中所述,当汽车进入驾驶模式后,操作系统会自动阻止您的应用 activity,以减少让驾驶员分心的因素。在具有兼容模式的设备上,OEM 的屏蔽界面不得透明,因此您的应用在被屏蔽时不再可见,并过渡到 Stopped 生命周期状态。
配置兼容模式
默认情况下,如果设备支持,您的应用的 activity 会在兼容模式下运行。当清单中存在 android.hardware.type.automotive 功能的 <uses-feature> 元素时,Activity 不会在兼容模式下运行:
<manifest ...>
...
<uses-feature android:name="android.hardware.type.automotive" ...>
...
</manifest>
如果您希望 activity 在显示屏兼容模式下运行,无论之前描述的 <uses-feature> 元素如何,您都可以在应用的清单中添加以下 <meta-data> 元素:
<application ...>
...
<meta-data android:name="android.software.car.display_compatibility" android:value="true"/>
...
</application>
在兼容模式下测试应用
如需在兼容模式下测试应用,您可以使用支持兼容模式的通用系统映像或 Pixel Tablet 上的 Android Automotive OS 系统映像。
确定设备支持情况
支持 Android Automotive OS 兼容模式的设备必须声明 android.software.car.display_compatibility 系统功能。如需了解哪些设备支持此功能,您可以使用 Play 管理中心的设备目录。