什么是“自适应电池”,它对应用开发者意味着什么?

时间:2018-05-15 05:26:05

标签: android battery

背景

Google已在Google IO 2018上宣布了一种名为“自适应电池”的内容:

https://youtu.be/ogfYd705cRs?t=3562

作为用户,这看起来很有希望,但作为开发人员,在某些情况下这可能是一个问题。

问题

他们说它会检查哪些应用程序使用AI更频繁,并且“操作系统适应您的使用模式”:

  

自适应电池使用设备上的机器学习来找出哪个   您将在接下来的几个小时内使用的应用程序,直到您将无法使用   以后,如果在今天

对我而言,这听起来可能是“与后台处理应用程序的战争”的又一步。

我发现了什么

由于这是非常新的,我还没有发现它是如何工作的,如果开发人员应该关注它并需要更改应用程序。

我发现的只是来自用户观点的文章。

问题

  1. 什么是“自适应电池”?

  2. 开发人员在启用时是否应该担心?

  3. 哪些应用程序组件,后台处理类,警报,唤醒锁,同步类,后台/前台服务等...... - 可能会受到影响?

  4. 如果它确实会影响应用程序的性质,是否有任何API可以检查它是否已启用,并采取相应措施?如果是这样,怎么样?

  5. 与其他节电机制相比如何?

1 个答案:

答案 0 :(得分:6)

我同意,这个“自适应电池”听起来很令人担忧。这个名为Android P的新版Android“将AI置于操作系统的核心,并专注于智能和简单的体验。”(1)在开发人员的博客上,他们引用:“对于开发人员,Android P beta提供了一系列利用这些新智能的方法,特别是在增加与应用程序的交互方面。”(1)显而易见,尽管他们试图使操作系统更好地面向大众,但他们并没有忘记开发人员。

与Android P最相关的两件事是Adaptive Battery和Background Restrictions的更改。我将尽我所能回答您的五个问题,但是当然,随着Android P处于测试阶段,还没有解决所有问题。

1。到底什么是“自适应电池”?

“在Android P中,我们与DeepMind合作开发了一项称为“自适应电池”的新功能,该功能可优化应用使用电池的方式”(1)。 Android使用DeepMind的目的是将应用程序分类为不同的“应用程序备用存储桶”,范围从“活动”到“稀有”。根据应用程序放入哪个备用存储桶,它将改变对警报,作业,网络和移动设备的限制。高优先级的Firebase Cloud消息。

这些存储桶为:活动-表示当前正在使用该应用程序。工作集–表示该应用已在正常使用。频繁-意味着该应用经常使用,但并非每天都在使用。罕见-表示该应用程序不经常使用。显然,这些存储桶并不明确,因为它们依赖于Android P正在实现的DeepMind AI。请遵循this link,以获取有关什么是水桶以及如何使用它们的更好的解释。另外,this link是电源管理限制的附录,这也将阐明自适应电池。

他们还说:“如果您的应用程序针对打ze睡,应用程序待机和背景限制进行了优化,那么开箱即用的自适应电池应该可以很好地为您工作。我们建议在四个存储桶中的每个存储桶中测试您的应用。”

2。开发人员在启用该功能时应该担心吗?

如果开发人员不为此计划,似乎可能会引起一些担忧。通过上面链接的电源管理附录,最大的变化是作业和警报的延迟时间。但是,如果您强行执行作业或警报,则它们将触发。

我认为,对于开发人员而言,明智的做法是,警告他们针对Doze,App Standby和Background Limits优化应用程序的警告。如果那不是您要走的路,我强烈建议至少确保在四个存储桶中的每一个中测试您的应用。

3。哪些应用程序组件可能会受到影响?

由于Android P仍处于测试阶段,因此这些内容可能会发生变化。目前,唯一会影响的应用程序组件是:作业,警报,网络和Firebase云消息传递。这些都会根据DeepMind决定应放入的备用存储区而有所不同。

另一个要点是,我提到了背景限制,这里将对其进行详细说明,因为就其限制功能而言,它类似于自适应电池。后台限制指出了在后台使用电池的应用程序,并允许用户对其施加限制。 “当一个应用程序受到限制时,其后台作业,警报,服务和网络访问都会受到影响。”因此,如果用户认为您的应用程序占用了过多的资源,那么您将受到限制,并且看起来就像被放入低优先级的备用存储桶。但是,Android P API中提供了多种方法来检查您的应用是否受限制,这将对开发人员有所帮助。

4。如果确实会影响应用程序的性质,是否有任何API可以检查它是否已启用并采取相应措施?

是的,API中有一些调用可以告诉您您所在的存储桶,以及您的应用程序是否如我之前所说的那样受到限制。例如,您可以通过调用以下命令找出应用程序当前所在的存储桶:UsageStatsManager.getAppStandbyBucket()

此外,在每个存储桶中,都有许多使用Android Debug Bridge测试应用程序的好方法。只需遵循this link

5。与其他省电机制相比有何不同?

据我所知,这种水桶节电方式以前从未实现过。这是一种新的体验。但是,我知道背景限制自Android Oreo以来就已经存在,用户可以在其中查看正在执行的应用程序。但是,在奥利奥(Oreo)中,用户只能看到哪些应用正在消耗电池电量,而无法设置限制。

我发现一个有趣的例子here:“例如,假设您真的只在晚上看Instagram。在这种情况下,自适应电池将学习这种行为并将白天保持应用程序处于睡眠模式,然后在您最有可能使用它时将其唤醒。”这是他们为Android P给出的DeepMind的工作方式示例将应用程序放入这些备用存储桶中。

总的来说,我确实认为这对Android来说是迈出的重要一步,因为Android一直受到电池问题的困扰。只要开发人员没有向用户发送唤醒锁,通知或其他不必要的垃圾邮件,这实际上就不会对他们的应用造成太大影响。但是,这样做确实使开发人员不得不进行更多工作,例如检查他们所在的存储桶并采取相应的措施。时间会证明这是否是Android的好一步。

链接

  1. (1)-https://android-developers.googleblog.com/2018/05/whats-new-in-android-p-beta.html#androidbeta
  2. (2)-https://developer.android.com/preview/features/power#buckets
  3. (3)-https://developer.android.com/preview/features/power-details
  4. (4)-https://www.howtogeek.com/352364/how-android-p-will-increase-battery-life/