page.title=Using the Support Library
page.tags=support library

trainingnavtop=true

@jd:body

<div id="tb-wrapper">
  <div id="tb"> 
    <h2>This lesson teaches you to</h2>
    <ol>
      <li><a href="#Setup">Set Up Your Project with the Support Library</a></li>
      <li><a href="#Apis">Import the Support Library APIs</a></li>
    </ol>
    <h2>You should also read</h2>
    <ul>
      <li><a href="{@docRoot}tools/support-library/index.html">Support Library</a></li>
    </ul>
  </div>
</div>

<p>The Android <a href="{@docRoot}tools/support-library/index.html">Support Library</a> provides a JAR
file with an API library that allows you to use some of the more recent Android APIs in your app
while running on earlier versions of Android. For instance, the Support Library provides a version
of the {@link android.app.Fragment} APIs that you can use on Android 1.6 (API level 4) and
higher.</p>

<p>This lesson shows how to set up your app to use the Support Library in order to use fragments
to build a dynamic app UI.</p>


<h2 id="Setup">Set Up Your Project with the Support Library</h2>

<div class="figure" style="width:527px">
<img src="{@docRoot}images/training/basics/sdk-manager.png" alt="" />
<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager with the
Android Support package selected.</p>
</div>

<p>To set up your project:</p>

<ol>
  <li>Download the Android Support package using the SDK Manager.</li>

  <li>Create a <code>libs</code> directory at the top level of your Android project.</li>
  <li>Locate the JAR file for the library you want to use and copy it into the <code>libs/</code>
directory.
<p>For example, the library that supports API level 4 and up is located at
<code>&lt;sdk>/extras/android/support/v4/android-support-v4.jar</code>.</p></li>
  <li>Update your manifest file to set the minimum API level to <code>4</code> and the target
API level to the latest release:
  <pre>&lt;uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /></pre>
  </li>
</ol>


<h2 id="Apis">Import the Support Library APIs</h2>

<p>The Support Library includes a variety of APIs that were either added in recent versions of
Android or don't exist in the platform at all and merely provide additional support to you when
developing specific application features.</p>

<p>You can find all the API reference documentation for the Support Library in the
platform docs at {@link android.support.v4.app android.support.v4.*}.</p>

<div class="warning"><p><strong>Warning:</strong> To be sure that you don't accidentally use new
APIs on an older system version, be certain that you import the {@link
android.support.v4.app.Fragment} class and related APIs from the {@link android.support.v4.app}
package:</p>
<pre>
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
...
</pre>
</div>


<p>When creating an activity that hosts fragments while using the Support Library, you must also
extend the {@link android.support.v4.app.FragmentActivity} class instead of the traditional {@link
android.app.Activity} class. You'll see sample code for the fragment and activity in the next
lesson.</p>

