page.title=Platform Versions
@jd:body

<style type="text/css">

div.dashboard-panel {
  max-width:1000px;
  margin:0 0 2em 0;
  padding:20px 20px 0 20px;
  border:1px solid #d3ecf5;
  border-radius:7px;
  -moz-border-radius:7px;
  -webkit-border-radius:7px;
  background-color: #DAF3FC;
  box-shadow:2px 3px 1px #eee;
  -moz-box-shadow:2px 3px 1px #eee;
  -webkit-box-shadow:2px 3px 1px #eee;
  overflow:hidden;
}
#jd-content div.dashboard-panel img {
  margin:0 20px 20px 0;
  padding:0;
  border:1px solid #ccc;
  float:left;
}
#jd-content div.dashboard-panel table {
  margin:0 0 20px 0;
  float:left;
  background-color:#fff;
}
div.dashboard-panel p {
  clear:left;
}
div.dashboard-panel th {
  white-space:nowrap;
}
</style>

<p>This page provides data about the relative number of active devices
running a given version of the Android platform. This can help you
understand the landscape of device distribution and decide how to prioritize
the development of your application features for the devices currently in
the hands of users. For information about how to target your application to devices based on
platform version, see <a href="{@docRoot}guide/appendix/api-levels.html">API Levels</a>.</p>


<h3 id="Current">Current Distribution</h3>

<p>The following pie chart and table is based on the number of Android devices that have accessed
Android Market within a 14-day period ending on the data collection date noted below.</p>

<div class="dashboard-panel">

<img alt="" height="250" width="470"
src="http://chart.apis.google.com/chart?&cht=p&chs=460x250&chd=t:0.8,1.3,9.6,35.3,0.5,50.1,0.1,1.1,1.2&chl=Android%201.5|Android%201.6|Android%202.1|Android%202.2|Android%202.3|Android%202.3.3|Android%203.0|Android%203.1|Android%203.2&chco=c4df9b,6fad0c" />

<table>
<tr>
  <th>Platform</th>
  <th>Codename</th>
  <th>API Level</th>
  <th>Distribution</th>
</tr>
<tr><td><a href="{@docRoot}sdk/android-1.5.html">Android 1.5</a></td><td>Cupcake</td>  <td>3</td><td>0.8%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-1.6.html">Android 1.6</a></td><td>Donut</td>    <td>4</td><td>1.3%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-2.1.html">Android 2.1</a></td><td>Eclair</td>   <td>7</td><td>9.6%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-2.2.html">Android 2.2</a></td><td>Froyo</td>    <td>8</td><td>35.3%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-2.3.html">Android 2.3 -<br/>
                             Android 2.3.2</a></td><td rowspan="2">Gingerbread</td>    <td>9</td><td>0.5%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-2.3.3.html">Android 2.3.3 -<br/>
      Android 2.3.7</a></td><!-- Gingerbread -->                                       <td>10</td><td>50.1%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-3.0.html">Android 3.0</a></td>
                                                   <td rowspan="3">Honeycomb</td>      <td>11</td><td>0.1%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-3.1.html">Android 3.1</a></td><!-- Honeycomb --><td>12</td><td>1.1%</td></tr>
<tr><td><a href="{@docRoot}sdk/android-3.2.html">Android 3.2</a></td><!-- Honeycomb --><td>13</td><td>1.2%</td></tr> 
</table>

<p><em>Data collected during a 14-day period ending on December 1, 2011</em></p>
<!--
<p style="font-size:.9em">* <em>Other: 0.1% of devices running obsolete versions</em></p>
-->
</div><!-- end dashboard-panel -->


<h3 id="Historical">Historical Distribution</h3>

<p>The following stacked line graph provides a history of the relative number of
active Android devices running different versions of the Android platform. It also provides a
valuable perspective of how many devices your application is compatible with, based on the
platform version.</p>

<p>Notice that the platform versions are stacked on top of each other with the oldest active
version at the top. This format indicates the total percent of active devices that are compatible
with a given version of Android. For example, if you develop your application for
the version that is at the very top of the chart, then your application is
compatible with 100% of active devices (and all future versions), because all Android APIs are
forward compatible. Or, if you develop your application for a version lower on the chart,
then it is currently compatible with the percentage of devices indicated on the y-axis, where the
line for that version meets the y-axis on the right.</p>

<p>Each dataset in the timeline is based on the number of Android devices that accessed
Android Market within a 14-day period ending on the date indicated on the x-axis.</p>

<div class="dashboard-panel">

<img alt="" height="250" width="660" style="padding:5px;background:#fff"
src="http://chart.apis.google.com/chart?&cht=lc&chs=660x250&chxt=x,x,y,r&chxr=0,0,12|1,0,12|2,0,100|3,0,100&chxl=0%3A|06/01|06/15|07/01|07/15|08/01|08/15|09/01|09/15|10/01|10/15|11/01|11/15|12/01|1%3A|2011||||||||||||2011|2%3A|0%25|25%25|50%25|75%25|100%25|3%3A|0%25|25%25|50%25|75%25|100%25&chxp=0,0,1,2,3,4,5,6,7,8,9,10,11,12&chxtc=0,5&chd=t:99.4,99.3,99.2,99.0,98.8,98.7,98.5,98.5,98.2,98.1,98.0,99.9,99.9|97.5,97.5,97.7,97.6,97.5,97.5,97.5,97.5,97.1,97.1,97.0,99.1,99.1|95.0,95.2,95.5,95.5,95.5,95.6,95.7,95.8,95.6,95.9,95.7,97.7,97.8|73.9,75.4,77.6,79.0,80.2,81.1,82.4,83.3,83.8,84.9,85.1,87.5,88.2|9.5,13.6,17.8,20.6,24.3,27.5,31.2,34.7,38.3,41.3,44.0,48.9,52.9|8.4,12.6,16.8,20.0,23.7,26.9,30.6,34.1,37.8,40.8,43.5,48.4,52.4|0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.3|0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.2&chm=b,c3df9b,0,1,0|b,b8dc82,1,2,0|tAndroid%202.1,608920,2,0,15,,t::-5|b,addb67,2,3,0|tAndroid%202.2,517617,3,0,15,,t::-5|b,a3db4b,3,4,0|b,98dc2e,4,5,0|tAndroid%202.3.3,334d0a,5,1,15,,t::-5|b,8cd41b,5,6,0|b,7ec113,6,7,0|B,6fad0c,7,8,0&chg=7,25&chdl=Android%201.5|Android%201.6|Android%202.1|Android%202.2|Android%202.3|Android%202.3.3|Android%203.1|Android%203.2&chco=add274,a2d15a,97d13e,8bcb28,7dba1e,6ea715,5f920e,507d08" />

<p><em>Last historical dataset collected during a 14-day period ending on December 1, 2011</em></p>


</div><!-- end dashboard-panel -->

