page.title=&lt;uses-sdk&gt;
page.tags=api levels,sdk version,minsdkversion,targetsdkversion,maxsdkversion
@jd:body


<div id="qv-wrapper">
<div id="qv">

<h2>In this document</h2>
<ol>
  <li><a href="#ApiLevels">What is API Level?</a></li>
  <li><a href="#uses">Uses of API Level in Android</a></li>
  <li><a href="#considerations">Development Considerations</a>
    <ol>
      <li><a href="#fc">Application forward compatibility</a></li>
      <li><a href="#bc">Application backward compatibility</a></li>
      <li><a href="#platform">Selecting a platform version and API Level</a></li>
      <li><a href="#apilevel">Declaring a minimum API Level</a></li>
      <li><a href="#testing">Testing against higher API Levels</a></li>
    </ol>
  </li>
  <li><a href="#provisional">Using a Provisional API Level</a></li>
  <li><a href="#filtering">Filtering the Reference Documentation by API Level</a></li>
</ol>
</div>
</div>

<div class="sidebox-wrapper">
<div class="sidebox">
    <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;">
    <p style="color:#669999;padding-top:1em;">Google Play Filtering</p>
    <p style="padding-top:1em;">Google Play uses the <code>&lt;uses-sdk&gt;</code>
    attributes declared in your app manifest to filter your app from devices
    that do not meet it's platform version requirements. Before setting these
    attributes, make sure that you understand
    <a href="{@docRoot}google/play/filters.html">Google Play filters</a>. </p>
  </div>
</div>

<dl class="xml">
<dt>syntax:</dt>
<dd><pre>
&lt;uses-sdk android:<a href="#min">minSdkVersion</a>="<i>integer</i>"
          android:<a href="#target">targetSdkVersion</a>="<i>integer</i>"
          android:<a href="#max">maxSdkVersion</a>="<i>integer</i>" /&gt;</pre></dd>

<dt>contained in:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code></dd>

<dt>description:</dt>
<dd itemprop="description"><p>  Lets you express an application's compatibility with one or more versions of the Android platform,
by means of an API Level integer. The API Level expressed by an application will be compared to the
API Level of a given Android system, which may vary among different Android devices.
</p>

<p>Despite its name, this element is used to specify the API Level, <em>not</em>
the version number of the SDK (software development kit) or Android platform.
The API Level is always a single integer. You cannot derive the API Level from
its associated Android version number (for example, it is not the same as the
major version or the sum of the major and minor versions).</p>

<p>Also read the document about
<a href="{@docRoot}tools/publishing/versioning.html">Versioning Your Applications</a>.
</p></dd>

<dt>attributes:</dt>

<dd>
<dl class="attr">
  <dt><a name="min"></a>{@code android:minSdkVersion}</dt>
  <dd>An integer designating the minimum API Level required
  for the application to run. The Android system will prevent the user from installing
  the application if the system's API Level is lower than the value specified in
  this attribute. You should always declare this attribute.

  <p class="caution"><strong>Caution:</strong> If you do not declare this
  attribute, the system assumes a default value of "1", which indicates that your
  application is compatible with all versions of Android. If your application is
  <em>not</em> compatible with all versions (for instance, it uses APIs introduced
  in API Level 3) and you have not declared the proper <code>minSdkVersion</code>,
  then when installed on a system with an API Level less than 3, the application
  will crash during runtime when attempting to access the unavailable APIs. For
  this reason, be certain to declare the appropriate API Level in the
  <code>minSdkVersion</code> attribute.</p>
  </dd>

  <dt><a name="target"></a>{@code android:targetSdkVersion}</dt>
  <dd>An integer designating the API Level that the application targets. If not set, the default
value equals that given to {@code minSdkVersion}.

  <p>This attribute informs the system that you have tested against the target version and the
system should not enable any compatibility behaviors to maintain your app's forward-compatibility
with the target version. The application is still able to run on older versions (down to {@code
minSdkVersion}).</p>

  <p>As Android evolves with each new version, some behaviors and even appearances might change.
However, if the API level of the platform is higher than the version declared by your app's {@code
targetSdkVersion}, the system may enable compatibility behaviors to ensure that your app
continues to work the way you expect. You can disable such compatibility
behaviors by specifying {@code targetSdkVersion} to match the API
level of the platform on which it's running. For example, setting this value to "11" or higher
allows the system to apply a new default theme (Holo) to your app when running on Android 3.0 or
higher and also disables <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen
compatibility mode</a> when running on larger screens (because support for API level 11 implicitly
supports larger screens).</p>

  <p>There are many compatibility behaviors that the system may enable based on the value you set
for this attribute. Several of these behaviors are described by the corresponding platform versions
in the {@link android.os.Build.VERSION_CODES} reference.</p>

  <p>To maintain your application along with each Android release, you should increase
the value of this attribute to match the latest API level, then thoroughly test your application on
the corresponding platform version.</p>

  <p>Introduced in: API Level 4</p>
  </dd>

  <dt><a name="max"></a>{@code android:maxSdkVersion}</dt>
  <dd>An integer designating the maximum API Level on which the application is
  designed to run.

  <p>In Android 1.5, 1.6, 2.0, and 2.0.1, the system checks the value of this
  attribute when installing an application and when re-validating the application
  after a system update. In either case, if the application's
  <code>maxSdkVersion</code> attribute is lower than the API Level used by
  the system itself, then the system will not allow the application to be
  installed. In the case of re-validation after system update, this effectively
  removes your application from the device.

  <p>To illustrate how this attribute can affect your application after system
  updates, consider the following example: </p>

  <p>An application declaring <code>maxSdkVersion="5"</code> in its
  manifest is published on Google Play. A user whose device is running Android
  1.6 (API Level 4) downloads and installs the app. After a few weeks, the user
  receives an over-the-air system update to Android 2.0 (API Level 5). After the
  update is installed, the system checks the application's
  <code>maxSdkVersion</code> and successfully re-validates it. The
  application functions as normal. However, some time later, the device receives
  another system update, this time to Android 2.0.1 (API Level 6). After the
  update, the system can no longer re-validate the application because the system's
  own API Level (6) is now higher than the maximum supported by the application
  (5). The system prevents the application from being visible to the user, in
  effect removing it from the device.</p>

  <p class="warning"><strong>Warning:</strong> Declaring this attribute is not
  recommended. First, there is no need to set the attribute as means of blocking
  deployment of your application onto new versions of the Android platform as they
  are released. By design, new versions of the platform are fully
  backward-compatible. Your application should work properly on new versions,
  provided it uses only standard APIs and follows development best practices.
  Second, note that in some cases, declaring the attribute can <strong>result in
  your application being removed from users' devices after a system
  update</strong> to a higher API Level. Most devices on which your application
  is likely to be installed will receive periodic system updates over the air, so
  you should consider their effect on your application before setting this
  attribute.</p>

  <p style="margin-bottom:1em;">Introduced in: API Level 4</p>

  <div class="special">Future versions of Android (beyond Android 2.0.1) will no
longer check or enforce the <code>maxSdkVersion</code> attribute during
installation or re-validation. Google Play will continue to use the attribute
as a filter, however, when presenting users with applications available for
download. </div>
  </dd>


</dl></dd>

<!-- ##api level indication## -->
<dt>introduced in:</dt>
<dd>API Level 1</dd>

</dl>





<!--- CONTENT FROM OLD API LEVEL DOC ---->




<h2 id="ApiLevels">What is API Level?</h2>

<p>API Level is an integer value that uniquely identifies the framework API
revision offered by a version of the Android platform.</p>

<p>The Android platform provides a framework API that applications can use to
interact with the underlying Android system. The framework API consists of:</p>

<ul>
<li>A core set of packages and classes</li>
<li>A set of XML elements and attributes for declaring a manifest file</li>
<li>A set of XML elements and attributes for declaring and accessing resources</li>
<li>A set of Intents</li>
<li>A set of permissions that applications can request, as well as permission
enforcements included in the system</li>
</ul>

<p>Each successive version of the Android platform can include updates to the
Android application framework API that it delivers. </p>

<p>Updates to the framework API are designed so that the new API remains
compatible with earlier versions of the API. That is, most changes in the API
are additive and introduce new or replacement functionality. As parts of the API
are upgraded, the older replaced parts are deprecated but are not removed, so
that existing applications can still use them. In a very small number of cases,
parts of the API may be modified or removed, although typically such changes are
only needed to ensure API robustness and application or system security. All
other API parts from earlier revisions are carried forward without
modification.</p>

<p>The framework API that an Android platform delivers is specified using an
integer identifier called "API Level". Each Android platform version supports
exactly one API Level, although support is implicit for all earlier API Levels
(down to API Level 1). The initial release of the Android platform provided
API Level 1 and subsequent releases have incremented the API Level.</p>

<p>The table below specifies the API Level supported by each version of the
Android platform. For information about the relative numbers of devices that
are running each version, see the <a href="{@docRoot}about/dashboards/index.html">Platform
Versions dashboards page</a>.</p>

<table>
  <tr><th>Platform Version</th><th>API Level</th><th>VERSION_CODE</th><th>Notes</th></tr>

    <tr><td><a href="{@docRoot}about/versions/android-5.1.html">Android 5.1</a></td>
    <td><a href="{@docRoot}sdk/api_diff/22/changes.html" title="Diff Report">22</a></td>
    <td>{@link android.os.Build.VERSION_CODES#LOLLIPOP_MR1}</td>
    <td rowspan="2"><a href="{@docRoot}about/versions/lollipop.html">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-5.0.html">Android 5.0</a></td>
    <td><a href="{@docRoot}sdk/api_diff/21/changes.html" title="Diff Report">21</a></td>
    <td>{@link android.os.Build.VERSION_CODES#LOLLIPOP}</td>
    </tr>

    <tr><td style="color:#bbb">Android 4.4W</td>
    <td><a href="{@docRoot}sdk/api_diff/20/changes.html" title="Diff Report">20</a></td>
    <td>{@link android.os.Build.VERSION_CODES#KITKAT_WATCH}</td>
    <td style="color:#bbb">KitKat for Wearables Only</td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.4.html">Android 4.4</a></td>
    <td><a href="{@docRoot}sdk/api_diff/19/changes.html" title="Diff Report">19</a></td>
    <td>{@link android.os.Build.VERSION_CODES#KITKAT}</td>
    <td><a href="{@docRoot}about/versions/kitkat.html">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.3.html">Android 4.3</a></td>
    <td><a href="{@docRoot}sdk/api_diff/18/changes.html" title="Diff Report">18</a></td>
    <td>{@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2}</td>
    <td><a href="{@docRoot}about/versions/jelly-bean.html">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.2.html">Android 4.2, 4.2.2</a></td>
    <td><a href="{@docRoot}sdk/api_diff/17/changes.html" title="Diff Report">17</a></td>
    <td>{@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}</td>
    <td><a href="{@docRoot}about/versions/jelly-bean.html#android-42">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.1.html">Android 4.1, 4.1.1</a></td>
    <td><a href="{@docRoot}sdk/api_diff/16/changes.html" title="Diff Report">16</a></td>
    <td>{@link android.os.Build.VERSION_CODES#JELLY_BEAN}</td>
    <td><a href="{@docRoot}about/versions/jelly-bean.html#android-41">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.0.3.html">Android 4.0.3, 4.0.4</a></td>
    <td><a href="{@docRoot}sdk/api_diff/15/changes.html" title="Diff Report">15</a></td>
    <td>{@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1}</td>
    <td rowspan="2"><a href="{@docRoot}about/versions/android-4.0-highlights.html">Platform
Highlights</a></td></tr>

    <tr><td><a href="{@docRoot}about/versions/android-4.0.html">Android 4.0, 4.0.1, 4.0.2</a></td>
    <td><a href="{@docRoot}sdk/api_diff/14/changes.html" title="Diff Report">14</a></td>
    <td>{@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH}</td>
    </tr>

    <tr><td><a href="{@docRoot}about/versions/android-3.2.html">Android 3.2</a></td>
    <td><a href="{@docRoot}sdk/api_diff/13/changes.html" title="Diff Report">13</a></td>
    <td>{@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}</td>
    <td><!-- <a href="{@docRoot}about/versions/android-3.2-highlights.html">Platform
Highlights</a>--></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-3.1.html">Android 3.1.x</a></td>
    <td><a href="{@docRoot}sdk/api_diff/12/changes.html" title="Diff Report">12</a></td>
    <td>{@link android.os.Build.VERSION_CODES#HONEYCOMB_MR1}</td>
    <td><a href="{@docRoot}about/versions/android-3.1-highlights.html">Platform Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-3.0.html">Android 3.0.x</a></td>
    <td><a href="{@docRoot}sdk/api_diff/11/changes.html" title="Diff Report">11</a></td>
    <td>{@link android.os.Build.VERSION_CODES#HONEYCOMB}</td>
    <td><a href="{@docRoot}about/versions/android-3.0-highlights.html">Platform Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.3.3.html">Android 2.3.4<br>Android 2.3.3</a></td>
    <td><a href="{@docRoot}sdk/api_diff/10/changes.html" title="Diff Report">10</a></td>
    <td>{@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1}</td>
    <td rowspan="2"><a href="{@docRoot}about/versions/android-2.3-highlights.html">Platform
Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.3.html">Android 2.3.2<br>Android 2.3.1<br>
  Android 2.3</a></td>
    <td><a href="{@docRoot}sdk/api_diff/9/changes.html" title="Diff Report">9</a></td>
    <td>{@link android.os.Build.VERSION_CODES#GINGERBREAD}</td>
    </tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.2.html">Android 2.2.x</a></td>
    <td ><a href="{@docRoot}sdk/api_diff/8/changes.html" title="Diff Report">8</a></td>
    <td>{@link android.os.Build.VERSION_CODES#FROYO}</td>
    <td><a href="{@docRoot}about/versions/android-2.2-highlights.html">Platform Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.1.html">Android 2.1.x</a></td>
    <td><a href="{@docRoot}sdk/api_diff/7/changes.html" title="Diff Report">7</a></td>
    <td>{@link android.os.Build.VERSION_CODES#ECLAIR_MR1}</td>
    <td rowspan="3" ><a href="{@docRoot}about/versions/android-2.0-highlights.html">Platform
Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1</a></td>
    <td><a href="{@docRoot}sdk/api_diff/6/changes.html" title="Diff Report">6</a></td>
    <td>{@link android.os.Build.VERSION_CODES#ECLAIR_0_1}</td>
    </tr>

  <tr><td><a href="{@docRoot}about/versions/android-2.0.html">Android 2.0</a></td>
    <td><a href="{@docRoot}sdk/api_diff/5/changes.html" title="Diff Report">5</a></td>
    <td>{@link android.os.Build.VERSION_CODES#ECLAIR}</td>
    </tr>

  <tr><td><a href="{@docRoot}about/versions/android-1.6.html">Android 1.6</a></td>
    <td><a href="{@docRoot}sdk/api_diff/4/changes.html" title="Diff Report">4</a></td>
    <td>{@link android.os.Build.VERSION_CODES#DONUT}</td>
    <td><a href="{@docRoot}about/versions/android-1.6-highlights.html">Platform Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-1.5.html">Android 1.5</a></td>
    <td><a href="{@docRoot}sdk/api_diff/3/changes.html" title="Diff Report">3</a></td>
    <td>{@link android.os.Build.VERSION_CODES#CUPCAKE}</td>
    <td><a href="{@docRoot}about/versions/android-1.5-highlights.html">Platform Highlights</a></td></tr>

  <tr><td><a href="{@docRoot}about/versions/android-1.1.html">Android 1.1</a></td>
    <td>2</td>
    <td>{@link android.os.Build.VERSION_CODES#BASE_1_1}</td><td></td></tr>

  <tr><td>Android 1.0</td>
    <td>1</td>
    <td>{@link android.os.Build.VERSION_CODES#BASE}</td>
    <td></td></tr>
</table>


<h2 id="uses">Uses of API Level in Android</h2>

<p>The API Level identifier serves a key role in ensuring the best possible
experience for users and application developers:

<ul>
<li>It lets the Android platform describe the maximum framework API revision
that it supports</li>
<li>It lets applications describe the framework API revision that they
require</li>
<li>It lets the system negotiate the installation of applications on the user's
device, such that version-incompatible applications are not installed.</li>
</ul>

<p>Each Android platform version stores its API Level identifier internally, in
the Android system itself. </p>

<p>Applications can use a manifest element provided by the framework API &mdash;
<code>&lt;uses-sdk&gt;</code> &mdash; to describe the minimum and maximum API
Levels under which they are able to run, as well as the preferred API Level that
they are designed to support. The element offers three key attributes:</p>

<ul>
<li><code>android:minSdkVersion</code> &mdash; Specifies the minimum API Level
on which the application is able to run. The default value is "1".</li>
<li><code>android:targetSdkVersion</code> &mdash; Specifies the API Level
on which the application is designed to run. In some cases, this allows the
application to use manifest elements or behaviors defined in the target
API Level, rather than being restricted to using only those defined
for the minimum API Level.</li>
<li><code>android:maxSdkVersion</code> &mdash; Specifies the maximum API Level
on which the application is able to run. <strong>Important:</strong> Please read the <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
documentation before using this attribute.  </li>
</ul>

<p>For example, to specify the minimum system API Level that an application
requires in order to run, the application would include in its manifest a
<code>&lt;uses-sdk&gt;</code> element with a <code>android:minSdkVersion</code>
attribute. The value of <code>android:minSdkVersion</code> would be the integer
corresponding to the API Level of the earliest version of the Android platform
under which the application can run. </p>

<p>When the user attempts to install an application, or when revalidating an
appplication after a system update, the Android system first checks the
<code>&lt;uses-sdk&gt;</code> attributes in the application's manifest and
compares the values against its own internal API Level. The system allows the
installation to begin only if these conditions are met:</p>

<ul>
<li>If a <code>android:minSdkVersion</code> attribute is declared, its value
must be less than or equal to the system's API Level integer. If not declared,
the system assumes that the application requires API Level 1. </li>
<li>If a <code>android:maxSdkVersion</code> attribute is declared, its value
must be equal to or greater than the system's API Level integer.
If not declared, the system assumes that the application
has no maximum API Level. Please read the <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
documentation for more information about how the system handles this attribute.</li>
</ul>

<p>When declared in an application's manifest, a <code>&lt;uses-sdk&gt;</code>
element might look like this: </p>

<pre>&lt;manifest&gt;
  &lt;uses-sdk android:minSdkVersion="5" /&gt;
  ...
&lt;/manifest&gt;</pre>

<p>The principal reason that an application would declare an API Level in
<code>android:minSdkVersion</code> is to tell the Android system that it is
using APIs that were <em>introduced</em> in the API Level specified. If the
application were to be somehow installed on a platform with a lower API Level,
then it would crash at run-time when it tried to access APIs that don't exist.
The system prevents such an outcome by not allowing the application to be
installed if the lowest API Level it requires is higher than that of the
platform version on the target device.</p>

<p>For example, the {@link android.appwidget} package was introduced with API
Level 3. If an application uses that API, it must declare a
<code>android:minSdkVersion</code> attribute with a value of "3". The
application will then be installable on platforms such as Android 1.5 (API Level
3) and Android 1.6 (API Level 4), but not on the Android 1.1 (API Level 2) and
Android 1.0 platforms (API Level 1).</p>

<p>For more information about how to specify an application's API Level
requirements, see the <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
 section of the manifest file documentation.</p>


<h2 id="considerations">Development Considerations</h2>

<p>The sections below provide information related to API level that you should
consider when developing your application.</p>

<h3 id="fc">Application forward compatibility</h3>

<p>Android applications are generally forward-compatible with new versions of
the Android platform.</p>

<p>Because almost all changes to the framework API are additive, an Android
application developed using any given version of the API (as specified by its
API Level) is forward-compatible with later versions of the Android platform and
higher API levels. The application should be able to run on all later versions
of the Android platform, except in isolated cases where the application uses a
part of the API that is later removed for some reason. </p>

<p>Forward compatibility is important because many Android-powered devices
receive over-the-air (OTA) system updates. The user may install your
application and use it successfully, then later receive an OTA update to a new
version of the Android platform. Once the update is installed, your application
will run in a new run-time version of the environment, but one that has the API
and system capabilities that your application depends on. </p>

<p>In some cases, changes <em>below</em> the API, such those in the underlying
system itself, may affect your application when it is run in the new
environment. For that reason it's important for you, as the application
developer, to understand how the application will look and behave in each system
environment. To help you test your application on various versions of the Android
platform, the Android SDK includes multiple platforms that you can download.
Each platform includes a compatible system image that you can run in an AVD, to
test your application. </p>

<h3 id="bc">Application backward compatibility</h3>

<p>Android applications are not necessarily backward compatible with versions of
the Android platform older than the version against which they were compiled.
</p>

<p>Each new version of the Android platform can include new framework APIs, such
as those that give applications access to new platform capabilities or replace
existing API parts. The new APIs are accessible to applications when running on
the new platform and, as mentioned above, also when running on later versions of
the platform, as specified by API Level. Conversely, because earlier versions of
the platform do not include the new APIs, applications that use the new APIs are
unable to run on those platforms.</p>

<p>Although it's unlikely that an Android-powered device would be downgraded to
a previous version of the platform, it's important to realize that there are
likely to be many devices in the field that run earlier versions of the
platform. Even among devices that receive OTA updates, some might lag and
might not receive an update for a significant amount of time. </p>

<h3 id="platform">Selecting a platform version and API Level</h3>

<p>When you are developing your application, you will need to choose
the platform version against which you will compile the application. In
general, you should compile your application against the lowest possible
version of the platform that your application can support.

<p>You can determine the lowest possible platform version by compiling the
application against successively lower build targets. After you determine the
lowest version, you should create an AVD using the corresponding platform
version (and API Level) and fully test your application. Make sure to declare a
<code>android:minSdkVersion</code> attribute in the application's manifest and
set its value to the API Level of the platform version. </p>

<h3 id="apilevel">Declaring a minimum API Level</h3>

<p>If you build an application that uses APIs or system features introduced in
the latest platform version, you should set the
<code>android:minSdkVersion</code> attribute to the API Level of the latest
platform version. This ensures that users will only be able to install your
application if their devices are running a compatible version of the Android
platform. In turn, this ensures that your application can function properly on
their devices. </p>

<p>If your application uses APIs introduced in the latest platform version but
does <em>not</em> declare a <code>android:minSdkVersion</code> attribute, then
it will run properly on devices running the latest version of the platform, but
<em>not</em> on devices running earlier versions of the platform. In the latter
case, the application will crash at runtime when it tries to use APIs that don't
exist on the earlier versions.</p>

<h3 id="testing">Testing against higher API Levels</h3>

<p>After compiling your application, you should make sure to test it on the
platform specified in the application's <code>android:minSdkVersion</code>
attribute. To do so, create an AVD that uses the platform version required by
your application. Additionally, to ensure forward-compatibility, you should run
and test the application on all platforms that use a higher API Level than that
used by your application. </p>

<p>The Android SDK includes multiple platform versions that you can use,
including the latest version, and provides an updater tool that you can use to
download other platform versions as necessary. </p>

<p>To access the updater, use the <code>android</code> command-line tool,
located in the &lt;sdk&gt;/tools directory. You can launch the SDK updater by
executing <code>android sdk</code>. You can
also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
In ADT, you can also access the updater by selecting
<strong>Window</strong>&nbsp;>&nbsp;<strong>Android SDK
Manager</strong>.</p>

<p>To run your application against different platform versions in the emulator,
create an AVD for each platform version that you want to test. For more
information about AVDs, see <a
href="{@docRoot}tools/devices/index.html">Creating and Managing Virtual Devices</a>. If
you are using a physical device for testing, ensure that you know the API Level
of the Android platform it runs. See the table at the top of this document for
a list of platform versions and their API Levels. </p>

<h2 id="provisional">Using a Provisional API Level</h2>

<p>In some cases, an "Early Look" Android SDK platform may be available. To let
you begin developing on the platform although the APIs may not be final, the
platform's API Level integer will not be specified. You must instead use the
platform's <em>provisional API Level</em> in your application manifest, in order
to build applications against the platform. A provisional API Level is not an
integer, but a string matching the codename of the unreleased platform version.
The provisional API Level will be specified in the release notes for the Early
Look SDK release notes and is case-sensitive.</p>

<p>The use of a provisional API Level is designed to protect developers and
device users from inadvertently publishing or installing applications based on
the Early Look framework API, which may not run properly on actual devices
running the final system image.</p>

<p>The provisional API Level will only be valid while using the Early Look SDK
and can only be used to run applications in the emulator. An application using
the provisional API Level can never be installed on an Android device. At the
final release of the platform, you must replace any instances of the provisional
API Level in your application manifest with the final platform's actual API
Level integer.</p>


<h2 id="filtering">Filtering the Reference Documentation by API Level</h2>

<p>Reference documentation pages on the Android Developers site offer a "Filter
by API Level" control in the top-right area of each page. You can use the
control to show documentation only for parts of the API that are actually
accessible to your application, based on the API Level that it specifies in
the <code>android:minSdkVersion</code> attribute of its manifest file. </p>

<p>To use filtering, select the checkbox to enable filtering, just below the
page search box. Then set the "Filter by API Level" control to the same API
Level as specified by your application. Notice that APIs introduced in a later
API Level are then grayed out and their content is masked, since they would not
be accessible to your application. </p>

<p>Filtering by API Level in the documentation does not provide a view
of what is new or introduced in each API Level &mdash; it simply provides a way
to view the entire API associated with a given API Level, while excluding API
elements introduced in later API Levels.</p>

<p>If you decide that you don't want to filter the API documentation, just
disable the feature using the checkbox. By default, API Level filtering is
disabled, so that you can view the full framework API, regardless of API Level.
</p>

<p>Also note that the reference documentation for individual API elements
specifies the API Level at which each element was introduced. The API Level
for packages and classes is specified as "Since &lt;api level&gt;" at the
top-right corner of the content area on each documentation page. The API Level
for class members is specified in their detailed description headers,
at the right margin. </p>









