谷歌也看不下去了!安卓内存巨大但为何还杀后台
[PConline杂谈]安卓是Google发起的 , 但现在安卓的一些行径 , 连Google也看不下去了 。 近日 , 安卓发起了一项针对安卓的调查——Google认为很多OEM安卓机厂商 , 其推行的安卓系统存在严重的杀后台问题 , App难以在后台存活 。
文章图片
Google最近和一些安卓厂商不对付了
Google认为 , 现今很多OEM的安卓系统都违背了Google的政策 , 令App无法在后台持续运行 。 虽然大多数安卓应用并不需要在后台保留进程 , 但也有部分类别的确有此类需求 , 例如健康记录App , 需要持续记录数据 。 然而 , 部分OEM安卓系统却无法满足此类需求 , 安卓开源项目AOSP的错误跟踪器就曾经揭露出某些OEM厂商滥用安卓机制 , 禁止第三方应用在后台运行 , 甚至还杀死了AccessibilityService这个系统级别的无障碍服务进程 。
Google实际上为安卓系统制定了杀后台的规则 , 但OEM厂商们却在这方面并不透明 , 开发者和用户无法知道OEM安卓到底会杀掉怎么样的App后台 。 有时候 , OEM安卓厂商会将某些App加入白名单 , 例如部分社交和通讯软件 , 以确保消息的及时推送 。 但这些机制对于用户和开发者来说 , 相当于黑箱 , 人们无法判断到底哪个App能在后台运行、哪个不能 , 最终的体验并不如人意 。
安卓基于Linux系统 , 本身拥有完善的多后台机制 , 在诞生之初其桌面级的“真后台”是玩家津津乐道的卖点 。 近年来安卓机的内存越来越大 , 甚至已经堆到了16G的容量 , 和桌面PC相比也不遑多让 。 但为何安卓生态中 , 杀后台的现象反而变严重了?这就来简单聊聊这个问题吧 。
为什么安卓系统要激进杀后台?
原生安卓系统支持App后台保留进程 , 但传统上也有一套循序渐进的后台退出机制 。 在传统上 , 安卓系统会为App进程分配不同的状态 , 例如Foreground_App(前台应用)、Visiable_App(可见应用)、Secondary_App(二级应用)、Hidden_App(隐藏应用)、Content_Provider(内容提供器)、Empty_App(空应用)等状态 。 当内存不足的时候 , 系统会优先终止Empty_App进程和服务 , 将内存释放出去;内存再次吃紧 , 就开始对Content_Provider动手脚了 , 以此类推 。
文章图片
安卓App不同的状态 , 系统会据此判断杀进程的优先级
但是 , 并不是每个App都老老实实为进程注册合理的状态的 。 很多安卓App会通过一些手段 , 来修改自己进程的属性 , 来长期驻留后台 。
例如 , 一些流氓App将startForeground来把自己注册成为前台应用 , 让自己的后台成为最高优先级 , 永远不会被系统干掉;又例如 , 有流氓App会利用安卓的悬浮窗机制 , 设置一个1像素大小的透明悬浮窗 , 让App始终处于激活状态 , 避免后台被杀;又例如 , 流氓App们抱团取暖 , 后台进程利用安卓系统的周期性任务进行链式唤醒 , 开启一个App等于唤醒N个App的后台……
文章图片
文章图片
流氓App驻留后台的经典方法——利用广播接收器触发后台自启动
App们的这些行径 , 消耗了额外的资源 , 对续航和流畅的负面影响肉眼可见 。
为此 , 官方的安卓系统也作出了一些应对 。 例如针对App乱注册startForeground状态 , 安卓7.0之后会在通知栏强制显示“XX正在后台运行”;又例如安卓收紧了悬浮窗权限 , 使用悬浮窗必须开启相应开关;而安卓11则很大程度上了App之间的链式唤醒等等 。
- 华为|别不信!魅族如今处境,雷军早有预料,小米也早已体验
- 小米科技|预算只有两三千买这三款,颜值性能卓越,没有超高预算的用户看看
- |互联网运营是什么?快来看看你是哪种类型的运营
- 5G|关于5G,华为赢了
- GPU|天玑8000新机快了,相机的配置看上去挺不错,准备冲吗?
- iPhone|iPhone14Pro打孔屏你受不了,刘海咋看习惯了?
- 物联网|据说,物联网也可以称之为“一张想想的网络”,物联网世界是梦
- 物联网|?内容创作者:要明白文章首先是写给推荐系统看的!
- 多家银行宣布打造AI数字员工?虚拟人风口下银行也不要真人了?
- 华为|Mate50也不香了,麒麟9000+5000万徕卡三摄,华为老旗舰降至冰点