page.title=Getting Started with the Android 3.0 Preview @jd:body

Welcome to Android 3.0!

Android 3.0 is the next major release of the Android platform and is optimized for larger screen devices, particularly tablets. We're offering a preview SDK so you can get a head-start developing applications for it or simply test and optimize your existing application for upcoming devices.

Be aware that:

How do I start?

  1. Set up the preview SDK
  2. Then choose your app adventure:
    1. Optimize Your App for Tablets and Similar Devices

      When you have an existing application and you want to maintain compatibility with older versions of Android.

    2. Upgrade or Develop a New App for Tablets and Similar Devices

      When you want to upgrade your application to use APIs introduced in Android 3.0 or create a new application targeted to tablets and similar devices.

Code samples

Many of the new features and APIs that are described in the Android 3.0 Platform Preview also have accompanying samples that help you understand how to use them. To get the samples, download them from the SDK repository using the Android SDK Manager. After download the samples are located in <sdk_root>/samples/android-Honeycomb. The list of links below helps you find samples for the features you are interested in:

Set Up the Preview SDK

To start using the Android 3.0 preview SDK, set up your existing Android SDK with the new platform:

(If you don't have an existing SDK, download it now.)

  1. Launch the Android SDK and AVD Manager and install the following:
  2. Create an AVD for tablets: set the target to "Android 3.0 (Preview)" and the skin to "WXGA".

About emulator performance

Because the Android emulator must simulate the ARM instruction set architecture on your computer and the WXGA screen is significantly larger than what the emulator normally handles, emulator performance is much slower than usual.

In particular, initializing the emulator can be slow and can take several minutes, depending on your hardware. When the emulator is booting there is limited user feedback, so please be patient and continue waiting until you see the home screen appear.

Note that you do not need to do a full boot of your emulator each time you rebuild your application — typically you only need to boot at the start of a session. See the Tips section below for information about using Snapshots to cut startup time after first initialization.

We're working hard to resolve the performance issues and it will improve in future releases. Unfortunately, the emulator will perform slowly during your trial with the preview SDK. For the time being, the emulator is still best way to evaluate your application's appearance and functionality on Android 3.0.

Tip: To improve the startup time for the emulator, enable snapshots for the AVD when you create it with the SDK and AVD Manager (there's a checkbox in the GUI). Then, start the AVD from the manager and check Launch from snapshot and Save to snapshot. This way, when you close the emulator, a snapshot of the AVD state is saved and used to quickly relaunch the AVD next time. However, when you choose to save a snapshot, the emulator will be slow to close, so you might want to enable Save to snapshot only for the first time you launch the AVD.

Known issues

The following known issues occur for Android 3.0 AVDs that are loaded in the emulator:

Optimize Your Application for Tablets and Similar Devices

If you've already developed an application for Android, there are a few things you can do to optimize it for a tablet-style experience, without changing the minimum platform version required (you don't need to change the manifest {@code minSdkVersion}).

Note: All Android applications are forward-compatible, so there's nothing you have to do—if your application is a good citizen of the Android APIs, your app should work fine on devices running Android 3.0. However, in order to provide users a better experience when running your app on an Android 3.0 tablet or similar-size device, we recommend that you update your application to adapt to the new system theme and optimize your application for larger screens.

Here's what you can do to optimize your application for tablets running Android 3.0:

  1. Test your current application on Android 3.0
    1. Build your application as-is and install it on your WXGA AVD (created above).
    2. Perform your usual tests to be sure everything works and looks as expected.
  2. Apply the new "holographic" theme to your application
    1. Open your manifest file and update the {@code <uses-sdk>} element to set {@code android:targetSdkVersion} to {@code "Honeycomb"}. For example:
      <manifest ... >
          <uses-sdk android:minSdkVersion="4" 
                    android:targetSdkVersion="Honeycomb" />
          <application ... >
              ...
          <application>
      </manifest>
      

      Note: The API Level value "Honeycomb" is a provisional API Level that is valid only while testing against the preview SDK. You should not publish your application using this API Level. When the final version of the Android 3.0 SDK is made available, you must change this value to the real API Level that will be specified for Android 3.0. For more information, read about Android API Levels.

      By targeting the Android 3.0 platform, the system automatically applies the Holographic theme to each of your activities, when running on an Android 3.0 device.

    2. Continue to build against your application's {@code minSdkVersion}, but install it on the Android 3.0 AVD. Perform more testing on your application to be sure that your user interface works well with the Holographic theme.

      Note: If you've applied themes to your activities already, they will override the Holographic theme that the system applies when you set the {@code android:targetSdkVersion} to {@code "Honeycomb"}. Once the Android 3.0 APIs are finalized and an official API Level is assigned, you can use the system version qualifier to provide an alternative theme that's based on the Holographic theme when your application is running on Android 3.0.

  3. Supply alternative layout resources for xlarge screens

    As discussed in the guide to Supporting Multiple Screens, Android 2.3 and above support the xlarge resource qualifier, which you should use to supply alternative layouts for extra large screens.

    By providing alternative layouts for some of your activities when running on extra large screens, you can improve the user experience of your application on a tablet without using any new APIs.

    For example, here are some things to consider when creating a new layout for tables:

In general, always be sure that your application follows the Best Practices for Screen Independence.

Upgrade or Develop a New App for Tablets and Similar Devices

If you want to develop something truly for tablet-type devices running Android 3.0, then you need to use new APIs available in Android 3.0. This section introduces some of the new features that you should use.

The first thing to do when you create a project with the Android 3.0 preview is set the {@code <uses-sdk>} element to use {@code "Honeycomb"} for the {@code android:minSdkVersion}. For example:

<manifest ... >
    <uses-sdk android:minSdkVersion="Honeycomb" />
    <application ... >
        ...
    <application>
</manifest>

Note: The API Level value "Honeycomb" is a provisional API Level that is valid only while building and testing against the preview SDK. You cannot publish your application using this API Level. When the final version of the Android 3.0 SDK is made available, you must change this value to the real API Level that is specified for Android 3.0. For more information, read about Android API Levels.

Be sure that the {@code <uses-sdk>} element appears before the {@code <application>} element.

By targeting the Android 3.0 platform (and declaring it before {@code <application>}), the system automatically applies the new Holographic theme to each of your activities.

Publishing your app for tablet-type devices only

Additionally, you should decide whether your application is for only tablet devices (specifically, xlarge devices) or for devices of all sizes that may run Android 3.0.

If your application is only for tablets (xlarge screens; not for mobile devices/phones), then you should include the {@code <supports-screens>} element in your manifest with all sizes except for xlarge declared false. For example:

<manifest ... >
    <uses-sdk android:minSdkVersion="Honeycomb" />
    <supports-screens android:smallScreens="false"
                      android:normalScreens="false"
                      android:largeScreens="false"
                      android:xlargeScreens="true" />
    <application ... >
        ...
    <application>
</manifest>

With this declaration, you indicate that your application does not support any screen size except extra large. External services such as Android Market may use this to filter your application from devices that do not have an extra large screen.

Otherwise, if you want your application to be available to both small devices (phones) and large devices (tablets), do not include the {@code <supports-screens>} element.

To learn more about some of the new APIs, see the Android 3.0 Platform Preview document.