流量节省程序模式

移动数据流量的使用费用非常高,在大众普遍无法承担数据服务费用的地方更是如此。因此,Android 用户迫切希望能够降低应用的数据使用量,或完全阻止应用使用数据流量。Android 7.0 版本中的流量节省程序为用户提供了这项功能。

流量节省程序功能可由用户开启或关闭。应用开发者应使用新的 API 来检查流量节省程序模式是否已开启。如果已开启,则应用开发者可以微调其应用以实现低数据或无数据访问,从而妥善应对这种情况。

这项功能为最终用户带来极大的好处,因为他们将能够决定哪些应用可以在后台访问数据,而哪些应用只能在前台访问数据。这样就可以确保在流量节省程序处于开启状态时(根据用户设置),实现所需的后台数据交换。

实现

由于流量节省程序是平台中的一项功能,因此在默认情况下,设备制造商可在 N 版本中获得相关功能。

设置界面

Android 开放源代码项目 (AOSP) 中提供了默认的“流量节省程序设置”用户界面。有关示例,请查看以下屏幕截图。

这些屏幕截图显示了使用中的流量节省程序模式。

关闭/开启流量节省程序

图 1. 关闭/打开流量节省程序

省电模式和流量节省程序同时开启

图 2. 省电模式和流量节省程序同时开启

特定应用流量使用情况屏幕

图 3. 特定应用流量使用情况屏幕:“设置”>“应用”>“流量使用情况”

“快捷设置”中的流量节省程序

图 4. “快捷设置”菜单中的流量节省程序状态

应用

重要提示:设备实现人员不得将应用列入白名单。即使他们这样做,用户也可以移除这类应用。如果在设备中加入了其他应用,则可能会迫使用户决定针对这些应用使用流量节省程序。

所有应用开发者(包括使用预加载应用的原始设备制造商 (OEM) 和运营商)都必须采取相应措施来实现流量节省程序。请参阅 developer.android.com 上的流量节省程序,了解有关检测和监控流量节省程序状态的应用开发者说明。合作伙伴可参阅下文以获得更多实用信息。

要优化流量节省程序模式,应用需要满足以下几点:

  • 移除不必要的图片
  • 针对剩余图片使用低分辨率
  • 使用低比特率视频
  • 触发现有的“精简”体验
  • 压缩数据
  • 留意按流量计费/不按流量计费网络的状态(即使流量节省程序已关闭)。

另外,要实现与流量节省程序之间的完美协作,应用不得:

  • 自动播放视频
  • 预提取内容/附件
  • 下载更新/代码
  • 要求列入白名单(除非实现核心功能需要使用后台数据)
  • 将列入白名单作为使用更多带宽的许可条件

验证

实现人员可以运行以下 CTS 测试,从而确保其功能版本能够按预期运行。

com.android.cts.net.HostsideRestrictBackgroundNetworkTests

此外,还可以先运行以下命令来查看所有可用选项,从而使用 adb 命令手动执行测试:
$ adb shell cmd netpolicy

例如,执行此命令可返回白名单应用的 UID:
$ adb shell cmd netpolicy list restrict-background-whitelist