<html devsite>
  <head>
    <title>Data Saver mode</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>
Mobile data use is costly and even more so where data plan costs are not
affordable by all. Android users need the ability to reduce data use or block it
from apps altogether. The Data Saver feature in the Android 7.0 release provides
this functionality to the user.
</p>

<p>
The <a href="https://developer.android.com/preview/features/data-saver.html">Data Saver</a>
feature can be turned on or off by the user. App developers
should use a new API to check if Data Saver mode is on. If it is on, the app
developers can handle the situation gracefully by tuning their applications for
low- or no-data access.
</p>

<p>
End users benefit as they will be able to control which apps can access data in
the background and which can access data only while in the foreground. This
ensures desired background data exchange when Data Saver is on per user control.
</p>

<h2 id="implementation">Implementation</h2>

<p>
Since the Data Saver is a feature in the platform, device manufacturers gain its
functionality by default with the N release.
</p>

<h3 id="settings-interface">Settings interface</h3>

<p>
A default Data Saver settings user interface is supplied in the Android Open
Source Project (AOSP). See the screenshots below for examples.
</p>

<p>
These screenshots show the Data Saver mode in use.
</p>

<img src="/devices/tech/connect/images/data-saver-use.png" width="397" alt="Toggling Data Saver off/on" />
<p class="img-caption">
  <strong>Figure 1.</strong> Toggling Data Saver off/on
  </p>

<img src="/devices/tech/connect/images/data-battery-saver.png" width="641" alt="Battery saver and Data Saver are on" />
<p class="img-caption">
  <strong>Figure 2.</strong> When both battery saver and Data Saver are on
  </p>

<img src="/devices/tech/connect/images/data-saver-app.png" width="376" alt="App-specific data usage screen" />
<p class="img-caption">
  <strong>Figure 3.</strong> App-specific data usage screen: Settings > Apps > Data usage
  </p>

<img src="/devices/tech/connect/images/data-saver-quick-settings.png" width="446" alt="Data saver in the Quick Settings" />
<p class="img-caption">
  <strong>Figure 4.</strong> Data saver states on the Quick Settings menu
  </p>

<h3 id="apps">Apps</h3>

<p class="caution"><strong>Important</strong>: Device implementers should not whitelist apps.
Even if they do, users may remove them. Including other apps forces users to decide on which to
apply Data Saver.</p>

<p>
All app developers must act to implement Data Saver, including OEMs and
carriers with preloaded apps. See
<a href="https://developer.android.com/preview/features/data-saver.html">Data
Saver on developer.android.com</a> for app developer instructions on detecting
and monitoring Data Saver states. See the sections below for additional details
helpful to partners.  </p>

<p>
To optimize for Data Saver mode, apps should:
</p>

<ul>
  <li>Remove unnecessary images
  <li>Use lower resolution for remaining images
  <li>Use lower bitrate video
  <li>Trigger existing “lite” experiences
  <li>Compress data
  <li>Respect metered vs. unmetered network status even when Data Saver is
off
</ul>

<p>
Conversely, to work well with Data Saver, apps should not:
</p>

<ul>
  <li>Autoplay videos
  <li>Prefetch content/attachments
  <li>Download updates / code
  <li>Ask to be whitelisted unless background data is truly part of core
  functionality
  <li>Treat whitelisting as a license to use more bandwidth
</ul>

<h2 id="validation">Validation</h2>

<p>
Implementers can ensure their version of the feature works as intended by
running the following CTS test:
</p>

<pre class="devsite-click-to-copy">
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
</pre>

<p>
In addition, <code>adb</code> commands can be used to conduct tests manually by
first running this command to see all available options:</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb shell cmd netpolicy
</pre>

<p>
For example, this command returns the UIDs of the whitelisted apps:</p>
<pre class="devsite-terminal devsite-click-to-copy">
adb shell cmd netpolicy list restrict-background-whitelist
</pre>

  </body>
</html>
