2016-02-29 56 views
1

我读过this tutorial关于电池有效的方式传输数据。 所有的经验教训是基于一个简单的概念:轮询服务器Android是电池效率低下。为此,引入Google Cloud Messaging是为了仅在需要时才将消息从服​​务器发送到设备。平在Android的检测设备失败/离去

只有一个问题:我试图实现“移动云计算”,因此通过移动设备,其中每个设备都可以加入/离开高频网络组成的云。所以我需要一些机制来检测设备何时不可再使用。直到现在,在我看到的关于这个主题的所有作品中,唯一的解决方案是定期ping主服务器,说“嘿,我还活着!”来自移动设备。显然这个解决方案是电池消耗,但直到现在我还没有看到/找到任何更好的解决方案。

你知道这个问题的任何电池高效的解决方案?

回答

1

还有就是为什么定期ping服务器没有理由(心跳)必然是浪费电池/低效的。这取决于您需要多长时间ping一次,以及您的ping是否需要启动自己的传输,以及是否支持其他传输。

让我解释一下。电池无效性取决于您是否增加收发器处于活动状态的频率或持续时间。无论如何,如果收发器持续活跃,例如不断交换数据或音频,则心跳不会增加额外的负担。如果它没有激活,那么会有额外的能量使用,但这取决于您的心跳频率,而ping会导致收发器供电的时间。即使如此,这可能与您的应用无关,因为我怀疑“云”意味着设备处于活动状态并连接。

让我们假设你的心跳是这样的,它会增加你的收发器活动的持续时间。您仍然可以使用这些技术来减少这种影响,例如缓存节拍并仅在可以在另一次传输中捎带时发送。当然,这些解决方案取决于您的心跳是否在应用程序,操作系统或内核中实现。

我建议你做实际测试,看看是否有真正对您的设备产生影响。

PS我不是说这个教程是错误的。事实并非如此。但它正在解决一个更广泛和更普遍的问题,那么你有什么。