| page.title=Exploring the SDK | |
| excludeFromSuggestions=true | |
| walkthru=1 | |
| @jd:body | |
| <p>The Android SDK is composed of modular packages that you can download separately using | |
| the Android SDK Manager. For example, when the SDK Tools are updated or a new version of | |
| the Android platform is released, you can use the SDK Manager to quickly download them to | |
| your environment. Simply follow the procedures described in <a | |
| href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms and Packages</a>.</p> | |
| <p>There are several different packages available for the Android SDK. The table below describes | |
| most of the available packages and where they're located once you download them.</p> | |
| <h2 id="Packages">Available Packages</h2> | |
| <table> | |
| <tr><th>Package</th><th>Description</th><th>File Location</th></tr> | |
| <tr> | |
| <td><a href="{@docRoot}tools/sdk/tools-notes.html">SDK Tools</a></td> | |
| <td>Contains tools for debugging and testing, plus other | |
| utilities that are required to develop an app. If you've just installed the SDK starter package, | |
| then you already have the latest version of this package. Make sure you keep this up to date.</td> | |
| <td>{@code <sdk>/tools/}</td></tr> | |
| <tr><td>SDK Platform-tools</td> | |
| <td>Contains platform-dependent tools for developing and debugging | |
| your application. These tools support the latest features of the Android platform and are typically | |
| updated only when a new platform becomes available. These tools are always backward compatible with | |
| older platforms, but you must be sure that you have the latest version of these tools when you | |
| install a new SDK platform.</td> | |
| <td>{@code <sdk>/platform-tools/}</td> | |
| </tr> | |
| <tr> | |
| <td>Documentation</td> | |
| <td>An offline copy of the latest documentation for the Android | |
| platform APIs.</td> | |
| <td>{@code <sdk>/docs/}</td> | |
| </tr> | |
| <tr><td>SDK Platform</td> | |
| <td>There's one SDK Platform available for each version of Android. It includes an {@code | |
| android.jar} file with a fully compliant Android library. In order to build an Android app, you must | |
| specify an SDK platform as your build target.</td> | |
| <td>{@code <sdk>/platforms/<android-version>/}</td> | |
| </tr> | |
| <tr> | |
| <td>System Images</td> | |
| <td>Each platform version offers one or more different system images (such as for ARM | |
| and x86). The Android emulator requires a system image to operate. You should always test your | |
| app on the latest version of Android and using the emulator with the latest system image is a | |
| good way to do so.</td> | |
| <td>{@code <sdk>/platforms/<android-version>/}</td> | |
| </tr> | |
| <tr> | |
| <td>Sources for Android SDK</td> | |
| <td>A copy of the Android platform source code that's useful for | |
| stepping through the code while debugging your app.</td> | |
| <td>{@code <sdk>/sources/}</td> | |
| </tr> | |
| <tr> | |
| <td><a href="{@docRoot}tools/samples/index.html">Samples for SDK</a></td> | |
| <td>A collection of sample apps that demonstrate a variety of the | |
| platform APIs. These are a great resource to browse Android app code. The API Demos app in | |
| particular provides a huge number of small demos you should explore.</td> | |
| <td>{@code <sdk>/platforms/<android-version>/samples/}</td> | |
| </tr> | |
| <tr> | |
| <td><a href="http://developers.google.com/android">Google APIs</a></td> | |
| <td>An SDK add-on that provides both a platform you can use to develop an app | |
| using special Google APIs and a system image for the emulator so you can test your app using the | |
| Google APIs.</td> | |
| <td>{@code <sdk>/add-ons/}</td> | |
| </tr> | |
| <tr> | |
| <td><a href="{@docRoot}tools/extras/support-library.html">Android Support</a></td> | |
| <td>A static library you can include in your app sources in order to use powerful | |
| APIs that aren't available in the standard platform. For example, the support library | |
| contains versions of the {@link android.support.v4.app.Fragment} class that's compatible with | |
| Android 1.6 and higher (the class was originally introduced in Android 3.0) and the {@link | |
| android.support.v4.view.ViewPager} APIs that allow you to easily build a side-swipeable UI.</td> | |
| <td>{@code <sdk>/extras/android/support/}</td> | |
| </tr> | |
| <tr> | |
| <td><a href="{@docRoot}google/play/billing/index.html">Google Play Billing</a></td> | |
| <td>Provides the static libraries and samples that allow you to | |
| integrate billing services in your app with Google Play.</td> | |
| <td>{@code <sdk>/extras/google/}</td> | |
| </tr> | |
| <tr> | |
| <td><a href="{@docRoot}google/play/licensing/index.html">Google Play Licensing</a></td> | |
| <td>Provides the static libraries and samples that allow you to perform license verification for | |
| your app when distributing with Google Play.</td> | |
| <td>{@code <sdk>/extras/google/}</td> | |
| </tr> | |
| </table> | |
| <p>The above table is not comprehensive and you can <a | |
| href="#AddingSites">add new sites</a> to download additional packages from third-parties.</p> | |
| <p>In some cases, an SDK package may require a specific minimum revision of | |
| another package or SDK tool. For example, there may be a dependency between the ADT Plugin for | |
| Eclipse and | |
| the SDK Tools package. When you install the SDK Tools | |
| package, you should also upgrade to the required version of ADT (if you | |
| are developing in Eclipse). In this case, the major version number for your ADT plugin should | |
| always match the revision number of your SDK Tools (for example, ADT 8.x requires SDK Tools r8). | |
| </p> | |
| <p>The development tools will notify you with debug warnings if there is dependency that you need to | |
| address. The Android SDK Manager also enforces dependencies by requiring that you download any | |
| packages that are needed by those you have selected.</p> | |
| <h2 id="AddingSites">Adding New Sites</h2> | |
| <p>By default, <strong>Available Packages</strong> displays packages available from the | |
| <em>Android Repository</em> and <em>Third party Add-ons</em>. You can add other sites that host | |
| their own Android SDK add-ons, then download the SDK add-ons | |
| from those sites.</p> | |
| <p>For example, a mobile carrier or device manufacturer might offer additional | |
| API libraries that are supported by their own Android-powered devices. In order | |
| to develop using their libraries, you must install their Android SDK add-on, if it's not already | |
| available under <em>Third party Add-ons</em>. </p> | |
| <p>If a carrier or device manufacturer has hosted an SDK add-on repository file | |
| on their web site, follow these steps to add their site to the Android SDK | |
| Manager:</p> | |
| <ol> | |
| <li>Select <strong>Available Packages</strong> in the left panel.</li> | |
| <li>Click <strong>Add Add-on Site</strong> and enter the URL of the | |
| <code>repository.xml</code> file. Click <strong>OK</strong>.</li> | |
| </ol> | |
| <p>Any SDK packages available from the site will now be listed under a new item named | |
| <strong>User Add-ons</strong>.</p> | |
| <h2 id="troubleshooting">Troubleshooting</h2> | |
| <p><strong>Problems connecting to the SDK repository</strong></p> | |
| <p>If you are using the Android SDK Manager to download packages and are encountering | |
| connection problems, try connecting over http, rather than https. To switch the | |
| protocol used by the Android SDK Manager, follow these steps: </p> | |
| <ol> | |
| <li>With the Android SDK Manager window open, select "Settings" in the | |
| left pane. </li> | |
| <li>On the right, in the "Misc" section, check the checkbox labeled "Force | |
| https://... sources to be fetched using http://..." </li> | |
| <li>Click <strong>Save & Apply</strong>.</li> | |
| </ol> | |