Android Automotive 内部存储使用闪存,具有数千次的擦除和写入周期。如果闪存发生故障,系统可能会变得无法使用。由于车辆的使用寿命较长(通常超过 10 年),闪存必须极其可靠。此页面描述了闪存行为以及 OEM 如何降低闪存设备发生故障的风险。
闪存性能
闪存设备使用磨损均衡技术,以解决擦除和写入限制,方法是通过排列数据并在系统中均匀分布写入,以便没有单个块因高强度写入而发生故障。闪存的估计寿命取决于
- 写入次数
- 写入模式
- 闪存的可用大小。 更大的存储大小意味着磨损均衡算法可以将写入分散到更多块上。
- 磨损均衡技术
- 环境因素。 示例包括通常 -20 至 85 摄氏度的操作温度范围。此范围之外的温度可能会进一步缩短闪存的寿命。
闪存寿命可以使用此公式计算
然而,系统会在闪存完全磨损之前很久就停止正常运行,因为可用存储大小会减小,并且 eMMC 的寿命可能会更短,具体取决于使用的均衡技术和写入模式。此外,此估计未考虑行为不端或恶意应用的影响,这些应用可能会通过在没有特殊权限的情况下向闪存写入大量垃圾数据来扰乱汽车系统。
为了在可能的闪存故障实际发生之前检测到它,适当的存储健康状况监控应作为整体系统健康状况监控的一部分构建在其中
实现闪存
Android Automotive 支持使 OEM 能够保护和监控其系统内部存储以延长其寿命的功能。
减少闪存磨损
担心内部存储上的闪存磨损的 OEM 还可以添加 SD 卡,该 SD 卡的速度足够快,可以用作外置存储。SD 卡预计具有以下属性
- 采用后,SD 卡会被加密,并且可以安全地存储应用数据。
- SD 卡插槽必须位于安全位置(用户不应频繁移除 SD 卡)。
- SD 卡不能用于在汽车系统和计算机之间传输数据。
- 弹出 SD 卡不会影响正在运行的系统。但是,除非需要更换,否则不应移除它。
SD 卡上的应用
为了进一步保护 Android Automotive 系统的内部存储,OEM 可以指定第三方应用是否可以安装在内部存储上,以便应用只能写入安装它们的分区。要配置,请在资源叠加中设置以下配置
<bool name="config_allow3rdPartyAppOnInternal">false</bool>
为了确保第二方应用(由汽车应用开发者构建的应用)在汽车强制要求的情况下可以安装在 SD 卡上,汽车应用开发者必须在应用的清单文件中包含 android:installLocation=["auto" | "preferExternal"]
。
如果汽车不允许将第三方应用安装在内部存储上,则如果没有此标志(或者如果配置了 installLocation=internalOnly
设置),则应用安装失败。
获取磁盘指标
AAOS 13 引入了闪存过度使用监控和指标收集,作为 Car Watchdog 的一部分。有关详细信息,请参阅监控闪存使用情况。
Android 8 引入了 storaged,一种系统服务,用于采样和发布磁盘和闪存指标,例如有关整体磁盘使用情况、闪存寿命估计以及每个应用的磁盘 I/O 统计信息的信息。OEM 可以使用此信息在内部存储开始发生故障或特定应用执行过多磁盘 I/O 时警告用户。有关详细信息,请参阅实现 storaged。