微信开启GCM

Published on

apps-with-gcm-metal
Apps with GCM | Cinema 4D

作为一个不得不用的IM工具,微信耗电一直是一大问题,想省电就要关后台,但是关后台又收不到消息,没关系,起码微信支持GCM,还是有办法的。


微信改用GCM

微信虽然支持GCM,但是是备用方案,默认是常驻后台用自己的长连接收消息的,只有后台被关时才会通过GCM唤醒。要让微信不留在后台而通过GCM收消息,就要用到著名的绿色守护(需要捐赠和Xposed框架)。
greenify绿色守护(Google Play)默认在熄屏后几分钟内自动关闭App,不同于其它优化软件的是还能同时保留App的GCM唤醒效果。使用方法也比较简单,先设置一下,然后把微信添加到绿色化列表就ok了。

wechat-gcm-1
Boost模式、自动休眠打勾,进Xposed-based功能

wechat-gcm-2
为绿色化的App开启GCM推送和不移除提醒打勾

wechat-gcm-3
设置完右上角点+号把微信(随便选哪个)添加到绿色化列表

验证方法是把微信的后台关了(比如绿色化)再让人给你发微信消息,收到就说明成功了。


修改GCM心跳

由于中国移动的数据网络设定的长连接超时时间很短(5分钟),而GCM的数据网络心跳间隔默认是28分钟,于是在移动的数据网络下GCM有不正常延迟。既然不能让移动和国际接轨(30分钟),就只有修改GCM的心跳频率了。
pnfPush Notifications Fixer (Google Play   XDA) 这个App不仅能修改GCM的心跳频率,还能查看GCM连接情况(尤其是三星的ROM不能通过*#*#426#*#*来看GCM状态),非常好用。

wechat-gcm-5
设置完心跳间隔,点Apply setting重启后生效;Play services monitor查看GCM连接状态

wechat-gcm-6
GCM连接状态

PNF推荐的数据网络设置是6分钟,如果用移动网络的话理想的心跳间隔应该小于5分钟,不过缩短间隔也意味着更多唤醒次数,也就更耗电。设置4分钟或5分钟的间隔可以几乎实时获得推送,设置6分钟的间隔则可能有最长1分钟左右的延迟,以此类推,比如我设置的13分钟,就会有38%的概率实时收到推送,62%的概率有0~8分钟的延迟。
准确的说,上述都是关闭微信后台后的延迟概率,因为打开微信时会激活微信的后台,直到后台被关闭的这段时间微信用的是自己的长连接,不用担心聊天聊着聊着就延迟了。


拯救微信界面

微信的UI设计放在安卓上是不是很丑呢,幸好有Xposed模块WeChange,可以让微信的UI更符合Material Design。虽然已经停更了最高只支持到6.3.5版的微信,那用旧版的微信不就行了,Drawer的UI真是清爽多了。

wechat-gcm-7
WeChange的Drawer模式,所有功能都在抽屉里;不喜欢Drawer也有另外两种UI可选,完美。

还有个叫WechatUI的Xposed模块,一直在更新也支持高版本微信,但设置Drawer后微信一直闪退。也许我是个案,你可以试试。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *