blob: 4a210d00a6fd19ed0a161ec21f89bce6c40fa52b [file] [log] [blame]
<html devsite><head>
<title>流量节省程序模式</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>移动数据流量费用高昂,在大众普遍无法承担数据服务费用的地方更是如此。因此,Android 用户迫切希望能够降低应用的数据使用量,或完全阻止应用使用数据流量。Android 7.0 版本中的流量节省程序为用户提供了这项功能。
</p>
<p>
<a href="https://developer.android.com/preview/features/data-saver.html">流量节省程序</a>功能可由用户开启或关闭。应用开发者应使用新的 API 来检查流量节省程序模式是否已开启。如果已开启,则应用开发者可以调整其应用以降低或杜绝流量消耗,从而妥善应对这种情况。
</p>
<p>
这项功能为最终用户带来极大的好处,因为他们将能够决定哪些应用可以在后台使用流量,而哪些应用只能在前台使用流量。这样就可以确保在流量节省程序处于开启状态时(根据用户设置),实现所需的后台数据流量限制。
</p>
<h2 id="implementation">实现</h2>
<p>
由于流量节省程序是平台中的一项功能,因此在默认情况下,设备制造商可在 N 版本中获得相关功能。请在以下位置查找源文件:<br />
<a class="external" href="https://android.googlesource.com/platform/packages/apps/Settings/+/master/src/com/android/settings/datausage">packages/apps/Settings/src/com/android/settings/datausage</a>
</p>
<h3 id="settings-interface">设置界面</h3>
<p>Android 开源项目 (AOSP) 中提供了默认的“流量节省程序设置”用户界面。有关示例,请查看以下屏幕截图。
</p>
<p>这些屏幕截图显示了使用中的流量节省程序模式。
</p>
<img src="/devices/tech/connect/images/data-saver-use.png" width="397" alt="关闭/开启流量节省程序"/>
<p class="img-caption">
<strong>图 1.</strong> 关闭/打开流量节省程序</p>
<img src="/devices/tech/connect/images/data-battery-saver.png" width="641" alt="省电模式和流量节省程序同时开启"/>
<p class="img-caption">
<strong>图 2.</strong> 省电模式和流量节省程序同时开启</p>
<img src="/devices/tech/connect/images/data-saver-app.png" width="376" alt="特定应用流量使用情况屏幕"/>
<p class="img-caption">
<strong>图 3.</strong> 特定应用流量使用情况屏幕:“设置”&gt;“应用”&gt;“流量使用情况”</p>
<img src="/devices/tech/connect/images/data-saver-quick-settings.png" width="446" alt="“快捷设置”中的流量节省程序"/>
<p class="img-caption">
<strong>图 4.</strong> “快捷设置”菜单中的流量节省程序状态</p>
<h3 id="apps">应用</h3>
<p class="caution"><strong>重要提示</strong>:设备实现人员不得将应用列入白名单。即使他们这样做,用户也可以移除这类应用。如果在设备中加入了其他应用,则可能会迫使用户决定针对这些应用使用流量节省程序。</p>
<p>所有应用开发者(包括在设备上预装应用的 OEM 和运营商)都必须采取相应措施来实现流量节省程序。请参阅 <a href="https://developer.android.com/preview/features/data-saver.html">developer.android.com 上的流量节省程序</a>,了解有关检测和监控流量节省程序状态的应用开发者说明。合作伙伴可参阅下文以获得更多实用信息。</p>
<p>
要针对流量节省程序模式进行优化,应用需要满足以下几点:
</p>
<ul>
<li>移除不必要的图片
</li><li>为剩余图片使用低分辨率
</li><li>使用低比特率视频
</li><li>触发现有的“精简”体验
</li><li>压缩数据
</li><li>留意按流量计费/不按流量计费网络的状态(即使流量节省程序已关闭)。</li></ul>
<p>另外,要良好地配合流量节省程序,应用不得:</p>
<ul>
<li>自动播放视频
</li><li>预提取内容/附件
</li><li>下载更新/代码
</li><li>要求列入白名单(除非实现核心功能需要在后台使用流量)
</li><li>将列入白名单视为使用更多流量的许可</li></ul>
<h2 id="validation">验证</h2>
<p>实现人员可以运行以下 CTS 测试,从而确保其功能版本能够按预期运行。</p>
<pre class="devsite-click-to-copy">
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
</pre>
<p>此外,还可以先运行以下命令来查看所有可用选项,从而使用 <code>adb</code> 命令手动执行测试:</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb shell cmd netpolicy
</pre>
<p>
例如,执行此命令可返回白名单应用的 UID:</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb shell cmd netpolicy list restrict-background-whitelist
</pre>
</body></html>