我同意,“自适应电池”听起来令人担忧。这个名为Android P的新版本“将人工智能置于操作系统核心,并专注于智能和简单的体验。”(1)在开发者的博客上,他们引用了:“对于开发者来说,Android P beta提供了一系列利用这些新功能的方法,特别是在增加与您的应用程序的互动方面。”(1)很明显,虽然他们试图使他们的操作系统更好地服务于公众,但他们没有忘记他们的开发者。
最令人担忧的两件事是Adaptive Battery和Background Restrictions的变化。我会尽力回答你的五个问题,但当然,由于Android P处于测试版阶段,还有很多问题需要解决。
1. “自适应电池”究竟是什么?
“在Android P中,我们与DeepMind合作推出了一个名为Adaptive Battery的新功能,它可以优化应用程序使用电池的方式”(1)。Android使用DeepMind对应用程序进行分类,分为“活动”到“稀有”的不同“应用待机桶”。根据应用程序所处的待机桶,它会改变警报、作业、网络和高优先级Firebase Cloud消息的限制。
这些桶分为:活跃 - 表示应用当前正在使用。工作集 - 表示应用经常使用。频繁 - 表示应用经常使用,但不是每天都使用。罕见 - 表示应用不经常使用。显然,这些桶并不明确,因为它们依赖于Android P实施的DeepMind AI。请参阅
this link以获取有关桶及其使用方式的更好解释。另外,
this link是电源管理限制的附录,也将阐明自适应电池的情况。
他们还说:“如果您的应用程序针对Doze、App Standby和Background Limits进行了优化,自适应电池应该可以在开箱即用时很好地工作。我们建议在每个桶中测试您的应用程序。”
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中,用户只能看到哪些应用程序在消耗电池,但无法设置限制。
我发现了一个有趣的例子
(这里):“例如,假设您晚上只看Instagram。在这种情况下,Adaptive Battery将学习此行为,并在白天将应用程序保持在睡眠模式,然后在您最有可能使用它时唤醒它。” 这是他们为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/ Android P 如何延长电池寿命的方法。