目录:
每当我们手机上的软件收到大量更新时,我们都会听到它的性能如何更好,并且使用更少的电池。 虽然这通常是正确的,但这些想法及其实施方式需要进行大量微调以满足期望。 Android 7.0改进了两个现有功能,以帮助他们充分发挥其潜力:Projects Doze和Project Svelte。
目标很简单 - 找到一种方法,让您在不使用手机时减少耗电量,并更好地管理后台进程。 所有软件都建立在强调性能和效率的基础上,而操作系统更是如此。 我们将了解这些变化并了解它们如何产生影响。
Project Svelte
Project Svelte于2013年推出Android 4.4 KitKat,作为操作系统在低端手机上表现更佳的一种方式。 在这方面,它确实取得了成功,但我们预计会有比我们更大的变化。 为了更好地了解Svelte的原始用意,Android One就是您的最佳选择。 目标是创建廉价的硬件,运行最新版本的Android足以推荐。
借助Android 7.0,该项目通过拥有更好的后台进程管理系统,继续减少对性能的影响。
对Svelte的更改解决了迫使应用程序在后台运行的两个特定且重要的问题
Android与iOS非常不同。 任何开发者都可以支付非常小的费用,并在Google Play上发布应用程序以及Facebook或三星等名称。 如果该应用程序没有恶意代码,它将上线供所有人安装,除非报告其不适当的内容或操作,否则它将保留(尽管谷歌表示它会在推送它之前自动检查每个应用程序)。 这与通过手动审批流程提交的每个应用程序相差甚远,这意味着应用程序不会因为不遵循最佳开发实践而被拒绝。 某些当前API的行为没有帮助,即使是最好的应用程序也可能因为错误的进程而过于频繁地唤醒和使用资源。
Android Nougat中对Svelte的改进解决了两个明显的问题:
- 应用程序检查网络是否使用所谓的广播接收器进行更改。 当发生变化时,通过默认方法监听变更的每个应用程序都会一次唤醒,并尝试处理有关变更的数据。想想手机在首次启动时的行为以及一切都会立即发生,并且您知道为什么这需要某种改进。 当针对Android 7.0时,应用程序只能通过主线程(当应用程序处于唤醒状态并且您正在使用它时运行时)监听网络更改,因此每次切换网络时它们都不会被唤醒。 这将减少RAM和CPU时间,这意味着我们的手机性能更好,耗电更少。
- 在之前的Android版本中,应用程序能够在类似的广播接收器上收听图片或视频。 当发生这种情况时,每个正在收听的应用程序都会醒来并尝试立即处理数据。 如上所述,这在性能方面并不是很好。 在Android 7.0中,无法发送新图片和新视频广播。 这意味着即使开发人员不更新现有应用程序,他们也不会被告知在拍摄照片或视频时醒来。
对于应用程序来做我们希望他们做的许多事情,他们必须保持活力。 通过消除不必要的功能,减少他们在静静地等待再次变为活动状态时所做的事情减少意味着更少的应用程序将被运行而不是在被发送到后台时休眠。
项目打瞌睡
现在的工作方式,你要么喜欢Doze,要么你没有看到Doze在手机上做任何明显的事情。 这是因为它的工作方式。
当Doze在Android 6.0中首次亮相时,它的目的是在手机的屏幕关闭,拔下电源和一动不动时延迟CPU和网络活动。 如果未满足所有三个标准,Doze将无法启动,应用程序将继续正常运行。 这在办公室和办公桌上工作得很好,但是一进入你的口袋,Doze就停止了做任何事情并且效益停止了。
两阶段的Doze让您的手机在启动和移动时也可以使用更少的电池
Android Nougat中的行为更改很简单。 打瞌睡现在有两个阶段:一个是屏幕关闭而电话已拔下,另一个是电话也一动不动。
当您的手机仅使用电池运行且屏幕已关闭一段时间后,应用程序将停止直接访问网络,并且同步和其他作业等活动将推迟到预定义的时间过去。 然后,一个简短的维护窗口允许它们执行正常的后台功能。 当您的手机放在口袋中或受其他形式的运动影响时,此部件可以正常工作。
当手机还有一段时间的静止时,所有的打盹限制 - 其他的东西,比如应用程序在后台醒来或者听到所谓的闹钟(不是那种在早上唤醒你的那些,不受影响)或寻找当前位置 - 应用于网络和作业延期。 维护窗口仍然会定期出现,但在这些窗口之间,您的手机几乎没有活动,并且在您拿起它之前没有做太多工作。
我们知道Doze在手机静止时的工作情况(当它没有被手机制造者修改时)。 现在,当我们开始活动时,我们也会看到一个好处。
对Svelte和Doze的更改是否会解决每个性能和电池问题? 答案当然是不。 但这些变化是解决需要解决的两个非常具体问题的逻辑步骤。 结果将证明比我们现在的更好,即使它无法解决所有问题。