page.title=Android 1.1 Version Notes sdk.version=1.1_r1 sys.date=February 2009 @jd:body

Date: February 2009
API Level: 2

This document provides version notes for the Android 1.1 system image included in the SDK.

Overview

The Android 1.1 system image delivered in the SDK is the development counterpart to the Android 1.1 production system image, deployable to Android-powered handsets starting in February 2009.

The Android 1.1 system image delivers an updated version of the framework API. As with the Android 1.0 API, the Android 1.1 API is assigned an integer identifier — 2 — that is stored in the system itself. This identifier, called the "API Level", allows the system to correctly determine whether an application is compatible with the system, prior to installing the application.

Applications can reference a specific API Level value in their manifest files, to indicate the minimum version of the Android system required to run the app. To reference a minimum API Level, applications can add a minSdkVersion attribute in their manifest files. The value of the attribute is an integer corresponding to an API Level identifier. Prior to installing an application, the system then checks the value of minSdkVersion and allows the install only if the referenced integer is less than or equal to the API Level integer stored in the system itself.

If you use the Android 1.1 system image to build an application compatible with Android-powered devices running the Android 1.1 platform, please note that you must set the the android:minSdkVersion attribute in the application's manifest to "2", which is the API strictly associated with Android 1.1.

Specifically, you specify the android:minSdkVersion attribute in a <uses-sdk> element as a child of <manifest> in the manifest file. When set, the attribute looks like this:

<manifest>
  ...
  <uses-sdk minSdkVersion="2" />
  ...
</manifest>

By setting android:minSdkVersion in this way, you ensure that users will only be able to install your application if their devices are running the Android 1.1 platform. In turn, this ensures that your application will function properly on their devices, especially if it uses APIs introduced in Android 1.1.

If your application uses APIs introduced in Android 1.1 but does not declare <uses-sdk minSdkVersion="2" />, then it will run properly on Android 1.1 devices but not on Android 1.0 devices. In the latter case, the application will crash at runtime when it tries to use the Android 1.1 APIs.

If your application does not use any new APIs introduced in Android 1.1, you can indicate Android 1.0 compatibility by removing minSdkVersion or setting the attribute to "1". However, before publishing your application, you must make sure to compile your application against the Android 1.0 system image (available in the Android 1.0 SDK), to ensure that it builds and functions properly for Android 1.0 devices. You should test the application against system images corresponding to the API Levels that the application is designed to be compatible with.

If you are sure your application is not using Android 1.1 APIs and has no need to use them, you might find it easier to keep working in the Android 1.0 SDK, rather than migrating to the Android 1.1 SDK and having to do additional testing.

External Libraries

The system image includes these external libraries, which you can access from your application by adding a <uses-library>.

Device Compatibility

The Android 1.1 system image was tested for compatability with the Android-powered devices listed below:

Built-in Applications

The system image includes these built-in applications:

UI Localizations

The system image provides localized UI strings for the languages listed below.

Localized UI strings match the locales that are displayable in the emulator, accessible through the device Settings application.

Resolved Issues

New Features

API Changes

Overview

API Change Details

Module or FeatureChange Description
Annotations for test systems
Added {@link android.test.suitebuilder.annotation.LargeTest LargeTest} annotation.
Added {@link android.test.suitebuilder.annotation.MediumTest MediumTest} annotation.
Added {@link android.test.suitebuilder.annotation.SmallTest SmallTest} annotation.
Allow a process to easily know its UID.
Added public method {@link android.os.Process#myUid} to class {@link android.os.Process android.os.Process}
Padding in views
Added public method {@link android.view.View#getBottomPaddingOffset} to class {@link android.view.View android.view.View}.
Added public method {@link android.view.View#getLeftPaddingOffset} to class {@link android.view.View android.view.View}.
Added public method {@link android.view.View#getRightPaddingOffset} to class {@link android.view.View android.view.View}.
Added public method {@link android.view.View#getTopPaddingOffset} to class {@link android.view.View android.view.View}.
Added public method {@link android.view.View#isPaddingOffsetRequired} to class {@link android.view.View android.view.View}.
Marquee support
Added public method {@link android.widget.TextView#setMarqueeRepeatLimit} to class {@link android.widget.TextView}
Added public field {@link android.R.attr#marqueeRepeatLimit android.R.attr.marqueeRepeatLimit}
New permissions
Added public field {@link android.Manifest.permission#BROADCAST_SMS android.Manifest.permission.BROADCAST_SMS}
Added public field {@link android.Manifest.permission#BROADCAST_WAP_PUSH android.Manifest.permission.BROADCAST_WAP_PUSH}
API cleanup
Removed protected constructor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).