移动数据流量费用高昂,在大众普遍无法承担数据服务费用的地方更是如此。因此,Android 用户迫切希望能够降低应用的数据使用量,或完全阻止应用使用数据流量。Android 7.0 版本中的流量节省程序为用户提供了这项功能。
流量节省程序功能可由用户开启或关闭。应用开发者应使用新的 API 来检查流量节省程序模式是否已开启。如果已开启,则应用开发者可以调整其应用以降低或杜绝流量消耗,从而妥善应对这种情况。
这项功能为最终用户带来极大的好处,因为他们将能够决定哪些应用可以在后台使用流量,而哪些应用只能在前台使用流量。这样就可以确保在流量节省程序处于开启状态时(根据用户设置),实现所需的后台数据流量限制。
实现
由于流量节省程序是平台中的一项功能,因此在默认情况下,设备制造商可在 N 版本中获得相关功能。请在以下位置查找源文件:
packages/apps/Settings/src/com/android/settings/datausage
设置界面
Android 开源项目 (AOSP) 中提供了默认的“流量节省程序设置”界面。有关示例,请查看以下屏幕截图。
这些屏幕截图显示了使用中的流量节省程序模式。
应用
重要提示:设备实现人员不得将应用列入白名单。即使他们这样做,用户也可以移除这类应用。如果在设备中加入了其他应用,可能会迫使用户决定针对这些应用使用流量节省程序。
所有应用开发者(包括在设备上预加载应用的 OEM 和运营商)都必须采取相应措施来实现流量节省程序。请参阅 developer.android.com 上的流量节省程序,了解有关检测和监控流量节省程序状态的应用开发者说明。合作伙伴可参阅下文以获得更多实用信息。
要针对流量节省程序模式进行优化,应用需要满足以下几点:
- 移除不必要的图片
- 为剩余图片使用低分辨率
- 使用低比特率视频
- 触发现有的“精简”体验
- 压缩数据
- 留意按流量计费/不按流量计费网络的状态(即使流量节省程序已关闭)。
另外,要良好地配合流量节省程序,应用不得:
- 自动播放视频
- 预提取内容/附件
- 下载更新/代码
- 要求列入白名单(除非实现核心功能需要在后台使用流量)
- 将列入白名单视为使用更多流量的许可
验证
实现人员可以运行以下 CTS 测试,从而确保其功能版本能够按预期运行。
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
此外,还可以先运行以下命令来查看所有可用选项,从而使用 adb
命令手动执行测试:
adb shell cmd netpolicy
例如,以下命令将返回已列入白名单的应用的 UID:
adb shell cmd netpolicy list restrict-background-whitelist