<!DOCTYPE html>
<head>
<title>Android 5.0 Compatibility Definition</title>
<link rel="stylesheet" type="text/css" href="android-cdd.css"/>
</head>
<body>
<h1>Android 5.0 Compatibility Definition</h1>
<!--
<span style="color: red; font-weight: bold;"><h2>Revision 1</h2></span><br/>
<span style="color: red;">Last updated: July 23, 2013</span>
-->
<p><b><font color="red">Revision 1</font></b><br/>
Last updated: January 12, 2015
</p>
<p>Copyright &copy; 2015, Google Inc. All rights reserved.<br/>
<a href="mailto:compatibility@android.com">compatibility@android.com</a>
</p>

<h1 id=table_of_contents>Table of Contents</h1>

<table>
 <tr>
    <td>
<p><a href="#heading=h.msc7y995n414">1. Introduction</a></p>

<p><a href="#heading=h.40sdoojaw5k9">2. Device Types</a></p>

<p><a href="#heading=h.562rcc5o7p3c">2.1 Device Configurations</a></p>

<p><a href="#heading=h.yhzgiu12663m">3. Software</a></p>

<p><a href="#heading=h.kr68507hndy4">3.1. Managed API Compatibility</a></p>

<p><a href="#heading=h.klxc9p5alm1k">3.2. Soft API Compatibility</a></p>

<p><a href="#heading=h.db11p7gvg81n">3.2.1. Permissions</a></p>

<p><a href="#heading=h.3710ebc7nsew">3.2.2. Build Parameters</a></p>

<p><a href="#heading=h.gthv9fjcs0pe">3.2.3. Intent Compatibility</a></p>

<p><a href="#heading=h.qiy4ddbiirgy">3.2.3.1. Core Application Intents</a></p>

<p><a href="#heading=h.bpmvwqbxsymp">3.2.3.2. Intent Overrides</a></p>

<p><a href="#heading=h.r3yyvgtvim43">3.2.3.3. Intent Namespaces</a></p>

<p><a href="#heading=h.r8urpa426zy">3.2.3.4. Broadcast Intents</a></p>

<p><a href="#heading=h.oek6k3rdi0v8">3.2.3.5. Default App Settings</a></p>

<p><a href="#heading=h.3dpths90svxf">3.3. Native API Compatibility</a></p>

<p><a href="#heading=h.jcm6fp8o7lhj">3.3.1 Application Binary Interfaces</a></p>

<p><a href="#heading=h.svlldf3npn1t">3.4. Web Compatibility</a></p>

<p><a href="#heading=h.swqsalizdkk8">3.4.1. WebView Compatibility</a></p>

<p><a href="#heading=h.minm6jqu934x">3.4.2. Browser Compatibility</a></p>

<p><a href="#heading=h.xq343byyb0fz">3.5. API Behavioral Compatibility</a></p>

<p><a href="#heading=h.blmhfmxlmvir">3.6. API Namespaces</a></p>

<p><a href="#heading=h.5159yfnui03c">3.7. Runtime Compatibility</a></p>

<p><a href="#heading=h.6jv9libgzj5i">3.8. User Interface Compatibility</a></p>

<p><a href="#heading=h.uihb1eijkvo">3.8.1. Launcher (Home Screen)</a></p>

<p><a href="#heading=h.v9h5ffzht332">3.8.2. Widgets</a></p>

<p><a href="#heading=h.i9vjtu1lr6go">3.8.3. Notifications</a></p>

<p><a href="#heading=h.6hexhtx5tmrs">3.8.4. Search</a></p>

<p><a href="#heading=h.xc1emmi207w5">3.8.5. Toasts</a></p>

<p><a href="#heading=h.qip8398skywq">3.8.6. Themes</a></p>

<p><a href="#heading=h.c5ay2hae9td">3.8.7. Live Wallpapers</a></p>

<p><a href="#heading=h.zc10jlx04bz">3.8.8. Activity Switching</a></p>

<p><a href="#heading=h.z2dmdulh39vh">3.8.9. Input Management</a></p>

<p><a href="#heading=h.y1dfuxk4g759">3.8.10. Lock Screen Media Control</a></p>

<p><a href="#heading=h.w9tpfodgdigq">3.8.11. Dreams</a></p>

<p><a href="#heading=h.ifi3tjbpjckl">3.8.12. Location</a></p>

<p><a href="#heading=h.ugmg9aj091f8">3.8.13. Unicode and Font</a></p>

<p><a href="#heading=h.yyjxs5mhy231">3.9. Device Administration</a></p>

<p><a href="#heading=h.ynv25r97q6m">3.10. Accessibility</a></p>

<p><a href="#heading=h.d6m0oago1d3y">3.11. Text-to-Speech</a></p>

<p><a href="#heading=h.zdns59cgtxwy">3.12. TV Input Framework</a></p>

<p><a href="#heading=h.z51ce4vpkix">4. Application Packaging Compatibility</a></p>

<p><a href="#heading=h.ddcqv1ggh4y7">5. Multimedia Compatibility</a></p>

<p><a href="#heading=h.qj4xbxk4bysl">5.1. Media Codecs</a></p>

<p><a href="#heading=h.iad8gjulqe75">5.1.1. Audio Codecs</a></p>

<p><a href="#heading=h.rv9qy784zhuc">5.1.2. Image Codecs</a></p>

<p><a href="#heading=h.gxu0pnbldfle">5.1.3. Video Codecs</a></p>

<p><a href="#heading=h.be1ledetmole">5.2. Video Encoding</a></p>

<p><a href="#heading=h.7971wdynbtij">5.3. Video Decoding</a></p>

<p><a href="#heading=h.vtmgyrsev5dt">5.4. Audio Recording</a></p>

<p><a href="#heading=h.ng7fac8ci8vj">5.4.1. Raw Audio Capture</a></p>

<p><a href="#heading=h.sro7nvcaeuc1">5.4.2. Capture for Voice Recognition</a></p>

<p><a href="#heading=h.n5ikz5dupfno">5.4.3. Capture for Rerouting of Playback</a></p>

<p><a href="#heading=h.1xocvxnwynnm">5.5. Audio Playback</a></p>

<p><a href="#heading=h.6zy7486s5cfa">5.5.1. Raw Audio Playback</a></p>

<p><a href="#heading=h.ai1naitm7qfy">5.5.2. Audio Effects</a></p>

<p><a href="#heading=h.fngymkz0321y">5.5.3. Audio Output Volume</a></p>

<p><a href="#heading=h.qpj70us2l5pn">5.6. Audio Latency</a></p>

<p><a href="#heading=h.1p55xhbym9l4">5.7. Network Protocols</a></p>

<p><a href="#heading=h.mpxr2yu72m6t">5.8. Secure Media</a></p>

<p><a href="#heading=h.9v14hzhfhm3p">6. Developer Tools and Options Compatibility</a></p>

<p><a href="#heading=h.9cfw1b5q4g96">6.1. Developer Tools</a></p>

<p><a href="#heading=h.yipuqt964xra">6.2. Developer Options</a></p>

<p><a href="#heading=h.5h5uvpadidzr">7. Hardware Compatibility</a></p>

<p><a href="#heading=h.22h5j37xan6e">7.1. Display and Graphics</a></p>

<p><a href="#heading=h.6fey5v3qb5m3">7.1.1. Screen Configuration</a></p>

<p><a href="#heading=h.mrv5xyps1ba8">7.1.1.1. Screen Size</a></p>

<p><a href="#heading=h.h4amzk7515h2">7.1.1.2. Screen Aspect Ratio</a></p>

<p><a href="#heading=h.2d6r63hcnjt0">7.1.1.3. Screen Density</a></p>

<p><a href="#heading=h.p3dcj1v9ofv0">7.1.2. Display Metrics</a></p>
</td>
 </tr>
</table>

<table>
 <tr>
    <td>
<p><a href="#heading=h.try1r2p8m3vf">7.1.3. Screen Orientation</a></p>

<p><a href="#heading=h.r5sa5dwl0cjh">7.1.4. 2D and 3D Graphics Acceleration</a></p>

<p><a href="#heading=h.r1yeedum5wsi">7.1.5. Legacy Application Compatibility Mode</a></p>

<p><a href="#heading=h.dvbqyf6vof9p">7.1.6. Screen Technology</a></p>

<p><a href="#heading=h.yeaulmskczp3">7.1.7. External Displays</a></p>

<p><a href="#heading=h.1rhjcel5zbe5">7.2. Input Devices</a></p>

<p><a href="#heading=h.egbk02citmz">7.2.1. Keyboard</a></p>

<p><a href="#heading=h.h86aqgcxrqbz">7.2.2. Non-touch Navigation</a></p>

<p><a href="#heading=h.dzfhwcjzm5z6">7.2.3. Navigation Keys</a></p>

<p><a href="#heading=h.p7pmjzzatkph">7.2.4. Touchscreen Input</a></p>

<p><a href="#heading=h.7tz929qk2hjr">7.2.5. Fake Touch Input</a></p>

<p><a href="#heading=h.sdgxpot7e9ff">7.2.6. Game Controller Support</a></p>

<p><a href="#heading=h.e96izopb7n42">7.2.6.1. Button Mappings</a></p>

<p><a href="#heading=h.eija3q5owqll">7.2.7. Remote Control</a></p>

<p><a href="#heading=h.j40lqogjtait">7.3. Sensors</a></p>

<p><a href="#heading=h.3u857dtnrtuj">7.3.1. Accelerometer</a></p>

<p><a href="#heading=h.sf5gr3iz7tz4">7.3.2. Magnetometer</a></p>

<p><a href="#heading=h.2x1nre62p60d">7.3.3. GPS</a></p>

<p><a href="#heading=h.kczbjun4pvap">7.3.4. Gyroscope</a></p>

<p><a href="#heading=h.vmgl07rl8eir">7.3.5. Barometer</a></p>

<p><a href="#heading=h.7gtmh7pqnekm">7.3.6. Thermometer</a></p>

<p><a href="#heading=h.nbgggpsrc5wj">7.3.7. Photometer</a></p>

<p><a href="#heading=h.gus8hybydyk8">7.3.8. Proximity Sensor</a></p>

<p><a href="#heading=h.7y7dtt5ikji6">7.4. Data Connectivity</a></p>

<p><a href="#heading=h.u12n5f7z5iiq">7.4.1. Telephony</a></p>

<p><a href="#heading=h.39g0jrqcl40">7.4.2. IEEE 802.11 (Wi-Fi)</a></p>

<p><a href="#heading=h.82i6ovyqynfx">7.4.2.1. Wi-Fi Direct</a></p>

<p><a href="#heading=h.aia2dpbgueab">7.4.2.2. Wi-Fi Tunneled Direct Link Setup</a></p>

<p><a href="#heading=h.420i0exy2mxj">7.4.3. Bluetooth</a></p>

<p><a href="#heading=h.twzy3bitgp2k">7.4.4. Near-Field Communications</a></p>

<p><a href="#heading=h.sg0l1jarhok9">7.4.5. Minimum Network Capability</a></p>

<p><a href="#heading=h.7agkwed6used">7.4.6. Sync Settings</a></p>

<p><a href="#heading=h.ups9ebpvb6ja">7.5. Cameras</a></p>

<p><a href="#heading=h.v6dmzvarwqkm">7.5.1. Rear-Facing Camera</a></p>

<p><a href="#heading=h.xze6dyxaadh9">7.5.2. Front-Facing Camera</a></p>

<p><a href="#heading=h.q85mgg9m8zhf">7.5.3. External Camera</a></p>

<p><a href="#heading=h.s349dbv4ffl4">7.5.4. Camera API Behavior</a></p>

<p><a href="#heading=h.zguadou53wls">7.5.5. Camera Orientation</a></p>

<p><a href="#heading=h.bodawgb0ngf8">7.6. Memory and Storage</a></p>

<p><a href="#heading=h.q4aoj3xvrlxe">7.6.1. Minimum Memory and Storage</a></p>

<p><a href="#heading=h.8qr43vll8ow">7.6.2. Application Shared Storage</a></p>

<p><a href="#heading=h.rp4zc78xvn6s">7.7. USB</a></p>

<p><a href="#heading=h.fzr0lrcrrfak">7.8. Audio</a></p>

<p><a href="#heading=h.74o7ndqnyrjr">7.8.1. Microphone</a></p>

<p><a href="#heading=h.ro0d402dzkaq">7.8.2. Audio Output</a></p>

<p><a href="#heading=h.luy58niin3j">7.8.2.1. Analog Audio Ports</a></p>

<p><a href="#heading=h.v33sc890yqtg">8. Performance Compatibility</a></p>

<p><a href="#heading=h.jyh6oga0ubgs">8.1. User Experience Consistency</a></p>

<p><a href="#heading=h.9vv5a25p8zcz">8.2. Memory Performance</a></p>

<p><a href="#heading=h.a32osmf1tmwt">9. Security Model Compatibility</a></p>

<p><a href="#heading=h.rj8bxiqpff6s">9.1. Permissions</a></p>

<p><a href="#heading=h.p4gtpuihccdf">9.2. UID and Process Isolation</a></p>

<p><a href="#heading=h.en5p20nyss66">9.3. Filesystem Permissions</a></p>

<p><a href="#heading=h.p5sjwl72r3oz">9.4. Alternate Execution Environments</a></p>

<p><a href="#heading=h.xspotnaue6fc">9.5. Multi-User Support</a></p>

<p><a href="#heading=h.7b5lq2p9nv4j">9.6. Premium SMS Warning</a></p>

<p><a href="#heading=h.io2qcx4xe6hh">9.7. Kernel Security Features</a></p>

<p><a href="#heading=h.u9w027jkf7bb">9.8. Privacy</a></p>

<p><a href="#heading=h.qq3tcq94r919">9.9. Full-Disk Encryption</a></p>

<p><a href="#heading=h.ngllntwu29p6">9.10. Verified Boot</a></p>

<p><a href="#heading=h.rafv96b0uwer">10. Software Compatibility Testing</a></p>

<p><a href="#heading=h.7iuzt59bizon">10.1. Compatibility Test Suite</a></p>

<p><a href="#heading=h.opluz3h21s0b">10.2. CTS Verifier</a></p>

<p><a href="#heading=h.141487psajcw">11. Updatable Software</a></p>

<p><a href="#heading=h.4et8ifl401m5">12. Document Changelog</a></p>

<p><a href="#heading=h.codus8wcjysp">13. Contact Us</a></p>

<p><a href="#heading=h.jhgs5yq2lqtj">14. Resources</a></p>
</td>
 </tr>
</table>

<h1 id=1_introduction>1. Introduction</h1>


<p>This document enumerates the requirements that must be met in order for devices
to be compatible with Android 5.0.</p>

<p>The use of "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" is per the IETF standard
defined in RFC2119 [<a href="http://www.ietf.org/rfc/rfc2119.txt">Resources, 1</a>].</p>

<p>As used in this document, a "device implementer" or "implementer" is a person
or organization developing a hardware/software solution running Android 5.0. A
"device implementation" or "implementation" is the hardware/software solution
so developed.</p>

<p>To be considered compatible with Android 5.0, device implementations MUST meet
the requirements presented in this Compatibility Definition, including any
documents incorporated via reference.</p>

<p>Where this definition or the software tests described in <a href="#heading=h.rafv96b0uwer">section 10</a> is silent, ambiguous, or incomplete, it is the responsibility of the device
implementer to ensure compatibility with existing implementations.</p>

<p>For this reason, the Android Open Source Project [<a href="http://source.android.com/">Resources, 2</a>] is both the reference and preferred implementation of Android. Device
implementers are strongly encouraged to base their implementations to the
greatest extent possible on the "upstream" source code available from the
Android Open Source Project. While some components can hypothetically be
replaced with alternate implementations this practice is strongly discouraged,
as passing the software tests will become substantially more difficult. It is
the implementer's responsibility to ensure full behavioral compatibility with
the standard Android implementation, including and beyond the Compatibility
Test Suite. Finally, note that certain component substitutions and
modifications are explicitly forbidden by this document.</p>

<p>Many of the resources listed in <a href="#heading=h.jhgs5yq2lqtj">section 14</a> are derived directly or indirectly from the Android SDK, and will be
functionally identical to the information in that SDK's documentation. For any
case where this Compatibility Definition or the Compatibility Test Suite
disagrees with the SDK documentation, the SDK documentation is considered
authoritative. Any technical details provided in the references included in <a href="#heading=h.jhgs5yq2lqtj">section 14</a> are considered by inclusion to be part of this Compatibility Definition. </p>

<h1 id=2_device_types>2. Device Types</h1>


<p>While the Android Open Source Project has been used in the implementation of a
variety of device types and form factors, many aspects of the architecture and
compatibility requirements were optimized for handheld devices. Starting from
Android 5.0, the Android Open Source Project aims to embrace a wider variety of
device types as described in this section.</p>

<p><strong>Android Handheld device</strong> refers to an Android device implementation that is typically used by holding
it in the hand, such as mp3 players, phones, and tablets. Android Handheld
device implementations:</p>

<ul>
  <li> MUST have a touchscreen embedded in the device
  <li> MUST have a power source that provides mobility, such as a battery 
</ul>

<p><strong>Android Television device</strong> refers to an Android device implementation that is an entertainment interface
for consuming digital media, movies, games, apps, and/or live TV for users
sitting about ten feet away (a “lean back” or “10-foot user interface”).
Android Television devices:</p>

<ul>
  <li> MUST have an embedded screen OR include a video output port, such as VGA, HDMI,
or a wireless port for display
  <li> MUST declare the features android.software.leanback and
android.hardware.type.television [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK">Resources, 3</a>]
</ul>

<p><strong>Android Watch device</strong> refers to an Android device implementation intended to be worn on the body,
perhaps on the wrist, and:</p>

<ul>
  <li> MUST have a screen with the physical diagonal length in the range from 1.1 to
2.5 inches
  <li> MUST declare the feature android.hardware.type.watch
  <li> MUST support uiMode = UI_MODE_TYPE_WATCH [<a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">Resources, 4</a>]
</ul>

<p>All Android device implementations that do not fit into any of the above device
types still MUST meet all requirements in this document to be Android 5.0
compatible, unless the requirement is explicitly described to be only
applicable to a specific Android device type. </p>

<h2 id=2_1_device_configurations>2.1 Device Configurations</h2>


<p>This is a summary of major differences in hardware configuration by device
type. (Empty cells denote a “MAY”). Not all configurations are covered in this
table; see relevant hardware sections for more detail.</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Category</strong></p>
</td>
    <td class="tab0">
<p><strong>Feature </strong></p>
</td>
    <td class="tab0">
<p><strong>Section</strong></p>
</td>
    <td class="tab0">
<p><strong>Handheld</strong></p>
</td>
    <td class="tab0">
<p><strong>Television</strong></p>
</td>
    <td class="tab0">
<p><strong>Watch</strong></p>
</td>
    <td class="tab0">
<p><strong>Other</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p>Input</p>
</td>
    <td>
<p>D-pad</p>
</td>
    <td>
<p><a href="#heading=h.h86aqgcxrqbz">7.2.2. Non-touch Navigation</a></p>
</td>
    <td></td>
    <td>
<p>MUST</p>
</td>
    <td></td>
    <td></td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>Touchscreen </p>
</td>
    <td>
<p> <a href="#heading=h.p7pmjzzatkph">7.2.4. Touchscreen input</a></p>
</td>
    <td>
<p>MUST</p>
</td>
    <td></td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>Microphone </p>
</td>
    <td>
<p><a href="#heading=h.74o7ndqnyrjr">7.8.1. Microphone</a></p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>SHOULD </p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td>
<p>Sensors</p>
</td>
    <td>
<p>Accelerometer </p>
</td>
    <td>
<p><a href="#heading=h.3u857dtnrtuj">7.3.1 Accelerometer</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td></td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>GPS </p>
</td>
    <td>
<p><a href="#heading=h.2x1nre62p60d">7.3.3. GPS</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td></td>
    <td></td>
    <td></td>
 </tr>
 <tr>
    <td>
<p>Connectivity</p>
</td>
    <td>
<p>Wi-Fi </p>
</td>
    <td>
<p><a href="#heading=h.39g0jrqcl40">7.4.2. IEEE 802.11</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p> MUST</p>
</td>
    <td></td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>Wi-Fi Direct </p>
</td>
    <td>
<p><a href="#heading=h.82i6ovyqynfx">7.4.2.1. Wi-Fi Direct</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td></td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>Bluetooth </p>
</td>
    <td>
<p><a href="#heading=h.420i0exy2mxj">7.4.3. Bluetooth</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>Bluetooth Low Energy </p>
</td>
    <td>
<p><a href="#heading=h.420i0exy2mxj">7.4.3. Bluetooth</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>USB peripheral/ host mode </p>
</td>
    <td>
<p><a href="#heading=h.rp4zc78xvn6s">7.7. USB</a></p>
</td>
    <td>
<p>SHOULD</p>
</td>
    <td>
<p> </p>
</td>
    <td></td>
    <td>
<p>SHOULD</p>
</td>
 </tr>
 <tr>
    <td>
<p>Output</p>
</td>
    <td>
<p>Speaker and/or Audio output ports </p>
</td>
    <td>
<p><a href="#heading=h.ro0d402dzkaq">7.8.2. Audio Output</a></p>
</td>
    <td>
<p>MUST</p>
</td>
    <td>
<p>MUST</p>
</td>
    <td></td>
    <td>
<p>MUST</p>
</td>
 </tr>
</table>


<h1 id=3_software>3. Software</h1>


<h2 id=3_1_managed_api_compatibility>3.1. Managed API Compatibility</h2>


<p>The managed Dalvik bytecode execution environment is the primary vehicle for
Android applications. The Android application programming interface (API) is
the set of Android platform interfaces exposed to applications running in the
managed runtime environment. Device implementations MUST provide complete
implementations, including all documented behaviors, of any documented API
exposed by the Android SDK [<a href="http://developer.android.com/reference/packages.html">Resources, 5</a>] or any API decorated with the "@SystemApi" marker in the upstream Android
source code. </p>

<p>Device implementations MUST NOT omit any managed APIs, alter API interfaces or
signatures, deviate from the documented behavior, or include no-ops, except
where specifically allowed by this Compatibility Definition.</p>

<p>This Compatibility Definition permits some types of hardware for which Android
includes APIs to be omitted by device implementations. In such cases, the APIs
MUST still be present and behave in a reasonable way. See <a href="#heading=h.5h5uvpadidzr">section 7</a> for specific requirements for this scenario.</p>

<h2 id=3_2_soft_api_compatibility>3.2. Soft API Compatibility</h2>


<p>In addition to the managed APIs from <a href="#heading=h.kr68507hndy4">section 3.1</a>, Android also includes a significant runtime-only "soft" API, in the form of
such things as intents, permissions, and similar aspects of Android
applications that cannot be enforced at application compile time.</p>

<h3 id=3_2_1_permissions>3.2.1. Permissions</h3>


<p>Device implementers MUST support and enforce all permission constants as
documented by the Permission reference page [<a href="http://developer.android.com/reference/android/Manifest.permission.html">Resources, 6]</a>. Note that <a href="#heading=h.a32osmf1tmwt">section 9</a> lists additional requirements related to the Android security model.</p>

<h3 id=3_2_2_build_parameters>3.2.2. Build Parameters</h3>


<p>The Android APIs include a number of constants on the android.os.Build class [<a href="http://developer.android.com/reference/android/os/Build.html">Resources, 7</a>] that are intended to describe the current device. To provide consistent,
meaningful values across device implementations, the table below includes
additional restrictions on the formats of these values to which device
implementations MUST conform.</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Parameter</strong></p>
</td>
    <td class="tab0">
<p><strong>Details</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p>VERSION.RELEASE</p>
</td>
    <td>
<p>The version of the currently-executing Android system, in human-readable
format. This field MUST have one of the string values defined in [<a href="http://source.android.com/compatibility/5.0/versions.html">Resources, 8]</a>.</p>
</td>
 </tr>
 <tr>
    <td>
<p>VERSION.SDK</p>
</td>
    <td>
<p>The version of the currently-executing Android system, in a format accessible
to third-party application code. For Android 5.0, this field MUST have the
integer value 21.</p>
</td>
 </tr>
 <tr>
    <td>
<p>VERSION.SDK_INT</p>
</td>
    <td>
<p>The version of the currently-executing Android system, in a format accessible
to third-party application code. For Android 5.0, this field MUST have the
integer value 21.</p>
</td>
 </tr>
 <tr>
    <td>
<p>VERSION.INCREMENTAL</p>
</td>
    <td>
<p>A value chosen by the device implementer designating the specific build of the
currently-executing Android system, in human-readable format. This value MUST
NOT be reused for different builds made available to end users. A typical use
of this field is to indicate which build number or source-control change
identifier was used to generate the build. There are no requirements on the
specific format of this field, except that it MUST NOT be null or the empty
string ("").</p>
</td>
 </tr>
 <tr>
    <td>
<p>BOARD</p>
</td>
    <td>
<p>A value chosen by the device implementer identifying the specific internal
hardware used by the device, in human-readable format. A possible use of this
field is to indicate the specific revision of the board powering the device.
The value of this field MUST be encodable as 7-bit ASCII and match the regular
expression "^[a-zA-Z0-9_-]+$".</p>
</td>
 </tr>
 <tr>
    <td>
<p>BRAND</p>
</td>
    <td>
<p>A value reflecting the brand name associated with the device as known to the
end users. MUST be in human-readable format and SHOULD represent the
manufacturer of the device or the company brand under which the device is
marketed. The value of this field MUST be encodable as 7-bit ASCII and match
the regular expression "^[a-zA-Z0-9_-]+$".</p>
</td>
 </tr>
 <tr>
    <td class="tab1">
<p>SUPPORTED_ABIS</p>
</td>
    <td>
<p>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#heading=h.3dpths90svxf">section 3.3. Native API Compatibility</a>.</p>
</td>
 </tr>
 <tr>
    <td class="tab1">
<p>SUPPORTED_32_BIT_ABIS</p>
</td>
    <td>
<p>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#heading=h.3dpths90svxf">section 3.3. Native API Compatibility</a>.</p>
</td>
 </tr>
 <tr>
    <td class="tab1">
<p>SUPPORTED_64_BIT_ABIS</p>
</td>
    <td>
<p>The name of the second instruction set (CPU type + ABI convention) of native
code. See <a href="#heading=h.3dpths90svxf">section 3.3. Native API Compatibility</a>.</p>
</td>
 </tr>
 <tr>
    <td>
<p>CPU_ABI</p>
</td>
    <td>
<p>The name of the instruction set (CPU type + ABI convention) of native code. See <a href="#heading=h.3dpths90svxf">section 3.3. Native API Compatibility</a>.</p>
</td>
 </tr>
 <tr>
    <td>
<p>CPU_ABI2</p>
</td>
    <td>
<p>The name of the second instruction set (CPU type + ABI convention) of native
code. See <a href="#heading=h.3dpths90svxf">section 3.3. Native API Compatibility</a>.</p>
</td>
 </tr>
 <tr>
    <td>
<p>DEVICE</p>
</td>
    <td>
<p>A value chosen by the device implementer containing the development name or
code name identifying the configuration of the hardware features and industrial
design of the device. The value of this field MUST be encodable as 7-bit ASCII
and match the regular expression "^[a-zA-Z0-9_-]+$".</p>
</td>
 </tr>
 <tr>
    <td>
<p>FINGERPRINT</p>
</td>
    <td>
<p>A string that uniquely identifies this build. It SHOULD be reasonably
human-readable. It MUST follow this template:</p>

<p>$(BRAND)/$(PRODUCT)/$(DEVICE):$(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)</p>

<p>For example:</p>

<p>acme/myproduct/mydevice:5.0/LRWXX/3359:userdebug/test-keys</p>

<p>The fingerprint MUST NOT include whitespace characters. If other fields
included in the template above have whitespace characters, they MUST be
replaced in the build fingerprint with another character, such as the
underscore ("_") character. The value of this field MUST be encodable as 7-bit
ASCII.</p>
</td>
 </tr>
 <tr>
    <td>
<p>HARDWARE</p>
</td>
    <td>
<p>The name of the hardware (from the kernel command line or /proc). It SHOULD be
reasonably human-readable. The value of this field MUST be encodable as 7-bit
ASCII and match the regular expression "^[a-zA-Z0-9_-]+$". </p>
</td>
 </tr>
 <tr>
    <td>
<p>HOST</p>
</td>
    <td>
<p>A string that uniquely identifies the host the build was built on, in
human-readable format. There are no requirements on the specific format of this
field, except that it MUST NOT be null or the empty string ("").</p>
</td>
 </tr>
 <tr>
    <td>
<p>ID</p>
</td>
    <td>
<p>An identifier chosen by the device implementer to refer to a specific release,
in human-readable format. This field can be the same as
android.os.Build.VERSION.INCREMENTAL, but SHOULD be a value sufficiently
meaningful for end users to distinguish between software builds. The value of
this field MUST be encodable as 7-bit ASCII and match the regular expression
"^[a-zA-Z0-9._-]+$".</p>
</td>
 </tr>
 <tr>
    <td>
<p>MANUFACTURER</p>
</td>
    <td>
<p>The trade name of the Original Equipment Manufacturer (OEM) of the product.
There are no requirements on the specific format of this field, except that it
MUST NOT be null or the empty string ("").</p>
</td>
 </tr>
 <tr>
    <td>
<p>MODEL</p>
</td>
    <td>
<p>A value chosen by the device implementer containing the name of the device as
known to the end user. This SHOULD be the same name under which the device is
marketed and sold to end users. There are no requirements on the specific
format of this field, except that it MUST NOT be null or the empty string ("").</p>
</td>
 </tr>
 <tr>
    <td>
<p>PRODUCT</p>
</td>
    <td>
<p>A value chosen by the device implementer containing the development name or
code name of the specific product (SKU) that MUST be unique within the same
brand. MUST be human-readable, but is not necessarily intended for view by end
users. The value of this field MUST be encodable as 7-bit ASCII and match the
regular expression "^[a-zA-Z0-9_-]+$".</p>
</td>
 </tr>
 <tr>
    <td>
<p>SERIAL</p>
</td>
    <td>
<p>A hardware serial number, which MUST be available. The value of this field MUST
be encodable as 7-bit ASCII and match the regular expression
"^([a-zA-Z0-9]{6,20})$".</p>
</td>
 </tr>
 <tr>
    <td>
<p>TAGS</p>
</td>
    <td>
<p>A comma-separated list of tags chosen by the device implementer that further
distinguishes the build. This field MUST have one of the values corresponding
to the three typical Android platform signing configurations: release-keys,
dev-keys, test-keys. </p>
</td>
 </tr>
 <tr>
    <td>
<p>TIME</p>
</td>
    <td>
<p>A value representing the timestamp of when the build occurred.</p>
</td>
 </tr>
 <tr>
    <td>
<p>TYPE</p>
</td>
    <td>
<p>A value chosen by the device implementer specifying the runtime configuration
of the build. This field MUST have one of the values corresponding to the three
typical Android runtime configurations: user, userdebug, or eng.</p>
</td>
 </tr>
 <tr>
    <td>
<p>USER</p>
</td>
    <td>
<p>A name or user ID of the user (or automated user) that generated the build.
There are no requirements on the specific format of this field, except that it
MUST NOT be null or the empty string ("").</p>
</td>
 </tr>
</table>


<h3 id=3_2_3_intent_compatibility>3.2.3. Intent Compatibility</h3>


<p>Device implementations MUST honor Android's loose-coupling intent system, as
described in the sections below. By "honored", it is meant that the device
implementer MUST provide an Android Activity or Service that specifies a
matching intent filter that binds to and implements correct behavior for each
specified intent pattern.</p>

<h4 id=3_2_3_1_core_application_intents>3.2.3.1. Core Application Intents</h4>


<p>Android intents allow application components to request functionality from
other Android components. The Android upstream project includes a list of
applications considered core Android applications, which implements several
intent patterns to perform common actions. The core Android applications are:</p>

<ul>
  <li> Desk Clock
  <li> Browser 
  <li> Calendar
  <li> Contacts
  <li> Gallery
  <li> GlobalSearch
  <li> Launcher
  <li> Music
  <li> Settings
</ul>

<p>Device implementations SHOULD include the core Android applications as
appropriate but MUST include a component implementing the same intent patterns
defined by all the “public” Activity or Service components of these core
Android applications. Note that Activity or Service components are considered
"public" when the attribute android:exported is absent or has the value true.</p>

<h4 id=3_2_3_2_intent_overrides>3.2.3.2. Intent Overrides</h4>


<p>As Android is an extensible platform, device implementations MUST allow each
intent pattern referenced in <a href="#heading=h.qiy4ddbiirgy">section 3.2.3.1</a> to be overridden by third-party applications. The upstream Android open source
implementation allows this by default; device implementers MUST NOT attach
special privileges to system applications' use of these intent patterns, or
prevent third-party applications from binding to and assuming control of these
patterns. This prohibition specifically includes but is not limited to
disabling the "Chooser" user interface that allows the user to select between
multiple applications that all handle the same intent pattern.</p>

<p>However, device implementations MAY provide default activities for specific URI
patterns (eg. http://play.google.com) if the default activity provides a more
specific filter for the data URI. For example, an intent filter specifying the
data URI "http://www.android.com" is more specific than the browser filter for
"http://". Device implementations MUST provide a user interface for users to
modify the default activity for intents.</p>

<h4 id=3_2_3_3_intent_namespaces>3.2.3.3. Intent Namespaces</h4>


<p>Device implementations MUST NOT include any Android component that honors any
new intent or broadcast intent patterns using an ACTION, CATEGORY, or other key
string in the android.* or com.android.* namespace. Device implementers MUST
NOT include any Android components that honor any new intent or broadcast
intent patterns using an ACTION, CATEGORY, or other key string in a package
space belonging to another organization. Device implementers MUST NOT alter or
extend any of the intent patterns used by the core apps listed in <a href="#heading=h.qiy4ddbiirgy">section 3.2.3.1</a>. Device implementations MAY include intent patterns using namespaces clearly
and obviously associated with their own organization. This prohibition is
analogous to that specified for Java language classes in <a href="#heading=h.blmhfmxlmvir">section 3.6</a>.</p>

<h4 id=3_2_3_4_broadcast_intents>3.2.3.4. Broadcast Intents</h4>


<p>Third-party applications rely on the platform to broadcast certain intents to
notify them of changes in the hardware or software environment.
Android-compatible devices MUST broadcast the public broadcast intents in
response to appropriate system events. Broadcast intents are described in the
SDK documentation.</p>

<h4 id=3_2_3_5_default_app_settings>3.2.3.5. Default App Settings</h4>


<p>Android includes settings that provide users an easy way to select their
default applications, for example for Home screen or SMS. Where it makes sense,
device implementations MUST provide a similar settings menu and be compatible
with the intent filter pattern and API methods described in the SDK
documentation as below.</p>

<p>Device implementations:</p>

<ul>
  <li> MUST honor the android.settings.HOME_SETTINGS intent to show a default app
settings menu for Home Screen, if the device implementation reports
android.software.home_screen [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10]</a>
  <li> MUST provide a settings menu that will call the
android.provider.Telephony.ACTION_CHANGE_DEFAULT intent to show a dialog to
change the default SMS application, if the device implementation reports
android.hardware.telephony [<a href="https://developer.android.com/reference/android/provider/Telephony.Sms.Intents.html">Resources, 9</a>] 
  <li> MUST honor the android.settings.NFC_PAYMENT_SETTINGS intent to show a default
app settings menu for Tap and Pay, if the device implementation reports
android.hardware.nfc.hce [<a href="http://developer.android.com/reference/android/provider/Settings.html">Resources, 10]</a>
</ul>

<h2 id=3_3_native_api_compatibility>3.3. Native API Compatibility</h2>


<h3 id=3_3_1_application_binary_interfaces>3.3.1 Application Binary Interfaces</h3>


<p>Managed Dalvik bytecode can call into native code provided in the application
.apk file as an ELF .so file compiled for the appropriate device hardware
architecture. As native code is highly dependent on the underlying processor
technology, Android defines a number of Application Binary Interfaces (ABIs) in
the Android NDK. Device implementations MUST be compatible with one or more
defined ABIs, and MUST implement compatibility with the Android NDK, as below.</p>

<p>If a device implementation includes support for an Android ABI, it:</p>

<ul>
  <li> MUST include support for code running in the managed environment to call into
native code, using the standard Java Native Interface (JNI) semantics
  <li> MUST be source-compatible (i.e. header compatible) and binary-compatible (for
the ABI) with each required library in the list below
  <li> MUST support the equivalent 32-bit ABI if any 64-bit ABI is supported
  <li> MUST accurately report the native Application Binary Interface (ABI) supported
by the device, via the android.os.Build.SUPPORTED_ABIS,
android.os.Build.SUPPORTED_32_BIT_ABIS, and
android.os.Build.SUPPORTED_64_BIT_ABIS parameters, each a comma separated list
of ABIs ordered from the most to the least preferred one
  <li> MUST report, via the above parameters, only those ABIs documented in the latest
version of the Android NDK, “NDK Programmer's Guide | ABI Management” in docs/
directory
  <li> SHOULD be built using the source code and header files available in the
upstream Android Open Source Project
</ul>

<p>The following native code APIs MUST be available to apps that include native
code:</p>

<ul>
  <li> libc (C library)
  <li> libm (math library)
  <li> Minimal support for C++
  <li> JNI interface
  <li> liblog (Android logging)
  <li> libz (Zlib compression)
  <li> libdl (dynamic linker)
  <li> libGLESv1_CM.so (OpenGL ES 1.x)
  <li> libGLESv2.so (OpenGL ES 2.0)
  <li> libGLESv3.so (OpenGL ES 3.x)
  <li> libEGL.so (native OpenGL surface management)
  <li> libjnigraphics.so
  <li> libOpenSLES.so (OpenSL ES 1.0.1 audio support)
  <li> libOpenMAXAL.so (OpenMAX AL 1.0.1 support)
  <li> libandroid.so (native Android activity support)
  <li> libmediandk.so (native media APIs support)
  <li> Support for OpenGL, as described below
</ul>

<p>Note that future releases of the Android NDK may introduce support for
additional ABIs. If a device implementation is not compatible with an existing
predefined ABI, it MUST NOT report support for any ABIs at all.</p>

<p>Note that device implementations MUST include libGLESv3.so and it MUST symlink
(symbolic link) to libGLESv2.so. in turn, MUST export all the OpenGL ES 3.1 and
Android Extension Pack [<a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">Resources, 11</a>] function symbols as defined in the NDK release android-21. Although all the
symbols must be present, only the corresponding functions for OpenGL ES
versions and extensions actually supported by the device must be fully
implemented.</p>

<p>Native code compatibility is challenging. For this reason, device implementers
are <strong>very strongly encouraged</strong> to use the implementations of the libraries listed above from the upstream
Android Open Source Project. </p>

<h2 id=3_4_web_compatibility>3.4. Web Compatibility</h2>


<h3 id=3_4_1_webview_compatibility>3.4.1. WebView Compatibility</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>The complete implementation of the android.webkit.Webview API MAY be provided
on Android Watch devices but MUST be provided on all other types of device
implementations.</p>
</td>
 </tr>
</table>


<p>The platform feature android.software.webview MUST be reported on any device
that provides a complete implementation of the android.webkit.WebView API, and
MUST NOT be reported on devices without a complete implementation of the API.
The Android Open Source implementation uses code from the Chromium Project to
implement the android.webkit.WebView [<a href="http://developer.android.com/reference/android/webkit/WebView.html">Resources, 12</a>]. Because it is not feasible to develop a comprehensive test suite for a web
rendering system, device implementers MUST use the specific upstream build of
Chromium in the WebView implementation. Specifically:</p>

<ul>
  <li> Device android.webkit.WebView implementations MUST be based on the Chromium
build from the upstream Android Open Source Project for Android 5.0. This build
includes a specific set of functionality and security fixes for the WebView [<a href="http://www.chromium.org/">Resources, 13</a>].
  <li> The user agent string reported by the WebView MUST be in this format: 
</ul>

<p>Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD))
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile
Safari/537.36</p>
  <ul>
    <li> The value of the $(VERSION) string MUST be the same as the value for
android.os.Build.VERSION.RELEASE.
    <li> The value of the $(MODEL) string MUST be the same as the value for
android.os.Build.MODEL.
    <li> The value of the $(BUILD) string MUST be the same as the value for
android.os.Build.ID.
    <li> The value of the $(CHROMIUM_VER) string MUST be the version of Chromium in the
upstream Android Open Source Project.
    <li> Device implementations MAY omit Mobile in the user agent string.
  </ul>

<p>The WebView component SHOULD include support for as many HTML5 features as
possible and if it supports the feature SHOULD conform to the HTML5
specification [<a href="https://www.google.com/url?q=https%3A%2F%2Fhtml.spec.whatwg.org%2Fmultipage%2F&sa=D&sntz=1&usg=AFQjCNH7pPjEWho8n19H_n0ZXrQbI9RVlg">Resources, 14</a>].</p>

<h3 id=3_4_2_browser_compatibility>3.4.2. Browser Compatibility</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television and Watch Devices MAY omit a browser application, but MUST
support the public intent patterns as described in <a href="#heading=h.qiy4ddbiirgy">section 3.2.3.1</a>. All other types of device implementations MUST include a standalone Browser
application for general user web browsing. </p>
</td>
 </tr>
</table>


<p>The standalone Browser MAY be based on a browser technology other than WebKit.
However, even if an alternate Browser application is used, the
android.webkit.WebView component provided to third-party applications MUST be
based on WebKit, as described in <a href="#heading=h.swqsalizdkk8">section 3.4.1</a>.</p>

<p>Implementations MAY ship a custom user agent string in the standalone Browser
application.</p>

<p>The standalone Browser application (whether based on the upstream WebKit
Browser application or a third-party replacement) SHOULD include support for as
much of HTML5 [<a href="https://www.google.com/url?q=https%3A%2F%2Fhtml.spec.whatwg.org%2Fmultipage%2F&sa=D&sntz=1&usg=AFQjCNH7pPjEWho8n19H_n0ZXrQbI9RVlg">Resources, 14</a>] as possible. Minimally, device implementations MUST support each of these
APIs associated with HTML5:</p>

<ul>
  <li> application cache/offline operation [<a href="http://www.w3.org/html/wg/drafts/html/master/browsers.html#offline">Resources, 15</a>]
  <li> the <video> tag [<a href="http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#video">Resources, 16</a>]
  <li> geolocation [<a href="http://www.w3.org/TR/geolocation-API/">Resources, 17</a>]
</ul>

<p>Additionally, device implementations MUST support the HTML5/W3C webstorage API
[<a href="http://www.w3.org/TR/webstorage/">Resources, 18</a>], and SHOULD support the HTML5/W3C IndexedDB API [<a href="http://www.w3.org/TR/IndexedDB/">Resources, 19</a>]. Note that as the web development standards bodies are transitioning to favor
IndexedDB over webstorage, IndexedDB is expected to become a required component
in a future version of Android.</p>

<h2 id=3_5_api_behavioral_compatibility>3.5. API Behavioral Compatibility</h2>


<p>The behaviors of each of the API types (managed, soft, native, and web) must be
consistent with the preferred implementation of the upstream Android Open
Source Project [<a href="http://source.android.com/">Resources, 2</a>]. Some specific areas of compatibility are:</p>

<ul>
  <li> Devices MUST NOT change the behavior or semantics of a standard intent.
  <li> Devices MUST NOT alter the lifecycle or lifecycle semantics of a particular
type of system component (such as Service, Activity, ContentProvider, etc.).
  <li> Devices MUST NOT change the semantics of a standard permission.
</ul>

<p>The above list is not comprehensive. The Compatibility Test Suite (CTS) tests
significant portions of the platform for behavioral compatibility, but not all.
It is the responsibility of the implementer to ensure behavioral compatibility
with the Android Open Source Project. For this reason, device implementers
SHOULD use the source code available via the Android Open Source Project where
possible, rather than re-implement significant parts of the system.</p>

<h2 id=3_6_api_namespaces>3.6. API Namespaces</h2>


<p>Android follows the package and class namespace conventions defined by the Java
programming language. To ensure compatibility with third-party applications,
device implementers MUST NOT make any prohibited modifications (see below) to
these package namespaces:</p>

<ul>
  <li> java.*
  <li> javax.*
  <li> sun.*
  <li> android.*
  <li> com.android.*
</ul>

<p><strong>Prohibited modifications include</strong>:</p>

<ul>
  <li> Device implementations MUST NOT modify the publicly exposed APIs on the Android
platform by changing any method or class signatures, or by removing classes or
class fields.
  <li> Device implementers MAY modify the underlying implementation of the APIs, but
such modifications MUST NOT impact the stated behavior and Java-language
signature of any publicly exposed APIs.
  <li> Device implementers MUST NOT add any publicly exposed elements (such as classes
or interfaces, or fields or methods to existing classes or interfaces) to the
APIs above.
</ul>

<p>A "publicly exposed element” is any construct which is not decorated with the
"@hide" marker as used in the upstream Android source code. In other words,
device implementers MUST NOT expose new APIs or alter existing APIs in the
namespaces noted above. Device implementers MAY make internal-only
modifications, but those modifications MUST NOT be advertised or otherwise
exposed to developers.</p>

<p>Device implementers MAY add custom APIs, but any such APIs MUST NOT be in a
namespace owned by or referring to another organization. For instance, device
implementers MUST NOT add APIs to the com.google.* or similar namespace: only
Google may do so. Similarly, Google MUST NOT add APIs to other companies'
namespaces. Additionally, if a device implementation includes custom APIs
outside the standard Android namespace, those APIs MUST be packaged in an
Android shared library so that only apps that explicitly use them (via the
<uses-library> mechanism) are affected by the increased memory usage of such
APIs.</p>

<p>If a device implementer proposes to improve one of the package namespaces above
(such as by adding useful new functionality to an existing API, or adding a new
API), the implementer SHOULD visit <a href="https://source.android.com/">source.android.com</a> and begin the process for contributing changes and code, according to the
information on that site.</p>

<p>Note that the restrictions above correspond to standard conventions for naming
APIs in the Java programming language; this section simply aims to reinforce
those conventions and make them binding through inclusion in this Compatibility
Definition.</p>

<h2 id=3_7_runtime_compatibility>3.7. Runtime Compatibility</h2>


<p>Device implementations MUST support the full Dalvik Executable (DEX) format and
Dalvik bytecode specification and semantics [<a href="https://android.googlesource.com/platform/dalvik/+/lollipop-release/docs/">Resources, 20</a>]. Device implementers SHOULD use ART, the reference upstream implementation of
the Dalvik Executable Format, and the reference implementation's package
management system.</p>

<p>Device implementations MUST configure Dalvik runtimes to allocate memory in
accordance with the upstream Android platform, and as specified by the
following table. (See <a href="#heading=h.6fey5v3qb5m3">section 7.1.1</a> for screen size and screen density definitions.)</p>

<p>Note that memory values specified below are considered minimum values and
device implementations MAY allocate more memory per application.</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Screen Layout</strong></p>
</td>
    <td class="tab0">
<p><strong>Screen Density</strong></p>
</td>
    <td class="tab0">
<p><strong>Minimum Application Memory</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p>small / normal</p>
</td>
    <td>
<p>120 dpi (ldpi) </p>
</td>
    <td>
<p>16MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>160 dpi (mdpi)</p>
</td>
    <td></td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>213 dpi (tvdpi)</p>
</td>
    <td>
<p>32MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>240 dpi (hdpi)</p>
</td>
    <td></td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>320 dpi (xhdpi)</p>
</td>
    <td>
<p>64MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>400 dpi (400dpi)</p>
</td>
    <td>
<p>96MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>480 dpi (xxhdpi)</p>
</td>
    <td>
<p>128MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>560 dpi (560dpi)</p>
</td>
    <td>
<p>192MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>640 dpi (xxxhdpi)</p>
</td>
    <td>
<p>256MB</p>
</td>
 </tr>
 <tr>
    <td>
<p>large</p>
</td>
    <td>
<p>120 dpi (ldpi) </p>
</td>
    <td>
<p>16MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>160 dpi (mdpi)</p>
</td>
    <td>
<p>32MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>213 dpi (tvdpi)</p>
</td>
    <td>
<p>64MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>240 dpi (hdpi)</p>
</td>
    <td></td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>320 dpi (xhdpi)</p>
</td>
    <td>
<p>128MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>400 dpi (400dpi)</p>
</td>
    <td>
<p>192MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>480 dpi (xxhdpi)</p>
</td>
    <td>
<p>256MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>560 dpi (560dpi)</p>
</td>
    <td>
<p>384MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>640 dpi (xxxhdpi)</p>
</td>
    <td>
<p>512MB</p>
</td>
 </tr>
 <tr>
    <td>
<p>xlarge</p>
</td>
    <td>
<p>160 dpi (mdpi)</p>
</td>
    <td>
<p>64MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>213 dpi (tvdpi)</p>
</td>
    <td>
<p>96MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>240 dpi (hdpi)</p>
</td>
    <td></td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>320 dpi (xhdpi)</p>
</td>
    <td>
<p>192MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>400 dpi (400dpi)</p>
</td>
    <td>
<p>288MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>480 dpi (xxhdpi)</p>
</td>
    <td>
<p>384MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>560 dpi (560dpi)</p>
</td>
    <td>
<p>576MB</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td>
<p>640 dpi (xxxhdpi)</p>
</td>
    <td>
<p>768MB</p>
</td>
 </tr>
</table>


<h2 id=3_8_user_interface_compatibility>3.8. User Interface Compatibility</h2>


<h3 id=3_8_1_launcher_home_screen>3.8.1. Launcher (Home Screen)</h3>


<p>Android includes a launcher application (home screen) and support for
third-party applications to replace the device launcher (home screen). Device
implementations that allow third-party applications to replace the device home
screen MUST declare the platform feature android.software.home_screen.</p>

<h3 id=3_8_2_widgets>3.8.2. Widgets</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Widgets are optional for all Android device implementations, but SHOULD be
supported on Android Handheld devices.</p>
</td>
 </tr>
</table>


<p>Android defines a component type and corresponding API and lifecycle that
allows applications to expose an "AppWidget" to the end user [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 21</a>] a feature that is strongly RECOMMENDED to be supported on Handheld Device
implementations. Device implementations that support embedding widgets on the
home screen MUST meet the following requirements and declare support for
platform feature android.software.app_widgets.</p>

<ul>
  <li> Device launchers MUST include built-in support for AppWidgets, and expose user
interface affordances to add, configure, view, and remove AppWidgets directly
within the Launcher.
  <li> Device implementations MUST be capable of rendering widgets that are 4 x 4 in
the standard grid size. See the App Widget Design Guidelines in the Android SDK
documentation [<a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">Resources, 21</a>] for details.
  <li> Device implementations that include support for lock screen MAY support
application widgets on the lock screen.
</ul>

<h3 id=3_8_3_notifications>3.8.3. Notifications</h3>


<p>Android includes APIs that allow developers to notify users of notable events [<a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">Resources, 22</a>], using hardware and software features of the device.</p>

<p>Some APIs allow applications to perform notifications or attract attention
using hardware—specifically sound, vibration, and light. Device implementations
MUST support notifications that use hardware features, as described in the SDK
documentation, and to the extent possible with the device implementation
hardware. For instance, if a device implementation includes a vibrator, it MUST
correctly implement the vibration APIs. If a device implementation lacks
hardware, the corresponding APIs MUST be implemented as no-ops. This behavior
is further detailed in <a href="#heading=h.5h5uvpadidzr">section 7</a>.</p>

<p>Additionally, the implementation MUST correctly render all resources (icons,
sound files, etc.) provided for in the APIs [<a href="https://developer.android.com/guide/topics/resources/available-resources.html">Resources, 23</a>], or in the Status/System Bar icon style guide [<a href="http://developer.android.com/design/style/iconography.html">Resources, 24</a>]. Device implementers MAY provide an alternative user experience for
notifications than that provided by the reference Android Open Source
implementation; however, such alternative notification systems MUST support
existing notification resources, as above. </p>

<p>Android includes support for various notifications, such as:</p>

<ul>
  <li> <strong>Rich notifications</strong>—Interactive Views for ongoing notifications. 
  <li> <strong>Heads-up notifications</strong>—Interactive Views users can act on or dismiss without leaving the current app.
  <li> <strong>Lockscreen notifications</strong>—Notifications shown over a lock screen with granular control on visibility.
</ul>

<p>Device implementations MUST properly display and execute these notifications,
including the title/name, icon, text as documented in the Android APIs <a href="https://developer.android.com/design/patterns/notifications.html">[Resources, 25]</a>.</p>

<p>Android includes Notification Listener Service APIs that allow apps (once
explicitly enabled by the user) to receive a copy of all notifications as they
are posted or updated. Device implementations MUST correctly and promptly send
notifications in their entirety to all such installed and user-enabled listener
services, including any and all metadata attached to the Notification object.</p>

<h3 id=3_8_4_search>3.8.4. Search</h3>


<p>Android includes APIs [<a href="http://developer.android.com/reference/android/app/SearchManager.html">Resources, 26</a>] that allow developers to incorporate search into their applications, and
expose their application's data into the global system search. Generally
speaking, this functionality consists of a single, system-wide user interface
that allows users to enter queries, displays suggestions as users type, and
displays results. The Android APIs allow developers to reuse this interface to
provide search within their own apps, and allow developers to supply results to
the common global search user interface.</p>

<p>Android device implementations SHOULD include global search, a single, shared,
system-wide search user interface capable of real-time suggestions in response
to user input. Device implementations SHOULD implement the APIs that allow
developers to reuse this user interface to provide search within their own
applications. Device implementations that implement the global search interface
MUST implement the APIs that allow third-party applications to add suggestions
to the search box when it is run in global search mode. If no third-party
applications are installed that make use of this functionality, the default
behavior SHOULD be to display web search engine results and suggestions.</p>

<h3 id=3_8_5_toasts>3.8.5. Toasts</h3>


<p>Applications can use the "Toast" API to display short non-modal strings to the
end user, that disappear after a brief period of time [<a href="http://developer.android.com/reference/android/widget/Toast.html">Resources, 27</a>]. Device implementations MUST display Toasts from applications to end users in
some high-visibility manner.</p>

<h3 id=3_8_6_themes>3.8.6. Themes</h3>


<p>Android provides "themes" as a mechanism for applications to apply styles
across an entire Activity or application.</p>

<p>Android includes a "Holo" theme family as a set of defined styles for
application developers to use if they want to match the Holo theme look and
feel as defined by the Android SDK [<a href="http://developer.android.com/guide/topics/ui/themes.html">Resources, 28</a>]. Device implementations MUST NOT alter any of the Holo theme attributes
exposed to applications [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 29</a>].</p>

<p>Android 5.0 includes a “Material” theme family as a set of defined styles for
application developers to use if they want to match the design theme’s look and
feel across the wide variety of different Android device types. Device
implementations MUST support the “Material” theme family and MUST NOT alter any
of the Material theme attributes or their assets exposed to applications [<a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">Resources, 30</a>].</p>

<p>Android also includes a "Device Default" theme family as a set of defined
styles for application developers to use if they want to match the look and
feel of the device theme as defined by the device implementer. Device
implementations MAY modify the Device Default theme attributes exposed to
applications [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 29</a>].</p>

<p>Android supports a new variant theme with translucent system bars, which allows
application developers to fill the area behind the status and navigation bar
with their app content. To enable a consistent developer experience in this
configuration, it is important the status bar icon style is maintained across
different device implementations. Therefore, Android device implementations
MUST use white for system status icons (such as signal strength and battery
level) and notifications issued by the system, unless the icon is indicating a
problematic status [<a href="http://developer.android.com/reference/android/R.style.html">Resources, 29</a>].</p>

<h3 id=3_8_7_live_wallpapers>3.8.7. Live Wallpapers</h3>


<p>Android defines a component type and corresponding API and lifecycle that
allows applications to expose one or more "Live Wallpapers" to the end user [<a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">Resources, 31</a>]. Live wallpapers are animations, patterns, or similar images with limited
input capabilities that display as a wallpaper, behind other applications.</p>

<p>Hardware is considered capable of reliably running live wallpapers if it can
run all live wallpapers, with no limitations on functionality, at a reasonable
frame rate with no adverse effects on other applications. If limitations in the
hardware cause wallpapers and/or applications to crash, malfunction, consume
excessive CPU or battery power, or run at unacceptably low frame rates, the
hardware is considered incapable of running live wallpaper. As an example, some
live wallpapers may use an OpenGL 2.0 or 3.x context to render their content.
Live wallpaper will not run reliably on hardware that does not support multiple
OpenGL contexts because the live wallpaper use of an OpenGL context may
conflict with other applications that also use an OpenGL context.</p>

<p>Device implementations capable of running live wallpapers reliably as described
above SHOULD implement live wallpapers, and when implemented MUST report the
platform feature flag android.software.live_wallpaper.</p>

<h3 id=3_8_8_activity_switching>3.8.8. Activity Switching</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>As the Recent function navigation key is OPTIONAL, the requirements to
implement the overview screen is OPTIONAL for Android Television devices and
Android Watch devices.</p>
</td>
 </tr>
</table>


<p>The upstream Android source code includes the overview screen [<a href="http://developer.android.com/guide/components/recents.html">Resources, 32</a>], a system-level user interface for task switching and displaying recently
accessed activities and tasks using a thumbnail image of the application's
graphical state at the moment the user last left the application. Device
implementations including the recents function navigation key as detailed in <a href="#heading=h.dzfhwcjzm5z6">section 7.2.3</a>, MAY alter the interface but MUST meet the following requirements:</p>

<ul>
  <li> MUST display affiliated recents as a group that moves together
  <li> MUST support at least up to 20 displayed activities
  <li> MUST at least display the title of 4 activities at a time
  <li> SHOULD display highlight color, icon, screen title in recents
  <li> MUST implement the screen pinning behavior [<a href="https://developer.android.com/about/versions/android-5.0.html#ScreenPinning">Resources, 33</a>] and provide the user with a settings menu to toggle the feature
  <li> SHOULD display a closing affordance ("x") but MAY delay this until user
interacts with screens 
</ul>

<p>Device implementations are STRONGLY ENCOURAGED to use the upstream Android user
interface (or a similar thumbnail-based interface) for the overview screen.</p>

<h3 id=3_8_9_input_management>3.8.9. Input Management</h3>


<p>Android includes support for Input Management and support for third-party input
method editors [<a href="http://developer.android.com/guide/topics/text/creating-input-method.html">Resources, 34</a>]. Device implementations that allow users to use third-party input methods on
the device MUST declare the platform feature android.software.input_methods and
support IME APIs as defined in the Android SDK documentation.</p>

<p>Device implementations that declare the android.software.input_methods feature
MUST provide a user-accessible mechanism to add and configure third-party input
methods. Device implementations MUST display the settings interface in response
to the android.settings.INPUT_METHOD_SETTINGS intent.</p>

<h3 id=3_8_10_lock_screen_media_control>3.8.10. Lock Screen Media Control</h3>


<p>The Remote Control Client API is deprecated from Android 5.0 in favor of the
Media Notification Template that allows media applications to integrate with
playback controls that are displayed on the lock screen [<a href="https://developer.android.com/reference/android/app/Notification.MediaStyle.html">Resources, 35</a>]. Device implementations that support a lock screen in the device MUST support
the Media Notification Template along with other notifications.</p>

<h3 id=3_8_11_dreams>3.8.11. Dreams</h3>


<p>Android includes support for interactive screensavers called Dreams [<a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">Resources, 36</a>]. Dreams allows users to interact with applications when a device connected to
a power source is idle or docked in a desk dock. Android Watch devices MAY
implement Dreams, but other types of device implementations SHOULD include
support for Dreams and provide a settings option for users to configure Dreams
in response to the android.settings.DREAM_SETTINGS intent.</p>

<h3 id=3_8_12_location>3.8.12. Location</h3>


<p>When a device has a hardware sensor (e.g. GPS) that is capable of providing the
location coordinates, location modes MUST be displayed in the Location menu
within Settings [<a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">Resources, 37</a>]. </p>

<h3 id=3_8_13_unicode_and_font>3.8.13. Unicode and Font</h3>


<p>Android includes support for color emoji characters. When Android device
implementations include an IME, devices MUST provide an input method to the
user for the Emoji characters defined in Unicode 6.1 [<a href="http://www.unicode.org/versions/Unicode6.1.0/">Resources, 38</a>]. All devices MUST be capable of rendering these emoji characters in color
glyph.</p>

<p>Android 5.0 includes support for Roboto 2 font with different
weights—sans-serif-thin, sans-serif-light, sans-serif-medium, sans-serif-black,
sans-serif-condensed, sans-serif-condensed-light—which MUST all be included for
the languages available on the device and full Unicode 7.0 coverage of Latin,
Greek, and Cyrillic, including the Latin Extended A, B, C, and D ranges, and
all glyphs in the currency symbols block of Unicode 7.0.</p>

<h2 id=3_9_device_administration>3.9. Device Administration</h2>


<p>Android includes features that allow security-aware applications to perform
device administration functions at the system level, such as enforcing password
policies or performing remote wipe, through the Android Device Administration
API [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>]. Device implementations MUST provide an implementation of the
DevicePolicyManager class [<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">Resources, 40</a>]. Device implementations that include support for lock screen MUST support the
full range of device administration policies defined in the Android SDK
documentation [<a href="http://developer.android.com/guide/topics/admin/device-admin.html">Resources, 39</a>] and report the platform feature android.software.device_admin.</p>

<p>Device implementations MAY have a preinstalled application performing device
administration functions but this application MUST NOT be set out-of-the box as
the default Device Owner app [<a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">Resources, 41</a>].</p>

<h2 id=3_10_accessibility>3.10. Accessibility</h2>


<p>Android provides an accessibility layer that helps users with disabilities to
navigate their devices more easily. In addition, Android provides platform APIs
that enable accessibility service implementations to receive callbacks for user
and system events and generate alternate feedback mechanisms, such as
text-to-speech, haptic feedback, and trackball/d-pad navigation [<a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">Resources, 42</a>]. Device implementations MUST provide an implementation of the Android
accessibility framework consistent with the default Android implementation.
Device implementations MUST meet the following requirements:</p>

<ul>
  <li> MUST support third-party accessibility service implementations through the
android.accessibilityservice APIs [<a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">Resources, 43</a>]
  <li> MUST generate AccessibilityEvents and deliver these events to all registered
AccessibilityService implementations in a manner consistent with the default
Android implementation
  <li> Unless an Android Watch device with no audio output, device implementations
MUST provide a user-accessible mechanism to enable and disable accessibility
services, and MUST display this interface in response to the
android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS intent.
</ul>

<p>Additionally, device implementations SHOULD provide an implementation of an
accessibility service on the device, and SHOULD provide a mechanism for users
to enable the accessibility service during device setup. An open source
implementation of an accessibility service is available from the Eyes Free
project [<a href="https://code.google.com/p/eyes-free/">Resources, 44</a>].</p>

<h2 id=3_11_text-to-speech>3.11. Text-to-Speech</h2>


<p>Android includes APIs that allow applications to make use of text-to-speech
(TTS) services and allows service providers to provide implementations of TTS
services [<a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">Resources, 45</a>]. Device implementations reporting the feature android.hardware.audio.output
MUST meet these requirements related to the Android TTS framework. </p>

<p>Device implementations:</p>

<ul>
  <li> MUST support the Android TTS framework APIs and SHOULD include a TTS engine
supporting the languages available on the device. Note that the upstream
Android open source software includes a full-featured TTS engine
implementation.
  <li>  MUST support installation of third-party TTS engines
  <li> MUST provide a user-accessible interface that allows users to select a TTS
engine for use at the system level
</ul>

<h2 id=3_12_tv_input_framework>3.12. TV Input Framework</h2>


<p>The Android Television Input Framework (TIF) simplifies the delivery of live
content to Android Television devices. TIF provides a standard API to create
input modules that control Android Television devices. Android Television
device implementations MUST support Television Input Framework [<a href="https://source.android.com/devices/tv/index.html">Resources, 46</a>].</p>

<p>Device implementations that support TIF MUST declare the platform feature
android.software.live_tv. </p>

<h1 id=4_application_packaging_compatibility>4. Application Packaging Compatibility</h1>


<p>Device implementations MUST install and run Android ".apk" files as generated
by the "aapt" tool included in the official Android SDK [<a href="http://developer.android.com/guide/developing/tools/index.html">Resources, 47</a>].</p>

<p>Devices implementations MUST NOT extend either the .apk [<a href="http://developer.android.com/guide/components/fundamentals.html">Resources, 48</a>], Android Manifest [<a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">Resources, 49</a>], Dalvik bytecode [<a href="https://android.googlesource.com/platform/dalvik/+/lollipop-release/docs/">Resources, 20</a>], or RenderScript bytecode formats in such a way that would prevent those
files from installing and running correctly on other compatible devices</p>

<h1 id=5_multimedia_compatibility>5. Multimedia Compatibility</h1>


<h2 id=5_1_media_codecs>5.1. Media Codecs</h2>


<p>Device implementations MUST support the core media formats specified in the
Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 50</a>] except where explicitly permitted in this document. Specifically, device
implementations MUST support the media formats, encoders, decoders, file types,
and container formats defined in the tables below. All of these codecs are
provided as software implementations in the preferred Android implementation
from the Android Open Source Project.</p>

<p>Please note that neither Google nor the Open Handset Alliance make any
representation that these codecs are free from third-party patents. Those
intending to use this source code in hardware or software products are advised
that implementations of this code, including in open source software or
shareware, may require patent licenses from the relevant patent holders.</p>

<h3 id=5_1_1_audio_codecs>5.1.1. Audio Codecs</h3>

<table>
 <tr>
    <td class="tab0">
<p><strong>Format / Codec</strong></p>
</td>
    <td class="tab0">
<p><strong>Encoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Decoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Details</strong></p>
</td>
    <td class="tab0">
<p><strong>Supported File Type(s) / Container Formats</strong></p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>MPEG-4 AAC Profile</p>

<p>(AAC LC)</p>
</td>
    <td class="tab3">
<p>REQUIRED1</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>Support for mono/stereo/5.0/5.12 content with standard sampling rates from 8 to
48 kHz.</p>
</td>
    <td class="tab4">
<p>• 3GPP (.3gp)</p>

<p>• MPEG-4 (.mp4, .m4a)</p>

<p>• ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not
supported)</p>

<p>• MPEG-TS (.ts, not seekable, Android 3.0+)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>MPEG-4 HE AAC Profile (AAC+)</p>
</td>
    <td>
<p>REQUIRED1</p>

<p>(Android 4.1+)</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>Support for mono/stereo/5.0/5.12 content with standard sampling rates from 16
to 48 kHz.</p>
</td>
    <td class="tab4"></td>
 </tr>
 <tr>
    <td class="tab3">
<p>MPEG-4 HE AACv2</p>

<p>Profile (enhanced AAC+)</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>Support for mono/stereo/5.0/5.12 content with standard sampling rates from 16
to 48 kHz.</p>
</td>
    <td class="tab4"></td>
 </tr>
 <tr>
    <td class="tab3">
<p>AAC ELD (enhanced low delay AAC)</p>
</td>
    <td>
<p>REQUIRED1 </p>

<p>(Android 4.1+)</p>
</td>
    <td>
<p>REQUIRED</p>

<p>(Android 4.1+)</p>
</td>
    <td class="tab3">
<p>Support for mono/stereo content with standard sampling rates from 16 to 48 kHz.</p>
</td>
    <td class="tab4"></td>
 </tr>
 <tr>
    <td class="tab3">
<p>AMR-NB</p>
</td>
    <td class="tab3">
<p>REQUIRED3</p>
</td>
    <td class="tab3">
<p>REQUIRED3</p>
</td>
    <td class="tab3">
<p>4.75 to 12.2 kbps sampled @ 8kHz</p>
</td>
    <td class="tab4">
<p>3GPP (.3gp)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>AMR-WB</p>
</td>
    <td class="tab3">
<p>REQUIRED3 </p>
</td>
    <td class="tab3">
<p>REQUIRED3</p>
</td>
    <td class="tab3">
<p>9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz</p>
</td>
    <td class="tab4"></td>
 </tr>
 <tr>
    <td class="tab3">
<p>FLAC</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td>
<p>REQUIRED</p>

<p>(Android 3.1+)</p>
</td>
    <td class="tab3">
<p>Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1 kHz is
recommended on devices with 44.1 kHz output, as the 48 to 44.1 kHz downsampler
does not include a low-pass filter). 16-bit recommended; no dither applied for
24-bit.</p>
</td>
    <td class="tab3">
<p>FLAC (.flac) only</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>MP3</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td>
<p>Mono/Stereo 8-320Kbps constant (CBR) or variable bitrate (VBR)</p>
</td>
    <td class="tab3">
<p>MP3 (.mp3)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>MIDI</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for
ringtone formats RTTTL/RTX, OTA, and iMelody</p>
</td>
    <td class="tab3">
<p>• Type 0 and 1 (.mid, .xmf, .mxmf)</p>

<p>• RTTTL/RTX (.rtttl, .rtx)</p>

<p>• OTA (.ota)</p>

<p>• iMelody (.imy)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>Vorbis</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>• Ogg (.ogg)</p>

<p>• Matroska (.mkv, Android 4.0+)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>PCM/WAVE</p>
</td>
    <td>
<p>REQUIRED4</p>

<p>(Android 4.1+)</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>16-bit linear PCM (rates up to limit of hardware). Devices MUST support
sampling rates for raw PCM recording at 8000, 11025, 16000, and 44100 Hz
frequencies.</p>
</td>
    <td class="tab3">
<p>WAVE (.wav)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>Opus</p>
</td>
    <td class="tab3"></td>
    <td class="tab3">
<p>REQUIRED</p>

<p>(Android 5.0+)</p>
</td>
    <td class="tab3"></td>
    <td class="tab3">
<p>Matroska (.mkv)</p>
</td>
 </tr>
</table>


<p>1 Required for device implementations that define android.hardware.microphone
but optional for Android Watch device implementations.</p>

<p>2 Only downmix of 5.0/5.1 content is required; recording or rendering more than
2 channels is optional.</p>

<p>3 Required for Android Handheld device implementations. </p>

<p>4 Required for device implementations that define android.hardware.microphone,
including Android Watch device implementations.</p>

<h3 id=5_1_2_image_codecs>5.1.2. Image Codecs</h3>

<table>
 <tr>
    <td class="tab0">
<p><strong>Format / Codec</strong></p>
</td>
    <td class="tab0">
<p><strong>Encoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Decoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Details</strong></p>
</td>
    <td class="tab0">
<p><strong>Supported File Type(s) / Container Formats</strong></p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>JPEG</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>Base+progressive</p>
</td>
    <td class="tab3">
<p>JPEG (.jpg)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>GIF</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>GIF (.gif)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>PNG</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>PNG (.png)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>BMP</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>BMP (.bmp)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>WebP</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p>REQUIRED</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>WebP (.webp)</p>
</td>
 </tr>
</table>


<h3 id=5_1_3_video_codecs>5.1.3. Video Codecs</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Video codecs are optional for Android Watch device implementations.</p>
</td>
 </tr>
</table>

<table>
 <tr>
    <td class="tab0">
<p><strong>Format / Codec</strong></p>
</td>
    <td class="tab0">
<p><strong>Encoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Decoder</strong></p>
</td>
    <td class="tab0">
<p><strong>Details</strong></p>
</td>
    <td class="tab0">
<p><strong>Supported File Type(s) / Container Formats</strong></p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>H.263</p>
</td>
    <td class="tab3">
<p>REQUIRED1</p>
</td>
    <td class="tab3">
<p>REQUIRED2</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>• 3GPP (.3gp)</p>

<p>• MPEG-4 (.mp4)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>H.264 AVC</p>
</td>
    <td class="tab3">
<p>REQUIRED2</p>
</td>
    <td class="tab3">
<p>REQUIRED2</p>
</td>
    <td>
<p>See <a href="#heading=h.be1ledetmole">section 5.2 </a>and <a href="#heading=h.ogx7l5t9zub6">5.3</a> for details</p>
</td>
    <td class="tab3">
<p>• 3GPP (.3gp)</p>

<p>• MPEG-4 (.mp4)</p>

<p>• MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>H.265 HEVC</p>
</td>
    <td class="tab3"></td>
    <td class="tab3">
<p>REQUIRED2</p>
</td>
    <td>
<p>See <a href="#heading=h.be1ledetmole">section 5.3</a> for details</p>
</td>
    <td class="tab3">
<p>MPEG-4 (.mp4)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>MPEG-4 SP</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>REQUIRED2</p>
</td>
    <td class="tab3">
<p> </p>
</td>
    <td class="tab3">
<p>3GPP (.3gp)</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>VP83</p>
</td>
    <td>
<p>REQUIRED2</p>

<p>(Android 4.3+)</p>
</td>
    <td>
<p>REQUIRED2</p>

<p>(Android 2.3.3+)</p>
</td>
    <td>
<p>See <a href="#heading=h.be1ledetmole">section 5.2</a> and <a href="#heading=h.ogx7l5t9zub6">5.3</a> for details</p>
</td>
    <td>
<p>• WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 110</a>]</p>

<p>• Matroska (.mkv, Android 4.0+)4</p>
</td>
 </tr>
 <tr>
    <td class="tab3">
<p>VP9</p>
</td>
    <td class="tab3"></td>
    <td class="tab3">
<p>REQUIRED2</p>

<p>(Android 4.4+)</p>
</td>
    <td>
<p>See <a href="#heading=h.be1ledetmole">section 5.</a><u>3</u> for details</p>
</td>
    <td>
<p>• WebM (.webm) [<a href="http://www.webmproject.org/">Resources, 110</a>]</p>

<p>• Matroska (.mkv, Android 4.0+)4</p>
</td>
 </tr>
</table>


<p>1 Required for device implementations that include camera hardware and define
android.hardware.camera or android.hardware.camera.front.</p>

<p>2 Required for device implementations except Android Watch devices. </p>

<p>3 For acceptable quality of web video streaming and video-conference services,
device implementations SHOULD use a hardware VP8 codec that meets the
requirements in [<a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">Resources, 51</a>].</p>

<p>4 Device implementations SHOULD support writing Matroska WebM files.</p>

<h2 id=5_2_video_encoding>5.2. Video Encoding</h2>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Video codecs are optional for Android Watch device implementations.</p>
</td>
 </tr>
</table>


<p>Android device implementations with H.264 codec support, MUST support Baseline
Profile Level 3 and the following SD (Standard Definition) video encoding
profiles and SHOULD support Main Profile Level 4 and the following HD (High
Definition) video encoding profiles. Android Television devices are STRONGLY
RECOMMENDED to encode HD 1080p video at 30 fps.</p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p1</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 1080p1</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>  Video resolution</strong></p>
</td>
    <td class="tab3">
<p>320 x 240 px</p>
</td>
    <td class="tab3">
<p>720 x 480 px</p>
</td>
    <td class="tab3">
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>  Video frame rate</strong></p>
</td>
    <td class="tab3">
<p>20 fps</p>
</td>
    <td class="tab3">
<p>30 fps</p>
</td>
    <td class="tab3">
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>  Video bitrate</strong></p>
</td>
    <td class="tab3">
<p>384 Kbps</p>
</td>
    <td class="tab3">
<p>2 Mbps</p>
</td>
    <td class="tab3">
<p>4 Mbps</p>
</td>
    <td>
<p>10 Mbps</p>
</td>
 </tr>
</table>


<p>1 When supported by hardware, but STRONGLY RECOMMENDED for Android Television
devices.</p>

<p>Android device implementations with VP8 codec support MUST support the SD video
encoding profiles and SHOULD support the following HD (High Definition) video
encoding profiles.</p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p1</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 1080p1</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video resolution</strong></p>
</td>
    <td>
<p>320 x 180 px</p>
</td>
    <td>
<p>640 x 360 px</p>
</td>
    <td>
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video frame rate</strong></p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video bitrate</strong></p>
</td>
    <td>
<p>800 Kbps </p>
</td>
    <td>
<p>2 Mbps</p>
</td>
    <td>
<p>4 Mbps</p>
</td>
    <td>
<p>10 Mbps</p>
</td>
 </tr>
</table>


<p>1 When supported by hardware.</p>

<h2 id=5_3_video_decoding>5.3. Video Decoding</h2>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Video codecs are optional for Android Watch device implementations.</p>
</td>
 </tr>
</table>


<p>Device implementations MUST support dynamic video resolution switching within
the same stream for VP8, VP9 ,H.264, and H.265 codecs.</p>

<p>Android device implementations with H.264 decoders, MUST support Baseline
Profile Level 3 and the following SD video decoding profiles and SHOULD support
the HD decoding profiles. Android Television devices MUST support High Profile
Level 4.2 and the HD 1080p decoding profile.</p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p1</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 1080p1</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video resolution</strong></p>
</td>
    <td>
<p>320 x 240 px</p>
</td>
    <td>
<p>720 x 480 px</p>
</td>
    <td>
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video frame rate</strong></p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps / 60 fps2</p>
</td>
    <td>
<p>30 fps / 60 fps2</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
 </tr>
 <tr>
    <td>
<p><strong>Video bitrate</strong></p>
</td>
    <td>
<p>800 Kbps </p>
</td>
    <td>
<p>2 Mbps</p>
</td>
    <td>
<p>8 Mbps</p>
</td>
    <td>
<p>20 Mbps</p>
</td>
 </tr>
</table>


<p>1 Required for Android Television device implementations, but for other device
types only when supported by hardware.</p>

<p>2 Required for Android Television device implementations.</p>

<p>Android device implementations when supporting VP8 codec as described in <a href="#heading=h.hitn8abpwkj2">section 5.1.3</a>, MUST support the following SD decoding profiles and SHOULD support the HD
decoding profiles. Android Television devices MUST support the HD 1080p
decoding profile.  </p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p1</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 1080p1</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video resolution</strong></p>
</td>
    <td>
<p>320 x 180 px</p>
</td>
    <td>
<p>640 x 360 px</p>
</td>
    <td>
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video frame rate</strong></p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps / 60 fps2</p>
</td>
    <td>
<p>30 / 60 fps2</p>
</td>
 </tr>
 <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
 </tr>
 <tr>
    <td>
<p><strong>Video bitrate</strong></p>
</td>
    <td>
<p>800 Kbps </p>
</td>
    <td>
<p>2 Mbps</p>
</td>
    <td>
<p>8 Mbps</p>
</td>
    <td>
<p>20 Mbps</p>
</td>
 </tr>
</table>


<p>1 Required for Android Television device implementations, but for other type of
devices only when supported by hardware.</p>

<p>2 Required for Android Television device implementations.</p>

<p>Android device implementations, when supporting VP9 codec as described in <a href="#heading=h.hitn8abpwkj2">section 5.1.3</a>, MUST support the following SD video decoding profiles and SHOULD support the
HD decoding profiles. Android Television devices are STRONGLY RECOMMENDED to
support the HD 1080p decoding profile and SHOULD support the UHD decoding
profile. When the UHD video decoding profile is supported, it MUST support 8
bit color depth.</p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p 1</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 1080p 2</strong></p>
</td>
    <td class="tab0">
<p><strong>UHD 2</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video resolution</strong></p>
</td>
    <td>
<p>320 x 180 px</p>
</td>
    <td>
<p>640 x 360 px</p>
</td>
    <td>
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
    <td>
<p>3840 x 2160 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video frame rate</strong></p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video bitrate</strong></p>
</td>
    <td>
<p>600 Kbps </p>
</td>
    <td>
<p>1.6 Mbps</p>
</td>
    <td>
<p>4 Mbps</p>
</td>
    <td>
<p>10 Mbps</p>
</td>
    <td>
<p>20 Mbps</p>
</td>
 </tr>
</table>


<p>1 Required for Android Television device implementations, but for other type of
devices only when supported by hardware.</p>

<p>2 STRONGLY RECOMMENDED for Android Television device implementations when
supported by hardware.</p>

<p>Android device implementations, when supporting H.265 codec as described in <a href="#heading=h.hitn8abpwkj2">section 5.1.3</a>, MUST support the Main Profile Level 3 Main tier and the following SD video
decoding profiles and SHOULD support the HD decoding profiles. Android
Television devices MUST support the Main Profile Level 4.1 Main tier and the HD
1080p decoding profile and SHOULD support Main10 Level 5 Main Tier profile and
the UHD decoding profile.</p>
<table>
 <tr>
    <td class="tab0"></td>
    <td class="tab0">
<p><strong>SD (Low quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>SD (High quality)</strong></p>
</td>
    <td class="tab0">
<p><strong>HD 720p </strong>1 </p>
</td>
    <td class="tab0">
<p><strong>HD 1080p </strong>1 </p>
</td>
    <td class="tab0">
<p><strong>UHD </strong>2</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video resolution</strong></p>
</td>
    <td>
<p>352 x 288 px</p>
</td>
    <td>
<p>640 x 360 px</p>
</td>
    <td>
<p>1280 x 720 px</p>
</td>
    <td>
<p>1920 x 1080 px</p>
</td>
    <td>
<p>3840 x 2160 px</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video frame rate</strong></p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
    <td>
<p>30 fps</p>
</td>
 </tr>
 <tr>
    <td>
<p><strong>Video bitrate</strong></p>
</td>
    <td>
<p>600 Kbps </p>
</td>
    <td>
<p>1.6 Mbps</p>
</td>
    <td>
<p>4 Mbps</p>
</td>
    <td>
<p>10 Mbps</p>
</td>
    <td>
<p>20 Mbps</p>
</td>
 </tr>
</table>


<p>1 Required for Android Television device implementation, but for other type of
devices only when supported by hardware.</p>

<p>2 Required for Android Television device implementations when supported by
hardware.</p>

<h2 id=5_4_audio_recording>5.4. Audio Recording</h2>


<p>While some of the requirements outlined in this section are stated as SHOULD
since Android 4.3, the Compatibility Definition for a future version is planned
to change these to MUST. Existing and new Android devices are <strong>very strongly encouraged</strong> to meet these requirements, or they will not be able to attain Android
compatibility when upgraded to the future version.</p>

<h3 id=5_4_1_raw_audio_capture>5.4.1. Raw Audio Capture</h3>


<p>Device implementations that declare android.hardware.microphone MUST allow
capture of raw audio content with the following characteristics:</p>

<ul>
  <li> <strong>Format</strong>: Linear PCM, 16-bit
  <li> <strong>Sampling rates</strong>: 8000, 11025, 16000, 44100
  <li> <strong>Channels</strong>: Mono
</ul>

<p>Device implementations that declare android.hardware.microphone SHOULD allow
capture of raw audio content with the following characteristics:</p>

<ul>
  <li> <strong>Format</strong>: Linear PCM, 16-bit
  <li> <strong>Sampling rates</strong>: 22050, 48000
  <li> <strong>Channels</strong>: Stereo
</ul>

<h3 id=5_4_2_capture_for_voice_recognition>5.4.2. Capture for Voice Recognition</h3>


<p>In addition to the above recording specifications, when an application has
started recording an audio stream using the
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION audio source:</p>

<ul>
  <li> The device SHOULD exhibit approximately flat amplitude versus frequency
characteristics: specifically, ±3 dB, from 100 Hz to 4000 Hz.
  <li> Audio input sensitivity SHOULD be set such that a 90 dB sound power level (SPL)
source at 1000 Hz yields RMS of 2500 for 16-bit samples.
  <li> PCM amplitude levels SHOULD linearly track input SPL changes over at least a 30
dB range from -18 dB to +12 dB re 90 dB SPL at the microphone.
  <li> Total harmonic distortion SHOULD be less than 1% for 1Khz at 90 dB SPL input
level at the microphone.
  <li> Noise reduction processing, if present, MUST be disabled.
  <li> Automatic gain control, if present, MUST be disabled
</ul>

<p>If the platform supports noise suppression technologies tuned for speech
recognition, the effect MUST be controllable from the
android.media.audiofx.NoiseSuppressor API. Moreover, the UUID field for the
noise suppressor's effect descriptor MUST uniquely identify each implementation
of the noise suppression technology.</p>

<h3 id=5_4_3_capture_for_rerouting_of_playback>5.4.3. Capture for Rerouting of Playback</h3>


<p>The android.media.MediaRecorder.AudioSource class includes the REMOTE_SUBMIX
audio source. Devices that declare android.hardware.audio.output MUST properly
implement the REMOTE_SUBMIX audio source so that when an application uses the
android.media.AudioRecord API to record from this audio source, it can capture
a mix of all audio streams except for the following:</p>

<ul>
  <li> STREAM_RING
  <li> STREAM_ALARM
  <li> STREAM_NOTIFICATION
</ul>

<h2 id=5_5_audio_playback>5.5. Audio Playback</h2>


<p>Device implementations that declare android.hardware.audio.output MUST conform
to the requirements in this section.</p>

<h3 id=5_5_1_raw_audio_playback>5.5.1. Raw Audio Playback</h3>


<p>The device MUST allow playback of raw audio content with the following
characteristics:</p>

<ul>
  <li> <strong>Format</strong>: Linear PCM, 16-bit
  <li> <strong>Sampling rates</strong>: 8000, 11025, 16000, 22050, 32000, 44100
  <li> <strong>Channels</strong>: Mono, Stereo
</ul>

<p>The device SHOULD allow playback of raw audio content with the following
characteristics:</p>

<ul>
  <li> <strong>Sampling rates</strong>: 24000, 48000
</ul>

<h3 id=5_5_2_audio_effects>5.5.2. Audio Effects</h3>


<p>Android provides an API for audio effects for device implementations [<a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">Resources, 52</a>]. Device implementations that declare the feature
android.hardware.audio.output:</p>

<ul>
  <li> MUST support the EFFECT_TYPE_EQUALIZER and EFFECT_TYPE_LOUDNESS_ENHANCER
implementations controllable through the AudioEffect subclasses Equalizer,
LoudnessEnhancer
  <li> MUST support the visualizer API implementation, controllable through the
Visualizer class
  <li> SHOULD support the EFFECT_TYPE_BASS_BOOST, EFFECT_TYPE_ENV_REVERB,
EFFECT_TYPE_PRESET_REVERB, and EFFECT_TYPE_VIRTUALIZER implementations
controllable through the AudioEffect sub-classes BassBoost,
EnvironmentalReverb, PresetReverb, and Virtualizer
</ul>

<h3 id=5_5_3_audio_output_volume>5.5.3. Audio Output Volume</h3>


<p>Android Television device implementations MUST include support for system
Master Volume and digital audio output volume attenuation on supported outputs,
except for compressed audio passthrough output (where no audio decoding is done
on the device).</p>

<h2 id=5_6_audio_latency>5.6. Audio Latency</h2>


<p>Audio latency is the time delay as an audio signal passes through a system.
Many classes of applications rely on short latencies, to achieve real-time
sound effects.</p>

<p>For the purposes of this section, use the following definitions:</p>

<ul>
  <li> <strong>output latency</strong>—The interval between when an application writes a frame of PCM-coded data and
when the corresponding sound can be heard by an external listener or observed
by a transducer.
  <li> <strong>cold output latency</strong>—The output latency for the first frame, when the audio output system has been
idle and powered down prior to the request.
  <li> <strong>continuous output latency</strong>—The output latency for subsequent frames, after the device is playing audio.
  <li> <strong>input latency</strong>—The interval between when an external sound is presented to the device and
when an application reads the corresponding frame of PCM-coded data.
  <li> <strong>cold input latency</strong>—The sum of lost input time and the input latency for the first frame, when the
audio input system has been idle and powered down prior to the request.
  <li> <strong>continuous input latency</strong>—The input latency for subsequent frames, while the device is capturing audio.
  <li> <strong>cold output jitter</strong>—The variance among separate measurements of cold output latency values.
  <li> <strong>cold input jitter</strong>—The variance among separate measurements of cold input latency values. 
  <li> <strong>continuous round-trip latency</strong>—The sum of continuous input latency plus continuous output latency plus 5
milliseconds.
  <li> <strong>OpenSL ES PCM buffer queue API</strong>—The set of PCM-related OpenSL ES APIs within Android NDK; see
NDK_root/docs/opensles/index.html.
</ul>

<p>Device implementations that declare android.hardware.audio.output SHOULD meet
or exceed these audio output requirements:</p>

<ul>
  <li> cold output latency of 100 milliseconds or less
  <li> continuous output latency of 45 milliseconds or less
  <li> minimize the cold output jitter
</ul>

<p>If a device implementation meets the requirements of this section after any
initial calibration when using the OpenSL ES PCM buffer queue API, for
continuous output latency and cold output latency over at least one supported
audio output device, it MAY report support for low-latency audio, by reporting
the feature android.hardware.audio.low_latency via the
android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53</a>]. Conversely, if the device implementation does not meet these requirements it
MUST NOT report support for low-latency audio.</p>

<p>Device implementations that include android.hardware.microphone SHOULD meet
these input audio requirements:</p>

<ul>
  <li> cold input latency of 100 milliseconds or less
  <li> continuous input latency of 30 milliseconds or less
  <li> continuous round-trip latency of 50 milliseconds or less
  <li> minimize the cold input jitter
</ul>

<h2 id=5_7_network_protocols>5.7. Network Protocols</h2>


<p>Devices MUST support the media network protocols for audio and video playback
as specified in the Android SDK documentation [<a href="http://developer.android.com/guide/appendix/media-formats.html">Resources, 50</a>]. Specifically, devices MUST support the following media network protocols:</p>

<ul>
  <li> RTSP (RTP, SDP)
  <li> HTTP(S) progressive streaming
  <li> HTTP(S) Live Streaming draft protocol, Version 3 [<a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">Resources, 54</a>]
</ul>

<h2 id=5_8_secure_media>5.8. Secure Media</h2>


<p>Device implementations that support secure video output and are capable of
supporting secure surfaces MUST declare support for Display.FLAG_SECURE. Device
implementations that declare support for Display.FLAG_SECURE, if they support a
wireless display protocol, MUST secure the link with a cryptographically strong
mechanism such as HDCP 2.x or higher for Miracast wireless displays. Similarly
if they support a wired external display, the device implementations MUST
support HDCP 1.2 or higher. Android Television device implementations MUST
support HDCP 2.2 for devices supporting 4K resolution and HDCP 1.4 or above for
lower resolutions. The upstream Android open source implementation includes
support for wireless (Miracast) and wired (HDMI) displays that satisfies this
requirement.</p>

<h1 id=6_developer_tools_and_options_compatibility>6. Developer Tools and Options Compatibility</h1>


<h2 id=6_1_developer_tools>6.1. Developer Tools</h2>


<p>Device implementations MUST support the Android Developer Tools provided in the
Android SDK. Android compatible devices MUST be compatible with:</p>

<ul>
  <li> <strong>Android Debug Bridge (adb)</strong> [<a href="http://developer.android.com/tools/help/adb.html">Resources, 55</a>]
</ul>

<p>Device implementations MUST support all adb functions as documented in the
Android SDK including dumpsys [<a href="https://source.android.com/devices/tech/input/dumpsys.html">Resources, 56</a>]. The device-side adb daemon MUST be inactive by default and there MUST be a
user-accessible mechanism to turn on the Android Debug Bridge. If a device
implementation omits USB peripheral mode, it MUST implement the Android Debug
Bridge via local-area network (such as Ethernet or 802.11). </p>

<p>Android includes support for secure adb. Secure adb enables adb on known
authenticated hosts. Device implementations MUST support secure adb.</p>

<ul>
  <li> <strong>Dalvik Debug Monitor Service (ddms)</strong> [<a href="http://developer.android.com/tools/debugging/ddms.html">Resources, 57</a>]
</ul>

<p>Device implementations MUST support all ddms features as documented in the
Android SDK. As ddms uses adb, support for ddms SHOULD be inactive by default,
but MUST be supported whenever the user has activated the Android Debug Bridge,
as above.</p>

<ul>
  <li> <strong>Monkey</strong> [<a href="http://developer.android.com/tools/help/monkey.html">Resources, 58</a>]
</ul>

<p>Device implementations MUST include the Monkey framework, and make it available
for applications to use.</p>

<ul>
  <li> <strong>SysTrace</strong> [<a href="http://developer.android.com/tools/help/systrace.html">Resources, 59</a>]
</ul>

<p>Device implementations MUST support systrace tool as documented in the Android
SDK. Systrace must be inactive by default, and there MUST be a user-accessible
mechanism to turn on Systrace.</p>

<p>Most Linux-based systems and Apple Macintosh systems recognize Android devices
using the standard Android SDK tools, without additional support; however
Microsoft Windows systems typically require a driver for new Android devices.
(For instance, new vendor IDs and sometimes new device IDs require custom USB
drivers for Windows systems.) If a device implementation is unrecognized by the
adb tool as provided in the standard Android SDK, device implementers MUST
provide Windows drivers allowing developers to connect to the device using the
adb protocol. These drivers MUST be provided for Windows XP, Windows Vista,
Windows 7, Windows 8, and Windows 9 in both 32-bit and 64-bit versions.</p>

<h2 id=6_2_developer_options>6.2. Developer Options</h2>


<p>Android includes support for developers to configure application
development-related settings. Device implementations MUST honor the
android.settings.APPLICATION_DEVELOPMENT_SETTINGS intent to show application
development-related settings [<a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">Resources, 60</a>]. The upstream Android implementation hides the Developer Options menu by
default and enables users to launch Developer Options after pressing seven (7)
times on the <strong>Settings</strong> > <strong>About Device</strong> > <strong>Build Number</strong> menu item. Device implementations MUST provide a consistent experience for
Developer Options. Specifically, device implementations MUST hide Developer
Options by default and MUST provide a mechanism to enable Developer Options
that is consistent with the upstream Android implementation.</p>

<h1 id=7_hardware_compatibility>7. Hardware Compatibility</h1>


<p>If a device includes a particular hardware component that has a corresponding
API for third-party developers, the device implementation MUST implement that
API as described in the Android SDK documentation. If an API in the SDK
interacts with a hardware component that is stated to be optional and the
device implementation does not possess that component:</p>

<ul>
  <li> Complete class definitions (as documented by the SDK) for the component's APIs
MUST still be presented. 
  <li> The API's behaviors MUST be implemented as no-ops in some reasonable fashion.
  <li> API methods MUST return null values where permitted by the SDK documentation.
  <li> API methods MUST return no-op implementations of classes where null values are
not permitted by the SDK documentation.
  <li> API methods MUST NOT throw exceptions not documented by the SDK documentation.
</ul>

<p>A typical example of a scenario where these requirements apply is the telephony
API: even on non-phone devices, these APIs must be implemented as reasonable
no-ops.</p>

<p>Device implementations MUST consistently report accurate hardware configuration
information via the getSystemAvailableFeatures() and hasSystemFeature(String)
methods on the android.content.pm.PackageManager class for the same build
fingerprint. [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53]</a></p>

<h2 id=7_1_display_and_graphics>7.1. Display and Graphics</h2>


<p>Android includes facilities that automatically adjust application assets and UI
layouts appropriately for the device, to ensure that third-party applications
run well on a variety of hardware configurations [<a href="http://developer.android.com/guide/practices/screens_support.html">Resources, 61</a>]. Devices MUST properly implement these APIs and behaviors, as detailed in
this section.</p>

<p>The units referenced by the requirements in this section are defined as
follows:</p>

<ul>
  <li> <strong>physical diagonal size</strong>—The distance in inches between two opposing corners of the illuminated portion
of the display.
  <li> <strong>dots per inch (dpi)</strong>—The number of pixels encompassed by a linear horizontal or vertical span of
1". Where dpi values are listed, both horizontal and vertical dpi must fall
within the range.
  <li> <strong>aspect ratio</strong>—The ratio of the longer dimension of the screen to the shorter dimension. For
example, a display of 480x854 pixels would be 854 / 480 = 1.779, or roughly
"16:9".
  <li> <strong>density-independent pixel (dp)</strong>—The virtual pixel unit normalized to a 160 dpi screen, calculated as: pixels =
dps * (density / 160).
</ul>

<h3 id=7_1_1_screen_configuration>7.1.1. Screen Configuration</h3>


<h4 id=7_1_1_1_screen_size>7.1.1.1. Screen Size</h4>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Watch devices (detailed in <a href="#heading=h.40sdoojaw5k9">section 2</a>) MAY have smaller screen sizes as described in this section.</p>
</td>
 </tr>
</table>


<p>The Android UI framework supports a variety of different screen sizes, and
allows applications to query the device screen size (aka "screen layout") via
android.content.res.Configuration.screenLayout with the SCREENLAYOUT_SIZE_MASK.
Device implementations MUST report the correct screen size as defined in the
Android SDK documentation [<a href="http://developer.android.com/guide/practices/screens_support.html">Resources, 61</a>] and determined by the upstream Android platform. Specifically, device
implementations MUST report the correct screen size according to the following
logical density-independent pixel (dp) screen dimensions.</p>

<ul>
  <li> Devices MUST have screen sizes of at least 426 dp x 320 dp ('small'), unless it
is an Android Watch device.
  <li> Devices that report screen size 'normal' MUST have screen sizes of at least 480
dp x 320 dp.
  <li> Devices that report screen size 'large' MUST have screen sizes of at least 640
dp x 480 dp.
  <li> Devices that report screen size 'xlarge' MUST have screen sizes of at least 960
dp x 720 dp.
</ul>

<p>In addition, </p>

<ul>
  <li> Android Watch devices MUST have a screen with the physical diagonal size in the
range from 1.1 to 2.5 inches
  <li> Other types of Android device implementations, with a physically integrated
screen, MUST have a screen at least 2.5 inches in physical diagonal size.
</ul>

<p>Devices MUST NOT change their reported screen size at any time.</p>

<p>Applications optionally indicate which screen sizes they support via the
<supports-screens> attribute in the AndroidManifest.xml file. Device
implementations MUST correctly honor applications' stated support for small,
normal, large, and xlarge screens, as described in the Android SDK
documentation.</p>

<h4 id=7_1_1_2_screen_aspect_ratio>7.1.1.2. Screen Aspect Ratio</h4>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Watch devices MAY have an aspect ratio of 1.0 (1:1).</p>
</td>
 </tr>
</table>


<p>The screen aspect ratio MUST be a value from 1.3333 (4:3) to 1.86 (roughly
16:9), but Android Watch devices MAY have an aspect ratio of 1.0 (1:1) because
such a device implementation will use a UI_MODE_TYPE_WATCH as the
android.content.res.Configuration.uiMode.</p>

<h4 id=7_1_1_3_screen_density>7.1.1.3. Screen Density</h4>


<p>The Android UI framework defines a set of standard logical densities to help
application developers target application resources. Device implementations
MUST report only one of the following logical Android framework densities
through the android.util.DisplayMetrics APIs, and MUST execute applications at
this standard density and MUST NOT change the value at at any time for the
default display.</p>

<ul>
  <li> 120 dpi (ldpi)
  <li> 160 dpi (mdpi)
  <li> 213 dpi (tvdpi)
  <li> 240 dpi (hdpi)
  <li> 320 dpi (xhdpi)
  <li> 400 dpi (400dpi)
  <li> 480 dpi (xxhdpi)
  <li> 560 dpi (560dpi)
  <li> 640 dpi (xxxhdpi)
</ul>

<p>Device implementations SHOULD define the standard Android framework density
that is numerically closest to the physical density of the screen, unless that
logical density pushes the reported screen size below the minimum supported. If
the standard Android framework density that is numerically closest to the
physical density results in a screen size that is smaller than the smallest
supported compatible screen size (320 dp width), device implementations SHOULD
report the next lowest standard Android framework density.</p>

<h3 id=7_1_2_display_metrics>7.1.2. Display Metrics</h3>


<p>Device implementations MUST report correct values for all display metrics
defined in android.util.DisplayMetrics [<a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">Resources, 62</a>] and MUST report the same values regardless of whether the embedded or
external screen is used as the default display.</p>

<h3 id=7_1_3_screen_orientation>7.1.3. Screen Orientation</h3>


<p>Devices MUST report which screen orientations they support
(android.hardware.screen.portrait and/or android.hardware.screen.landscape) and
MUST report at least one supported orientation. For example, a device with a
fixed orientation landscape screen, such as a television or laptop, SHOULD only
report android.hardware.screen.landscape.</p>

<p>Devices that report both screen orientations MUST support dynamic orientation
by applications to either portrait or landscape screen orientation. That is,
the device must respect the application's request for a specific screen
orientation. Device implementations MAY select either portrait or landscape
orientation as the default.</p>

<p>Devices MUST report the correct value for the device's current orientation,
whenever queried via the android.content.res.Configuration.orientation,
android.view.Display.getOrientation(), or other APIs.</p>

<p>Devices MUST NOT change the reported screen size or density when changing
orientation.</p>

<h3 id=7_1_4_2d_and_3d_graphics_acceleration>7.1.4. 2D and 3D Graphics Acceleration</h3>


<p>Device implementations MUST support both OpenGL ES 1.0 and 2.0, as embodied and
detailed in the Android SDK documentations. Device implementations SHOULD
support OpenGL ES 3.0 or 3.1 on devices capable of supporting it. Device
implementations MUST also support Android RenderScript, as detailed in the
Android SDK documentation [<a href="http://developer.android.com/guide/topics/renderscript/">Resources, 63</a>].</p>

<p>Device implementations MUST also correctly identify themselves as supporting
OpenGL ES 1.0, OpenGL ES 2.0, OpenGL ES 3.0 or OpenGL 3.1. That is:</p>

<ul>
  <li> The managed APIs (such as via the GLES10.getString()method MUST report support
for OpenGL ES 1.0 and OpenGL ES 2.0.
  <li> The native C/C++ OpenGL APIs (APIs available to apps via libGLES_v1CM.so,
libGLES_v2.so, or libEGL.so) MUST report support for OpenGL ES 1.0 and OpenGL
ES 2.0.
  <li> Device implementations that declare support for OpenGL ES 3.0 or 3.1 MUST
support the corresponding managed APIs and include support for native C/C++
APIs. On device implementations that declare support for OpenGL ES 3.0 or 3.1,
libGLESv2.so MUST export the corresponding function symbols in addition to the
OpenGL ES 2.0 function symbols.
</ul>

<p>In addition to OpenGL ES 3.1, Android provides an extension pack with Java
interfaces [<a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">Resources, 64</a>] and native support for advanced graphics functionality such as tessellation
and the ASTC texture compression format. Android device implementations MAY
support this extension pack, and—only if fully implemented—MUST identify the
support through the android.hardware.opengles.aep feature flag.</p>

<p>Also, device implementations MAY implement any desired OpenGL ES extensions.
However, device implementations MUST report via the OpenGL ES managed and
native APIs all extension strings that they do support, and conversely MUST NOT
report extension strings that they do not support.</p>

<p>Note that Android includes support for applications to optionally specify that
they require specific OpenGL texture compression formats. These formats are
typically vendor-specific. Device implementations are not required by Android
to implement any specific texture compression format. However, they SHOULD
accurately report any texture compression formats that they do support, via the
getString() method in the OpenGL API.</p>

<p>Android includes a mechanism for applications to declare that they want to
enable hardware acceleration for 2D graphics at the Application, Activity,
Window, or View level through the use of a manifest tag
android:hardwareAccelerated or direct API calls [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 65</a>].</p>

<p>Device implementations MUST enable hardware acceleration by default, and MUST
disable hardware acceleration if the developer so requests by setting
android:hardwareAccelerated="false" or disabling hardware acceleration directly
through the Android View APIs.</p>

<p>In addition, device implementations MUST exhibit behavior consistent with the
Android SDK documentation on hardware acceleration [<a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">Resources, 65</a>].</p>

<p>Android includes a TextureView object that lets developers directly integrate
hardware-accelerated OpenGL ES textures as rendering targets in a UI hierarchy.
Device implementations MUST support the TextureView API, and MUST exhibit
consistent behavior with the upstream Android implementation.</p>

<p>Android includes support for EGL_ANDROID_RECORDABLE, an EGLConfig attribute
that indicates whether the EGLConfig supports rendering to an ANativeWindow
that records images to a video. Device implementations MUST support
EGL_ANDROID_RECORDABLE extension [<a href="https://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">Resources, 66</a>].</p>

<h3 id=7_1_5_legacy_application_compatibility_mode>7.1.5. Legacy Application Compatibility Mode</h3>


<p>Android specifies a "compatibility mode" in which the framework operates in a
'normal' screen size equivalent (320dp width) mode for the benefit of legacy
applications not developed for old versions of Android that pre-date
screen-size independence. Device implementations MUST include support for
legacy application compatibility mode as implemented by the upstream Android
open source code. That is, device implementations MUST NOT alter the triggers
or thresholds at which compatibility mode is activated, and MUST NOT alter the
behavior of the compatibility mode itself.</p>

<h3 id=7_1_6_screen_technology>7.1.6. Screen Technology</h3>


<p>The Android platform includes APIs that allow applications to render rich
graphics to the display. Devices MUST support all of these APIs as defined by
the Android SDK unless specifically allowed in this document. </p>

<ul>
  <li> Devices MUST support displays capable of rendering 16-bit color graphics and
SHOULD support displays capable of 24-bit color graphics.
  <li> Devices MUST support displays capable of rendering animations.
  <li> The display technology used MUST have a pixel aspect ratio (PAR) between 0.9
and 1.15. That is, the pixel aspect ratio MUST be near square (1.0) with a 10 ~
15% tolerance.
</ul>

<h3 id=7_1_7_external_displays>7.1.7. External Displays</h3>


<p>Android includes support for secondary display to enable media sharing
capabilities and developer APIs for accessing external displays. If a device
supports an external display either via a wired, wireless, or an embedded
additional display connection then the device implementation MUST implement the
display manager API as described in the Android SDK documentation [<a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">Resources, 67</a>].</p>

<h2 id=7_2_input_devices>7.2. Input Devices</h2>


<h3 id=7_2_1_keyboard>7.2.1. Keyboard</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Watch devices MAY but other type of device implementations MUST
implement a soft keyboard.</p>
</td>
 </tr>
</table>


<p>Device implementations:</p>

<ul>
  <li> MUST include support for the Input Management Framework (which allows
third-party developers to create Input Method Editors—i.e. soft keyboard) as
detailed at <a href="http://developer.android.com">http://developer.android.com</a>
  <li> MUST provide at least one soft keyboard implementation (regardless of whether a
hard keyboard is present) except for Android Watch devices where the screen
size makes it less reasonable to have a soft keyboard
  <li> MAY include additional soft keyboard implementations
  <li> MAY include a hardware keyboard
  <li> MUST NOT include a hardware keyboard that does not match one of the formats
specified in android.content.res.Configuration.keyboard [<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 68</a>] (QWERTY or 12-key)
</ul>

<h3 id=7_2_2_non-touch_navigation>7.2.2. Non-touch Navigation</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television devices MUST support D-pad.</p>
</td>
 </tr>
</table>


<p>Device implementations:</p>

<ul>
  <li> MAY omit a non-touch navigation option (trackball, d-pad, or wheel) if the
device implementation is not an Android Television device
  <li> MUST report the correct value for android.content.res.Configuration.navigation
[<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 68</a>]
  <li> MUST provide a reasonable alternative user interface mechanism for the
selection and editing of text, compatible with Input Management Engines. The
upstream Android open source implementation includes a selection mechanism
suitable for use with devices that lack non-touch navigation inputs.
</ul>

<h3 id=7_2_3_navigation_keys>7.2.3. Navigation Keys</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>The availability and visibility requirement of the Home, Recents, and Back
functions differ between device types as described in this section.</p>
</td>
 </tr>
</table>


<p>The Home, Recents, and Back functions (mapped to the key events KEYCODE_HOME,
KEYCODE_APP_SWITCH, KEYCODE_BACK, respectively) are essential to the Android
navigation paradigm and therefore;</p>

<ul>
  <li> Android Handheld device implementations MUST provide the Home, Recents, and
Back functions. 
  <li> Android Television device implementations MUST provide the Home and Back
functions.
  <li> Android Watch device implementations MUST have the Home function available to
the user, and the Back function except for when it is in UI_MODE_TYPE_WATCH.
  <li> All other types of device implementations MUST provide the Home and Back
functions.
</ul>

<p>These functions MAY be implemented via dedicated physical buttons (such as
mechanical or capacitive touch buttons), or MAY be implemented using dedicated
software keys on a distinct portion of the screen, gestures, touch panel, etc.
Android supports both implementations. All of these functions MUST be
accessible with a single action (e.g. tap, double-click or gesture) when
visible.</p>

<p>Recents function, if provided, MUST have a visible button or icon unless hidden
together with other navigation functions in full-screen mode. This does not
apply to devices upgrading from earlier Android versions that have physical
buttons for navigation and no recents key.</p>

<p> The Home and Back functions, if provided, MUST each have a visible button or
icon unless hidden together with other navigation functions in full-screen mode
or when the uiMode UI_MODE_TYPE_MASK is set to UI_MODE_TYPE_WATCH.</p>

<p>The Menu function is deprecated in favor of action bar since Android 4.0.
Therefore the new device implementations shipping with Android 5.0 MUST NOT
implement a dedicated physical button for the Menu function. Older device
implementations SHOULD NOT implement a dedicated physical button for the Menu
function, but if the physical Menu button is implemented and the device is
running applications with targetSdkVersion > 10, the device implementation:</p>

<ul>
  <li> MUST display the action overflow button on the action bar when it is visible
and the resulting action overflow menu popup is not empty. For a device
implementation launched before Android 4.4 but upgrading to Android 5.0, this
is RECOMMENDED.
  <li> MUST NOT modify the position of the action overflow popup displayed by
selecting the overflow button in the action bar
  <li> MAY render the action overflow popup at a modified position on the screen when
it is displayed by selecting the physical menu button
</ul>

<p>For backwards compatibility, device implementations MUST make the Menu function
available to applications when targetSdkVersion <= 10, either by a physical
button, a software key, or gestures. This Menu function should be presented
unless hidden together with other navigation functions.</p>

<p>Android supports Assist action [<a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">Resources, 69</a>]. Android device implementations except for Android Watch devices MUST make
the Assist action available to the user at all times when running applications.
The Assist action SHOULD be implemented as a long-press on the Home button or a
swipe-up gesture on the software Home key. This function MAY be implemented via
another physical button, software key, or gesture, but MUST be accessible with
a single action (e.g. tap, double-click, or gesture) when other navigation keys
are visible.</p>

<p>Device implementations MAY use a distinct portion of the screen to display the
navigation keys, but if so, MUST meet these requirements:</p>

<ul>
  <li> Device implementation navigation keys MUST use a distinct portion of the
screen, not available to applications, and MUST NOT obscure or otherwise
interfere with the portion of the screen available to applications.
  <li> Device implementations MUST make available a portion of the display to
applications that meets the requirements defined in <a href="#heading=h.mrv5xyps1ba8">section 7.1.1</a>.
  <li> Device implementations MUST display the navigation keys when applications do
not specify a system UI mode, or specify SYSTEM_UI_FLAG_VISIBLE.
  <li> Device implementations MUST present the navigation keys in an unobtrusive "low
profile" (eg. dimmed) mode when applications specify
SYSTEM_UI_FLAG_LOW_PROFILE.
  <li> Device implementations MUST hide the navigation keys when applications specify
SYSTEM_UI_FLAG_HIDE_NAVIGATION.
</ul>

<h3 id=7_2_4_touchscreen_input>7.2.4. Touchscreen Input</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Handhelds and Watch Devices MUST support touchscreen input.</p>
</td>
 </tr>
</table>


<p>Device implementations SHOULD have a pointer input system of some kind (either
mouse-like or touch). However, if a device implementation does not support a
pointer input system, it MUST NOT report the android.hardware.touchscreen or
android.hardware.faketouch feature constant. Device implementations that do
include a pointer input system:</p>

<ul>
  <li> SHOULD support fully independently tracked pointers, if the device input system
supports multiple pointers
  <li> MUST report the value of android.content.res.Configuration.touchscreen [<a href="http://developer.android.com/reference/android/content/res/Configuration.html">Resources, 68</a>] corresponding to the type of the specific touchscreen on the device
</ul>

<p>Android includes support for a variety of touchscreens, touch pads, and fake
touch input devices. Touchscreen based device implementations are associated
with a display [<a href="http://source.android.com/devices/tech/input/touch-devices.html">Resources, 70</a>] such that the user has the impression of directly manipulating items on
screen. Since the user is directly touching the screen, the system does not
require any additional affordances to indicate the objects being manipulated.
In contrast, a fake touch interface provides a user input system that
approximates a subset of touchscreen capabilities. For example, a mouse or
remote control that drives an on-screen cursor approximates touch, but requires
the user to first point or focus then click. Numerous input devices like the
mouse, trackpad, gyro-based air mouse, gyro-pointer, joystick, and multi-touch
trackpad can support fake touch interactions. Android 5.0 includes the feature
constant android.hardware.faketouch, which corresponds to a high-fidelity
non-touch (pointer-based) input device such as a mouse or trackpad that can
adequately emulate touch-based input (including basic gesture support), and
indicates that the device supports an emulated subset of touchscreen
functionality. Device implementations that declare the fake touch feature MUST
meet the fake touch requirements in <a href="#heading=h.7tz929qk2hjr">section 7.2.5</a>.</p>

<p>Device implementations MUST report the correct feature corresponding to the
type of input used. Device implementations that include a touchscreen
(single-touch or better) MUST report the platform feature constant
android.hardware.touchscreen. Device implementations that report the platform
feature constant android.hardware.touchscreen MUST also report the platform
feature constant android.hardware.faketouch. Device implementations that do not
include a touchscreen (and rely on a pointer device only) MUST NOT report any
touchscreen feature, and MUST report only android.hardware.faketouch if they
meet the fake touch requirements in <a href="#heading=h.7tz929qk2hjr">section 7.2.5</a>.</p>

<h3 id=7_2_5_fake_touch_input>7.2.5. Fake Touch Input</h3>


<p>Device implementations that declare support for android.hardware.faketouch:</p>

<ul>
  <li> MUST report the absolute X and Y screen positions of the pointer location and
display a visual pointer on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]
  <li> MUST report touch event with the action code that specifies the state change
that occurs on the pointer going down or up on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]
  <li> MUST support pointer down and up on an object on the screen, which allows users
to emulate tap on an object on the screen
  <li> MUST support pointer down, pointer up, pointer down then pointer up in the same
place on an object on the screen within a time threshold, which allows users to
emulate double tap on an object on the screen [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]
  <li> MUST support pointer down on an arbitrary point on the screen, pointer move to
any other arbitrary point on the screen, followed by a pointer up, which allows
users to emulate a touch drag
  <li> MUST support pointer down then allow users to quickly move the object to a
different position on the screen and then pointer up on the screen, which
allows users to fling an object on the screen
</ul>

<p>Devices that declare support for android.hardware.faketouch.multitouch.distinct
MUST meet the requirements for faketouch above, and MUST also support distinct
tracking of two or more independent pointer inputs.</p>

<h3 id=7_2_6_game_controller_support>7.2.6. Game Controller Support</h3>


<p>Android Television device implementations MUST support button mappings for game
controllers as listed below. The upstream Android implementation includes
implementation for game controllers that satisfies this requirement. </p>

<h4 id=7_2_6_1_button_mappings>7.2.6.1. Button Mappings</h4>


<p>Android Television device implementations MUST support the following key
mappings:</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Button</strong></p>
</td>
    <td class="tab0">
<p><strong>HID Usage</strong>2</p>
</td>
    <td class="tab0">
<p><strong>Android Button</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_A">A</a>1</p>
</td>
    <td>
<p>0x09 0x0001</p>
</td>
    <td>
<p>KEYCODE_BUTTON_A (96)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_B">B</a>1</p>
</td>
    <td>
<p>0x09 0x0002</p>
</td>
    <td>
<p>KEYCODE_BUTTON_B (97)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_X">X</a>1</p>
</td>
    <td>
<p>0x09 0x0004</p>
</td>
    <td>
<p>KEYCODE_BUTTON_X (99)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_Y">Y</a>1</p>
</td>
    <td>
<p>0x09 0x0005</p>
</td>
    <td>
<p>KEYCODE_BUTTON_Y (100)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_UP">D-pad up</a>1</p>

<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_DOWN">D-pad down</a>1</p>
</td>
    <td>
<p>0x01 0x00393</p>
</td>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_Y">AXIS_HAT_Y</a>4</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_LEFT">D-pad left</a>1</p>

<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_DPAD_RIGHT">D-pad right</a>1</p>
</td>
    <td>
<p>0x01 0x00393</p>
</td>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_HAT_X">AXIS_HAT_X4 </a></p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_L1">Left shoulder button</a>1</p>
</td>
    <td>
<p>0x09 0x0007</p>
</td>
    <td>
<p>KEYCODE_BUTTON_L1 (102)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_R1">Right shoulder button</a>1</p>
</td>
    <td>
<p>0x09 0x0008</p>
</td>
    <td>
<p>KEYCODE_BUTTON_R1 (103)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBL">Left stick click</a>1</p>
</td>
    <td>
<p>0x09 0x000E</p>
</td>
    <td>
<p>KEYCODE_BUTTON_THUMBL (106)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BUTTON_THUMBR">Right stick click</a>1</p>
</td>
    <td>
<p>0x09 0x000F</p>
</td>
    <td>
<p>KEYCODE_BUTTON_THUMBR (107)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME">Home</a>1</p>
</td>
    <td>
<p>0x0c 0x0223</p>
</td>
    <td>
<p>KEYCODE_HOME (3)</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK">Back</a>1</p>
</td>
    <td>
<p>0x0c 0x0224</p>
</td>
    <td>
<p>KEYCODE_BACK (4)</p>
</td>
 </tr>
</table>


<p>1 [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 72</a>]</p>

<p>2 The above HID usages must be declared within a Game pad CA (0x01 0x0005).</p>

<p>3 This usage must have a Logical Minimum of 0, a Logical Maximum of 7, a
Physical Minimum of 0, a Physical Maximum of 315, Units in Degrees, and a
Report Size of 4. The logical value is defined to be the clockwise rotation
away from the vertical axis; for example, a logical value of 0 represents no
rotation and the up button being pressed, while a logical value of 1 represents
a rotation of 45 degrees and both the up and left keys being pressed.</p>

<p>4 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Analog Controls</strong>1</p>
</td>
    <td class="tab0">
<p><strong>HID Usage</strong></p>
</td>
    <td class="tab0">
<p><strong>Android Button</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_LTRIGGER">Left Trigger</a></p>
</td>
    <td>
<p>0x02 0x00C5</p>
</td>
    <td>
<p>AXIS_LTRIGGER </p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_THROTTLE">Right Trigger</a></p>
</td>
    <td>
<p>0x02 0x00C4</p>
</td>
    <td>
<p>AXIS_RTRIGGER </p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Y">Left Joystick</a></p>
</td>
    <td>
<p>0x01 0x0030</p>

<p>0x01 0x0031</p>
</td>
    <td>
<p>AXIS_X</p>

<p>AXIS_Y</p>
</td>
 </tr>
 <tr>
    <td>
<p><a href="http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_Z">Right Joystick</a></p>
</td>
    <td>
<p>0x01 0x0032</p>

<p>0x01 0x0035</p>
</td>
    <td>
<p>AXIS_Z</p>

<p>AXIS_RZ</p>
</td>
 </tr>
</table>


<p>1 [<a href="http://developer.android.com/reference/android/view/MotionEvent.html">Resources, 71</a>]</p>

<h3 id=7_2_7_remote_control>7.2.7. Remote Control</h3>


<p>Android Television device implementations SHOULD provide a remote control to
allow users to access the TV interface. The remote control MAY be a physical
remote or can be a software-based remote that is accessible from a mobile phone
or tablet. The remote control MUST meet the requirements defined below.</p>

<ul>
  <li> <strong>Search affordance</strong>—Device implementations MUST fire KEYCODE_SEARCH when the user invokes voice
search either on the physical or software-based remote.
  <li> <strong>Navigation</strong>—All Android Television remotes MUST include Back, Home, and Select buttons and
support for D-pad events [<a href="http://developer.android.com/reference/android/view/KeyEvent.html">Resources, 72</a>].
</ul>

<h2 id=7_3_sensors>7.3. Sensors</h2>


<p>Android includes APIs for accessing a variety of sensor types. Devices
implementations generally MAY omit these sensors, as provided for in the
following subsections. If a device includes a particular sensor type that has a
corresponding API for third-party developers, the device implementation MUST
implement that API as described in the Android SDK documentation and the
Android Open Source documentation on sensors [<a href="http://source.android.com/devices/sensors">Resources, 73</a>]. For example, device implementations:</p>

<ul>
  <li> MUST accurately report the presence or absence of sensors per the
android.content.pm.PackageManager class [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53]</a>
  <li> MUST return an accurate list of supported sensors via the
SensorManager.getSensorList() and similar methods
  <li> MUST behave reasonably for all other sensor APIs (for example, by returning
true or false as appropriate when applications attempt to register listeners,
not calling sensor listeners when the corresponding sensors are not present;
etc.)
  <li> MUST report all sensor measurements using the relevant International System of
Units (metric) values for each sensor type as defined in the Android SDK
documentation [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 74</a>]
  <li> SHOULD report the event time in nanoseconds as defined in the Android SDK
documentation, representing the time the event happened and synchronized with
the SystemClock.elapsedRealtimeNano() clock. Existing and new Android devices
are <strong>very strongly encouraged</strong> to meet these requirement so they will be able to upgrade to the future
platform releases where this might become a REQUIRED component. The
synchronization error SHOULD be below 100 milliseconds [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">Resources, 75</a>].
</ul>

<p>The list above is not comprehensive; the documented behavior of the Android SDK
and the Android Open Source Documentations on Sensors [<a href="http://source.android.com/devices/sensors">Resources, 73</a>] is to be considered authoritative.</p>

<p>Some sensor types are composite, meaning they can be derived from data provided
by one or more other sensors. (Examples include the orientation sensor, and the
linear acceleration sensor.) Device implementations SHOULD implement these
sensor types, when they include the prerequisite physical sensors as described
in [<a href="http://source.android.com/devices/sensors/composite_sensors.html">Resources, 76</a>]. If a device implementation includes a composite sensor it MUST implement the
sensor as described in the Android Open Source documentation on composite
sensors [<a href="http://source.android.com/devices/sensors/composite_sensors.html">Resources, 76</a>].</p>

<p>Some Android sensor supports a "continuous" trigger mode, which returns data
continuously [<a href="http://source.android.com/devices/sensors/base_triggers.html#continuous">Resources, 77</a>]. For any API indicated by the Android SDK documentation to be a continuous
sensor, device implementations MUST continuously provide periodic data samples
that SHOULD have a jitter below 3%, where jitter is defined as the standard
deviation of the difference of the reported timestamp values between
consecutive events.</p>

<p>Note that the device implementations MUST ensure that the sensor event stream
MUST NOT prevent the device CPU from entering a suspend state or waking up from
a suspend state.</p>

<p>Finally, when several sensors are activated, the power consumption SHOULD NOT
exceed the sum of the individual sensor’s reported power consumption.</p>

<h3 id=7_3_1_accelerometer>7.3.1. Accelerometer</h3>


<p>Device implementations SHOULD include a 3-axis accelerometer. Android Handheld
devices and Android Watch devices are strongly encouraged to include this
sensor. If a device implementation does include a 3-axis accelerometer, it:</p>

<ul>
  <li> MUST implement and report TYPE_ACCELEROMETER sensor [<a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">Resources, 78</a>]
  <li> MUST be able to report events up to a frequency of at least 100 Hz and SHOULD
report events up to at least 200 Hz
  <li> MUST comply with the Android sensor coordinate system as detailed in the
Android APIs [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 74</a>]
  <li> MUST be capable of measuring from freefall up to four times the gravity (4g) or
more on any axis
  <li> MUST have a resolution of at least 8-bits and SHOULD have a resolution of at
least 16-bits
  <li> SHOULD be calibrated while in use if the characteristics changes over the life
cycle and compensated, and preserve the compensation parameters between device
reboots
  <li> SHOULD be temperature compensated
  <li> MUST have a standard deviation no greater than 0.05 m/s^, where the standard
deviation should be calculated on a per axis basis on samples collected over a
period of at least 3 seconds at the fastest sampling rate
  <li> SHOULD implement the TYPE_SIGNIFICANT_MOTION, TYPE_TILT_DETECTOR,
TYPE_STEP_DETECTOR, TYPE_STEP_COUNTER composite sensors as described in the
Android SDK document. Existing and new Android devices are <strong>very strongly encouraged</strong> to implement the TYPE_SIGNIFICANT_MOTION composite sensor. If any of these
sensors are implemented, the sum of their power consumption MUST always be less
than 4 mW and SHOULD each be below 2 mW and 0.5 mW for when the device is in a
dynamic or static condition.
  <li> If a gyroscope sensor is included, MUST implement the TYPE_GRAVITY and
TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
are strongly encouraged to implement the TYPE_GAME_ROTATION_VECTOR sensor.
  <li> SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if a gyroscope sensor
and a magnetometer sensor is also included
</ul>

<h3 id=7_3_2_magnetometer>7.3.2. Magnetometer</h3>


<p>Device implementations SHOULD include a 3-axis magnetometer (compass). If a
device does include a 3-axis magnetometer, it:</p>

<ul>
  <li> MUST implement the TYPE_MAGNETIC_FIELD sensor and SHOULD also implement
TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor. Existing and new Android devices are
strongly encouraged to implement the TYPE_MAGNETIC_FIELD_UNCALIBRATED sensor.
  <li> MUST be able to report events up to a frequency of at least 10 Hz and SHOULD
report events up to at least 50 Hz
  <li> MUST comply with the Android sensor coordinate system as detailed in the
Android APIs [<a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">Resources, 74</a>]
  <li> MUST be capable of measuring between -900 μT and +900 μT on each axis before
saturating
  <li> MUST have a hard iron offset value less than 700 μT and SHOULD have a value
below 200 μT, by placing the magnetometer far from dynamic (current-induced)
and static (magnet-induced) magnetic fields
  <li> MUST have a resolution equal or denser than 0.6 μT and SHOULD have a resolution
equal or denser than 0.2 μT
  <li> SHOULD be temperature compensated
  <li> MUST support online calibration and compensation of the hard iron bias, and
preserve the compensation parameters between device reboots
  <li> MUST have the soft iron compensation applied—the calibration can be done either
while in use or during the production of the device
  <li> SHOULD have a standard deviation, calculated on a per axis basis on samples
collected over a period of at least 3 seconds at the fastest sampling rate, no
greater than 0.5 μT
  <li> SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
sensor and a gyroscope sensor is also included
  <li> MAY implement the TYPE_GEOMAGNETIC_ROTATION_VECTOR sensor if an accelerometer
sensor is also implemented. However if implemented, it MUST consume less than
10 mW and SHOULD consume less than 3 mW when the sensor is registered for batch
mode at 10 Hz. 
</ul>

<h3 id=7_3_3_gps>7.3.3. GPS</h3>


<p>Device implementations SHOULD include a GPS receiver. If a device
implementation does include a GPS receiver, it SHOULD include some form of
"assisted GPS" technique to minimize GPS lock-on time.</p>

<h3 id=7_3_4_gyroscope>7.3.4. Gyroscope</h3>


<p>Device implementations SHOULD include a gyroscope (angular change sensor).
Devices SHOULD NOT include a gyroscope sensor unless a 3-axis accelerometer is
also included. If a device implementation includes a gyroscope, it:</p>

<ul>
  <li> MUST implement the TYPE_GYROSCOPE sensor and SHOULD also implement
TYPE_GYROSCOPE_UNCALIBRATED sensor. Existing and new Android devices are
strongly encouraged to implement the SENSOR_TYPE_GYROSCOPE_UNCALIBRATED sensor. 
  <li> MUST be capable of measuring orientation changes up to 1,000 degrees per second
  <li> MUST be able to report events up to a frequency of at least 100 Hz and SHOULD
report events up to at least 200 Hz
  <li> MUST have a resolution of 12-bits or more and SHOULD have a resolution of
16-bits or more
  <li> MUST be temperature compensated
  <li> MUST be calibrated and compensated while in use, and preserve the compensation
parameters between device reboots
  <li> MUST have a variance no greater than 1e-7 rad^2 / s^2 per Hz (variance per Hz,
or rad^2 / s). The variance is allowed to vary with the sampling rate, but must
be constrained by this value. In other words, if you measure the variance of
the gyro at 1 Hz sampling rate it should be no greater than 1e-7 rad^2/s^2.
  <li> SHOULD implement a TYPE_ROTATION_VECTOR composite sensor, if an accelerometer
sensor and a magnetometer sensor is also included
  <li> If an accelerometer sensor is included, MUST implement the TYPE_GRAVITY and
TYPE_LINEAR_ACCELERATION composite sensors and SHOULD implement the
TYPE_GAME_ROTATION_VECTOR composite sensor. Existing and new Android devices
are strongly encouraged to implement the TYPE_GAME_ROTATION_VECTOR sensor.
</ul>

<h3 id=7_3_5_barometer>7.3.5. Barometer</h3>


<p>Device implementations SHOULD include a barometer (ambient air pressure
sensor). If a device implementation includes a barometer, it:</p>

<ul>
  <li> MUST implement and report TYPE_PRESSURE sensor
  <li> MUST be able to deliver events at 5 Hz or greater
  <li> MUST have adequate precision to enable estimating altitude
  <li> MUST be temperature compensated
</ul>

<h3 id=7_3_6_thermometer>7.3.6. Thermometer</h3>


<p>Device implementations MAY include an ambient thermometer (temperature sensor).
If present, it MUST be defined as SENSOR_TYPE_AMBIENT_TEMPERATURE and it MUST
measure the ambient (room) temperature in degrees Celsius.</p>

<p>Device implementations MAY but SHOULD NOT include a CPU temperature sensor. If
present, it MUST be defined as SENSOR_TYPE_TEMPERATURE, it MUST measure the
temperature of the device CPU, and it MUST NOT measure any other temperature.
Note the SENSOR_TYPE_TEMPERATURE sensor type was deprecated in Android 4.0.</p>

<h3 id=7_3_7_photometer>7.3.7. Photometer</h3>


<p>Device implementations MAY include a photometer (ambient light sensor).</p>

<h3 id=7_3_8_proximity_sensor>7.3.8. Proximity Sensor</h3>


<p>Device implementations MAY include a proximity sensor. Devices that can make a
voice call and indicate any value other than PHONE_TYPE_NONE in getPhoneType
SHOULD include a proximity sensor. If a device implementation does include a
proximity sensor, it:</p>

<ul>
  <li> MUST measure the proximity of an object in the same direction as the screen.
That is, the proximity sensor MUST be oriented to detect objects close to the
screen, as the primary intent of this sensor type is to detect a phone in use
by the user. If a device implementation includes a proximity sensor with any
other orientation, it MUST NOT be accessible through this API.
  <li> MUST have 1-bit of accuracy or more
</ul>

<h2 id=7_4_data_connectivity>7.4. Data Connectivity</h2>


<h3 id=7_4_1_telephony>7.4.1. Telephony</h3>


<p>"Telephony" as used by the Android APIs and this document refers specifically
to hardware related to placing voice calls and sending SMS messages via a GSM
or CDMA network. While these voice calls may or may not be packet-switched,
they are for the purposes of Android considered independent of any data
connectivity that may be implemented using the same network. In other words,
the Android "telephony" functionality and APIs refer specifically to voice
calls and SMS. For instance, device implementations that cannot place calls or
send/receive SMS messages MUST NOT report the android.hardware.telephony
feature or any subfeatures, regardless of whether they use a cellular network
for data connectivity.</p>

<p>Android MAY be used on devices that do not include telephony hardware. That is,
Android is compatible with devices that are not phones. However, if a device
implementation does include GSM or CDMA telephony, it MUST implement full
support for the API for that technology. Device implementations that do not
include telephony hardware MUST implement the full APIs as no-ops.</p>

<h3 id=7_4_2_ieee_802_11_wi-fi>7.4.2. IEEE 802.11 (Wi-Fi)</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television device implementations MUST include Wi-Fi support. </p>
</td>
 </tr>
</table>


<p>Android Television device implementations MUST include support for one or more
forms of 802.11 (b/g/a/n, etc.) and other types of Android device
implementation SHOULD include support for one or more forms of 802.11. If a
device implementation does include support for 802.11 and exposes the
functionality to a third-party application, it MUST implement the corresponding
Android API and:</p>

<ul>
  <li> MUST report the hardware feature flag android.hardware.wifi
  <li> MUST implement the multicast API as described in the SDK documentation [<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">Resources, 79</a>]
  <li> MUST support multicast DNS (mDNS) and MUST NOT filter mDNS packets
(224.0.0.251) at any time of operation including when the screen is not in an
active state
</ul>

<h4 id=7_4_2_1_wi-fi_direct>7.4.2.1. Wi-Fi Direct</h4>


<p>Device implementations SHOULD include support for Wi-Fi Direct (Wi-Fi
peer-to-peer). If a device implementation does include support for Wi-Fi
Direct, it MUST implement the corresponding Android API as described in the SDK
documentation [<a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">Resources, 80</a>]. If a device implementation includes support for Wi-Fi Direct, then it:</p>

<ul>
  <li> MUST report the hardware feature android.hardware.wifi.direct
  <li> MUST support regular Wi-Fi operation
  <li> SHOULD support concurrent Wi-Fi and Wi-Fi Direct operation
</ul>

<h4 id=7_4_2_2_wi-fi_tunneled_direct_link_setup>7.4.2.2. Wi-Fi Tunneled Direct Link Setup</h4>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television device implementations MUST include support for Wi-Fi
Tunneled Direct Link Setup (TDLS).</p>
</td>
 </tr>
</table>


<p>Android Television device implementations MUST include support for Wi-Fi
Tunneled Direct Link Setup (TDLS) and other types of Android device
implementations SHOULD include support for Wi-Fi TDLS as described in the
Android SDK Documentation [<a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">Resources, 81</a>]. If a device implementation does include support for TDLS and TDLS is enabled
by the WiFiManager API, the device:</p>

<ul>
  <li> SHOULD use TDLS only when it is possible AND beneficial
  <li> SHOULD have some heuristic and NOT use TDLS when its performance might be worse
than going through the Wi-Fi access point
</ul>

<h3 id=7_4_3_bluetooth>7.4.3. Bluetooth</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television device implementations MUST support Bluetooth and Bluetooth
LE and Android Watch device implementations MUST support Bluetooth.</p>
</td>
 </tr>
</table>


<p>Android includes support for Bluetooth and Bluetooth Low Energy [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 82</a>]. Device implementations that include support for Bluetooth and Bluetooth Low
Energy MUST declare the relevant platform features (android.hardware.bluetooth
and android.hardware.bluetooth_le respectively) and implement the platform
APIs. Device implementations SHOULD implement relevant Bluetooth profiles such
as A2DP, AVCP, OBEX, etc. as appropriate for the device. Android Television
device implementations MUST support Bluetooth and Bluetooth LE. </p>

<p>Device implementations including support for Bluetooth Low Energy:</p>

<ul>
  <li> MUST declare the hardware feature android.hardware.bluetooth_le
  <li> MUST enable the GATT (generic attribute profile) based Bluetooth APIs as
described in the SDK documentation and [<a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">Resources, 82</a>]
  <li> SHOULD support offloading of the filtering logic to the bluetooth chipset when
implementing the ScanFilter API [<a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">Resources, 83</a>], and MUST report the correct value of where the filtering logic is
implemented whenever queried via the
android.bluetooth.BluetoothAdapter.isOffloadedFilteringSupported() method
  <li> SHOULD support offloading of the batched scanning to the bluetooth chipset, but
if not supported, MUST report ‘false’ whenever queried via the
android.bluetooth.BluetoothAdapater.isOffloadedScanBatchingSupported() method.
  <li> SHOULD support multi advertisement with at least 4 slots, but if not supported,
MUST report ‘false’ whenever queried via the
android.bluetooth.BluetoothAdapter.isMultipleAdvertisementSupported() method
</ul>

<h3 id=7_4_4_near-field_communications>7.4.4. Near-Field Communications</h3>


<p>Device implementations SHOULD include a transceiver and related hardware for
Near-Field Communications (NFC). If a device implementation does include NFC
hardware and plans to make it available to third-party apps, then it:</p>

<ul>
  <li> MUST report the android.hardware.nfc feature from the
android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53</a>]
  <li> MUST be capable of reading and writing NDEF messages via the following NFC
standards:
  <ul>
    <li> MUST be capable of acting as an NFC Forum reader/writer (as defined by the NFC
Forum technical specification NFCForum-TS-DigitalProtocol-1.0) via the
following NFC standards:
    <ul>
      <li> NfcA (ISO14443-3A)
      <li> NfcB (ISO14443-3B)
      <li> NfcF (JIS 6319-4)
      <li> IsoDep (ISO 14443-4)
      <li> NFC Forum Tag Types 1, 2, 3, 4 (defined by the NFC Forum)
    </ul>
  <li> SHOULD be capable of reading and writing NDEF messages via the following NFC
standards. Note that while the NFC standards below are stated as SHOULD, the
Compatibility Definition for a future version is planned to change these to
MUST. These standards are optional in this version but will be required in
future versions. Existing and new devices that run this version of Android are <strong>very strongly encouraged</strong> to meet these requirements now so they will be able to upgrade to the future
platform releases.
  <ul>
    <li> NfcV (ISO 15693)
  </ul>
  <li> MUST be capable of transmitting and receiving data via the following
peer-to-peer standards and protocols:
  <ul>
    <li> ISO 18092
    <li> LLCP 1.0 (defined by the NFC Forum)
    <li> SDP 1.0 (defined by the NFC Forum)
    <li> NDEF Push Protocol [<a href="http://static.googleusercontent.com/media/source.android.com/en/us/compatibility/ndef-push-protocol.pdf">Resources, 84</a>]
    <li> SNEP 1.0 (defined by the NFC Forum)
  </ul>
  <li> MUST include support for Android Beam [<a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">Resources, 85</a>]:
  <ul>
    <li> MUST implement the SNEP default server. Valid NDEF messages received by the
default SNEP server MUST be dispatched to applications using the
android.nfc.ACTION_NDEF_DISCOVERED intent. Disabling Android Beam in settings
MUST NOT disable dispatch of incoming NDEF message.
    <li> MUST honor the android.settings.NFCSHARING_SETTINGS intent to show NFC sharing
settings [<a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">Resources, 86</a>]
    <li> MUST implement the NPP server. Messages received by the NPP server MUST be
processed the same way as the SNEP default server.
    <li> MUST implement a SNEP client and attempt to send outbound P2P NDEF to the
default SNEP server when Android Beam is enabled. If no default SNEP server is
found then the client MUST attempt to send to an NPP server.
    <li> MUST allow foreground activities to set the outbound P2P NDEF message using
android.nfc.NfcAdapter.setNdefPushMessage, and
android.nfc.NfcAdapter.setNdefPushMessageCallback, and
android.nfc.NfcAdapter.enableForegroundNdefPush
    <li> SHOULD use a gesture or on-screen confirmation, such as 'Touch to Beam', before
sending outbound P2P NDEF messages
    <li> SHOULD enable Android Beam by default and MUST be able to send and receive
using Android Beam, even when another proprietary NFC P2p mode is turned on
    <li> MUST support NFC Connection handover to Bluetooth when the device supports
Bluetooth Object Push Profile. Device implementations MUST support connection
handover to Bluetooth when using android.nfc.NfcAdapter.setBeamPushUris, by
implementing the "Connection Handover version 1.2" [<a href="http://www.nfc-forum.org/specs/spec_list/#conn_handover">Resources, 87</a>] and "Bluetooth Secure Simple Pairing Using NFC version 1.0" [<a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">Resources, 88</a>] specs from the NFC Forum. Such an implementation MUST implement the handover
LLCP service with service name "urn:nfc:sn:handover" for exchanging the
handover request/select records over NFC, and it MUST use the Bluetooth Object
Push Profile for the actual Bluetooth data transfer. For legacy reasons (to
remain compatible with Android 4.1 devices), the implementation SHOULD still
accept SNEP GET requests for exchanging the handover request/select records
over NFC. However an implementation itself SHOULD NOT send SNEP GET requests
for performing connection handover.
  </ul>
  <li> MUST poll for all supported technologies while in NFC discovery mode
  <li> SHOULD be in NFC discovery mode while the device is awake with the screen
active and the lock-screen unlocked
</ul>
</ul>

<p>(Note that publicly available links are not available for the JIS, ISO, and NFC
Forum specifications cited above.)</p>

<p>Android 5.0 includes support for NFC Host Card Emulation (HCE) mode. If a
device implementation does include an NFC controller capable of HCE and
Application ID (AID) routing, then it:</p>

<ul>
  <li> MUST report the android.hardware.nfc.hce feature constant
  <li> MUST support NFC HCE APIs as defined in the Android SDK [<a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">Resources, 10</a>]
</ul>

<p>Additionally, device implementations MAY include reader/writer support for the
following MIFARE technologies.</p>

<ul>
  <li> MIFARE Classic
  <li> MIFARE Ultralight 
  <li> NDEF on MIFARE Classic 
</ul>

<p>Note that Android includes APIs for these MIFARE types. If a device
implementation supports MIFARE in the reader/writer role, it:</p>

<ul>
  <li> MUST implement the corresponding Android APIs as documented by the Android SDK
  <li> MUST report the feature com.nxp.mifare from the
android.content.pm.PackageManager.hasSystemFeature() meth<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">od [Resources, 53]</a>. Note that this is not a standard Android feature and as such does not appear
as a constant on the PackageManager class.
  <li> MUST NOT implement the corresponding Android APIs nor report the com.nxp.mifare
feature unless it also implements general NFC support as described in this
section
</ul>

<p>If a device implementation does not include NFC hardware, it MUST NOT declare
the android.hardware.nfc feature from the
android.content.pm.PackageManager.hasSystemFeature() method [<a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">Resources, 53]</a>, and MUST implement the Android NFC API as a no-op.</p>

<p>As the classes android.nfc.NdefMessage and android.nfc.NdefRecord represent a
protocol-independent data representation format, device implementations MUST
implement these APIs even if they do not include support for NFC or declare the
android.hardware.nfc feature.</p>

<h3 id=7_4_5_minimum_network_capability>7.4.5. Minimum Network Capability</h3>


<p>Device implementations MUST include support for one or more forms of data
networking. Specifically, device implementations MUST include support for at
least one data standard capable of 200Kbit/sec or greater. Examples of
technologies that satisfy this requirement include EDGE, HSPA, EV-DO, 802.11g,
Ethernet, Bluetooth PAN, etc.</p>

<p>Device implementations where a physical networking standard (such as Ethernet)
is the primary data connection SHOULD also include support for at least one
common wireless data standard, such as 802.11 (Wi-Fi).</p>

<p>Devices MAY implement more than one form of data connectivity.</p>

<h3 id=7_4_6_sync_settings>7.4.6. Sync Settings</h3>


<p>Device implementations MUST have the master auto-sync setting on by default so
that the method getMasterSyncAutomatically() returns "true" [<a href="http://developer.android.com/reference/android/content/ContentResolver.html">Resources, 89</a>].</p>

<h2 id=7_5_cameras>7.5. Cameras</h2>


<p>Device implementations SHOULD include a rear-facing camera and MAY include a
front-facing camera. A rear-facing camera is a camera located on the side of
the device opposite the display; that is, it images scenes on the far side of
the device, like a traditional camera. A front-facing camera is a camera
located on the same side of the device as the display; that is, a camera
typically used to image the user, such as for video conferencing and similar
applications.</p>

<p>If a device implementation includes at least one camera, it SHOULD be possible
for an application to simultaneously allocate 3 bitmaps equal to the size of
the images produced by the largest-resolution camera sensor on the device.</p>

<h3 id=7_5_1_rear-facing_camera>7.5.1. Rear-Facing Camera</h3>


<p>Device implementations SHOULD include a rear-facing camera. If a device
implementation includes at least one rear-facing camera, it:</p>

<ul>
  <li> MUST report the feature flag android.hardware.camera and
android.hardware.camera.any 
  <li> MUST have a resolution of at least 2 megapixels
  <li> SHOULD have either hardware auto-focus or software auto-focus implemented in
the camera driver (transparent to application software)
  <li> MAY have fixed-focus or EDOF (extended depth of field) hardware
  <li> MAY include a flash. If the Camera includes a flash, the flash lamp MUST NOT be
lit while an android.hardware.Camera.PreviewCallback instance has been
registered on a Camera preview surface, unless the application has explicitly
enabled the flash by enabling the FLASH_MODE_AUTO or FLASH_MODE_ON attributes
of a Camera.Parameters object. Note that this constraint does not apply to the
device's built-in system camera application, but only to third-party
applications using Camera.PreviewCallback.
</ul>

<h3 id=7_5_2_front-facing_camera>7.5.2. Front-Facing Camera</h3>


<p>Device implementations MAY include a front-facing camera. If a device
implementation includes at least one front-facing camera, it:</p>

<ul>
  <li> MUST report the feature flag android.hardware.camera.any and
android.hardware.camera.front
  <li> MUST have a resolution of at least VGA (640x480 pixels)
  <li> MUST NOT use a front-facing camera as the default for the Camera API. The
camera API in Android has specific support for front-facing cameras and device
implementations MUST NOT configure the API to to treat a front-facing camera as
the default rear-facing camera, even if it is the only camera on the device.
  <li> MAY include features (such as auto-focus, flash, etc.) available to rear-facing
cameras as described in <a href="#heading=h.v6dmzvarwqkm">section 7.5.1</a>
  <li> MUST horizontally reflect (i.e. mirror) the stream displayed by an app in a
CameraPreview, as follows:
  <ul>
    <li> If the device implementation is capable of being rotated by user (such as
automatically via an accelerometer or manually via user input), the camera
preview MUST be mirrored horizontally relative to the device's current
orientation.
    <li> If the current application has explicitly requested that the Camera display be
rotated via a call to the android.hardware.Camera.setDisplayOrientation()[<a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">Resources, 90</a>] method, the camera preview MUST be mirrored horizontally relative to the
orientation specified by the application.
    <li> Otherwise, the preview MUST be mirrored along the device's default horizontal
axis.
  </ul>
  <li> MUST mirror the image displayed by the postview in the same manner as the
camera preview image stream. If the device implementation does not support
postview, this requirement obviously does not apply.
  <li> MUST NOT mirror the final captured still image or video streams returned to
application callbacks or committed to media storage
</ul>

<h3 id=7_5_3_external_camera>7.5.3. External Camera</h3>


<p>Device implementations with USB host mode MAY include support for an external
camera that connects to the USB port. If a device includes support for an
external camera, it:</p>

<ul>
  <li> MUST declare the platform feature android.hardware.camera.external and
android.hardware camera.any
  <li> MUST support USB Video Class (UVC 1.0 or higher)
  <li> MAY support multiple cameras
</ul>

<p>Video compression (such as MJPEG) support is RECOMMENDED to enable transfer of
high-quality unencoded streams (i.e. raw or independently compressed picture
streams). Camera-based video encoding MAY be supported. If so, a simultaneous
unencoded/ MJPEG stream (QVGA or greater resolution) MUST be accessible to the
device implementation. </p>

<h3 id=7_5_4_camera_api_behavior>7.5.4. Camera API Behavior</h3>


<p>Android includes two API packages to access the camera, the newer
android.hardware.camera2 API expose lower-level camera control to the app,
including efficient zero-copy burst/streaming flows and per-frame controls of
exposure, gain, white balance gains, color conversion, denoising, sharpening,
and more. </p>

<p>The older API package, android.hardware.Camera, is marked as deprecated in
Android 5.0 but as it should still be available for apps to use Android device
implementations MUST ensure the continued support of the API as described in
this section and in the Android SDK.</p>

<p>Device implementations MUST implement the following behaviors for the
camera-related APIs, for all available cameras:</p>

<ul>
  <li> If an application has never called
android.hardware.Camera.Parameters.setPreviewFormat(int), then the device MUST
use android.hardware.PixelFormat.YCbCr_420_SP for preview data provided to
application callbacks.
  <li> If an application registers an android.hardware.Camera.PreviewCallback instance
and the system calls the onPreviewFrame() method when the preview format is
YCbCr_420_SP, the data in the byte[] passed into onPreviewFrame() must further
be in the NV21 encoding format. That is, NV21 MUST be the default.
  <li> For android.hardware.Camera, device implementations MUST support the YV12
format (as denoted by the android.graphics.ImageFormat.YV12 constant) for
camera previews for both front- and rear-facing cameras. (The hardware video
encoder and camera may use any native pixel format, but the device
implementation MUST support conversion to YV12.)
  <li> For android.hardware.camera2, device implementations must support the
android.hardware.ImageFormat.YUV_420_888 and android.hardware.ImageFormat.JPEG
formats as outputs through the android.media.ImageReader API.
</ul>

<p>Device implementations MUST still implement the full Camera API included in the
Android SDK documentation [<a href="http://developer.android.com/reference/android/hardware/Camera.html">Resources, 91</a>], regardless of whether the device includes hardware autofocus or other
capabilities. For instance, cameras that lack autofocus MUST still call any
registered android.hardware.Camera.AutoFocusCallback instances (even though
this has no relevance to a non-autofocus camera.) Note that this does apply to
front-facing cameras; for instance, even though most front-facing cameras do
not support autofocus, the API callbacks must still be "faked" as described.</p>

<p>Device implementations MUST recognize and honor each parameter name defined as
a constant on the android.hardware.Camera.Parameters class, if the underlying
hardware supports the feature. If the device hardware does not support a
feature, the API must behave as documented. Conversely, device implementations
MUST NOT honor or recognize string constants passed to the
android.hardware.Camera.setParameters() method other than those documented as
constants on the android.hardware.Camera.Parameters. That is, device
implementations MUST support all standard Camera parameters if the hardware
allows, and MUST NOT support custom Camera parameter types. For instance,
device implementations that support image capture using high dynamic range
(HDR) imaging techniques MUST support camera parameter Camera.SCENE_MODE_HDR [<a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">Resources, 92</a>].</p>

<p>Because not all device implementations can fully support all the features of
the android.hardware.camera2 API, device implementations MUST report the proper
level of support with the android.info.supportedHardwareLevel property as
described in the Android SDK [<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">Resources, 93]</a> and report the appropriate framework feature flags [<a href="http://source.android.com/devices/camera/versioning.html">Resources, 94]</a>. </p>

<p>Device implementations MUST also declare its Individual camera capabilities of
android.hardware.camera2 via the android.request.availableCapabilities property
and declare the appropriate feature flags [<a href="http://source.android.com/devices/camera/versioning.html">Resources, 94]</a>; a device must define the feature flag if any of its attached camera devices
supports the feature. </p>

<p>Device implementations MUST broadcast the Camera.ACTION_NEW_PICTURE intent
whenever a new picture is taken by the camera and the entry of the picture has
been added to the media store.</p>

<p>Device implementations MUST broadcast the Camera.ACTION_NEW_VIDEO intent
whenever a new video is recorded by the camera and the entry of the picture has
been added to the media store.</p>

<h3 id=7_5_5_camera_orientation>7.5.5. Camera Orientation</h3>


<p>Both front- and rear-facing cameras, if present, MUST be oriented so that the
long dimension of the camera aligns with the screen's long dimension. That is,
when the device is held in the landscape orientation, cameras MUST capture
images in the landscape orientation. This applies regardless of the device's
natural orientation; that is, it applies to landscape-primary devices as well
as portrait-primary devices.</p>

<h2 id=7_6_memory_and_storage>7.6. Memory and Storage</h2>


<h3 id=7_6_1_minimum_memory_and_storage>7.6.1. Minimum Memory and Storage</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Television devices MUST have at least 5GB of non-volatile storage
available for application private data.</p>
</td>
 </tr>
</table>


<p>The memory available to the kernel and userspace on device implementations MUST
be at least equal or larger than the minimum values specified by the following
table. (See <a href="#heading=h.6fey5v3qb5m3">section 7.1.1</a> for screen size and density definitions.)</p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Density and screen size</strong></p>
</td>
    <td class="tab0">
<p><strong>32-bit device</strong></p>
</td>
    <td class="tab0">
<p><strong>64-bit device</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p>Android Watch devices (due to smaller screens)</p>
</td>
    <td>
<p>416MB</p>
</td>
    <td>
<p>Not applicable</p>
</td>
 </tr>
 <tr>
    <td>
<p>xhdpi or lower on small/normal screens</p>

<p>hdpi or lower on large screens</p>

<p>mdpi or lower on extra large screens</p>
</td>
    <td>
<p>512MB</p>
</td>
    <td>
<p>832MB</p>
</td>
 </tr>
 <tr>
    <td>
<p>400dpi or higher on small/normal screens</p>

<p>xhdpi or higher on large screens</p>

<p>tvdpi or higher on extra large screens</p>
</td>
    <td>
<p>896MB</p>
</td>
    <td>
<p>1280MB</p>
</td>
 </tr>
 <tr>
    <td>
<p>560dpi or higher on small/normal screens</p>

<p>400dpi or higher on large screens</p>

<p>xhdpi or higher on extra large screens</p>
</td>
    <td>
<p>1344MB</p>
</td>
    <td>
<p>1824MB</p>
</td>
 </tr>
</table>


<p>The minimum memory values MUST be in addition to any memory space already
dedicated to hardware components such as radio, video, and so on that is not
under the kernel's control.</p>

<p>Android Television devices MUST have at least 5GB and other device
implementations MUST have at least 1.5GB of non-volatile storage available for
application private data. That is, the /data partition MUST be at least 5GB for
Android Television devices and at least 1.5GB for other device implementations.
Device implementations that run Android are <strong>very strongly encouraged</strong> to have at least 3GB of non-volatile storage for application private data so
they will be able to upgrade to the future platform releases.</p>

<p>The Android APIs include a Download Manager that applications MAY use to
download data files [<a href="http://developer.android.com/reference/android/app/DownloadManager.html">Resources, 95</a>]. The device implementation of the Download Manager MUST be capable of
downloading individual files of at least 100MB in size to the default "cache"
location.</p>

<h3 id=7_6_2_application_shared_storage>7.6.2. Application Shared Storage</h3>


<p>Device implementations MUST offer shared storage for applications also often
referred as “shared external storage”. </p>

<p>Device implementations MUST be configured with shared storage mounted by
default, "out of the box". If the shared storage is not mounted on the Linux
path /sdcard, then the device MUST include a Linux symbolic link from /sdcard
to the actual mount point.</p>

<p>Device implementations MAY have hardware for user-accessible removable storage,
such as a Secure Digital (SD) card slot. If this slot is used to satisfy the
shared storage requirement, the device implementation:</p>

<ul>
  <li> MUST implement a toast or pop-up user interface warning the user when there is
no SD card
  <li> MUST include a FAT-formatted SD card 1GB in size or larger OR show on the box
and other material available at time of purchase that the SD card has to be
separately purchased
  <li> MUST mount the SD card by default
</ul>

<p>Alternatively, device implementations MAY allocate internal (non-removable)
storage as shared storage for apps as included in the upstream Android Open
Source Project; device implementations SHOULD use this configuration and
software implementation. If a device implementation uses internal
(non-removable) storage to satisfy the shared storage requirement, that storage
MUST be 1GB in size or larger and mounted on /sdcard (or /sdcard MUST be a
symbolic link to the physical location if it is mounted elsewhere).</p>

<p>Device implementations MUST enforce as documented the
android.permission.WRITE_EXTERNAL_STORAGE permission on this shared storage.
Shared storage MUST otherwise be writable by any application that obtains that
permission.</p>

<p>Device implementations that include multiple shared storage paths (such as both
an SD card slot and shared internal storage) MUST NOT allow Android
applications to write to the secondary external storage, except for their
package-specific directories on the secondary external storage, but SHOULD
expose content from both storage paths transparently through Android's media
scanner service and android.provider.MediaStore.</p>

<p>Regardless of the form of shared storage used, device implementations MUST
provide some mechanism to access the contents of shared storage from a host
computer, such as USB mass storage (UMS) or Media Transfer Protocol (MTP).
Device implementations MAY use USB mass storage, but SHOULD use Media Transfer
Protocol. If the device implementation supports Media Transfer Protocol, it:</p>

<ul>
  <li> SHOULD be compatible with the reference Android MTP host, Android File Transfer
[<a href="http://www.android.com/filetransfer">Resources, 96</a>]
  <li> SHOULD report a USB device class of 0x00
  <li> SHOULD report a USB interface name of 'MTP'
</ul>

<p>If the device implementation lacks USB ports, it MUST provide a host computer
with access to the contents of shared storage by some other means, such as a
network file system.</p>

<h2 id=7_7_usb>7.7. USB</h2>


<p>Device implementations SHOULD support USB peripheral mode and SHOULD support
USB host mode.</p>

<p>If a device implementation includes a USB port supporting peripheral mode:</p>

<ul>
  <li> The port MUST be connectable to a USB host that has a standard type-A or type
-C USB port.
  <li> The port SHOULD use micro-A, micro-AB or type-C USB form factor. Existing and
new Android devices are <strong>very strongly encouraged to meet these requirements</strong> so they will be able to upgrade to the future platform releases.
  <li> The port SHOULD be centered in the middle of an edge. Device implementations
SHOULD either locate the port on the bottom of the device (according to natural
orientation) or enable software screen rotation for all apps (including home
screen), so that the display draws correctly when the device is oriented with
the port at bottom. Existing and new Android devices are <strong>very strongly encouraged to meet these requirements</strong> so they will be able to upgrade to future platform releases.
  <li> It MUST allow a USB host connected with the Android device to access the
contents of the shared storage volume using either USB mass storage or Media
Transfer.
  <li> It SHOULD implement the Android Open Accessory (AOA) API and specification as
documented in the Android SDK documentation, and if it is an Android Handheld
device it MUST implement the AOA API. Device implementations implementing the
AOA specification:
  <ul>
    <li> MUST declare support for the hardware feature android.hardware.usb.accessory [<a href="http://developer.android.com/guide/topics/connectivity/usb/accessory.html">Resources, 97</a>]
    <li> MUST implement the USB audio class as documented in the Android SDK
documentation [<a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">Resources, 98</a>]
  </ul>
  <li> It SHOULD implement support to draw 1.5 A current during HS chirp and traffic
as specified in the USB battery charging specification [<a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">Resources, 99</a>]. Existing and new Android devices are <strong>very strongly encouraged to meet these requirements</strong> so they will be able to upgrade to the future platform releases.
  <li> The value of iSerialNumber in USB standard device descriptor MUST be equal to
the value of android.os.Build.SERIAL.
</ul>

<p>If a device implementation includes a USB port supporting host mode, it:</p>

<ul>
  <li> SHOULD use a type-C USB port, if the device implementation supports USB 3.1
  <li> MAY use a non-standard port form factor, but if so MUST ship with a cable or
cables adapting the port to a standard type-A or type-C USB port
  <li> MAY use a micro-AB USB port, but if so SHOULD ship with a cable or cables
adapting the port to a standard type-A or type-C USB port
  <li> is <strong>very strongly RECOMMENDED</strong> to implement the USB audio class as documented in the Android SDK
documentation [<a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">Resources, 98</a>]
  <li> MUST implement the Android USB host API as documented in the Android SDK, and
MUST declare support for the hardware feature android.hardware.usb.host [<a href="http://developer.android.com/guide/topics/connectivity/usb/host.html">Resources, 100</a>]
  <li> SHOULD support the Charging Downstream Port output current range of 1.5 A ~ 5 A
as specified in the USB Battery Charging Specifications [<a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">Resources, 99</a>]
</ul>

<h2 id=7_8_audio>7.8. Audio</h2>


<h3 id=7_8_1_microphone>7.8.1. Microphone</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Handheld and Watch devices MUST include a microphone.</p>
</td>
 </tr>
</table>


<p>Device implementations MAY omit a microphone. However, if a device
implementation omits a microphone, it MUST NOT report the
android.hardware.microphone feature constant, and MUST implement the audio
recording API at least as no-ops, per <a href="#heading=h.5h5uvpadidzr">section 7</a>. Conversely, device implementations that do possess a microphone:</p>

<ul>
  <li> MUST report the android.hardware.microphone feature constant
  <li> MUST meet the audio recording requirements in <a href="#heading=h.q24elivs4xtv">section 5.4</a>
  <li> MUST meet the audio latency requirements in <a href="#heading=h.1p55xhbym9l4">section 5.6</a>
</ul>

<h3 id=7_8_2_audio_output>7.8.2. Audio Output</h3>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Android Watch devices MAY include an audio output.</p>
</td>
 </tr>
</table>


<p>Device implementations including a speaker or with an audio/multimedia output
port for an audio output peripheral as a headset or an external speaker:</p>

<ul>
  <li> MUST report the android.hardware.audio.output feature constant
  <li> MUST meet the audio playback requirements in <a href="#heading=h.1xocvxnwynnm">section 5.5</a>
  <li> MUST meet the audio latency requirements in <a href="#heading=h.1p55xhbym9l4">section 5.6</a>
</ul>

<p>Conversely, if a device implementation does not include a speaker or audio
output port, it MUST NOT report the android.hardware.audio output feature, and
MUST implement the Audio Output related APIs as no-ops at least. </p>

<p>Android Watch device implementation MAY but SHOULD NOT have audio output, but
other types of Android device implementations MUST have an audio output and
declare android.hardware.audio.output.</p>

<h4 id=7_8_2_1_analog_audio_ports>7.8.2.1. Analog Audio Ports</h4>


<p>In order to be compatible with the headsets and other audio accessories using
the 3.5mm audio plug across the Android ecosystem [<a href="http://source.android.com/accessories/headset-spec.html">Resources, 101</a>], if a device implementation includes one or more analog audio ports, at least
one of the audio port(s) SHOULD be a 4 conductor 3.5mm audio jack. If a device
implementation has a 4 conductor 3.5mm audio jack, it:</p>

<ul>
  <li> MUST support audio playback to stereo headphones and stereo headsets with a
microphone, and SHOULD support audio recording from stereo headsets with a
microphone
  <li> MUST support TRRS audio plugs with the CTIA pin-out order, and SHOULD support
audio plugs with the OMTP pin-out order
  <li> MUST support the detection of microphone on the plugged in audio accessory, if
the device implementation supports a microphone, and broadcast the
android.intent.action.HEADSET_PLUG with the extra value microphone set as 1
  <li> SHOULD support the detection and mapping to the keycodes for the following 3
ranges of equivalent impedance between the microphone and ground conductors on
the audio plug:
  <ul>
    <li> <strong>70 ohm or less</strong>: KEYCODE_HEADSETHOOK
    <li> <strong>210–290 Ohm</strong>:<strong> </strong>KEYCODE_VOLUME_UP
    <li> <strong>360–680 Ohm</strong>: KEYCODE_VOLUME_DOWN
  </ul>
  <li> SHOULD support the detection and mapping to the keycode for the following range
of equivalent impedance between the microphone and ground conductors on the
audio plug:
  <ul>
    <li> <strong>110–180 Ohm: </strong>KEYCODE_VOICE_ASSIST
  </ul>
  <li> MUST trigger ACTION_HEADSET_PLUG upon a plug insert, but only after all
contacts on plug are touching their relevant segments on the jack
  <li> MUST be capable of driving at least 150mV +/- 10% of output voltage on a 32 Ohm
speaker impedance
  <li> MUST have a microphone bias voltage between 1.8V ~ 2.9V
</ul>

<h1 id=8_performance_compatibility>8. Performance Compatibility</h1>


<p>Some minimum performance criterias are critical to the user experience and
impacts the baseline assumptions developers would have when developing an app.
Android Watch devices SHOULD and other type of device implementations MUST meet
the following criteria:</p>

<h2 id=8_1_user_experience_consistency>8.1. User Experience Consistency</h2>


<p>Device implementations MUST provide a smooth user interface by ensuring a
consistent frame rate and response times for applications and games. Device
implementations MUST meet the following requirements: </p>

<ul>
  <li> <strong>Consistent frame latency</strong>Inconsistent frame latency or a delay to render frames MUST NOT happen more
often than 5 frames in a second, and SHOULD be below 1 frames in a second. 
  <li> <strong>User interface latency</strong>Device implementations MUST ensure low latency user experience by scrolling a
list of 10K list entries as defined by the Android Compatibility Test Suite
(CTS) in less than 36 secs. 
  <li> <strong>Task switching</strong>When multiple applications have been launched, re-launching an already-running
application after it has been launched MUST take less than 1 second.
</ul>

<h2 id=8_2_file_i_o_access_performance>8.2. File I/O Access Performance</h2>


<p>Device implementations MUST ensure file access performance consistency for read
and write operations. </p>

<ul>
  <li> <strong>Sequential write</strong>Device implementations MUST ensure a sequential write performance of 5MB/s
for a 256MB file using 10MB write buffer. 
  <li> <strong>Random write</strong>Device implementations MUST ensure a random write performance of 0.5MB/s for a
256MB file using 4KB write buffer. 
  <li> <strong>Sequential read</strong>Device implementations MUST ensure a sequential read performance of 15MB/s for
a 256MB file using 10MB write buffer. 
  <li> <strong>Random read</strong>Device implementations MUST ensure a random read performance of 3.5MB/s for a
256MB file using 4KB write buffer. 
</ul>

<h1 id=9_security_model_compatibility>9. Security Model Compatibility</h1>


<p>Device implementations MUST implement a security model consistent with the
Android platform security model as defined in Security and Permissions
reference document in the APIs [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 102</a>] in the Android developer documentation. Device implementations MUST support
installation of self-signed applications without requiring any additional
permissions/certificates from any third parties/authorities. Specifically,
compatible devices MUST support the security mechanisms described in the follow
subsections.</p>

<h2 id=9_1_permissions>9.1. Permissions</h2>


<p>Device implementations MUST support the Android permissions model as defined in
the Android developer documentation [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 102</a>]. Specifically, implementations MUST enforce each permission defined as
described in the SDK documentation; no permissions may be omitted, altered, or
ignored. Implementations MAY add additional permissions, provided the new
permission ID strings are not in the android.* namespace.</p>

<h2 id=9_2_uid_and_process_isolation>9.2. UID and Process Isolation</h2>


<p>Device implementations MUST support the Android application sandbox model, in
which each application runs as a unique Unixstyle UID and in a separate
process. Device implementations MUST support running multiple applications as
the same Linux user ID, provided that the applications are properly signed and
constructed, as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 102</a>].</p>

<h2 id=9_3_filesystem_permissions>9.3. Filesystem Permissions</h2>


<p>Device implementations MUST support the Android file access permissions model
as defined in the Security and Permissions reference [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 102</a>].</p>

<h2 id=9_4_alternate_execution_environments>9.4. Alternate Execution Environments</h2>


<p>Device implementations MAY include runtime environments that execute
applications using some other software or technology than the Dalvik Executable
Format or native code. However, such alternate execution environments MUST NOT
compromise the Android security model or the security of installed Android
applications, as described in this section.</p>

<p>Alternate runtimes MUST themselves be Android applications, and abide by the
standard Android security model, as described elsewhere in <a href="#heading=h.a32osmf1tmwt">section 9</a>.</p>

<p>Alternate runtimes MUST NOT be granted access to resources protected by
permissions not requested in the runtime's AndroidManifest.xml file via the
<uses-permission> mechanism.</p>

<p>Alternate runtimes MUST NOT permit applications to make use of features
protected by Android permissions restricted to system applications.</p>

<p>Alternate runtimes MUST abide by the Android sandbox model. Specifically,
alternate runtimes:</p>

<ul>
  <li> SHOULD install apps via the PackageManager into separate Android sandboxes (
Linux user IDs, etc.)
  <li> MAY provide a single Android sandbox shared by all applications using the
alternate runtime
  <li> and installed applications using an alternate runtime, MUST NOT reuse the
sandbox of any other app installed on the device, except through the standard
Android mechanisms of shared user ID and signing certificate
  <li> MUST NOT launch with, grant, or be granted access to the sandboxes
corresponding to other Android applications
  <li> MUST NOT be launched with, be granted, or grant to other applications any
privileges of the superuser (root), or of any other user ID
</ul>

<p>The .apk files of alternate runtimes MAY be included in the system image of a
device implementation, but MUST be signed with a key distinct from the key used
to sign other applications included with the device implementation.</p>

<p>When installing applications, alternate runtimes MUST obtain user consent for
the Android permissions used by the application. If an application needs to
make use of a device resource for which there is a corresponding Android
permission (such as Camera, GPS, etc.), the alternate runtime MUST inform the
user that the application will be able to access that resource. If the runtime
environment does not record application capabilities in this manner, the
runtime environment MUST list all permissions held by the runtime itself when
installing any application using that runtime.</p>

<h2 id=9_5_multi-user_support>9.5. Multi-User Support</h2>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>This feature is optional for all device types.</p>
</td>
 </tr>
</table>


<p>Android includes support for multiple users and provides support for full user
isolation [<a href="http://developer.android.com/reference/android/os/UserManager.html">Resources, 103]</a>. Device implementations MAY enable multiple users, but when enabled MUST meet
the following requirements related to multi-user support [<a href="http://source.android.com/devices/tech/storage">Resources, 104</a>]:</p>

<ul>
  <li> Device implementations that do not declare the android.hardware.telephony
feature flag MUST support restricted profiles, a feature that allows device
owners to manage additional users and their capabilities on the device. With
restricted profiles, device owners can quickly set up separate environments for
additional users to work in, with the ability to manage finer-grained
restrictions in the apps that are available in those environments.
  <li> Conversely device implementations that declare the android.hardware.telephony
feature flag MUST NOT support restricted profiles but MUST align with the AOSP
implementation of controls to enable /disable other users from accessing the
voice calls and SMS.
  <li> Device implementations MUST, for each user, implement a security model
consistent with the Android platform security model as defined in Security and
Permissions reference document in the APIs [<a href="http://developer.android.com/guide/topics/security/permissions.html">Resources, 102</a>]
  <li> Device implementations MAY support creating users and managed profiles via the
android.app.admin.DevicePolicyManager APIs, and if supported, MUST declare the
platform feature flag android.software.managed_users. 
  <li> Device implementations that declare the feature flag
android.software.managed_users MUST use the upstream AOSP icon badge to
represent the managed applications and other badge UI elements like Recents &
Notifications. 
  <li> Each user instance on an Android device MUST have separate and isolated
external storage directories. Device implementations MAY store multiple users'
data on the same volume or filesystem. However, the device implementation MUST
ensure that applications owned by and running on behalf a given user cannot
list, read, or write to data owned by any other user. Note that removable
media, such as SD card slots, can allow one user to access another's data by
means of a host PC. For this reason, device implementations that use removable
media for the external storage APIs MUST encrypt the contents of the SD card if
multiuser is enabled using a key stored only on non-removable media accessible
only to the system. As this will make the media unreadable by a host PC, device
implementations will be required to switch to MTP or a similar system to
provide host PCs with access to the current user's data. Accordingly, device
implementations MAY but SHOULD NOT enable multi-user if they use removable
media [<a href="http://developer.android.com/reference/android/os/Environment.html">Resources, 105</a>] for primary external storage. 
</ul>

<h2 id=9_6_premium_sms_warning>9.6. Premium SMS Warning</h2>


<p>Android includes support for warning users of any outgoing premium SMS message
[<a href="http://en.wikipedia.org/wiki/Short_code">Resources, 106</a>] . Premium SMS messages are text messages sent to a service registered with a
carrier that may incur a charge to the user. Device implementations that
declare support for android.hardware.telephony MUST warn users before sending a
SMS message to numbers identified by regular expressions defined in
/data/misc/sms/codes.xml file in the device. The upstream Android Open Source
Project provides an implementation that satisfies this requirement.</p>

<h2 id=9_7_kernel_security_features>9.7. Kernel Security Features</h2>


<p>The Android Sandbox includes features that use the Security-Enhanced Linux
(SELinux) mandatory access control (MAC) system and other security features in
the Linux kernel. SELinux or any other security features implemented below
the Android framework:</p>

<ul>
  <li> MUST maintain compatibility with existing applications
  <li> MUST NOT have a visible user interface when a security violation is detected
and successfully blocked, but MAY have a visible user interface when an
unblocked security violation occurs resulting in a successful exploit
  <li> SHOULD NOT be user or developer configurable
</ul>

<p>If any API for configuration of policy is exposed to an application that can
affect another application (such as a Device Administration API), the API MUST
NOT allow configurations that break compatibility. </p>

<p>Devices MUST implement SELinux or, if using a kernel other than Linux, an equivalent mandatory access control system.
Devices must also meet the following requirements, which
are satisfied by the reference implementation in the upstream Android Open
Source Project.</p>

<p>Device implementations:</p>

<ul>
  <li> MUST set SELinux to global enforcing mode,
  <li> MUST configure all domains in enforcing mode. No
permissive mode domains are allowed, including domains specific to a
device/vendor.
  <li> MUST NOT modify, omit, or replace the neverallow rules present within the
external/sepolicy folder provided in the upstream Android Open Source Project (AOSP) and
the policy MUST compile with all neverallow rules present, for both AOSP SELinux
domains as well as device/vendor specific domains.
</ul>

<p>Device implementations SHOULD retain the default SELinux policy provided in the external/sepolicy folder of the
upstream Android Open Source Project and only further add to this policy for their own device-specific configuration. Device implementations MUST be compatible with
the upstream Android Open Source Project.</p>

<h2 id=9_8_privacy>9.8. Privacy</h2>


<p>If the device implements functionality in the system that captures the contents
displayed on the screen and/or records the audio stream played on the device,
it MUST continuously notify the user whenever this functionality is enabled and
actively capturing/recording.</p>

<h2 id=9_9_full-disk_encryption>9.9. Full-Disk Encryption</h2>

<table>
 <tr>
    <td class="tab2"></td>
    <td>
<p>Optional for Android device implementations without a lock screen.</p>
</td>
 </tr>
</table>


<p>If the device implementation has a lock screen, the device MUST support
full-disk encryption of the application private data, (/data partition) as well
as the SD card partition if it is a permanent, non-removable part of the device
[<a href="http://source.android.com/devices/tech/encryption/index.html">Resources, 107</a>]. For devices supporting full-disk encryption, the full-disk encryption SHOULD
be enabled all the time after the user has completed the out-of-box experience.
While this requirement is stated as SHOULD for this version of the Android
platform, it is <strong>very strongly RECOMMENDED</strong> as we expect this to change to MUST in the future versions of Android.
Encryption MUST use AES with a key of 128-bits (or greater) and a mode designed
for storage (for example, AES-XTS, AES-CBC-ESSIV). The encryption key MUST NOT
be written to storage at any time without being encrypted. Other than when in
active use, the encryption key SHOULD be AES encrypted with the lockscreen
passcode stretched using a slow stretching algorithm (e.g. PBKDF2 or scrypt).
If the user has not specified a lockscreen passcode or has disabled use of the
passcode for encryption, the system SHOULD use a default passcode to wrap the
encryption key. If the device provides a hardware-backed keystore, the password
stretching algorithm MUST be cryptographically bound to that keystore. The
encryption key MUST NOT be sent off the device (even when wrapped with the user
passcode and/or hardware bound key). The upstream Android Open Source project
provides a preferred implementation of this feature based on the linux kernel
feature dm-crypt.</p>

<h2 id=9_10_verified_boot>9.10. Verified Boot</h2>


<p>Device implementations SHOULD support verified boot for device integrity, and
if the feature is supported it MUST declare the platform feature flag
android.software.verified_boot. While this requirement is stated as SHOULD for
this version of the Android platform, it is <strong>very strongly RECOMMENDED</strong> as we expect this to change to MUST in the future versions of Android. The
upstream Android Open Source Project provides a preferred implementation of
this feature based on the linux kernel feature dm-verity.</p>

<h1 id=10_software_compatibility_testing>10. Software Compatibility Testing</h1>


<p>Device implementations MUST pass all tests described in this section.</p>

<p>However, note that no software test package is fully comprehensive. For this
reason, device implementers are <strong>very strongly encouraged</strong> to make the minimum number of changes as possible to the reference and
preferred implementation of Android available from the Android Open Source
Project. This will minimize the risk of introducing bugs that create
incompatibilities requiring rework and potential device updates.</p>

<h2 id=10_1_compatibility_test_suite>10.1. Compatibility Test Suite</h2>


<p>Device implementations MUST pass the Android Compatibility Test Suite (CTS) [<a href="http://source.android.com/compatibility/index.html">Resources, 108</a>] available from the Android Open Source Project, using the final shipping
software on the device. Additionally, device implementers SHOULD use the
reference implementation in the Android Open Source tree as much as possible,
and MUST ensure compatibility in cases of ambiguity in CTS and for any
reimplementations of parts of the reference source code.</p>

<p>The CTS is designed to be run on an actual device. Like any software, the CTS
may itself contain bugs. The CTS will be versioned independently of this
Compatibility Definition, and multiple revisions of the CTS may be released for
Android 5.0. Device implementations MUST pass the latest CTS version available
at the time the device software is completed.</p>

<h2 id=10_2_cts_verifier>10.2. CTS Verifier</h2>


<p>Device implementations MUST correctly execute all applicable cases in the CTS
Verifier. The CTS Verifier is included with the Compatibility Test Suite, and
is intended to be run by a human operator to test functionality that cannot be
tested by an automated system, such as correct functioning of a camera and
sensors.</p>

<p>The CTS Verifier has tests for many kinds of hardware, including some hardware
that is optional. Device implementations MUST pass all tests for hardware that
they possess; for instance, if a device possesses an accelerometer, it MUST
correctly execute the Accelerometer test case in the CTS Verifier. Test cases
for features noted as optional by this Compatibility Definition Document MAY be
skipped or omitted.</p>

<p>Every device and every build MUST correctly run the CTS Verifier, as noted
above. However, since many builds are very similar, device implementers are not
expected to explicitly run the CTS Verifier on builds that differ only in
trivial ways. Specifically, device implementations that differ from an
implementation that has passed the CTS Verifier only by the set of included
locales, branding, etc. MAY omit the CTS Verifier test.</p>

<h1 id=11_updatable_software>11. Updatable Software</h1>


<p>Device implementations MUST include a mechanism to replace the entirety of the
system software. The mechanism need not perform "live" upgrades—that is, a
device restart MAY be required.</p>

<p>Any method can be used, provided that it can replace the entirety of the
software preinstalled on the device. For instance, any of the following
approaches will satisfy this requirement:</p>

<ul>
  <li> Over-the-air (OTA) downloads with offline update via reboot
  <li> "Tethered" updates over USB from a host PC
  <li> "Offline" updates via a reboot and update from a file on removable storage
</ul>

<p>However, if the device implementation includes support for an unmetered data
connection such as 802.11 or Bluetooth PAN (Personal Area Network) profile, the
device MUST support Over-the-air download with offline update via reboot.</p>

<p>The update mechanism used MUST support updates without wiping user data. That
is, the update mechanism MUST preserve application private data and application
shared data. Note that the upstream Android software includes an update
mechanism that satisfies this requirement.</p>

<p>For device implementations that are launching with Android 5.0 and later, the
update mechanism SHOULD support verifying that the system image is binary
identical to expected result following an OTA. The block-based OTA
implementation in the upstream Android Open Source Project, added since Android
5.0, satisfies this requirement.</p>

<p>If an error is found in a device implementation after it has been released but
within its reasonable product lifetime that is determined in consultation with
the Android Compatibility Team to affect the compatibility of third-party
applications, the device implementer MUST correct the error via a software
update available that can be applied per the mechanism just described.</p>

<h1 id=12_document_changelog>12. Document Changelog</h1>


<p>The following table contains a summary of the changes to the Compatibility
Definition in this release. </p>
<table>
 <tr>
    <td class="tab0">
<p><strong>Section(s)</strong></p>
</td>
    <td class="tab0">
<p><strong>Summary of change</strong></p>
</td>
 </tr>
 <tr>
    <td>
<p>1. Introduction</p>
</td>
    <td>
<p>Updated requirements to refer to SDK documentation as source of truth.</p>
</td>
 </tr>
 <tr>
    <td>
<p>2. Device Types</p>
</td>
    <td>
<p>Included definitions for device types for handheld, television, and watch
devices.</p>
</td>
 </tr>
 <tr>
    <td>
<p>2.1 Device Configuration</p>
</td>
    <td>
<p>Added non-exhaustive list to illustrate hardware configuration deviation across
devices.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.1. Managed API Compatibility</p>
</td>
    <td>
<p>MUST also provide complete implementations of APIs with "@SystemApi" marker in
the upstream Android source code.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.2.2. Build Parameters</p>
</td>
    <td>
<p>Included SUPPORTED_ABIS, SUPPORTED_32_BIT_ABIS, and SUPPORTED_64_BIT_ABIS
parameters in list, updated PRODUCT to require unique Product SKUs, and updated
TAGS.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.2.3.1. Core Application Intents</p>
</td>
    <td>
<p>Clarified language that the compatibility requirement is for mainly the intents
pattern </p>
</td>
 </tr>
 <tr>
    <td>
<p>3.2.3.5. Default App Settings</p>
</td>
    <td>
<p>Included new requirements for home screen, NFC, and default SMS applications.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.3.1 Application Binary Interfaces</p>
</td>
    <td>
<p>Added requirements to support equivalent 32-bit ABI if any 64-bit ABI is
supported. Updated parameters to reflect this change.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.4.1. WebView Compatibility</p>
</td>
    <td>
<p>Webview compatibility required for all devices except Android Watch devices.
Removed Locale string requirement.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.4.2. Browser compatibility</p>
</td>
    <td>
<p>Android Television and Watch Devices MAY omit a browser application, but all
other types of device implementations MUST include one.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.7. Runtime compatibility</p>
</td>
    <td>
<p>Updated Minimum application memory requirements</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.2. Widgets</p>
</td>
    <td>
<p>Widget support is optional for all device types, but recommended for Handheld
Devices.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.3. Notifications</p>
</td>
    <td>
<p>Expanded definitions for types of supported notifications. </p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.4. Search</p>
</td>
    <td>
<p>Android Television devices MUST include global search. All other device types
SHOULD.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.6. Themes</p>
</td>
    <td>
<p>Devices MUST support material theme.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.7. Live Wallpapers</p>
</td>
    <td>
<p>Devices that include live wallpaper MUST report the platform feature flag
android.software.live_wallpaper.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.8. Activity Switching</p>
</td>
    <td>
<p>Advised requirement to support new Recents User Interface</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.10. Lock Screen Media Remote Control</p>
</td>
    <td>
<p> Remote Control Client API deprecated in favor of the Media Notification
Template</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.11. Dreams</p>
</td>
    <td>
<p>Optional for Android Watch devices. Required for all other device types.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.8.13 Unicode and font</p>
</td>
    <td>
<p>MUST support Roboto 2 in addition to existing requirements.</p>
</td>
 </tr>
 <tr>
    <td>
<p>3.12. TV Input Framework</p>
</td>
    <td>
<p>Android Television device implementations MUST support Television Input
Framework.</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.1. Media Codecs</p>
</td>
    <td>
<p>Added 3 sections for Audio, Image, and Video codecs.</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.4 Audio Recording</p>
</td>
    <td>
<p>Broken into subsections</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.4.1. Raw audio capture</p>
</td>
    <td>
<p>Defined characteristics for raw audio capture on devices that declare
android.hardware.microphone</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.5. Audio Playback</p>
</td>
    <td>
<p>Added section 5.5. Audio Playback with 2 subsections: 5.5.1 Audio Effects and
5.5.2. Audio Output Volume</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.6 Audio Latency</p>
</td>
    <td>
<p>Added definitions and requirements for cold output jitter, cold input jitter,
and continuous round-trip latency.</p>
</td>
 </tr>
 <tr>
    <td>
<p>5.8 Secure Media</p>
</td>
    <td>
<p>Included secure media requirements from 7.1.8. External Displays and added
requirements for Android Television.</p>
</td>
 </tr>
 <tr>
    <td>
<p>6.1. Developer Tools</p>
</td>
    <td>
<p>Updated resources.</p>
</td>
 </tr>
 <tr>
    <td>
<p>6.2.1. Experimental</p>
</td>
    <td>
<p>Removed section</p>
</td>
 </tr>
 <tr>
    <td>
<p>7. Hardware Compatibility</p>
</td>
    <td>
<p>Updated to reflect that device implementations MUST consistently report
accurate hardware configuration for the same build fingerprint.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.1.1. Screen Size</p>
</td>
    <td>
<p>Updated to reflect Android Watch devices screen size and that the value can’t
change</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.1.2. Screen Aspect Ratio</p>
</td>
    <td>
<p>Updated to reflect Android Watch devices screen aspect ratio (1:1).</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.3. Screen Orientation</p>
</td>
    <td>
<p>Updated to reflect that devices with a fixed orientation landscape screen
SHOULD only report that orientation. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.4. 2D and 3D Graphics Acceleration</p>
</td>
    <td>
<p>Added that Android devices MAY support the Android extension pack. </p>
</td>
 </tr>
 <tr>
    <td>
<p>(old) 7.1.6. Screen Types</p>
</td>
    <td>
<p>Section Removed </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.6. Screen Technology</p>
</td>
    <td>
<p>Updated pixel aspect ratio (PAR) to be between 0.9 and 1.15. (~15% tolerance)</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.1.7. External Displays</p>
</td>
    <td>
<p>Moved part of section to section 5.8. Secure Media.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.2.2. Non-touch Navigation</p>
</td>
    <td>
<p>Android Television devices MUST support D-pad. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.2.3. Navigation keys</p>
</td>
    <td>
<p>Included language for support across different device types. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.2.4. Touchscreen input</p>
</td>
    <td>
<p>Android Watch devices MUST support touchscreen input. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.2.6. Game Controller Support</p>
</td>
    <td>
<p>Added section with Android Television requirements.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.2.7. Remote Control </p>
</td>
    <td>
<p>Added section with Android Television requirements.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3. Sensors</p>
</td>
    <td>
<p>Redefined synthetic sensors as composite sensors and streaming sensors as
continuous sensors. Sensors should report event time in nanoseconds.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.1. Accelerometer</p>
</td>
    <td>
<p>Clarified required sensor types and revised requirement thresholds. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.2. Magnetometer</p>
</td>
    <td>
<p>Clarified required sensor types and revised requirement thresholds.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.4. Gyroscope</p>
</td>
    <td>
<p>Clarified required sensor types and revised requirement thresholds.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.5. Barometer</p>
</td>
    <td>
<p>Changed from MAY to SHOULD implement barometer. MUST implement and report
TYPE_PRESSURE sensor.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.6. Thermometer</p>
</td>
    <td>
<p>Devices MAY include ambient thermometer. MAY but SHOULD NOT include CPU
thermometer.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.3.8. Proximity Sensor</p>
</td>
    <td>
<p>Devices that can make a voice call and indicate any value other than
PHONE_TYPE_NONE in getPhoneType SHOULD include a proximity sensor.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.4.2. IEEE 802.11 (Wi-Fi)</p>
</td>
    <td>
<p>Android Television devices MUST include Wi-Fi support. Devices that DO support
wifi must report android.hardware.wifi. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.4.2.1. Wi-Fi Direct</p>
</td>
    <td>
<p>MUST report the hardware feature android.hardware.wifi.direct.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.4.2.2. Wi-Fi Tunneled Direct Link Setup</p>
</td>
    <td>
<p>Android Television devices MUST include support for Wi-Fi TDLS.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.5. Cameras</p>
</td>
    <td>
<p>If a device implementation includes at least one camera, it SHOULD be possible
for an application to simultaneously allocate 3 bitmaps equal to the size of
the images produced by the largest-resolution camera sensor on the device.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.5.3. External Cameras</p>
</td>
    <td>
<p>Added requirements that device implementations with USB host mode MAY include
support for an external camera.</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.5.5. Camera System Features</p>
</td>
    <td>
<p>Added list of camera features and when they should be defined. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.6.1. Minimum Memory and Storage</p>
</td>
    <td>
<p>Updated requirements for 32- and 64-bit devices. SVELTE memory requirement
removed. Devices MUST have at least 1.5GB of non-volatile storage</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.6.2. Application Shared Storage</p>
</td>
    <td>
<p>Updated requirements for user-accessible removable storage</p>
</td>
 </tr>
 <tr>
    <td>
<p>7.7. USB</p>
</td>
    <td>
<p>Removed requirements for non-charging ports being on the same edge as the
micro-USB port. Updated requirements for Host and Peripheral mode. </p>
</td>
 </tr>
 <tr>
    <td>
<p>7.8.1. Audio</p>
</td>
    <td>
<p>Moved microphone section here. Added requirements for Audio Output and Audio
Analog ports. </p>
</td>
 </tr>
 <tr>
    <td>
<p>8. Performance Compatibility</p>
</td>
    <td>
<p>Added requirements for user interface consistency.</p>
</td>
 </tr>
 <tr>
    <td>
<p>9.5. Multi-User Support</p>
</td>
    <td>
<p>Multi-user support feature is optional for all device types. Detailed
requirements by device type in section.</p>
</td>
 </tr>
 <tr>
    <td>
<p>9.7. Kernel Security Features</p>
</td>
    <td>
<p>MAY have a visible user interface when an unblocked security violation occurs
resulting in a successful exploit. No permissive mode domains allowed.</p>
</td>
 </tr>
 <tr>
    <td>
<p>9.9. Full-Disk Encryption</p>
</td>
    <td>
<p>Devices with a lock screen SHOULD support full-disk encryption. For new devices,
full-disk encryption must be enabled out of box. </p>
</td>
 </tr>
 <tr>
    <td>
<p>9.10 Verified boot</p>
</td>
    <td>
<p>Added section to recommend that Device implementations support verified boot
for device integrity.</p>
</td>
 </tr>
 <tr>
    <td>
<p>10.3. Reference Applications</p>
</td>
    <td>
<p>Removed section from CDD.</p>
</td>
 </tr>
 <tr>
    <td>
<p>11. Updatable Software</p>
</td>
    <td>
<p>If a device supports 802.11 or Bluetooth PAN (Personal Area Network) profile,
then it MUST support Over-the-air download with offline update via reboot.</p>
</td>
 </tr>
 <tr>
    <td>
<p>14. Resources</p>
</td>
    <td>
<p>Resources moved from section 2 to section 14</p>
</td>
 </tr>
</table>


<h1 id=13_contact_us>13. Contact Us</h1>


<p>You can join the android-compatibility forum <a href="https://groups.google.com/forum/#!forum/android-compatibility">[Resources, 109</a>] and ask for clarifications or bring up any issues that you think the document
does not cover.</p>

<h1 id=14_resources>14. Resources</h1>


<p>1. IETF RFC2119 Requirement Levels: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a></p>

<p>2. Android Open Source Project: <a href="http://source.android.com/">http://source.android.com/</a></p>

<p>3. Android Television features: <a href="http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK">http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_LEANBACK</a> </p>

<p>4. Android Watch feature: <a href="http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH">http://developer.android.com/reference/android/content/res/Configuration.html#UI_MODE_TYPE_WATCH</a></p>

<p>5. API definitions and documentation: <a href="http://developer.android.com/reference/packages.html">http://developer.android.com/reference/packages.html</a></p>

<p>6. Android Permissions reference: <a href="http://developer.android.com/reference/android/Manifest.permission.html">http://developer.android.com/reference/android/Manifest.permission.html</a></p>

<p>7. android.os.Build reference: <a href="http://developer.android.com/reference/android/os/Build.html">http://developer.android.com/reference/android/os/Build.html</a></p>

<p>8. Android 5.0 allowed version strings: <a href="http://source.android.com/compatibility/5.0/versions.html">http://source.android.com/compatibility/5.0/versions.html</a></p>

<p>9. Telephony Provider: <a href="http://developer.android.com/reference/android/provider/Telephony.html">http://developer.android.com/reference/android/provider/Telephony.html</a></p>

<p>10. Host-based Card Emulation: <a href="http://developer.android.com/guide/topics/connectivity/nfc/hce.html">http://developer.android.com/guide/topics/connectivity/nfc/hce.html</a></p>

<p>11. Android Extension Pack: <a href="http://developer.android.com/guide/topics/graphics/opengl.html#aep">http://developer.android.com/guide/topics/graphics/opengl.html#aep</a> </p>

<p>12. android.webkit.WebView class: <a href="http://developer.android.com/reference/android/webkit/WebView.html">http://developer.android.com/reference/android/webkit/WebView.html</a></p>

<p>13. WebView compatibility: <a href="http://www.chromium.org/">http://www.chromium.org/</a></p>

<p>14. HTML5: <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">http://www.whatwg.org/specs/web-apps/current-work/multipage/</a></p>

<p>15. HTML5 offline capabilities:<a href="http://dev.w3.org/html5/spec/Overview.html#offline"> http://dev.w3.org/html5/spec/Overview.html#offline</a></p>

<p>16. HTML5 video tag: <a href="http://dev.w3.org/html5/spec/Overview.html#video">http://dev.w3.org/html5/spec/Overview.html#video</a></p>

<p>17. HTML5/W3C geolocation API: <a href="http://www.w3.org/TR/geolocation-API/">http://www.w3.org/TR/geolocation-API/</a></p>

<p>18. HTML5/W3C webstorage API: <a href="http://www.w3.org/TR/webstorage/">http://www.w3.org/TR/webstorage/</a></p>

<p>19. HTML5/W3C IndexedDB API: <a href="http://www.w3.org/TR/IndexedDB/">http://www.w3.org/TR/IndexedDB/</a></p>

<p>20. Dalvik Executable Format and bytecode specification: available in the
Android source code, at dalvik/docs</p>

<p>21. AppWidgets: <a href="http://developer.android.com/guide/practices/ui_guidelines/widget_design.html">http://developer.android.com/guide/practices/ui_guidelines/widget_design.html</a></p>

<p>22. Notifications: <a href="http://developer.android.com/guide/topics/ui/notifiers/notifications.html">http://developer.android.com/guide/topics/ui/notifiers/notifications.html</a></p>

<p>23. Application Resources: <a href="https://developer.android.com/guide/topics/resources/available-resources.html">https://developer.android.com/guide/topics/resources/available-resources.html</a></p>

<p>24. Status Bar icon style guide: <a href="http://developer.android.com/design/style/iconography.html">http://developer.android.com/design/style/iconography.html</a></p>

<p>25. Notifications Resources: <a href="https://developer.android.com/design/patterns/notifications.html">https://developer.android.com/design/patterns/notifications.html</a> </p>

<p>26. Search Manager: <a href="http://developer.android.com/reference/android/app/SearchManager.html">http://developer.android.com/reference/android/app/SearchManager.html</a> </p>

<p>27. Toasts: <a href="http://developer.android.com/reference/android/widget/Toast.html">http://developer.android.com/reference/android/widget/Toast.html</a></p>

<p>28. Themes: <a href="http://developer.android.com/guide/topics/ui/themes.html">http://developer.android.com/guide/topics/ui/themes.html</a></p>

<p>29. R.style class: <a href="http://developer.android.com/reference/android/R.style.html">http://developer.android.com/reference/android/R.style.html</a></p>

<p>30. Material design: <a href="http://developer.android.com/reference/android/R.style.html#Theme_Material">http://developer.android.com/reference/android/R.style.html#Theme_Material</a> </p>

<p>31. Live Wallpapers: <a href="http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html">http://developer.android.com/reference/android/service/wallpaper/WallpaperService.html</a></p>

<p>32. Overview screen resources: <a href="http://developer.android.com/guide/components/recents.html">http://developer.android.com/guide/components/recents.html</a> </p>

<p>33. Screen pinning: <a href="https://developer.android.com/about/versions/android-5.0.html#ScreenPinning">https://developer.android.com/about/versions/android-5.0.html#ScreenPinning</a> </p>

<p>34. Input methods: <a href="http://developer.android.com/guide/topics/text/creating-input-method.html">http://developer.android.com/guide/topics/text/creating-input-method.html</a> </p>

<p>35. Media Notification: <a href="https://developer.android.com/reference/android/app/Notification.MediaStyle.html">https://developer.android.com/reference/android/app/Notification.MediaStyle.html</a></p>

<p>36. Dreams: <a href="http://developer.android.com/reference/android/service/dreams/DreamService.html">http://developer.android.com/reference/android/service/dreams/DreamService.html</a></p>

<p>37. Settings.Secure LOCATION_MODE:</p>

<p><a href="http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE">http://developer.android.com/reference/android/provider/Settings.Secure.html#LOCATION_MODE</a></p>

<p>38. Unicode 6.1.0: <a href="http://www.unicode.org/versions/Unicode6.1.0/">http://www.unicode.org/versions/Unicode6.1.0/</a></p>

<p>39. Android Device Administration: <a href="http://developer.android.com/guide/topics/admin/device-admin.html">http://developer.android.com/guide/topics/admin/device-admin.html</a></p>

<p>40. DevicePolicyManager reference: <a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html</a></p>

<p>41. Android Device Owner App:</p>

<p><a href="http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)">http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#isDeviceOwnerApp(java.lang.String)</a></p>

<p>42. Android Accessibility Service APIs: <a href="http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html">http://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html</a></p>

<p>43. Android Accessibility APIs: <a href="http://developer.android.com/reference/android/view/accessibility/package-summary.html">http://developer.android.com/reference/android/view/accessibility/package-summary.html</a></p>

<p>44. Eyes Free project: <a href="http://code.google.com/p/eyes-free">http://code.google.com/p/eyes-free</a></p>

<p>45. Text-To-Speech APIs: <a href="http://developer.android.com/reference/android/speech/tts/package-summary.html">http://developer.android.com/reference/android/speech/tts/package-summary.html</a></p>

<p>46. Television Input Framework: <a href="https://source.android.com/devices/tv/index.html">https://source.android.com/devices/tv/index.html</a></p>

<p>47. Reference tool documentation (for adb, aapt, ddms, systrace): <a href="http://developer.android.com/guide/developing/tools/index.html">http://developer.android.com/guide/developing/tools/index.html</a></p>

<p>48. Android apk file description: <a href="http://developer.android.com/guide/components/fundamentals.html">http://developer.android.com/guide/components/fundamentals.html </a></p>

<p>49. Manifest files: <a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html">http://developer.android.com/guide/topics/manifest/manifest-intro.html</a></p>

<p>50. Android Media Formats: <a href="http://developer.android.com/guide/appendix/media-formats.html">http://developer.android.com/guide/appendix/media-formats.html</a></p>

<p>51. RTC Hardware Coding Requirements: <a href="http://www.webmproject.org/hardware/rtc-coding-requirements/">http://www.webmproject.org/hardware/rtc-coding-requirements/</a></p>

<p>52. AudioEffect API: <a href="http://developer.android.com/reference/android/media/audiofx/AudioEffect.html">http://developer.android.com/reference/android/media/audiofx/AudioEffect.html</a></p>

<p>53. Android android.content.pm.PackageManager class and Hardware Features List:</p>

<p><a href="http://developer.android.com/reference/android/content/pm/PackageManager.html">http://developer.android.com/reference/android/content/pm/PackageManager.html</a></p>

<p>54. HTTP Live Streaming Draft Protocol: <a href="http://tools.ietf.org/html/draft-pantos-http-live-streaming-03">http://tools.ietf.org/html/draft-pantos-http-live-streaming-03</a></p>

<p>55. ADB: <a href="http://developer.android.com/tools/help/adb.html">http://developer.android.com/tools/help/adb.html</a> </p>

<p>56. Dumpsys: <a href="https://source.android.com/devices/tech/input/dumpsys.html">https://source.android.com/devices/tech/input/dumpsys.html</a> </p>

<p>57. DDMS: <a href="http://developer.android.com/tools/debugging/ddms.html">http://developer.android.com/tools/debugging/ddms.html</a> </p>

<p>58. Monkey testing tool: <a href="http://developer.android.com/tools/help/monkey.html">http://developer.android.com/tools/help/monkey.html</a> </p>

<p>59. SysyTrace tool: <a href="http://developer.android.com/tools/help/systrace.html">http://developer.android.com/tools/help/systrace.html</a></p>

<p>60. Android Application Development-Related Settings:</p>

<p><a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_APPLICATION_DEVELOPMENT_SETTINGS</a></p>

<p>61. Supporting Multiple Screens: <a href="http://developer.android.com/guide/practices/screens_support.html">http://developer.android.com/guide/practices/screens_support.html</a></p>

<p>62. android.util.DisplayMetrics: <a href="http://developer.android.com/reference/android/util/DisplayMetrics.html">http://developer.android.com/reference/android/util/DisplayMetrics.html</a></p>

<p>63. RenderScript: <a href="http://developer.android.com/guide/topics/renderscript/">http://developer.android.com/guide/topics/renderscript/</a></p>

<p>64. Android extension pack for OpenGL ES: <a href="https://developer.android.com/reference/android/opengl/GLES31Ext.html">https://developer.android.com/reference/android/opengl/GLES31Ext.html</a> </p>

<p>65. Hardware Acceleration: <a href="http://developer.android.com/guide/topics/graphics/hardware-accel.html">http://developer.android.com/guide/topics/graphics/hardware-accel.html</a></p>

<p>66. EGL Extension-EGL_ANDROID_RECORDABLE:</p>

<p><a href="http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt">http://www.khronos.org/registry/egl/extensions/ANDROID/EGL_ANDROID_recordable.txt</a></p>

<p>67. Display Manager: <a href="http://developer.android.com/reference/android/hardware/display/DisplayManager.html">http://developer.android.com/reference/android/hardware/display/DisplayManager.html</a></p>

<p>68. android.content.res.Configuration: <a href="http://developer.android.com/reference/android/content/res/Configuration.html">http://developer.android.com/reference/android/content/res/Configuration.html</a></p>

<p>69. Action Assist: <a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST">http://developer.android.com/reference/android/content/Intent.html#ACTION_ASSIST</a></p>

<p>70. Touch Input Configuration: <a href="http://source.android.com/devices/tech/input/touch-devices.html">http://source.android.com/devices/tech/input/touch-devices.html</a></p>

<p>71. Motion Event API: <a href="http://developer.android.com/reference/android/view/MotionEvent.html">http://developer.android.com/reference/android/view/MotionEvent.html</a></p>

<p>72. Key Event API: <a href="http://developer.android.com/reference/android/view/KeyEvent.html">http://developer.android.com/reference/android/view/KeyEvent.html</a> </p>

<p>73. Android Open Source sensors: <a href="http://source.android.com/devices/sensors/">http://source.android.com/devices/sensors/</a></p>

<p>74. android.hardware.SensorEvent: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html">http://developer.android.com/reference/android/hardware/SensorEvent.html</a></p>

<p>75. Timestamp sensor event: <a href="http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp">http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp</a></p>

<p>76. Android Open Source composite sensors: <a href="http://source.android.com/devices/sensors/composite_sensors.html">http://source.android.com/devices/sensors/composite_sensors.html</a></p>

<p>77. Continuous trigger mode: <a href="http://source.android.com/devices/sensors/base_triggers.html#continuous">http://source.android.com/devices/sensors/base_triggers.html#continuous</a></p>

<p>78. Accelerometer sensor: <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER">http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER</a></p>

<p>79. Wi-Fi Multicast API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html">http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html</a></p>

<p>80. Wi-Fi Direct (Wi-Fi P2P): <a href="http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html">http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pManager.html</a></p>

<p>81. WifiManager API: <a href="http://developer.android.com/reference/android/net/wifi/WifiManager.html">http://developer.android.com/reference/android/net/wifi/WifiManager.html</a></p>

<p>82. Bluetooth API: <a href="http://developer.android.com/reference/android/bluetooth/package-summary.html">http://developer.android.com/reference/android/bluetooth/package-summary.html</a></p>

<p>83. Bluetooth ScanFilter API: <a href="https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html">https://developer.android.com/reference/android/bluetooth/le/ScanFilter.html</a></p>

<p>84. NDEF Push Protocol: <a href="http://source.android.com/compatibility/ndef-push-protocol.pdf">http://source.android.com/compatibility/ndef-push-protocol.pdf</a></p>

<p>85. Android Beam: <a href="http://developer.android.com/guide/topics/connectivity/nfc/nfc.html">http://developer.android.com/guide/topics/connectivity/nfc/nfc.html</a> </p>

<p>86. Android NFC Sharing Settings:</p>

<p><a href="http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS">http://developer.android.com/reference/android/provider/Settings.html#ACTION_NFCSHARING_SETTINGS</a></p>

<p>87. NFC Connection Handover: <a href="http://www.nfc-forum.org/specs/spec_list/#conn_handover">http://www.nfc-forum.org/specs/spec_list/#conn_handover</a></p>

<p>88. Bluetooth Secure Simple Pairing Using NFC: <a href="http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf">http://members.nfc-forum.org/apps/group_public/download.php/18688/NFCForum-AD-BTSSP_1_1.pdf</a> </p>

<p>89. Content Resolver: <a href="http://developer.android.com/reference/android/content/ContentResolver.html">http://developer.android.com/reference/android/content/ContentResolver.html</a></p>

<p>90. Camera orientation API: <a href="http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)">http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)</a></p>

<p>91. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.html">http://developer.android.com/reference/android/hardware/Camera.html</a></p>

<p>92. Camera: <a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html">http://developer.android.com/reference/android/hardware/Camera.Parameters.html</a></p>

<p>93. Camera hardware level: <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL">https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL</a> </p>

<p>94. Camera version support: <a href="http://source.android.com/devices/camera/versioning.html">http://source.android.com/devices/camera/versioning.html</a> </p>

<p>95. Android DownloadManager: <a href="http://developer.android.com/reference/android/app/DownloadManager.html">http://developer.android.com/reference/android/app/DownloadManager.html</a></p>

<p>96. Android File Transfer: <a href="http://www.android.com/filetransfer">http://www.android.com/filetransfer</a></p>

<p>97. Android Open Accessories: <a href="http://developer.android.com/guide/topics/usb/accessory.html">http://developer.android.com/guide/topics/usb/accessory.html</a></p>

<p>98. Android USB Audio: <a href="http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO">http://developer.android.com/reference/android/hardware/usb/UsbConstants.html#USB_CLASS_AUDIO</a></p>

<p>99. USB Charging Specification: <a href="http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf">http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf</a></p>

<p>100. USB Host API:<a href="http://developer.android.com/guide/topics/usb/host.html"> http://developer.android.com/guide/topics/usb/host.html</a></p>

<p>101. Wired audio headset: <a href="http://source.android.com/accessories/headset-spec.html">http://source.android.com/accessories/headset-spec.html</a> </p>

<p>102. Android Security and Permissions reference: <a href="http://developer.android.com/guide/topics/security/permissions.html">http://developer.android.com/guide/topics/security/permissions.html</a></p>

<p>103. UserManager reference: <a href="http://developer.android.com/reference/android/os/UserManager.html">http://developer.android.com/reference/android/os/UserManager.html</a></p>

<p>104. External Storage reference: <a href="http://source.android.com/devices/tech/storage">http://source.android.com/devices/tech/storage</a></p>

<p>105. External Storage APIs: <a href="http://developer.android.com/reference/android/os/Environment.html">http://developer.android.com/reference/android/os/Environment.html</a></p>

<p>106. SMS Short Code: <a href="http://en.wikipedia.org/wiki/Short_code">http://en.wikipedia.org/wiki/Short_code</a></p>

<p>107. Android Open Source Encryption: <a href="http://source.android.com/devices/tech/encryption/index.html">http://source.android.com/devices/tech/encryption/index.html</a></p>

<p>108. Android Compatibility Program Overview: <a href="http://source.android.com/compatibility/index.html">http://source.android.com/compatibility/index.html</a></p>

<p>109. Android Compatibility forum: <a href="https://groups.google.com/forum/#!forum/android-compatibility">https://groups.google.com/forum/#!forum/android-compatibility</a></p>

<p>110. WebM project: <a href="http://www.webmproject.org/">http://www.webmproject.org/</a>  </p>

<p>Many of these resources are derived directly or indirectly from the Android
SDK, and will be functionally identical to the information in that SDK's
documentation. In any cases where this Compatibility Definition or the
Compatibility Test Suite disagrees with the SDK documentation, the SDK
documentation is considered authoritative. Any technical details provided in
the references included above are considered by inclusion to be part of this
Compatibility Definition.</p>
<div style="page-break-before: always;"></div>

<div id="footerContent" xmlns:pdf="https://source.android.com">
<pdf:pagenumber/>
</div>
</body>
</html>
