Android Automotive 内部存储设备使用了支持上千次清空/写入周期的嵌入式多媒体卡 (eMMC);若是 eMMC 发生故障,系统可能会变得没法使用。因为汽车的使用寿命较长(一般为 10 年以上),所以 eMMC 必须很是稳定可靠。本页面介绍了 eMMC 行为,以及 OEM 如何下降 eMMC 发生故障的风险(从而避免 Android Automotive 系统发生故障)。html
eMMC 设备使用耗损均衡技术来解决清空/写入限制的问题,具体方法是在整个系统内均匀地放置数据和分配写入操做(避免单个块因密集写入而发生故障)。eMMC 的预计使用寿命取决于如下因素:android
对于具备 16GB 可用空间和 3000 次清空/写入周期的 eMMC,咱们估算的数据以下:算法
日写入量 | 16GB | 32GB |
---|---|---|
预计使用寿命 | 10 年 | 5 年 |
不过,随着可用存储空间的减小,系统可能会早在 eMMc 完全磨损以前就中止正常运行,而且根据所使用的均衡技术和写入模式,eMMC 的使用寿命甚至可能会更短。此外,这方面的估算并无将行为异常的应用或恶意应用的影响考虑在内,这些应用可能会在没有特殊权限的状况下将大量垃圾数据写入 eMMC 来攻击 Automotive 系统。安全
要在潜在的 eMMC 故障实际发生以前就检测出来,应将适当的存储设备运行情况监控功能整合到总体系统运行情况监控功能中。并发
借助 Android O 支持的功能,OEM 能够保护和监控 Android Automotive 的内部存储设备,并延长其使用寿命。app
为了保护 Android Automotive 系统的内部存储设备,Android O 支持 OEM 配置是否容许第三方应用安装在内部存储设备中(应用只能向其安装所在的分区写入数据)。要进行配置,请在资源叠加层中设置如下配置:ide
<bool name="config_allow3rdPartyAppOnInternal">false</bool>
若是 OEM 担忧内部存储设备上的闪存磨损问题,也能够增长 SD 卡,SD 卡支持足够快的数据写入速度,可用做合并存储设备。SD 卡具备如下行为:ui
要确保第二方应用(由汽车应用开发者构建的应用)能够安装在 SD 卡上(若是汽车提供受权的话),汽车应用开发者必须将 android:installLocation=["auto" | "preferExternal"]
归入应用的清单文件中。加密
若是汽车禁止将第三方应用安装在内部存储设备上(如限制第三方应用中所述),则在没有上述标记(或者若是配置了 installLocation=internalOnly
设置)的状况下,应用安装将会失败。spa
Android O 中引入了 storaged,这是一个新的系统服务,会对磁盘指标和 eMMc 指标进行采样并发布,例若有关整体磁盘使用状况、估算的 eMMC 使用寿命和磁盘 I/O 统计数据(按应用统计)的信息。当内部存储设备开始出现故障或特定应用执行的磁盘 I/O 过多时,OEM 可使用这些信息来向用户发出警告。有关详情,请参阅实现 storaged。