十月份,我们发布了一篇博文,介绍 Google Cloud Messaging (GCM) 如何与 Android 6.0 Marshmallow 中的瞌睡模式配合使用,为用户带来性能和可用性改进。二者配合使用的情况下,普通优先级的消息允许设备保持瞌睡模式,而高优先级的消息则会使设备退出瞌睡模式。为了获得此功能的最佳应用及其在 Android 上的最佳实践,我们与 Twitter 的工程团队进行了交流。
对于哪些信息应获得高优先级,即该优先级可以唤醒处于瞌睡模式的设备,Twitter 进行了广泛的调研。为了符合他们的特定需求,Twitter 希望以高优先级传递直接消息,而提及性消息则以普通优先级传递。
Twitter 的 Android 工程经理 Luke Millar 评论道:“有了 Android M,我们在电池续航方面的表现更加出色。此功能允许我们指定哪些通知可以唤醒处于瞌睡模式的设备,而哪些通知不能。通常情况下,我们会指示 GCM 等到下一次用户手机苏醒时再传递推送通知。不过,用户希望立即收到某些推送通知,例如直接消息通知,因此我们将这些通知设置为高优先级。现在,我们能够指定何时以及如何向用户推送这些通知,真是太棒了。”
为了测试瞌睡模式,Twitter 工程师按照 Android 开发者网站上概述的步骤进行了操作。这些步骤可指导您使用 adb 命令在物理或虚拟设备上模拟瞌睡模式。按照此方法,Twitter 得以成功测试他们的消息传递优先级在实际环境中的工作方式。
Twitter 使用的另一个最佳实践是传输更大的负载,例如传递 Twitter 热点时。在此情况下,他们选择在通知中传送元数据,然后使用这些元数据同步应用以获取请求的热点。换言之,他们并不在通知中传送热点的内容,而是触发一个同步机制来更新应用的内容。
有关在独立环境中将 GCM 与您的应用结合使用的更多信息,请查阅文档。
您可以访问 Google 开发者网站,了解关于 Google Cloud Messaging 及如何将其用于您的 Android、iOS 和 Web 应用中的通知的更多信息,详见此处。
|