Android 省电模式自定义,打造更适合自己的长续航体验

2021-07-22 18:10:24 Author: sspai.com 阅读量: 100
觉得文章还不错?,点我收藏



如果打开手机的省电模式,手机会发生什么改变?

在过去使用旗舰机的几年里,续航焦虑一直萦绕在我使用手机的每一个瞬间,对于消费者来说延长手机续航最直接的办法就是点击系统里的省电模式/低电量模式开关,但随之而来手机的功能就会发生一系列变化,这些所有的变化都是被手机厂商预先定义的。

以搭载 iOS 的 iPhone 为例,打开低电量模式 会暂停电子邮件获取、后台应用刷新、自动下载以及在视觉上减弱部分视觉效果、降低屏幕亮度等。除此之外,iOS 也会暂时降低 iPhone 处理器芯片的峰值性能以获取更高的能效比1

而在 Android 上因为厂商众多,几乎每家厂商都对省电模式有着自己的理解和想法,也就推出了不同的省电模式政策,甚至还会强行停止应用的后台2。与此同时,Google 似乎省电模式的行为考量也在不断变化,几乎每个大版本 Android 更新都会对此作出改动,以四年前的 Android O 为例,开启省电模式后状态栏和导航栏都会有一条大红边,所有过渡动画都被强行关闭,可谓体验极差。而次年到了 Android P,省电模式下这些极度影响使用体验的「大红条」统统不见,动画也回归,转而通过更积极地限制应用后台来节省电量3

找截图太难了,不如直接从办公室翻一台旧手机吧,猜出有奖。

而在今天,如果你开启了省电模式,你的 Android 手机可能还会 强制开启暗色主题、关闭待机时的常亮显示(AOD)、关闭震动反馈……除此之外,如果你足够细心,你还会感觉到屏幕变暗、开启应用的速度变慢等一系列因为省电模式带来的功能牺牲。

省电模式带来的尴尬

难道所有的尴尬都来自于一厢情愿?

省电模式背后所被定义的那些行为都是被强制执行的,厂商也不会根据机型硬件不同来特殊调整,某个厂商旗下千奇百怪的机型却要面对同一个省电模式,可能导致的结果就是对症不对药,用得还不爽:我的手机是明明 LCD 屏幕,启用暗色主题并不会让手机变得更省电,出行的时候却因为此让我看不清屏幕上内容……

另一方面,我日常相当依赖 AOD 显示,它可以使我在工作或是娱乐时瞄一眼桌上的手机,就可以得知当前时间、错漏的通知信息,而无需我用手擡起或是点亮屏幕。Google 没良心的,这解放双手的好功能居然和省电模式相斥,二者只能存一。

究其背后原因,一来厂商所假想的省电模式的使用场景过于单一,「手机没电了才开启」,而不会想到当下已经有许多用户开始灵活应用,比如在长时间工作闲置手机时开启省电模式减少待机耗电,或是出于对机型续航不满,日常开启使用等多种场景。二来则是 Google 的奇怪做法,诸如省电须要暗色,这只适用于 Pixel 和其他 OLED 设备,怎能轻率推向全阵营。

用命令行的确是麻烦了一点儿

这点不痛不痒的问题难不倒我们的极客们。AOSP 的省电模式政策其实都开放了 源代码 ,而且可以通过 adb 调试桥以命令行的方式进行更改,无需 Root 权限。

首先当然是安装完毕 adb 调试桥,具体教程 Windows 上可以参照 这篇文章。如果不想安装的话,其实 WebADBAdb在线执行器 理论上也能让你通过浏览器来对设备进行 adb 调试。

adb shell # 开启 adb 终端连上手机
dumpsys power | grep -A 128 "Battery saver policy" # 查看省电模式的政策

 

在返回的结果中我们可以看到 battery_saver_constants 这个参数,我们可以通过修改它的值来自定义省电模式的参数:

settings put global battery_saver_constants "advertise_is_enabled=true,datasaver_disabled=true,enable_night_mode=true,launch_boost_disabled=true,vibration_disabled=true,animation_disabled=false,soundtrigger_disabled=true,fullbackup_deferred=true,keyvaluebackup_deferred=true,firewall_disabled=true,gps_mode=2,adjust_brightness_disabled=true,adjust_brightness_factor=0.5,force_all_apps_standby=true,force_background_check=true,optional_sensors_disabled=true,aod_disabled=true,quick_doze_enabled=true"

修改其中的 true 或者 false,执行命令后就可以写入到手机系统中,一般来说重启也不会失效,但不排除部分厂商会设置在手机开机的时候覆写成默认参数,比如看起来非常老实的 Sony。

想要回归默认参数的话也相当简单:

settings delete global battery_saver_constants

等等,每一次改动都需要连上电脑敲命令?这也太麻烦了,参数都还没来得及摸透,我就已经开始否定这种方案了。另一方面,我也希望省电模式能有不同力度的划分,以索尼手机系统为例,哪怕是省电模式(STAMINA Mode)也有「性能优先」与「省电优先」等多个不同的策略,方便用户根据场景切换。

好在终于有开发者站了出来,开发了一款 开源 应用 Buoy,让我们可以通过图形界面来控制系统省电模式的具体政策。

图形化界面定制你的省电模式

修改省电模式的策略并不一定需要 root 权限,如上文所示,只使用 adb 调试桥应该就能做到;同理 Buoy 也针对设备 root 与否提供了两种授权方式。以不方便 root 的三星和索尼为例,在命令行中直接打出 adb shell pm grant com.draco.buoy android.permission.WRITE_SECURE_SETTINGS 进行授权即可。进入应用主界面后,在 Configuration 项下有罗列所有能够更改的省电模式行为,同时开发者也贴心地附上了一句话说明,来帮助我们理解每个开关背后代表的行为。

接下来就简单分享一下我在使用中进行自定义的几个选项吧。

Advertise power saver 其实就是让系统通知到应用手机正处于没电的警戒状态,希望应用能够「好自为之」,尽量少用一些电量。这个选项默认开启,我也不建议进行更改。

Enable data saver 其实就是在开启省电模式的同时开启节省流量模式,大部分后台应用都跑不了流量,以此或许能起到省电的效用。这个选项默认关闭,我试了一下后觉得其实咱们社会主义人民也不缺流量,也就保持关闭了。

Enable night mode 就是上文提到的在开启省电模式同时开启暗色模式。在 OLED 设备上我建议开启,的确能省不少电;在 LCD 设备上嘛就看你自己的喜好了。这个选项默认开启,十分恼人,建议学习 iOS 分开来控制比较人性化。

Enable launch boost 意思就是在应用冷启动的时候让 CPU 无脑最大化输出性能,以尽可能缩短应用启动时间。应该是省电模式下唯一一个牺牲芯片性能的地方,实际体验下来开关与否差距还是比较明显的,开启应用的速度比较影响心情。此选项默认关闭,建议日常就使用省电模式/高效能中端芯片(比如骁龙 7 系列)用户开启来减少性能损失,旧旗舰芯片(如骁龙 835、845)等用户关闭来有效提升续航。

Enable vibrations/Enable animations 这两个就一起说了,开启震动/开启动画。有些设备的震动反馈的确很带感,开了省电模式后还想继续体验的话就需要打开前者;觉得系统动画无所谓的话可以关闭后者,一键回到 Android 8 时代。

Location mode 指的是开启省电模式后应用对于定位权限的调用。默认情况下是 All disabled when screen off,屏幕关闭时直接禁用所有定位请求,你也可以根据自己的需求来适当放松或收紧,我就没有更改。

Adjust brightness 默认关闭,因为屏幕亮度过暗会直接影响我们的使用体验。不过这里我还是会手动打开并调节亮度比例,屏幕作为耗电大户,适当减少一些亮度不仅有助于省电,还能减少设备的发热情况看看 iOS 在设备发热时强行大幅降低屏幕亮度就知道多有效了。至于到底降低多少亮度就看个人喜好了,我会保持在 85~95 的较高值。

Force apps into standby/Force backgroud check/Quick doze enabled 这几个我就一块说了,都是强化 Android 原生系统底层的省电机制如 Standby、Doze 来达成的,具体详情可以查看 这篇文章 。这三个选项默认都开启,我也都建议开启。

Always-on-display enabled AOD 爱好者福音,就算再耗电也要开着的朋友们再也不用愁苦省电模式会关掉你们心爱的 AOD 了!此选项默认关闭,打开后即可在省电模式下继续使用 AOD。

除了自己根据各个选项定义省电模式,我们还可以选择开发者预留的、从轻度到极限 4 种配置来调节省电模式的激进程度。若是能自定义这些配置文件就更好了,可以真正实现快捷切换不同程度的省电模式。

新鲜火热的 Android 12 滚动截图

值得注意:

  • Buoy 修改的是 Android 原生系统的省电模式,大多数厂商定制系统的「省电模式」可能会在此基础上进行补充添加(如三星 One UI),但也有部分定制系统抛开这套省电模式,独立制作一套。以 MIUI 为例,其开启「MIUI 优化」后的省电模式自成一套体系,并不涉及 Android 省电模式,Buoy 在这类系统上会失效。
  • Buoy 虽然是一款开源应用,但在 Play 商店里依旧象征性地售卖 1 美元,有条件的读者应该也可以尝试自行编译。

省电模式真的有必要吗

写完这篇文章,我不禁开始思索:在快充技术和移动电源普及的今天,街头随处可见供人租用的共享移动电源,省电模式存在的意义是什么?在我看来,无论是随身携带移动电源和数据线,还是在商场里租用,这些都需要付出一定的成本,可能是收纳空间的逼仄,可能是金钱或者等待充电的时间成本。而省电模式可以说是延长手机续航最免费、简单、快捷的方式了,在 Buoy 的用户留言里,不乏赞美之辞:「睡醒看到电量剩余 99%」「第一次工作到上午十点还有 93% 的剩余电量」。

也希望这款小工具能够在关键时刻帮到你,可以不用再说出那句「还有几分钟就快到家了,请再坚持一下。」




觉得文章还不错?,点我收藏



如果文章侵犯到您的版权,请联系我:buaq.net[#]pm.me