一些深谙国内应用生态的本地化定制系统对于敏感权限、后台管理把控更为严格,让本该正常工作的应用一下子没了活动空间,只好就此罢工。
作为用户,我们能为那些被冤枉的应用做些什么呢?
第一步:给足应用运行所需的权限
与 iOS 寥寥几项权限控制不同,Android 上的权限可谓纷繁复杂,除了常规的相机、麦克风、定位等权限,还有一些特殊权限,比如「显示在其他应用的上层」(Display over other app),也就是我们常说的悬浮窗权限,比如修改系统设置(Modify system settings)、通知使用权(Notification access,用以读取你的通知)、使用情况访问权限(Usage access,用以读取你的应用使用情况)等等,一些需要 App Ops 甚至 adb 才能授予的隐藏权限就不在这里提了。
古话说,「疑人不用,用人不疑」,既然最后选择相信这个应用,那么它所要求的权限我们就得尽量满足。
然而在一些定制系统中,这些特殊权限的设置藏得相对较深,如 ColorOS 6 就把这一部分设置移到了 安全->应用权限->不常用权限
当中,EMUI 把入口放在了 应用->权限管理
右上角的下拉菜单里,三星的 OneUI 的处理方式类似。
各个系统的做法各不相同,如果你懒得找,更明智一点的做法是使用各家基本都有的内置在设置 app 中的搜索,只需要搜索「权限」二字,基本就能命中。
在给予应用充足且必要的权限后,我们接下来要解决的,主要就是应用的存活问题。
第二步:关闭此应用的电池优化
「电池优化」是上述提到的特殊权限中的一项,但却与应用运行有关,因此值得我们单独拿出来说一说。
Android 从 6.0 开始引入 Doze 和 App Standby 两大省电机制,并不断加强、优化直到现在最新的版本。这两个省电功能会在手机处于未充电状态时限制应用的部分行为,达到省电的目的。但这种「省电」可能也是以掣制部分应用正常运行为代价的。
在默认的情况下,除开电话、信息、GMS框架以及一些系统关键组件,其余的应用全部为电池优化状态。用户可以手动将应用设置为「未优化」,也就是我们常说的加入白名单中。应用也可以通过提醒跳转或者是触发系统对话框请求用户将他们加入到白名单。
在 Android 的 相关文档 中,Google 也给出了什么情况下可以接受将应用加入白名单,比如像国内的微信那样无法使用 FCM 推送,只能依赖其他技术手段来传递通知的即时通讯类应用,比如像 Tasker 那样需要执行自动化操作的任务自动化类应用,比如需要持续使用传感器的运动、睡眠监测类应用……根据下图这份用例,我们可以手动将遇到问题、符合情况的应用添加到「未优化」白名单。
而在定制系统中呢?
仔细搜寻,我们还是能发现「电池优化」的踪迹,并且一些国产厂商可能赋予了其更多的功能等价,比如将其等价为「允许后台运行」、「自启动」并成为了后台管理的一部分:在 Nokia 国行的后台活动管理 App 中,如果用户勾选了某个应用的「自启动」,那么同时也会将此应用加入到未优化白名单。
上面提到的 ColorOS 6 在设置中的「电池」选项中则专门有一项名为「智能耗电保护(推荐)」的开关,将其关闭后,你可以在新出现的「自定义耗电保护」中找到对应应用,并且可选允许、禁止、智能限制后台运行。将应用标记为「允许后台运行」,则相当于将应用加入了未优化白名单。顺带一提,在默认的智能限制后台运行选项下,微信会被加入白名单。
EMUI 则将类似的功能放在了 应用->应用启动管理
当中,从这里给出的功能介绍来看,华为直接将自启动、关联启动和后台运行整合到了一起,默认情况下系统会根据应用和使用情况对这三者的具体状态进行分配,一些小众应用可能也会因此被识别错误而无法后台;因此对华为用户来说,如果某款应用无法正常运行,在这个界面为该应用开启手动管理并允许其后台运行,一般能够解决问题。
如何验证已经加入白名单呢?
在黑阈、Servicely 等能干涉应用的 App Standby 状态的优化类应用中,你可以看到被加入白名单的应用已经处于「无法待机」的状态了。加入白名单是不是就意味着应用可以为所欲为了呢?Google 的说法是「部分免除」,也就是说仍然保留有部分限制。
那么,怎么样才可能让应用保持到更高水平的可用度呢?
第三步:用好后台卡片锁定
在原生 Android 的设计中,多任务界面的卡片其实更多与「任务」这个概念有关,与应用的状态关系不大。哪怕划掉这个应用的卡片,其也依旧可以在后台执行服务,比如我们熟知的音乐、去广告服务等。
但是用户们似乎更欢迎 iOS 上的那一套「划掉卡片即退出应用」的简明逻辑,国产的定制系统们也就跟着效仿起来,为划掉后台卡片这个动作附加上「强行停止此应用」这个操作。
想要保留后台,那就不能划掉这个卡片,于是又诞生了独具特色的「锁定后台卡片」这个功能。为了避免一不小心干掉了某个正在执行的任务,用户需要多任务界面锁定那个应用的后台卡片,以 ColorOS 6 为例,在多任务界面点击卡片右上角的三横菜单,随后选择「锁定」即可;在三星的 OneUI 中,我们则可以直接长按多任务卡片上的应用图标来呼出后台锁定菜单,被锁定的应用卡片右下方会出现一个小锁图标,再次点击图标即可解锁。
但也有 ROM 做得不够直观,比如在 EMUI 中,多任务界面不会有任何关于锁定后台任务的提示,只有当我们尝试下划卡片并松手,对应任务卡片上才会出现后台锁定图标。
还有疑难杂症?别杀我后台
随着部分国产手机厂商渐渐「走出去」,各种形形色色的后台管理方案也不可避免地出口了。毫无疑问,在这片生态上开出的畸形花朵,并不适合在异国他乡的土壤上绽放。
在手机上经受了无数次难以理解的「我杀我自己」后,一些外国友人们终于呐喊出了自己想对厂商们说的话:Don't kill my app!(别杀我后台!)著名 Android 开发商 urbandroid-team (曾开发了薄暮微光、Android 睡眠伴侣等大受欢迎的应用)释出了开源网站 https://dontkillmyapp.com/ ,不仅对各个 Android 厂商旗下系统的滥杀后台程度作了评分,还针对性地给出了对应的解决办法。
为了让更多人接受,用于评分的图标已经从💩换成了👎,但架不住刺眼配色背后满满的血泪控诉和嘲讽。从 具体的评分标准 来看,4~5 个👎已经处于默认配置下不太可用的地步了,1~3 个👎还可以勉强接受。总的来说,这个评分与我多年来的使用体验基本相符。
无论你是想一劳永逸地解决在当前系统遇到的所有滥杀应用现象,还是只是豁免某一应用被频频冤杀,都值得点进对应厂商的色块去一探究竟。以我手上的 Nokia 7 plus 为例,哪怕是使用国际版 Android One,在出厂预设的情况下甚至会将我已放行的白名单应用杀死。遵循此网站针对大多数 Nokia 手机的方案,只需要停用名为 Power saver 的系统组件即可。
Tips:如何非 root 停用系统组件、冻结毒瘤,不妨来看看 这篇文章 。
结语
开放性、可定制性是 Android 生态的一大特色,不同厂商的定制系统就好像同一片土壤上结出各色各样的果实。果实之间就有了难以统一界定的差异:各个定制系统都有自己的一套后台管理方案,且其中的名词术语「未优化」「允许后台运行」「自启动」背后的含义可能都各不相同,定义混乱、没有统一的说法。
尽管如此,但它们都有一个共同点:都想力保自己的用户在国内的应用生态下能够获得足够好的体验,或者说保证自家设备能够「开箱即用」。相比原生 Android,它们拥有许多本地特色的、针对性的优化,比如微信白名单、毒瘤压制、切断唤醒等。用户往往不必费心什么就能收获不错的体验,只需要专注于应用本身的使用即可。这是最最理想的情况,但现实距离这个理想还差一些距离,对于部分应用,我们依然需要有针对性地进行「特殊关照」。
这就是本篇文章的意义所在,希望它能帮到你。
> 下载少数派 客户端、关注 少数派公众号 ,让你的 Android 机更好用 🚀
> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺 🛒