cover_image

看 Twitter 如何利用 Android 6.0 中的“瞌睡模式”来改进通知性能

DevRel 谷歌开发者 2016年03月07日 03:30

图片

Google Cloud Messaging (GCM) (介绍戳我)与 Android 6.0 Marshmallow 中的瞌睡模式(Doze)配合使用,为用户带来性能和可用性改进。二者配合使用的情况下,普通优先级的消息允许设备保持瞌睡模式,而高优先级的消息则会使设备退出瞌睡模式。为了获得此功能的最佳应用及其在 Android 上的最佳实践,我们与 Twitter 的工程团队进行了交流。

图片

对于哪些信息应获得高优先级,或者说该优先级可以唤醒处于瞌睡模式的设备,Twitter 进行了广泛的调研。为了符合他们的特定需求,Twitter 希望以高优先级传递直接消息,而提及性消息则以普通优先级传递。


Twitter 的 Android 工程经理 Luke Millar 评论道:“有了 Android M,我们在电池续航方面的表现更加出色。此功能允许我们指定哪些通知可以唤醒处于瞌睡模式的设备,而哪些通知不能。通常情况下,我们会指示 GCM 等到下一次用户手机苏醒时再传递推送通知。不过,用户希望立即收到某些推送通知,例如直接消息通知,因此我们将这些通知设置为高优先级。现在,我们能够指定何时以及如何向用户推送这些通知,真是太棒了。”


图片


为了测试瞌睡模式,Twitter 工程师按照 Android 开发者网站上概述的步骤进行了操作。这些步骤可指导您使用 adb 命令在物理或虚拟设备上模拟瞌睡模式。按照此方法,Twitter 得以成功测试他们的消息传递优先级在实际环境中的工作方式。


图片


Twitter 使用的另一个最佳实践是传输更大的负载,例如传递 Twitter 热点时。在此情况下,他们选择在通知中传送元数据,然后使用这些元数据同步应用以获取请求的热点。换言之,他们并不在通知中传送热点的内容,而是触发一个同步机制来更新应用的内容。

有关在独立环境中将 GCM 与您的应用结合使用的更多信息,请查阅

developer.android.com/intl/zh-cn/training/monitoring-device-state/doze-standby.html


您可以访问 Google 开发者网站,了解关于 Google Cloud Messaging 及如何将其用于您的 Android、iOS 和 Web 应用中的通知的更多信息,详见此处

developers.google.com/cloud-messaging/?hl=zh-cn



原文来自【谷歌开发者全球博客】

googledevelopers.blogspot.com

中文翻译文章【中国谷歌开发者论坛】(文末阅读原文):

chinagdg.com/thread-32016-1-1.html


图片

图片

继续滑动看下一个
谷歌开发者
向上滑动看下一个