Android 2.3.3 Platform

API Level: 10

Android 2.3.3 is a small feature release that adds several improvements and APIs to the Android 2.3 platform.

For developers, the Android 2.3.3 platform is available as a downloadable component for the Android SDK. The downloadable platform includes an Android library and system image, as well as a set of emulator skins and more. The downloadable platform includes no external libraries.

To get started developing or testing against Android 2.3.3, use the Android SDK Manager to download the platform into your SDK. For more information, see Adding SDK Components. If you are new to Android, download the SDK Starter Package first.

For a high-level introduction to Android 2.3, see the Platform Highlights.

Revisions

The sections below provide notes about successive releases of the Android 2.3.3 platform component for the Android SDK, as denoted by revision number. To determine what revision(s) of the Android 2.3.3 platforms are installed in your SDK environment, refer to the "Installed Packages" listing in the Android SDK and AVD Manager.

Android 2.3.3, Revision 2 (July 2011)

Dependencies:

Requires SDK Tools r12 or higher.

Notes:

Improvements to the platform's rendering library to support the visual layout editor in the ADT Eclipse plugin. This revision allows for more drawing features in ADT and fixes several bugs in the previous rendering library. It also unlocks several editor features that were added in ADT 12.

Android 2.3.3, Revision 1 (February 2011)

Dependencies:

Requires SDK Tools r9 or higher.

API Overview

The sections below provide a technical overview of what's new for developers in 2.3.3, including new features and changes in the framework API since the previous version.

Near Field Communications (NFC)

Android 2.3.3 provides improved and extended support for NFC, to allow applications to interact with more types of tags in new ways.

A new, comprehensive set of APIs give applications read and write access to a wider range of standard tag technologies, including:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • MIFARE Classic
  • MIFARE Ultralight
  • NFC Forum NDEF tags

The platform also provides a limited peer-to-peer communication protocol and API. Foreground Activities can use the API to register an NDEF message that will get pushed to other NFC devices when they connect.

Advanced tag dispatching now gives applications more control over how and when they are launched, when an NFC tag is discovered. Previously, the platform used a single-step intent dispatch to notify interested applications that a tag was discovered. The platform now uses a four-step process that enables the foreground application to take control of a tag event before it is passed to any other applications (android.nfc.NfcAdapter.enableForegroundDispatch()). The new dispatch process also lets apps listen for specific tag content and tag technologies, based on two new intent actions — android.nfc.action.NDEF_DISCOVERED and android.nfc.action.TECH_DISCOVERED.

The NFC API is available in the android.nfc and android.nfc.tech packages. The key classes are:

  • NfcAdapter, which represents the NFC hardware on the device.
  • NdefMessage, which represents an NDEF data message, the standard format in which "records" carrying data are transmitted between devices and tags. An NDEF message certain many NDEF records of different types. Applications can receive these messages from NDEF_DISCOVERED, TECH_DISCOVERED, or TAG_DISCOVERED Intents.
  • NdefRecord, delivered in an NdefMessage, which describes the type of data being shared and carries the data itself.
  • Tag, which represents a tag scanned by the device. Multiple types of tags are supported, based on the underlying tag technology.
  • TagTechnology, an interface that gives applications access to tag properties and I/O operations based on the technologies present in the tag. For a full list of tag technologies supported in Android 2.3.3, see android.nfc.tech.

NFC communication relies on wireless technology in the device hardware, and is not present in all Android devices. Android devices that do not support NFC will return a null object when getDefaultAdapter(Context) is called, and context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) will return false. The NFC API is always present, however, regardless of underlying hardware support.

To use the NFC API, applications must request permission from the user by declaring <uses-permission android:name="android.permission.NFC"> in their manifest files.

Additionally, developers can request filtering on Google Play, such that their applications are not discoverable to users whose devices do not support NFC. To request filtering, add <uses-feature android:name="android.hardware.nfc" android:required="true"> to the application's manifest.

To look at sample code for NFC, see NFCDemo app, filtering by tag technology, using foreground dispatch, and foreground NDEF push (P2P).

Bluetooth

Android 2.3.3 adds platform and API support for Bluetooth nonsecure socket connections. This lets applications communicate with simple devices that may not offer a UI for authentication. See createInsecureRfcommSocketToServiceRecord(java.util.UUID) and listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) for more information.

Graphics

  • A new BitmapRegionDecoder class lets applications decode a rectangle region from an image. The API is particularly useful when an original image is large and and the application only need parts of the image.
  • A new inPreferQualityOverSpeed field in BitmapFactory.Options allows applications to use a more accurate but slightly slower IDCT method in JPEG decode. This in turn improves the quality of the reconstructed image.

Media framework

Speech recognition

The speech-recognition API includes new constants to let you manage voice search results in new ways. Although the new constants are not needed for normal use of speech recognition, you could use them to offer a different view of voice search results in your application. For information, see RecognizerResultsIntent.

API Level

The Android 2.3.3 platform delivers an updated version of the framework API. The Android 2.3.3 API is assigned an integer identifier — 10 — 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.

To use APIs introduced in Android 2.3.3 in your application, you need compile the application against the Android library that is provided in the Android 2.3.3 SDK platform. Depending on your needs, you might also need to add an android:minSdkVersion="10" attribute to the <uses-sdk> element in the application's manifest. If your application is designed to run only on Android 2.3 and higher, declaring the attribute prevents the application from being installed on earlier versions of the platform.

For more information about how to use API Level, see the API Levels document.

Built-in Applications

The system image included in the downloadable platform provides these built-in applications:

  • Browser
  • Calculator
  • Camera
  • Clock
  • Contacts
  • Cusom Locale
  • Dev Tools
  • Downloads
  • Email
  • Gallery
  • IMEs for Japanese, Chinese, and Latin text input
  • Messaging
  • Music
  • Phone
  • Search
  • Settings
  • Spare Parts (developer app)
  • Speech Recorder

Locales

The system image included in the downloadable SDK platform provides a variety of built-in locales. In some cases, region-specific strings are available for the locales. In other cases, a default version of the language is used. The languages that are available in the Android 2.3.3 system image are listed below (with language_country/region locale descriptor).

  • Arabic, Egypt (ar_EG)
  • Arabic, Israel (ar_IL)
  • Bulgarian, Bulgaria (bg_BG)
  • Catalan, Spain (ca_ES)
  • Czech, Czech Republic (cs_CZ)
  • Danish, Denmark(da_DK)
  • German, Austria (de_AT)
  • German, Switzerland (de_CH)
  • German, Germany (de_DE)
  • German, Liechtenstein (de_LI)
  • Greek, Greece (el_GR)
  • English, Australia (en_AU)
  • English, Canada (en_CA)
  • English, Britain (en_GB)
  • English, Ireland (en_IE)
  • English, India (en_IN)
  • English, New Zealand (en_NZ)
  • English, Singapore(en_SG)
  • English, US (en_US)
  • English, South Africa (en_ZA)
  • Spanish (es_ES)
  • Spanish, US (es_US)
  • Finnish, Finland (fi_FI)
  • French, Belgium (fr_BE)
  • French, Canada (fr_CA)
  • French, Switzerland (fr_CH)
  • French, France (fr_FR)
  • Hebrew, Israel (he_IL)
  • Hindi, India (hi_IN)
  • Croatian, Croatia (hr_HR)
  • Hungarian, Hungary (hu_HU)
  • Indonesian, Indonesia (id_ID)
  • Italian, Switzerland (it_CH)
  • Italian, Italy (it_IT)
  • Japanese (ja_JP)
  • Korean (ko_KR)
  • Lithuanian, Lithuania (lt_LT)
  • Latvian, Latvia (lv_LV)
  • Norwegian-Bokmol, Norway(nb_NO)
  • Dutch, Belgium (nl_BE)
  • Dutch, Netherlands (nl_NL)
  • Polish (pl_PL)
  • Portuguese, Brazil (pt_BR)
  • Portuguese, Portugal (pt_PT)
  • Romanian, Romania (ro_RO)
  • Russian (ru_RU)
  • Slovak, Slovakia (sk_SK)
  • Slovenian, Slovenia (sl_SI)
  • Serbian (sr_RS)
  • Swedish, Sweden (sv_SE)
  • Thai, Thailand (th_TH)
  • Tagalog, Philippines (tl_PH)
  • Turkish, Turkey (tr_TR)
  • Ukrainian, Ukraine (uk_UA)
  • Vietnamese, Vietnam (vi_VN)
  • Chinese, PRC (zh_CN)
  • Chinese, Taiwan (zh_TW)
  • Note: The Android platform may support more locales than are included in the SDK system image. All of the supported locales are available in the Android Open Source Project.

    Emulator Skins

    The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are:

    • QVGA (240x320, low density, small screen)
    • WQVGA400 (240x400, low density, normal screen)
    • WQVGA432 (240x432, low density, normal screen)
    • HVGA (320x480, medium density, normal screen)
    • WVGA800 (480x800, high density, normal screen)
    • WVGA854 (480x854 high density, normal screen)

    For more information about how to develop an application that displays and functions properly on all Android-powered devices, see Supporting Multiple Screens.

    ↑ Go to top