For improved multitasking and instant visual access to a much larger number
+of apps, the Recent Apps list is now expandable. Users can now scroll the list
+of recent apps vertically to see thumbnail images all of the tasks in progress
+and recently used apps, then touch a thumbnail to jump back into that task.
For more flexible Home screen customization, users can now resize their Home
+screen widgets using drag bars provided by the system. Users can expand widgets
+both horizontally and/or vertically to include more content, where supported by
+each widget.
Users can now attach almost any type of external keyboard or mouse to their
+Android-powered devices, to create a familiar environment and work more
+efficiently. One or more input devices can be attached to the system simultaneously
+over USB and/or Bluetooth HID, in any combination. No special configuration or
+driver is needed, in most cases. When multiple devices are connected, users can
+conveniently manage the active keyboard and IME using the keyboard settings that
+are available from the System bar.
For pointing devices, the platform supports most types of mouse with a single
+button and optionally a scroll wheel, as well as similar devices such as
+trackballs. When these are connected, users can interact with the UI using
+point, select, drag, scroll, hover, and other standard actions.
To make the platform even better for gaming, Android 3.1 adds support for
+most PC joysticks and gamepads that are connected over USB or Bluetooth HID.
For example, users can connect Sony Playstation™ 3 and XBox 360™ game
+controllers over USB (but not Bluetooth), Logitech Dual Action™ gamepads and
+flight sticks, or a car racing controller. Game controllers that use proprietary
+networking or pairing are not supported by default, but in general, the platform
+supports most PC-connectible joysticks and gamepads.
Android 3.1 adds robust Wi-Fi features, to make sure that users and their
+apps can take full advantage of higher-speed Wi-Fi access at home, at work, and
+while away.
A new high-performance Wi-Fi lock lets applications maintain
+high-performance Wi-Fi connections even when the device screen is off. Users can
+take advantage of this to play continuous streamed music, video, and voice
+services for long periods, even when the device is otherwise idle and the screen
+is off.
Users can now configure an HTTP proxy for each individual Wi-Fi access
+point, by touch-hold of the access point in Settings. The browser uses the HTTP
+proxy when communicating with the network over the access point and other apps
+may also choose to do so. The platform also provides backup and restore of the
+user-defined IP and proxy settings.
The platform adds support for Preferred Network Offload (PNO), a background
+scanning capability that conserves battery power savings in cases where Wi-Fi
+needs to be available continuously for long periods of time.
The Android 3.1 platform includes an updated set of standard applications
+that are optimized for use on larger screen devices. The sections below
+highlight some of the new features.
The Browser app includes a variety of new features and UI improvements that
+make viewing web content simpler, faster, and more convenient.
The Quick Controls UI, accessible from Browser Settings, is extended and
+redesigned. Users can now use the controls to view thumbnails of open tabs and
+close the active tab, as well as access the overflow menu for instant access to
+Settings and other controls.
To ensure a consistent viewing experience, the Browser extends it's support
+for popular web standards such as CSS 3D, animations, and CSS fixed
+positioning to all sites, mobile or desktop. It also adds support for embedded
+playback of HTML5 video content. To make it easier to manage favorite
+content, users can now save a web page locally for offline viewing, including
+all styling and images. For convenience when visiting Google sites, an improved
+auto-login UI lets users sign in quickly and manage access when multiple users
+are sharing a device.
For best performance, the Browser adds support for plugins that use hardware
+accelerated rendering. Page zoom performance is also dramatically improved,
+making it faster to navigate and view web pages.
The Gallery app now supports Picture Transfer Protocol (PTP), so that users
+can connect their cameras over USB and import their pictures to Gallery with a
+single touch. The app also copies the pictures to local storage and provides an
+indicator to let users see how much space is available.
+

+
Figure
+4. Home screen widgets can now be resized.
+
+
Calendar
+
+
Calendar grids are larger, for better readability and more accurate
+touch-targeting. Additionally, users can create a larger viewing area for grids
+by hiding the calendar list controls. Controls in the date picker are
+redesigned, making them easier to see and use.
+
+
+
Contacts
+
+
The Contacts app now lets you locate contacts more easily using full text
+search. Search returns matching results from all fields that are stored for a
+contact.
+
+
+
Email
+
+
When replying or forwarding an HTML message, The Email app now sends both
+plain text and HTML bodies as a multi-part mime message. This ensures that the
+message will be formatted properly for all recipients. Folder prefixes for IMAP
+accounts are now easier to define and manage. To conserve battery power and
+minimize cell data usage, the application now prefetches email from the server
+only when the device is connected to a Wi-Fi access point.
+
+
An updated Home screen widget give users quick access to more email. Users
+can touch Email icon at the top of the widget to cycle through labels such as
+Inbox, Unread, and Starred. The widget itself is now resizable, both
+horizontally and vertically.
+
+
Enterprise support
+
+
Users can now configure an HTTP proxy for each connected Wi-Fi access point.
+This lets administrators work with users to set a proxy hostname, port, and any
+bypass subdomains. This proxy configuration is automatically used by the Browser
+when the Wi-Fi access point is connected, and may optionally be used by other
+apps. The proxy and IP configuration is now backed up and restored across system
+updates and resets.
+
+
To meet the needs of tablet users, the platform now allows a "encrypted
+storage card" device policy to be accepted on devices with emulated storage
+cards and encrypted primary storage.
+
+
+
New Developer Features
+
+
The Android 3.1 platform adds refinements and new capabilities that
+developers can build on, to create powerful and engaging application experiences
+on tablets and other large-screen devices.
+
+
Open Accessory API for rich interaction with
+peripherals
+
+
Android 3.1 introduces a new API for integrating hardware accessories with
+applications running on the platform. The API provides a way to interact across
+a wide range of peripherals, from robotics controllers to musical equipment,
+exercise bicycles, and more.
+
+
The API is based on a new USB (Universal Serial Bus) stack and services
+that are built into the platform. The platform provides services for discovering
+and identifying connected hardware, as well as for notifying interested
+applications that the hardware is available.
+
+
When a user plugs in a USB accessory, the platform receives
+identifying information such as product name, accessory type, manufacturer, and
+version. The platform sets up communication with the accessory and uses its
+information to notify and launch a targeted app, if one is available. Optionally,
+an accessory can provide a URL that lets users find and download an
+app that works with the accessory. These discovery features make
+first-time setup easier for the user and ensure that an appropriate application
+is available for interacting with the connected hardware.
+
+
For application developers and accessory manufacturers, accessory mode offers
+many new ways to engage users and build powerful interaction experiences with
+connected hardware.
+
+
To learn more about how to develop applications that interact with
+accessories, see the USB
+Accessory documentation.
+
+
USB host API
+
+
Android 3.1 provides built-in platform support for USB host mode and exposes
+an API that lets applications manage connected peripherals. On devices that
+support host mode, applications can use the API to identify and communicate with
+connected devices such as audio devices. input devices, communications devices,
+hubs, cameras, and more.
+
+
To learn more about how to develop applications that interact with
+USB devices, see the USB
+Host documentation.
+
+
+
+
Android 3.1 extends the input event system to support a variety of new input
+sources and motion events, across all views and windows. Developers can build on
+these capabilities to let users interact with their applications using mice,
+trackballs, joysticks, gamepads, and other devices, in addition to keyboards and
+touchscreens.
+
+
For mouse and trackball input, the platform supports two new motion event
+actions: scroll (horizontal or vertical) such as from a scrollwheel; and hover,
+which reports the location of the mouse when no buttons are pressed.
+Applications can handle these events in any way needed.
+
+
For joysticks and gamepads, the platform provides a large number of motion
+axes that applications can use from a given input source, such as X, Y, Hat X,
+Hat Y, rotation, throttle, pressure, size, touch, tool, orientation, and others.
+Developers can also define custom axes if needed, to capture motion in
+additional ways. The platform provides motion events to applications as a batch,
+and applications can query the details of the movements included in the batch,
+for more efficient and precise handling of events.
+
+
Applications can query for the list of connected input devices and the motion
+ranges (axes) supported by each device. Applications can also handle multiple
+input and motion events from a single input device. For example, an application
+can use mouse and joystick and mouse event sources from a single input
+device.
+
+
+
+
Developers can now create Home screen widgets that users can resize
+horizontally, vertically, or both. By simply adding an attribute to the
+declaration of a widget, the widget becomes resizable horizontally, vertically,
+or both. This lets users customize the display of the widget content and display
+more of it on their Home screens.
+
+
MTP API for integrating with external cameras
+
+
In Android 3.1, a new MTP (Media Transfer Protocol) API lets developers write
+apps that interact directly with connected cameras and other PTP devices. The
+new API makes it easy for applications to receive notifications when devices are
+attached and removed, manage files and storage on those devices, and transfer
+files and metadata to and from them. The MTP API implements the PTP (Picture
+Transfer Protocol) subset of the MTP specification.
+
+
RTP API, for control over audio streaming sessions
+
+
Android 3.1 exposes an API to its built-in RTP (Real-time Transport Protocol)
+stack, which applications can use to directly manage on-demand or interactive
+data streaming. In particular, apps that provide VOIP, push-to-talk,
+conferencing, and audio streaming can use the API to initiate sessions and
+transmit or receive data streams over any available network.
+
+
+
+
Android 3.1 includes a variety of performance optimizations that help make
+applications faster and more responsive. Some of the optimizations include:
+
+
+- A new LRU cache class lets applications benefit from efficient caching.
+Applications can use the class to reduce the time spent computing or downloading
+data from the network, while maintaining a sensible memory footprint for the
+cached data.
+- The UI framework now supports partial invalidates in hardware-accelerated
+Views, which makes drawing operations in those Views more efficient.
+- A new graphics method, {@link android.graphics.Bitmap#setHasAlpha(boolean)
+setHasAlpha()}, allows apps to hint that a given bitmap is opaque. This provides
+an extra performance boost for some types of blits and is especially useful for
+applications that use ARGB_8888 bitmaps.
+
+
diff --git a/docs/html/sdk/android-3.1.jd b/docs/html/sdk/android-3.1.jd
new file mode 100644
index 0000000000000..57fe1ebc35c98
--- /dev/null
+++ b/docs/html/sdk/android-3.1.jd
@@ -0,0 +1,1053 @@
+page.title=Android 3.1 Platform
+sdk.platform.version=3.1
+sdk.platform.apiLevel=12
+@jd:body
+
+
+
+
+
API Level: {@sdkPlatformApiLevel}
+
+
For developers, the Android {@sdkPlatformVersion} 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 {@sdkPlatformVersion},
+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 {@sdkPlatformVersion}, see the Platform
+Highlights.
+
+
Reminder: If you've already published an
+Android application, please test and optimize your application on Android 3.0
+and Android 3.1 as soon as possible. You should do so to be sure your
+application provides the best experience possible on the latest Android-powered
+devices. For information about what you can do, read Optimizing Apps for
+Android 3.0.
+
+
+
Revisions
+
+
To determine what revision of the Android {@sdkPlatformVersion} platform you
+have installed, refer to the "Installed Packages" listing in the Android SDK and
+AVD Manager.
+
+
+
+
+
+
+ Android {@sdkPlatformVersion}, Revision 1 (May 2011)
+
+
+
+
+
+
+- Dependencies:
+-
+
Requires SDK Tools r11 or
+higher.
+
+
+
+
+
+
+
+
+
API Overview
+
+
The sections below provide a technical overview of what's new for developers
+in Android 3.1, including new features and changes in the framework API since
+the previous version.
+
+
USB APIs
+
+
Android 3.1 introduces powerful new APIs for
+integrating connected peripherals with applications running on the platform.
+The APIs are based on a USB (Universal Serial Bus) stack and services that are
+built into the platform, including support for both USB host and device
+interactions. Using the APIs, developers can create applications that are able to
+discover, communicate with, and manage a variety of device types connected over
+USB.
+
+
The stack and APIs distinguish two basic types of USB hardware, based on
+whether the platform iself is acting as host or the external hardware is acting
+as host:
+
+
+- A USB device is a piece of connected hardware that depends on the
+Android-powered device to serve as host. For example, most input devices, mice,
+and joysticks are USB devices, as are many cameras, hubs, and so on.
+- A USB accessory is a piece of connected hardware that has a USB
+host controller, provides power, and is designed to communicate with
+Android-powered devices over USB, A variety of peripherals can connect as
+accessories, from robotics controllers to musical equipment, exercise bicycles,
+and more.
+
+
+
For both types — USB devices and USB accessories — the
+platform's USB APIs support discovery by intent broadcast when attached or
+detached, as well as standard interfaces, endpoints, and transfer modes
+(control, bulk, and interrupt).
+
+
The USB APIs are available in the package {@link android.hardware.usb}. The
+central class is {@link android.hardware.usb.UsbManager}, which provides
+helper methods for identifying and communicating with
+both USB devices and USB accessories. Applications can acquire an instance of
+{@link android.hardware.usb.UsbManager} and then query for the list of attached
+devices or accessories and then communicate with or manage them.
+{@link android.hardware.usb.UsbManager} also declares intent actions that the
+system broadcasts, to announce when a USB device or accessory is attached or
+detached.
+
+
Other classes include:
+
+
+- {@link android.hardware.usb.UsbDevice}, a class representing external
+hardware connected as a USB device (with the Android-powered device acting as
+host).
+- {@link android.hardware.usb.UsbAccessory}, representing external hardware
+connected as the USB host (with the Android-powered device acting as a USB
+device).
+- {@link android.hardware.usb.UsbInterface} and {@link
+android.hardware.usb.UsbEndpoint}, which provide access to standard USB
+interfaces and endpoints for a device.
+- {@link android.hardware.usb.UsbDeviceConnection} and {@link
+android.hardware.usb.UsbRequest}, for sending and receiving data and control
+messages to or from a USB device, sychronously and asynchronously.
+
- {@link android.hardware.usb.UsbConstants}, which provides constants for
+declaring endpoint types, device classes, and so on.
+
+
+
Note that although the USB stack is built into the platform, actual support
+for USB host and open accessory modes on specific devices is determined by
+their manufacturers. In particular, host mode relies on appropriate USB
+controller hardware in the Android-powered device.
+
+
Additionally, developers can request filtering on Android Market, such that
+their applications are not availabe to users whose devices do not provide the
+appropriate USB support. To request filtering, add one or both of the elements
+below to the application manifest, as appropriate:
+
+
+
+
For complete information about how to develop applications that interact with
+USB accessories, please see the
+developer documentation.
+
+
To look at sample applications that use the USB host API, see ADB Test and Missile
+Launcher
+
+
MTP/PTP API
+
+
Android 3.1 exposes a new MTP API that lets applications interact directly
+with connected cameras and other PTP devices. The new API makes it easy for an
+application to receive notifications when devices are attached and removed,
+manage files and storage on those devices, and transfer files and metadata to
+and from them. The MTP API implements the PTP (Picture Transfer Protocol) subset
+of the MTP (Media Transfer Protocol) specification.
+
+
The MTP API is available in the {@link android.mtp} package and provides
+these classes:
+
+
+ - The {@link android.mtp.MtpDevice} encapsulates an MTP device that is
+connected over the USB host bus. An application can instantiate an object of
+this type and then use its methods to get information about the device and
+objects stored on it, as well as opening the connection and transferring data.
+Some of the methods include:
+
+ - {@link android.mtp.MtpDevice#getObjectHandles(int, int, int)
+getObjectHandles()} returns a list of handles for all objects on the device that
+match a specified format and parent. To get information about an object, an
+application can pass a handle to {@link android.mtp.MtpDevice#getObjectInfo(int)
+getObjectInfo()}.
+ - {@link android.mtp.MtpDevice#importFile(int, java.lang.String)
+importFile()} lets an application copy data for an object to a file in external
+storage. This call may block for an arbitrary amount of time depending on the
+size of the data and speed of the devices, so should be made from a spearate
+thread.
+ - {@link
+android.mtp.MtpDevice#open(android.hardware.usb.UsbDeviceConnection) open()}
+lets an application open a connected MTP/PTP device.
+ - {@link android.mtp.MtpDevice#getThumbnail(int) getThumbnail()} returns
+the thumbnail of the object as a byte array.
+
+
+ - {@link android.mtp.MtpStorageInfo} holds information about about a storage
+unit on an MTP device, corresponding to the StorageInfo Dataset described in
+section 5.2.2 of the MTP specification. Methods in the class let an application
+get a storage unit’s description string, free space, maximum storage capacity,
+storage ID, and volume identifier.
+ - {@link android.mtp.MtpDeviceInfo} holds information about an MTP device
+corresponding to the DeviceInfo Dataset described in section 5.1.1 of the MTP
+specification. Methods in the class let applications get a device’s
+manufacturer, model, serial number, and version.
+ - {@link android.mtp.MtpObjectInfo} holds information about an object stored
+on an MTP device, corresponding to the ObjectInfo Dataset described in section
+5.3.1 of the MTP specification. Methods in the class let applications get an
+object’s size, data format, association type, creation date, and thumbnail
+information.
+ - {@link android.mtp.MtpConstants} provides constants for declaring MTP file
+format codes, association type, and protection status.
+
+
+
Support for new input devices and motion events
+
+
Android 3.1 extends the input subsystem to support new input devices and new
+types of motion events, across all views and windows. Developers can build on
+these capabilities to let users interact with their applications using mice,
+trackballs, joysticks, gamepads, and other devices, in addition to keyboards and
+touchscreens.
+
+
For handling mouse, scrollwheel, and trackball input, the platform supports
+two new motion event actions:
+
+- {@link android.view.MotionEvent#ACTION_SCROLL}, which describes the pointer
+location at which a non-touch scroll motion, such as from a mouse scroll wheel,
+took place. In the MotionEvent, the value of the {@link
+android.view.MotionEvent#AXIS_HSCROLL} and {@link
+android.view.MotionEvent#AXIS_VSCROLL} axes specify the relative scroll
+movement.
+- {@link android.view.MotionEvent#ACTION_HOVER_MOVE}, reports the current
+position of the mouse when no buttons are pressed, as well as any intermediate
+points since the last
HOVER_MOVE event. Hover enter and exit
+notifications are not yet supported.
+
+
+
To support joysticks and gamepads, the {@link android.view.InputDevice} class
+includes these new input device sources:
+
+- {@link android.view.InputDevice#SOURCE_CLASS_JOYSTICK} — the source
+device has joystick axes.
+- {@link android.view.InputDevice#SOURCE_CLASS_BUTTON} — the source
+device has buttons or keys.
+- {@link android.view.InputDevice#SOURCE_GAMEPAD} — the source device
+has gamepad buttons such as {@link android.view.KeyEvent#KEYCODE_BUTTON_A}
+or {@link android.view.KeyEvent#KEYCODE_BUTTON_B}. Implies
+{@link android.view.InputDevice#SOURCE_CLASS_BUTTON}
+- {@link android.view.InputDevice#SOURCE_JOYSTICK} — the source device
+has joystick axes. Implies SOURCE_CLASS_JOYSTICK.
+
+
+
To describe motion events from these new sources, as well as those from mice
+and trackballs, the platform now defines axis codes on {@link
+android.view.MotionEvent}, similar to how it defines key codes on {@link
+android.view.KeyEvent}. New axis codes for joysticks
+and game controllers include
+{@link android.view.MotionEvent#AXIS_HAT_X}, {@link
+android.view.MotionEvent#AXIS_HAT_Y}, {@link
+android.view.MotionEvent#AXIS_RTRIGGER}, {@link
+android.view.MotionEvent#AXIS_ORIENTATION}, {@link
+android.view.MotionEvent#AXIS_THROTTLE}, and many others.
+Existing {@link android.view.MotionEvent} axes are represented by {@link
+android.view.MotionEvent#AXIS_X}, {@link android.view.MotionEvent#AXIS_Y},
+{@link android.view.MotionEvent#AXIS_PRESSURE}, {@link
+android.view.MotionEvent#AXIS_SIZE}, {@link
+android.view.MotionEvent#AXIS_TOUCH_MAJOR}, {@link
+android.view.MotionEvent#AXIS_TOUCH_MINOR}, {@link
+android.view.MotionEvent#AXIS_TOOL_MAJOR}, {@link
+android.view.MotionEvent#AXIS_TOOL_MINOR}, and {@link
+android.view.MotionEvent#AXIS_ORIENTATION}.
+
+
Additionally, {@link android.view.MotionEvent} defines a number of generic
+axis codes that are used when the framework does not know how to map a
+particular axis. Specific devices can use the generic axis codes to pass custom
+motion data to applications. For a full list of axes and their intended
+interpretations, see the {@link android.view.MotionEvent} class documentation.
+
+
+
The platform provides motion events to applications in batches, so a single
+event may contain a current position and multiple so-called historical movements.
+Applications should use {@link android.view.MotionEvent#getHistorySize()} to get
+the number of historical samples, then retrieve and process all historical
+samples in order using {@link
+android.view.MotionEvent#getHistoricalAxisValue(int, int, int)
+getHistoricalAxisValue()}. After that, applications should process the current
+sample using {@link android.view.MotionEvent#getAxisValue(int) getAxisValue()}.
+
+
+
Some axes can be retrieved using special accessor methods. For example,
+instead of calling {@link android.view.MotionEvent#getAxisValue(int)
+getAxisValue()}, applications can call {@link android.view.MotionEvent#getX(int)
+getX()}. Axes that have built-in accessors include {@link
+android.view.MotionEvent#AXIS_X}, {@link android.view.MotionEvent#AXIS_Y},
+{@link android.view.MotionEvent#AXIS_PRESSURE}, {@link
+android.view.MotionEvent#AXIS_SIZE}, {@link
+android.view.MotionEvent#AXIS_TOUCH_MAJOR}, {@link
+android.view.MotionEvent#AXIS_TOUCH_MINOR}, {@link
+android.view.MotionEvent#AXIS_TOOL_MAJOR}, {@link
+android.view.MotionEvent#AXIS_TOOL_MINOR}, and {@link
+android.view.MotionEvent#AXIS_ORIENTATION}.
+
+
Each input device has a unique, system-assigned ID and may also provide
+multiple sources. When a device provides multiple sources, more than one source
+can provide axis data using the same axis. For example, a touch event coming
+from the touch source uses the X axis for screen position data, while a joystick
+event coming from the joystick source will use the X axis for the stick position
+instead. For this reason, it's important for applications to interpret axis
+values according to the source from which they originate. When handling a motion
+event, applications should use methods on the {@link android.view.InputDevice}
+class to determine the axes supported by a device or source. Specifically,
+applications can use {@link android.view.InputDevice#getMotionRanges()
+getMotionRanges()} to query for all axes of a device or all axes of a given
+source of the device. In both cases, the range information for axes returned in
+the {@link android.view.InputDevice.MotionRange} object specifies the source for
+each axis value.
+
+
Finally, since the motion events from joysticks, gamepads, mice, and
+trackballs are not touch events, the platform adds a new callback method for
+passing them to a {@link android.view.View} as "generic" motion events.
+Specifically, it reports the non-touch motion events to
+{@link android.view.View}s through a call to {@link
+android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()}, rather than to {@link
+android.view.View#onTouchEvent(android.view.MotionEvent)
+onTouchEvent()}.
+
+
The platform dispatches generic motion events differently, depending on the
+event source class. {@link android.view.InputDevice#SOURCE_CLASS_POINTER} events
+go to the {@link android.view.View} under the pointer, similar to how touch
+events work. All others go to the currently focused {@link android.view.View}.
+For example, this means a {@link android.view.View} must take focus in order to
+receive joystick events. If needed, applications can handle these events at the
+level of Activity or Dialog by implementing {@link
+android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()} there instead.
+
+
To look at a sample application that uses joystick motion
+events, see GameControllerInput and GameView.
+
+
RTP API
+
+
Android 3.1 exposes an API to its built-in RTP (Real-time Transport Protocol)
+stack, which applications can use to manage on-demand or interactive data
+streaming. In particular, apps that provide VOIP, push-to-talk, conferencing,
+and audio streaming can use the API to initiate sessions and transmit or receive
+data streams over any available network.
+
+
The RTP API is available in the {@link android.net.rtp} package. Classes
+include:
+
+- {@link android.net.rtp.RtpStream}, the base class of streams that send and
+receive network packets with media payloads over RTP.
+- {@link android.net.rtp.AudioStream}, a subclass of {@link
+android.net.rtp.RtpStream} that carries audio payloads over RTP.
+- {@link android.net.rtp.AudioGroup}, a local audio hub for managing and
+mixing the device speaker, microphone, and {@link android.net.rtp.AudioStream}.
+- {@link android.net.rtp.AudioCodec}, which holds a collection of codecs that
+you define for an {@link android.net.rtp.AudioStream}.
+
+
+
To support audio conferencing and similar usages, an application instantiates
+two classes as endpoints for the stream:
+
+
+- {@link android.net.rtp.AudioStream} specifies a remote endpoint and consists
+of network mapping and a configured {@link android.net.rtp.AudioCodec}.
+- {@link android.net.rtp.AudioGroup} represents the local endpoint for one
+or more {@link android.net.rtp.AudioStream}s. The {@link android.net.rtp.AudioGroup} mixes
+all the {@link android.net.rtp.AudioStream}s and optionally interacts with the device
+speaker and the microphone at the same time.
+
+
+
The simplest usage involves a single remote endpoint and local endpoint.
+For more complex usages, please refer to the limitations described for
+{@link android.net.rtp.AudioGroup}.
+
+
To use the RTP API, applications must request permission from the user by
+declaring <uses-permission
+android:name="android.permission.INTERNET">
+in their manifest files. To acquire the device microphone, the <uses-permission
+android:name="android.permission.RECORD_AUDIO"> permission is also required.
+
+
+
+
Starting in Android 3.1, developers can make their homescreen widgets
+resizeable — horizontally, vertically, or on both axes. Users touch-hold a
+widget to show its resize handles, then drag the horizontal and/or vertical
+handles to change the size on the layout grid.
+
+
Developers can make any Home screen widget resizeable by defining a
+resizeMode attribute in the widget's {@link
+android.appwidget.AppWidgetProviderInfo} metadata. Values for the
+resizeMode attribute include "horizontal", "vertical", and "none".
+To declare a widget as resizeable horizontally and vertically, supply the value
+"horizontal|vertical".
+
+
Here's an example:
+
+
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="294dp"
+ android:minHeight="72dp"
+ android:updatePeriodMillis="86400000"
+ android:previewImage="@drawable/preview"
+ android:initialLayout="@layout/example_appwidget"
+ android:configure="com.example.android.ExampleAppWidgetConfigure"
+ android:resizeMode="horizontal|vertical" >
+</appwidget-provider>
+
+
For more information about Home screen widgets, see the App Widgets
+documentation.
+
+
Animation framework
+
+
+- New ViewPropertyAnimator class
+
+ - A new {@link android.view.ViewPropertyAnimator} class provides a
+convenient
+way for developers to animate select properties on {@link android.view.View} objects. The class
+automaties and optimizes the animation of the properties and makes it easier to
+manage multiple simulataneous animations on a {@link android.view.View} object.
+
Using the {@link android.view.ViewPropertyAnimator} is straightforward. To animate properties for
+a {@link android.view.View}, call {@link android.view.View#animate()} to
+construct a {@link android.view.ViewPropertyAnimator} object for that {@link android.view.View}. Use the
+methods on the {@link android.view.ViewPropertyAnimator} to specify what property to
+animate and how to animate it. For example, to fade the {@link android.view.View} to transparent,
+call alpha(0);. The {@link android.view.ViewPropertyAnimator} object
+handles the details of configuring the underlying {@link
+android.animation.Animator} class and starting it, then rendering the
+animation.
+
+
+- Animation background color
+
+ - New {@link android.view.animation.Animation#getBackgroundColor()} and
+ {@link android.view.animation.Animation#setBackgroundColor(int)} methods let
+ you get/set the background color behind animations, for window animations
+only. Currently the background must be black, with any desired alpha level.
+
+
+- Getting animated fraction from
ViewAnimator
+
+ - A new {@link android.animation.ValueAnimator#getAnimatedFraction()}
+method
+lets you get the current animation fraction — the elapsed/interpolated
+fraction used in the most recent frame update — from a {@link
+android.animation.ValueAnimator}.
+
+
+
+
+
UI framework
+
+- Forced rendering of a layer
+
+ - A new {@link android.view.View#buildLayer()} method lets an application
+force a View's layer to be created and the View rendered into it immediately.
+For example, an application could use this method to render a View into its
+layer before starting an animation. If the View is complex, rendering it into
+the layer before starting the animation will avoid skipping frames.
+
+
+- Camera distance
+
+ - Applications can use a new method
+{@link android.view.View#setCameraDistance(float)} to set the distance from the
+camera
+to a View. This gives applications improved control over 3D transformations of
+the View, such as rotations.
+
+
+- Getting a calendar view from a DatePicker
+
+ - A new {@link android.widget.DatePicker#getCalendarView()} method
+ lets you get a {@link android.widget.CalendarView} from a {@link
+android.widget.DatePicker}
+ instance.
+
+
+- Getting callbacks when views are detached
+
+ - A new {@link android.view.View.OnAttachStateChangeListener} lets you
+receive
+callbacks when a View is attached or detached from its window. Use {@link
+android.view.View#addOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener) addOnAttachStateChangeListener()}
+to add a listener and {@link
+android.view.View#removeOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener) addOnAttachStateChangeListener()} to remove it.
+
+
+- Fragment breadcrumb listener, new onInflate() signature
+
+ - A new method, {@link
+android.app.FragmentBreadCrumbs#setOnBreadCrumbClickListener(android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener) setOnBreadCrumbClickListener()},
+provides a hook to let
+applications intercept fragment-breadcrumb clicks and take any action needed
+before going to the backstack entry or fragment that was clicked.
+ - In the {@link android.app.Fragment} class, {@link
+android.app.Fragment#onInflate(android.util.AttributeSet, android.os.Bundle)
+onInflate(attrs, savedInstanceState)} is deprecated. Please use {@link
+android.app.Fragment#onInflate(android.app.Activity, android.util.AttributeSet,
+android.os.Bundle) onInflate(activity, attrs, savedInstanceState)} instead.
+
+
+- Display search result in new tab
+
+ - An {@link android.app.SearchManager#EXTRA_NEW_SEARCH} data key for {@link
+android.content.Intent#ACTION_WEB_SEARCH} intents lets you open a search in a
+new browser tab, rather than in an existing one.
+
+
+
+- Drawable text cursor
+
+- You can now specify a drawable to use as the text cursor using the new
+resource attribute {@link android.R.attr#textCursorDrawable}.
+
+
+- Setting displayed child in remote views
+
+ - A new convenience method, {@link
+android.widget.RemoteViews#setDisplayedChild(int, int) setDisplayedChild(viewId,
+childIndex)}, is available in {@link android.widget.RemoteViews} subclasses, to
+let you set the child displayed in {@link android.widget.ViewAnimator} and
+{@link android.widget.AdapterViewAnimator} subclasses such as {@link
+android.widget.AdapterViewFlipper}, {@link android.widget.StackView}, {@link
+android.widget.ViewFlipper}, and {@link android.widget.ViewSwitcher}.
+
+
+- Generic keys for gamepads and other input devices
+
+ - {@link android.view.KeyEvent} adds a range of generic keycodes to
+ accommodate gamepad buttons. The class also adds
+ {@link android.view.KeyEvent#isGamepadButton(int)} and several other
+ helper methods for working with keycodes.
+
+
+
+
+
Graphics
+
+
+- Helpers for managing bitmaps
+
+ - {@link android.graphics.Bitmap#setHasAlpha(boolean)} lets an app indicate that
+all of the pixels in a Bitmap are known to be opaque (false) or that some of the
+pixels may contain non-opaque alpha values (true). Note, for some configs (such
+as RGB_565) this call is ignored, since it does not support per-pixel alpha
+values. This is meant as a drawing hint, as in some cases a bitmap that is known
+to be opaque can take a faster drawing case than one that may have non-opaque
+per-pixel alpha values.
+ - {@link android.graphics.Bitmap#getByteCount()} gets a Bitmap's size in
+bytes.
+ - {@link android.graphics.Bitmap#getGenerationId()} lets an application find
+out whether a Bitmap has been modified, such as for caching.
+ - {@link android.graphics.Bitmap#sameAs(android.graphics.Bitmap)} determines
+whether a given Bitmap differs from the current Bitmap, in dimension,
+configuration, or pixel data.
+
+
+- Setting camera location and rotation
+
+ - {@link android.graphics.Camera} adds two new methods {@link
+android.graphics.Camera#rotate(float, float, float) rotate()} and {@link
+android.graphics.Camera#setLocation(float, float, float) setLocation()} for
+control of the
+camera's location, for 3D transformations.
+
+
+
+
+
Network
+
+
+- High-performance Wi-Fi lock
+
+ - A new high-performance Wi-Fi lock lets applications maintain
+high-performance Wi-Fi connections even when the device screen is off.
+Applications that stream music, video, or voice for long periods can acquire the
+high-performance Wi-Fi lock to ensure streaming performance even when the screen
+is off. Because it uses more power, applications should acquire the
+high-performance Wi-Fi when there is a need for a long-running active
+connection.
+
To create a high-performance lock, pass {@link
+android.net.wifi.WifiManager#WIFI_MODE_FULL_HIGH_PERF} as the lock mode in a
+call to {@link android.net.wifi.WifiManager#createWifiLock(int,
+java.lang.String) createWifiLock()}.
+
+
+- More traffic stats
+
+ - Applications can now access statistics about more types of network usage
+using new methods in {@link android.net.TrafficStats}. Applications can use the
+methods to get UDP stats, packet count, TCP transmit/receive payload bytes and
+segments for a given UID.
+
+
+- SIP auth username
+
+ - Applications can now get and set the SIP auth username for a profile
+using
+the new methods {@link android.net.sip.SipProfile#getAuthUserName()
+getAuthUserName()} and {@link
+android.net.sip.SipProfile.Builder#setAuthUserName(java.lang.String)
+setAuthUserName()}.
+
+
+
+
+
+
Download Manager
+
+- Handling of completed downloads
+
+ - Applications can now initiate downloads that notify users only on
+completion. To initiate this type of download, applications pass {@link
+android.app.DownloadManager.Request#VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION}
+in the {@link
+android.app.DownloadManager.Request#setNotificationVisibility(int)
+setNotificationVisibility()} method of
+the a request object.
+ - A new method, {@link
+android.app.DownloadManager#addCompletedDownload(java.lang.String,
+java.lang.String, boolean, java.lang.String, java.lang.String, long, boolean)
+addCompletedDownload()}, lets an application add a file to the
+downloads database, so that it can be managed by the Downloads application.
+
+
+- Show downloads sorted by size
+
+ - Applications can start the Downloads application in sort-by-size mode by
+adding the new extra {@link
+android.app.DownloadManager#INTENT_EXTRAS_SORT_BY_SIZE} to an {@link
+android.app.DownloadManager#ACTION_VIEW_DOWNLOADS} intent.
+
+
+
+
+
IME framework
+
+
+- Getting an input method's extra value key
+
- The {@link android.view.inputmethod.InputMethodSubtype} adds the
+method
+{@link
+android.view.inputmethod.InputMethodSubtype#containsExtraValueKey(java.lang.String) containsExtraValueKey()} to check whether an ExtraValue string is stored
+for the subtype and
+the method {@link
+android.view.inputmethod.InputMethodSubtype#getExtraValueOf(java.lang.String)
+getExtraValueOf()} to extract a specific key value from the ExtraValue hashmap.
+
+
+
+
+
+
+
+
+- New streaming audio formats
+
+ - The media framework adds built-in support for raw ADTS AAC content, for
+improved streaming audio, as well as support for FLAC audio, for highest quality
+(lossless) compressed audio content. See the Supported Media Formats
+document for more information.
+
+
+
+
+
Launch controls on stopped
+applications
+
+
Starting from Android 3.1, the system's package manager keeps track of
+applications that are in a stopped state and provides a means of controlling
+their launch from background processes and other applications.
+
+
Note that an application's stopped state is not the same as an Activity's
+stopped state. The system manages those two stopped states separately.
+
+
The platform defines two new intent flags that let a sender specify
+whether the Intent should be allowed to activate components in stopped
+application.
+
+
+- {@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES} —
+Include intent filters of stopped applications in the list of potential targets
+to resolve against.
+- {@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES} —
+Exclude intent filters of stopped applications from the list of potential
+targets.
+
+
+
When neither or both of these flags is defined in an intent, the default
+behavior is to include filters of stopped applications in the list of
+potential targets.
+
+
Note that the system adds {@link
+android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES} to all broadcast
+intents. It does this to prevent broadcasts from background services from
+inadvertently or unnecessarily launching components of stoppped applications.
+A background service or application can override this behavior by adding the
+{@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES} flag to broadcast
+intents that should be allowed to activate stopped applications.
+
+
Applications are in a stopped state when they are first installed but are not
+yet launched and when they are manually stopped by the user (in Manage
+Applications).
+
+
Notification of application first launch and upgrade
+
+
The platform adds improved notification of application first launch and
+upgrades through two new intent actions:
+
+
+
+
Core utilities
+
+
+- LRU cache
+
+ - A new {@link android.util.LruCache} class lets your applications benefit
+from efficient caching. Applications can use the class to reduce the time spent
+computing or downloading data from the network, while maintaining a sensible
+memory footprint for the cached data.{@link android.util.LruCache} is a cache
+that holds strong references to a limited number of values. Each time a value is
+accessed, it is moved to the head of a queue. When a value is added to a full
+cache, the value at the end of that queue is evicted and may become eligible for
+garbage collection.
+
+
+- File descriptor as
int
+
+ - You can now get the native file descriptor int for a {@link
+android.os.ParcelFileDescriptor} using either of the new methods {@link
+android.os.ParcelFileDescriptor#getFd()} or {@link
+android.os.ParcelFileDescriptor#detachFd()}.
+
+
+
+
+
+
+
+
+
+
WebKit
+
+
+
+- File scheme cookies
+
+ - The {@link android.webkit.CookieManager} now supports cookies that use
+the
+
file: URI scheme. You can use {@link
+android.webkit.CookieManager#setAcceptFileSchemeCookies(boolean)
+setAcceptFileSchemeCookies()} to
+enable/disable support for file scheme cookies, before constructing an instance
+of WebView or CookieManager. In a
+CookieManager instance, you can check whether file scheme cookies
+is enabled by calling {@link
+android.webkit.CookieManager#allowFileSchemeCookies()}.
+
+
+- Notification of login request
+
+ - To support the browser autologin features introduced in Android 3.0, the
+new
+method {@link
+android.webkit.WebViewClient#onReceivedLoginRequest(android.webkit.WebView,java.lang.String, java.lang.String, java.lang.String) onReceivedLoginRequest()}
+notifies the host
+application that an autologin request for the user was processed.
+
+
+- Removed classes and interfaces
+
+ - Several classes and interfaces were removed from the public API, after
+previously being in deprecated state. See the API
+Differences Report for more information.
+
+
+
+
+
+
+
Browser
+
+
The Browser application adds the following features to support web
+applications:
+
+
+- Support for inline playback of video embedded in HTML5
+
<video> tag. Playback is hardware-accelerated where possible.
+
+- Layer support for fixed position elements for all sites (mobile and
+desktop).
+
+
+
+
+
+
+
New feature constants
+
+
The platform adds new hardware feature constants that developers can declare
+in their application manifests, to inform external entities such as Android
+Market of the application's requirement for new hardware capabilities supported
+in this version of the platform. Developers declare these and other feature
+constants in {@code
+<uses-feature>} manifest elements.
+
+
+ - {@link android.content.pm.PackageManager#FEATURE_USB_ACCESSORY
+android.hardware.usb.accessory} — The application uses the USB
+API to communicate with external hardware devices connected over USB and
+function as hosts.
+ - {@link android.content.pm.PackageManager#FEATURE_USB_HOST
+android.hardware.usb.host} — The application uses the USB API
+to communicate with external hardware devices connected over USB and function as
+devices.
+
+
+
Android Market filters applications based on features declared in {@code
+<uses-feature>} manifest elements. For more information about
+declaring features in an application manifest, read Android Market
+Filters.
+
+
+
+
API Differences Report
+
+
For a detailed view of all API changes in Android {@sdkPlatformVersion} (API
+Level
+{@sdkPlatformApiLevel}), see the API
+Differences Report.
+
+
+
+
+
+
API Level
+
+
The Android {@sdkPlatformVersion} platform delivers an updated version of
+the framework API. The Android {@sdkPlatformVersion} API
+is assigned an integer identifier —
+{@sdkPlatformApiLevel} — 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 {@sdkPlatformVersion} in your application,
+you need compile the application against the Android library that is provided in
+the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you
+might
+also need to add an android:minSdkVersion="{@sdkPlatformApiLevel}"
+attribute to the <uses-sdk> element in the application's
+manifest.
+
+
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:
+
+
+
+
+
+- API Demos
+- Browser
+- Calculator
+- Camera
+- Clock
+- Contacts
+- Custom Locale
+- Dev Tools
+- Downloads
+- Email
+
+ |
+
+
+- Gallery
+- Gestures Builder
+- Messaging
+- Music
+- Search
+- Settings
+- Spare Parts
+- Speech Recorder
+- Widget Preview
+
+ |
+
+
+
+
+
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 3.0 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, Zimbabwe (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 bokmål, 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 the following emulator skin:
+
+
+ -
+ WXGA (1280x800, medium density, xlarge screen)
+
+
+
+
For more information about how to develop an application that displays
+and functions properly on all Android-powered devices, see Supporting Multiple
+Screens.
\ No newline at end of file
diff --git a/docs/html/sdk/images/3.1/controls.png b/docs/html/sdk/images/3.1/controls.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0ca1f81d3af4eff1b2a225e913ad16e38518f5a
GIT binary patch
literal 103866
zcmYIP1yCGav&91>xVt;S-QC>@!QDLscXxM4aCg_>?hqV;yDqM8_^SSTwY9agGIQ^=
zoIWiZuB0G|0FMg~1_p*8EhVM`1_oXWJY!&CfKPB<_(y;jaAy@s5wNOB{3GBEoP(6M
zGZ@%sw2vn^SVk5$@Zl#HX?gKatI!ZAj8tA6;&)(R#9-25!fHQPPCMPb@CUN*->Y)|
z%EeB`BN05rT_QBueBns*o3O0H4igm-5m{O{NqmhrPdp8=A^dqAge}6+ZjwmR{Tgoq
zr!AGE>C+z0OdeE&J-+pM^M1t8M!U)NVLFQ5vd!G1El1F!Xn}Q(6*pa0$oC~d^0>6B
z40tGd$39^`TyFJ+A`uZO!TODk${cY91IOPjG6uuZsDd_81q7^=z&$)YUsEo(b|AmZ
zvAs%MUd0D(bNV9@33xqRN{<8Q{&!Hp1_c3rce>nHAf31Ys*{YtA8B(vN#n515DWl*
zxU~}~WR%HiZ?@6luDz(|zK2oOe$ErnLp;TQkMDVZZhEoNdAeL5`iaO3SzX
kWD!ihUvd!RRz93}*7gVM%@-
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 |