应用待机分组管控是啥

1. 应用待机群组是啥?

Android 9 引入了一个新功能,叫应用待机群组。简单来说,就是根据你最近使用应用的频率和时间,系统会把应用分成不同的“群组”。每个群组的应用能用的系统资源不一样,比如后台任务、闹钟、网络请求啥的。系统会根据你用的多少,动态调整应用在哪个群组里。

0

2. 群组分类及限制

系统会把应用分成五个群组,每个群组的限制不一样。比如,你常用的应用会被分到ACTIVE群组,几乎没啥限制;而不常用的应用可能会被分到RARE群组,限制就多了。这些限制主要是为了省电,只有在用电池的时候才会生效,充电的时候就没这些限制了。

3. 群组分类及限制

群组 (Bucket)

Jobs (最长运行 10 分钟)

Alarms (最长运行 10 秒)

Network (临时恢复时长:10 分钟)

FCM 高优先级

ACTIVE

无限制

无限制

无限制

无限制

WORKING_SET

每 2 小时

每 6 分钟

无限制

无限制

FREQUENT

每 8 小时

每 30 分钟

无限制

10 次/天,之后降级为普通

RARE

每 24 小时

每 2 小时

每 24 小时

5 次/天,之后降级为普通

NEVER

从不

从不

从不

从不

4. 需要注意的几点

厂商自定义:每个手机厂商可以自己定标准,决定哪些应用是“不活跃”的。

别瞎折腾:开发者不应该试图去影响应用在哪个群组,而是应该确保应用在当前的群组里能正常运行。

查群组:应用可以通过调用 UsageStatsManager.getAppStandbyBucket() 来查自己当前在哪个群组。

白名单例外:如果应用在低电耗模式的白名单里,那这些群组限制就不适用了。

5.五个群组的特性

以下是五个应用待机群组的详细特性:

群组 (Bucket)

特性描述

示例场景

系统限制

活跃 (Active)

用户当前正在使用应用,应用处于活跃状态。

- 应用已启动一个 Activity

- 应用正在运行前台服务

- 应用的同步适配器与某个前台应用使用的 content provider 关联

- 用户在应用中点击了某个通知

无限制

系统不会对应用的作业、报警或 FCM 消息施加任何限制。

工作集 (Working Set)

应用经常运行,但当前未处于活跃状态。

- 用户每天都会使用的社交媒体应用

- 应用被间接使用(如通过其他应用调用)

轻度限制

- 作业:每 2 小时运行一次

- 报警:每 6 分钟触发一次

- 网络:无限制

- FCM:无限制

常用 (Frequent)

应用会定期使用,但不是每天都必须使用。

- 用户在健身房使用的锻炼跟踪应用

- 每周使用几次的应用

较强限制

- 作业:每 8 小时运行一次

- 报警:每 30 分钟触发一次

- 网络:无限制

- FCM 高优先级:每天最多 10 次,之后降级为普通优先级

极少使用 (Rare)

应用不经常使用,偶尔才会用到。

- 用户仅在旅行时使用的酒店应用

- 每月使用几次的应用

严格限制

- 作业:每 24 小时运行一次

- 报警:每 2 小时触发一次

- 网络:每 24 小时连接一次

- FCM 高优先级:每天最多 5 次,之后降级为普通优先级

从未使用 (Never)

应用安装后从未运行过。

- 用户下载但从未打开过的应用

极强限制

- 作业:从不运行

- 报警:从不触发

- 网络:从不连接

- FCM:从不接收


简单总结一下:应用待机群组根据应用的使用频率和活跃状态,将应用分为五个等级。常用的应用资源多,不常用的资源少,这样既能保证用户体验,又能节省电量,一举两得!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++后端开发面经

字节跳动 客户端开发 实习 一面(50min) 自我介绍是否愿意转语言,是否只愿意搞后端选一个项目来详细谈谈HTTP和HTTPS有什么区别?谈一下HTTPS加密的具体过程: 非对称加密 对称加密 证书认证的方式 非对称加密是为了保证对称密钥的安全性。 对称…

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程(持续更新)

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路(持续更新) 写在前面: 1、A题、C题将会持续更新,陆续更新发布文章 2、赛题交流咨询Q群:1037590285 3、全家桶依旧包含: 代码、…

如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南

引言:你真的会用 history 吗? 有没有遇到过这样的情况:你想回顾某个重要命令的执行记录,却发现 history 只列出了命令序号和内容,根本没有时间戳?这在运维排查、故障分析、甚至审计时都会带来极大的不便。 想象一下,你在服务器上误删了某个文件,但不知道具体是几点执…

Redis缓存异常场景深度解析:穿透、击穿、雪崩及终极解决方案

一、引言 在高并发系统中,缓存承担着流量洪峰的削峰填谷作用。然而当缓存层出现异常时,可能引发数据库级联崩溃,造成系统瘫痪。本文将深入剖析缓存穿透、缓存击穿、缓存雪崩三大典型问题,并提供企业级解决方案。文章包含7种防御策…

Scala 之 正则

regex 函数提取 import scala.util.matching.Regex// 输入表达式 val expression "[a#0, round(a#0, 0) AS round(a, 0)#1, abs(a#0) AS abs(a)#2, len(cast(a#0 as string)) AS len(a)#3]"// 定义一个正则表达式来提取函数名称 val functionPattern: Regex &quo…

CI/CD-Jenkins安装与应用

CI/CD-Jenkins安装与应用 Docker安装Jenkins docker-compose.yaml version: "3.8" # # 自定义网络配置 # networks:cicd:driver: bridgeservices:jenkins:# 尽量使用新版本的Jenkins, 低版本的Jenkins的有些插件使用不了# jenkins/jenkins:lts-jdk17是长期支持版…

验证Linux多进程时间片切换的程序

​​ 一、软件需求 在同时运行多个CPU密集型进程时,需采集以下统计信息: 当前运行在逻辑CPU上的进程ID每个进程的运行进度百分比 实验程序设计要求: 1. 命令行参数 参数说明示例值n并发进程数量3total总运行时长(毫秒&…

IvorySQL:兼容Oracle数据库的开源PostgreSQL

今天给大家介绍一款基于 PostgreSQL 开发、兼容 Oracle 数据库的国产开源关系型数据库管理系统:IvorySQL。 IvorySQL 由商瀚高软件提供支持,主要的功能特性包括: 完全兼容 PostgreSQL:IvorySQL 基于 PostgreSQL 内核开发&#xf…

树莓派超全系列文档--(13)如何使用raspi-config工具其二

如何使用raspi-config工具其二 raspi-configPerformance optionsOverclockGPU memoryOverlay file systemFan Localisation optionsLocaleTime zoneKeyboardWLAN country Advanced optionsExpand filesystemNetwork interface namesNetwork proxy settingsBoot orderBootloader…

QT音乐播放器(1):数据库保存歌曲

实现功能:用数据库保存本地导入和在线搜索的歌曲记录 目录 一. 保存本地添加的歌曲 1. 使用QSettings (1)在构造函数中,创建对象。 (2)在导入音乐槽函数中,保存新添加的文件路径&#xff0c…

自动化发布工具CI/CD实践Jenkins常用工具和插件的使用

1、安装常用工具 名称版本备注jdkjava8代码打包所需git1.8.3.1maven3.6.3注意配置私服内容nvm0.39.3多Node.js环境管理工具Node.jsv14.18.0 / v16.17.1包管理工具yarn1.22.15包管理工具 1.1 安装jdk Jenkins 需要使用java11 及以上,但是代码打包依赖jdk8&#xff…

shared_ptr和 weak_ptr的详细介绍

关于 shared_ptr 和 weak_ptr 的详细介绍及使用示例: 1. shared_ptr(共享所有权智能指针) 核心特性 引用计数:记录当前有多少个 shared_ptr 共享同一个对象。自动释放:当引用计数归零时,自动释放对象内存…

Spring AI MCP 架构详解

Spring AI MCP 架构详解 1.什么是MCP? MCP 是一种开放协议,它对应用程序向大语言模型(LLMs)提供上下文信息的方式进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB-C 接口。就像 USB-C 为将设备连接到各种外围设备和配件提供了一种…

腾讯系AI应用,可以生视频,3D模型...

以下注册手机后就可以使用了。 腾讯智影 智能抹除-在线去水印去字幕-抹除水印字幕-腾讯智影 混元(文字,图片生成3D) 腾讯混元3D 混元视频(文字生成视频,可惜右下角有文字) https://video.hunyuan.tencen…

数据结构(并查集,图)

并查集 练习版 class UnionFindSet { public:void swap(int* a, int* b){int tmp *a;*a *b;*b tmp;}UnionFindSet(size_t size):_ufs(size,-1){}int UnionFind(int x){}void Union(int x1, int x2){}//长分支改为相同节点int FindRoot(int x){}bool InSet(int x1, int x2)…

数据结构:探秘AVL树

本节重点 理解AVL树的概念掌握AVL树正确的插入方法利用_parent指针正确更新平衡因子掌握并理解四种旋转方式:左单旋,右单旋,左右双旋,右左双旋 一、AVL树的概念 AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis&…

电源系统的热设计与热管理--以反激式充电器为例

前言 反激电源常用于各种电子设备中,比如充电器、适配器等,它们通过变压器进行能量转换。高温环境可能对电子元件造成影响,特别是像MOSFET、二极管、变压器这样的关键部件,导致效率变低,甚至可能导致功能失效。还有安…

linux课程学习二——缓存

一.文件io与标准io的一个区别 遇到死循环可以ctrl c结束进程 使用printf输出,输出没有问题 用wirte输出,参数1,可以理解为上面介绍的linux标准文件描述符的1(STDOUT)标准输出,我们加上一个死循环while&…

Kafka中的消息如何分配给不同的消费者?

大家好,我是锋哥。今天分享关于【Kafka中的消息如何分配给不同的消费者?】面试题。希望对大家有帮助; Kafka中的消息如何分配给不同的消费者? 在 Kafka 中,消息是通过 主题(Topic) 进行组织的&…

Android的安全问题 - 在 Android 源码的 system/sepolicy 目录中,区分 public、private 和 vendor的目的

参考:Google文档 在 Android 8.0 及更高版本中自定义 SEPolicy 在 Android 源码的 system/sepolicy 目录中,区分 public、private 和 vendor 是为了模块化 SELinux 策略,并明确不同部分的访问权限和接口边界。这种设计主要基于以下原因&…