本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 2456|回复: 0
打印 上一主题 下一主题

Twitter 如何利用 Android 6.0 Marshmallow 中的瞌睡模式 (Doze) 来改进通知性能

[复制链接]
跳转到指定楼层
1#
发表于 2016-3-7 11:20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
十月份,我们发布了一篇博文,介绍 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 应用中的通知的更多信息,详见此处

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表