开发人员可以使用API​​选择启动后台服务时应满足的条件

2020-08-18 17:32:39 来源: INeng财经

Google制定了重大计划,以进一步改善Android设备的电池寿命。在Google I / O(您可以在下面观看)期间的一次演讲中,该公司与开发人员分享了有关优化电池寿命的当前和未来计划。Google计划杀死未绑定的后台接收器,并将迫使开发人员合并其后台服务。唯一的问题是我们不知道这些新要求何时生效。但是从Google迄今为止分享的细节来看,由于最终采取了严厉的措施来应对唤醒锁,因此我们可以说这些变化将 大大延长电池寿命 。

电池寿命的现状

对于日常用户而言,管理电池寿命可能是一项非常复杂的任务,因为我们安装了多少个应用程序。但是,对于Google而言,他们并不关心您安装了多少应用程序或如何使用它们。他们 所关心的是在宏观级别管理电池寿命,这意味着只需要考虑三个主要的电池寿命消耗来源:CPU,无线电和屏幕。

由于屏幕的原因,Google对功耗的控制很少,因此,由于后台同步,他们将所有精力都集中在控制唤醒锁和 网络活动上。Google希望确保您安装的应用程序不会在您不知情或未经您同意的情况下破坏电池寿命。一项又一项的调查显示,人们想要更长的电池寿命。那么他们如何解决这些问题呢?

Google的方法可以概括为三个词: reduce ,defer和 concecece。尽可能减少后台活动,将后台活动推迟到更合适的时间,然后将后台活动与其他作业合并以减少CPU开销。在Android 6.0 Marshmallow中,Google引入了两项旨在节省电池寿命的新功能: 打ze模式和 App Standby。此外,Google希望开发人员将继续朝着使用其JobScheduler API的方向迁移 ,让Google确定何时启动后台服务。

JobScheduler API实际上是从Android Lollipop开始存在的,旨在供希望将其后台服务推迟到系统准备运行该操作的开发人员使用。开发人员可以使用API​​选择启动后台服务时应满足的条件。例如,开发人员可以安排其服务在设备充电,网络类型更改时或在特定时间范围内运行(例如,“未来4-6小时内的某个时间”)。然后,JobScheduler使用这些条件来选择一个时间,使其可以将该作业与其他未完成的后台活动合并。这样做可以有效利用CPU周期和网络流量, 减少无线电和CPU的功耗 。

接下来,有App Standby。此功能是在Android Marshmallow中引入的,通常会被误解,或者与Doze混为一谈。但是,App Standby实际上是完全不同的。它的作用是跟踪 不活动的应用程序 (没有任何前台服务/通知并且一段时间未打开的应用程序)。 处于非活动状态的应用将无法访问 网络,并且其 同步将推迟到设备接通电源后再进行。高优先级的云消息仍然可以唤醒不活动的应用程序,但是除非您再次明确打开该应用程序,否则不要执行任何操作。这是Google阻止那些很少使用但必需的应用程序执行任何操作直到您需要实际使用该应用程序的方式。

最后,有打ze模式。最初被誉为Android电池续航能力的救星,但实际上许多用户对其实施都感到失望。尽管Google声称由于打ze模式而使电池寿命有显着改善(根据对Googler设备的评论,他们声称屏幕关闭电池寿命可提高30%),但实际上,棉花糖中实施的打ze模式使它不适用于大多数情况用户。

让我们回顾一下 Android棉花糖中的打ze模式如何工作。关闭屏幕后,设备将耗尽电池电量,并且设备已 静止一段时间,设备将进入打ze模式。当设备进入打ze模式时,所有未在电池优化设置中被用户列入白名单的应用都 将延迟以下操作:网络访问,唤醒锁定,标准AlarmManager警报(不要与旨在唤醒您的实际警报相混淆) ),WiFi扫描或同步适配器。这些操作将延迟到下一个 维护窗口,借此系统唤醒设备并允许所有这些操作同时运行一小段时间(即合并它们)。

这是提高电池寿命的合理理论,但问题出在实现上。打ze模式要求设备具有重要的运动传感器, 因为它使用传感器来实际检测设备是否处于静止状态。默认情况下,Android会在屏幕关闭后等待30分钟,以翻转重要的运动传感器并确定手机是否处于静止状态。传感器处于活动状态4分钟,并检测到任何运动 从设备上无论是步行,跑步,骑自行车等,都从设备中移出。此外,设备尝试将设备的位置拉到精度20米以内。如果设备被认为是静止的,则它将在10分钟后再次检查设备。如果在3次额外检查后设备仍处于静止状态(即30分钟后)仍处于静止状态,则只有在此之后设备才会真正进入打ze模式。然后,在Android为应用程序提供5分钟的宽限期后,Android告知应用程序设备即将进入打ze模式,设备将进入空闲状态并停留60分钟,直到出现第一个维护窗口。闲置维护的这一循环一直持续到重要运动检测器或定位服务检测到设备一直在移动。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。