Android Nougat的“无缝更新”,解释

在所有几代Android设备中-包括棉花糖在内-操作系统更新基本上都是以相同的方式工作的:下载更新,重新启动手机,然后应用更新。在这段时间内,至少在更新完全安装之前,手机会变得毫无用处。随着Nougat新的“无缝更新”,这种模式已经成为过去。

Android 7.0 Nougat中的更新有哪些变化

谷歌已经从他们自己的Chrome OS中拿走了一个页面,用于新的更新方法。Chromebook实际上一直是这样工作的:更新在后台下载,然后提示用户需要重新启动才能完成安装过程。一次快速重启之后,更新就完成了--不需要等待更新安装,不需要“优化”,或者其他任何似乎需要很长时间才能完成的事情。它快速、简单,最重要的是,没有不合理的停机时间。

从安卓7.0开始,这就是安卓更新的方向。值得一提的是,这将不适用于更新到Nougat的设备,只适用于那些附带该软件的设备。这样做的原因完全合乎逻辑:这种新的更新方法需要两个系统分区才能工作,而且几乎所有当前的Android手机都只有一个系统分区。对设备进行动态重新分区可能是一场潜在的灾难(在许多情况下可能会是这样),因此谷歌将其单独放在当前一代手机上的决定是值得尊敬的,尽管这是一个令人沮丧的决定。

它的工作原理有点像这样:有一个活动的系统分区和一个休眠分区,这两个分区是彼此的镜像。当OTA更新可用时,活动分区会下载该更新,然后更新休眠分区。一次重启后,休眠分区变为活动分区,而以前的活动分区变为休眠分区,这将应用更新后的软件。

相关:如何使用Google的出厂映像手动升级您的Nexus设备

这不仅大大加快了整个更新过程,而且还充当了一种备份系统。如果更新出现问题,系统可以在引导时检测到错误,并简单地返回到未受影响的系统分区。重新启动后,它可以再次ping下载服务器,重新应用更新,然后再次重新启动以完成该过程。与当前系统处理灾难性更新故障的方式相比-这需要大量的用户交互、Android开发工具和熟悉Windows命令行-双分区方法要好得多。

我们还没有在行动中看到这一点,所以仍然有很多问题

当然,它也有自己的一系列问题和担忧。虽然我们在理论上了解这个系统是如何工作的,但我们还没有看到它在实践中的实际表现,因为Nougat还没有更新,也没有设备附带7.0。任何事情都是猜测,但我可以想象,例如,当应用更新时,可能会对系统性能造成相当严重的影响。

此外,如果您和我有什么相似之处,您会读到上面的部分并想:“拥有两个系统分区将占用多少空间?”有人可能会自动认为它会占用两倍的空间,这并不是完全错误的,但你也必须记住,这些是系统分区,这并不意味着它需要每个安装的应用程序的两个副本。尽管如此,这意味着目前占用1G的系统-对于Android操作系统来说,这个大小并不罕见-现在基本上可能需要2G(或更多)。

这就是说,谷歌已经转向了一种名为SquashFS的新文件系统,这是一种高度压缩的只读文件系统,最初是为低内存情况下的嵌入式系统设计的。这无疑有助于抵消一些不可避免地伴随着两系统分区设置而来的空间问题。尽管如此,我们可能会开始看到设备的出货量至少为32 GB。时间会证明一切。

目前也不清楚更新后新的休眠分区会发生什么。有一种可能性是,它可能会在后台更新,然后等待另一个新的OTA到来,但没有技术文档支持这一理论-只有我大声思考。不过,在我看来,这似乎是有意义的,因为否则这个新系统显然会看起来像是一次完成的更新场景,而这与谷歌试图在这里走的方向正好相反。

不幸的是,由于还没有支持新的无缝更新系统的设备,这些问题中的一些将不得不得到回答。一旦新一代手机开始推出,我们将更好地理解这一切在现实世界中是如何工作的。但就目前而言:这听起来是一件非常好的事情。

相关文章