推送通知服务,如Google消息传递(GCM),提供了一种特殊的功能:它们能够唤醒处于空闲模式的设备。
哪种方式是用来唤醒设备上的推送连接有关电池寿命?我的第一个假设是,即使设备的处理器休眠,无线电的连接仍然是活动的。在收到推送消息的情况下,无线电通过中断唤醒处理器,并启动android意图处理推送消息。
但是像"OpenPush“这样的第三方推送服务提供了同样的功能,这使得我的假设看起来不完整或错误。还是这些服务只是多个供应商(谷歌、苹果)的推送系统的抽象,是连接以本地方式集成的服务的桥梁呢?
发布于 2015-07-01 17:08:53
我的第一个假设是,即使设备的处理器休眠,无线电的连接仍然是活动的。
如果说“无线电”,你指的是“细胞无线电”,这是正确的。即使CPU处于睡眠模式,也可以维护移动数据(而不是WiFi)上的打开套接字连接。该连接上的传入数据包可以唤醒CPU。Google已经花费了相当长的时间来调整这个问题,以最小化保持套接字存活的电量(例如,从设备到GCM服务器的“心跳”数据包)。
还是这些服务只是多个供应商(谷歌、苹果)的推送系统的抽象,是连接以本地方式集成的服务的桥梁呢?
这是一种常见的做法。
应用程序完全有可能在移动数据上维护自己的长期套接字。例如,SIP客户端就是这样做的。这是一个棘手的问题,特别是着眼于低功耗。我还担心这种方法的可靠性,Android M中会出现一些变化。
由于OpenPush目前非常不开放,我不能对他们正在做的事情发表具体评论。
https://stackoverflow.com/questions/31167461
复制相似问题