【官网】性能(一)应用待机群组

前言

本文用于介绍Android9的一个新特性——应用待机群组(App Standby Buckets)。

中国版官网原文地址为:https://developer.android.google.cn/topic/performance/appstandby

路径为:Android Developers > Docs > 指南

正文

Android 9(API level 28)引入了一个新的电池管理特征,应用待机群组。应用待机群组帮助系统根据应用的最近使用时间和使用频率给应用对资源的请求排出优先次序。基于应用的使用模式,每一个应用被放置到5个群组中的一个。系统根据应用所在的群组,会限制每一个应用对设备资源的使用。

群组优先级

系统将每一个应用动态分配到某一优先级的群组中,并根据需要重新分配应用。系统可能依赖一个预加载的应用,该应用使用机器学习来决定每一个应用被使用的可能性,并且将应用分配到适当的群组中。如果系统应用没有展示在设备上,系统会默认根据他们最近被使用时间进行排序。更多活跃的应用被分配到给予应用更高优先级的群组中,从而让这些应用能够使用更多的系统资源。特别地,群组决定了应用工作运行的频率,应用可能触发警报的频率,以及应用可能收到高优先级【FCM】消息的频率。仅仅只有当设备正在使用电池电源的时候这些限制才适用;当设备正在充电的时候,系统不会把这些限制条件强加到应用上。

★ 注意:每一个厂商都可以为非活跃应用如何分配群组设置他们自己的标准。你不应该去尝试影响你的应用被分配到哪一个群组。相反,你应该聚焦于确保你的应用无论可能在哪个群组都表现良好。你的应用可以通过调用一个新的方法【UsageStatsManager.getAppStandbyBucket】找到它当前在哪一个群组中。

这些群组是:

  • 活跃:应用当前正在被使用或者最近刚刚被使用过
  • 工作集:应用经常被使用
  • 频繁:应用经常被使用,但不是每天
  • 罕见:应用不是频繁使用

另外,还有一个特殊的“从不”群组,为那些安装后从来没有使用过的应用而设计。系统给这些应用强加了几个限制。

★ 注意:那些在Doze白名单中的应用在基于限制的应用待机群组中是豁免的。
★ 注意:下面的描述适用于非预测性的场景。相反,当预测使用机器学习来预测行为时,群组被选择是为了用户接下来的行为,而不是基于最近的使用。例如,一个最近被使用的应用可能以分配到“罕见”群组而告终,因为机器学习预测该应用可能在接下来的几个小时内都将不会被使用。

活跃

如果用户正在使用一款app或者非常频繁使用一款应用,那么这款应用就在“活跃”群组中。例如:

  • 该应用启动了一个activity
  • 该应用正在运行一个前台service
  • 该应用拥有一个与被前台应用使用的内容提供者相关联的同步适配器
  • 用户点击了来自该应用的通知。

如果一款应用在“活跃”群组中,系统将不会放置任何限制在应用的工作、警报或FCM信息上。

工作集

如果应用经常运行但当前不是活跃的,那么这款应用处于“工作集”群组。例如,一款用户大部分时间都启动着的社交媒体应用很有可能在“工作集”群组中。如果应用被间接使用,那么也会被提升到“工作集”群组中。

如果应用在“工作集”群组中,系统会强加一些轻微的限制到它运行工作和触发警报的能力上。详情请查看【电量管理限制】。

 频繁

如果应用定期使用,但不是每天都必需的,那么它在“频繁”群组中。例如,一款用户在健身房运行的用于追踪锻炼的应用就有可能在“频繁”群组中。

如果应用在“频繁”群组中,系统会施加更大的限制在它运行工作和触发警报的能力上,并对高优先级的FCM消息上施加上限。详情请查看【电量管理限制】。

罕见

如果一款应用不经常使用,那么它在“罕见”群组中。例如,只有当用户待在某家旅馆时才会运行的该旅馆应用,可能会在“罕见”群组中。

如果应用在“罕见”群组中,系统会对它运行工作、触发警报以及接收高优先级FCM消息的能力施加严格的限制。系统也会限制该应用连接到因特网的能力。详情请查看【电量管理限制】。

最好的实践

如果应用已经为Doze和应用待机遵循了最好的实践,那么处理新的电量管理特征就不是难事。可是,一些以前工作得很好的应用行为可能会导致一些问题。

  • 不要试图篡改系统来把你的应用放入到指定的某个群组或其它群组中。系统把应用分配到群组的方法可以改变,并且每一个设备厂商都可以选择用他们自己的算法来写他们自己的用于分群组的应用。相反,你应该确保应用无论在哪个群组中都应该合适地表现。
  • 如果应用没用用于启动的Activity,它可能永远都不会提升到“活跃”群组中。你可能要重新设计你的应用让它拥有这样的Activity。
  • 如果应用的通知是失效的,那么用户将无法通过与通知交互来把触发应用提升到“活跃”群组。在这种情况下,你可能需要重新设计一些合适的通知,好让这些通知允许来自用户的响应。想了解指导意见,请查看材料设计【通知设计模式】。
  • 相似地,如果应用在收到高优先级FCM消息的时候没有显示通知,这将不会给用户和应用交互的机会来提升该应用到“活跃”群组。实际上,使用高优先级FCM消息的唯一意图是给用户推送通知,所以这种情形应该绝对不能发生。如果在没有触发用户交互时,你不恰当地标记FCM消息为高优先级,这样会导致其他负面的影响;例如,这样会导致你的应用耗尽它的配额,导致真正紧急的FCM消息被当成正常优先级。
★ 注意:如果用户重复地移除通知,将来系统会给用户限制通知的选择权。不要仅仅为了尝试保持你的应用在“活跃”群组中而使用通知给用户发送垃圾信息。
  • 如果应用被拆分为多个包,这些包可能在不同的群组中,并且有不同的访问级别。你应该确保使用被分配到不同群组中的包来测试应用,以确保应用正常运行。

结语

本文最大限度保持原文的意思,由于笔者水平有限,若有不准确或不妥当的地方,请指正,谢谢!

原文地址:https://www.cnblogs.com/andy-songwei/p/10694931.html

时间: 2024-10-30 02:21:33

【官网】性能(一)应用待机群组的相关文章

Vlang官网文档(中文翻译)-vlang中文文档--v0.1.0_20180625

PS:主要为自己学习,,,,看的时候顺便翻译的,,,渣翻(非全人工)勿喷. 介绍 V是一种用于构建可维护软件的静态类型编译编程语言. 它与Go相似,也受到Oberon.Rust.Swift的影响. V是一种非常简单的语言,阅读这份文档大概只需要半小时的时间,读完之后,您将学习到V的全部内容. 尽管很简单,但是它为开发人员提供了很多功能,你能用其它编程语言做的任何事情,都可以用V做到. Hello World fn main() { println('hello world') } 函数用 fn

Python PEP8 编码规范中文版-译自官网文件

写在前面(自补):初听PEP8一头雾水,不知所谓.啥是PEP8?为啥叫PEP8?PEP8是干啥的?-先了解下PEP吧. PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书. 我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题.提议.计划等,PEP通常是汇总了多方信息,经过

【Spark深入学习 -16】官网学习SparkSQL

----本节内容-------1.概览        1.1 Spark SQL        1.2 DatSets和DataFrame2.动手干活        2.1 契入点:SparkSession        2.2 创建DataFrames        2.3 非强类型结果集操作        2.4 程序化执行SQL查询        2.5 全局临时视图        2.6 创建DataSets        2.7 与RDD交互操作        2.8 聚集函数3.Sp

Oracle官网JNI简介和接口函数分析

第一章 概述 本章主要介绍JNI(Java Native Interface),JNI是一种本地编程接口.它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言.C++.汇编,写的应用和库之间的交互操作. JNI的最大优势在于没有强加任何限制在JAVA虚拟机的下层实现上,因此,JAVA虚拟机供应商能够提供JNI的支持而不影响虚拟机的其他部分,程序员只需写出一个版本的本地应用和库,就可使之运行在一切支持JNI的JAVA虚拟机上. 本章包含了以下的要点: ? JNI概述 ? 目标 ?

史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

史上最详细Windows版本搭建安装React Native环境配置 2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views 编辑推荐:稀土掘金 是一个高质量的技术社区,从 React Native 到 RxJava,性能优化到优秀开源库,让你不错过移动开发的每一个技术干货.各大应用市场搜索「掘金」,技术干货尽在掌握中. 说在前面的话: 感谢同事金晓冰倾情奉献本环境搭建教程 之前我们已经讲解了React Native的OS X

Bootstrap--模仿官网写一个页面

本文参考Bootstrap官方文档写了简单页面来熟悉Bootstrap的栅格系统.常用CSS样.Javascript插件和部分组件. 以下html代码可以直接复制本地运行: BootstrapPage1:常见的一种页面类型,页面导航,左侧分类.右侧新闻列表: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8&q

mysql官网的下载

mysql开始被sun公司收购,sun公司被oracle公司收购,所以又被oracle公司收购.Mysql主要功能和oracle差不多,但是更便宜,性能规模也比oracle小不少. 进入mysql的官网,点击下载列(英文看的心累,心累) 找到图片所述版本,点击 点击 GA版本下面有select oprating System选择哪种操作系统版本的,如果在windows下运行就选择windows,如果在linux下运行,就选择linux.select os version是选择操作系统的版本,我们

Tomcat 官网知识总结篇

Tomcat 官网知识总结一.Tomcat 基本介绍 1.关键目录 a) bin 该目录包含了启动.停止和启动其他的脚本,如startup.sh.shutdown.sh等; b) conf 配置文件和一些文档定义规则,其中server.xml文件是tomcat容器的主要配置文件; c) logs 该目录是默认的日志目录,其中控制台打印出来的内容,都会保存在catalina.log中; d) lib 该目录下主要放置了servlet和jsp需要的jar包 e) webapps 1.放置web应用程

劲爆 春节购机联通官网促销推荐

临近春节,又是一个让众多商家疯狂的节日,送券.赠红包.低价促销活动不断,更多的还是吸引消费者进行购物.当然在这样让全国人民都疯狂购物的节日里运营商也为辛苦一年的朋友们准备了各种促销活动,现在联通就推出了春节淘机活动,精选了多款手机为用户带来物美价廉的手机产品,此外联通在将近300个城市推出4G业务,网络的速度也非常快,下面就为大家介绍一下联通官网进行火爆促销的八款智能4G手机. 款款都劲爆 春节购机联通官网促销推荐 苹果iPhone6 苹果iPhone6这可以说是在今年大家非常想要购买的一款手机