我已经以电池效率的方式阅读this tutorial有关数据传输的信息。 所有课程都基于一个简单的概念:轮询服务器是Android电池效率低下。因此,引入了Google Cloud Messaging,以便仅在需要时才将消息从服务器发送到设备。
只有一个问题:我正在尝试实施“移动云”,因此由移动设备组成的云,每个设备可以高频率加入/离开网络。所以我需要一些机制来检测设备何时无法访问。到目前为止,在我在这个主题上看到的所有作品中,唯一的解决方案是定期ping主服务器说“嘿,我还活着!”来自移动设备。显然这个解决方案是杀死电池,但直到现在我还没有看到/找到任何更好的解决方案。
你知道这个问题的任何电池效率解决方案吗?
答案 0 :(得分:1)
没有理由定期ping服务器(心跳)必然会浪费电池/效率低下。这取决于您需要ping的频率,以及您的ping是否需要启动自己的传输而不是其他传输的小狗支持。
让我解释一下。电池效率低下取决于您是否正在增加收发器处于活动状态的频率或持续时间。如果收发器无论如何都是持续活动的,例如它不断地交换数据或音频,那么心跳不会增加额外的负担。如果它不活动,则会有额外的能量使用,但这取决于心跳的频率与ping将导致收发器供电的时间相比。即便如此,它可能与您的应用无关,因为我怀疑"云"表示设备处于活动状态且已连接。
让我们假设您的心跳会增加收发器处于活动状态的持续时间。您仍然可以使用一些技术来减少这种影响,例如缓存您的节拍并仅在它可以背负另一个传输时发送它。当然,此类解决方案取决于您的心跳是在应用程序,操作系统还是内核中实现。
我建议您进行实际测试,看看是否真的对您的设备产生了影响。
PS我并不是说教程错了。它不是。但它正在解决一个更广泛,更普遍的问题。