谷歌为Android 11制定了新规则:它将强制支持Android的“无缝更新”功能,该功能对于使用新操作系统启动的设备来说是必需的。该消息是通过XDA Developers首先发现的Android源代码提交而传给我们的,内容为“在R启动时需要虚拟A / B”。用英语来说,这意味着无缝更新系统需要两个分区(分别标记为“ A”和“ B”),而在Android R(又称为Android 11)上则需要。
Android 7.0 Nougat (实际上是从Chrome OS借来的)中引入了 Android的无缝更新系统,以减少由OS更新引起的停机时间,并提供一种在更新应用不正确的情况下的恢复机制。将更新应用到操作系统通常意味着使OS脱机较长时间的停机时间。在Android上,在进行无缝更新之前,手机会启动进入恢复状态,并且可能会停留在“安装系统更新”屏幕上长达25分钟。这将导致大量的停机时间,在此期间,您将无法运行任何应用程序,查看任何短信或接听任何电话。发生停机是因为更新系统文件需要使系统分区脱机,但是无缝更新系统通过仅拥有系统分区的第二个副本来解决此问题。
正如提交中所引用的,两个系统分区称为“ A”和“ B”。通常,它们是彼此的精确副本。其中一个系统分区处于联机状态并用于电话操作系统,另一个分区处于脱机状态,仅位于那里。当需要应用更新时,将首先将更新应用到脱机分区。因此,如果您正在系统分区A上运行,那么将更新系统分区B。很好,这无缝地发生在后台,并且在系统分区B正在更新文件的同时,您仍然可以在系统分区A上进行所有普通的电话操作。而不必盯着锁定到“安装系统更新”的电话屏幕上显示25分钟,电话仅显示“正在安装系统更新”通知,您可以忽略该通知。
因为您有两个系统分区,所以电话永远不会有较长的停机时间。脱机分区上的更新完成后,电话会要求重新启动,届时它将交换活动分区。因此,如果您在分区A上运行,而分区B已更新,则电话将切换为在新近更新的B分区上运行,并且A将在以后的时间进行更新,通常是在电话空闲且在充电器上时。
无缝更新的另一个好处是,如果在更新过程中出现问题,并且某个分区无法启动,则该分区仍将另一个分区作为备份。Android足够聪明,可以在首次启动时切换到新分区时设置标志,并且如果启动没有完成,它可以切换回并启动到旧版本的OS。从那里它可以再次与更新服务器联系,再次下载OS文件,然后尝试重新应用更新。如果没有无缝更新,失败的操作系统更新将使您的手机变成砖头,恢复它需要PC和特殊软件,但是无缝更新系统也可以无缝恢复。
许多OEM已经自愿采用了无缝更新,例如Google,OnePlus,诺基亚,LG,摩托罗拉,HTC,索尼和华硕。最大的支持者是三星-为什么总是三星?-仍然需要其手机长时间离线。这很容易使“好了,三星手机永远不会得到更新反正”的笑话,但他们 也 仍然可以得到每月的安全更新,所以这需要停机时间每月仍然发生。将此功能强制用于Android 11将意味着三星将最终被迫与其他杂乱无章的人(通常是中国的OEM)一起采用它。
无缝更新确实有一些缺点,即两个系统分区比一个系统分区使用更多的存储空间。作为A / B分区推动的一部分,Google做了很多工作来缩小系统分区的外观,并在需要将其翻倍之前将其实际大小减小了一半,因此按年变化并不是高。Google 在A / B分区系统上有一个很大的常见问题,并提供了2016 Pixel 1的详细存储号,该编号是在该产品首次发货时说的:“对于内部测试的Pixel A / B和非A / B变体(仅(A / B出厂),使用的空间仅相差320MiB。在32GiB设备上,这一空间不足1%;对于16GiB设备,该空间不到2%,而对于8GiB设备,该空间几乎为4%(假设所有这三个设备具有相同的系统映像)。”
在常见问题解答中,Google建议在每个存储配置(最小8GB)中使用A / B分区,即使是最低端的智能手机也是如此。过去,某些Google要求(例如强制性加密支持)附带了低端设备的例外情况,因此这可能不适用于价格较低的手机。要确定,我们需要查看尚未发布的Android 11的Android兼容性定义文档。