探究GMS耗电的真正原因

GMS是什么?

Google Mobile Service简单的说就是谷歌移动服务。GMS是Google开发并推动Android的动力,也是Android系统的灵魂所在。包括GooglePlayStore在内的一系列Google全家桶依托于该服务,在国外包括许多其他的应用如Google Messages等基础应用也是需要GMS支持的。所以Google封锁Huawei对于GMS的使用还是比较致命的。(不知道Huawei能在AOSP上翻出什么花)

GMS为什么会耗电?

首先由于我们国情的原因,我们是连不上Google服务器的,这就会导致GMS在后台一直“呼叫”服务器却得不到应答,然后就会一直执行这个命令造成耗电。解决这个其实很简单,像国内的MIUI、EMUI等国产ROM就直接选择不安装或者禁用,让用户自己选择打开或者刷入OpenGapps,但是如果你是洋垃圾的话,一般是很难禁用的(系统级别的依赖),那么长时间连接外网就是唯一的选择了.

GMS是如何造成耗电的?

了解Android的其实都知道,在6.0+时代推出了Doze(嗜睡模式)和AppStandBy状态,对于长时间不动的设备,会自动进入Doze,但是条件比较严格,通常都要好几个小时,针对这个特性,许多的软件调用了这个api出了用于省电的神器如黑阈和绿色守护。但是这个对于GMS没有用的(毕竟Android是Google家的),它还是会不断地调用Wake_Lock这个唤醒锁导致设备不能进入Doze,造成耗电。(Doze模式下应用后台有点类似iOS的墓碑机制,会把应用进程进行缓存,并且限制后台操作)

处理办法

在黑阈、绿色守护、阻止运行、冰箱、Xposed的共同尝试下,发现还是黑阈的动态GMS好用,然后禁用掉Google系APP时不时弹出的通知,再配合绿色守护,以及挂着QQ、微信的后台,看起来应该是比较理想的情况了。