【问题标题】:What is exactly "Adaptive battery", and what does it mean for app developers?究竟什么是“自适应电池”,它对应用开发者意味着什么?
【发布时间】:2018-05-15 05:26:04
【问题描述】:

背景

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

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

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

问题

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

自适应电池使用设备上的机器学习来确定哪个 您将在接下来的几个小时内使用的应用程序,直到您不会使用这些应用程序 以后,如果今天有的话

在我看来,这可能是“与后台处理应用程序的战争”的又一步。

我发现了什么

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

我发现的只有用户观点的文章。

问题

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

  2. 开发人员在启用它时应该担心吗?

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

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

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

【问题讨论】:

  • @AndreyTyukin 谢谢。我确信这就是我所做的。猜错了。

标签: android battery


【解决方案1】:

我同意,这个“自适应电池”听起来令人担忧。这个名为Android P的新版本Android“将AI置于操作系统的核心,专注于智能和简单的体验”。 (1) 在开发者的博客上,他们引用了这样的话:“对于开发者来说,Android P 测试版提供了一系列利用这些新智能的方法,尤其是在增加与您的应用程序的参与度方面。” (1) 很明显,虽然他们正在努力为公众打造更好的操作系统,但他们并没有忘记他们的开发人员。

与 Android P 最相关的两件事是自适应电池和背景限制更改。我将尽我所能回答您的五个问题,但当然,由于 Android P 处于测试阶段,还没有解决所有问题。

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

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

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

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

2。启用时开发者应该担心吗?

如果开发人员不为此做计划,他们似乎可能会有一些担忧。查看我上面链接的电源管理附录,最大的变化是作业和警报延迟多长时间。但是,看起来如果您强制工作或发出警报,它们就会触发。

我认为,对于开发人员而言,明智的做法是听取他们针对打盹、应用待机和后台限制优化应用程序的警告。如果这不是您想要的路线,我强烈建议您至少确保在四个存储桶中的每一个中测试您的应用程序。

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 来说是否是一个好的步骤。

链接

  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/

【讨论】:

  • 所以,你说我们不应该担心这个?另外,我认为闹钟非常重要,因为它们永远不会受到影响......想象一下一个闹钟应用程序没有按时触发它的闹钟......它也会受到影响吗?或者人工智能会明白这是一项重要的任务,而不去碰它?
  • 我同意,绝对应该有一种方法来推送诸如警报之类的东西,如果警报由于存储桶而被推迟并在两小时后响起,那么它就没有用了。他们确实在电源详细信息的警报部分引用了“如果警报限制生效,所有警报将在预定窗口触发,并运行最多 10 秒。”在我看来,这句话意味着API中有一种强制警报的方法,这是个好消息。我对开发人员的唯一建议是利用他们提供的测试!
  • 我明白了。谢谢
  • “自适应电池”会阻止应用在屏幕关闭的情况下持续获取位置数据吗? (我是一个用户尝试使用各种应用程序来录制 GPX 曲目)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 2015-07-30
  • 2014-03-23
  • 2020-06-05
  • 2021-08-01
  • 2012-10-23
  • 1970-01-01
相关资源
最近更新 更多