Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Parse.com推送服务电池冲击_Android_Parse Platform_Google Cloud Messaging_Ppns - Fatal编程技术网

Android Parse.com推送服务电池冲击

Android Parse.com推送服务电池冲击,android,parse-platform,google-cloud-messaging,ppns,Android,Parse Platform,Google Cloud Messaging,Ppns,我无法使用GCM,我正在寻找在我的应用程序中支持推送服务的解决方案 我从Parse.com上看到了PPNS,现在我正在使用它。我启动一致的websocket连接,并每15分钟检查一次连接。它也会在每个设备唤醒时检查它 仅此推送服务系统对蓄电池的大致影响是什么 有人在使用和测试它吗?TL;DR:推送通知就是这样工作的。如果电池是应用程序中必需的功能,那么不要担心电池的使用 长版本: 据我所知(事实上,我使用自己的MQ开发了自己的应用程序),这就是大多数/所有其他处理推送通知的API所做的,也就是说

我无法使用
GCM
,我正在寻找在我的应用程序中支持推送服务的解决方案

我从
Parse.com
上看到了
PPNS
,现在我正在使用它。我启动一致的
websocket
连接,并每15分钟检查一次连接。它也会在每个设备唤醒时检查它

仅此
推送服务
系统对蓄电池的大致影响是什么


有人在使用和测试它吗?

TL;DR:推送通知就是这样工作的。如果电池是应用程序中必需的功能,那么不要担心电池的使用

长版本: 据我所知(事实上,我使用自己的MQ开发了自己的应用程序),这就是大多数/所有其他处理推送通知的API所做的,也就是说,它们保持与各种MQ(ActiveMQ、MSMQ等)的持久连接,并订阅一个特定主题,将消息“推送”到客户端

它们都需要唤醒锁,以便在手机处于“睡眠”状态或网络连接恢复时保持此连接,以确保发送通知。它们中的一些甚至保持一定程度的持久性,以防连接丢失时消息到达,以便在重新连接时可以播放消息(尽管这在服务器资源方面是一项昂贵的功能)

您的用户很可能已经在一个/多个已安装的应用程序(WhatsApp、Skype等)中安装了唤醒锁——您可以通过查看WhatsApp所需的权限来检查这一点,例如,其中之一是“阻止手机睡眠”)

这反过来意味着增加一个额外的WakeLock将不会有实质性的影响,因为手机永远不会真正进入完全睡眠状态。如果您的应用程序是唯一具有此WakeLock的应用程序,则电池会有实际成本,但这是不可避免的,除非您确保在队列中保留消息,并且仅在用户解锁手机时显示通知,这(1)在您的队列中维护费用高昂,以及(2)不是很方便,因为用户会错过通知,除非他们已经在积极使用手机,所以后台通知会出错

我也不认为只要每隔15分钟左右ping一次服务器,电池寿命就会受到很大影响(间隔通常是底层消息队列的保持活动时间)

此链接应帮助您了解消息传递的本地实现是如何工作的,并应让您了解为什么需要ping以及为什么要维护WakeLock:


编辑:添加TL;DR

据我所知,Whatsapp和所有类似的应用程序都使用GCM。GCM为所有应用程序保持一次持久连接。因此,添加另一个基本上使电池效果加倍。在我的例子中,我们的用户使用的是我们的特殊平板电脑,它在没有谷歌服务的情况下运行AOSP,而且只安装了我们的应用程序。其次,我知道GCM和所有系统都很相似,但我也对它们的效率感到好奇。在这种情况下,请特别解析Parse.com。Parse.com上的PPN编写是否有效?这就是问题所在。这里有两件事会对电池使用产生不利影响:(1)通过允许网络在后台工作来防止手机完全休眠/休眠;(2)ping到MQ。第一点对电池的影响比第二点大得多。GCM和所有使用MQs的类似服务将获得唤醒锁。您可以拥有任意数量的锁,效果相同,即手机/平板电脑无法睡眠。如果你担心连接状态改变时的ping和重新连接,我个人不会担心…[继续]但我会做一些测试来确定。老实说,我非常怀疑每15分钟一次ping是否会消耗大量电池,但我无法确定,因为我还没有做过任何详细的分析。但是,如果您的应用程序是平板电脑上运行的唯一应用程序,因此,您的平板电脑以前没有WakeLock,但现在需要WakeLock,那么我更担心第一点(WakeLock)。如果必须保存电池,这将是一个破坏交易的方法。你有办法测量电池的影响吗?我也对此感到担忧。我的应用程序必须在有谷歌服务的设备上运行,但我们正在全力进行解析,因此我们将使用他们的推送服务,除非我发现这会影响电池寿命。