Android 6.0 还需要使用绿色守护吗?

Android 6.0 还需要使用绿色守护吗?

先简述结论:在Android 6.0下,尽管Google加入了一些改善耗电问题的机制,但在加上绿色守护后,它们的威力才能得以充分释放。最终的效果将远远超越原生的Android 6.0,甚至大幅度超越绿色守护在过去Android版本下的表现,尤其是在没有ROOT的设备上。

具体来说,Android 6.0在这一领域引入的两个重要机制——Doze Mode 和 App Standby,为Android的后台运行控制打开了巨大的想象空间。但是,Google碍于自身的平台身份,需要兼顾整个生态中各方的利益平衡,当然也包括Google系自己的App利益。具体落地到Android 6.0中就表现为,两者的进入条件都非常苛刻,而且有不少漏洞。

Doze Mode是被大家讨论的比较多的,它的两阶段进入条件——持续关屏 和 相对静止,基本上把大部分用户日常的手机使用场景都排除在外了,除非你把手机放在桌上1个小时以上不碰。一旦用了一下手机,哪怕就是打开屏幕看一下通知就关上,也要重新等一个小时之后才能回到Doze Mode。

App Standby的进入就更难了。首先你得有至少1天不用这个应用,其次还不能有别的应用间接调用过这个应用(在国内这就是个大bug……),最后,也是最难防的,你一旦看到了这个应用显示的通知消息(无论是通知栏还是锁屏界面、手表上,没错,就是『看到』,都不必有交互),它就立马获得App Standby豁免权了。最后这个漏洞会带来什么恶果,你们懂的……

绿色守护在Android 6.0下重新强化了上述两个机制。Aggressive Doze让手机在关屏后数分钟内进入Doze Mode,而『浅度休眠(Shallow Hibernation)』用改进过的App Standby替代传统的休眠机制,封堵了上面提到的两个主要漏洞,同时还带来了大家期待已久的福利——不需要Xposed的GCM唤醒(前提是应用开发者正确支持了GCM消息优先级)和应用上下文保持(不杀进程,保留缓存)。

当然,还有更爽的一点:Aggressive Doze不需要root就能启用。而在非root设备上实现浅度休眠,也在技术攻关中,有较大希望实现。

---------------- 下面说点虚的 -----------------

大量用户对绿色守护的认同,促使Android团队开始真正重视App后台行为导致的性能和耗电问题,于是有了Android 6.0的App Standby。这个机制(加上Doze)可以看作是Google对应用后台行为管控方面深入思考后交出的答卷,是在绿色守护传统休眠机制之上的升华和完善,终于从系统层面实现了绿色守护一直在探索但尚未达成的目标——不杀死进程的有效管控。

但是Google的身份既然是生态的主导者,就不可能完全偏向用户,毕竟生态是要靠多方共赢才能繁荣的。所以,Android 6.0打开了这扇门,但它并没有走出去很远,而是把先锋的战旗交给了平台的守护者,并提供了诸多便利让绿色守护得以减少依赖,甚至不必root。