| <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/training/basics/network-ops/data-saver">流量节省程序</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> 特定应用流量使用情况屏幕:“设置”>“应用”>“流量使用情况”</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/training/basics/network-ops/data-saver">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> |