From f69b61b49638c2ac9e344cd3096a19cf6a8582e9 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Fri, 17 Apr 2009 11:22:35 -0700 Subject: [PATCH 01/70] AI 146751: Finalize AudioTrack javadoc. BUG=1795799 Automated import of CL 146751 --- media/java/android/media/AudioTrack.java | 111 ++++++++++++++--------- 1 file changed, 67 insertions(+), 44 deletions(-) diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index 4196ef398b65a..3cd841de41456 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -32,22 +32,24 @@ import android.util.Log; * It allows to stream PCM audio buffers to the audio hardware for playback. This is * achieved by "pushing" the data to the AudioTrack object using one of the * {@link #write(byte[], int, int)} and {@link #write(short[], int, int)} methods. - *

An AudioTrack instance can operate under two modes: static of streaming.
- * The Streaming mode consists in continuously writing data to the AudioTrack, using one - * of the write() methods. These are blocking and return when the data has been transferred - * from the Java layer to the native layer, and is queued for playback. The streaming mode + * + *

An AudioTrack instance can operate under two modes: static or streaming.
+ * In Streaming mode, the application writes a continuous stream of data to the AudioTrack, using + * one of the write() methods. These are blocking and return when the data has been transferred + * from the Java layer to the native layer and queued for playback. The streaming mode * is most useful when playing blocks of audio data that for instance are: *

* The static mode is to be chosen when dealing with short sounds that fit in memory and - * that need to be played with the smallest latency possible. Static mode AudioTrack instances can - * play the sound without the need to transfer the audio data from Java to the audio hardware + * that need to be played with the smallest latency possible. AudioTrack instances in static mode + * can play the sound without the need to transfer the audio data from Java to native layer * each time the sound is to be played. The static mode will therefore be preferred for UI and * game sounds that are played often, and with the smallest overhead possible. + * *

Upon creation, an AudioTrack object initializes its associated audio buffer. * The size of this buffer, specified during the construction, determines how long an AudioTrack * can play before running out of data.
@@ -66,11 +68,11 @@ public class AudioTrack /** Maximum value for a channel volume */ private static final float VOLUME_MAX = 1.0f; - /** state of an AudioTrack this is stopped */ + /** indicates AudioTrack state is stopped */ public static final int PLAYSTATE_STOPPED = 1; // matches SL_PLAYSTATE_STOPPED - /** state of an AudioTrack this is paused */ + /** indicates AudioTrack state is paused */ public static final int PLAYSTATE_PAUSED = 2; // matches SL_PLAYSTATE_PAUSED - /** state of an AudioTrack this is playing */ + /** indicates AudioTrack state is playing */ public static final int PLAYSTATE_PLAYING = 3; // matches SL_PLAYSTATE_PLAYING /** @@ -85,7 +87,7 @@ public class AudioTrack public static final int MODE_STREAM = 1; /** - * State of an AudioTrack that was not successfully initialized upon creation + * State of an AudioTrack that was not successfully initialized upon creation. */ public static final int STATE_UNINITIALIZED = 0; /** @@ -126,11 +128,11 @@ public class AudioTrack // Events: // to keep in sync with frameworks/base/include/media/AudioTrack.h /** - * Event id for when the playback head has reached a previously set marker. + * Event id denotes when playback head has reached a previously set marker. */ private static final int NATIVE_EVENT_MARKER = 3; /** - * Event id for when the previously set update period has passed during playback. + * Event id denotes when previously set update period has elapsed during playback. */ private static final int NATIVE_EVENT_NEW_POS = 4; @@ -141,11 +143,11 @@ public class AudioTrack // Member variables //-------------------- /** - * Indicates the state of the AudioTrack instance + * Indicates the state of the AudioTrack instance. */ private int mState = STATE_UNINITIALIZED; /** - * Indicates the play state of the AudioTrack instance + * Indicates the play state of the AudioTrack instance. */ private int mPlayState = PLAYSTATE_STOPPED; /** @@ -159,7 +161,7 @@ public class AudioTrack */ private OnPlaybackPositionUpdateListener mPositionListener = null; /** - * Lock to protect event listener updates against event notifications + * Lock to protect event listener updates against event notifications. */ private final Object mPositionListenerLock = new Object(); /** @@ -167,11 +169,11 @@ public class AudioTrack */ private int mNativeBufferSizeInBytes = 0; /** - * Handler for marker events coming from the native code + * Handler for marker events coming from the native code. */ private NativeEventHandlerDelegate mEventHandlerDelegate = null; /** - * Looper associated with the thread that creates the AudioTrack instance + * Looper associated with the thread that creates the AudioTrack instance. */ private Looper mInitializationLooper = null; /** @@ -179,7 +181,7 @@ public class AudioTrack */ private int mSampleRate = 22050; /** - * The number of input audio channels (1 is mono, 2 is stereo) + * The number of input audio channels (1 is mono, 2 is stereo). */ private int mChannelCount = 1; /** @@ -194,7 +196,7 @@ public class AudioTrack */ private int mDataLoadMode = MODE_STREAM; /** - * The current audio channel configuration + * The current audio channel configuration. */ private int mChannelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO; /** @@ -209,7 +211,7 @@ public class AudioTrack // Used exclusively by native code //-------------------- /** - * Accessed by native methods: provides access to C++ AudioTrack object + * Accessed by native methods: provides access to C++ AudioTrack object. */ @SuppressWarnings("unused") private int mNativeTrackInJavaObj; @@ -227,17 +229,14 @@ public class AudioTrack /** * Class constructor. * @param streamType the type of the audio stream. See - * {@link AudioManager#STREAM_VOICE_CALL}, {@link AudioManager#STREAM_SYSTEM}, * {@link AudioManager#STREAM_RING}, {@link AudioManager#STREAM_MUSIC} and * {@link AudioManager#STREAM_ALARM} * @param sampleRateInHz the sample rate expressed in Hertz. Examples of rates are (but * not limited to) 44100, 22050 and 11025. * @param channelConfig describes the configuration of the audio channels. - * See {@link AudioFormat#CHANNEL_CONFIGURATION_MONO} and * {@link AudioFormat#CHANNEL_CONFIGURATION_STEREO} - * @param audioFormat the format in which the audio data is represented. * See {@link AudioFormat#ENCODING_PCM_16BIT} and * {@link AudioFormat#ENCODING_PCM_8BIT} @@ -245,6 +244,9 @@ public class AudioTrack * from for playback. If using the AudioTrack in streaming mode, you can write data into * this buffer in smaller chunks than this size. If using the AudioTrack in static mode, * this is the maximum size of the sound that will be played for this instance. + * See {@link #getMinBufferSize(int, int, int)} to determine the minimum required buffer size + * for the successful creation of an AudioTrack instance in streaming mode. Using values + * smaller than getMinBufferSize() will result in an initialization failure. * @param mode streaming or static buffer. See {@link #MODE_STATIC} and {@link #MODE_STREAM} * @throws java.lang.IllegalArgumentException */ @@ -423,8 +425,8 @@ public class AudioTrack } /** - * Returns the current playback rate in Hz. Note that this rate may differ from one set using - * {@link #setPlaybackRate(int)} as the value effectively set is implementation-dependent. + * Returns the current playback rate in Hz. Note that this rate may differ from the one set + * with {@link #setPlaybackRate(int)} as the value effectively used is implementation-dependent. */ public int getPlaybackRate() { return native_get_playback_rate(); @@ -470,6 +472,9 @@ public class AudioTrack * AudioTrack instance has been created to check if it was initialized * properly. This ensures that the appropriate hardware resources have been * acquired. + * @see #STATE_INITIALIZED + * @see #STATE_NO_STATIC_DATA + * @see #STATE_UNINITIALIZED */ public int getState() { return mState; @@ -486,28 +491,28 @@ public class AudioTrack } /** - * Returns the native frame count used by the hardware + * Returns the native frame count used by the hardware. */ protected int getNativeFrameCount() { return native_get_native_frame_count(); } /** - * @return marker position in frames + * Returns marker position expressed in frames. */ public int getNotificationMarkerPosition() { return native_get_marker_pos(); } /** - * @return update period in frames + * Returns the notification update period expressed in frames. */ public int getPositionNotificationPeriod() { return native_get_pos_update_period(); } /** - * @return playback head position in frames + * Returns the playback head position expressed in frames */ public int getPlaybackHeadPosition() { return native_get_position(); @@ -522,7 +527,9 @@ public class AudioTrack /** * Returns the minimum buffer size required for the successful creation of an AudioTrack - * object to be created in the {@link #MODE_STREAM} mode. + * object to be created in the {@link #MODE_STREAM} mode. Note that this size doesn't + * guarantee a smooth playback under load, and higher values should be chosen according to + * the expected frequency at which the buffer will be refilled with additional data to play. * @param sampleRateInHz the sample rate expressed in Hertz. * @param channelConfig describes the configuration of the audio channels. * See {@link AudioFormat#CHANNEL_CONFIGURATION_MONO} and @@ -533,7 +540,7 @@ public class AudioTrack * @return {@link #ERROR_BAD_VALUE} if an invalid parameter was passed, * or {@link #ERROR} if the implementation was unable to query the hardware for its output * properties, - * or the minimum buffer size expressed in number of bytes. + * or the minimum buffer size expressed in bytes. */ static public int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat) { int channelCount = 0; @@ -577,13 +584,22 @@ public class AudioTrack /** * Sets the listener the AudioTrack notifies when a previously set marker is reached or * for each periodic playback head position update. + * Notifications will be received in the same thread as the one in which the AudioTrack + * instance was created. * @param listener */ public void setPlaybackPositionUpdateListener(OnPlaybackPositionUpdateListener listener) { setPlaybackPositionUpdateListener(listener, null); } - + /** + * Sets the listener the AudioTrack notifies when a previously set marker is reached or + * for each periodic playback head position update. + * Use this method to receive AudioTrack events in the Handler associated with another + * thread than the one in which you created the AudioTrack instance. + * @param listener + * @param handler the Handler that will receive the event notification messages. + */ public void setPlaybackPositionUpdateListener(OnPlaybackPositionUpdateListener listener, Handler handler) { synchronized (mPositionListenerLock) { @@ -636,13 +652,17 @@ public class AudioTrack * the audio data will be consumed and played back, not the original sampling rate of the * content. Setting it to half the sample rate of the content will cause the playback to * last twice as long, but will also result result in a negative pitch shift. - * The current implementation supports a maximum sample rate of twice the hardware output - * sample rate (see {@link #getNativeOutputSampleRate(int)}). Use {@link #getSampleRate()} to - * check the rate actually used in hardware after potential clamping. - * @param sampleRateInHz + * The current implementation supports a maximum sample rate of 64kHz. + * Use {@link #getSampleRate()} to check the rate actually used in hardware after + * potential clamping. + * @param sampleRateInHz the sample rate expressed in Hz * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_BAD_VALUE}, * {@link #ERROR_INVALID_OPERATION} */ + // FIXME: the implementation should support twice the hardware output sample rate + // (see {@link #getNativeOutputSampleRate(int)}), but currently + // due to the representation of the sample rate in the native layer, the sample rate + // is limited to 65535Hz public int setPlaybackRate(int sampleRateInHz) { if (mState != STATE_INITIALIZED) { return ERROR_INVALID_OPERATION; @@ -656,7 +676,7 @@ public class AudioTrack /** - * + * Sets the position of the notification marker. * @param markerInFrames marker in frames * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_BAD_VALUE}, * {@link #ERROR_INVALID_OPERATION} @@ -670,7 +690,8 @@ public class AudioTrack /** - * @param periodInFrames update period in frames + * Sets the period for the periodic notification event. + * @param periodInFrames update period expressed in frames * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_INVALID_OPERATION} */ public int setPositionNotificationPeriod(int periodInFrames) { @@ -683,7 +704,7 @@ public class AudioTrack /** * Sets the playback head position. The track must be stopped for the position to be changed. - * @param positionInFrames playback head position in frames + * @param positionInFrames playback head position expressed in frames * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_BAD_VALUE}, * {@link #ERROR_INVALID_OPERATION} */ @@ -699,8 +720,8 @@ public class AudioTrack /** * Sets the loop points and the loop count. The loop can be infinite. - * @param startInFrames loop start marker in frames - * @param endInFrames loop end marker in frames + * @param startInFrames loop start marker expressed in frames + * @param endInFrames loop end marker expressed in frames * @param loopCount the number of times the loop is looped. * A value of -1 means infinite looping. * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_BAD_VALUE}, @@ -797,7 +818,8 @@ public class AudioTrack /** * Writes the audio data to the audio hardware for playback. * @param audioData the array that holds the data to play. - * @param offsetInBytes the offset in audioData where the data to play starts. + * @param offsetInBytes the offset expressed in bytes in audioData where the data to play + * starts. * @param sizeInBytes the number of bytes to read in audioData after the offset. * @return the number of bytes that were written or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if @@ -827,7 +849,8 @@ public class AudioTrack /** * Writes the audio data to the audio hardware for playback. * @param audioData the array that holds the data to play. - * @param offsetInShorts the offset in audioData where the data to play starts. + * @param offsetInShorts the offset expressed in shorts in audioData where the data to play + * starts. * @param sizeInShorts the number of bytes to read in audioData after the offset. * @return the number of shorts that were written or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if From 62200dd153cc5d0d1f3222f169a51007fdb17667 Mon Sep 17 00:00:00 2001 From: Dave Sparks <> Date: Fri, 17 Apr 2009 11:29:35 -0700 Subject: [PATCH 02/70] AI 146754: Fix some problems in the SoundPool docs and add additional text. BUG=1795461 Automated import of CL 146754 --- media/java/android/media/SoundPool.java | 133 +++++++++++++++++------- 1 file changed, 95 insertions(+), 38 deletions(-) diff --git a/media/java/android/media/SoundPool.java b/media/java/android/media/SoundPool.java index ab3274b1aa66f..b13c2e6ace1e1 100644 --- a/media/java/android/media/SoundPool.java +++ b/media/java/android/media/SoundPool.java @@ -46,6 +46,19 @@ import java.io.IOException; * number of streams helps to cap CPU loading and reducing the likelihood that * audio mixing will impact visuals or UI performance.

* + *

Sounds can be looped by setting a non-zero loop value. A value of -1 + * causes the sound to loop forever. In this case, the application must + * explicitly call the stop() function to stop the sound. Any other non-zero + * value will cause the sound to repeat the specified number of times, e.g. + * a value of 3 causes the sound to play a total of 4 times.

+ * + *

The playback rate can also be changed. A playback rate of 1.0 causes + * the sound to play at its original frequency (resampled, if necessary, + * to the hardware output frequency). A playback rate of 2.0 causes the + * sound to play at twice its original frequency, and a playback rate of + * 0.5 causes it to play at half its original frequency. The playback + * rate range is 0.5 to 2.0.

+ * *

Priority runs low to high, i.e. higher numbers are higher priority. * Priority is used when a call to play() would cause the number of active * streams to exceed the value established by the maxStreams parameter when @@ -72,6 +85,13 @@ import java.io.IOException; * adjusting the playback rate in real-time for doppler or synthesis * effects.

* + *

Note that since streams can be stopped due to resource constraints, the + * streamID is a reference to a particular instance of a stream. If the stream + * is stopped to allow a higher priority stream to play, the stream is no + * longer be valid. However, the application is allowed to call methods on + * the streamID without error. This may help simplify program logic since + * the application need not concern itself with the stream lifecycle.

+ * *

In our example, when the player has completed the level, the game * logic should call SoundPool.release() to release all the native resources * in use and then set the SoundPool reference to null. If the player starts @@ -104,10 +124,11 @@ public class SoundPool } /** - * Load the sound from the specified path - * + * Load the sound from the specified path. + * * @param path the path to the audio file - * @param priority the priority of the sound. Currently has no effect. + * @param priority the priority of the sound. Currently has no effect. Use + * a value of 1 for future compatibility. * @return a sound ID. This value can be used to play or unload the sound. */ public int load(String path, int priority) @@ -133,17 +154,18 @@ public class SoundPool } /** - * Load the sound from the specified APK resource + * Load the sound from the specified APK resource. * - *

Note that the extension is dropped. For example, if you want to load + * Note that the extension is dropped. For example, if you want to load * a sound from the raw resource file "explosion.mp3", you would specify * "R.raw.explosion" as the resource ID. Note that this means you cannot * have both an "explosion.wav" and an "explosion.mp3" in the res/raw - * directory.

+ * directory. * * @param context the application context * @param resId the resource ID - * @param priority the priority of the sound. Currently has no effect. + * @param priority the priority of the sound. Currently has no effect. Use + * a value of 1 for future compatibility. * @return a sound ID. This value can be used to play or unload the sound. */ public int load(Context context, int resId, int priority) { @@ -162,10 +184,11 @@ public class SoundPool } /** - * Load the sound from an asset file descriptor + * Load the sound from an asset file descriptor. * * @param afd an asset file descriptor - * @param priority the priority of the sound. Currently has no effect. + * @param priority the priority of the sound. Currently has no effect. Use + * a value of 1 for future compatibility. * @return a sound ID. This value can be used to play or unload the sound. */ public int load(AssetFileDescriptor afd, int priority) { @@ -181,16 +204,17 @@ public class SoundPool } /** - * Load the sound from a FileDescriptor + * Load the sound from a FileDescriptor. * - *

This version is useful if you store multiple sounds in a single + * This version is useful if you store multiple sounds in a single * binary. The offset specifies the offset from the start of the file - * and the length specifies the length of the sound within the file.

+ * and the length specifies the length of the sound within the file. * * @param fd a FileDescriptor object * @param offset offset to the start of the sound * @param length length of the sound - * @param priority the priority of the sound. Currently has no effect. + * @param priority the priority of the sound. Currently has no effect. Use + * a value of 1 for future compatibility. * @return a sound ID. This value can be used to play or unload the sound. */ public int load(FileDescriptor fd, long offset, long length, int priority) { @@ -202,11 +226,11 @@ public class SoundPool private native final int _load(FileDescriptor fd, long offset, long length, int priority); /** - * Unload a sound from a sound ID + * Unload a sound from a sound ID. * - *

Unloads the sound specified by the soundID. This is the value + * Unloads the sound specified by the soundID. This is the value * returned by the load() function. Returns true if the sound is - * successfully unloaded, false if the sound was already unloaded.

+ * successfully unloaded, false if the sound was already unloaded. * * @param soundID a soundID returned by the load() function * @return true if just unloaded, false if previously unloaded @@ -214,66 +238,77 @@ public class SoundPool public native final boolean unload(int soundID); /** - * Play a sound from a sound ID + * Play a sound from a sound ID. * - *

Play the sound specified by the soundID. This is the value + * Play the sound specified by the soundID. This is the value * returned by the load() function. Returns a non-zero streamID * if successful, zero if it fails. The streamID can be used to * further control playback. Note that calling play() may cause * another sound to stop playing if the maximum number of active - * streams is exceeded.

+ * streams is exceeded. A loop value of -1 means loop forever, + * a value of 0 means don't loop, other values indicate the + * number of repeats, e.g. a value of 1 plays the audio twice. + * The playback rate allows the application to vary the playback + * rate (pitch) of the sound. A value of 1.0 means play back at + * the original frequency. A value of 2.0 means play back twice + * as fast, and a value of 0.5 means playback at half speed. * * @param soundID a soundID returned by the load() function + * @param leftVolume left volume value (range = 0.0 to 1.0) + * @param rightVolume right volume value (range = 0.0 to 1.0) + * @param priority stream priority (0 = lowest priority) + * @param loop loop mode (0 = no loop, -1 = loop forever) + * @param rate playback rate (1.0 = normal playback, range 0.5 to 2.0) * @return non-zero streamID if successful, zero if failed */ public native final int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate); /** - * Pause a playback stream + * Pause a playback stream. * - *

Pause the stream specified by the streamID. This is the + * Pause the stream specified by the streamID. This is the * value returned by the play() function. If the stream is * playing, it will be paused. If the stream is not playing * (e.g. is stopped or was previously paused), calling this - * function will have no effect.

+ * function will have no effect. * * @param streamID a streamID returned by the play() function */ public native final void pause(int streamID); /** - * Resume a playback stream + * Resume a playback stream. * - *

Resume the stream specified by the streamID. This + * Resume the stream specified by the streamID. This * is the value returned by the play() function. If the stream * is paused, this will resume playback. If the stream was not - * previously paused, calling this function will have no effect.

+ * previously paused, calling this function will have no effect. * * @param streamID a streamID returned by the play() function */ public native final void resume(int streamID); /** - * Stop a playback stream + * Stop a playback stream. * - *

Stop the stream specified by the streamID. This + * Stop the stream specified by the streamID. This * is the value returned by the play() function. If the stream * is playing, it will be stopped. It also releases any native * resources associated with this stream. If the stream is not - * playing, it will have no effect.

+ * playing, it will have no effect. * * @param streamID a streamID returned by the play() function */ public native final void stop(int streamID); /** - * Set stream volume + * Set stream volume. * - *

Sets the volume on the stream specified by the streamID. + * Sets the volume on the stream specified by the streamID. * This is the value returned by the play() function. The * value must be in the range of 0.0 to 1.0. If the stream does - * not exist, it will have no effect.

+ * not exist, it will have no effect. * * @param streamID a streamID returned by the play() function * @param leftVolume left volume value (range = 0.0 to 1.0) @@ -283,29 +318,51 @@ public class SoundPool float leftVolume, float rightVolume); /** - * Change stream priority + * Change stream priority. * - *

Change the priority of the stream specified by the streamID. + * Change the priority of the stream specified by the streamID. * This is the value returned by the play() function. Affects the - * order in which streams are re-used to play new sounds. + * order in which streams are re-used to play new sounds. If the + * stream does not exist, it will have no effect. * * @param streamID a streamID returned by the play() function */ public native final void setPriority(int streamID, int priority); /** - * Change stream priority + * Set loop mode. * - *

Change the priority of the stream specified by the streamID. - * This is the value returned by the play() function. Affects the - * order in which streams are re-used to play new sounds. + * Change the loop mode. A loop value of -1 means loop forever, + * a value of 0 means don't loop, other values indicate the + * number of repeats, e.g. a value of 1 plays the audio twice. + * If the stream does not exist, it will have no effect. * * @param streamID a streamID returned by the play() function + * @param loop loop mode (0 = no loop, -1 = loop forever) */ public native final void setLoop(int streamID, int loop); + /** + * Change playback rate. + * + * The playback rate allows the application to vary the playback + * rate (pitch) of the sound. A value of 1.0 means playback at + * the original frequency. A value of 2.0 means playback twice + * as fast, and a value of 0.5 means playback at half speed. + * If the stream does not exist, it will have no effect. + * + * @param streamID a streamID returned by the play() function + * @param rate playback rate (1.0 = normal playback, range 0.5 to 2.0) + */ public native final void setRate(int streamID, float rate); + /** + * Release the SoundPool resources. + * + * Release all memory and native resources used by the SoundPool + * object. The SoundPool can no longer be used and the reference + * should be set to null. + */ public native final void release(); private native final void native_setup(Object mediaplayer_this, From a9a66950d6827cbd6cb94ca56fcf9db656bad5a5 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Mon, 20 Apr 2009 10:45:02 -0700 Subject: [PATCH 03/70] AI 146937: Finalize AudioRecord javadoc. BUG=1797606 Automated import of CL 146937 --- media/java/android/media/AudioRecord.java | 81 +++++++++++++---------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index a49bd67b772a5..3346bed93e30d 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -40,7 +40,7 @@ import android.util.Log; *

Upon creation, an AudioRecord object initializes its associated audio buffer that it will * fill with the new audio data. The size of this buffer, specified during the construction, * determines how long an AudioRecord can record before "over-running" data that has not - * been read yet. Data should be from the audio hardware in chunks of sizes inferior to + * been read yet. Data should be read from the audio hardware in chunks of sizes inferior to * the total recording buffer size. */ public class AudioRecord @@ -49,20 +49,20 @@ public class AudioRecord // Constants //-------------------- /** - * State of an AudioRecord that was not successfully initialized upon creation + * indicates AudioRecord state is not successfully initialized. */ public static final int STATE_UNINITIALIZED = 0; /** - * State of an AudioRecord that is ready to be used + * indicates AudioRecord state is ready to be used */ public static final int STATE_INITIALIZED = 1; /** - * State of an AudioRecord this is not recording + * indicates AudioRecord recording state is not recording */ public static final int RECORDSTATE_STOPPED = 1; // matches SL_RECORDSTATE_STOPPED /** - * State of an AudioRecord this is recording + * indicates AudioRecord recording state is recording */ public static final int RECORDSTATE_RECORDING = 3;// matches SL_RECORDSTATE_RECORDING @@ -94,11 +94,11 @@ public class AudioRecord // Events: // to keep in sync with frameworks/base/include/media/AudioRecord.h /** - * Event id for when the recording head has reached a previously set marker. + * Event id denotes when record head has reached a previously set marker. */ private static final int NATIVE_EVENT_MARKER = 2; /** - * Event id for when the previously set update period has passed during recording. + * Event id denotes when previously set update period has elapsed during recording. */ private static final int NATIVE_EVENT_NEW_POS = 3; @@ -188,7 +188,7 @@ public class AudioRecord */ private int mNativeBufferSizeInBytes = 0; - + //--------------------------------------------------------- // Constructor, Finalize //-------------------- @@ -206,7 +206,9 @@ public class AudioRecord * {@link AudioFormat#ENCODING_PCM_8BIT} * @param bufferSizeInBytes the total size (in bytes) of the buffer where audio data is written * to during the recording. New audio data can be read from this buffer in smaller chunks - * than this size. + * than this size. See {@link #getMinBufferSize(int, int, int)} to determine the minimum + * required buffer size for the successful creation of an AudioRecord instance. Using values + * smaller than getMinBufferSize() will result in an initialization failure. * @throws java.lang.IllegalArgumentException */ public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, @@ -319,11 +321,13 @@ public class AudioRecord mNativeBufferSizeInBytes = audioBufferSize; } - - + + /** * Releases the native AudioRecord resources. + * The object can no longer be used and the reference should be set to null + * after a call to release() */ public void release() { try { @@ -334,7 +338,7 @@ public class AudioRecord native_release(); mState = STATE_UNINITIALIZED; } - + @Override protected void finalize() { @@ -404,24 +408,27 @@ public class AudioRecord public int getRecordingState() { return mRecordingState; } - + /** - * @return marker position in frames + * Returns the notification marker position expressed in frames. */ public int getNotificationMarkerPosition() { return native_get_marker_pos(); } /** - * @return update period in frames + * Returns the notification update period expressed in frames. */ public int getPositionNotificationPeriod() { return native_get_pos_update_period(); } - + /** * Returns the minimum buffer size required for the successful creation of an AudioRecord * object. + * Note that this size doesn't guarantee a smooth recording under load, and higher values + * should be chosen according to the expected frequency at which the AudioRecord instance + * will be polled for new data. * @param sampleRateInHz the sample rate expressed in Hertz. * @param channelConfig describes the configuration of the audio channels. * See {@link AudioFormat#CHANNEL_CONFIGURATION_MONO} and @@ -432,7 +439,7 @@ public class AudioRecord * hardware, or an invalid parameter was passed, * or {@link #ERROR} if the implementation was unable to query the hardware for its * output properties, - * or the minimum buffer size expressed in of bytes. + * or the minimum buffer size expressed in bytes. */ static public int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat) { int channelCount = 0; @@ -516,7 +523,7 @@ public class AudioRecord /** * Reads audio data from the audio hardware for recording into a buffer. * @param audioData the array to which the recorded audio data is written. - * @param offsetInBytes index in audioData from which the data is written. + * @param offsetInBytes index in audioData from which the data is written expressed in bytes. * @param sizeInBytes the number of requested bytes. * @return the number of bytes that were read or or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if @@ -540,9 +547,9 @@ public class AudioRecord /** * Reads audio data from the audio hardware for recording into a buffer. * @param audioData the array to which the recorded audio data is written. - * @param offsetInShorts index in audioData from which the data is written. + * @param offsetInShorts index in audioData from which the data is written expressed in shorts. * @param sizeInShorts the number of requested shorts. - * @return the number of bytes that were read or or {@link #ERROR_INVALID_OPERATION} + * @return the number of shorts that were read or or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of shorts will not exceed sizeInShorts. @@ -595,8 +602,15 @@ public class AudioRecord public void setRecordPositionUpdateListener(OnRecordPositionUpdateListener listener) { setRecordPositionUpdateListener(listener, null); } - + /** + * Sets the listener the AudioRecord notifies when a previously set marker is reached or + * for each periodic record head position update. + * Use this method to receive AudioRecord events in the Handler associated with another + * thread than the one in which you created the AudioTrack instance. + * @param listener + * @param handler the Handler that will receive the event notification messages. + */ public void setRecordPositionUpdateListener(OnRecordPositionUpdateListener listener, Handler handler) { synchronized (mPositionListenerLock) { @@ -616,8 +630,8 @@ public class AudioRecord } } - - + + /** * Sets the marker position at which the listener is called, if set with * {@link #setRecordPositionUpdateListener(OnRecordPositionUpdateListener)} or @@ -629,8 +643,8 @@ public class AudioRecord public int setNotificationMarkerPosition(int markerInFrames) { return native_set_marker_pos(markerInFrames); } - - + + /** * Sets the period at which the listener is called, if set with * {@link #setRecordPositionUpdateListener(OnRecordPositionUpdateListener)} or @@ -648,7 +662,9 @@ public class AudioRecord //-------------------- /** * Interface definition for a callback to be invoked when an AudioRecord has - * reached a notification marker set by setNotificationMarkerPosition(). + * reached a notification marker set by {@link AudioRecord#setNotificationMarkerPosition(int)} + * or for periodic updates on the progress of the record head, as set by + * {@link AudioRecord#setPositionNotificationPeriod(int)}. */ public interface OnRecordPositionUpdateListener { /** @@ -663,10 +679,9 @@ public class AudioRecord */ void onPeriodicNotification(AudioRecord recorder); } - - - + + //--------------------------------------------------------- // Inner classes //-------------------- @@ -678,12 +693,12 @@ public class AudioRecord private class NativeEventHandler extends Handler { private final AudioRecord mAudioRecord; - + NativeEventHandler(AudioRecord recorder, Looper looper) { super(looper); mAudioRecord = recorder; } - + @Override public void handleMessage(Message msg) { OnRecordPositionUpdateListener listener = null; @@ -779,7 +794,3 @@ public class AudioRecord } - - - - From 26dea0f211c433f2d3a12dcc85bb069664112a03 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi <> Date: Mon, 20 Apr 2009 16:29:19 -0700 Subject: [PATCH 04/70] AI 147032: Finalize JetPlayer javadoc. BUG=1801229 Automated import of CL 147032 --- media/java/android/media/JetPlayer.java | 173 ++++++++++++++++++++++-- 1 file changed, 165 insertions(+), 8 deletions(-) diff --git a/media/java/android/media/JetPlayer.java b/media/java/android/media/JetPlayer.java index c9efac5cdb194..4fb0ead7ff59b 100644 --- a/media/java/android/media/JetPlayer.java +++ b/media/java/android/media/JetPlayer.java @@ -30,8 +30,29 @@ import android.util.Log; /** * JetPlayer provides access to JET content playback and control. - *

- * Use JetPlayer.getJetPlayer() to get an instance of this class. + * + *

Please refer to the JET Creator User Manual for a presentation of the JET interactive + * music concept and how to use the JetCreator tool to create content to be player by JetPlayer. + * + *

Use of the JetPlayer class is based around the playback of a number of JET segments + * sequentially added to a playback FIFO queue. The rendering of the MIDI content stored in each + * segment can be dynamically affected by two mechanisms: + *

+ * As a result of the rendering and playback of the JET segments, the user of the JetPlayer instance + * can receive notifications from the JET engine relative to: + * + * Use {@link #getJetPlayer()} to construct a JetPlayer instance. JetPlayer is a singleton class. * */ public class JetPlayer @@ -40,7 +61,7 @@ public class JetPlayer // Constants //------------------------ /** - * The maximum number of simultaneous tracks. Use __link #getMaxTracks()} to + * The maximum number of simultaneous tracks. Use {@link #getMaxTracks()} to * access this value. */ private static int MAXTRACKS = 32; @@ -107,6 +128,10 @@ public class JetPlayer //-------------------------------------------- // Constructor, finalize //------------------------ + /** + * Factory method for the JetPlayer class. + * @return the singleton JetPlayer instance + */ public static JetPlayer getJetPlayer() { if (singletonRef == null) { singletonRef = new JetPlayer(); @@ -114,7 +139,9 @@ public class JetPlayer return singletonRef; } - + /** + * Cloning a JetPlayer instance is not supported. Calling clone() will generate an exception. + */ public Object clone() throws CloneNotSupportedException { // JetPlayer is a singleton class, // so you can't clone a JetPlayer instance @@ -149,6 +176,11 @@ public class JetPlayer } + /** + * Stops the current JET playback, and releases all associated native resources. + * The object can no longer be used and the reference should be set to null + * after a call to release(). + */ public void release() { native_release(); } @@ -158,7 +190,7 @@ public class JetPlayer // Getters //------------------------ /** - * Returns the maximum number of simultaneous MIDI tracks supported by the Jet player + * Returns the maximum number of simultaneous MIDI tracks supported by JetPlayer */ public static int getMaxTracks() { return JetPlayer.MAXTRACKS; @@ -168,11 +200,21 @@ public class JetPlayer //-------------------------------------------- // Jet functionality //------------------------ + /** + * Loads a .jet file from a given path. + * @param path the path to the .jet file, for instance "/sdcard/mygame/music.jet". + * @return true if loading the .jet file was successful, false if loading failed. + */ public boolean loadJetFile(String path) { return native_loadJetFromFile(path); } + /** + * Loads a .jet file from an asset file descriptor. + * @param afd the asset file descriptor. + * @return true if loading the .jet file was successful, false if loading failed. + */ public boolean loadJetFile(AssetFileDescriptor afd) { long len = afd.getLength(); if (len < 0) { @@ -182,22 +224,54 @@ public class JetPlayer afd.getFileDescriptor(), afd.getStartOffset(), len); } - + /** + * Closes the resource containing the JET content. + * @return true if successfully closed, false otherwise. + */ public boolean closeJetFile() { return native_closeJetFile(); } + /** + * Starts playing the JET segment queue. + * @return true if rendering and playback is successfully started, false otherwise. + */ public boolean play() { return native_playJet(); } + /** + * Pauses the playback of the JET segment queue. + * @return true if rendering and playback is successfully paused, false otherwise. + */ public boolean pause() { return native_pauseJet(); } + /** + * Queues the specified segment in the JET queue. + * @param segmentNum the identifier of the segment. + * @param libNum the index of the sound bank associated with the segment. Use -1 to indicate + * that no sound bank (DLS file) is associated with this segment, in which case JET will use + * the General MIDI library. + * @param repeatCount the number of times the segment will be repeated. 0 means the segment will + * only play once. -1 means the segment will repeat indefinitely. + * @param transpose the amount of pitch transposition. Set to 0 for normal playback. + * Range is -12 to +12. + * @param muteFlags a bitmask to specify which MIDI tracks will be muted during playback. Bit 0 + * affects track 0, bit 1 affects track 1 etc. + * @param userID a value specified by the application that uniquely identifies the segment. + * this value is received in the + * {@link OnJetEventListener#onJetUserIdUpdate(JetPlayer, int, int)} event listener method. + * Normally, the application will keep a byte value that is incremented each time a new + * segment is queued up. This can be used to look up any special characteristics of that + * track including trigger clips and mute flags. + * @return true if the segment was successfully queued, false if the queue is full or if the + * parameters are invalid. + */ public boolean queueJetSegment(int segmentNum, int libNum, int repeatCount, int transpose, int muteFlags, byte userID) { return native_queueJetSegment(segmentNum, libNum, repeatCount, @@ -205,6 +279,28 @@ public class JetPlayer } + /** + * Queues the specified segment in the JET queue. + * @param segmentNum the identifier of the segment. + * @param libNum the index of the soundbank associated with the segment. Use -1 to indicate that + * no sound bank (DLS file) is associated with this segment, in which case JET will use + * the General MIDI library. + * @param repeatCount the number of times the segment will be repeated. 0 means the segment will + * only play once. -1 means the segment will repeat indefinitely. + * @param transpose the amount of pitch transposition. Set to 0 for normal playback. + * Range is -12 to +12. + * @param muteArray an array of booleans to specify which MIDI tracks will be muted during + * playback. The value at index 0 affects track 0, value at index 1 affects track 1 etc. + * The length of the array must be {@link #getMaxTracks()} for the call to succeed. + * @param userID a value specified by the application that uniquely identifies the segment. + * this value is received in the + * {@link OnJetEventListener#onJetUserIdUpdate(JetPlayer, int, int)} event listener method. + * Normally, the application will keep a byte value that is incremented each time a new + * segment is queued up. This can be used to look up any special characteristics of that + * track including trigger clips and mute flags. + * @return true if the segment was successfully queued, false if the queue is full or if the + * parameters are invalid. + */ public boolean queueJetSegmentMuteArray(int segmentNum, int libNum, int repeatCount, int transpose, boolean[] muteArray, byte userID) { if (muteArray.length != JetPlayer.getMaxTracks()) { @@ -215,11 +311,32 @@ public class JetPlayer } + /** + * Modifies the mute flags. + * @param muteFlags a bitmask to specify which MIDI tracks are muted. Bit 0 affects track 0, + * bit 1 affects track 1 etc. + * @param sync if false, the new mute flags will be applied as soon as possible by the JET + * render and playback engine. If true, the mute flags will be updated at the start of the + * next segment. If the segment is repeated, the flags will take effect the next time + * segment is repeated. + * @return true if the mute flags were successfully updated, false otherwise. + */ public boolean setMuteFlags(int muteFlags, boolean sync) { return native_setMuteFlags(muteFlags, sync); } + /** + * Modifies the mute flags for the current active segment. + * @param muteArray an array of booleans to specify which MIDI tracks are muted. The value at + * index 0 affects track 0, value at index 1 affects track 1 etc. + * The length of the array must be {@link #getMaxTracks()} for the call to succeed. + * @param sync if false, the new mute flags will be applied as soon as possible by the JET + * render and playback engine. If true, the mute flags will be updated at the start of the + * next segment. If the segment is repeated, the flags will take effect the next time + * segment is repeated. + * @return true if the mute flags were successfully updated, false otherwise. + */ public boolean setMuteArray(boolean[] muteArray, boolean sync) { if(muteArray.length != JetPlayer.getMaxTracks()) return false; @@ -227,16 +344,41 @@ public class JetPlayer } + /** + * Mutes or unmutes a single track. + * @param trackId the index of the track to mute. + * @param muteFlag set to true to mute, false to unmute. + * @param sync if false, the new mute flags will be applied as soon as possible by the JET + * render and playback engine. If true, the mute flag will be updated at the start of the + * next segment. If the segment is repeated, the flag will take effect the next time + * segment is repeated. + * @return true if the mute flag was successfully updated, false otherwise. + */ public boolean setMuteFlag(int trackId, boolean muteFlag, boolean sync) { return native_setMuteFlag(trackId, muteFlag, sync); } + /** + * Schedules the playback of a clip. + * This will automatically update the mute flags in sync with the JET Clip Marker (controller + * 103). The parameter clipID must be in the range of 0-63. After the call to triggerClip, when + * JET next encounters a controller event 103 with bits 0-5 of the value equal to clipID and + * bit 6 set to 1, it will automatically unmute the track containing the controller event. + * When JET encounters the complementary controller event 103 with bits 0-5 of the value equal + * to clipID and bit 6 set to 0, it will mute the track again. + * @param clipId the identifier of the clip to trigger. + * @return true if the clip was successfully triggered, false otherwise. + */ public boolean triggerClip(int clipId) { return native_triggerClip(clipId); } + /** + * Empties the segment queue, and clears all clips that are scheduled for playback. + * @return true if the queue was successfully cleared, false otherwise. + */ public boolean clearQueue() { return native_clearQueue(); } @@ -302,10 +444,25 @@ public class JetPlayer //-------------------------------------------- // Jet event listener //------------------------ + /** + * Sets the listener JetPlayer notifies when a JET event is generated by the rendering and + * playback engine. + * Notifications will be received in the same thread as the one in which the JetPlayer + * instance was created. + * @param listener + */ public void setEventListener(OnJetEventListener listener) { setEventListener(listener, null); } + /** + * Sets the listener JetPlayer notifies when a JET event is generated by the rendering and + * playback engine. + * Use this method to receive JET events in the Handler associated with another + * thread than the one in which you created the JetPlayer instance. + * @param listener + * @param handler the Handler that will receive the event notification messages. + */ public void setEventListener(OnJetEventListener listener, Handler handler) { synchronized(mEventListenerLock) { @@ -343,7 +500,7 @@ public class JetPlayer void onJetEvent(JetPlayer player, short segment, byte track, byte channel, byte controller, byte value); /** - * Callback for when JET's currently playing segment userID is updated. + * Callback for when JET's currently playing segment's userID is updated. * * @param player the JET player the status update is coming from * @param userId the ID of the currently playing segment @@ -363,7 +520,7 @@ public class JetPlayer * Callback for when JET pause state is updated. * * @param player the JET player the status update is coming from - * @param paused indicates whether JET is paused or not + * @param paused indicates whether JET is paused (1) or not (0) */ void onJetPauseUpdate(JetPlayer player, int paused); } From b5a4c5a473f37700a654a3323afb9682e524c66c Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Mon, 20 Apr 2009 17:54:52 -0700 Subject: [PATCH 05/70] AI 147053: Add -hdf primer vars for the platform and release ID associated with the current (most recent) SDK. Currently, the docs that are specific to each SDK release -- downloading, installing, upgrading, requirements -- are stored in a directory with release-derived name, such as "1.1_r1". This change lets documents use generic links to point into the most recent version specific docs, eg href="{@docRoot}sdk/{sdkCurrent}/installing.html" instead of href="{@docRoot}sdk/1.1_r1/installing.html". BUG=1790234 Automated import of CL 147053 --- Android.mk | 29 ++++++++++++++++++----------- docs/html/offline.jd | 4 ++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Android.mk b/Android.mk index 1246c73cf16f6..e3738595a6d7a 100644 --- a/Android.mk +++ b/Android.mk @@ -292,12 +292,6 @@ framework_docs_LOCAL_DROIDDOC_OPTIONS := \ framework_docs_LOCAL_ADDITIONAL_JAVA_DIR:=$(call intermediates-dir-for,JAVA_LIBRARIES,framework) -web_docs_sample_code_flags := \ - -hdf android.hasSamples 1 \ - -samplecode samples/ApiDemos guide/samples/ApiDemos "API Demos" \ - -samplecode samples/LunarLander guide/samples/LunarLander "Lunar Lander" \ - -samplecode samples/NotePad guide/samples/NotePad "Note Pad" - sample_dir := development/samples web_docs_sample_code_flags := \ @@ -309,6 +303,19 @@ web_docs_sample_code_flags := \ -samplecode $(sample_dir)/NotePad \ guide/samples/NotePad "Note Pad" +# SDK version identifiers used in the published docs. + +# major[.minor] version for SDK. Typically identical to the +# most current Android platform version included in the SDK package. +framework_docs_SDK_VERSION := 1.5 +# release version for SDK (ie "Release x") +framework_docs_SDK_REL_ID := 1 +framework_docs_SDK_CURRENT_DIR := $(framework_docs_SDK_VERSION)_r$(framework_docs_SDK_REL_ID) + +framework_docs_LOCAL_DROIDDOC_OPTIONS += \ + -hdf sdk.version $(framework_docs_SDK_VERSION) \ + -hdf sdk.rel.id $(framework_docs_SDK_REL_ID) \ + -hdf sdk.current $(framework_docs_SDK_CURRENT_DIR) # ==== static html in the sdk ================================== include $(CLEAR_VARS) @@ -341,7 +348,7 @@ include $(BUILD_DROIDDOC) static_doc_index_redirect := $(out_dir)/index.html $(static_doc_index_redirect): \ - $(LOCAL_PATH)/docs/docs-documentation-redirect.html | $(ACP) + $(LOCAL_PATH)/docs/docs-documentation-redirect.html | $(ACP) $(hide) mkdir -p $(dir $@) $(hide) $(ACP) $< $@ @@ -366,10 +373,10 @@ LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR) LOCAL_MODULE := online-sdk LOCAL_DROIDDOC_OPTIONS:= \ - $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ - $(web_docs_sample_code_flags) \ - -toroot / \ - -hdf android.whichdoc online + $(framework_docs_LOCAL_DROIDDOC_OPTIONS) \ + $(web_docs_sample_code_flags) \ + -toroot / \ + -hdf android.whichdoc online LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk LOCAL_DROIDDOC_CUSTOM_ASSET_DIR:=assets-sdk diff --git a/docs/html/offline.jd b/docs/html/offline.jd index d41459b4d64c7..57c55c7ff559f 100644 --- a/docs/html/offline.jd +++ b/docs/html/offline.jd @@ -9,10 +9,10 @@ page.title=Welcome

If you've just downloaded the SDK, then continue with -Installing the Android SDK.

+Installing the Android SDK.

If you're upgrading from a previously installed version, then refer to the -Upgrading guide.

+Upgrading guide.

Once you've completed the SDK installation, you can start learning about development on the Android framework by reading the Date: Mon, 20 Apr 2009 21:53:32 -0700 Subject: [PATCH 06/70] AI 147081: Add document describing AVDs and usage. (doc change only) BUG=1790234 Automated import of CL 147081 --- docs/html/guide/developing/tools/avd.jd | 496 ++++++++++++++++++++++++ 1 file changed, 496 insertions(+) create mode 100644 docs/html/guide/developing/tools/avd.jd diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd new file mode 100644 index 0000000000000..7ba79685eef76 --- /dev/null +++ b/docs/html/guide/developing/tools/avd.jd @@ -0,0 +1,496 @@ +page.title=Android Virtual Devices +@jd:body + +

+
+ +

AVD quickview

+
    +
  • You need to create an AVD to run any app in the Android emulator
  • +
  • Each AVD is a completely independent virtual device, with its own + hardware options, system image, and data storage. +
  • You create AVD configurations to model different device environments + in the Android emulator.
  • +
+

In this document

+
    +
  1. Creating an AVD +
      +
    1. Listing targets
    2. +
    3. Selecting a target
    4. +
    5. Creating the AVD
    6. +
    7. Setting hardware emulation options
    8. +
    9. Default location of the AVD files
    10. +
    11. Command-line options, create avd
    12. +
    +
  2. +
  3. Managing AVDs +
      +
    1. Moving an AVD
    2. +
    3. Deleting an AVD
    4. +
    5. Deleting an AVD
    6. +
    +
  4. +
  5. Command-line options
  6. +
+

See Also

+
    +
  1. Android Emulator
  2. +
+
+
+ +

Android Virtual Devices (AVDs) are configurations of emulator options that let +you better model an actual device.

+ +

Each AVD is made up of:

+ + + +

You can create as many AVDs as you need, based on the types of devices you +want to model and the Android platforms and external libraries you want to run +your application on.

+ +

In addition to the options in an AVD configuration, you can also +specify emulator command-line options at launch or by using the emulator +console to change behaviors or characteristics at run time. For a complete +reference of emulator options, please see the Emulator +documentation.

+ +

To create and manage AVDs, you use the android tool provided in the Android +SDK. For more information about how to work with AVDs from inside +your development environment, see Developing in Eclipse with +ADT or Developing in +Other IDEs, as appropriate for your environment.

+ +

Creating an AVD

+ + + +

To create an AVD, you use the android tool, a command-line utility +available in the <sdk>/tools/ directory. Managing AVDs is one +of the two main function of the android tool (the other is creating and updating +Android projects). Open a terminal window and change to the +<sdk>/tools/ directory, if needed

+ +

To create each AVD, you issue the command android avd create, +with options that specify a name for the new AVD and the system image you want +to run on the emulator when the AVD is invoked. You can specify other options on +the command line also, such as to create an emulated SD card for the new AVD, set +the emulator skin to use, or set a custom location for the AVD's files.

+ +

Here's the command-line usage for creating an AVD:

+ +
android -n <name> -t <targetID> [-<option> <value>] ... 
+ +

You can use any name you want for the AVD, but since you are likely to be +creating multiple AVDs, you should choose a name that lets you recognize the +general characteristics offered by the AVD.

+ +

As shown in the usage above, you must use the -t (or +--target) argument when creating a new AVD. The argument sets up a +mapping between the AVD and the system image that you want to use whenever the +AVD is invoked. You can specify any Android system image that is available in +your local SDK — it can be the system image of a standard Android platform +version or that of any SDK add-on. Later, when applications use the AVD, they'll +be running on the system that you specify in the -t argument.

+ +

To specify the system image to use, you refer to its target ID +— an integer — as assigned by the android tool. The target ID is not +derived from the system image name, version, or API Level, or other attribute, +so you need to have the android tool list the available system images and the +target ID of each, as described in the next section. You should do this +before you run the android create avd command. +

+ +

Listing targets

+ +

To generate a list of system image targets, use this command:

+ +
android list targets
+ +

The android tool scans the <sdk>/platforms and +<sdk>/add-ons directories looking for valid system images and +then generates the list of targets. Here's an example of the command output: +

+ +
Available Android targets:
+id:1
+    Name: Android 1.1
+    Type: platform
+    API level: 2
+    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
+id:2
+    Name: Android 1.5
+    Type: platform
+    API level: 3
+    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
+id:3
+    Name: Google APIs
+    Type: add-on
+    Vendor: Google Inc.
+    Description: Android + Google APIs
+    Based on Android 1.5 (API level 3)
+    Libraries:
+    * com.google.android.maps (maps.jar)
+        API for Google Maps
+    Skins: HVGA (default), HVGA-L, QVGA-P, HVGA-P, QVGA-L
+ +

Selecting a target

+ +

Once you have generated the list of targets available, you can look at the +characteristics of each system image — name, API Level, external +libraries, and so on — and determine which target is appropriate for the +new AVD.

+ +

Keep these points in mind when you are selecting a system image target for +your AVD:

+ + +

Creating the AVD

+ +

When you've selected the target you want to use and made a note of its ID, +use the android create avd command to create the AVD, supplying the +target ID as the -t argument. Here's an example that creates an +AVD with name "my_android1.5" and target ID "2" (the standard Android 1.5 +system image in the list above):

+ +
android create avd -n my_android1.5 -t 2
+ +

If the target you selected was a standard Android system image ("Type: +platform"), the android tool next asks you whether you want to create a custom +hardware profile.

+ +
Android 1.5 is a basic Android platform.
+Do you wish to create a custom hardware profile [no]
+ +

If you want to set custom hardware emulation options for the AVD, enter +"yes" and set values as needed. If you want to use the default hardware +emulation options for the AVD, just press the return key (the default is "no"). +The android tool creates the AVD with name and system image mapping you +requested, with the options you specified. + +

If you are creating an AVD whose target is an SDK add-on, +the android tool does not allow you to set hardware emulation options. It +assumes that the provider of the add-on has set emulation options appropriately +for the device that the add-on is modeling, and so prevents you from resetting +the options.

+ +

For a list of options you can use in the android create avd +command, see the table in Command-line options for AVDs, +at the bottom of +this page.

+ +

Setting hardware emulation options

+ +

When are creating a new AVD that uses a standard Android system image ("Type: +platform"), the android tool lets you set hardware emulation options for virtual +device. The table below lists the options available and the default values, as +well as the names of properties that store the emulated hardware options in the AVD's +configuration file (the config.ini file in the AVD's local directory).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CharacteristicDescriptionProperty
Device ram sizeThe amount of physical RAM on the device, in megabytes. Default value is "96". +hw.ramSize
Touch-screen supportWhether there is a touch screen or not on the device. Default value is "yes".hw.touchScreen + + +
Trackball support Whether there is a trackball on the device. Default value is "yes".hw.trackBall
Keyboard supportWhether the device has a QWERTY keyboard. Default value is "yes".hw.keyboard
DPad supportWhether the device has DPad keys. Default value is "yes".hw.dPad
GSM modem supportWhether there is a GSM modem in the device. Default value is "yes".hw.gsmModem
Camera supportWhether the device has a camera. Default value is "no".hw.camera
Maximum horizontal camera pixelsDefault value is "640".hw.camera.maxHorizontalPixels
Maximum vertical camera pixelsDefault value is "480".hw.camera.maxVerticalPixels
GPS supportWhether there is a GPS in the device. Default value is "yes".hw.gps
Battery supportWhether the device can run on a battery. Default value is "yes".hw.battery
AccelerometerWhether there is an accelerometer in the device. Default value is "yes".hw.accelerometer
Audio recording supportWhether the device can record audio. Default value is "yes".hw.audioInput
Audio playback supportWhether the device can play audio. Default value is "yes".hw.audioOutput
SD Card supportWhether the device supports insertion/removal of virtual SD Cards. Default value is "yes".hw.sdCard
Cache partition supportWhether we use a /cache partition on the device. Default value is "yes".disk.cachePartition
Cache partition sizeDefault value is "66MB".disk.cachePartition.size
+ +

Default location of the AVD files

+ +

When you create an AVD, the android tool creates a dedicated directory for it +on your development computer. The directory contains the AVD configuration file, +the user data image and SD card image (if available), and any other files +associated with the device. Note that the directory does not contain a system +image — instead, the AVD configuration file contains a mapping to the +system image, which it loads when the AVD is launched.

+ +

The android tool also creates a <AVD name>.ini file for the AVD at the +root of the .android/avd directory on your computer. The file specifies the +location of the AVD directory and always remains at the root the .android +directory.

+ +

By default, the android tool creates the AVD directory inside +~/.android/avd/ (on Linux/Mac), C:\Documents and +Settings\<user>\.android\ on Windows XP, and +C:\Users\<user>\.android\ on Windows Vista. +If you want to use a custom location for the AVD directory, you +can do so by using the -p <path> option when +you create the AVD:

+ +
android create avd -n my_android1.5 -t 2 -p path/to/my/avd
+ +

If the .android directory is hosted on a network drive, we recommend using +the -p option to place the AVD directory in another location. +The AVD's .ini file remains in the .android directory on the network +drive, regardless of the location of the AVD directory.

+ +

Moving an AVD

+ +

If you want to move or rename an AVD, you can do so using this command:

+ +
android move avd -n <name> [-<option> <value>] ...
+ +

The options for this command are listed in Command-line +options for AVDs at the bottom of this page.

+ +

Updating an AVD

+ +

If, for any reason, the platform/add-on root folder has its name changed (maybe because the user has installed an update of the platform/add-on) then the AVD will not be able to load the system image that it is mapped to. In this case, the android list targets command will produce this output: + +

The following Android Virtual Devices could not be loaded: 
+Name: foo 
+Path: <path>/.android/avd/foo.avd 
+Error: Invalid value in image.sysdir. Run 'android update avd -n foo' 
+ +

To fix this error, use the android update avd command to recompute the path to the system images.

+ +

Deleting an AVD

+ +

You can use the android tool to delete an AVD. Here is the command usage:

+ +
android delete avd -n <name> 
+ +

When you issue the command, the android tool looks for an AVD matching the +specified name deletes the AVD's directory and files.

+ + +

Command-line options for AVDs

+ +

The table below lists the command-line options you can use with the +android tool.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionOptionDescriptionComments
list avds List all known AVDs, with name, path, target, and skin.  
create avd-n <name> or
The name for the AVD.Required
-t <targetID>Target ID of the system image to use with the new AVD.Required. To obtain a list of available targets, use android list + targets.
-c <path> or
+ -c <size>[K|M]
The path to the SD card image to use with this AVD or the size of a new SD + card image to create for this AVD.Examples: -c path/to/sdcard or -c 1000M
-fForce creation of the AVDBy default, if the name of the AVD being created matches that of an + existing AVD, the android tool will not create the new AVD or overwrite + the existing AVD. If you specify the -f option, however, the + android tool will automatically overwrite any existing AVD that has the + same name as the new AVD. The files and data of the existing AVD are + deleted.
-p <path>Path to the location at which to create the directory for this AVD's +files. 
-s <name> or
+ -s <dimensions>
The skin to use for this AVD, identified by name or dimensions.The android tool scans for a matching skin by name or dimension in the +skins/ directory of the target referenced in the -t +<targetID> argument. Example: -s HVGA-L
delete avd-n <name>Delete the specified AVD.Required
move avd-n <name>The name of the AVD to move.Required
-p <path>The path to the new location for the AVD. 
-r <new-name>Rename the AVD. 
update avds Recompute the paths to all system images. 
+ From 54bd245f574379319769471279c7cbf295feac46 Mon Sep 17 00:00:00 2001 From: Andy Stadler <> Date: Tue, 21 Apr 2009 11:48:54 -0700 Subject: [PATCH 07/70] AI 147162: Emphasize in the javadoc that the "pkg" parameters to InstrumentationTestCase and its descendants should be the package manager package name (not the java package name, and not the test package) of the package holding the Activity under test. Added similar notations to the ApiDemos call sites. JAVADOC ONLY - should be safe change for cupcake sdk. BUG=1783981 Automated import of CL 147162 --- core/java/android/test/InstrumentationTestCase.java | 9 +++++++++ .../test/ActivityInstrumentationTestCase.java | 12 ++++++++++-- .../test/ActivityInstrumentationTestCase2.java | 6 +++++- .../android/test/SingleLaunchActivityTestCase.java | 6 +++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/core/java/android/test/InstrumentationTestCase.java b/core/java/android/test/InstrumentationTestCase.java index 82f2ef9dd8ebb..470ab0d9a48e6 100644 --- a/core/java/android/test/InstrumentationTestCase.java +++ b/core/java/android/test/InstrumentationTestCase.java @@ -62,6 +62,10 @@ public class InstrumentationTestCase extends TestCase { * action = {@link Intent#ACTION_MAIN} * extras = null, unless a custom bundle is provided here * All other fields are null or empty. + * + *

NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. * * @param pkg The package hosting the activity to be launched. * @param activityCls The activity class to launch. @@ -82,6 +86,11 @@ public class InstrumentationTestCase extends TestCase { /** * Utility method for launching an activity with a specific Intent. + * + *

NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. + * * @param pkg The package hosting the activity to be launched. * @param activityCls The activity class to launch. * @param intent The intent to launch with diff --git a/test-runner/android/test/ActivityInstrumentationTestCase.java b/test-runner/android/test/ActivityInstrumentationTestCase.java index e5a9991ae5571..f6b31ad208f7d 100644 --- a/test-runner/android/test/ActivityInstrumentationTestCase.java +++ b/test-runner/android/test/ActivityInstrumentationTestCase.java @@ -40,7 +40,11 @@ public abstract class ActivityInstrumentationTestCase boolean mInitialTouchMode = false; /** - * @param pkg The package of the instrumentation. + * NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. + * + * @param pkg The package hosting the activity to be launched. * @param activityClass The activity to test. */ public ActivityInstrumentationTestCase(String pkg, Class activityClass) { @@ -48,7 +52,11 @@ public abstract class ActivityInstrumentationTestCase } /** - * @param pkg The package of the instrumentation. + * NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. + * + * @param pkg The package hosting the activity to be launched. * @param activityClass The activity to test. * @param initialTouchMode true = in touch mode */ diff --git a/test-runner/android/test/ActivityInstrumentationTestCase2.java b/test-runner/android/test/ActivityInstrumentationTestCase2.java index 7a84ecae7b388..679f6346537b9 100644 --- a/test-runner/android/test/ActivityInstrumentationTestCase2.java +++ b/test-runner/android/test/ActivityInstrumentationTestCase2.java @@ -46,7 +46,11 @@ public abstract class ActivityInstrumentationTestCase2 Intent mActivityIntent = null; /** - * @param pkg The package of the instrumentation. + * NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. + * + * @param pkg The package hosting the activity to be launched. * @param activityClass The activity to test. */ public ActivityInstrumentationTestCase2(String pkg, Class activityClass) { diff --git a/test-runner/android/test/SingleLaunchActivityTestCase.java b/test-runner/android/test/SingleLaunchActivityTestCase.java index 8d43b732cf857..b63b3ce19759c 100644 --- a/test-runner/android/test/SingleLaunchActivityTestCase.java +++ b/test-runner/android/test/SingleLaunchActivityTestCase.java @@ -37,7 +37,11 @@ public abstract class SingleLaunchActivityTestCase private static boolean sActivityLaunchedFlag = false; /** - * @param pkg The package of the instrumentation. + * NOTE: The parameter pkg must refer to the package identifier of the + * package hosting the activity to be launched, which is specified in the AndroidManifest.xml + * file. This is not necessarily the same as the java package name. + * + * @param pkg The package hosting the activity to be launched. * @param activityClass The activity to test. */ public SingleLaunchActivityTestCase(String pkg, Class activityClass) { From a1cde99f322693e1f12fc224e98bc5340ebfdf1b Mon Sep 17 00:00:00 2001 From: Andy Stadler <> Date: Tue, 21 Apr 2009 11:50:39 -0700 Subject: [PATCH 08/70] AI 147163: Copy documentation for the various search-by-voice flags that were already listed in attrs.xml into SearchManager.java. Add a (brief - no time for more) description about how to add search by voice to apps. JAVADOC ONLY - should be safe change for cupcake sdk. BUG=1554704 Automated import of CL 147163 --- core/java/android/app/SearchManager.java | 82 +++++++++++++++++++++++- core/res/res/values/attrs.xml | 7 +- 2 files changed, 84 insertions(+), 5 deletions(-) diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index c1d66f4e7d7bc..ecdd3f8cb5797 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -807,7 +807,7 @@ import android.view.KeyEvent; * this way would be if you wish to partition it into separate sections with different search * behaviors; Otherwise this configuration is not recommended. * - *

Additional Metadata for search suggestions. If you have defined a content provider + *

Additional metadata for search suggestions. If you have defined a content provider * to generate search suggestions, you'll need to publish it to the system, and you'll need to * provide a bit of additional XML metadata in order to configure communications with it. * @@ -880,7 +880,7 @@ import android.view.KeyEvent; * * * - *

Additional Metadata for search action keys. For each action key that you would like to + *

Additional metadata for search action keys. For each action key that you would like to * define, you'll need to add an additional element defining that key, and using the attributes * discussed in Action Keys. A simple example is shown here: * @@ -956,6 +956,84 @@ import android.view.KeyEvent; * * * + *

Additional metadata for enabling voice search. To enable voice search for your + * activity, you can add fields to the metadata that enable and configure voice search. When + * enabled (and available on the device), a voice search button will be displayed in the + * Search UI. Clicking this button will launch a voice search activity. When the user has + * finished speaking, the voice search phrase will be transcribed into text and presented to the + * searchable activity as if it were a typed query. + * + *

Elements of search metadata that support voice search: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Attribute Description Required?
android:voiceSearchModeIf provided and non-zero, enables voice search. (Voice search may not be + * provided by the device, in which case these flags will have no effect.) The + * following mode bits are defined: + * + * + * + * + * + * + * + * + * + * + * + * + *
showVoiceSearchButtonIf set, display a voice search button. This only takes effect if voice + * search is available on the device. If set, then launchWebSearch or + * launchRecognizer must also be set.
launchWebSearchIf set, the voice search button will take the user directly to a + * built-in voice web search activity. Most applications will not use this + * flag, as it will take the user away from the activity in which search + * was invoked.
launchRecognizerIf set, the voice search button will take the user directly to a + * built-in voice recording activity. This activity will prompt the user + * to speak, transcribe the spoken text, and forward the resulting query + * text to the searchable activity, just as if the user had typed it into + * the search UI and clicked the search button.
No
android:voiceLanguageModelIf provided, this specifies the language model that should be used by the voice + * recognition system. + * See {@link android.speech.RecognizerIntent#EXTRA_LANGUAGE_MODEL} + * for more information. If not provided, the default value + * {@link android.speech.RecognizerIntent#LANGUAGE_MODEL_FREE_FORM} will be used.No
android:voicePromptTextIf provided, this specifies a prompt that will be displayed during voice input. + * (If not provided, a default prompt will be displayed.)No
android:voiceLanguageIf provided, this specifies the spoken language to be expected. This is only + * needed if it is different from the current value of + * {@link java.util.Locale#getDefault()}. + * No
android:voiceMaxResultsIf provided, enforces the maximum number of results to return, including the "best" + * result which will always be provided as the SEARCH intent's primary query. Must be + * one or greater. Use {@link android.speech.RecognizerIntent#EXTRA_RESULTS} + * to get the results from the intent. If not provided, the recognizer will choose + * how many results to return.No
+ * * *

Passing Search Context

* diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 4258804193486..88b8316022bfe 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -2703,12 +2703,13 @@ + will take the user away from the activity in which search was invoked. --> + transcribe the spoken text, and forward the resulting query + text to the searchable activity, just as if the user had typed it into + the search UI and clicked the search button. --> From f87d0580d2a6aadf7c84e922ef3f7b774885dfda Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Tue, 21 Apr 2009 14:11:32 -0700 Subject: [PATCH 09/70] AI 147211: Update emulator doc for new usage with avds. BUG=1790234 Automated import of CL 147211 --- docs/html/guide/developing/tools/emulator.jd | 271 ++++++++++++------- 1 file changed, 167 insertions(+), 104 deletions(-) diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd index 769491b4f14bd..11c0da5afa546 100644 --- a/docs/html/guide/developing/tools/emulator.jd +++ b/docs/html/guide/developing/tools/emulator.jd @@ -14,30 +14,31 @@ using your mouse or keyboard to generate events for your application. It also provides a screen in which your application is displayed, together with any other Android applications running.

-

To help you model and test your application, the emulator lets your application -use the services of the Android platform to invoke other applications, access the -network, play audio and video, store and retrieve data, notify the user, and render -graphical transitions and themes.

+

To let you model and test your application more easily, the emulator supports +Android Virtual Device (AVD) configurations. AVDs let you specify the Android +platform that you want to run on the emulator, as well as the hardware options +and emulator skin files tht you want to use. Once your application is running on +the emulator, it can use the services of the Android platform to invoke other +applications, access the network, play audio and video, store and retrieve data, +notify the user, and render graphical transitions and themes.

The emulator also includes a variety of debug capabilities, such as a console from which you can log kernel output, simulate application interrupts (such as arriving SMS messages or phone calls), and simulate latency effects and dropouts on the data channel.

- - -

In this document:

  1. Overview
  2. Starting and Stopping the Emulator
  3. +
  4. Android Virtual Devices and the Emulator
  5. Controlling the Emulator
  6. Emulator Startup Options
  7. Working with Emulator Disk Images
      -
    1. System Images
    2. +
    3. Default Images
    4. Runtime Images: User Data and SD Card
    5. Temporary Images
  8. @@ -76,7 +77,8 @@ on the data channel.

  9. Installing Applications on the Emulator
  10. SD Card Emulation
      -
    1. Creating a Disk Image
    2. +
    3. Creating an SD card image using the android tool
    4. +
    5. Creating an SD card image using mksdcard
    6. Copying Files to a Disk Image
    7. Loading the Disk Image at Emulator Startup
  11. @@ -92,12 +94,14 @@ on the data channel.

    Overview

    The Android emulator is a QEMU-based application that provides a virtual ARM -mobile device on which you can run your Android applications. It provides a full -Android system stack, down to the kernel level, and includes a set of +mobile device on which you can run your Android applications. It runs a full +Android system stack, down to the kernel level, that includes a set of preinstalled applications (such as the dialer) that you can access from your -applications. It provides a skinnable mobile device UI, customizable key -mappings, and a variety of commands and options for controlling the behaviors of -the emulated environment.

    +applications. You can choose what version of the Android system you want to +run in the emulator by configuring AVDs, and you can also customize the +mobile device skin and key mappings. When launching the emulator and at runtime, +you can use a variety of commands and options to control the its behaviors. +

    The Android system image distributed in the SDK contains ARM machine code for the Android Linux kernel, the native libraries, the Dalvik VM, and the various @@ -132,9 +136,9 @@ it for developing Android applications.

    During development and testing of your application, you install and run your application in the Android emulator. You can launch the emulator as a standalone application, from a command line, or you can use it as part of your Eclipse -development environment. In either case, you can specify the startup options -described in this document to control the emulator. -

    +development environment. In either case, you specify the AVD configuration to +load and any startup options you want to use, as described in this document. +

    You can run your application on a single instance of the emulator or, depending on your needs, you can start multiple emulator instances and run your @@ -146,9 +150,14 @@ Emulation, SMS Emulation, and Emulator Networking

    To start an instance of the emulator from the command line, change to the -tools/ folder of the SDK and enter emulator or -./emulator. This initializes the Android system and you will see -the emulator window appear on your screen.

    +tools/ folder of the SDK. Enter emulator command +like this:

    + +
    emulator -avd <avd_name>
    + +

    This initializes the emulator and loads an AVD configuration (see the next +section for more information about AVDs). You will see the emulator window +appear on your screen.

    If you are working in Eclipse, the ADT plugin for Eclipse installs your application and starts the emulator automatically, when you run or debug @@ -163,6 +172,27 @@ on the Emulator for information about how to install your application.

    + + +

    Android Virtual Devices and the Emulator

    + +

    To use the emulator, you first must create one or more AVD configurations. In each +configuration, you specify an Android platform to run in the emulator and the set of hardware +options and emulator skin you want to use. Then, when you launch the emulator, you specify +the AVD configuration that you want to load.

    + +

    To specify the AVD you want to load when starting the emulator, you use the +-avd argument, as shown in the previous section.

    + +

    Each AVD functions as an independent device, with its own private storage for +user data, SD card, and so on. When you launch the emulator with an AVD configuration, +it automatically loads the user data and SD card data from the AVD directory. By default, +the emulator stores the user data, SD card data, and cache in the AVD directory.

    + +

    To create and manage AVDs you use the android tool, a command-line utility +included in the SDK. For complete information about how to set up AVDs, see Android Virtual Devices.

    +

    Controlling the Emulator

    You can use emulator startup options and when launching the emulator, to control its appearance or behavior. Here's the command-line usage for launching the emulator with options:

    -
    emulator [-<option> [<value>]] ... [-<qemu args>]
    +
    emulator -avd <avd_name> [-<option> [<value>]] ... [-<qemu args>]

    The table below summarizes the available options.

    @@ -292,7 +322,7 @@ Here's the command-line usage for launching the emulator with options:

    - Help + Help -help Print a list of all emulator options.   @@ -331,9 +361,22 @@ Here's the command-line usage for launching the emulator with options:

    Print help for defining a custom key mappings file.   - - Disk Images + -help-virtual-device + Print help for Android Virtual Device usage. +   + + + AVD + -avd <avd_name> or
    + @<avd_name> + Required. Specifies the AVD to load for this emulator + instance. + You must create an AVD configuration before launching the emulator. For + information, see
    Android + Virtual Devices. + + Disk Images -cache <filepath> Use <filepath> as the working cache partition image. Optionally, you can specify a path relative to the current working directory. @@ -345,13 +388,7 @@ Here's the command-line usage for launching the emulator with options:

    Use <filepath> as the working user-data disk image. Optionally, you can specify a path relative to the current working directory. If -data is not used, the emulator looks for a file named "userdata-qemu.img" - in the directory specified in <datadir>. ~/.android/SDK-1.0 (on Linux/Mac) or - C:\Documents and Settings\<user>\Local Settings\Application Data\Android\SDK-1.0 (on Windows). -

    If you use -data <filepath> but the file does not exist, the emulator creates - a file at that location using the specified name.

    -

    See Running Multiple Emulator Instances for information about how - to use -data to let multiple emulator instances preserve their user data across sessions.

    -

    For more information on disk images, use -help-disk-images.

    + in the storage area of the AVD being used (see -avd). + -initdata <filepath> When resetting the user-data image (through -wipe-data), copy the contents of this file to the new user-data disk image. By default, the emulator copies the <system>/userdata.img. Optionally, you can specify a path relative to the current working directory. See also -wipe-data.

    For more information on disk images, use -help-disk-images.

    + -nocache Start the emulator without a cache partition. @@ -400,12 +441,14 @@ Here's the command-line usage for launching the emulator with options:

    Optionally, you can specify a path relative to the current working directory. For more information on disk images, use -help-disk-images.

    + -wipe-data Reset the current user-data disk image (that is, the file specified by -datadir and @@ -679,7 +722,8 @@ scale in direct relationship with <delay> values.

    -skin <skinID> Start the emulator with the specified skin. - The SDK includes a choice of four skins:
    + The standard Android platforms includes a choice of + four skins:
  12. HVGA-L (480x320, landscape)
  13. HVGA-P (320x480, portrait) (default)
  14. QVGA-L (320x240, landscape)
  15. @@ -702,10 +746,16 @@ disk image containing an emulator-specific kernel, the Android system, a ramdisk image, and writeable images for user data and simulated SD card.

    To run properly, the emulator requires access to a specific set of disk image -files. The Android SDK includes default versions of the required images, stored -in predetermined locations in the SDK directory structure. At startup, the -emulator looks for and reads the image files, using their default names and -storage locations.

    +files. By default, the Emulator always looks for the disk images in the +private storage area of the AVD in use. If no images exist there when +the Emulator is launched, it creates the images in the AVD directory based on +default versions stored in the SDK.

    + +

    Note: The default storage location for +AVDs is in ~/.android/avd on OS X and Linux, C:\Documents and +Settings\<user>\.android\ on Windows XP, and +C:\Users\<user>\.android\ +on Windows Vista.

    To let you use alternate or custom versions of the image files, the emulator provides startup options that override the default locations and filenames of @@ -713,32 +763,26 @@ the image files. When you use the options, the emulator searches for the image file under the image name or location that you specify; if it can not locate the image, it reverts to using the default names and location.

    -

    The emulator uses three types of image files: system image files, runtime +

    The emulator uses three types of image files: default image files, runtime image files, and temporary image files. The sections below describe how to override the location/name of each type of file.

    - -

    System Images

    + +

    Default Images

    -

    System images contain system data and default settings without which the -emulator can not run. The image files are read-only — the emulator reads -the images at startup and does not modify them during the session.

    - -

    All of the system image files are stored in a single directory. By default, -the system images are stored in the lib/images' under the -emulator's program location.

    +

    When the emulator launches but does not find an existing user data image in +the active AVD's storage area, it creates a new one from a default version +included in the SDK. The default user data image is read-only. The image +files are read-only.

    The emulator provides the -system <dir> startup option to -let you override the location under which the emulator looks for the system -images files.

    +let you override the location under which the emulator looks for the default +user data image.

    -

    The emulator also provides startup options that let you override the names of -the system images, as described in the table below. When you use one of the -options, the emulator looks in the default directory, or in a custom location -(if you specified -system <dir>). Note that, if you provide -alternate system image file, it must contain the same type of data as the -default. For example, your override of the system.img file must point to a disk -image containing an Android system.

    +

    The emulator also provides a startup option that lets you override the name +of the default user data image, as described in the table below. When you use the +option, the emulator looks in the default directory, or in a custom location +(if you specified -system <dir>).

    @@ -748,6 +792,7 @@ image containing an Android system.

    + @@ -784,13 +829,7 @@ partition and removable storage media on actual device.

    The emulator provides a default user-data disk image. At startup, the emulator creates the default image as a copy of the system user-data image (user-data.img), -described above. The emulator stores the default image in this location on -on your development machine:

    - -
      -
    • Linux and OS X: ~/.android/SDK-1.0
    • -
    • Windows: C:\Documents and Settings\<user>\Local Settings\Application Data\Android\SDK-1.0
    • -
    +described above. The emulator stores the new image with the files of the active AVD.

    + + + + + +API Differences between 2 and 3 + + + + + + + + + + + + + + +<H2> +Frame Alert +</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to <A HREF="changes/changes-summary.html" target="_top">Non-frame version.</A> + + diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html new file mode 100644 index 0000000000000..41f78ab79d971 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_additions.html @@ -0,0 +1,3144 @@ + + + + + + + + + +All Additions Index + + + + + + + + +
    Comments
    userdata.img The initial user-data disk image
    + + + + + + +
    + Filter the Index: +
    +All Differences +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + +
    A  +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +AbsoluteSizeSpan +(Parcel) constructor
    + +ACCELEROMETER_ROTATION +
    + +ACTION_AIRPLANE_MODE_SETTINGS +
    + +ACTION_APPLICATION_DEVELOPMENT_SETTINGS +
    + +ACTION_AUDIO_BECOMING_NOISY +
    + +ACTION_BACKGROUND_DATA_SETTING_CHANGED +
    + +ACTION_DATA_ROAMING_SETTINGS +
    + +ACTION_IMAGE_CAPTURE +
    + +ACTION_INPUT_METHOD_CHANGED +
    + +ACTION_INPUT_METHOD_SETTINGS +
    + +ACTION_INTERNAL_STORAGE_SETTINGS +
    + +ACTION_MANAGE_APPLICATIONS_SETTINGS +
    + +ACTION_MEDIA_CHECKING +
    + +ACTION_MEDIA_NOFS +
    + +ACTION_MEMORY_CARD_SETTINGS +
    + +ACTION_NETWORK_OPERATOR_SETTINGS +
    + +ACTION_OUTSIDE +
    + +ACTION_PACKAGE_DATA_CLEARED +
    + +ACTION_PACKAGE_REPLACED +
    + +ACTION_PHONE_STATE_CHANGED +
    + +ACTION_QUICK_LAUNCH_SETTINGS +
    + +ACTION_SEARCH_LONG_PRESS +
    + +ACTION_SYNC_SETTINGS +
    + +ACTION_SYSTEM_TUTORIAL +
    + +ACTION_USER_DICTIONARY_SETTINGS +
    + +ACTION_USER_PRESENT +
    + +ACTION_VIDEO_CAPTURE +
    + +ACTION_WIFI_IP_SETTINGS +
    + +ActivityInstrumentationTestCase2
    + +ActivityManager.RunningAppProcessInfo
    + +addGpsStatusListener +(Listener)
    + +addOnScrollChangedListener +(OnScrollChangedListener)
    + +addPropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    + +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    + +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    + +addTestProvider +(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)
    + +addToDictionary +
    + +adjustMetaAfterKeypress +(long)
    + +ALIGN_BASELINE +
    + +ALIGN_BOTTOM +
    + +AlignmentSpan.Standard +(Parcel) constructor
    + +allowSingleTap +
    + +AlphabetIndexer
    + +android.appwidget
    + +android.inputmethodservice
    + +android.speech
    + +android.text.format
    + +android.view.inputmethod
    + +animateOnClick +
    + +Annotation +(Parcel) constructor
    + +applyDisplay +(int, Rect, Rect)
    + +AssetFileDescriptor.AutoCloseInputStream
    + +AssetFileDescriptor.AutoCloseOutputStream
    + +AsyncTask
    + +AsyncTask.Status
    + +AudioFormat
    + +AudioRecord
    + +AudioRecord.OnRecordPositionUpdateListener
    + +AudioTrack
    + +AudioTrack.OnPlaybackPositionUpdateListener
    + +AXIS_CLIP +
    + +AXIS_MINUS_X +
    + +AXIS_MINUS_Y +
    + +AXIS_MINUS_Z +
    + +AXIS_X +
    + +AXIS_Y +
    + +AXIS_Z +
    + + +
    B  +A +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +BackgroundColorSpan +(Parcel) constructor
    + +backgroundDimEnabled +
    + +beginBatchEdit +()
    + +BIND_APPWIDGET +
    + +BIND_INPUT_METHOD +
    + +BOOKMARK +
    + +bottomOffset +
    + +bringPointIntoView +(int)
    + +BUCKET_DISPLAY_NAME +
    + +BUCKET_ID +
    + +BulletSpan +(Parcel) constructor
    + +BUTTON_NEGATIVE +
    + +BUTTON_NEUTRAL +
    + +BUTTON_POSITIVE +
    + + +
    C  +A +B +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +calculateLength +(CharSequence, boolean)
    + +callActivityOnUserLeaving +(Activity)
    + +candidatesArea +
    + +candidatesTextStyleSpans +
    + +CAP_MODE_CHARACTERS +
    + +CAP_MODE_SENTENCES +
    + +CAP_MODE_WORDS +
    + +CATEGORY_INFO +
    + +changeAction +(KeyEvent, int)
    + +changeCursorAndColumns +(Cursor, String[], int[])
    + +changeFlags +(KeyEvent, int)
    + +changeTimeRepeat +(KeyEvent, long, int)
    + +checkInputConnectionProxy +(View)
    + +Chronometer.OnChronometerTickListener
    + +clearComposingText +()
    + +clearListSelection +()
    + +clearMatches +()
    + +clearMetaKeyState
    +  type  +(View, Editable, int) in android.text.method.KeyListener +
    + +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    + +  type  +(View, Editable, int) in android.text.method.MetaKeyKeyListener +
    + +  type  +(Editable, int) in android.text.method.MetaKeyKeyListener +
    + +clearTestProviderEnabled +(String)
    + +clearTestProviderLocation +(String)
    + +clearTestProviderStatus +(String)
    + +CLIP_HORIZONTAL +
    + +CLIP_VERTICAL +
    + +close +()
    + +closeButton +
    + +closeContextMenu +()
    + +codes +
    + +computeDurationHint +()
    + +configPreferences +
    + +ConfigurationInfo
    + +configure +
    + +content +
    + +copy +
    + +copyPixelsFromBuffer +(Buffer)
    + +copyUrl +
    + +createInputStream +()
    + +createOutputStream +()
    + +createWifiLock +(int, String)
    + +CREATOR
    + in  +android.content.res.AssetFileDescriptor +
    + + in  +android.graphics.RectF +
    + +cut +
    + + +
    D  +A +B +C +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +dark_header +
    + +DEBUG_ENABLE_ASSERT +
    + +DEBUG_ENABLE_CHECKJNI +
    + +DEBUG_ENABLE_DEBUGGER +
    + +describeContents
    +  type  +() in android.content.res.AssetFileDescriptor +
    + +  type  +() in android.graphics.RectF +
    + +  type  +() in android.text.Annotation +
    + +  type  +() in android.text.style.AbsoluteSizeSpan +
    + +  type  +() in android.text.style.AlignmentSpan.Standard +
    + +  type  +() in android.text.style.BackgroundColorSpan +
    + +  type  +() in android.text.style.BulletSpan +
    + +  type  +() in android.text.style.ForegroundColorSpan +
    + +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +() in android.text.style.QuoteSpan +
    + +  type  +() in android.text.style.RelativeSizeSpan +
    + +  type  +() in android.text.style.ScaleXSpan +
    + +  type  +() in android.text.style.StrikethroughSpan +
    + +  type  +() in android.text.style.StyleSpan +
    + +  type  +() in android.text.style.SubscriptSpan +
    + +  type  +() in android.text.style.SuperscriptSpan +
    + +  type  +() in android.text.style.TextAppearanceSpan +
    + +  type  +() in android.text.style.TypefaceSpan +
    + +  type  +() in android.text.style.URLSpan +
    + +  type  +() in android.text.style.UnderlineSpan +
    + +deviceHasKey +(int)
    + +deviceHasKeys +(int[])
    + +DexClassLoader
    + +dialog_alert_title +
    + +didTouchFocusSelect +()
    + +dispatchKeyEventPreIme +(KeyEvent)
    + +DISPLAY +
    + +DISPLAY_CLIP_HORIZONTAL +
    + +DISPLAY_CLIP_VERTICAL +
    + +drag +(InstrumentationTestCase, float, float, float, float, int)
    + +dragQuarterScreenDown +(InstrumentationTestCase, Activity)
    + +dragQuarterScreenUp +(InstrumentationTestCase, Activity)
    + +dragViewBy +(InstrumentationTestCase, View, int, int, int)
    + +dragViewTo +(InstrumentationTestCase, View, int, int, int)
    + +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, Activity, View, int) in android.test.TouchUtils +
    + +dragViewToTop
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +dragViewToX +(InstrumentationTestCase, View, int, int)
    + +dragViewToY +(InstrumentationTestCase, View, int, int)
    + +drawBitmap +(int[], int, int, float, float, int, int, boolean, Paint)
    + +dropDownAnchor +
    + +dropDownWidth +
    + +dump
    +  type  +(Printer, String) in android.location.Location +
    + +  type  +(FileDescriptor, String[]) in android.os.Binder +
    + +  type  +(FileDescriptor, String[]) in android.os.IBinder +
    + +dumpCapturedView +(String, Object)
    + +dumpHprofData
    +  type  +(String) in android.os.Debug +
    + +  type  +(String) in dalvik.system.VMDebug +
    + +dumpSpans +(CharSequence, Printer, String)
    + +DynamicDrawableSpan +(int) constructor
    + + +
    E  +A +B +C +D +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +editorExtras +
    + +endBatchEdit +()
    + +EXTRA_APPLICATION_ID +
    + +EXTRA_CREATE_DESCRIPTION +
    + +EXTRA_DATA_REMOVED +
    + +EXTRA_FINISH_ON_COMPLETION +
    + +EXTRA_FORCE_CREATE +
    + +EXTRA_INCOMING_NUMBER +
    + +EXTRA_MAX_BYTES +
    + +EXTRA_MEDIA_ALBUM +
    + +EXTRA_MEDIA_ARTIST +
    + +EXTRA_MEDIA_FOCUS +
    + +EXTRA_MEDIA_TITLE +
    + +EXTRA_OUTPUT +
    + +EXTRA_REPLACING +
    + +EXTRA_SCREEN_ORIENTATION +
    + +EXTRA_STATE +
    + +EXTRA_STATE_IDLE +
    + +EXTRA_STATE_OFFHOOK +
    + +EXTRA_STATE_RINGING +
    + +EXTRA_VIDEO_QUALITY +
    + +extractArea +
    + +extractText +(ExtractedTextRequest, ExtractedText)
    + + +
    F  +A +B +C +D +E +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +fastScrollEnabled +
    + +fillEnabled +
    + +findAll +(String)
    + +findNext +(boolean)
    + +FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET +
    + +FLAG_ACTIVITY_NO_USER_ACTION +
    + +FLAG_ACTIVITY_REORDER_TO_FRONT +
    + +FLAG_ALT_FOCUSABLE_IM +
    + +FLAG_EDITOR_ACTION +
    + +FLAG_FROM_SYSTEM +
    + +FLAG_KEEP_TOUCH_MODE +
    + +FLAG_NO_HISTORY +
    + +FLAG_SOFT_KEYBOARD +
    + +FLAG_UPDATE_CURRENT +
    + +FLAG_WATCH_OUTSIDE_TOUCH +
    + +footerDividersEnabled +
    + +ForegroundColorSpan +(Parcel) constructor
    + +forkAndSpecialize +(int, int, int[], int, int[][])
    + +forkSystemServer +(int, int, int[], int, int[][])
    + +FORMAT_JAPAN +
    + +formatJapaneseNumber +(Editable)
    + +FX_KEYPRESS_DELETE +
    + +FX_KEYPRESS_RETURN +
    + +FX_KEYPRESS_SPACEBAR +
    + +FX_KEYPRESS_STANDARD +
    + + +
    G  +A +B +C +D +E +F +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +GeomagneticField
    + +GestureDetector
    +  GestureDetector +(Context, OnGestureListener) constructor
    + +  GestureDetector +(Context, OnGestureListener, Handler) constructor
    + +GestureDetector.OnDoubleTapListener
    + +get +(Context)
    + +GET_CONFIGURATIONS +
    + +GET_UNINSTALLED_PACKAGES +
    + +getAllowFileAccess +()
    + +getBackgroundDataSetting +()
    + +getBoolean +(int)
    + +getBuiltInZoomControls +()
    + +getButton +(int)
    + +getCapsMode +(CharSequence, int, int)
    + +getCharacters +()
    + +getDeclaredLength +()
    + +getDefaultSensor +(int)
    + +getDeviceConfigurationInfo +()
    + +getDialog +()
    + +getDoubleTapTimeout +()
    + +getDrawable
    +  type  +() in android.graphics.drawable.RotateDrawable +
    + +  type  +() in android.graphics.drawable.ScaleDrawable +
    + +getDropDownAnchor +()
    + +getDropDownWidth +()
    + +getEditableText +()
    + +getFraction +(int, int, int)
    + +getGpsStatus +(GpsStatus)
    + +getImeActionId +()
    + +getImeActionLabel +()
    + +getImeOptions +()
    + +getInclination +(float[])
    + +getInitialScrollX +(TextView, Spannable)
    + +getInitialScrollY +(TextView, Spannable)
    + +getInputExtras +(boolean)
    + +getInputMethodMode +()
    + +getInputType
    +  type  +() in android.text.method.DateKeyListener +
    + +  type  +() in android.text.method.DateTimeKeyListener +
    + +  type  +() in android.text.method.DialerKeyListener +
    + +  type  +() in android.text.method.DigitsKeyListener +
    + +  type  +() in android.text.method.KeyListener +
    + +  type  +() in android.text.method.MultiTapKeyListener +
    + +  type  +() in android.text.method.QwertyKeyListener +
    + +  type  +() in android.text.method.TextKeyListener +
    + +  type  +() in android.text.method.TimeKeyListener +
    + +  type  +() in android.widget.TextView +
    + +getItem +(int)
    + +getKeyProgressIncrement +()
    + +getLaunchIntentForPackage
    +  type  +(String) in android.content.pm.PackageManager +
    + +  type  +(String) in android.test.mock.MockPackageManager +
    + +getLayoutDimension +(int, int)
    + +getListSelection +()
    + +getListView +()
    + +getLoggingMXBean +()
    + +getLong
    +  type  +(ContentResolver, String) in android.provider.Settings.System +
    + +  type  +(ContentResolver, String, long) in android.provider.Settings.System +
    + +getMaxAvailableHeight +(View, int)
    + +getMaxKeyCode +()
    + +getMetaState
    +  type  +(long) in android.text.method.MetaKeyKeyListener +
    + +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    + +getNeighboringCellInfo +()
    + +getOnChronometerTickListener +()
    + +getOnItemClickListener +()
    + +getOnItemSelectedListener +()
    + +getOrientation +(float[], float[])
    + +getOriginalUrl
    +  type  +() in android.webkit.WebHistoryItem +
    + +  type  +() in android.webkit.WebView +
    + +getPluginData
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptHandler +
    + +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptRegistry +
    + +getPrivateImeOptions +()
    + +getRotationMatrix +(float[], float[], float[], float[])
    + +getRunningAppProcesses +()
    + +getScaledDoubleTapSlop +()
    + +getScaledEdgeSlop +()
    + +getScaledFadingEdgeLength +()
    + +getScaledMaximumDrawingCacheSize +()
    + +getScaledMinimumFlingVelocity +()
    + +getScaledScrollBarSize +()
    + +getScaledTouchSlop +()
    + +getScaledWindowTouchSlop +()
    + +getSensorList +(int)
    + +getSize +(View)
    + +getSpanTypeId
    +  type  +() in android.text.Annotation +
    + +  type  +() in android.text.style.AbsoluteSizeSpan +
    + +  type  +() in android.text.style.AlignmentSpan.Standard +
    + +  type  +() in android.text.style.BackgroundColorSpan +
    + +  type  +() in android.text.style.BulletSpan +
    + +  type  +() in android.text.style.ForegroundColorSpan +
    + +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +() in android.text.style.QuoteSpan +
    + +  type  +() in android.text.style.RelativeSizeSpan +
    + +  type  +() in android.text.style.ScaleXSpan +
    + +  type  +() in android.text.style.StrikethroughSpan +
    + +  type  +() in android.text.style.StyleSpan +
    + +  type  +() in android.text.style.SubscriptSpan +
    + +  type  +() in android.text.style.SuperscriptSpan +
    + +  type  +() in android.text.style.TextAppearanceSpan +
    + +  type  +() in android.text.style.TypefaceSpan +
    + +  type  +() in android.text.style.URLSpan +
    + +  type  +() in android.text.style.UnderlineSpan +
    + +getStartX +()
    + +getStartY +()
    + +getStatSize +()
    + +getSubtype +()
    + +getSubtypeName +()
    + +getSystemSharedLibraryNames
    +  type  +() in android.content.pm.PackageManager +
    + +  type  +() in android.test.mock.MockPackageManager +
    + +getTextFilter +()
    + +getThread +()
    + +getTimeZoneDatabaseVersion +()
    + +getUserAgentString +()
    + +getVerticalAlignment +()
    + +getWindowVisibleDisplayFrame +(Rect)
    + +GLSurfaceView
    + +GLSurfaceView.EGLConfigChooser
    + +GLSurfaceView.GLWrapper
    + +GLSurfaceView.Renderer
    + +GpsSatellite
    + +GpsStatus
    + +GpsStatus.Listener
    + + +
    H  +A +B +C +D +E +F +G +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +handle +
    + +handleKeyDown +(long, int, KeyEvent)
    + +handleKeyUp +(long, int, KeyEvent)
    + +Handler
    +  Handler +(Callback) constructor
    + +  Handler +(Looper, Callback) constructor
    + +Handler.Callback
    + +HAPTIC_FEEDBACK_ENABLED
    + in  +android.provider.Settings.System +
    + + in  +android.view.View +
    + +HapticFeedbackConstants
    + +hapticFeedbackEnabled +
    + +hardKeyboardHidden +
    + +HARDKEYBOARDHIDDEN_NO +
    + +HARDKEYBOARDHIDDEN_UNDEFINED +
    + +HARDKEYBOARDHIDDEN_YES +
    + +hasSoftInputMode +()
    + +hasWindowFocus +()
    + +headerDividersEnabled +
    + +horizontalGap +
    + +HorizontalScrollView
    + + +
    I  +A +B +C +D +E +F +G +H +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +ic_btn_speak_now +
    + +iconPreview +
    + +ImageSpan
    +  ImageSpan +(Context, Uri, int) constructor
    + +  ImageSpan +(Context, int, int) constructor
    + +  ImageSpan +(Bitmap, int) constructor
    + +  ImageSpan +(Drawable, int) constructor
    + +  ImageSpan +(Drawable, String, int) constructor
    + +imeActionId +
    + +imeActionLabel +
    + +imeExtractEnterAnimation +
    + +imeExtractExitAnimation +
    + +imeFullscreenBackground +
    + +imeOptions +
    + +inferStreamType +()
    + +initialLayout +
    + +innerRadius +
    + +INPUT_METHOD_FROM_FOCUSABLE +
    + +INPUT_METHOD_NEEDED +
    + +INPUT_METHOD_NOT_NEEDED +
    + +INPUT_METHOD_SERVICE +
    + +inputArea +
    + +inputExtractEditText +
    + +InputType
    + +inputType +
    + +INSTALL_FAILED_CONFLICTING_PROVIDER +
    + +INTENT_ACTION_MEDIA_SEARCH +
    + +INTENT_ACTION_STILL_IMAGE_CAMERA +
    + +INTENT_ACTION_VIDEO_CAMERA +
    + +intentForPosition +(int)
    + +IntentService
    + +INTERVAL_DAY +
    + +INTERVAL_FIFTEEN_MINUTES +
    + +INTERVAL_HALF_DAY +
    + +INTERVAL_HALF_HOUR +
    + +INTERVAL_HOUR +
    + +isAboveAnchor +()
    + +isBluetoothA2dpOn +()
    + +isClippingEnabled +()
    + +isDebuggingEnabled +()
    + +isDefault +
    + +isFastScrollEnabled +()
    + +isFillEnabled +()
    + +isHapticFeedbackEnabled +()
    + +isInEditMode +()
    + +isInputMethodTarget +()
    + +isLooping +()
    + +isModifier +
    + +isOutsideTouchable +()
    + +isPerformingCompletion +()
    + +isRepeatable +
    + +isRoaming +()
    + +isSafeMode
    +  type  +() in android.content.pm.PackageManager +
    + +  type  +() in android.test.mock.MockPackageManager +
    + +isScrollContainer +
    + +isSelectingMetaTracker +(CharSequence, Object)
    + +isSmoothScrollbarEnabled +()
    + +isSticky +
    + +isTouchable +()
    + + +java.beans
    + +JetPlayer
    + +JetPlayer.OnJetEventListener
    + + +
    K  +A +B +C +D +E +F +G +H +I +J +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +KEY_LOCATION_CHANGED +
    + +KEY_PROVIDER_ENABLED +
    + +KEY_STATUS_CHANGED +
    + +keyBackground +
    + +keyboardMode +
    + +keyboardView +
    + +KEYCODE_MEDIA_FAST_FORWARD +
    + +KEYCODE_MEDIA_NEXT +
    + +KEYCODE_MEDIA_PLAY_PAUSE +
    + +KEYCODE_MEDIA_PREVIOUS +
    + +KEYCODE_MEDIA_REWIND +
    + +KEYCODE_MEDIA_STOP +
    + +KEYCODE_MUTE +
    + +keyEdgeFlags +
    + +KeyEvent
    +  KeyEvent +(KeyEvent) constructor
    + +  KeyEvent +(long, String, int, int) constructor
    + +keyHeight +
    + +keyIcon +
    + +keyLabel +
    + +keyOutputText +
    + +keyPreviewHeight +
    + +keyPreviewLayout +
    + +keyPreviewOffset +
    + +keyTextColor +
    + +keyTextSize +
    + +keyWidth +
    + + +
    L  +A +B +C +D +E +F +G +H +I +J +K +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +labelTextSize +
    + +launchActivityWithIntent +(String, Class<T>, Intent)
    + +LauncherActivity.IconResizer
    + +LauncherActivity.ListItem
    + +LeadingMarginSpan.Standard +(Parcel) constructor
    + +LiveFolders
    + +load
    +  type  +(AssetFileDescriptor, int) in android.media.SoundPool +
    + +  type  +(FileDescriptor, long, long, int) in android.media.SoundPool +
    + +loadDex +(String, String, int)
    + +LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED +
    + +longClickView +(InstrumentationTestCase, View)
    + + +
    M  +A +B +C +D +E +F +G +H +I +J +K +L +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +makeListItems +()
    + +mayUseInputMethod +(int)
    + +MEDIA_CHECKING +
    + +MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK +
    + +MEDIA_INFO_BAD_INTERLEAVING +
    + +MEDIA_INFO_NOT_SEEKABLE +
    + +MEDIA_INFO_UNKNOWN +
    + +MEDIA_INFO_VIDEO_TRACK_LAGGING +
    + +MEDIA_NOFS +
    + +MEDIA_RECORDER_ERROR_UNKNOWN +
    + +MEDIA_RECORDER_INFO_MAX_DURATION_REACHED +
    + +MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED +
    + +MEDIA_RECORDER_INFO_UNKNOWN +
    + +MediaPlayer.OnInfoListener
    + +MediaPlayer.OnVideoSizeChangedListener
    + +MediaRecorder.OnErrorListener
    + +MediaRecorder.OnInfoListener
    + +MediaRecorder.VideoEncoder
    + +MediaRecorder.VideoSource
    + +MODE_APPEND +
    + +MOUNT_FORMAT_FILESYSTEMS +
    + +moveCursorToVisibleOffset +()
    + +mutate +()
    + +mVerticalAlignment +
    + + +
    N  +A +B +C +D +E +F +G +H +I +J +K +L +M +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +NeighboringCellInfo
    + +NoCopySpan
    + +NoCopySpan.Concrete
    + +noHistory +
    + +NUMBER_OF_SONGS_FOR_ARTIST +
    + + +
    O  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +P +Q +R +S +T +U +V +W +Y + TOP +

    +onBeginBatchEdit +()
    + +onCheckIsTextEditor +()
    + +onCommitCompletion +(CompletionInfo)
    + +onContentChanged +()
    + +onCreateInputConnection +(EditorInfo)
    + +onDoubleTap +(MotionEvent)
    + +onDoubleTapEvent +(MotionEvent)
    + +onEditorAction +(int)
    + +onEndBatchEdit +()
    + +onFinishTemporaryDetach +()
    + +onKeyOther
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ArrowKeyMovementMethod +
    + +  type  +(View, Editable, KeyEvent) in android.text.method.BaseKeyListener +
    + +  type  +(View, Editable, KeyEvent) in android.text.method.KeyListener +
    + +  type  +(TextView, Spannable, KeyEvent) in android.text.method.MovementMethod +
    + +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ScrollingMovementMethod +
    + +onKeyPreIme +(int, KeyEvent)
    + +onPrivateIMECommand +(String, Bundle)
    + +onSelectionChanged +(int, int)
    + +onSingleTapConfirmed +(MotionEvent)
    + +onStartTemporaryDetach +()
    + +onTextContextMenuItem +(int)
    + +onUserInteraction +()
    + +onUserLeaveHint +()
    + +openAssetFile +(Uri, String)
    + +openAssetFileDescriptor +(Uri, String)
    + +openOutputStream +(Uri, String)
    + +openRawResource +(int, TypedValue)
    + +OrientationEventListener
    + +OrientationListener +(Context, int) constructor
    + + +
    P  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +Q +R +S +T +U +V +W +Y + TOP +

    +ParcelableSpan
    + +parseBundleExtra +(String, AttributeSet, Bundle)
    + +parseBundleExtras +(XmlResourceParser, Bundle)
    + +paste +
    + +peekService +(Context, Intent)
    + +performHapticFeedback
    +  type  +(int) in android.view.View +
    + +  type  +(int, int) in android.view.View +
    + +PHONETIC_NAME
    + in  +android.provider.Contacts.Intents.Insert +
    + + in  +android.provider.Contacts.PeopleColumns +
    + +playSoundEffect +(int, float)
    + +PluginData
    + +popupCharacters +
    + +popupKeyboard +
    + +popupLayout +
    + +PrintStreamPrinter
    + +privateImeOptions +
    + +ProviderTestCase2
    + +putLong +(ContentResolver, String, long)
    + + +
    Q  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +R +S +T +U +V +W +Y + TOP +

    +QuoteSpan +(Parcel) constructor
    + + +
    R  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +S +T +U +V +W +Y + TOP +

    +R.bool
    + +R.integer
    + +RAW_AMR +
    + +readFromParcel +(Parcel)
    + +registerListener
    +  type  +(SensorEventListener, Sensor, int) in android.hardware.SensorManager +
    + +  type  +(SensorEventListener, Sensor, int, Handler) in android.hardware.SensorManager +
    + +RelativeSizeSpan +(Parcel) constructor
    + +remapCoordinateSystem +(float[], int, int, float[])
    + +RemoteViews.ActionException +(Exception) constructor
    + +removeAt +(int)
    + +removeGpsStatusListener +(Listener)
    + +removeOnScrollChangedListener +(OnScrollChangedListener)
    + +removePropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    + +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    + +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    + +removeTestProvider +(String)
    + +removeUpdates +(PendingIntent)
    + +replaceExtras
    +  type  +(Intent) in android.content.Intent +
    + +  type  +(Bundle) in android.content.Intent +
    + +reqFiveWayNav +
    + +reqHardKeyboard +
    + +reqKeyboardType +
    + +reqNavigation +
    + +reqTouchScreen +
    + +requestChildRectangleOnScreen +(View, Rect, boolean)
    + +requestLocationUpdates +(String, long, float, PendingIntent)
    + +resetLockedMeta +(long)
    + +ResourceCursorAdapter +(Context, int, Cursor, boolean) constructor
    + +restartPackage +(String)
    + +restorePicture +(Bundle, File)
    + +ResultReceiver
    + +ROUTE_BLUETOOTH_A2DP +
    + +ROUTE_BLUETOOTH_SCO +
    + +rowEdgeFlags +
    + +runTestOnUiThread +(Runnable)
    + + +
    S  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +T +U +V +W +Y + TOP +

    +savePicture +(Bundle, File)
    + +ScaleXSpan +(Parcel) constructor
    + +SCREEN_BRIGHTNESS_CHANGED +
    + +SCREEN_ORIENTATION_CHANGED +
    + +screenBrightness +
    + +screenOrientation +
    + +scrollToBottom +(InstrumentationTestCase, Activity, ViewGroup)
    + +scrollToTop +(InstrumentationTestCase, Activity, ViewGroup)
    + +SECONDARY_EMAIL +
    + +SECONDARY_EMAIL_TYPE +
    + +SECONDARY_PHONE +
    + +SECONDARY_PHONE_TYPE +
    + +SectionIndexer
    + +selectAll +
    + +sendExtraCommand +(String, String, Bundle)
    + +Sensor
    + +SensorEvent
    + +SensorEventListener
    + +setAllowFileAccess +(boolean)
    + +setBitmap +(int, String, Bitmap)
    + +setBluetoothA2dpOn +(boolean)
    + +setBoolean +(int, String, boolean)
    + +setBuiltInZoomControls +(boolean)
    + +setButton
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +setByte +(int, String, byte)
    + +setCamera +(Camera)
    + +setChar +(int, String, char)
    + +setCharSequence +(int, String, CharSequence)
    + +setClippingEnabled +(boolean)
    + +setCompoundDrawablesWithIntrinsicBounds +(int, int, int, int)
    + +setDouble +(int, String, double)
    + +setDropDownAnchor +(int)
    + +setDropDownWidth +(int)
    + +setExtractedText +(ExtractedText)
    + +setFastScrollEnabled +(boolean)
    + +setFillEnabled +(boolean)
    + +setFloat +(int, String, float)
    + +setFooterDividersEnabled +(boolean)
    + +setHapticFeedbackEnabled +(boolean)
    + +setHeaderDividersEnabled +(boolean)
    + +setImageViewBitmap +(int, Bitmap)
    + +setImeActionLabel +(CharSequence, int)
    + +setImeOptions +(int)
    + +setInexactRepeating +(int, long, long, PendingIntent)
    + +setInputExtras +(int)
    + +setInputMethodMode +(int)
    + +setInputType +(int)
    + +setInt +(int, String, int)
    + +setKeyProgressIncrement +(int)
    + +setListSelection +(int)
    + +setLong +(int, String, long)
    + +setMaxDuration +(int)
    + +setMaxFileSize +(long)
    + +setNetworkAvailable +(boolean)
    + +setOnChronometerTickListener +(OnChronometerTickListener)
    + +setOnClickPendingIntent +(int, PendingIntent)
    + +setOnDoubleTapListener +(OnDoubleTapListener)
    + +setOnEditorActionListener +(OnEditorActionListener)
    + +setOnErrorListener +(OnErrorListener)
    + +setOneShotPreviewCallback +(PreviewCallback)
    + +setOnInfoListener
    +  type  +(OnInfoListener) in android.media.MediaPlayer +
    + +  type  +(OnInfoListener) in android.media.MediaRecorder +
    + +setOnVideoSizeChangedListener +(OnVideoSizeChangedListener)
    + +setOutputFile +(FileDescriptor)
    + +setOutsideTouchable +(boolean)
    + +setPrivateImeOptions +(String)
    + +setRawInputType +(int)
    + +setScrollContainer +(boolean)
    + +setShort +(int, String, short)
    + +setSmoothScrollbarEnabled +(boolean)
    + +setSoftInputMode +(int)
    + +setStaticTransformationsEnabled +(boolean)
    + +setString +(int, String, String)
    + +setTestProviderEnabled +(String, boolean)
    + +setTestProviderLocation +(String, Location)
    + +setTestProviderStatus +(String, int, Bundle, long)
    + +setTextColor +(int, int)
    + +Settings.Secure
    + +settingsActivity +
    + +setTouchable +(boolean)
    + +setTouchInterceptor +(OnTouchListener)
    + +setUri +(int, String, Uri)
    + +setUserAgentString +(String)
    + +setVideoEncoder +(int)
    + +setVideoFrameRate +(int)
    + +setVideoSize +(int, int)
    + +setVideoSource +(int)
    + +setView +(View, int, int, int, int)
    + +setViewResource +(int)
    + +setVisible +(boolean)
    + +setWindowAnimations +(int)
    + +setWindowLayoutMode +(int, int)
    + +sharedUserId +
    + +sharedUserLabel
    + in  +android.R.attr +
    + + in  +android.content.pm.PackageInfo +
    + +SHOW_OR_CREATE_CONTACT +
    + +SlidingDrawer
    + +SlidingDrawer.OnDrawerCloseListener
    + +SlidingDrawer.OnDrawerOpenListener
    + +SlidingDrawer.OnDrawerScrollListener
    + +smoothScrollbar +
    + +SOFT_INPUT_ADJUST_PAN +
    + +SOFT_INPUT_ADJUST_RESIZE +
    + +SOFT_INPUT_ADJUST_UNSPECIFIED +
    + +SOFT_INPUT_IS_FORWARD_NAVIGATION +
    + +SOFT_INPUT_MASK_ADJUST +
    + +SOFT_INPUT_MASK_STATE +
    + +SOFT_INPUT_MODE_CHANGED +
    + +SOFT_INPUT_STATE_ALWAYS_HIDDEN +
    + +SOFT_INPUT_STATE_ALWAYS_VISIBLE +
    + +SOFT_INPUT_STATE_HIDDEN +
    + +SOFT_INPUT_STATE_UNCHANGED +
    + +SOFT_INPUT_STATE_UNSPECIFIED +
    + +SOFT_INPUT_STATE_VISIBLE +
    + +softInputMode
    + in  +android.content.pm.ActivityInfo +
    + + in  +android.view.WindowManager.LayoutParams +
    + +sort +(Comparator<? super T>)
    + +SPAN_COMPOSING +
    + +SPAN_INTERMEDIATE +
    + +SPAN_POINT_MARK_MASK +
    + +startSelectingText +
    + +state_long_pressable +
    + +stopSelectingText +
    + +STREAM_NOTIFICATION +
    + +STRETCH_SPACING_UNIFORM +
    + +StrikethroughSpan +(Parcel) constructor
    + +StyleSpan +(Parcel) constructor
    + +SubscriptSpan +(Parcel) constructor
    + +SuperscriptSpan +(Parcel) constructor
    + +switchInputMethod +
    + + +
    T  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +U +V +W +Y + TOP +

    +TERTIARY_EMAIL +
    + +TERTIARY_EMAIL_TYPE +
    + +TERTIARY_PHONE +
    + +TERTIARY_PHONE_TYPE +
    + +TestMethod
    +  TestMethod +(String, Class<TestCase>) constructor
    + +  TestMethod +(TestCase) constructor
    + +TextAppearanceSpan +(Parcel) constructor
    + +TextView.OnEditorActionListener
    + +Theme_InputMethod +
    + +Theme_Light_Panel +
    + +Theme_NoDisplay +
    + +Theme_Panel +
    + +thickness +
    + +title_bar_tall +
    + +topOffset +
    + +toShortString
    +  type  +() in android.graphics.Rect +
    + +  type  +() in android.view.animation.Transformation +
    + +TransitionDrawable +(Drawable[]) constructor
    + +TYPE_APPLICATION_ATTACHED_DIALOG +
    + +TYPE_INPUT_METHOD +
    + +TYPE_INPUT_METHOD_DIALOG +
    + +TypefaceSpan +(Parcel) constructor
    + + +
    U  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +V +W +Y + TOP +

    +UnderlineSpan +(Parcel) constructor
    + +UNKNOWN_LENGTH +
    + +unregisterListener
    +  type  +(SensorEventListener) in android.hardware.SensorManager +
    + +  type  +(SensorEventListener, Sensor) in android.hardware.SensorManager +
    + +update
    +  type  +() in android.widget.PopupWindow +
    + +  type  +(int, int, int, int, boolean) in android.widget.PopupWindow +
    + +UPDATE_DEVICE_STATS +
    + +UpdateAppearance
    + +updatePeriodMillis +
    + +URLSpan +(Parcel) constructor
    + +UserDictionary
    + +UserDictionary.Words
    + + +
    V  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +W +Y + TOP +

    +verticalCorrection +
    + +verticalGap +
    + +VideoView_error_text_invalid_progressive_playback +
    + +ViewDebug.CapturedViewProperty
    + +ViewTreeObserver.OnScrollChangedListener
    + +Visibility
    + +voiceLanguage +
    + +voiceLanguageModel +
    + +voiceMaxResults +
    + +voicePromptText +
    + +voiceSearchMode +
    + +VOLUME_NOTIFICATION +
    + + +
    W  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +Y + TOP +

    +Widget_KeyboardView +
    + +WIFI_MAX_DHCP_RETRY_COUNT +
    + +WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS +
    + +WIFI_MODE_FULL +
    + +WIFI_MODE_SCAN_ONLY +
    + +WIFI_SLEEP_POLICY +
    + +WIFI_SLEEP_POLICY_DEFAULT +
    + +WIFI_SLEEP_POLICY_NEVER +
    + +WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED +
    + +windowDisablePreview +
    + +windowNoDisplay +
    + +windowSoftInputMode +
    + +WRITE_SECURE_SETTINGS +
    + +writeToParcel
    +  type  +(Parcel, int) in android.content.res.AssetFileDescriptor +
    + +  type  +(Parcel, int) in android.graphics.RectF +
    + +  type  +(Parcel, int) in android.text.Annotation +
    + +  type  +(Parcel, int) in android.text.style.AbsoluteSizeSpan +
    + +  type  +(Parcel, int) in android.text.style.AlignmentSpan.Standard +
    + +  type  +(Parcel, int) in android.text.style.BackgroundColorSpan +
    + +  type  +(Parcel, int) in android.text.style.BulletSpan +
    + +  type  +(Parcel, int) in android.text.style.ForegroundColorSpan +
    + +  type  +(Parcel, int) in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +(Parcel, int) in android.text.style.QuoteSpan +
    + +  type  +(Parcel, int) in android.text.style.RelativeSizeSpan +
    + +  type  +(Parcel, int) in android.text.style.ScaleXSpan +
    + +  type  +(Parcel, int) in android.text.style.StrikethroughSpan +
    + +  type  +(Parcel, int) in android.text.style.StyleSpan +
    + +  type  +(Parcel, int) in android.text.style.SubscriptSpan +
    + +  type  +(Parcel, int) in android.text.style.SuperscriptSpan +
    + +  type  +(Parcel, int) in android.text.style.TextAppearanceSpan +
    + +  type  +(Parcel, int) in android.text.style.TypefaceSpan +
    + +  type  +(Parcel, int) in android.text.style.URLSpan +
    + +  type  +(Parcel, int) in android.text.style.UnderlineSpan +
    + + +
    Y  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W + TOP +

    +yieldIfContendedSafely +()
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html new file mode 100644 index 0000000000000..48da98bb87766 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_all.html @@ -0,0 +1,4178 @@ + + + + + + + + + +All Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Differences +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + +
    A  +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +AbsListView
    + +AbsoluteLayout
    + +AbsoluteSizeSpan
    +  android.text.style
    + +  AbsoluteSizeSpan +(Parcel) constructor
    + +AbsSeekBar
    + +ACCELEROMETER_ROTATION +
    + +ACTION_AIRPLANE_MODE_SETTINGS +
    + +ACTION_APPLICATION_DEVELOPMENT_SETTINGS +
    + +ACTION_AUDIO_BECOMING_NOISY +
    + +ACTION_BACKGROUND_DATA_SETTING_CHANGED +
    + +ACTION_DATA_ROAMING_SETTINGS +
    + +ACTION_IMAGE_CAPTURE +
    + +ACTION_INPUT_METHOD_CHANGED +
    + +ACTION_INPUT_METHOD_SETTINGS +
    + +ACTION_INTERNAL_STORAGE_SETTINGS +
    + +ACTION_MANAGE_APPLICATIONS_SETTINGS +
    + +ACTION_MEDIA_CHECKING +
    + +ACTION_MEDIA_NOFS +
    + +ACTION_MEMORY_CARD_SETTINGS +
    + +ACTION_NETWORK_OPERATOR_SETTINGS +
    + +ACTION_OUTSIDE +
    + +ACTION_PACKAGE_DATA_CLEARED +
    + +ACTION_PACKAGE_REPLACED +
    + +ACTION_PHONE_STATE_CHANGED +
    + +ACTION_QUICK_LAUNCH_SETTINGS +
    + +ACTION_SEARCH_LONG_PRESS +
    + +ACTION_SYNC_SETTINGS +
    + +ACTION_SYSTEM_TUTORIAL +
    + +ACTION_USER_DICTIONARY_SETTINGS +
    + +ACTION_USER_PRESENT +
    + +ACTION_VIDEO_CAPTURE +
    + +ACTION_WIFI_IP_SETTINGS +
    + +Activity
    + +ActivityInfo
    + +ActivityInstrumentationTestCase
    + +ActivityInstrumentationTestCase2
    + +ActivityManager
    + +ActivityManager.RunningAppProcessInfo
    + +ADB_ENABLED +
    + +addGpsStatusListener +(Listener)
    + +addOnScrollChangedListener +(OnScrollChangedListener)
    + +addPropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    + +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    + +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    + +addRequirements +(Predicate<TestMethod>)
    + +addTestProvider +(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)
    + +addToDictionary +
    + +adjustMetaAfterKeypress +(long)
    + +AlarmManager
    + +AlertDialog
    + +ALIGN_BASELINE +
    + +ALIGN_BOTTOM +
    + +AlignmentSpan.Standard
    +  android.text.style
    + +  AlignmentSpan.Standard +(Parcel) constructor
    + +allowSingleTap +
    + +AlphabetIndexer
    + +android
    + +android.app
    + +android.appwidget
    + +android.content
    + +android.content.pm
    + +android.content.res
    + +android.database
    + +android.database.sqlite
    + +android.graphics
    + +android.graphics.drawable
    + +android.graphics.drawable.shapes
    + +android.hardware
    + +android.inputmethodservice
    + +android.location
    + +android.media
    + +android.net
    + +android.net.wifi
    + +android.opengl
    + +android.os
    + +android.preference
    + +android.provider
    + +android.speech
    + +android.telephony
    + +android.telephony.gsm
    + +android.test
    + +android.test.mock
    + +android.test.suitebuilder
    + +android.text
    + +android.text.format
    + +android.text.method
    + +android.text.style
    + +android.util
    + +android.view
    + +android.view.animation
    + +android.view.inputmethod
    + +android.webkit
    + +android.widget
    + +ANDROID_ID +
    + +animateOnClick +
    + +Animation
    + +Annotation
    +  android.text
    + +  Annotation +(Parcel) constructor
    + +appendEscapedSQLString +(StringBuilder, String)
    + +applyDisplay +(int, Rect, Rect)
    + +ArrayAdapter
    + +ArrowKeyMovementMethod
    + +AssetFileDescriptor
    + +AssetFileDescriptor.AutoCloseInputStream
    + +AssetFileDescriptor.AutoCloseOutputStream
    + +AsyncTask
    + +AsyncTask.Status
    + +AudioFormat
    + +AudioManager
    + +AudioRecord
    + +AudioRecord.OnRecordPositionUpdateListener
    + +AudioTrack
    + +AudioTrack.OnPlaybackPositionUpdateListener
    + +AutoCompleteTextView
    + +AutoText
    + +autoText +
    + +AXIS_CLIP +
    + +AXIS_MINUS_X +
    + +AXIS_MINUS_Y +
    + +AXIS_MINUS_Z +
    + +AXIS_X +
    + +AXIS_Y +
    + +AXIS_Z +
    + + +
    B  +A +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +BackgroundColorSpan
    +  android.text.style
    + +  BackgroundColorSpan +(Parcel) constructor
    + +backgroundDimEnabled +
    + +BaseKeyListener
    + +beginBatchEdit +()
    + +BIND_APPWIDGET +
    + +BIND_INPUT_METHOD +
    + +Binder
    + +Bitmap
    + +BLUETOOTH_ON +
    + +BOOKMARK +
    + +bottomOffset +
    + +bringPointIntoView +(int)
    + +BroadcastReceiver
    + +Browser
    + +BUCKET_DISPLAY_NAME +
    + +BUCKET_ID +
    + +Build
    + +BulletSpan
    +  android.text.style
    + +  BulletSpan +(Parcel) constructor
    + +BUTTON1 +
    + +BUTTON2 +
    + +BUTTON3 +
    + +BUTTON_NEGATIVE +
    + +BUTTON_NEUTRAL +
    + +BUTTON_POSITIVE +
    + + +
    C  +A +B +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +calculateLength +(CharSequence, boolean)
    + +callActivityOnUserLeaving +(Activity)
    + +Camera
    + +candidatesArea +
    + +candidatesTextStyleSpans +
    + +Canvas
    + +CAP_MODE_CHARACTERS +
    + +CAP_MODE_SENTENCES +
    + +CAP_MODE_WORDS +
    + +capitalize +
    + +CATEGORY_GADGET +
    + +CATEGORY_INFO +
    + +changeAction +(KeyEvent, int)
    + +changeCursorAndColumns +(Cursor, String[], int[])
    + +changeDebugPort +(int)
    + +changeFlags +(KeyEvent, int)
    + +changeTimeRepeat +(KeyEvent, long, int)
    + +Character.UnicodeBlock
    + +checkInputConnectionProxy +(View)
    + +Chronometer
    + +Chronometer.OnChronometerTickListener
    + +Class
    + +clearComposingText +()
    + +clearListSelection +()
    + +clearMatches +()
    + +clearMetaKeyState
    +  type  +(View, Editable, int) in android.text.method.KeyListener +
    + +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    + +  type  +(View, Editable, int) in android.text.method.MetaKeyKeyListener +
    + +  type  +(Editable, int) in android.text.method.MetaKeyKeyListener +
    + +clearTestProviderEnabled +(String)
    + +clearTestProviderLocation +(String)
    + +clearTestProviderStatus +(String)
    + +ClickableSpan
    + +CLIP_HORIZONTAL +
    + +CLIP_VERTICAL +
    + +clone +()
    + +close +()
    + +closeButton +
    + +closeContextMenu +()
    + +codes +
    + +computeDurationHint +()
    + +configPreferences +
    + +Configuration
    + +ConfigurationInfo
    + +configure +
    + +ConnectivityManager
    + +Contacts.Intents
    + +Contacts.Intents.Insert
    + +Contacts.PeopleColumns
    + +content +
    + +ContentProvider
    + +ContentResolver
    + +Context
    + +copy +
    + +copyPixelsFromBuffer +(Buffer)
    + +copyUrl +
    + +createInputStream +()
    + +createOutputStream +()
    + +createWifiLock +(int, String)
    + +CREATOR
    + in  +android.content.res.AssetFileDescriptor +
    + + in  +android.graphics.RectF +
    + +Cursor
    + +CursorAdapter
    + +CursorWrapper
    + +cut +
    + + +dalvik.system
    + +dark_header +
    + +DATA_ROAMING +
    + +DATA_X +
    + +DATA_Y +
    + +DATA_Z +
    + +DatabaseUtils
    + +Date
    +  java.util
    + +  Date +() constructor
    + +  Date +(int, int, int, int, int, int) constructor
    + +DateKeyListener
    + +DateTimeKeyListener
    + +Debug
    + +DEBUG_ENABLE_ASSERT +
    + +DEBUG_ENABLE_CHECKJNI +
    + +DEBUG_ENABLE_DEBUGGER +
    + +DEFAULT_SORT_ORDER
    + in  +android.provider.MediaStore.Images.Media +
    + + in  +android.provider.MediaStore.Video +
    + +describeContents
    +  type  +() in android.content.res.AssetFileDescriptor +
    + +  type  +() in android.graphics.RectF +
    + +  type  +() in android.text.Annotation +
    + +  type  +() in android.text.style.AbsoluteSizeSpan +
    + +  type  +() in android.text.style.AlignmentSpan.Standard +
    + +  type  +() in android.text.style.BackgroundColorSpan +
    + +  type  +() in android.text.style.BulletSpan +
    + +  type  +() in android.text.style.ForegroundColorSpan +
    + +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +() in android.text.style.QuoteSpan +
    + +  type  +() in android.text.style.RelativeSizeSpan +
    + +  type  +() in android.text.style.ScaleXSpan +
    + +  type  +() in android.text.style.StrikethroughSpan +
    + +  type  +() in android.text.style.StyleSpan +
    + +  type  +() in android.text.style.SubscriptSpan +
    + +  type  +() in android.text.style.SuperscriptSpan +
    + +  type  +() in android.text.style.TextAppearanceSpan +
    + +  type  +() in android.text.style.TypefaceSpan +
    + +  type  +() in android.text.style.URLSpan +
    + +  type  +() in android.text.style.UnderlineSpan +
    + +DEVICE_PROVISIONED +
    + +deviceHasKey +(int)
    + +deviceHasKeys +(int[])
    + +DexClassLoader
    + +DexFile
    + +DialerKeyListener
    + +dialog_alert_title +
    + +DialogInterface
    + +DialogPreference
    + +didTouchFocusSelect +()
    + +DigitsKeyListener
    + +dispatchKeyEventPreIme +(KeyEvent)
    + +DISPLAY +
    + +DISPLAY_CLIP_HORIZONTAL +
    + +DISPLAY_CLIP_VERTICAL +
    + +drag
    +  type  +(InstrumentationTestCase, float, float, float, float, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, float, float, float, float, int) in android.test.TouchUtils +
    + +dragQuarterScreenDown
    +  type  +(InstrumentationTestCase, Activity) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase) in android.test.TouchUtils +
    + +dragQuarterScreenUp
    +  type  +(InstrumentationTestCase, Activity) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase) in android.test.TouchUtils +
    + +dragViewBy
    +  type  +(InstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    + +dragViewTo
    +  type  +(InstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    + +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, Activity, View, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, Activity, View) in android.test.TouchUtils +
    + +dragViewToTop
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +dragViewToX
    +  type  +(InstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    + +dragViewToY
    +  type  +(InstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    + +Drawable
    + +drawBitmap +(int[], int, int, float, float, int, int, boolean, Paint)
    + +dropDownAnchor +
    + +dropDownWidth +
    + +dump
    +  type  +(Printer, String) in android.location.Location +
    + +  type  +(FileDescriptor, String[]) in android.os.Binder +
    + +  type  +(FileDescriptor, String[]) in android.os.IBinder +
    + +dumpCapturedView +(String, Object)
    + +dumpHprofData
    +  type  +(String) in android.os.Debug +
    + +  type  +(String) in dalvik.system.VMDebug +
    + +dumpSpans +(CharSequence, Printer, String)
    + +DynamicDrawableSpan
    +  android.text.style
    + +  DynamicDrawableSpan +(int) constructor
    + + +
    E  +A +B +C +D +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +editable +
    + +editorExtras +
    + +enabled +
    + +endBatchEdit +()
    + +Environment
    + +EXTRA_APPLICATION_ID +
    + +EXTRA_CREATE_DESCRIPTION +
    + +EXTRA_DATA_REMOVED +
    + +EXTRA_FINISH_ON_COMPLETION +
    + +EXTRA_FORCE_CREATE +
    + +EXTRA_INCOMING_NUMBER +
    + +EXTRA_MAX_BYTES +
    + +EXTRA_MEDIA_ALBUM +
    + +EXTRA_MEDIA_ARTIST +
    + +EXTRA_MEDIA_FOCUS +
    + +EXTRA_MEDIA_TITLE +
    + +EXTRA_OUTPUT +
    + +EXTRA_REPLACING +
    + +EXTRA_SCREEN_ORIENTATION +
    + +EXTRA_STATE +
    + +EXTRA_STATE_IDLE +
    + +EXTRA_STATE_OFFHOOK +
    + +EXTRA_STATE_RINGING +
    + +EXTRA_VIDEO_QUALITY +
    + +extractArea +
    + +extractText +(ExtractedTextRequest, ExtractedText)
    + + +
    F  +A +B +C +D +E +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +fastScrollEnabled +
    + +fillEnabled +
    + +findAll +(String)
    + +findNext +(boolean)
    + +FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET +
    + +FLAG_ACTIVITY_NO_USER_ACTION +
    + +FLAG_ACTIVITY_REORDER_TO_FRONT +
    + +FLAG_ALT_FOCUSABLE_IM +
    + +FLAG_EDITOR_ACTION +
    + +FLAG_FROM_SYSTEM +
    + +FLAG_KEEP_TOUCH_MODE +
    + +FLAG_NO_HISTORY +
    + +FLAG_SOFT_KEYBOARD +
    + +FLAG_UPDATE_CURRENT +
    + +FLAG_WATCH_OUTSIDE_TOUCH +
    + +footerDividersEnabled +
    + +ForegroundColorSpan
    +  android.text.style
    + +  ForegroundColorSpan +(Parcel) constructor
    + +forkAndSpecialize
    +  type  +(int, int, int[], int, int[][]) in dalvik.system.Zygote +
    + +  type  +(int, int, int[], boolean, int[][]) in dalvik.system.Zygote +
    + +forkSystemServer
    +  type  +(int, int, int[], int, int[][]) in dalvik.system.Zygote +
    + +  type  +(int, int, int[], boolean, int[][]) in dalvik.system.Zygote +
    + +FORMAT_JAPAN +
    + +formatJapaneseNumber +(Editable)
    + +forName +(String)
    + +FX_KEYPRESS_DELETE +
    + +FX_KEYPRESS_RETURN +
    + +FX_KEYPRESS_SPACEBAR +
    + +FX_KEYPRESS_STANDARD +
    + + +
    G  +A +B +C +D +E +F +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +GeomagneticField
    + +GestureDetector
    +  android.view
    + +  GestureDetector +(Context, OnGestureListener) constructor
    + +  GestureDetector +(Context, OnGestureListener, Handler) constructor
    + +  GestureDetector +(OnGestureListener) constructor
    + +  GestureDetector +(OnGestureListener, Handler) constructor
    + +GestureDetector.OnDoubleTapListener
    + +GestureDetector.SimpleOnGestureListener
    + +get +(Context)
    + +GET_CONFIGURATIONS +
    + +GET_UNINSTALLED_PACKAGES +
    + +getAllowFileAccess +()
    + +getBackgroundDataSetting +()
    + +getBoolean +(int)
    + +getBuiltInZoomControls +()
    + +getButton +(int)
    + +getCapsMode +(CharSequence, int, int)
    + +getCharacters +()
    + +getClasses +()
    + +getColumnIndex
    +  type  +(String) in android.database.Cursor +
    + +  type  +(String) in android.database.CursorWrapper +
    + +getConstructors +()
    + +getCount +()
    + +getDeclaredClasses +()
    + +getDeclaredConstructors +()
    + +getDeclaredLength +()
    + +getDefaultSensor +(int)
    + +getDeviceConfigurationInfo +()
    + +getDialog +()
    + +getDoubleTapTimeout +()
    + +getDrawable
    +  type  +() in android.graphics.drawable.RotateDrawable +
    + +  type  +() in android.graphics.drawable.ScaleDrawable +
    + +getDropDownAnchor +()
    + +getDropDownWidth +()
    + +getEdgeSlop +()
    + +getEditableText +()
    + +getFadingEdgeLength +()
    + +getFraction +(int, int, int)
    + +getGpsStatus +(GpsStatus)
    + +getHandler +()
    + +getImeActionId +()
    + +getImeActionLabel +()
    + +getImeOptions +()
    + +getInclination +(float[])
    + +getInitialScrollX +(TextView, Spannable)
    + +getInitialScrollY +(TextView, Spannable)
    + +getInputExtras +(boolean)
    + +getInputMethodMode +()
    + +getInputType
    +  type  +() in android.text.method.DateKeyListener +
    + +  type  +() in android.text.method.DateTimeKeyListener +
    + +  type  +() in android.text.method.DialerKeyListener +
    + +  type  +() in android.text.method.DigitsKeyListener +
    + +  type  +() in android.text.method.KeyListener +
    + +  type  +() in android.text.method.MultiTapKeyListener +
    + +  type  +() in android.text.method.QwertyKeyListener +
    + +  type  +() in android.text.method.TextKeyListener +
    + +  type  +() in android.text.method.TimeKeyListener +
    + +  type  +() in android.widget.TextView +
    + +getInterfaces +()
    + +getItem
    +  type  +(int) in android.view.Menu +
    + +  type  +(int) in android.widget.CursorAdapter +
    + +getItemClickListener +()
    + +getItemId +(int)
    + +getItemSelectedListener +()
    + +getKeyProgressIncrement +()
    + +getLaunchIntentForPackage
    +  type  +(String) in android.content.pm.PackageManager +
    + +  type  +(String) in android.test.mock.MockPackageManager +
    + +getLayoutDimension +(int, int)
    + +getListSelection +()
    + +getListView +()
    + +getLoggingMXBean +()
    + +getLong
    +  type  +(ContentResolver, String) in android.provider.Settings.System +
    + +  type  +(ContentResolver, String, long) in android.provider.Settings.System +
    + +getMaxAvailableHeight +(View, int)
    + +getMaximumDrawingCacheSize +()
    + +getMaxKeyCode +()
    + +getMetaState
    +  type  +(long) in android.text.method.MetaKeyKeyListener +
    + +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    + +getMinimumFlingVelocity +()
    + +getNeighboringCellInfo +()
    + +getOnChronometerTickListener +()
    + +getOnItemClickListener +()
    + +getOnItemSelectedListener +()
    + +getOrientation +(float[], float[])
    + +getOriginalUrl
    +  type  +() in android.webkit.WebHistoryItem +
    + +  type  +() in android.webkit.WebView +
    + +getPluginData
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptHandler +
    + +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptRegistry +
    + +getPrivateImeOptions +()
    + +getProxyClass +(ClassLoader, Class<?>)
    + +getRotationMatrix +(float[], float[], float[], float[])
    + +getRunningAppProcesses +()
    + +getScaledDoubleTapSlop +()
    + +getScaledEdgeSlop +()
    + +getScaledFadingEdgeLength +()
    + +getScaledMaximumDrawingCacheSize +()
    + +getScaledMinimumFlingVelocity +()
    + +getScaledScrollBarSize +()
    + +getScaledTouchSlop +()
    + +getScaledWindowTouchSlop +()
    + +getScrollBarSize +()
    + +getSensorList +(int)
    + +getSensors +()
    + +getSize +(View)
    + +getSpanTypeId
    +  type  +() in android.text.Annotation +
    + +  type  +() in android.text.style.AbsoluteSizeSpan +
    + +  type  +() in android.text.style.AlignmentSpan.Standard +
    + +  type  +() in android.text.style.BackgroundColorSpan +
    + +  type  +() in android.text.style.BulletSpan +
    + +  type  +() in android.text.style.ForegroundColorSpan +
    + +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +() in android.text.style.QuoteSpan +
    + +  type  +() in android.text.style.RelativeSizeSpan +
    + +  type  +() in android.text.style.ScaleXSpan +
    + +  type  +() in android.text.style.StrikethroughSpan +
    + +  type  +() in android.text.style.StyleSpan +
    + +  type  +() in android.text.style.SubscriptSpan +
    + +  type  +() in android.text.style.SuperscriptSpan +
    + +  type  +() in android.text.style.TextAppearanceSpan +
    + +  type  +() in android.text.style.TypefaceSpan +
    + +  type  +() in android.text.style.URLSpan +
    + +  type  +() in android.text.style.UnderlineSpan +
    + +getStartX +()
    + +getStartY +()
    + +getStatSize +()
    + +getSubtype +()
    + +getSubtypeName +()
    + +getSurrogate +(String, Map<String, String>)
    + +getSystemSharedLibraryNames
    +  type  +() in android.content.pm.PackageManager +
    + +  type  +() in android.test.mock.MockPackageManager +
    + +getTargetIntent +()
    + +getTextFilter +()
    + +getThread +()
    + +getTimeZoneDatabaseVersion +()
    + +getTouchSlop +()
    + +getUserAgent +()
    + +getUserAgentString +()
    + +getVerticalAlignment +()
    + +getWindowTouchSlop +()
    + +getWindowVisibleDisplayFrame +(Rect)
    + +getZoomControls +()
    + +GLSurfaceView
    + +GLSurfaceView.EGLConfigChooser
    + +GLSurfaceView.GLWrapper
    + +GLSurfaceView.Renderer
    + +GpsSatellite
    + +GpsStatus
    + +GpsStatus.Listener
    + +Gravity
    + +GridView
    + + +
    H  +A +B +C +D +E +F +G +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +handle +
    + +handleKeyDown +(long, int, KeyEvent)
    + +handleKeyUp +(long, int, KeyEvent)
    + +Handler
    +  android.os
    + +  Handler +(Callback) constructor
    + +  Handler +(Looper, Callback) constructor
    + +Handler.Callback
    + +HAPTIC_FEEDBACK_ENABLED
    + in  +android.provider.Settings.System +
    + + in  +android.view.View +
    + +HapticFeedbackConstants
    + +hapticFeedbackEnabled +
    + +hardKeyboardHidden +
    + +HARDKEYBOARDHIDDEN_NO +
    + +HARDKEYBOARDHIDDEN_UNDEFINED +
    + +HARDKEYBOARDHIDDEN_YES +
    + +hasSoftInputMode +()
    + +hasWindowFocus +()
    + +headerDividersEnabled +
    + +horizontalGap +
    + +HorizontalScrollView
    + +HTTP_PROXY +
    + + +
    I  +A +B +C +D +E +F +G +H +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +IBinder
    + +ic_btn_speak_now +
    + +iconPreview +
    + +ImageSpan
    +  android.text.style
    + +  ImageSpan +(Context, Uri, int) constructor
    + +  ImageSpan +(Context, int, int) constructor
    + +  ImageSpan +(Bitmap, int) constructor
    + +  ImageSpan +(Drawable, int) constructor
    + +  ImageSpan +(Drawable, String, int) constructor
    + +imeActionId +
    + +imeActionLabel +
    + +imeExtractEnterAnimation +
    + +imeExtractExitAnimation +
    + +imeFullscreenBackground +
    + +imeOptions +
    + +inferStreamType +()
    + +initialLayout +
    + +innerRadius +
    + +INPUT_METHOD_FROM_FOCUSABLE +
    + +INPUT_METHOD_NEEDED +
    + +INPUT_METHOD_NOT_NEEDED +
    + +INPUT_METHOD_SERVICE +
    + +inputArea +
    + +inputExtractEditText +
    + +inputMethod +
    + +InputType
    + +inputType +
    + +INSTALL_FAILED_CONFLICTING_PROVIDER +
    + +INSTALL_NON_MARKET_APPS +
    + +Instrumentation
    + +InstrumentationTestCase
    + +Intent
    + +INTENT_ACTION_MEDIA_SEARCH +
    + +INTENT_ACTION_STILL_IMAGE_CAMERA +
    + +INTENT_ACTION_VIDEO_CAMERA +
    + +intentForPosition +(int)
    + +IntentService
    + +INTERVAL_DAY +
    + +INTERVAL_FIFTEEN_MINUTES +
    + +INTERVAL_HALF_DAY +
    + +INTERVAL_HALF_HOUR +
    + +INTERVAL_HOUR +
    + +isAboveAnchor +()
    + +isBluetoothA2dpOn +()
    + +isClippingEnabled +()
    + +isCookielessProxyUrl +(String)
    + +isDebuggingEnabled +()
    + +isDefault +
    + +isFastScrollEnabled +()
    + +isFillEnabled +()
    + +isHapticFeedbackEnabled +()
    + +isInEditMode +()
    + +isInputMethodTarget +()
    + +isLooping +()
    + +isModifier +
    + +isOutsideTouchable +()
    + +isPerformingCompletion +()
    + +isRepeatable +
    + +isRoaming +()
    + +isSafeMode
    +  type  +() in android.content.pm.PackageManager +
    + +  type  +() in android.test.mock.MockPackageManager +
    + +isScrollContainer +
    + +isSelectingMetaTracker +(CharSequence, Object)
    + +isSmoothScrollbarEnabled +()
    + +isSticky +
    + +isTouchable +()
    + + +java.beans
    + +java.lang
    + +java.lang.reflect
    + +java.net
    + +java.util
    + +java.util.jar
    + +java.util.logging
    + +JetPlayer
    + +JetPlayer.OnJetEventListener
    + + +
    K  +A +B +C +D +E +F +G +H +I +J +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +KEY_LOCATION_CHANGED +
    + +KEY_PROVIDER_ENABLED +
    + +KEY_STATUS_CHANGED +
    + +keyBackground +
    + +keyboardMode +
    + +keyboardView +
    + +KeyCharacterMap
    + +KEYCODE_MEDIA_FAST_FORWARD +
    + +KEYCODE_MEDIA_NEXT +
    + +KEYCODE_MEDIA_PLAY_PAUSE +
    + +KEYCODE_MEDIA_PREVIOUS +
    + +KEYCODE_MEDIA_REWIND +
    + +KEYCODE_MEDIA_STOP +
    + +KEYCODE_MUTE +
    + +keyEdgeFlags +
    + +KeyEvent
    +  android.view
    + +  KeyEvent +(KeyEvent) constructor
    + +  KeyEvent +(long, String, int, int) constructor
    + +keyHeight +
    + +keyIcon +
    + +keyLabel +
    + +KeyListener
    + +keyOutputText +
    + +keyPreviewHeight +
    + +keyPreviewLayout +
    + +keyPreviewOffset +
    + +keyTextColor +
    + +keyTextSize +
    + +keyWidth +
    + + +
    L  +A +B +C +D +E +F +G +H +I +J +K +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +labelTextSize +
    + +launchActivityWithIntent +(String, Class<T>, Intent)
    + +LauncherActivity
    + +LauncherActivity.IconResizer
    + +LauncherActivity.ListItem
    + +LeadingMarginSpan.Standard
    +  android.text.style
    + +  LeadingMarginSpan.Standard +(Parcel) constructor
    + +Level
    + +LIGHT_NO_MOON +
    + +ListView
    + +LiveFolders
    + +load
    +  type  +(AssetFileDescriptor, int) in android.media.SoundPool +
    + +  type  +(FileDescriptor, long, long, int) in android.media.SoundPool +
    + +loadDex +(String, String, int)
    + +Location
    + +LOCATION_PROVIDERS_ALLOWED +
    + +LocationManager
    + +LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED +
    + +LOGGING_ID +
    + +LogManager
    + +longClickView
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +Looper
    + + +
    M  +A +B +C +D +E +F +G +H +I +J +K +L +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +makeListItems +()
    + +Manifest.permission
    + +MaskFilterSpan
    + +MAX_KEYCODE +
    + +mayUseInputMethod +(int)
    + +MEDIA_CHECKING +
    + +MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK +
    + +MEDIA_INFO_BAD_INTERLEAVING +
    + +MEDIA_INFO_NOT_SEEKABLE +
    + +MEDIA_INFO_UNKNOWN +
    + +MEDIA_INFO_VIDEO_TRACK_LAGGING +
    + +MEDIA_NOFS +
    + +MEDIA_RECORDER_ERROR_UNKNOWN +
    + +MEDIA_RECORDER_INFO_MAX_DURATION_REACHED +
    + +MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED +
    + +MEDIA_RECORDER_INFO_UNKNOWN +
    + +MediaPlayer
    + +MediaPlayer.OnInfoListener
    + +MediaPlayer.OnVideoSizeChangedListener
    + +MediaRecorder
    + +MediaRecorder.OnErrorListener
    + +MediaRecorder.OnInfoListener
    + +MediaRecorder.OutputFormat
    + +MediaRecorder.VideoEncoder
    + +MediaRecorder.VideoSource
    + +MediaStore
    + +MediaStore.Audio.AlbumColumns
    + +MediaStore.Audio.Media
    + +MediaStore.Images.Media
    + +MediaStore.Video
    + +MediaStore.Video.VideoColumns
    + +Menu
    + +MetaKeyKeyListener
    + +MockPackageManager
    + +MODE_APPEND +
    + +MotionEvent
    + +MOUNT_FORMAT_FILESYSTEMS +
    + +moveCursorToVisibleOffset +()
    + +MovementMethod
    + +MultiTapKeyListener
    + +mutate +()
    + +mVerticalAlignment +
    + + +
    N  +A +B +C +D +E +F +G +H +I +J +K +L +M +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +NeighboringCellInfo
    + +NETWORK_PREFERENCE +
    + +NetworkInfo
    +  android.net
    + +  NetworkInfo +(int) constructor
    + +NoCopySpan
    + +NoCopySpan.Concrete
    + +noHistory +
    + +NUM_STREAMS +
    + +NUMBER_OF_SONGS_FOR_ARTIST +
    + +numeric +
    + + +
    O  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +onBeginBatchEdit +()
    + +onCheckIsTextEditor +()
    + +onCommitCompletion +(CompletionInfo)
    + +onContentChanged +()
    + +onCreateInputConnection +(EditorInfo)
    + +onDoubleTap +(MotionEvent)
    + +onDoubleTapEvent +(MotionEvent)
    + +onEditorAction +(int)
    + +onEndBatchEdit +()
    + +onFinishTemporaryDetach +()
    + +onGlobalFocusChanged +(View, View)
    + +onKeyOther
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ArrowKeyMovementMethod +
    + +  type  +(View, Editable, KeyEvent) in android.text.method.BaseKeyListener +
    + +  type  +(View, Editable, KeyEvent) in android.text.method.KeyListener +
    + +  type  +(TextView, Spannable, KeyEvent) in android.text.method.MovementMethod +
    + +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ScrollingMovementMethod +
    + +onKeyPreIme +(int, KeyEvent)
    + +onPrivateIMECommand +(String, Bundle)
    + +onRestoreInstanceState +(Parcelable)
    + +onSaveInstanceState +()
    + +onSelectionChanged +(int, int)
    + +onSingleTapConfirmed +(MotionEvent)
    + +onStartTemporaryDetach +()
    + +onTextContextMenuItem +(int)
    + +onUserInteraction +()
    + +onUserLeaveHint +()
    + +openAssetFile +(Uri, String)
    + +openAssetFileDescriptor +(Uri, String)
    + +openOutputStream +(Uri, String)
    + +openRawResource +(int, TypedValue)
    + +OrientationEventListener
    + +OrientationListener
    +  android.view
    + +  OrientationListener +(Context, int) constructor
    + + +
    P  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +Q +R +S +T +U +V +W +Y +Z + TOP +

    +Pack200.Packer
    + +Pack200.Unpacker
    + +PackageInfo
    + +PackageManager
    + +Parcel
    + +ParcelableSpan
    + +ParcelFileDescriptor
    + +PARENTAL_CONTROL_ENABLED +
    + +PARENTAL_CONTROL_LAST_UPDATE +
    + +PARENTAL_CONTROL_REDIRECT_URL +
    + +parse +(String)
    + +parseBundleExtra +(String, AttributeSet, Bundle)
    + +parseBundleExtras +(XmlResourceParser, Bundle)
    + +password +
    + +paste +
    + +peekService +(Context, Intent)
    + +PendingIntent
    + +performHapticFeedback
    +  type  +(int) in android.view.View +
    + +  type  +(int, int) in android.view.View +
    + +phoneNumber +
    + +PhoneNumberUtils
    + +PHONETIC_NAME
    + in  +android.provider.Contacts.Intents.Insert +
    + + in  +android.provider.Contacts.PeopleColumns +
    + +playSoundEffect
    +  type  +(int, float) in android.media.AudioManager +
    + +  type  +(int) in android.view.View +
    + +PluginData
    + +popupCharacters +
    + +popupKeyboard +
    + +popupLayout +
    + +PopupWindow
    + +PopupWindow.OnDismissListener
    + +prepare +()
    + +PrintStreamPrinter
    + +privateImeOptions +
    + +ProgressBar
    + +ProviderTestCase
    + +ProviderTestCase2
    + +Proxy
    + +putLong +(ContentResolver, String, long)
    + + +
    Q  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +R +S +T +U +V +W +Y +Z + TOP +

    +QuoteSpan
    +  android.text.style
    + +  QuoteSpan +(Parcel) constructor
    + +QwertyKeyListener
    + + +
    R  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +S +T +U +V +W +Y +Z + TOP +

    +R.attr
    + +R.bool
    + +R.drawable
    + +R.id
    + +R.integer
    + +R.string
    + +R.style
    + +RasterizerSpan
    + +RAW_AMR +
    + +RAW_DATA_INDEX +
    + +RAW_DATA_X +
    + +RAW_DATA_Y +
    + +RAW_DATA_Z +
    + +readFromParcel +(Parcel)
    + +readHashMap +(ClassLoader)
    + +readMap +(Map, ClassLoader)
    + +Rect
    + +RectF
    + +registerListener
    +  type  +(SensorEventListener, Sensor, int) in android.hardware.SensorManager +
    + +  type  +(SensorEventListener, Sensor, int, Handler) in android.hardware.SensorManager +
    + +  type  +(SensorListener, int) in android.hardware.SensorManager +
    + +  type  +(SensorListener, int, int) in android.hardware.SensorManager +
    + +RelativeSizeSpan
    +  android.text.style
    + +  RelativeSizeSpan +(Parcel) constructor
    + +remapCoordinateSystem +(float[], int, int, float[])
    + +RemoteViews
    + +RemoteViews.ActionException
    +  android.widget
    + +  RemoteViews.ActionException +(Exception) constructor
    + +removeAt +(int)
    + +removeGpsStatusListener +(Listener)
    + +removeOnScrollChangedListener +(OnScrollChangedListener)
    + +removePropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    + +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    + +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    + +removeTestProvider +(String)
    + +removeUpdates +(PendingIntent)
    + +replaceExtras
    +  type  +(Intent) in android.content.Intent +
    + +  type  +(Bundle) in android.content.Intent +
    + +reqFiveWayNav +
    + +reqHardKeyboard +
    + +reqKeyboardType +
    + +reqNavigation +
    + +reqTouchScreen +
    + +requestChildRectangleOnScreen +(View, Rect, boolean)
    + +requestLocationUpdates +(String, long, float, PendingIntent)
    + +resetLockedMeta +(long)
    + +ResourceCursorAdapter
    +  android.widget
    + +  ResourceCursorAdapter +(Context, int, Cursor, boolean) constructor
    + +Resources
    + +restartPackage +(String)
    + +restorePicture +(Bundle, File)
    + +ResultReceiver
    + +RingtoneManager
    + +RotateDrawable
    + +ROUTE_BLUETOOTH +
    + +ROUTE_BLUETOOTH_A2DP +
    + +ROUTE_BLUETOOTH_SCO +
    + +rowEdgeFlags +
    + +runTestOnUiThread +(Runnable)
    + + +
    S  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +T +U +V +W +Y +Z + TOP +

    +savePicture +(Bundle, File)
    + +ScaleDrawable
    + +ScaleXSpan
    +  android.text.style
    + +  ScaleXSpan +(Parcel) constructor
    + +SCREEN_BRIGHTNESS_CHANGED +
    + +SCREEN_ORIENTATION_CHANGED +
    + +screenBrightness +
    + +screenOrientation +
    + +Scroller
    + +ScrollingMovementMethod
    + +scrollToBottom
    +  type  +(InstrumentationTestCase, Activity, ViewGroup) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, ViewGroup) in android.test.TouchUtils +
    + +scrollToTop
    +  type  +(InstrumentationTestCase, Activity, ViewGroup) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, ViewGroup) in android.test.TouchUtils +
    + +searchButtonText +
    + +SECONDARY_EMAIL +
    + +SECONDARY_EMAIL_TYPE +
    + +SECONDARY_PHONE +
    + +SECONDARY_PHONE_TYPE +
    + +SectionIndexer
    + +selectAll +
    + +sendExtraCommand +(String, String, Bundle)
    + +Sensor
    + +SENSOR_ACCELEROMETER +
    + +SENSOR_ALL +
    + +SENSOR_LIGHT +
    + +SENSOR_MAGNETIC_FIELD +
    + +SENSOR_MAX +
    + +SENSOR_MIN +
    + +SENSOR_ORIENTATION +
    + +SENSOR_ORIENTATION_RAW +
    + +SENSOR_PROXIMITY +
    + +SENSOR_TEMPERATURE +
    + +SENSOR_TRICORDER +
    + +SensorEvent
    + +SensorEventListener
    + +SensorListener
    + +SensorManager
    + +service +(String, Map<String, String>)
    + +setAllowFileAccess +(boolean)
    + +setBitmap +(int, String, Bitmap)
    + +setBluetoothA2dpOn +(boolean)
    + +setBoolean +(int, String, boolean)
    + +setBuiltInZoomControls +(boolean)
    + +setButton
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +  type  +(int, CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(int, CharSequence, Message) in android.app.AlertDialog +
    + +setButton2
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +setButton3
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +setByte +(int, String, byte)
    + +setCamera +(Camera)
    + +setChar +(int, String, char)
    + +setCharSequence +(int, String, CharSequence)
    + +setClippingEnabled +(boolean)
    + +setCompoundDrawablesWithIntrinsicBounds +(int, int, int, int)
    + +setDouble +(int, String, double)
    + +setDropDownAnchor +(int)
    + +setDropDownWidth +(int)
    + +setExtractedText +(ExtractedText)
    + +setFastScrollEnabled +(boolean)
    + +setFillEnabled +(boolean)
    + +setFloat +(int, String, float)
    + +setFooterDividersEnabled +(boolean)
    + +setHapticFeedbackEnabled +(boolean)
    + +setHeaderDividersEnabled +(boolean)
    + +setImageViewBitmap +(int, Bitmap)
    + +setImeActionLabel +(CharSequence, int)
    + +setImeOptions +(int)
    + +setInexactRepeating +(int, long, long, PendingIntent)
    + +setInputExtras +(int)
    + +setInputMethodMode +(int)
    + +setInputType +(int)
    + +setInt +(int, String, int)
    + +setKeyProgressIncrement +(int)
    + +setListSelection +(int)
    + +setLong +(int, String, long)
    + +setMaxDuration +(int)
    + +setMaxFileSize +(long)
    + +setNetworkAvailable +(boolean)
    + +setOnChronometerTickListener +(OnChronometerTickListener)
    + +setOnClickPendingIntent +(int, PendingIntent)
    + +setOnDoubleTapListener +(OnDoubleTapListener)
    + +setOnEditorActionListener +(OnEditorActionListener)
    + +setOnErrorListener +(OnErrorListener)
    + +setOneShotPreviewCallback +(PreviewCallback)
    + +setOnInfoListener
    +  type  +(OnInfoListener) in android.media.MediaPlayer +
    + +  type  +(OnInfoListener) in android.media.MediaRecorder +
    + +setOnVideoSizeChangedListener +(OnVideoSizeChangedListener)
    + +setOutputFile +(FileDescriptor)
    + +setOutsideTouchable +(boolean)
    + +setPreviewDisplay +(SurfaceHolder)
    + +setPrivateImeOptions +(String)
    + +setRawInputType +(int)
    + +setScrollContainer +(boolean)
    + +setShort +(int, String, short)
    + +setSmoothScrollbarEnabled +(boolean)
    + +setSoftInputMode +(int)
    + +setStaticTransformationsEnabled +(boolean)
    + +setString +(int, String, String)
    + +setTestProviderEnabled +(String, boolean)
    + +setTestProviderLocation +(String, Location)
    + +setTestProviderStatus +(String, int, Bundle, long)
    + +setTextColor +(int, int)
    + +Settings
    + +Settings.Secure
    + +Settings.System
    + +SETTINGS_CLASSNAME +
    + +settingsActivity +
    + +setTouchable +(boolean)
    + +setTouchInterceptor +(OnTouchListener)
    + +setUri +(int, String, Uri)
    + +setUserAgent +(int)
    + +setUserAgentString +(String)
    + +setVideoEncoder +(int)
    + +setVideoFrameRate +(int)
    + +setVideoSize +(int, int)
    + +setVideoSource +(int)
    + +setView +(View, int, int, int, int)
    + +setViewResource +(int)
    + +setVisible +(boolean)
    + +setWindowAnimations +(int)
    + +setWindowLayoutMode +(int, int)
    + +Shape
    + +sharedUserId +
    + +sharedUserLabel
    + in  +android.R.attr +
    + + in  +android.content.pm.PackageInfo +
    + +SHOW_OR_CREATE_CONTACT +
    + +SimpleCursorAdapter
    + +singleLine +
    + +SlidingDrawer
    + +SlidingDrawer.OnDrawerCloseListener
    + +SlidingDrawer.OnDrawerOpenListener
    + +SlidingDrawer.OnDrawerScrollListener
    + +smoothScrollbar +
    + +SmsMessage
    + +Socket
    +  java.net
    + +  Socket +() constructor
    + +  Socket +(String, int) constructor
    + +  Socket +(String, int, InetAddress, int) constructor
    + +  Socket +(Proxy) constructor
    + +  Socket +(SocketImpl) constructor
    + +SOFT_INPUT_ADJUST_PAN +
    + +SOFT_INPUT_ADJUST_RESIZE +
    + +SOFT_INPUT_ADJUST_UNSPECIFIED +
    + +SOFT_INPUT_IS_FORWARD_NAVIGATION +
    + +SOFT_INPUT_MASK_ADJUST +
    + +SOFT_INPUT_MASK_STATE +
    + +SOFT_INPUT_MODE_CHANGED +
    + +SOFT_INPUT_STATE_ALWAYS_HIDDEN +
    + +SOFT_INPUT_STATE_ALWAYS_VISIBLE +
    + +SOFT_INPUT_STATE_HIDDEN +
    + +SOFT_INPUT_STATE_UNCHANGED +
    + +SOFT_INPUT_STATE_UNSPECIFIED +
    + +SOFT_INPUT_STATE_VISIBLE +
    + +softInputMode
    + in  +android.content.pm.ActivityInfo +
    + + in  +android.view.WindowManager.LayoutParams +
    + +sort +(Comparator<? super T>)
    + +SoundPool
    + +SPAN_COMPOSING +
    + +SPAN_INTERMEDIATE +
    + +SPAN_POINT_MARK_MASK +
    + +Spanned
    + +SpanWatcher
    + +SparseIntArray
    + +SQLiteDatabase
    + +startSelectingText +
    + +state_long_pressable +
    + +stopSelectingText +
    + +STREAM_NOTIFICATION +
    + +STRETCH_SPACING_UNIFORM +
    + +StrikethroughSpan
    +  android.text.style
    + +  StrikethroughSpan +(Parcel) constructor
    + +String
    +  java.lang
    + +  String +() constructor
    + +  String +(byte[]) constructor
    + +  String +(byte[], int) constructor
    + +  String +(byte[], int, int) constructor
    + +  String +(byte[], int, int, int) constructor
    + +StyleSpan
    +  android.text.style
    + +  StyleSpan +(Parcel) constructor
    + +SubscriptSpan
    +  android.text.style
    + +  SubscriptSpan +(Parcel) constructor
    + +SuperscriptSpan
    +  android.text.style
    + +  SuperscriptSpan +(Parcel) constructor
    + +switchInputMethod +
    + + +
    T  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +U +V +W +Y +Z + TOP +

    +TelephonyManager
    + +TERTIARY_EMAIL +
    + +TERTIARY_EMAIL_TYPE +
    + +TERTIARY_PHONE +
    + +TERTIARY_PHONE_TYPE +
    + +TestMethod
    +  android.test.suitebuilder
    + +  TestMethod +(String, Class<TestCase>) constructor
    + +  TestMethod +(TestCase) constructor
    + +TestSuiteBuilder
    + +TextAppearanceSpan
    +  android.text.style
    + +  TextAppearanceSpan +(Parcel) constructor
    + +TextKeyListener
    + +TextUtils
    + +TextView
    + +TextView.OnEditorActionListener
    + +TextWatcher
    + +Theme_InputMethod +
    + +Theme_Light_Panel +
    + +Theme_NoDisplay +
    + +Theme_Panel +
    + +thickness +
    + +TimeKeyListener
    + +TimeUtils
    + +title_bar_tall +
    + +topOffset +
    + +toShortString
    +  type  +() in android.graphics.Rect +
    + +  type  +() in android.view.animation.Transformation +
    + +Touch
    + +TouchUtils
    + +Transformation
    + +TransitionDrawable
    +  android.graphics.drawable
    + +  TransitionDrawable +(Drawable[]) constructor
    + +TYPE_APPLICATION_ATTACHED_DIALOG +
    + +TYPE_INPUT_METHOD +
    + +TYPE_INPUT_METHOD_DIALOG +
    + +TypedArray
    + +TypefaceSpan
    +  android.text.style
    + +  TypefaceSpan +(Parcel) constructor
    + + +
    U  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +V +W +Y +Z + TOP +

    +UnderlineSpan
    +  android.text.style
    + +  UnderlineSpan +(Parcel) constructor
    + +UNKNOWN_LENGTH +
    + +unregisterListener
    +  type  +(SensorEventListener) in android.hardware.SensorManager +
    + +  type  +(SensorEventListener, Sensor) in android.hardware.SensorManager +
    + +  type  +(SensorListener) in android.hardware.SensorManager +
    + +  type  +(SensorListener, int) in android.hardware.SensorManager +
    + +update
    +  type  +() in android.widget.PopupWindow +
    + +  type  +(int, int, int, int, boolean) in android.widget.PopupWindow +
    + +UPDATE_DEVICE_STATS +
    + +UpdateAppearance
    + +UpdateLayout
    + +updatePeriodMillis +
    + +UrlInterceptHandler
    + +UrlInterceptRegistry
    + +URLSpan
    +  android.text.style
    + +  URLSpan +(Parcel) constructor
    + +URLUtil
    + +USB_MASS_STORAGE_ENABLED +
    + +USE_GOOGLE_MAIL +
    + +UserDictionary
    + +UserDictionary.Words
    + + +
    V  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +W +Y +Z + TOP +

    +verticalCorrection +
    + +verticalGap +
    + +VideoView_error_text_invalid_progressive_playback +
    + +View
    + +ViewConfiguration
    +  android.view
    + +  ViewConfiguration +() constructor
    + +ViewDebug
    + +ViewDebug.CapturedViewProperty
    + +ViewGroup
    + +ViewParent
    + +ViewTreeObserver
    + +ViewTreeObserver.OnScrollChangedListener
    + +Visibility
    + +VMDebug
    + +voiceLanguage +
    + +voiceLanguageModel +
    + +voiceMaxResults +
    + +voicePromptText +
    + +voiceSearchMode +
    + +VOLUME_NOTIFICATION +
    + + +
    W  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +Y +Z + TOP +

    +WebHistoryItem
    + +WebSettings
    + +WebView
    + +Widget_KeyboardView +
    + +WIFI_MAX_DHCP_RETRY_COUNT +
    + +WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS +
    + +WIFI_MODE_FULL +
    + +WIFI_MODE_SCAN_ONLY +
    + +WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON +
    + +WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY +
    + +WIFI_NUM_OPEN_NETWORKS_KEPT +
    + +WIFI_ON +
    + +WIFI_SLEEP_POLICY +
    + +WIFI_SLEEP_POLICY_DEFAULT +
    + +WIFI_SLEEP_POLICY_NEVER +
    + +WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED +
    + +WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE +
    + +WIFI_WATCHDOG_AP_COUNT +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS +
    + +WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT +
    + +WIFI_WATCHDOG_MAX_AP_CHECKS +
    + +WIFI_WATCHDOG_ON +
    + +WIFI_WATCHDOG_PING_COUNT +
    + +WIFI_WATCHDOG_PING_DELAY_MS +
    + +WIFI_WATCHDOG_PING_TIMEOUT_MS +
    + +WifiManager
    + +Window
    + +windowDisablePreview +
    + +WindowManager.LayoutParams
    + +windowNoDisplay +
    + +windowSoftInputMode +
    + +WRITE_SECURE_SETTINGS +
    + +writeMap +(Map)
    + +writeToParcel
    +  type  +(Parcel, int) in android.content.res.AssetFileDescriptor +
    + +  type  +(Parcel, int) in android.graphics.RectF +
    + +  type  +(Parcel, int) in android.text.Annotation +
    + +  type  +(Parcel, int) in android.text.style.AbsoluteSizeSpan +
    + +  type  +(Parcel, int) in android.text.style.AlignmentSpan.Standard +
    + +  type  +(Parcel, int) in android.text.style.BackgroundColorSpan +
    + +  type  +(Parcel, int) in android.text.style.BulletSpan +
    + +  type  +(Parcel, int) in android.text.style.ForegroundColorSpan +
    + +  type  +(Parcel, int) in android.text.style.LeadingMarginSpan.Standard +
    + +  type  +(Parcel, int) in android.text.style.QuoteSpan +
    + +  type  +(Parcel, int) in android.text.style.RelativeSizeSpan +
    + +  type  +(Parcel, int) in android.text.style.ScaleXSpan +
    + +  type  +(Parcel, int) in android.text.style.StrikethroughSpan +
    + +  type  +(Parcel, int) in android.text.style.StyleSpan +
    + +  type  +(Parcel, int) in android.text.style.SubscriptSpan +
    + +  type  +(Parcel, int) in android.text.style.SuperscriptSpan +
    + +  type  +(Parcel, int) in android.text.style.TextAppearanceSpan +
    + +  type  +(Parcel, int) in android.text.style.TypefaceSpan +
    + +  type  +(Parcel, int) in android.text.style.URLSpan +
    + +  type  +(Parcel, int) in android.text.style.UnderlineSpan +
    + + +
    Y  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +yieldIfContended +()
    + +yieldIfContendedSafely +()
    + + +
    Z  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +Zygote
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html new file mode 100644 index 0000000000000..b35bdb35ce4be --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_changes.html @@ -0,0 +1,1652 @@ + + + + + + + + + +All Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Differences +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + +
    A  +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +AbsListView
    + +AbsoluteLayout
    + +AbsoluteSizeSpan
    + +AbsSeekBar
    + +Activity
    + +ActivityInfo
    + +ActivityInstrumentationTestCase
    + +ActivityManager
    + +ADB_ENABLED +
    + +addRequirements +(Predicate<TestMethod>)
    + +AlarmManager
    + +AlertDialog
    + +AlignmentSpan.Standard
    + +android
    + +android.app
    + +android.content
    + +android.content.pm
    + +android.content.res
    + +android.database
    + +android.database.sqlite
    + +android.graphics
    + +android.graphics.drawable
    + +android.graphics.drawable.shapes
    + +android.hardware
    + +android.location
    + +android.media
    + +android.net
    + +android.net.wifi
    + +android.opengl
    + +android.os
    + +android.preference
    + +android.provider
    + +android.telephony
    + +android.telephony.gsm
    + +android.test
    + +android.test.mock
    + +android.test.suitebuilder
    + +android.text
    + +android.text.method
    + +android.text.style
    + +android.util
    + +android.view
    + +android.view.animation
    + +android.webkit
    + +android.widget
    + +ANDROID_ID +
    + +Animation
    + +Annotation
    + +appendEscapedSQLString +(StringBuilder, String)
    + +ArrayAdapter
    + +ArrowKeyMovementMethod
    + +AssetFileDescriptor
    + +AudioManager
    + +AutoCompleteTextView
    + +AutoText
    + +autoText +
    + + +
    B  +A +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +BackgroundColorSpan
    + +BaseKeyListener
    + +Binder
    + +Bitmap
    + +BLUETOOTH_ON +
    + +BroadcastReceiver
    + +Browser
    + +Build
    + +BulletSpan
    + +BUTTON1 +
    + +BUTTON2 +
    + +BUTTON3 +
    + + +
    C  +A +B +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +Camera
    + +Canvas
    + +capitalize +
    + +changeDebugPort +(int)
    + +Character.UnicodeBlock
    + +Chronometer
    + +Class
    + +ClickableSpan
    + +clone +()
    + +Configuration
    + +ConnectivityManager
    + +Contacts.Intents
    + +Contacts.Intents.Insert
    + +Contacts.PeopleColumns
    + +ContentProvider
    + +ContentResolver
    + +Context
    + +Cursor
    + +CursorAdapter
    + +CursorWrapper
    + + +dalvik.system
    + +DATA_ROAMING +
    + +DATA_X +
    + +DATA_Y +
    + +DATA_Z +
    + +DatabaseUtils
    + +Date
    +  java.util
    + +  Date +() constructor
    + +  Date +(int, int, int, int, int, int) constructor
    + +DateKeyListener
    + +DateTimeKeyListener
    + +Debug
    + +DEFAULT_SORT_ORDER
    + in  +android.provider.MediaStore.Images.Media +
    + + in  +android.provider.MediaStore.Video +
    + +DEVICE_PROVISIONED +
    + +DexFile
    + +DialerKeyListener
    + +DialogInterface
    + +DialogPreference
    + +DigitsKeyListener
    + +drag +(ActivityInstrumentationTestCase, float, float, float, float, int)
    + +dragQuarterScreenDown +(ActivityInstrumentationTestCase)
    + +dragQuarterScreenUp +(ActivityInstrumentationTestCase)
    + +dragViewBy +(ActivityInstrumentationTestCase, View, int, int, int)
    + +dragViewTo +(ActivityInstrumentationTestCase, View, int, int, int)
    + +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(InstrumentationTestCase, Activity, View) in android.test.TouchUtils +
    + +dragViewToTop
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    + +dragViewToX +(ActivityInstrumentationTestCase, View, int, int)
    + +dragViewToY +(ActivityInstrumentationTestCase, View, int, int)
    + +Drawable
    + +DynamicDrawableSpan
    + + +
    E  +A +B +C +D +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +editable +
    + +enabled +
    + +Environment
    + + +
    F  +A +B +C +D +E +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +ForegroundColorSpan
    + +forkAndSpecialize +(int, int, int[], boolean, int[][])
    + +forkSystemServer +(int, int, int[], boolean, int[][])
    + +forName +(String)
    + + +
    G  +A +B +C +D +E +F +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +GestureDetector
    +  android.view
    + +  GestureDetector +(OnGestureListener) constructor
    + +  GestureDetector +(OnGestureListener, Handler) constructor
    + +GestureDetector.SimpleOnGestureListener
    + +getClasses +()
    + +getColumnIndex
    +  type  +(String) in android.database.Cursor +
    + +  type  +(String) in android.database.CursorWrapper +
    + +getConstructors +()
    + +getCount +()
    + +getDeclaredClasses +()
    + +getDeclaredConstructors +()
    + +getEdgeSlop +()
    + +getFadingEdgeLength +()
    + +getHandler +()
    + +getInterfaces +()
    + +getItem +(int)
    + +getItemClickListener +()
    + +getItemId +(int)
    + +getItemSelectedListener +()
    + +getMaximumDrawingCacheSize +()
    + +getMinimumFlingVelocity +()
    + +getProxyClass +(ClassLoader, Class<?>)
    + +getScrollBarSize +()
    + +getSensors +()
    + +getSurrogate +(String, Map<String, String>)
    + +getTargetIntent +()
    + +getTouchSlop +()
    + +getUserAgent +()
    + +getWindowTouchSlop +()
    + +getZoomControls +()
    + +Gravity
    + +GridView
    + + +
    H  +A +B +C +D +E +F +G +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +Handler
    + +HTTP_PROXY +
    + + +
    I  +A +B +C +D +E +F +G +H +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +IBinder
    + +ImageSpan
    + +inputMethod +
    + +INSTALL_NON_MARKET_APPS +
    + +Instrumentation
    + +InstrumentationTestCase
    + +Intent
    + +isCookielessProxyUrl +(String)
    + + +java.lang
    + +java.lang.reflect
    + +java.net
    + +java.util
    + +java.util.jar
    + +java.util.logging
    + + +
    K  +A +B +C +D +E +F +G +H +I +J +L +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +KeyCharacterMap
    + +KeyEvent
    + +KeyListener
    + + +
    L  +A +B +C +D +E +F +G +H +I +J +K +M +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +LauncherActivity
    + +LeadingMarginSpan.Standard
    + +Level
    + +LIGHT_NO_MOON +
    + +ListView
    + +Location
    + +LOCATION_PROVIDERS_ALLOWED +
    + +LocationManager
    + +LOGGING_ID +
    + +LogManager
    + +longClickView +(ActivityInstrumentationTestCase, View)
    + +Looper
    + + +
    M  +A +B +C +D +E +F +G +H +I +J +K +L +N +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +Manifest.permission
    + +MaskFilterSpan
    + +MAX_KEYCODE +
    + +MediaPlayer
    + +MediaRecorder
    + +MediaRecorder.OutputFormat
    + +MediaStore
    + +MediaStore.Audio.AlbumColumns
    + +MediaStore.Audio.Media
    + +MediaStore.Images.Media
    + +MediaStore.Video
    + +MediaStore.Video.VideoColumns
    + +Menu
    + +MetaKeyKeyListener
    + +MockPackageManager
    + +MotionEvent
    + +MovementMethod
    + +MultiTapKeyListener
    + + +
    N  +A +B +C +D +E +F +G +H +I +J +K +L +M +O +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +NETWORK_PREFERENCE +
    + +NetworkInfo
    + +NUM_STREAMS +
    + +numeric +
    + + +
    O  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +P +Q +R +S +T +U +V +W +Y +Z + TOP +

    +onGlobalFocusChanged +(View, View)
    + +onRestoreInstanceState +(Parcelable)
    + +onSaveInstanceState +()
    + +OrientationListener
    + + +
    P  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +Q +R +S +T +U +V +W +Y +Z + TOP +

    +Pack200.Packer
    + +Pack200.Unpacker
    + +PackageInfo
    + +PackageManager
    + +Parcel
    + +ParcelFileDescriptor
    + +PARENTAL_CONTROL_ENABLED +
    + +PARENTAL_CONTROL_LAST_UPDATE +
    + +PARENTAL_CONTROL_REDIRECT_URL +
    + +parse +(String)
    + +password +
    + +PendingIntent
    + +phoneNumber +
    + +PhoneNumberUtils
    + +playSoundEffect +(int)
    + +PopupWindow
    + +PopupWindow.OnDismissListener
    + +prepare +()
    + +ProgressBar
    + +ProviderTestCase
    + +Proxy
    + + +
    Q  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +R +S +T +U +V +W +Y +Z + TOP +

    +QuoteSpan
    + +QwertyKeyListener
    + + +
    R  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +S +T +U +V +W +Y +Z + TOP +

    +R.attr
    + +R.drawable
    + +R.id
    + +R.string
    + +R.style
    + +RasterizerSpan
    + +RAW_DATA_INDEX +
    + +RAW_DATA_X +
    + +RAW_DATA_Y +
    + +RAW_DATA_Z +
    + +readHashMap +(ClassLoader)
    + +readMap +(Map, ClassLoader)
    + +Rect
    + +RectF
    + +registerListener
    +  type  +(SensorListener, int) in android.hardware.SensorManager +
    + +  type  +(SensorListener, int, int) in android.hardware.SensorManager +
    + +RelativeSizeSpan
    + +RemoteViews
    + +RemoteViews.ActionException
    + +ResourceCursorAdapter
    + +Resources
    + +RingtoneManager
    + +RotateDrawable
    + +ROUTE_BLUETOOTH +
    + + +
    S  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +T +U +V +W +Y +Z + TOP +

    +ScaleDrawable
    + +ScaleXSpan
    + +Scroller
    + +ScrollingMovementMethod
    + +scrollToBottom +(ActivityInstrumentationTestCase, ViewGroup)
    + +scrollToTop +(ActivityInstrumentationTestCase, ViewGroup)
    + +searchButtonText +
    + +SENSOR_ACCELEROMETER +
    + +SENSOR_ALL +
    + +SENSOR_LIGHT +
    + +SENSOR_MAGNETIC_FIELD +
    + +SENSOR_MAX +
    + +SENSOR_MIN +
    + +SENSOR_ORIENTATION +
    + +SENSOR_ORIENTATION_RAW +
    + +SENSOR_PROXIMITY +
    + +SENSOR_TEMPERATURE +
    + +SENSOR_TRICORDER +
    + +SensorListener
    + +SensorManager
    + +service +(String, Map<String, String>)
    + +setButton
    +  type  +(int, CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(int, CharSequence, Message) in android.app.AlertDialog +
    + +setButton2
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +setButton3
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    + +  type  +(CharSequence, Message) in android.app.AlertDialog +
    + +setPreviewDisplay +(SurfaceHolder)
    + +Settings
    + +Settings.System
    + +SETTINGS_CLASSNAME +
    + +setUserAgent +(int)
    + +Shape
    + +SimpleCursorAdapter
    + +singleLine +
    + +SmsMessage
    + +Socket
    +  java.net
    + +  Socket +() constructor
    + +  Socket +(String, int) constructor
    + +  Socket +(String, int, InetAddress, int) constructor
    + +  Socket +(Proxy) constructor
    + +  Socket +(SocketImpl) constructor
    + +SoundPool
    + +Spanned
    + +SpanWatcher
    + +SparseIntArray
    + +SQLiteDatabase
    + +StrikethroughSpan
    + +String
    +  java.lang
    + +  String +() constructor
    + +  String +(byte[]) constructor
    + +  String +(byte[], int) constructor
    + +  String +(byte[], int, int) constructor
    + +  String +(byte[], int, int, int) constructor
    + +StyleSpan
    + +SubscriptSpan
    + +SuperscriptSpan
    + + +
    T  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +U +V +W +Y +Z + TOP +

    +TelephonyManager
    + +TestMethod
    + +TestSuiteBuilder
    + +TextAppearanceSpan
    + +TextKeyListener
    + +TextUtils
    + +TextView
    + +TextWatcher
    + +TimeKeyListener
    + +TimeUtils
    + +Touch
    + +TouchUtils
    + +Transformation
    + +TransitionDrawable
    + +TypedArray
    + +TypefaceSpan
    + + +
    U  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +V +W +Y +Z + TOP +

    +UnderlineSpan
    + +unregisterListener
    +  type  +(SensorListener) in android.hardware.SensorManager +
    + +  type  +(SensorListener, int) in android.hardware.SensorManager +
    + +UpdateLayout
    + +UrlInterceptHandler
    + +UrlInterceptRegistry
    + +URLSpan
    + +URLUtil
    + +USB_MASS_STORAGE_ENABLED +
    + +USE_GOOGLE_MAIL +
    + + +
    V  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +W +Y +Z + TOP +

    +View
    + +ViewConfiguration
    +  android.view
    + +  ViewConfiguration +() constructor
    + +ViewDebug
    + +ViewGroup
    + +ViewParent
    + +ViewTreeObserver
    + +VMDebug
    + + +
    W  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +Y +Z + TOP +

    +WebHistoryItem
    + +WebSettings
    + +WebView
    + +WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON +
    + +WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY +
    + +WIFI_NUM_OPEN_NETWORKS_KEPT +
    + +WIFI_ON +
    + +WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE +
    + +WIFI_WATCHDOG_AP_COUNT +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED +
    + +WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS +
    + +WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT +
    + +WIFI_WATCHDOG_MAX_AP_CHECKS +
    + +WIFI_WATCHDOG_ON +
    + +WIFI_WATCHDOG_PING_COUNT +
    + +WIFI_WATCHDOG_PING_DELAY_MS +
    + +WIFI_WATCHDOG_PING_TIMEOUT_MS +
    + +WifiManager
    + +Window
    + +WindowManager.LayoutParams
    + +writeMap +(Map)
    + + +
    Y  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +yieldIfContended +()
    + + +
    Z  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Y + TOP +

    +Zygote
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html b/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html new file mode 100644 index 0000000000000..662b26690d2e3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/alldiffs_index_removals.html @@ -0,0 +1,78 @@ + + + + + + + + + +All Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Differences +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + +
    C  +N + TOP +

    +CATEGORY_GADGET +
    + + +
    N  +C + TOP +

    +NetworkInfo +(int) constructor
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html b/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html new file mode 100644 index 0000000000000..76591022179ea --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.Manifest.permission.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.Manifest.permission + + + + + + + + + + +
    +
    +
    +

    +Class android.Manifest.permission +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String BIND_APPWIDGET +  
    + + String BIND_INPUT_METHOD +  
    + + String MOUNT_FORMAT_FILESYSTEMS +  
    + + String UPDATE_DEVICE_STATS +  
    + + String WRITE_SECURE_SETTINGS +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.R.attr.html b/docs/html/sdk/api_diff/3/changes/android.R.attr.html new file mode 100644 index 0000000000000..7df16a1213299 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.R.attr.html @@ -0,0 +1,739 @@ + + + + + + + + + +android.R.attr + + + + + + + + + + +
    +
    +
    +

    +Class android.R.attr +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int allowSingleTap +  
    + + int animateOnClick +  
    + + int backgroundDimEnabled +  
    + + int bottomOffset +  
    + + int candidatesTextStyleSpans +  
    + + int codes +  
    + + int configure +  
    + + int content +  
    + + int dropDownAnchor +  
    + + int dropDownWidth +  
    + + int editorExtras +  
    + + int fastScrollEnabled +  
    + + int fillEnabled +  
    + + int footerDividersEnabled +  
    + + int handle +  
    + + int hapticFeedbackEnabled +  
    + + int headerDividersEnabled +  
    + + int horizontalGap +  
    + + int iconPreview +  
    + + int imeActionId +  
    + + int imeActionLabel +  
    + + int imeExtractEnterAnimation +  
    + + int imeExtractExitAnimation +  
    + + int imeFullscreenBackground +  
    + + int imeOptions +  
    + + int initialLayout +  
    + + int innerRadius +  
    + + int inputType +  
    + + int isDefault +  
    + + int isModifier +  
    + + int isRepeatable +  
    + + int isScrollContainer +  
    + + int isSticky +  
    + + int keyBackground +  
    + + int keyEdgeFlags +  
    + + int keyHeight +  
    + + int keyIcon +  
    + + int keyLabel +  
    + + int keyOutputText +  
    + + int keyPreviewHeight +  
    + + int keyPreviewLayout +  
    + + int keyPreviewOffset +  
    + + int keyTextColor +  
    + + int keyTextSize +  
    + + int keyWidth +  
    + + int keyboardMode +  
    + + int labelTextSize +  
    + + int noHistory +  
    + + int popupCharacters +  
    + + int popupKeyboard +  
    + + int popupLayout +  
    + + int privateImeOptions +  
    + + int reqFiveWayNav +  
    + + int reqHardKeyboard +  
    + + int reqKeyboardType +  
    + + int reqNavigation +  
    + + int reqTouchScreen +  
    + + int rowEdgeFlags +  
    + + int settingsActivity +  
    + + int sharedUserLabel +  
    + + int smoothScrollbar +  
    + + int state_long_pressable +  
    + + int thickness +  
    + + int topOffset +  
    + + int updatePeriodMillis +  
    + + int verticalCorrection +  
    + + int verticalGap +  
    + + int voiceLanguage +  
    + + int voiceLanguageModel +  
    + + int voiceMaxResults +  
    + + int voicePromptText +  
    + + int voiceSearchMode +  
    + + int windowDisablePreview +  
    + + int windowNoDisplay +  
    + + int windowSoftInputMode +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Fields +
    + + int autoText +Now deprecated.
    +
     
    + + int capitalize +Now deprecated.
    +
     
    + + int editable +Now deprecated.
    +
     
    + + int enabled +Now deprecated.
    +
     
    + + int inputMethod +Now deprecated.
    +
     
    + + int numeric +Now deprecated.
    +
     
    + + int password +Now deprecated.
    +
     
    + + int phoneNumber +Now deprecated.
    +
     
    + + int searchButtonText +Now deprecated.
    +
     
    + + int singleLine +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.R.drawable.html b/docs/html/sdk/api_diff/3/changes/android.R.drawable.html new file mode 100644 index 0000000000000..fe046dd7370f1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.R.drawable.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.R.drawable + + + + + + + + + + +
    +
    +
    +

    +Class android.R.drawable +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int dark_header +  
    + + int ic_btn_speak_now +  
    + + int title_bar_tall +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.R.id.html b/docs/html/sdk/api_diff/3/changes/android.R.id.html new file mode 100644 index 0000000000000..d30fc1da3b7f0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.R.id.html @@ -0,0 +1,221 @@ + + + + + + + + + +android.R.id + + + + + + + + + + +
    +
    +
    +

    +Class android.R.id +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int addToDictionary +  
    + + int candidatesArea +  
    + + int closeButton +  
    + + int copy +  
    + + int copyUrl +  
    + + int cut +  
    + + int extractArea +  
    + + int inputArea +  
    + + int inputExtractEditText +  
    + + int keyboardView +  
    + + int paste +  
    + + int selectAll +  
    + + int startSelectingText +  
    + + int stopSelectingText +  
    + + int switchInputMethod +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.R.string.html b/docs/html/sdk/api_diff/3/changes/android.R.string.html new file mode 100644 index 0000000000000..5d18ffa187c6f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.R.string.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.R.string + + + + + + + + + + +
    +
    +
    +

    +Class android.R.string +

    + + + +

    + + + + + + + + + + + + +
    Added Fields +
    + + int VideoView_error_text_invalid_progressive_playback +  
    + + int dialog_alert_title +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.R.style.html b/docs/html/sdk/api_diff/3/changes/android.R.style.html new file mode 100644 index 0000000000000..726bab9fb2b48 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.R.style.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.R.style + + + + + + + + + + +
    +
    +
    +

    +Class android.R.style +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int Theme_InputMethod +  
    + + int Theme_Light_Panel +  
    + + int Theme_NoDisplay +  
    + + int Theme_Panel +  
    + + int Widget_KeyboardView +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.Activity.html b/docs/html/sdk/api_diff/3/changes/android.app.Activity.html new file mode 100644 index 0000000000000..7ff5871e76ce2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.Activity.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.app.Activity + + + + + + + + + + +
    +
    +
    +

    +Class android.app.Activity +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void closeContextMenu() +  
    + + boolean hasWindowFocus() +  
    + + void onUserInteraction() +  
    + + void onUserLeaveHint() +  
    + + void setVisible(boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html b/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html new file mode 100644 index 0000000000000..bd473fb8a393b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.ActivityManager.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.app.ActivityManager + + + + + + + + + + +
    +
    +
    +

    +Class android.app.ActivityManager +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + ConfigurationInfo getDeviceConfigurationInfo() +  
    + + List<RunningAppProcessInfo> getRunningAppProcesses() +  
    + + void restartPackage(String) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html b/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html new file mode 100644 index 0000000000000..b8280f2fc9b60 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.AlarmManager.html @@ -0,0 +1,166 @@ + + + + + + + + + +android.app.AlarmManager + + + + + + + + + + +
    +
    +
    +

    +Class android.app.AlarmManager +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void setInexactRepeating(int, long, long, PendingIntent) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + long INTERVAL_DAY +  
    + + long INTERVAL_FIFTEEN_MINUTES +  
    + + long INTERVAL_HALF_DAY +  
    + + long INTERVAL_HALF_HOUR +  
    + + long INTERVAL_HOUR +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html b/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html new file mode 100644 index 0000000000000..bb8cdb1624fe5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.AlertDialog.html @@ -0,0 +1,219 @@ + + + + + + + + + +android.app.AlertDialog + + + + + + + + + + +
    +
    +
    +

    +Class android.app.AlertDialog +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + Button getButton(int) +  
    + + ListView getListView() +  
    + + void setButton(CharSequence, OnClickListener) +  
    + + void setButton(CharSequence, Message) +  
    + + void setView(View, int, int, int, int) +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + void setButton(int, CharSequence, OnClickListener) + +Change in signature from (CharSequence, OnClickListener) to (int, CharSequence, OnClickListener).
    +
     
    + + void setButton(int, CharSequence, Message) + +Change in signature from (CharSequence, Message) to (int, CharSequence, Message).
    +
     
    + + void setButton2(CharSequence, OnClickListener) + +Now deprecated.
    +
     
    + + void setButton2(CharSequence, Message) + +Now deprecated.
    +
     
    + + void setButton3(CharSequence, OnClickListener) + +Now deprecated.
    +
     
    + + void setButton3(CharSequence, Message) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html b/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html new file mode 100644 index 0000000000000..b6f26a6df9621 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.Instrumentation.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.app.Instrumentation + + + + + + + + + + +
    +
    +
    +

    +Class android.app.Instrumentation +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void callActivityOnUserLeaving(Activity) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html b/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html new file mode 100644 index 0000000000000..60f7f29a6071c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.LauncherActivity.html @@ -0,0 +1,148 @@ + + + + + + + + + +android.app.LauncherActivity + + + + + + + + + + +
    +
    +
    +

    +Class android.app.LauncherActivity +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + Intent intentForPosition(int) +  
    + + List<ListItem> makeListItems() +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + Intent getTargetIntent() + +Changed from abstract to non-abstract. +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html new file mode 100644 index 0000000000000..6155508fcd817 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.app.PendingIntent.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.app.PendingIntent + + + + + + + + + + +
    +
    +
    +

    +Class android.app.PendingIntent +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + int FLAG_UPDATE_CURRENT +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html b/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html new file mode 100644 index 0000000000000..bd8cc8ccadb67 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.BroadcastReceiver.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.content.BroadcastReceiver + + + + + + + + + + +
    +
    +
    +

    +Class android.content.BroadcastReceiver +

    + + +

    + + + + + + + + +
    Added Methods +
    + + IBinder peekService(Context, Intent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html b/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html new file mode 100644 index 0000000000000..c6de326051660 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.ContentProvider.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.content.ContentProvider + + + + + + + + + + +
    +
    +
    +

    +Class android.content.ContentProvider +

    + + +

    + + + + + + + + +
    Added Methods +
    + + AssetFileDescriptor openAssetFile(Uri, String) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html b/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html new file mode 100644 index 0000000000000..2101198a7f040 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.ContentResolver.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.content.ContentResolver + + + + + + + + + + +
    +
    +
    +

    +Class android.content.ContentResolver +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + AssetFileDescriptor openAssetFileDescriptor(Uri, String) +  
    + + OutputStream openOutputStream(Uri, String) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.Context.html b/docs/html/sdk/api_diff/3/changes/android.content.Context.html new file mode 100644 index 0000000000000..ac3d99da74f21 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.Context.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.content.Context + + + + + + + + + + +
    +
    +
    +

    +Class android.content.Context +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String INPUT_METHOD_SERVICE +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html b/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html new file mode 100644 index 0000000000000..17dd651368bcc --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.DialogInterface.html @@ -0,0 +1,172 @@ + + + + + + + + + +android.content.DialogInterface + + + + + + + + + + +
    +
    +
    +

    +Interface android.content.DialogInterface +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int BUTTON_NEGATIVE +  
    + + int BUTTON_NEUTRAL +  
    + + int BUTTON_POSITIVE +  
    +  +

    + + + + + + + + + + + + + + + + + + + +
    Changed Fields +
    + + int BUTTON1 +Now deprecated.
    +
     
    + + int BUTTON2 +Now deprecated.
    +
     
    + + int BUTTON3 +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.Intent.html b/docs/html/sdk/api_diff/3/changes/android.content.Intent.html new file mode 100644 index 0000000000000..edb02387b0aa9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.Intent.html @@ -0,0 +1,251 @@ + + + + + + + + + +android.content.Intent + + + + + + + + + + +
    +
    +
    +

    +Class android.content.Intent +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + Intent replaceExtras(Intent) +  
    + + Intent replaceExtras(Bundle) +  
    +  + +

    + + + + + + + + +
    Removed Fields +
    + + String CATEGORY_GADGET +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACTION_INPUT_METHOD_CHANGED +  
    + + String ACTION_MEDIA_CHECKING +  
    + + String ACTION_MEDIA_NOFS +  
    + + String ACTION_PACKAGE_DATA_CLEARED +  
    + + String ACTION_PACKAGE_REPLACED +  
    + + String ACTION_SEARCH_LONG_PRESS +  
    + + String ACTION_SYSTEM_TUTORIAL +  
    + + String ACTION_USER_PRESENT +  
    + + String CATEGORY_INFO +  
    + + String EXTRA_DATA_REMOVED +  
    + + String EXTRA_REPLACING +  
    + + int FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET +  
    + + int FLAG_ACTIVITY_NO_USER_ACTION +  
    + + int FLAG_ACTIVITY_REORDER_TO_FRONT +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html new file mode 100644 index 0000000000000..5c62f6b769d09 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.ActivityInfo.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.content.pm.ActivityInfo + + + + + + + + + + +
    +
    +
    +

    +Class android.content.pm.ActivityInfo +

    + + + +

    + + + + + + + + + + + + +
    Added Fields +
    + + int FLAG_NO_HISTORY +  
    + + int softInputMode +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html new file mode 100644 index 0000000000000..b360d7c2bba27 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageInfo.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.content.pm.PackageInfo + + + + + + + + + + +
    +
    +
    +

    +Class android.content.pm.PackageInfo +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + ConfigurationInfo[] configPreferences +  
    + + String sharedUserId +  
    + + int sharedUserLabel +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html new file mode 100644 index 0000000000000..efd37c54f3b17 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.pm.PackageManager.html @@ -0,0 +1,166 @@ + + + + + + + + + +android.content.pm.PackageManager + + + + + + + + + + +
    +
    +
    +

    +Class android.content.pm.PackageManager +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + Intent getLaunchIntentForPackage(String) +  
    + + String[] getSystemSharedLibraryNames() +  
    + + boolean isSafeMode() +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int GET_CONFIGURATIONS +  
    + + int GET_UNINSTALLED_PACKAGES +  
    + + int INSTALL_FAILED_CONFLICTING_PROVIDER +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html b/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html new file mode 100644 index 0000000000000..458a70a74ecf5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.AssetFileDescriptor.html @@ -0,0 +1,174 @@ + + + + + + + + + +android.content.res.AssetFileDescriptor + + + + + + + + + + +
    +
    +
    +

    +Class android.content.res.AssetFileDescriptor +

    +

    Added interface android.os.Parcelable.
    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + FileInputStream createInputStream() +  
    + + FileOutputStream createOutputStream() +  
    + + int describeContents() +  
    + + long getDeclaredLength() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + + + + + + + + + + + + +
    Added Fields +
    + + Creator CREATOR +  
    + + long UNKNOWN_LENGTH +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html new file mode 100644 index 0000000000000..3b8f943aceb7a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.Configuration.html @@ -0,0 +1,144 @@ + + + + + + + + + +android.content.res.Configuration + + + + + + + + + + +
    +
    +
    +

    +Class android.content.res.Configuration +

    + + + +

    + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int HARDKEYBOARDHIDDEN_NO +  
    + + int HARDKEYBOARDHIDDEN_UNDEFINED +  
    + + int HARDKEYBOARDHIDDEN_YES +  
    + + int hardKeyboardHidden +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html b/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html new file mode 100644 index 0000000000000..7fde1f9833109 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.Resources.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.content.res.Resources + + + + + + + + + + +
    +
    +
    +

    +Class android.content.res.Resources +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean getBoolean(int) +  
    + + float getFraction(int, int, int) +  
    + + InputStream openRawResource(int, TypedValue) +  
    + + void parseBundleExtra(String, AttributeSet, Bundle) +  
    + + void parseBundleExtras(XmlResourceParser, Bundle) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html b/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html new file mode 100644 index 0000000000000..f1336fc7d7ed9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.content.res.TypedArray.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.content.res.TypedArray + + + + + + + + + + +
    +
    +
    +

    +Class android.content.res.TypedArray +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getLayoutDimension(int, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html b/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html new file mode 100644 index 0000000000000..020402a4c7141 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.database.Cursor.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.database.Cursor + + + + + + + + + + +
    +
    +
    +

    +Interface android.database.Cursor +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + int getColumnIndex(String) + +Change from deprecated to undeprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html b/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html new file mode 100644 index 0000000000000..3a7675d57da6e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.database.CursorWrapper.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.database.CursorWrapper + + + + + + + + + + +
    +
    +
    +

    +Class android.database.CursorWrapper +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + int getColumnIndex(String) + +Change from deprecated to undeprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html b/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html new file mode 100644 index 0000000000000..114beaeeee623 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.database.DatabaseUtils.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.database.DatabaseUtils + + + + + + + + + + +
    +
    +
    +

    +Class android.database.DatabaseUtils +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + void appendEscapedSQLString(StringBuilder, String) + +Change from deprecated to undeprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html b/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html new file mode 100644 index 0000000000000..cd59c1b854310 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.database.sqlite.SQLiteDatabase.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.database.sqlite.SQLiteDatabase + + + + + + + + + + +
    +
    +
    +

    +Class android.database.sqlite.SQLiteDatabase +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean yieldIfContendedSafely() +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + boolean yieldIfContended() + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html new file mode 100644 index 0000000000000..f6ddc29c10bfb --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Bitmap.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.Bitmap + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.Bitmap +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void copyPixelsFromBuffer(Buffer) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html new file mode 100644 index 0000000000000..cf8ceef7ab5fb --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Canvas.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.Canvas + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.Canvas +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void drawBitmap(int[], int, int, float, float, int, int, boolean, Paint) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html b/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html new file mode 100644 index 0000000000000..1c0b1f342d377 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.Rect.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.Rect + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.Rect +

    + + +

    + + + + + + + + +
    Added Methods +
    + + String toShortString() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html b/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html new file mode 100644 index 0000000000000..4e9b91b2a2ed3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.RectF.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.graphics.RectF + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.RectF +

    +

    Added interface android.os.Parcelable.
    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + void readFromParcel(Parcel) +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + + + + + + + + +
    Added Fields +
    + + Creator CREATOR +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html new file mode 100644 index 0000000000000..faa70b96da449 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.Drawable.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.drawable.Drawable + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.drawable.Drawable +

    + + +

    + + + + + + + + +
    Added Methods +
    + + Drawable mutate() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html new file mode 100644 index 0000000000000..8cffe1e0bdb9a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.RotateDrawable.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.drawable.RotateDrawable + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.drawable.RotateDrawable +

    + + +

    + + + + + + + + +
    Added Methods +
    + + Drawable getDrawable() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html new file mode 100644 index 0000000000000..529f38026ebef --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.ScaleDrawable.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.drawable.ScaleDrawable + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.drawable.ScaleDrawable +

    + + +

    + + + + + + + + +
    Added Methods +
    + + Drawable getDrawable() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html new file mode 100644 index 0000000000000..d7dc8eafcf3c1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.TransitionDrawable.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.graphics.drawable.TransitionDrawable + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.drawable.TransitionDrawable +

    + +

    + + + + + + + + +
    Added Constructors +
    + + TransitionDrawable(Drawable[]) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html new file mode 100644 index 0000000000000..836aa92159130 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.graphics.drawable.shapes.Shape.html @@ -0,0 +1,128 @@ + + + + + + + + + +android.graphics.drawable.shapes.Shape + + + + + + + + + + +
    +
    +
    +

    +Class android.graphics.drawable.shapes.Shape +

    +

    Added interface java.lang.Cloneable.
    + + +

    + + + + + + + + + +
    Changed Methods +
    + + Shape clone() + +Change in return type from Object to Shape.
    + Method was inherited from java.lang.Object, but is now defined locally. Change of visibility from protected to public.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html b/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html new file mode 100644 index 0000000000000..b7a0dd37a1222 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.Camera.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.hardware.Camera + + + + + + + + + + +
    +
    +
    +

    +Class android.hardware.Camera +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void setOneShotPreviewCallback(PreviewCallback) +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + void setPreviewDisplay(SurfaceHolder) + +Change in exceptions thrown from no exceptions to java.io.IOException.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html new file mode 100644 index 0000000000000..9b63571fcf52c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorListener.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.hardware.SensorListener + + + + + + + + + + +
    +
    +
    +

    +Interface android.hardware.SensorListener +

    +

    Now deprecated.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html new file mode 100644 index 0000000000000..e42eebaf21f9d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.hardware.SensorManager.html @@ -0,0 +1,473 @@ + + + + + + + + + +android.hardware.SensorManager + + + + + + + + + + +
    +
    +
    +

    +Class android.hardware.SensorManager +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + Sensor getDefaultSensor(int) +  
    + + float getInclination(float[]) +  
    + + float[] getOrientation(float[], float[]) +  
    + + boolean getRotationMatrix(float[], float[], float[], float[]) +  
    + + List<Sensor> getSensorList(int) +  
    + + boolean registerListener(SensorEventListener, Sensor, int) +  
    + + boolean registerListener(SensorEventListener, Sensor, int, Handler) +  
    + + boolean remapCoordinateSystem(float[], int, int, float[]) +  
    + + void unregisterListener(SensorEventListener) +  
    + + void unregisterListener(SensorEventListener, Sensor) +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + int getSensors() + +Now deprecated.
    +
     
    + + boolean registerListener(SensorListener, int) + +Now deprecated.
    +
     
    + + boolean registerListener(SensorListener, int, int) + +Now deprecated.
    +
     
    + + void unregisterListener(SensorListener) + +Now deprecated.
    +
     
    + + void unregisterListener(SensorListener, int) + +Now deprecated.
    +
     
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int AXIS_MINUS_X +  
    + + int AXIS_MINUS_Y +  
    + + int AXIS_MINUS_Z +  
    + + int AXIS_X +  
    + + int AXIS_Y +  
    + + int AXIS_Z +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Fields +
    + + int DATA_X +Now deprecated.
    +
     
    + + int DATA_Y +Now deprecated.
    +
     
    + + int DATA_Z +Now deprecated.
    +
     
    + + float LIGHT_NO_MOON +Changed in value from 0.0010f to 0.001f. +  
    + + int RAW_DATA_INDEX +Now deprecated.
    +
     
    + + int RAW_DATA_X +Now deprecated.
    +
     
    + + int RAW_DATA_Y +Now deprecated.
    +
     
    + + int RAW_DATA_Z +Now deprecated.
    +
     
    + + int SENSOR_ACCELEROMETER +Now deprecated.
    +
     
    + + int SENSOR_ALL +Now deprecated.
    +
     
    + + int SENSOR_LIGHT +Now deprecated.
    +
     
    + + int SENSOR_MAGNETIC_FIELD +Now deprecated.
    +
     
    + + int SENSOR_MAX +Now deprecated.
    +
     
    + + int SENSOR_MIN +Now deprecated.
    +
     
    + + int SENSOR_ORIENTATION +Now deprecated.
    +
     
    + + int SENSOR_ORIENTATION_RAW +Now deprecated.
    +
     
    + + int SENSOR_PROXIMITY +Now deprecated.
    +
     
    + + int SENSOR_TEMPERATURE +Now deprecated.
    +
     
    + + int SENSOR_TRICORDER +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.location.Location.html b/docs/html/sdk/api_diff/3/changes/android.location.Location.html new file mode 100644 index 0000000000000..03d3f894f33c7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.location.Location.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.location.Location + + + + + + + + + + +
    +
    +
    +

    +Class android.location.Location +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void dump(Printer, String) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html b/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html new file mode 100644 index 0000000000000..4cd68386cbd41 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.location.LocationManager.html @@ -0,0 +1,243 @@ + + + + + + + + + +android.location.LocationManager + + + + + + + + + + +
    +
    +
    +

    +Class android.location.LocationManager +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean addGpsStatusListener(Listener) +  
    + + void addTestProvider(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int) +  
    + + void clearTestProviderEnabled(String) +  
    + + void clearTestProviderLocation(String) +  
    + + void clearTestProviderStatus(String) +  
    + + GpsStatus getGpsStatus(GpsStatus) +  
    + + void removeGpsStatusListener(Listener) +  
    + + void removeTestProvider(String) +  
    + + void removeUpdates(PendingIntent) +  
    + + void requestLocationUpdates(String, long, float, PendingIntent) +  
    + + boolean sendExtraCommand(String, String, Bundle) +  
    + + void setTestProviderEnabled(String, boolean) +  
    + + void setTestProviderLocation(String, Location) +  
    + + void setTestProviderStatus(String, int, Bundle, long) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String KEY_LOCATION_CHANGED +  
    + + String KEY_PROVIDER_ENABLED +  
    + + String KEY_STATUS_CHANGED +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html new file mode 100644 index 0000000000000..a98d840ffaf7f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.AudioManager.html @@ -0,0 +1,227 @@ + + + + + + + + + +android.media.AudioManager + + + + + + + + + + +
    +
    +
    +

    +Class android.media.AudioManager +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean isBluetoothA2dpOn() +  
    + + void playSoundEffect(int, float) +  
    + + void setBluetoothA2dpOn(boolean) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACTION_AUDIO_BECOMING_NOISY +  
    + + int FX_KEYPRESS_DELETE +  
    + + int FX_KEYPRESS_RETURN +  
    + + int FX_KEYPRESS_SPACEBAR +  
    + + int FX_KEYPRESS_STANDARD +  
    + + int ROUTE_BLUETOOTH_A2DP +  
    + + int ROUTE_BLUETOOTH_SCO +  
    + + int STREAM_NOTIFICATION +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Fields +
    + + int NUM_STREAMS +Now deprecated.
    +
     
    + + int ROUTE_BLUETOOTH +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html new file mode 100644 index 0000000000000..7704e1232ee8e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaPlayer.html @@ -0,0 +1,180 @@ + + + + + + + + + +android.media.MediaPlayer + + + + + + + + + + +
    +
    +
    +

    +Class android.media.MediaPlayer +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean isLooping() +  
    + + void setOnInfoListener(OnInfoListener) +  
    + + void setOnVideoSizeChangedListener(OnVideoSizeChangedListener) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK +  
    + + int MEDIA_INFO_BAD_INTERLEAVING +  
    + + int MEDIA_INFO_NOT_SEEKABLE +  
    + + int MEDIA_INFO_UNKNOWN +  
    + + int MEDIA_INFO_VIDEO_TRACK_LAGGING +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html new file mode 100644 index 0000000000000..0967c567c7f4b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.OutputFormat.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.media.MediaRecorder.OutputFormat + + + + + + + + + + +
    +
    +
    +

    +Class android.media.MediaRecorder.OutputFormat +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + int RAW_AMR +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html new file mode 100644 index 0000000000000..9daf4c350aaa3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.MediaRecorder.html @@ -0,0 +1,240 @@ + + + + + + + + + +android.media.MediaRecorder + + + + + + + + + + +
    +
    +
    +

    +Class android.media.MediaRecorder +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void setCamera(Camera) +  
    + + void setMaxDuration(int) +  
    + + void setMaxFileSize(long) +  
    + + void setOnErrorListener(OnErrorListener) +  
    + + void setOnInfoListener(OnInfoListener) +  
    + + void setOutputFile(FileDescriptor) +  
    + + void setVideoEncoder(int) +  
    + + void setVideoFrameRate(int) +  
    + + void setVideoSize(int, int) +  
    + + void setVideoSource(int) +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + void prepare() + +Change in exceptions thrown from java.lang.IllegalStateException to (java.io.IOException, java.lang.IllegalStateException).
    +
     
    +  + +

    + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int MEDIA_RECORDER_ERROR_UNKNOWN +  
    + + int MEDIA_RECORDER_INFO_MAX_DURATION_REACHED +  
    + + int MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED +  
    + + int MEDIA_RECORDER_INFO_UNKNOWN +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html b/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html new file mode 100644 index 0000000000000..e9fdbfc24b04d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.RingtoneManager.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.media.RingtoneManager + + + + + + + + + + +
    +
    +
    +

    +Class android.media.RingtoneManager +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int inferStreamType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html b/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html new file mode 100644 index 0000000000000..6e765d837f78c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.media.SoundPool.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.media.SoundPool + + + + + + + + + + +
    +
    +
    +

    +Class android.media.SoundPool +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + int load(AssetFileDescriptor, int) +  
    + + int load(FileDescriptor, long, long, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html b/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html new file mode 100644 index 0000000000000..7b0750e02f15f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.net.ConnectivityManager.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.net.ConnectivityManager + + + + + + + + + + +
    +
    +
    +

    +Class android.net.ConnectivityManager +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean getBackgroundDataSetting() +  
    +  + +

    + + + + + + + + +
    Added Fields +
    + + String ACTION_BACKGROUND_DATA_SETTING_CHANGED +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html b/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html new file mode 100644 index 0000000000000..6c3c26d2c4c42 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.net.NetworkInfo.html @@ -0,0 +1,152 @@ + + + + + + + + + +android.net.NetworkInfo + + + + + + + + + + +
    +
    +
    +

    +Class android.net.NetworkInfo +

    + +

    + + + + + + + + +
    Removed Constructors +
    + + NetworkInfo(int) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int getSubtype() +  
    + + String getSubtypeName() +  
    + + boolean isRoaming() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html b/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html new file mode 100644 index 0000000000000..2e79642e76622 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.net.wifi.WifiManager.html @@ -0,0 +1,145 @@ + + + + + + + + + +android.net.wifi.WifiManager + + + + + + + + + + +
    +
    +
    +

    +Class android.net.wifi.WifiManager +

    + + +

    + + + + + + + + +
    Added Methods +
    + + WifiLock createWifiLock(int, String) +  
    +  + +

    + + + + + + + + + + + + +
    Added Fields +
    + + int WIFI_MODE_FULL +  
    + + int WIFI_MODE_SCAN_ONLY +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Binder.html b/docs/html/sdk/api_diff/3/changes/android.os.Binder.html new file mode 100644 index 0000000000000..882803adaf42a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Binder.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.os.Binder + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Binder +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void dump(FileDescriptor, String[]) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Build.html b/docs/html/sdk/api_diff/3/changes/android.os.Build.html new file mode 100644 index 0000000000000..2a69a8c7c204c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Build.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.os.Build + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Build +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String DISPLAY +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Debug.html b/docs/html/sdk/api_diff/3/changes/android.os.Debug.html new file mode 100644 index 0000000000000..8e7e2db3eef8d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Debug.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.os.Debug + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Debug +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void dumpHprofData(String) +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + void changeDebugPort(int) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Environment.html b/docs/html/sdk/api_diff/3/changes/android.os.Environment.html new file mode 100644 index 0000000000000..4cc764375c641 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Environment.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.os.Environment + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Environment +

    + + + +

    + + + + + + + + + + + + +
    Added Fields +
    + + String MEDIA_CHECKING +  
    + + String MEDIA_NOFS +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Handler.html b/docs/html/sdk/api_diff/3/changes/android.os.Handler.html new file mode 100644 index 0000000000000..fc10c9b29cd1a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Handler.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.os.Handler + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Handler +

    + +

    + + + + + + + + + + + + +
    Added Constructors +
    + + Handler(Callback) +  
    + + Handler(Looper, Callback) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html b/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html new file mode 100644 index 0000000000000..95745dc7d4a34 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.IBinder.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.os.IBinder + + + + + + + + + + +
    +
    +
    +

    +Interface android.os.IBinder +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void dump(FileDescriptor, String[]) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Looper.html b/docs/html/sdk/api_diff/3/changes/android.os.Looper.html new file mode 100644 index 0000000000000..d79ae756786f4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Looper.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.os.Looper + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Looper +

    + + +

    + + + + + + + + +
    Added Methods +
    + + Thread getThread() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html b/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html new file mode 100644 index 0000000000000..317b722d9f0f3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.Parcel.html @@ -0,0 +1,146 @@ + + + + + + + + + +android.os.Parcel + + + + + + + + + + +
    +
    +
    +

    +Class android.os.Parcel +

    + + +

    + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + HashMap readHashMap(ClassLoader) + +Change from deprecated to undeprecated.
    +
     
    + + void readMap(Map, ClassLoader) + +Change from deprecated to undeprecated.
    +
     
    + + void writeMap(Map) + +Change from deprecated to undeprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html b/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html new file mode 100644 index 0000000000000..77641d54c4dd1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.os.ParcelFileDescriptor.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.os.ParcelFileDescriptor + + + + + + + + + + +
    +
    +
    +

    +Class android.os.ParcelFileDescriptor +

    + + +

    + + + + + + + + +
    Added Methods +
    + + long getStatSize() +  
    +  + +

    + + + + + + + + +
    Added Fields +
    + + int MODE_APPEND +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html b/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html new file mode 100644 index 0000000000000..93e05e7c6320a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.preference.DialogPreference.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.preference.DialogPreference + + + + + + + + + + +
    +
    +
    +

    +Class android.preference.DialogPreference +

    + + +

    + + + + + + + + +
    Added Methods +
    + + Dialog getDialog() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html b/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html new file mode 100644 index 0000000000000..9a9a4b80ef09e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Browser.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.provider.Browser + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.Browser +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String EXTRA_APPLICATION_ID +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html new file mode 100644 index 0000000000000..32541826a8881 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.Insert.html @@ -0,0 +1,179 @@ + + + + + + + + + +android.provider.Contacts.Intents.Insert + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.Contacts.Intents.Insert +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String PHONETIC_NAME +  
    + + String SECONDARY_EMAIL +  
    + + String SECONDARY_EMAIL_TYPE +  
    + + String SECONDARY_PHONE +  
    + + String SECONDARY_PHONE_TYPE +  
    + + String TERTIARY_EMAIL +  
    + + String TERTIARY_EMAIL_TYPE +  
    + + String TERTIARY_PHONE +  
    + + String TERTIARY_PHONE_TYPE +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html new file mode 100644 index 0000000000000..1f758333c47ea --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.Intents.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.provider.Contacts.Intents + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.Contacts.Intents +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String EXTRA_CREATE_DESCRIPTION +  
    + + String EXTRA_FORCE_CREATE +  
    + + String SHOW_OR_CREATE_CONTACT +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html new file mode 100644 index 0000000000000..e8c0f4d6d2c7c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Contacts.PeopleColumns.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.provider.Contacts.PeopleColumns + + + + + + + + + + +
    +
    +
    +

    +Interface android.provider.Contacts.PeopleColumns +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String PHONETIC_NAME +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html new file mode 100644 index 0000000000000..ade1498b3082c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.AlbumColumns.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.provider.MediaStore.Audio.AlbumColumns + + + + + + + + + + +
    +
    +
    +

    +Interface android.provider.MediaStore.Audio.AlbumColumns +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String NUMBER_OF_SONGS_FOR_ARTIST +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html new file mode 100644 index 0000000000000..52bae9d6f275a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Audio.Media.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.provider.MediaStore.Audio.Media + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.MediaStore.Audio.Media +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + String EXTRA_MAX_BYTES +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html new file mode 100644 index 0000000000000..b375c3f9959fe --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Images.Media.html @@ -0,0 +1,125 @@ + + + + + + + + + +android.provider.MediaStore.Images.Media + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.MediaStore.Images.Media +

    + + + +

    + + + + + + + + + +
    Changed Fields +
    + + String DEFAULT_SORT_ORDER +Changed in value from "name ASC" to "bucket_display_name". +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html new file mode 100644 index 0000000000000..43494502563fa --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.VideoColumns.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.provider.MediaStore.Video.VideoColumns + + + + + + + + + + +
    +
    +
    +

    +Interface android.provider.MediaStore.Video.VideoColumns +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String BOOKMARK +  
    + + String BUCKET_DISPLAY_NAME +  
    + + String BUCKET_ID +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html new file mode 100644 index 0000000000000..60437625988c1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.Video.html @@ -0,0 +1,125 @@ + + + + + + + + + +android.provider.MediaStore.Video + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.MediaStore.Video +

    + + + +

    + + + + + + + + + +
    Changed Fields +
    + + String DEFAULT_SORT_ORDER +Changed in value from "name ASC" to "_display_name". +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html new file mode 100644 index 0000000000000..0d6a4cdce690a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.MediaStore.html @@ -0,0 +1,207 @@ + + + + + + + + + +android.provider.MediaStore + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.MediaStore +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACTION_IMAGE_CAPTURE +  
    + + String ACTION_VIDEO_CAPTURE +  
    + + String EXTRA_FINISH_ON_COMPLETION +  
    + + String EXTRA_MEDIA_ALBUM +  
    + + String EXTRA_MEDIA_ARTIST +  
    + + String EXTRA_MEDIA_FOCUS +  
    + + String EXTRA_MEDIA_TITLE +  
    + + String EXTRA_OUTPUT +  
    + + String EXTRA_SCREEN_ORIENTATION +  
    + + String EXTRA_VIDEO_QUALITY +  
    + + String INTENT_ACTION_MEDIA_SEARCH +  
    + + String INTENT_ACTION_STILL_IMAGE_CAMERA +  
    + + String INTENT_ACTION_VIDEO_CAMERA +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html new file mode 100644 index 0000000000000..b7ef86c6695ad --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.System.html @@ -0,0 +1,502 @@ + + + + + + + + + +android.provider.Settings.System + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.Settings.System +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + long getLong(ContentResolver, String) +  
    + + long getLong(ContentResolver, String, long) +  
    + + boolean putLong(ContentResolver, String, long) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACCELEROMETER_ROTATION +  
    + + String HAPTIC_FEEDBACK_ENABLED +  
    + + String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED +  
    + + String VOLUME_NOTIFICATION +  
    + + String WIFI_MAX_DHCP_RETRY_COUNT +  
    + + String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS +  
    + + String WIFI_SLEEP_POLICY +  
    + + int WIFI_SLEEP_POLICY_DEFAULT +  
    + + int WIFI_SLEEP_POLICY_NEVER +  
    + + int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Fields +
    + + String ADB_ENABLED +Now deprecated.
    +
     
    + + String ANDROID_ID +Now deprecated.
    +
     
    + + String BLUETOOTH_ON +Now deprecated.
    +
     
    + + String DATA_ROAMING +Now deprecated.
    +
     
    + + String DEVICE_PROVISIONED +Now deprecated.
    +
     
    + + String HTTP_PROXY +Now deprecated.
    +
     
    + + String INSTALL_NON_MARKET_APPS +Now deprecated.
    +
     
    + + String LOCATION_PROVIDERS_ALLOWED +Now deprecated.
    +
     
    + + String LOGGING_ID +Now deprecated.
    +
     
    + + String NETWORK_PREFERENCE +Now deprecated.
    +
     
    + + String PARENTAL_CONTROL_ENABLED +Now deprecated.
    +
     
    + + String PARENTAL_CONTROL_LAST_UPDATE +Now deprecated.
    +
     
    + + String PARENTAL_CONTROL_REDIRECT_URL +Now deprecated.
    +
     
    + + String SETTINGS_CLASSNAME +Now deprecated.
    +
     
    + + String USB_MASS_STORAGE_ENABLED +Now deprecated.
    +
     
    + + String USE_GOOGLE_MAIL +Now deprecated.
    +
     
    + + String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON +Now deprecated.
    +
     
    + + String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY +Now deprecated.
    +
     
    + + String WIFI_NUM_OPEN_NETWORKS_KEPT +Now deprecated.
    +
     
    + + String WIFI_ON +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_AP_COUNT +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_MAX_AP_CHECKS +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_ON +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_PING_COUNT +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_PING_DELAY_MS +Now deprecated.
    +
     
    + + String WIFI_WATCHDOG_PING_TIMEOUT_MS +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html new file mode 100644 index 0000000000000..227b462ed957f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.provider.Settings.html @@ -0,0 +1,200 @@ + + + + + + + + + +android.provider.Settings + + + + + + + + + + +
    +
    +
    +

    +Class android.provider.Settings +

    + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACTION_AIRPLANE_MODE_SETTINGS +  
    + + String ACTION_APPLICATION_DEVELOPMENT_SETTINGS +  
    + + String ACTION_DATA_ROAMING_SETTINGS +  
    + + String ACTION_INPUT_METHOD_SETTINGS +  
    + + String ACTION_INTERNAL_STORAGE_SETTINGS +  
    + + String ACTION_MANAGE_APPLICATIONS_SETTINGS +  
    + + String ACTION_MEMORY_CARD_SETTINGS +  
    + + String ACTION_NETWORK_OPERATOR_SETTINGS +  
    + + String ACTION_QUICK_LAUNCH_SETTINGS +  
    + + String ACTION_SYNC_SETTINGS +  
    + + String ACTION_USER_DICTIONARY_SETTINGS +  
    + + String ACTION_WIFI_IP_SETTINGS +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html b/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html new file mode 100644 index 0000000000000..6e0b240ca75b2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.PhoneNumberUtils.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.telephony.PhoneNumberUtils + + + + + + + + + + +
    +
    +
    +

    +Class android.telephony.PhoneNumberUtils +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void formatJapaneseNumber(Editable) +  
    +  + +

    + + + + + + + + +
    Added Fields +
    + + int FORMAT_JAPAN +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html b/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html new file mode 100644 index 0000000000000..aa02f5c1f3a85 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.TelephonyManager.html @@ -0,0 +1,173 @@ + + + + + + + + + +android.telephony.TelephonyManager + + + + + + + + + + +
    +
    +
    +

    +Class android.telephony.TelephonyManager +

    + + +

    + + + + + + + + +
    Added Methods +
    + + List<NeighboringCellInfo> getNeighboringCellInfo() +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + String ACTION_PHONE_STATE_CHANGED +  
    + + String EXTRA_INCOMING_NUMBER +  
    + + String EXTRA_STATE +  
    + + String EXTRA_STATE_IDLE +  
    + + String EXTRA_STATE_OFFHOOK +  
    + + String EXTRA_STATE_RINGING +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html b/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html new file mode 100644 index 0000000000000..c6069043fe40d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.telephony.gsm.SmsMessage.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.telephony.gsm.SmsMessage + + + + + + + + + + +
    +
    +
    +

    +Class android.telephony.gsm.SmsMessage +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int[] calculateLength(CharSequence, boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html new file mode 100644 index 0000000000000..c3360776828e1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.ActivityInstrumentationTestCase.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.test.ActivityInstrumentationTestCase + + + + + + + + + + +
    +
    +
    +

    +Class android.test.ActivityInstrumentationTestCase +

    +

    Now deprecated.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html new file mode 100644 index 0000000000000..1fb403aaabe59 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.InstrumentationTestCase.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.test.InstrumentationTestCase + + + + + + + + + + +
    +
    +
    +

    +Class android.test.InstrumentationTestCase +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + T launchActivityWithIntent(String, Class<T>, Intent) +  
    + + void runTestOnUiThread(Runnable) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html b/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html new file mode 100644 index 0000000000000..ffbee6091afed --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.ProviderTestCase.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.test.ProviderTestCase + + + + + + + + + + +
    +
    +
    +

    +Class android.test.ProviderTestCase +

    +

    Now deprecated.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html b/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html new file mode 100644 index 0000000000000..75f9e5e03e2af --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.TouchUtils.html @@ -0,0 +1,362 @@ + + + + + + + + + +android.test.TouchUtils + + + + + + + + + + +
    +
    +
    +

    +Class android.test.TouchUtils +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void drag(InstrumentationTestCase, float, float, float, float, int) +  
    + + void dragQuarterScreenDown(InstrumentationTestCase, Activity) +  
    + + void dragQuarterScreenUp(InstrumentationTestCase, Activity) +  
    + + int dragViewBy(InstrumentationTestCase, View, int, int, int) +  
    + + int dragViewTo(InstrumentationTestCase, View, int, int, int) +  
    + + void dragViewToBottom(ActivityInstrumentationTestCase, View, int) +  
    + + void dragViewToBottom(InstrumentationTestCase, Activity, View, int) +  
    + + void dragViewToTop(InstrumentationTestCase, View) +  
    + + void dragViewToTop(InstrumentationTestCase, View, int) +  
    + + int dragViewToX(InstrumentationTestCase, View, int, int) +  
    + + int dragViewToY(InstrumentationTestCase, View, int, int) +  
    + + void longClickView(InstrumentationTestCase, View) +  
    + + void scrollToBottom(InstrumentationTestCase, Activity, ViewGroup) +  
    + + void scrollToTop(InstrumentationTestCase, Activity, ViewGroup) +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + void drag(ActivityInstrumentationTestCase, float, float, float, float, int) + +Now deprecated.
    +
     
    + + void dragQuarterScreenDown(ActivityInstrumentationTestCase) + +Now deprecated.
    +
     
    + + void dragQuarterScreenUp(ActivityInstrumentationTestCase) + +Now deprecated.
    +
     
    + + int dragViewBy(ActivityInstrumentationTestCase, View, int, int, int) + +Now deprecated.
    +
     
    + + int dragViewTo(ActivityInstrumentationTestCase, View, int, int, int) + +Now deprecated.
    +
     
    + + void dragViewToBottom(ActivityInstrumentationTestCase, View) + +Now deprecated.
    +
     
    + + void dragViewToBottom(InstrumentationTestCase, Activity, View) + +Change in signature from (ActivityInstrumentationTestCase, View, int) to (InstrumentationTestCase, Activity, View).
    +
     
    + + void dragViewToTop(ActivityInstrumentationTestCase, View) + +Now deprecated.
    +
     
    + + void dragViewToTop(ActivityInstrumentationTestCase, View, int) + +Now deprecated.
    +
     
    + + int dragViewToX(ActivityInstrumentationTestCase, View, int, int) + +Now deprecated.
    +
     
    + + int dragViewToY(ActivityInstrumentationTestCase, View, int, int) + +Now deprecated.
    +
     
    + + void longClickView(ActivityInstrumentationTestCase, View) + +Now deprecated.
    +
     
    + + void scrollToBottom(ActivityInstrumentationTestCase, ViewGroup) + +Now deprecated.
    +
     
    + + void scrollToTop(ActivityInstrumentationTestCase, ViewGroup) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html new file mode 100644 index 0000000000000..8e727f35f6b83 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.mock.MockPackageManager.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.test.mock.MockPackageManager + + + + + + + + + + +
    +
    +
    +

    +Class android.test.mock.MockPackageManager +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + Intent getLaunchIntentForPackage(String) +  
    + + String[] getSystemSharedLibraryNames() +  
    + + boolean isSafeMode() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html new file mode 100644 index 0000000000000..52467f3fbb2fd --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestMethod.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.test.suitebuilder.TestMethod + + + + + + + + + + +
    +
    +
    +

    +Class android.test.suitebuilder.TestMethod +

    + +

    + + + + + + + + + + + + +
    Added Constructors +
    + + TestMethod(String, Class<TestCase>) +  
    + + TestMethod(TestCase) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html new file mode 100644 index 0000000000000..548f473b72f56 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.test.suitebuilder.TestSuiteBuilder.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.test.suitebuilder.TestSuiteBuilder + + + + + + + + + + +
    +
    +
    +

    +Class android.test.suitebuilder.TestSuiteBuilder +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + TestSuiteBuilder addRequirements(Predicate<TestMethod>) + +Change in signature from void to Predicate<TestMethod>.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html b/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html new file mode 100644 index 0000000000000..863f172ffa65f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.Annotation.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.Annotation + + + + + + + + + + +
    +
    +
    +

    +Class android.text.Annotation +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + Annotation(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html b/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html new file mode 100644 index 0000000000000..04ef46d33271e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.AutoText.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.AutoText + + + + + + + + + + +
    +
    +
    +

    +Class android.text.AutoText +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getSize(View) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html b/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html new file mode 100644 index 0000000000000..fd9943a56ff21 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.SpanWatcher.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.SpanWatcher + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.SpanWatcher +

    +

    Added interface android.text.NoCopySpan.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html b/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html new file mode 100644 index 0000000000000..1c861979d6717 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.Spanned.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.text.Spanned + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.Spanned +

    + + + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int SPAN_COMPOSING +  
    + + int SPAN_INTERMEDIATE +  
    + + int SPAN_POINT_MARK_MASK +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html b/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html new file mode 100644 index 0000000000000..9fc8dae935ee9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.TextUtils.html @@ -0,0 +1,159 @@ + + + + + + + + + +android.text.TextUtils + + + + + + + + + + +
    +
    +
    +

    +Class android.text.TextUtils +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void dumpSpans(CharSequence, Printer, String) +  
    + + int getCapsMode(CharSequence, int, int) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int CAP_MODE_CHARACTERS +  
    + + int CAP_MODE_SENTENCES +  
    + + int CAP_MODE_WORDS +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html b/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html new file mode 100644 index 0000000000000..a3856f851c102 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.TextWatcher.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.TextWatcher + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.TextWatcher +

    +

    Added interface android.text.NoCopySpan.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html new file mode 100644 index 0000000000000..6a1ce5eda0808 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.ArrowKeyMovementMethod.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.ArrowKeyMovementMethod + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.ArrowKeyMovementMethod +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean onKeyOther(TextView, Spannable, KeyEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html new file mode 100644 index 0000000000000..b8dddc31cea3f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.BaseKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.BaseKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.BaseKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean onKeyOther(View, Editable, KeyEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html new file mode 100644 index 0000000000000..d49752c259cfb --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DateKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.DateKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.DateKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html new file mode 100644 index 0000000000000..82734d3833ef5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DateTimeKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.DateTimeKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.DateTimeKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html new file mode 100644 index 0000000000000..435e701ed6891 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DialerKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.DialerKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.DialerKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html new file mode 100644 index 0000000000000..f33d5fe695bd1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.DigitsKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.DigitsKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.DigitsKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html new file mode 100644 index 0000000000000..2b24f03c022d3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.KeyListener.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.text.method.KeyListener + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.method.KeyListener +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void clearMetaKeyState(View, Editable, int) +  
    + + int getInputType() +  
    + + boolean onKeyOther(View, Editable, KeyEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html new file mode 100644 index 0000000000000..ecdedc1edb85b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MetaKeyKeyListener.html @@ -0,0 +1,186 @@ + + + + + + + + + +android.text.method.MetaKeyKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.MetaKeyKeyListener +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + long adjustMetaAfterKeypress(long) +  
    + + long clearMetaKeyState(long, int) +  
    + + void clearMetaKeyState(View, Editable, int) +  
    + + void clearMetaKeyState(Editable, int) +  
    + + int getMetaState(long) +  
    + + int getMetaState(long, int) +  
    + + long handleKeyDown(long, int, KeyEvent) +  
    + + long handleKeyUp(long, int, KeyEvent) +  
    + + boolean isSelectingMetaTracker(CharSequence, Object) +  
    + + long resetLockedMeta(long) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html new file mode 100644 index 0000000000000..a86dff5fea564 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MovementMethod.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.MovementMethod + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.method.MovementMethod +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean onKeyOther(TextView, Spannable, KeyEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html new file mode 100644 index 0000000000000..b7c2f52694ec0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.MultiTapKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.MultiTapKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.MultiTapKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html new file mode 100644 index 0000000000000..fff86c659b130 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.QwertyKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.QwertyKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.QwertyKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html b/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html new file mode 100644 index 0000000000000..acf5dcd844aaf --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.ScrollingMovementMethod.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.ScrollingMovementMethod + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.ScrollingMovementMethod +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean onKeyOther(TextView, Spannable, KeyEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html new file mode 100644 index 0000000000000..f905b3fe75f36 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.TextKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.TextKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.TextKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html b/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html new file mode 100644 index 0000000000000..0545b2fb42662 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.TimeKeyListener.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.text.method.TimeKeyListener + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.TimeKeyListener +

    + + +

    + + + + + + + + +
    Added Methods +
    + + int getInputType() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html b/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html new file mode 100644 index 0000000000000..fd0f64a6a3c88 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.method.Touch.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.text.method.Touch + + + + + + + + + + +
    +
    +
    +

    +Class android.text.method.Touch +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + int getInitialScrollX(TextView, Spannable) +  
    + + int getInitialScrollY(TextView, Spannable) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html new file mode 100644 index 0000000000000..32b1098ef891f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.AbsoluteSizeSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.AbsoluteSizeSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.AbsoluteSizeSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + AbsoluteSizeSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html b/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html new file mode 100644 index 0000000000000..86b03d47bbfbe --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.AlignmentSpan.Standard.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.AlignmentSpan.Standard + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.AlignmentSpan.Standard +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + AlignmentSpan.Standard(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html new file mode 100644 index 0000000000000..b7705aaee5f18 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.BackgroundColorSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.BackgroundColorSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.BackgroundColorSpan +

    +

    Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
    + +

    + + + + + + + + +
    Added Constructors +
    + + BackgroundColorSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html new file mode 100644 index 0000000000000..10f6d2aa0445a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.BulletSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.BulletSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.BulletSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + BulletSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html new file mode 100644 index 0000000000000..0d7fecb93a4d4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ClickableSpan.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.style.ClickableSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.ClickableSpan +

    +

    Added interface android.text.style.UpdateAppearance.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html new file mode 100644 index 0000000000000..2bc83fa5da736 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.DynamicDrawableSpan.html @@ -0,0 +1,167 @@ + + + + + + + + + +android.text.style.DynamicDrawableSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.DynamicDrawableSpan +

    + +

    + + + + + + + + +
    Added Constructors +
    + + DynamicDrawableSpan(int) +  
    +  + +

    + + + + + + + + +
    Added Methods +
    + + int getVerticalAlignment() +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int ALIGN_BASELINE +  
    + + int ALIGN_BOTTOM +  
    + + int mVerticalAlignment +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html new file mode 100644 index 0000000000000..fa483c002d9f0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ForegroundColorSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.ForegroundColorSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.ForegroundColorSpan +

    +

    Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
    + +

    + + + + + + + + +
    Added Constructors +
    + + ForegroundColorSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html new file mode 100644 index 0000000000000..459e2b7e510c3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ImageSpan.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.text.style.ImageSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.ImageSpan +

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Constructors +
    + + ImageSpan(Context, Uri, int) +  
    + + ImageSpan(Context, int, int) +  
    + + ImageSpan(Bitmap, int) +  
    + + ImageSpan(Drawable, int) +  
    + + ImageSpan(Drawable, String, int) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html b/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html new file mode 100644 index 0000000000000..922bcbc607bc2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.LeadingMarginSpan.Standard.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.LeadingMarginSpan.Standard + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.LeadingMarginSpan.Standard +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + LeadingMarginSpan.Standard(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html new file mode 100644 index 0000000000000..fbd8db93560c2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.MaskFilterSpan.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.style.MaskFilterSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.MaskFilterSpan +

    +

    Added interface android.text.style.UpdateAppearance.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html new file mode 100644 index 0000000000000..334c2233552a4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.QuoteSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.QuoteSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.QuoteSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + QuoteSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html new file mode 100644 index 0000000000000..62fb6479f8f72 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.RasterizerSpan.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.style.RasterizerSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.RasterizerSpan +

    +

    Added interface android.text.style.UpdateAppearance.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html new file mode 100644 index 0000000000000..17d97fba524b1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.RelativeSizeSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.RelativeSizeSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.RelativeSizeSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + RelativeSizeSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html new file mode 100644 index 0000000000000..ee289f518ff29 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.ScaleXSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.ScaleXSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.ScaleXSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + ScaleXSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html new file mode 100644 index 0000000000000..f045b964395f9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.StrikethroughSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.StrikethroughSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.StrikethroughSpan +

    +

    Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
    + +

    + + + + + + + + +
    Added Constructors +
    + + StrikethroughSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html new file mode 100644 index 0000000000000..fcc16080d017b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.StyleSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.StyleSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.StyleSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + StyleSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html new file mode 100644 index 0000000000000..ec3d56242b156 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.SubscriptSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.SubscriptSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.SubscriptSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + SubscriptSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html new file mode 100644 index 0000000000000..853be697af242 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.SuperscriptSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.SuperscriptSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.SuperscriptSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + SuperscriptSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html new file mode 100644 index 0000000000000..719e68f0ce143 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.TextAppearanceSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.TextAppearanceSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.TextAppearanceSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + TextAppearanceSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html new file mode 100644 index 0000000000000..01b74e73408e8 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.TypefaceSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.TypefaceSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.TypefaceSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + TypefaceSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html new file mode 100644 index 0000000000000..2a659a4e35c0c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.URLSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.URLSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.URLSpan +

    +

    Added interface android.text.ParcelableSpan.
    + +

    + + + + + + + + +
    Added Constructors +
    + + URLSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html b/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html new file mode 100644 index 0000000000000..6c596a03da917 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.UnderlineSpan.html @@ -0,0 +1,153 @@ + + + + + + + + + +android.text.style.UnderlineSpan + + + + + + + + + + +
    +
    +
    +

    +Class android.text.style.UnderlineSpan +

    +

    Added interfaces android.text.ParcelableSpan, android.text.style.UpdateAppearance.
    + +

    + + + + + + + + +
    Added Constructors +
    + + UnderlineSpan(Parcel) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int describeContents() +  
    + + int getSpanTypeId() +  
    + + void writeToParcel(Parcel, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html b/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html new file mode 100644 index 0000000000000..4cca7b4334760 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.text.style.UpdateLayout.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.text.style.UpdateLayout + + + + + + + + + + +
    +
    +
    +

    +Interface android.text.style.UpdateLayout +

    +

    Added interface android.text.style.UpdateAppearance.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html b/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html new file mode 100644 index 0000000000000..5657765133fd7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.util.SparseIntArray.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.util.SparseIntArray + + + + + + + + + + +
    +
    +
    +

    +Class android.util.SparseIntArray +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void removeAt(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html b/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html new file mode 100644 index 0000000000000..3317fae27bb33 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.util.TimeUtils.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.util.TimeUtils + + + + + + + + + + +
    +
    +
    +

    +Class android.util.TimeUtils +

    + + +

    + + + + + + + + +
    Added Methods +
    + + String getTimeZoneDatabaseVersion() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html new file mode 100644 index 0000000000000..0e00c6047a5eb --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.SimpleOnGestureListener.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.view.GestureDetector.SimpleOnGestureListener + + + + + + + + + + +
    +
    +
    +

    +Class android.view.GestureDetector.SimpleOnGestureListener +

    +

    Added interface android.view.GestureDetector.OnDoubleTapListener.
    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean onDoubleTap(MotionEvent) +  
    + + boolean onDoubleTapEvent(MotionEvent) +  
    + + boolean onSingleTapConfirmed(MotionEvent) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html new file mode 100644 index 0000000000000..dec5a4d9da9a5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.GestureDetector.html @@ -0,0 +1,173 @@ + + + + + + + + + +android.view.GestureDetector + + + + + + + + + + +
    +
    +
    +

    +Class android.view.GestureDetector +

    + +

    + + + + + + + + + + + + +
    Added Constructors +
    + + GestureDetector(Context, OnGestureListener) +  
    + + GestureDetector(Context, OnGestureListener, Handler) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Constructors +
    + + GestureDetector(OnGestureListener) + +Now deprecated.
    +
     
    + + GestureDetector(OnGestureListener, Handler) + +Now deprecated.
    +
     
    +  + +

    + + + + + + + + +
    Added Methods +
    + + void setOnDoubleTapListener(OnDoubleTapListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html b/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html new file mode 100644 index 0000000000000..1aa10d3682fbd --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.Gravity.html @@ -0,0 +1,166 @@ + + + + + + + + + +android.view.Gravity + + + + + + + + + + +
    +
    +
    +

    +Class android.view.Gravity +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void applyDisplay(int, Rect, Rect) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int AXIS_CLIP +  
    + + int CLIP_HORIZONTAL +  
    + + int CLIP_VERTICAL +  
    + + int DISPLAY_CLIP_HORIZONTAL +  
    + + int DISPLAY_CLIP_VERTICAL +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html b/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html new file mode 100644 index 0000000000000..7a409cbe13088 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.KeyCharacterMap.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.view.KeyCharacterMap + + + + + + + + + + +
    +
    +
    +

    +Class android.view.KeyCharacterMap +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + boolean deviceHasKey(int) +  
    + + boolean[] deviceHasKeys(int[]) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html b/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html new file mode 100644 index 0000000000000..bf3ec6b22e018 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.KeyEvent.html @@ -0,0 +1,275 @@ + + + + + + + + + +android.view.KeyEvent + + + + + + + + + + +
    +
    +
    +

    +Class android.view.KeyEvent +

    + +

    + + + + + + + + + + + + +
    Added Constructors +
    + + KeyEvent(KeyEvent) +  
    + + KeyEvent(long, String, int, int) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + KeyEvent changeAction(KeyEvent, int) +  
    + + KeyEvent changeFlags(KeyEvent, int) +  
    + + KeyEvent changeTimeRepeat(KeyEvent, long, int) +  
    + + String getCharacters() +  
    + + int getMaxKeyCode() +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int FLAG_EDITOR_ACTION +  
    + + int FLAG_FROM_SYSTEM +  
    + + int FLAG_KEEP_TOUCH_MODE +  
    + + int FLAG_SOFT_KEYBOARD +  
    + + int KEYCODE_MEDIA_FAST_FORWARD +  
    + + int KEYCODE_MEDIA_NEXT +  
    + + int KEYCODE_MEDIA_PLAY_PAUSE +  
    + + int KEYCODE_MEDIA_PREVIOUS +  
    + + int KEYCODE_MEDIA_REWIND +  
    + + int KEYCODE_MEDIA_STOP +  
    + + int KEYCODE_MUTE +  
    +  +

    + + + + + + + + + +
    Changed Fields +
    + + int MAX_KEYCODE +Now deprecated.
    +
     
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Menu.html b/docs/html/sdk/api_diff/3/changes/android.view.Menu.html new file mode 100644 index 0000000000000..09b910a426888 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.Menu.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.view.Menu + + + + + + + + + + +
    +
    +
    +

    +Interface android.view.Menu +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void close() +  
    + + MenuItem getItem(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html b/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html new file mode 100644 index 0000000000000..5291df7782135 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.MotionEvent.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.view.MotionEvent + + + + + + + + + + +
    +
    +
    +

    +Class android.view.MotionEvent +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + int ACTION_OUTSIDE +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html b/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html new file mode 100644 index 0000000000000..ac58489da46a3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.OrientationListener.html @@ -0,0 +1,124 @@ + + + + + + + + + +android.view.OrientationListener + + + + + + + + + + +
    +
    +
    +

    +Class android.view.OrientationListener +

    +

    Now deprecated.
    + +

    + + + + + + + + +
    Added Constructors +
    + + OrientationListener(Context, int) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.View.html b/docs/html/sdk/api_diff/3/changes/android.view.View.html new file mode 100644 index 0000000000000..ccd58a9d2c8a7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.View.html @@ -0,0 +1,257 @@ + + + + + + + + + +android.view.View + + + + + + + + + + +
    +
    +
    +

    +Class android.view.View +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean checkInputConnectionProxy(View) +  
    + + boolean dispatchKeyEventPreIme(KeyEvent) +  
    + + void getWindowVisibleDisplayFrame(Rect) +  
    + + boolean isHapticFeedbackEnabled() +  
    + + boolean isInEditMode() +  
    + + boolean onCheckIsTextEditor() +  
    + + InputConnection onCreateInputConnection(EditorInfo) +  
    + + void onFinishTemporaryDetach() +  
    + + boolean onKeyPreIme(int, KeyEvent) +  
    + + void onStartTemporaryDetach() +  
    + + boolean performHapticFeedback(int) +  
    + + boolean performHapticFeedback(int, int) +  
    + + void setHapticFeedbackEnabled(boolean) +  
    + + void setScrollContainer(boolean) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + Handler getHandler() + +Change of visibility from protected to public.
    +
     
    + + void playSoundEffect(int) + +Change of visibility from protected to public.
    +
     
    +  + +

    + + + + + + + + +
    Added Fields +
    + + int HAPTIC_FEEDBACK_ENABLED +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html new file mode 100644 index 0000000000000..0bf487c289d78 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewConfiguration.html @@ -0,0 +1,282 @@ + + + + + + + + + +android.view.ViewConfiguration + + + + + + + + + + +
    +
    +
    +

    +Class android.view.ViewConfiguration +

    + +

    + + + + + + + + + +
    Changed Constructors +
    + + ViewConfiguration() + +Now deprecated.
    +
     
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + ViewConfiguration get(Context) +  
    + + int getDoubleTapTimeout() +  
    + + int getScaledDoubleTapSlop() +  
    + + int getScaledEdgeSlop() +  
    + + int getScaledFadingEdgeLength() +  
    + + int getScaledMaximumDrawingCacheSize() +  
    + + int getScaledMinimumFlingVelocity() +  
    + + int getScaledScrollBarSize() +  
    + + int getScaledTouchSlop() +  
    + + int getScaledWindowTouchSlop() +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + int getEdgeSlop() + +Now deprecated.
    +
     
    + + int getFadingEdgeLength() + +Now deprecated.
    +
     
    + + int getMaximumDrawingCacheSize() + +Now deprecated.
    +
     
    + + int getMinimumFlingVelocity() + +Now deprecated.
    +
     
    + + int getScrollBarSize() + +Now deprecated.
    +
     
    + + int getTouchSlop() + +Now deprecated.
    +
     
    + + int getWindowTouchSlop() + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html new file mode 100644 index 0000000000000..17c0c8a34ebe3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewDebug.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.view.ViewDebug + + + + + + + + + + +
    +
    +
    +

    +Class android.view.ViewDebug +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void dumpCapturedView(String, Object) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html new file mode 100644 index 0000000000000..589f266ff2cfa --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewGroup.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.view.ViewGroup + + + + + + + + + + +
    +
    +
    +

    +Class android.view.ViewGroup +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void setStaticTransformationsEnabled(boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html new file mode 100644 index 0000000000000..536e7e95c4fd1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewParent.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.view.ViewParent + + + + + + + + + + +
    +
    +
    +

    +Interface android.view.ViewParent +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean requestChildRectangleOnScreen(View, Rect, boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html b/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html new file mode 100644 index 0000000000000..41753a737d448 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.ViewTreeObserver.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.view.ViewTreeObserver + + + + + + + + + + +
    +
    +
    +

    +Class android.view.ViewTreeObserver +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void addOnScrollChangedListener(OnScrollChangedListener) +  
    + + void removeOnScrollChangedListener(OnScrollChangedListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.Window.html b/docs/html/sdk/api_diff/3/changes/android.view.Window.html new file mode 100644 index 0000000000000..d84eb2b11810b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.Window.html @@ -0,0 +1,137 @@ + + + + + + + + + +android.view.Window + + + + + + + + + + +
    +
    +
    +

    +Class android.view.Window +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean hasSoftInputMode() +  
    + + void setSoftInputMode(int) +  
    + + void setWindowAnimations(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html b/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html new file mode 100644 index 0000000000000..7304b0ea78767 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.WindowManager.LayoutParams.html @@ -0,0 +1,292 @@ + + + + + + + + + +android.view.WindowManager.LayoutParams + + + + + + + + + + +
    +
    +
    +

    +Class android.view.WindowManager.LayoutParams +

    + + +

    + + + + + + + + +
    Added Methods +
    + + boolean mayUseInputMethod(int) +  
    +  + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int FLAG_ALT_FOCUSABLE_IM +  
    + + int FLAG_WATCH_OUTSIDE_TOUCH +  
    + + int SCREEN_BRIGHTNESS_CHANGED +  
    + + int SCREEN_ORIENTATION_CHANGED +  
    + + int SOFT_INPUT_ADJUST_PAN +  
    + + int SOFT_INPUT_ADJUST_RESIZE +  
    + + int SOFT_INPUT_ADJUST_UNSPECIFIED +  
    + + int SOFT_INPUT_IS_FORWARD_NAVIGATION +  
    + + int SOFT_INPUT_MASK_ADJUST +  
    + + int SOFT_INPUT_MASK_STATE +  
    + + int SOFT_INPUT_MODE_CHANGED +  
    + + int SOFT_INPUT_STATE_ALWAYS_HIDDEN +  
    + + int SOFT_INPUT_STATE_ALWAYS_VISIBLE +  
    + + int SOFT_INPUT_STATE_HIDDEN +  
    + + int SOFT_INPUT_STATE_UNCHANGED +  
    + + int SOFT_INPUT_STATE_UNSPECIFIED +  
    + + int SOFT_INPUT_STATE_VISIBLE +  
    + + int TYPE_APPLICATION_ATTACHED_DIALOG +  
    + + int TYPE_INPUT_METHOD +  
    + + int TYPE_INPUT_METHOD_DIALOG +  
    + + float screenBrightness +  
    + + int screenOrientation +  
    + + int softInputMode +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html b/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html new file mode 100644 index 0000000000000..9cdf434cb74e1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.animation.Animation.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.view.animation.Animation + + + + + + + + + + +
    +
    +
    +

    +Class android.view.animation.Animation +

    +

    Added interface java.lang.Cloneable.
    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + long computeDurationHint() +  
    + + boolean isFillEnabled() +  
    + + void setFillEnabled(boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html b/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html new file mode 100644 index 0000000000000..8c5cbf55cf32b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.view.animation.Transformation.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.view.animation.Transformation + + + + + + + + + + +
    +
    +
    +

    +Class android.view.animation.Transformation +

    + + +

    + + + + + + + + +
    Added Methods +
    + + String toShortString() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html b/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html new file mode 100644 index 0000000000000..cff874168f2d4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.URLUtil.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.webkit.URLUtil + + + + + + + + + + +
    +
    +
    +

    +Class android.webkit.URLUtil +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + boolean isCookielessProxyUrl(String) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html new file mode 100644 index 0000000000000..8664bc6e18f7a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptHandler.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.webkit.UrlInterceptHandler + + + + + + + + + + +
    +
    +
    +

    +Interface android.webkit.UrlInterceptHandler +

    + + +

    + + + + + + + + +
    Added Methods +
    + + PluginData getPluginData(String, Map<String, String>) +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + CacheResult service(String, Map<String, String>) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html new file mode 100644 index 0000000000000..09d11496ddf4a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.UrlInterceptRegistry.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.webkit.UrlInterceptRegistry + + + + + + + + + + +
    +
    +
    +

    +Class android.webkit.UrlInterceptRegistry +

    + + +

    + + + + + + + + +
    Added Methods +
    + + PluginData getPluginData(String, Map<String, String>) +  
    +  +

    + + + + + + + + + +
    Changed Methods +
    + + CacheResult getSurrogate(String, Map<String, String>) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html new file mode 100644 index 0000000000000..10140196bb074 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebHistoryItem.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.webkit.WebHistoryItem + + + + + + + + + + +
    +
    +
    +

    +Class android.webkit.WebHistoryItem +

    + + +

    + + + + + + + + +
    Added Methods +
    + + String getOriginalUrl() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html new file mode 100644 index 0000000000000..eb421cf63ad7b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebSettings.html @@ -0,0 +1,186 @@ + + + + + + + + + +android.webkit.WebSettings + + + + + + + + + + +
    +
    +
    +

    +Class android.webkit.WebSettings +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + boolean getAllowFileAccess() +  
    + + boolean getBuiltInZoomControls() +  
    + + String getUserAgentString() +  
    + + void setAllowFileAccess(boolean) +  
    + + void setBuiltInZoomControls(boolean) +  
    + + void setUserAgentString(String) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + int getUserAgent() + +Now deprecated.
    +
     
    + + void setUserAgent(int) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html b/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html new file mode 100644 index 0000000000000..cd721c8fdfffd --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.webkit.WebView.html @@ -0,0 +1,193 @@ + + + + + + + + + +android.webkit.WebView + + + + + + + + + + +
    +
    +
    +

    +Class android.webkit.WebView +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void clearMatches() +  
    + + int findAll(String) +  
    + + void findNext(boolean) +  
    + + String getOriginalUrl() +  
    + + boolean restorePicture(Bundle, File) +  
    + + boolean savePicture(Bundle, File) +  
    + + void setNetworkAvailable(boolean) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + View getZoomControls() + +Now deprecated.
    +
     
    + + void onGlobalFocusChanged(View, View) + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html new file mode 100644 index 0000000000000..6d1ed3535a440 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsListView.html @@ -0,0 +1,151 @@ + + + + + + + + + +android.widget.AbsListView + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.AbsListView +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + CharSequence getTextFilter() +  
    + + boolean isFastScrollEnabled() +  
    + + boolean isSmoothScrollbarEnabled() +  
    + + void setFastScrollEnabled(boolean) +  
    + + void setSmoothScrollbarEnabled(boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html new file mode 100644 index 0000000000000..128b31f182e9a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsSeekBar.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.widget.AbsSeekBar + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.AbsSeekBar +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + int getKeyProgressIncrement() +  
    + + void setKeyProgressIncrement(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html b/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html new file mode 100644 index 0000000000000..77025f08c08e5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AbsoluteLayout.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.widget.AbsoluteLayout + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.AbsoluteLayout +

    +

    Now deprecated.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html new file mode 100644 index 0000000000000..0beed263f3fbb --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ArrayAdapter.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.widget.ArrayAdapter + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.ArrayAdapter +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void sort(Comparator<? super T>) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html new file mode 100644 index 0000000000000..a6e89e41b5641 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.AutoCompleteTextView.html @@ -0,0 +1,214 @@ + + + + + + + + + +android.widget.AutoCompleteTextView + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.AutoCompleteTextView +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void clearListSelection() +  
    + + int getDropDownAnchor() +  
    + + int getDropDownWidth() +  
    + + int getListSelection() +  
    + + OnItemClickListener getOnItemClickListener() +  
    + + OnItemSelectedListener getOnItemSelectedListener() +  
    + + boolean isPerformingCompletion() +  
    + + void setDropDownAnchor(int) +  
    + + void setDropDownWidth(int) +  
    + + void setListSelection(int) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + OnItemClickListener getItemClickListener() + +Now deprecated.
    +
     
    + + OnItemSelectedListener getItemSelectedListener() + +Now deprecated.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html b/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html new file mode 100644 index 0000000000000..2a82a201933a7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.Chronometer.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.widget.Chronometer + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.Chronometer +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + OnChronometerTickListener getOnChronometerTickListener() +  
    + + void setOnChronometerTickListener(OnChronometerTickListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html new file mode 100644 index 0000000000000..0a890300efd13 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.CursorAdapter.html @@ -0,0 +1,161 @@ + + + + + + + + + +android.widget.CursorAdapter + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.CursorAdapter +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void onContentChanged() +  
    +  +

    + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + int getCount() + +Change from final to non-final.
    +
     
    + + Object getItem(int) + +Change from final to non-final.
    +
     
    + + long getItemId(int) + +Change from final to non-final.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html b/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html new file mode 100644 index 0000000000000..86e019ba9ce0b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.GridView.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.widget.GridView + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.GridView +

    + + + +

    + + + + + + + + +
    Added Fields +
    + + int STRETCH_SPACING_UNIFORM +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html b/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html new file mode 100644 index 0000000000000..ecaf3096e5989 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ListView.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.widget.ListView + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.ListView +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void setFooterDividersEnabled(boolean) +  
    + + void setHeaderDividersEnabled(boolean) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html new file mode 100644 index 0000000000000..2e08886708b91 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.OnDismissListener.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.widget.PopupWindow.OnDismissListener + + + + + + + + + + +
    +
    +
    +

    +Interface android.widget.PopupWindow.OnDismissListener +

    +

    Change of visibility from to public.
    + + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html new file mode 100644 index 0000000000000..b3a33037a77ef --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.PopupWindow.html @@ -0,0 +1,243 @@ + + + + + + + + + +android.widget.PopupWindow + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.PopupWindow +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + int getInputMethodMode() +  
    + + int getMaxAvailableHeight(View, int) +  
    + + boolean isAboveAnchor() +  
    + + boolean isClippingEnabled() +  
    + + boolean isOutsideTouchable() +  
    + + boolean isTouchable() +  
    + + void setClippingEnabled(boolean) +  
    + + void setInputMethodMode(int) +  
    + + void setOutsideTouchable(boolean) +  
    + + void setTouchInterceptor(OnTouchListener) +  
    + + void setTouchable(boolean) +  
    + + void setWindowLayoutMode(int, int) +  
    + + void update() +  
    + + void update(int, int, int, int, boolean) +  
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int INPUT_METHOD_FROM_FOCUSABLE +  
    + + int INPUT_METHOD_NEEDED +  
    + + int INPUT_METHOD_NOT_NEEDED +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html b/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html new file mode 100644 index 0000000000000..eea94f2b5e041 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ProgressBar.html @@ -0,0 +1,136 @@ + + + + + + + + + +android.widget.ProgressBar + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.ProgressBar +

    + + +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + void onRestoreInstanceState(Parcelable) + +Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
    +
     
    + + Parcelable onSaveInstanceState() + +Method was inherited from android.view.View, but is now defined locally. Change of visibility from protected to public.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html new file mode 100644 index 0000000000000..c2f5c9623291f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.ActionException.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.widget.RemoteViews.ActionException + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.RemoteViews.ActionException +

    + +

    + + + + + + + + +
    Added Constructors +
    + + RemoteViews.ActionException(Exception) +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html new file mode 100644 index 0000000000000..ef8eb08260802 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.RemoteViews.html @@ -0,0 +1,221 @@ + + + + + + + + + +android.widget.RemoteViews + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.RemoteViews +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void setBitmap(int, String, Bitmap) +  
    + + void setBoolean(int, String, boolean) +  
    + + void setByte(int, String, byte) +  
    + + void setChar(int, String, char) +  
    + + void setCharSequence(int, String, CharSequence) +  
    + + void setDouble(int, String, double) +  
    + + void setFloat(int, String, float) +  
    + + void setImageViewBitmap(int, Bitmap) +  
    + + void setInt(int, String, int) +  
    + + void setLong(int, String, long) +  
    + + void setOnClickPendingIntent(int, PendingIntent) +  
    + + void setShort(int, String, short) +  
    + + void setString(int, String, String) +  
    + + void setTextColor(int, int) +  
    + + void setUri(int, String, Uri) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html new file mode 100644 index 0000000000000..cee8f59b3d293 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.ResourceCursorAdapter.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.widget.ResourceCursorAdapter + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.ResourceCursorAdapter +

    + +

    + + + + + + + + +
    Added Constructors +
    + + ResourceCursorAdapter(Context, int, Cursor, boolean) +  
    +  + +

    + + + + + + + + +
    Added Methods +
    + + void setViewResource(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html b/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html new file mode 100644 index 0000000000000..e5b524df66588 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.Scroller.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.widget.Scroller + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.Scroller +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + int getStartX() +  
    + + int getStartY() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html b/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html new file mode 100644 index 0000000000000..63b7b132902ca --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.SimpleCursorAdapter.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.widget.SimpleCursorAdapter + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.SimpleCursorAdapter +

    + + +

    + + + + + + + + +
    Added Methods +
    + + void changeCursorAndColumns(Cursor, String[], int[]) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html b/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html new file mode 100644 index 0000000000000..42ecdc9f58fa3 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/android.widget.TextView.html @@ -0,0 +1,333 @@ + + + + + + + + + +android.widget.TextView + + + + + + + + + + +
    +
    +
    +

    +Class android.widget.TextView +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void beginBatchEdit() +  
    + + boolean bringPointIntoView(int) +  
    + + void clearComposingText() +  
    + + boolean didTouchFocusSelect() +  
    + + void endBatchEdit() +  
    + + boolean extractText(ExtractedTextRequest, ExtractedText) +  
    + + Editable getEditableText() +  
    + + int getImeActionId() +  
    + + CharSequence getImeActionLabel() +  
    + + int getImeOptions() +  
    + + Bundle getInputExtras(boolean) +  
    + + int getInputType() +  
    + + String getPrivateImeOptions() +  
    + + boolean isInputMethodTarget() +  
    + + boolean moveCursorToVisibleOffset() +  
    + + void onBeginBatchEdit() +  
    + + void onCommitCompletion(CompletionInfo) +  
    + + void onEditorAction(int) +  
    + + void onEndBatchEdit() +  
    + + boolean onPrivateIMECommand(String, Bundle) +  
    + + void onSelectionChanged(int, int) +  
    + + boolean onTextContextMenuItem(int) +  
    + + void setCompoundDrawablesWithIntrinsicBounds(int, int, int, int) +  
    + + void setExtractedText(ExtractedText) +  
    + + void setImeActionLabel(CharSequence, int) +  
    + + void setImeOptions(int) +  
    + + void setInputExtras(int) +  
    + + void setInputType(int) +  
    + + void setOnEditorActionListener(OnEditorActionListener) +  
    + + void setPrivateImeOptions(String) +  
    + + void setRawInputType(int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/changes-summary.html b/docs/html/sdk/api_diff/3/changes/changes-summary.html new file mode 100644 index 0000000000000..bf52a96580769 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/changes-summary.html @@ -0,0 +1,451 @@ + + + + + + + + + +Android API Differences Report + + + + + + + + + + +
    +
    +
    +
    +

    Android API Differences Report

    +

    This report details the changes in the core Android framework API between two API Level +specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. +The report also includes general statistics that characterize the extent and type of the differences.

    +

    This report is based a comparison of the Android API specifications +whose API Level identifiers are given in the upper-right corner of this page. It compares a +newer "to" API to an older "from" API, noting all changes relative to the +older API. So, for example, API elements marked as removed are no longer present in the "to" +API specification.

    +

    To navigate the report, use the "Select a Diffs Index" and "Filter the Index" +controls on the left. The report uses text formatting to indicate interface names, +links to reference documentation, and links to change +description. The statistics are accessible from the "Statistics" link in the upper-right corner.

    +

    For more information about the Android framework API and SDK, +see the Android Developers site.

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Packages +
    + + android.appwidget +  
    + + android.inputmethodservice +  
    + + android.speech +  
    + + android.text.format +  
    + + android.view.inputmethod +  
    + + java.beans +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Packages +
    + + android +  
    + + android.app +  
    + + android.content +  
    + + android.content.pm +  
    + + android.content.res +  
    + + android.database +  
    + + android.database.sqlite +  
    + + android.graphics +  
    + + android.graphics.drawable +  
    + + android.graphics.drawable.shapes +  
    + + android.hardware +  
    + + android.location +  
    + + android.media +  
    + + android.net +  
    + + android.net.wifi +  
    + + android.opengl +  
    + + android.os +  
    + + android.preference +  
    + + android.provider +  
    + + android.telephony +  
    + + android.telephony.gsm +  
    + + android.test +  
    + + android.test.mock +  
    + + android.test.suitebuilder +  
    + + android.text +  
    + + android.text.method +  
    + + android.text.style +  
    + + android.util +  
    + + android.view +  
    + + android.view.animation +  
    + + android.webkit +  
    + + android.widget +  
    + + dalvik.system +  
    + + java.lang +  
    + + java.lang.reflect +  
    + + java.net +  
    + + java.util +  
    + + java.util.jar +  
    + + java.util.logging +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_additions.html b/docs/html/sdk/api_diff/3/changes/classes_index_additions.html new file mode 100644 index 0000000000000..32a68e3117fd9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/classes_index_additions.html @@ -0,0 +1,469 @@ + + + + + + + + + +Class Additions Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Classes +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +C +D +G +H +I +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +ActivityInstrumentationTestCase2
    +ActivityManager.RunningAppProcessInfo
    +AlphabetIndexer
    +AssetFileDescriptor.AutoCloseInputStream
    +AssetFileDescriptor.AutoCloseOutputStream
    +AsyncTask
    +AsyncTask.Status
    +AudioFormat
    +AudioRecord
    +AudioRecord.OnRecordPositionUpdateListener
    +AudioTrack
    +AudioTrack.OnPlaybackPositionUpdateListener
    + +
    C  +A +D +G +H +I +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +Chronometer.OnChronometerTickListener
    +ConfigurationInfo
    + +
    D  +A +C +G +H +I +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +DexClassLoader
    + +
    G  +A +C +D +H +I +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +GeomagneticField
    +GestureDetector.OnDoubleTapListener
    +GLSurfaceView
    +GLSurfaceView.EGLConfigChooser
    +GLSurfaceView.GLWrapper
    +GLSurfaceView.Renderer
    +GpsSatellite
    +GpsStatus
    +GpsStatus.Listener
    + +
    H  +A +C +D +G +I +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +Handler.Callback
    +HapticFeedbackConstants
    +HorizontalScrollView
    + +
    I  +A +C +D +G +H +J +L +M +N +O +P +R +S +T +U +V + TOP +

    +InputType
    +IntentService
    + +
    J  +A +C +D +G +H +I +L +M +N +O +P +R +S +T +U +V + TOP +

    +JetPlayer
    +JetPlayer.OnJetEventListener
    + +
    L  +A +C +D +G +H +I +J +M +N +O +P +R +S +T +U +V + TOP +

    +LauncherActivity.IconResizer
    +LauncherActivity.ListItem
    +LiveFolders
    + +
    M  +A +C +D +G +H +I +J +L +N +O +P +R +S +T +U +V + TOP +

    +MediaPlayer.OnInfoListener
    +MediaPlayer.OnVideoSizeChangedListener
    +MediaRecorder.OnErrorListener
    +MediaRecorder.OnInfoListener
    +MediaRecorder.VideoEncoder
    +MediaRecorder.VideoSource
    + +
    N  +A +C +D +G +H +I +J +L +M +O +P +R +S +T +U +V + TOP +

    +NeighboringCellInfo
    +NoCopySpan
    +NoCopySpan.Concrete
    + +
    O  +A +C +D +G +H +I +J +L +M +N +P +R +S +T +U +V + TOP +

    +OrientationEventListener
    + +
    P  +A +C +D +G +H +I +J +L +M +N +O +R +S +T +U +V + TOP +

    +ParcelableSpan
    +PluginData
    +PrintStreamPrinter
    +ProviderTestCase2
    + +
    R  +A +C +D +G +H +I +J +L +M +N +O +P +S +T +U +V + TOP +

    +R.bool
    +R.integer
    +ResultReceiver
    + +
    S  +A +C +D +G +H +I +J +L +M +N +O +P +R +T +U +V + TOP +

    +SectionIndexer
    +Sensor
    +SensorEvent
    +SensorEventListener
    +Settings.Secure
    +SlidingDrawer
    +SlidingDrawer.OnDrawerCloseListener
    +SlidingDrawer.OnDrawerOpenListener
    +SlidingDrawer.OnDrawerScrollListener
    + +
    T  +A +C +D +G +H +I +J +L +M +N +O +P +R +S +U +V + TOP +

    +TextView.OnEditorActionListener
    + +
    U  +A +C +D +G +H +I +J +L +M +N +O +P +R +S +T +V + TOP +

    +UpdateAppearance
    +UserDictionary
    +UserDictionary.Words
    + +
    V  +A +C +D +G +H +I +J +L +M +N +O +P +R +S +T +U + TOP +

    +ViewDebug.CapturedViewProperty
    +ViewTreeObserver.OnScrollChangedListener
    +Visibility
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_all.html b/docs/html/sdk/api_diff/3/changes/classes_index_all.html new file mode 100644 index 0000000000000..5815c29ca5a54 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/classes_index_all.html @@ -0,0 +1,963 @@ + + + + + + + + + +Class Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +Classes +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +AbsListView
    +AbsoluteLayout
    +AbsoluteSizeSpan
    +AbsSeekBar
    +Activity
    +ActivityInfo
    +ActivityInstrumentationTestCase
    +ActivityInstrumentationTestCase2
    +ActivityManager
    +ActivityManager.RunningAppProcessInfo
    +AlarmManager
    +AlertDialog
    +AlignmentSpan.Standard
    +AlphabetIndexer
    +Animation
    +Annotation
    +ArrayAdapter
    +ArrowKeyMovementMethod
    +AssetFileDescriptor
    +AssetFileDescriptor.AutoCloseInputStream
    +AssetFileDescriptor.AutoCloseOutputStream
    +AsyncTask
    +AsyncTask.Status
    +AudioFormat
    +AudioManager
    +AudioRecord
    +AudioRecord.OnRecordPositionUpdateListener
    +AudioTrack
    +AudioTrack.OnPlaybackPositionUpdateListener
    +AutoCompleteTextView
    +AutoText
    + +
    B  +A +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +BackgroundColorSpan
    +BaseKeyListener
    +Binder
    +Bitmap
    +BroadcastReceiver
    +Browser
    +Build
    +BulletSpan
    + +
    C  +A +B +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Camera
    +Canvas
    +Character.UnicodeBlock
    +Chronometer
    +Chronometer.OnChronometerTickListener
    +Class
    +ClickableSpan
    +Configuration
    +ConfigurationInfo
    +ConnectivityManager
    +Contacts.Intents
    +Contacts.Intents.Insert
    +Contacts.PeopleColumns
    +ContentProvider
    +ContentResolver
    +Context
    +Cursor
    +CursorAdapter
    +CursorWrapper
    + +
    D  +A +B +C +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +DatabaseUtils
    +Date
    +DateKeyListener
    +DateTimeKeyListener
    +Debug
    +DexClassLoader
    +DexFile
    +DialerKeyListener
    +DialogInterface
    +DialogPreference
    +DigitsKeyListener
    +Drawable
    +DynamicDrawableSpan
    + +
    E  +A +B +C +D +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Environment
    + +
    F  +A +B +C +D +E +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +ForegroundColorSpan
    + +
    G  +A +B +C +D +E +F +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +GeomagneticField
    +GestureDetector
    +GestureDetector.OnDoubleTapListener
    +GestureDetector.SimpleOnGestureListener
    +GLSurfaceView
    +GLSurfaceView.EGLConfigChooser
    +GLSurfaceView.GLWrapper
    +GLSurfaceView.Renderer
    +GpsSatellite
    +GpsStatus
    +GpsStatus.Listener
    +Gravity
    +GridView
    + +
    H  +A +B +C +D +E +F +G +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Handler
    +Handler.Callback
    +HapticFeedbackConstants
    +HorizontalScrollView
    + +
    I  +A +B +C +D +E +F +G +H +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +IBinder
    +ImageSpan
    +InputType
    +Instrumentation
    +InstrumentationTestCase
    +Intent
    +IntentService
    + +
    J  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +JetPlayer
    +JetPlayer.OnJetEventListener
    + +
    K  +A +B +C +D +E +F +G +H +I +J +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +KeyCharacterMap
    +KeyEvent
    +KeyListener
    + +
    L  +A +B +C +D +E +F +G +H +I +J +K +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +LauncherActivity
    +LauncherActivity.IconResizer
    +LauncherActivity.ListItem
    +LeadingMarginSpan.Standard
    +Level
    +ListView
    +LiveFolders
    +Location
    +LocationManager
    +LogManager
    +Looper
    + +
    M  +A +B +C +D +E +F +G +H +I +J +K +L +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Manifest.permission
    +MaskFilterSpan
    +MediaPlayer
    +MediaPlayer.OnInfoListener
    +MediaPlayer.OnVideoSizeChangedListener
    +MediaRecorder
    +MediaRecorder.OnErrorListener
    +MediaRecorder.OnInfoListener
    +MediaRecorder.OutputFormat
    +MediaRecorder.VideoEncoder
    +MediaRecorder.VideoSource
    +MediaStore
    +MediaStore.Audio.AlbumColumns
    +MediaStore.Audio.Media
    +MediaStore.Images.Media
    +MediaStore.Video
    +MediaStore.Video.VideoColumns
    +Menu
    +MetaKeyKeyListener
    +MockPackageManager
    +MotionEvent
    +MovementMethod
    +MultiTapKeyListener
    + +
    N  +A +B +C +D +E +F +G +H +I +J +K +L +M +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +NeighboringCellInfo
    +NetworkInfo
    +NoCopySpan
    +NoCopySpan.Concrete
    + +
    O  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +P +Q +R +S +T +U +V +W +Z + TOP +

    +OrientationEventListener
    +OrientationListener
    + +
    P  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +Q +R +S +T +U +V +W +Z + TOP +

    +Pack200.Packer
    +Pack200.Unpacker
    +PackageInfo
    +PackageManager
    +Parcel
    +ParcelableSpan
    +ParcelFileDescriptor
    +PendingIntent
    +PhoneNumberUtils
    +PluginData
    +PopupWindow
    +PopupWindow.OnDismissListener
    +PrintStreamPrinter
    +ProgressBar
    +ProviderTestCase
    +ProviderTestCase2
    +Proxy
    + +
    Q  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +R +S +T +U +V +W +Z + TOP +

    +QuoteSpan
    +QwertyKeyListener
    + +
    R  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +S +T +U +V +W +Z + TOP +

    +R.attr
    +R.bool
    +R.drawable
    +R.id
    +R.integer
    +R.string
    +R.style
    +RasterizerSpan
    +Rect
    +RectF
    +RelativeSizeSpan
    +RemoteViews
    +RemoteViews.ActionException
    +ResourceCursorAdapter
    +Resources
    +ResultReceiver
    +RingtoneManager
    +RotateDrawable
    + +
    S  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +T +U +V +W +Z + TOP +

    +ScaleDrawable
    +ScaleXSpan
    +Scroller
    +ScrollingMovementMethod
    +SectionIndexer
    +Sensor
    +SensorEvent
    +SensorEventListener
    +SensorListener
    +SensorManager
    +Settings
    +Settings.Secure
    +Settings.System
    +Shape
    +SimpleCursorAdapter
    +SlidingDrawer
    +SlidingDrawer.OnDrawerCloseListener
    +SlidingDrawer.OnDrawerOpenListener
    +SlidingDrawer.OnDrawerScrollListener
    +SmsMessage
    +Socket
    +SoundPool
    +Spanned
    +SpanWatcher
    +SparseIntArray
    +SQLiteDatabase
    +StrikethroughSpan
    +String
    +StyleSpan
    +SubscriptSpan
    +SuperscriptSpan
    + +
    T  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +U +V +W +Z + TOP +

    +TelephonyManager
    +TestMethod
    +TestSuiteBuilder
    +TextAppearanceSpan
    +TextKeyListener
    +TextUtils
    +TextView
    +TextView.OnEditorActionListener
    +TextWatcher
    +TimeKeyListener
    +TimeUtils
    +Touch
    +TouchUtils
    +Transformation
    +TransitionDrawable
    +TypedArray
    +TypefaceSpan
    + +
    U  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +V +W +Z + TOP +

    +UnderlineSpan
    +UpdateAppearance
    +UpdateLayout
    +UrlInterceptHandler
    +UrlInterceptRegistry
    +URLSpan
    +URLUtil
    +UserDictionary
    +UserDictionary.Words
    + +
    V  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +W +Z + TOP +

    +View
    +ViewConfiguration
    +ViewDebug
    +ViewDebug.CapturedViewProperty
    +ViewGroup
    +ViewParent
    +ViewTreeObserver
    +ViewTreeObserver.OnScrollChangedListener
    +Visibility
    +VMDebug
    + +
    W  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +Z + TOP +

    +WebHistoryItem
    +WebSettings
    +WebView
    +WifiManager
    +Window
    +WindowManager.LayoutParams
    + +
    Z  +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W + TOP +

    +Zygote
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_changes.html b/docs/html/sdk/api_diff/3/changes/classes_index_changes.html new file mode 100644 index 0000000000000..58d4edcbc8a75 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/classes_index_changes.html @@ -0,0 +1,846 @@ + + + + + + + + + +Class Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Classes +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +AbsListView
    +AbsoluteLayout
    +AbsoluteSizeSpan
    +AbsSeekBar
    +Activity
    +ActivityInfo
    +ActivityInstrumentationTestCase
    +ActivityManager
    +AlarmManager
    +AlertDialog
    +AlignmentSpan.Standard
    +Animation
    +Annotation
    +ArrayAdapter
    +ArrowKeyMovementMethod
    +AssetFileDescriptor
    +AudioManager
    +AutoCompleteTextView
    +AutoText
    + +
    B  +A +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +BackgroundColorSpan
    +BaseKeyListener
    +Binder
    +Bitmap
    +BroadcastReceiver
    +Browser
    +Build
    +BulletSpan
    + +
    C  +A +B +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Camera
    +Canvas
    +Character.UnicodeBlock
    +Chronometer
    +Class
    +ClickableSpan
    +Configuration
    +ConnectivityManager
    +Contacts.Intents
    +Contacts.Intents.Insert
    +Contacts.PeopleColumns
    +ContentProvider
    +ContentResolver
    +Context
    +Cursor
    +CursorAdapter
    +CursorWrapper
    + +
    D  +A +B +C +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +DatabaseUtils
    +Date
    +DateKeyListener
    +DateTimeKeyListener
    +Debug
    +DexFile
    +DialerKeyListener
    +DialogInterface
    +DialogPreference
    +DigitsKeyListener
    +Drawable
    +DynamicDrawableSpan
    + +
    E  +A +B +C +D +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Environment
    + +
    F  +A +B +C +D +E +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +ForegroundColorSpan
    + +
    G  +A +B +C +D +E +F +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +GestureDetector
    +GestureDetector.SimpleOnGestureListener
    +Gravity
    +GridView
    + +
    H  +A +B +C +D +E +F +G +I +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Handler
    + +
    I  +A +B +C +D +E +F +G +H +K +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +IBinder
    +ImageSpan
    +Instrumentation
    +InstrumentationTestCase
    +Intent
    + +
    K  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +KeyCharacterMap
    +KeyEvent
    +KeyListener
    + +
    L  +A +B +C +D +E +F +G +H +I +K +M +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +LauncherActivity
    +LeadingMarginSpan.Standard
    +Level
    +ListView
    +Location
    +LocationManager
    +LogManager
    +Looper
    + +
    M  +A +B +C +D +E +F +G +H +I +K +L +N +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +Manifest.permission
    +MaskFilterSpan
    +MediaPlayer
    +MediaRecorder
    +MediaRecorder.OutputFormat
    +MediaStore
    +MediaStore.Audio.AlbumColumns
    +MediaStore.Audio.Media
    +MediaStore.Images.Media
    +MediaStore.Video
    +MediaStore.Video.VideoColumns
    +Menu
    +MetaKeyKeyListener
    +MockPackageManager
    +MotionEvent
    +MovementMethod
    +MultiTapKeyListener
    + +
    N  +A +B +C +D +E +F +G +H +I +K +L +M +O +P +Q +R +S +T +U +V +W +Z + TOP +

    +NetworkInfo
    + +
    O  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +Q +R +S +T +U +V +W +Z + TOP +

    +OrientationListener
    + +
    P  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +Q +R +S +T +U +V +W +Z + TOP +

    +Pack200.Packer
    +Pack200.Unpacker
    +PackageInfo
    +PackageManager
    +Parcel
    +ParcelFileDescriptor
    +PendingIntent
    +PhoneNumberUtils
    +PopupWindow
    +PopupWindow.OnDismissListener
    +ProgressBar
    +ProviderTestCase
    +Proxy
    + +
    Q  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +U +V +W +Z + TOP +

    +QuoteSpan
    +QwertyKeyListener
    + +
    R  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +S +T +U +V +W +Z + TOP +

    +R.attr
    +R.drawable
    +R.id
    +R.string
    +R.style
    +RasterizerSpan
    +Rect
    +RectF
    +RelativeSizeSpan
    +RemoteViews
    +RemoteViews.ActionException
    +ResourceCursorAdapter
    +Resources
    +RingtoneManager
    +RotateDrawable
    + +
    S  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +T +U +V +W +Z + TOP +

    +ScaleDrawable
    +ScaleXSpan
    +Scroller
    +ScrollingMovementMethod
    +SensorListener
    +SensorManager
    +Settings
    +Settings.System
    +Shape
    +SimpleCursorAdapter
    +SmsMessage
    +Socket
    +SoundPool
    +Spanned
    +SpanWatcher
    +SparseIntArray
    +SQLiteDatabase
    +StrikethroughSpan
    +String
    +StyleSpan
    +SubscriptSpan
    +SuperscriptSpan
    + +
    T  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +U +V +W +Z + TOP +

    +TelephonyManager
    +TestMethod
    +TestSuiteBuilder
    +TextAppearanceSpan
    +TextKeyListener
    +TextUtils
    +TextView
    +TextWatcher
    +TimeKeyListener
    +TimeUtils
    +Touch
    +TouchUtils
    +Transformation
    +TransitionDrawable
    +TypedArray
    +TypefaceSpan
    + +
    U  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +V +W +Z + TOP +

    +UnderlineSpan
    +UpdateLayout
    +UrlInterceptHandler
    +UrlInterceptRegistry
    +URLSpan
    +URLUtil
    + +
    V  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +W +Z + TOP +

    +View
    +ViewConfiguration
    +ViewDebug
    +ViewGroup
    +ViewParent
    +ViewTreeObserver
    +VMDebug
    + +
    W  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +Z + TOP +

    +WebHistoryItem
    +WebSettings
    +WebView
    +WifiManager
    +Window
    +WindowManager.LayoutParams
    + +
    Z  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +Q +R +S +T +U +V +W + TOP +

    +Zygote
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/classes_index_removals.html b/docs/html/sdk/api_diff/3/changes/classes_index_removals.html new file mode 100644 index 0000000000000..bc5e2e821957a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/classes_index_removals.html @@ -0,0 +1,62 @@ + + + + + + + + + +Class Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Classes +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html b/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html new file mode 100644 index 0000000000000..0dff7fe55a961 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_additions.html @@ -0,0 +1,409 @@ + + + + + + + + + +Constructor Additions Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Constructors +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +D +F +G +H +I +K +L +O +Q +R +S +T +U + TOP +

    +AbsoluteSizeSpan +(Parcel) constructor
    +AlignmentSpan.Standard +(Parcel) constructor
    +Annotation +(Parcel) constructor
    + +
    B  +A +D +F +G +H +I +K +L +O +Q +R +S +T +U + TOP +

    +BackgroundColorSpan +(Parcel) constructor
    +BulletSpan +(Parcel) constructor
    + +
    D  +A +B +F +G +H +I +K +L +O +Q +R +S +T +U + TOP +

    +DynamicDrawableSpan +(int) constructor
    + +
    F  +A +B +D +G +H +I +K +L +O +Q +R +S +T +U + TOP +

    +ForegroundColorSpan +(Parcel) constructor
    + +
    G  +A +B +D +F +H +I +K +L +O +Q +R +S +T +U + TOP +

    +GestureDetector
    +  GestureDetector +(Context, OnGestureListener) constructor
    +  GestureDetector +(Context, OnGestureListener, Handler) constructor
    + +
    H  +A +B +D +F +G +I +K +L +O +Q +R +S +T +U + TOP +

    +Handler
    +  Handler +(Callback) constructor
    +  Handler +(Looper, Callback) constructor
    + +
    I  +A +B +D +F +G +H +K +L +O +Q +R +S +T +U + TOP +

    +ImageSpan
    +  ImageSpan +(Context, Uri, int) constructor
    +  ImageSpan +(Context, int, int) constructor
    +  ImageSpan +(Bitmap, int) constructor
    +  ImageSpan +(Drawable, int) constructor
    +  ImageSpan +(Drawable, String, int) constructor
    + +
    K  +A +B +D +F +G +H +I +L +O +Q +R +S +T +U + TOP +

    +KeyEvent
    +  KeyEvent +(KeyEvent) constructor
    +  KeyEvent +(long, String, int, int) constructor
    + +
    L  +A +B +D +F +G +H +I +K +O +Q +R +S +T +U + TOP +

    +LeadingMarginSpan.Standard +(Parcel) constructor
    + +
    O  +A +B +D +F +G +H +I +K +L +Q +R +S +T +U + TOP +

    +OrientationListener +(Context, int) constructor
    + +
    Q  +A +B +D +F +G +H +I +K +L +O +R +S +T +U + TOP +

    +QuoteSpan +(Parcel) constructor
    + +
    R  +A +B +D +F +G +H +I +K +L +O +Q +S +T +U + TOP +

    +RelativeSizeSpan +(Parcel) constructor
    +RemoteViews.ActionException +(Exception) constructor
    +ResourceCursorAdapter +(Context, int, Cursor, boolean) constructor
    + +
    S  +A +B +D +F +G +H +I +K +L +O +Q +R +T +U + TOP +

    +ScaleXSpan +(Parcel) constructor
    +StrikethroughSpan +(Parcel) constructor
    +StyleSpan +(Parcel) constructor
    +SubscriptSpan +(Parcel) constructor
    +SuperscriptSpan +(Parcel) constructor
    + +
    T  +A +B +D +F +G +H +I +K +L +O +Q +R +S +U + TOP +

    +TestMethod
    +  TestMethod +(String, Class<TestCase>) constructor
    +  TestMethod +(TestCase) constructor
    +TextAppearanceSpan +(Parcel) constructor
    +TransitionDrawable +(Drawable[]) constructor
    +TypefaceSpan +(Parcel) constructor
    + +
    U  +A +B +D +F +G +H +I +K +L +O +Q +R +S +T + TOP +

    +UnderlineSpan +(Parcel) constructor
    +URLSpan +(Parcel) constructor
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_all.html b/docs/html/sdk/api_diff/3/changes/constructors_index_all.html new file mode 100644 index 0000000000000..49ad673c48aa5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_all.html @@ -0,0 +1,514 @@ + + + + + + + + + +Constructor Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +Constructors +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +D +F +G +H +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +AbsoluteSizeSpan +(Parcel) constructor
    +AlignmentSpan.Standard +(Parcel) constructor
    +Annotation +(Parcel) constructor
    + +
    B  +A +D +F +G +H +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +BackgroundColorSpan +(Parcel) constructor
    +BulletSpan +(Parcel) constructor
    + +
    D  +A +B +F +G +H +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +Date
    +  Date +() constructor
    +  Date +(int, int, int, int, int, int) constructor
    +DynamicDrawableSpan +(int) constructor
    + +
    F  +A +B +D +G +H +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +ForegroundColorSpan +(Parcel) constructor
    + +
    G  +A +B +D +F +H +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +GestureDetector
    +  GestureDetector +(Context, OnGestureListener) constructor
    +  GestureDetector +(Context, OnGestureListener, Handler) constructor
    +  GestureDetector +(OnGestureListener) constructor
    +  GestureDetector +(OnGestureListener, Handler) constructor
    + +
    H  +A +B +D +F +G +I +K +L +N +O +Q +R +S +T +U +V + TOP +

    +Handler
    +  Handler +(Callback) constructor
    +  Handler +(Looper, Callback) constructor
    + +
    I  +A +B +D +F +G +H +K +L +N +O +Q +R +S +T +U +V + TOP +

    +ImageSpan
    +  ImageSpan +(Context, Uri, int) constructor
    +  ImageSpan +(Context, int, int) constructor
    +  ImageSpan +(Bitmap, int) constructor
    +  ImageSpan +(Drawable, int) constructor
    +  ImageSpan +(Drawable, String, int) constructor
    + +
    K  +A +B +D +F +G +H +I +L +N +O +Q +R +S +T +U +V + TOP +

    +KeyEvent
    +  KeyEvent +(KeyEvent) constructor
    +  KeyEvent +(long, String, int, int) constructor
    + +
    L  +A +B +D +F +G +H +I +K +N +O +Q +R +S +T +U +V + TOP +

    +LeadingMarginSpan.Standard +(Parcel) constructor
    + +
    N  +A +B +D +F +G +H +I +K +L +O +Q +R +S +T +U +V + TOP +

    +NetworkInfo +(int) constructor
    + +
    O  +A +B +D +F +G +H +I +K +L +N +Q +R +S +T +U +V + TOP +

    +OrientationListener +(Context, int) constructor
    + +
    Q  +A +B +D +F +G +H +I +K +L +N +O +R +S +T +U +V + TOP +

    +QuoteSpan +(Parcel) constructor
    + +
    R  +A +B +D +F +G +H +I +K +L +N +O +Q +S +T +U +V + TOP +

    +RelativeSizeSpan +(Parcel) constructor
    +RemoteViews.ActionException +(Exception) constructor
    +ResourceCursorAdapter +(Context, int, Cursor, boolean) constructor
    + +
    S  +A +B +D +F +G +H +I +K +L +N +O +Q +R +T +U +V + TOP +

    +ScaleXSpan +(Parcel) constructor
    +Socket
    +  Socket +() constructor
    +  Socket +(String, int) constructor
    +  Socket +(String, int, InetAddress, int) constructor
    +  Socket +(Proxy) constructor
    +  Socket +(SocketImpl) constructor
    +StrikethroughSpan +(Parcel) constructor
    +String
    +  String +() constructor
    +  String +(byte[]) constructor
    +  String +(byte[], int) constructor
    +  String +(byte[], int, int) constructor
    +  String +(byte[], int, int, int) constructor
    +StyleSpan +(Parcel) constructor
    +SubscriptSpan +(Parcel) constructor
    +SuperscriptSpan +(Parcel) constructor
    + +
    T  +A +B +D +F +G +H +I +K +L +N +O +Q +R +S +U +V + TOP +

    +TestMethod
    +  TestMethod +(String, Class<TestCase>) constructor
    +  TestMethod +(TestCase) constructor
    +TextAppearanceSpan +(Parcel) constructor
    +TransitionDrawable +(Drawable[]) constructor
    +TypefaceSpan +(Parcel) constructor
    + +
    U  +A +B +D +F +G +H +I +K +L +N +O +Q +R +S +T +V + TOP +

    +UnderlineSpan +(Parcel) constructor
    +URLSpan +(Parcel) constructor
    + +
    V  +A +B +D +F +G +H +I +K +L +N +O +Q +R +S +T +U + TOP +

    +ViewConfiguration +() constructor
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html b/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html new file mode 100644 index 0000000000000..8ea3eec7b0342 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_changes.html @@ -0,0 +1,124 @@ + + + + + + + + + +Constructor Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Constructors +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    D  +G +S +V + TOP +

    +Date
    +  Date +() constructor
    +  Date +(int, int, int, int, int, int) constructor
    + +
    G  +D +S +V + TOP +

    +GestureDetector
    +  GestureDetector +(OnGestureListener) constructor
    +  GestureDetector +(OnGestureListener, Handler) constructor
    + +
    S  +D +G +V + TOP +

    +Socket
    +  Socket +() constructor
    +  Socket +(String, int) constructor
    +  Socket +(String, int, InetAddress, int) constructor
    +  Socket +(Proxy) constructor
    +  Socket +(SocketImpl) constructor
    +String
    +  String +() constructor
    +  String +(byte[]) constructor
    +  String +(byte[], int) constructor
    +  String +(byte[], int, int) constructor
    +  String +(byte[], int, int, int) constructor
    + +
    V  +D +G +S + TOP +

    +ViewConfiguration +() constructor
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html b/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html new file mode 100644 index 0000000000000..8e591c1e3fd51 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/constructors_index_removals.html @@ -0,0 +1,68 @@ + + + + + + + + + +Constructor Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Constructors +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    N  + TOP +

    +NetworkInfo +(int) constructor
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html new file mode 100644 index 0000000000000..ef3937c0a1958 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.DexFile.html @@ -0,0 +1,123 @@ + + + + + + + + + +dalvik.system.DexFile + + + + + + + + + + +
    +
    +
    +

    +Class dalvik.system.DexFile +

    + + +

    + + + + + + + + +
    Added Methods +
    + + DexFile loadDex(String, String, int) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html new file mode 100644 index 0000000000000..c7ee90942566c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.VMDebug.html @@ -0,0 +1,130 @@ + + + + + + + + + +dalvik.system.VMDebug + + + + + + + + + + +
    +
    +
    +

    +Class dalvik.system.VMDebug +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void dumpHprofData(String) +  
    + + boolean isDebuggingEnabled() +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html b/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html new file mode 100644 index 0000000000000..d26e9e64abe2a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/dalvik.system.Zygote.html @@ -0,0 +1,187 @@ + + + + + + + + + +dalvik.system.Zygote + + + + + + + + + + +
    +
    +
    +

    +Class dalvik.system.Zygote +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + int forkAndSpecialize(int, int, int[], int, int[][]) +  
    + + int forkSystemServer(int, int, int[], int, int[][]) +  
    +  +

    + + + + + + + + + + + + + + +
    Changed Methods +
    + + int forkAndSpecialize(int, int, int[], boolean, int[][]) + +Now deprecated.
    +
     
    + + int forkSystemServer(int, int, int[], boolean, int[][]) + +Now deprecated.
    +
     
    +  + +

    + + + + + + + + + + + + + + + + +
    Added Fields +
    + + int DEBUG_ENABLE_ASSERT +  
    + + int DEBUG_ENABLE_CHECKJNI +  
    + + int DEBUG_ENABLE_DEBUGGER +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_additions.html b/docs/html/sdk/api_diff/3/changes/fields_index_additions.html new file mode 100644 index 0000000000000..c2c3b494595c4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/fields_index_additions.html @@ -0,0 +1,1129 @@ + + + + + + + + + +Field Additions Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Fields +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +ACCELEROMETER_ROTATION +
    +ACTION_AIRPLANE_MODE_SETTINGS +
    +ACTION_APPLICATION_DEVELOPMENT_SETTINGS +
    +ACTION_AUDIO_BECOMING_NOISY +
    +ACTION_BACKGROUND_DATA_SETTING_CHANGED +
    +ACTION_DATA_ROAMING_SETTINGS +
    +ACTION_IMAGE_CAPTURE +
    +ACTION_INPUT_METHOD_CHANGED +
    +ACTION_INPUT_METHOD_SETTINGS +
    +ACTION_INTERNAL_STORAGE_SETTINGS +
    +ACTION_MANAGE_APPLICATIONS_SETTINGS +
    +ACTION_MEDIA_CHECKING +
    +ACTION_MEDIA_NOFS +
    +ACTION_MEMORY_CARD_SETTINGS +
    +ACTION_NETWORK_OPERATOR_SETTINGS +
    +ACTION_OUTSIDE +
    +ACTION_PACKAGE_DATA_CLEARED +
    +ACTION_PACKAGE_REPLACED +
    +ACTION_PHONE_STATE_CHANGED +
    +ACTION_QUICK_LAUNCH_SETTINGS +
    +ACTION_SEARCH_LONG_PRESS +
    +ACTION_SYNC_SETTINGS +
    +ACTION_SYSTEM_TUTORIAL +
    +ACTION_USER_DICTIONARY_SETTINGS +
    +ACTION_USER_PRESENT +
    +ACTION_VIDEO_CAPTURE +
    +ACTION_WIFI_IP_SETTINGS +
    +addToDictionary +
    +ALIGN_BASELINE +
    +ALIGN_BOTTOM +
    +allowSingleTap +
    +animateOnClick +
    +AXIS_CLIP +
    +AXIS_MINUS_X +
    +AXIS_MINUS_Y +
    +AXIS_MINUS_Z +
    +AXIS_X +
    +AXIS_Y +
    +AXIS_Z +
    + +
    B  +A +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +backgroundDimEnabled +
    +BIND_APPWIDGET +
    +BIND_INPUT_METHOD +
    +BOOKMARK +
    +bottomOffset +
    +BUCKET_DISPLAY_NAME +
    +BUCKET_ID +
    +BUTTON_NEGATIVE +
    +BUTTON_NEUTRAL +
    +BUTTON_POSITIVE +
    + +
    C  +A +B +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +candidatesArea +
    +candidatesTextStyleSpans +
    +CAP_MODE_CHARACTERS +
    +CAP_MODE_SENTENCES +
    +CAP_MODE_WORDS +
    +CATEGORY_INFO +
    +CLIP_HORIZONTAL +
    +CLIP_VERTICAL +
    +closeButton +
    +codes +
    +configPreferences +
    +configure +
    +content +
    +copy +
    +copyUrl +
    +CREATOR
    + in  +android.content.res.AssetFileDescriptor +
    + in  +android.graphics.RectF +
    +cut +
    + +
    D  +A +B +C +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +dark_header +
    +DEBUG_ENABLE_ASSERT +
    +DEBUG_ENABLE_CHECKJNI +
    +DEBUG_ENABLE_DEBUGGER +
    +dialog_alert_title +
    +DISPLAY +
    +DISPLAY_CLIP_HORIZONTAL +
    +DISPLAY_CLIP_VERTICAL +
    +dropDownAnchor +
    +dropDownWidth +
    + +
    E  +A +B +C +D +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +editorExtras +
    +EXTRA_APPLICATION_ID +
    +EXTRA_CREATE_DESCRIPTION +
    +EXTRA_DATA_REMOVED +
    +EXTRA_FINISH_ON_COMPLETION +
    +EXTRA_FORCE_CREATE +
    +EXTRA_INCOMING_NUMBER +
    +EXTRA_MAX_BYTES +
    +EXTRA_MEDIA_ALBUM +
    +EXTRA_MEDIA_ARTIST +
    +EXTRA_MEDIA_FOCUS +
    +EXTRA_MEDIA_TITLE +
    +EXTRA_OUTPUT +
    +EXTRA_REPLACING +
    +EXTRA_SCREEN_ORIENTATION +
    +EXTRA_STATE +
    +EXTRA_STATE_IDLE +
    +EXTRA_STATE_OFFHOOK +
    +EXTRA_STATE_RINGING +
    +EXTRA_VIDEO_QUALITY +
    +extractArea +
    + +
    F  +A +B +C +D +E +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +fastScrollEnabled +
    +fillEnabled +
    +FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET +
    +FLAG_ACTIVITY_NO_USER_ACTION +
    +FLAG_ACTIVITY_REORDER_TO_FRONT +
    +FLAG_ALT_FOCUSABLE_IM +
    +FLAG_EDITOR_ACTION +
    +FLAG_FROM_SYSTEM +
    +FLAG_KEEP_TOUCH_MODE +
    +FLAG_NO_HISTORY +
    +FLAG_SOFT_KEYBOARD +
    +FLAG_UPDATE_CURRENT +
    +FLAG_WATCH_OUTSIDE_TOUCH +
    +footerDividersEnabled +
    +FORMAT_JAPAN +
    +FX_KEYPRESS_DELETE +
    +FX_KEYPRESS_RETURN +
    +FX_KEYPRESS_SPACEBAR +
    +FX_KEYPRESS_STANDARD +
    + +
    G  +A +B +C +D +E +F +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +GET_CONFIGURATIONS +
    +GET_UNINSTALLED_PACKAGES +
    + +
    H  +A +B +C +D +E +F +G +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +handle +
    +HAPTIC_FEEDBACK_ENABLED
    + in  +android.provider.Settings.System +
    + in  +android.view.View +
    +hapticFeedbackEnabled +
    +hardKeyboardHidden +
    +HARDKEYBOARDHIDDEN_NO +
    +HARDKEYBOARDHIDDEN_UNDEFINED +
    +HARDKEYBOARDHIDDEN_YES +
    +headerDividersEnabled +
    +horizontalGap +
    + +
    I  +A +B +C +D +E +F +G +H +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +ic_btn_speak_now +
    +iconPreview +
    +imeActionId +
    +imeActionLabel +
    +imeExtractEnterAnimation +
    +imeExtractExitAnimation +
    +imeFullscreenBackground +
    +imeOptions +
    +initialLayout +
    +innerRadius +
    +INPUT_METHOD_FROM_FOCUSABLE +
    +INPUT_METHOD_NEEDED +
    +INPUT_METHOD_NOT_NEEDED +
    +INPUT_METHOD_SERVICE +
    +inputArea +
    +inputExtractEditText +
    +inputType +
    +INSTALL_FAILED_CONFLICTING_PROVIDER +
    +INTENT_ACTION_MEDIA_SEARCH +
    +INTENT_ACTION_STILL_IMAGE_CAMERA +
    +INTENT_ACTION_VIDEO_CAMERA +
    +INTERVAL_DAY +
    +INTERVAL_FIFTEEN_MINUTES +
    +INTERVAL_HALF_DAY +
    +INTERVAL_HALF_HOUR +
    +INTERVAL_HOUR +
    +isDefault +
    +isModifier +
    +isRepeatable +
    +isScrollContainer +
    +isSticky +
    + +
    K  +A +B +C +D +E +F +G +H +I +L +M +N +P +R +S +T +U +V +W + TOP +

    +KEY_LOCATION_CHANGED +
    +KEY_PROVIDER_ENABLED +
    +KEY_STATUS_CHANGED +
    +keyBackground +
    +keyboardMode +
    +keyboardView +
    +KEYCODE_MEDIA_FAST_FORWARD +
    +KEYCODE_MEDIA_NEXT +
    +KEYCODE_MEDIA_PLAY_PAUSE +
    +KEYCODE_MEDIA_PREVIOUS +
    +KEYCODE_MEDIA_REWIND +
    +KEYCODE_MEDIA_STOP +
    +KEYCODE_MUTE +
    +keyEdgeFlags +
    +keyHeight +
    +keyIcon +
    +keyLabel +
    +keyOutputText +
    +keyPreviewHeight +
    +keyPreviewLayout +
    +keyPreviewOffset +
    +keyTextColor +
    +keyTextSize +
    +keyWidth +
    + +
    L  +A +B +C +D +E +F +G +H +I +K +M +N +P +R +S +T +U +V +W + TOP +

    +labelTextSize +
    +LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED +
    + +
    M  +A +B +C +D +E +F +G +H +I +K +L +N +P +R +S +T +U +V +W + TOP +

    +MEDIA_CHECKING +
    +MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK +
    +MEDIA_INFO_BAD_INTERLEAVING +
    +MEDIA_INFO_NOT_SEEKABLE +
    +MEDIA_INFO_UNKNOWN +
    +MEDIA_INFO_VIDEO_TRACK_LAGGING +
    +MEDIA_NOFS +
    +MEDIA_RECORDER_ERROR_UNKNOWN +
    +MEDIA_RECORDER_INFO_MAX_DURATION_REACHED +
    +MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED +
    +MEDIA_RECORDER_INFO_UNKNOWN +
    +MODE_APPEND +
    +MOUNT_FORMAT_FILESYSTEMS +
    +mVerticalAlignment +
    + +
    N  +A +B +C +D +E +F +G +H +I +K +L +M +P +R +S +T +U +V +W + TOP +

    +noHistory +
    +NUMBER_OF_SONGS_FOR_ARTIST +
    + +
    P  +A +B +C +D +E +F +G +H +I +K +L +M +N +R +S +T +U +V +W + TOP +

    +paste +
    +PHONETIC_NAME
    + in  +android.provider.Contacts.Intents.Insert +
    + in  +android.provider.Contacts.PeopleColumns +
    +popupCharacters +
    +popupKeyboard +
    +popupLayout +
    +privateImeOptions +
    + +
    R  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +S +T +U +V +W + TOP +

    +RAW_AMR +
    +reqFiveWayNav +
    +reqHardKeyboard +
    +reqKeyboardType +
    +reqNavigation +
    +reqTouchScreen +
    +ROUTE_BLUETOOTH_A2DP +
    +ROUTE_BLUETOOTH_SCO +
    +rowEdgeFlags +
    + +
    S  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +T +U +V +W + TOP +

    +SCREEN_BRIGHTNESS_CHANGED +
    +SCREEN_ORIENTATION_CHANGED +
    +screenBrightness +
    +screenOrientation +
    +SECONDARY_EMAIL +
    +SECONDARY_EMAIL_TYPE +
    +SECONDARY_PHONE +
    +SECONDARY_PHONE_TYPE +
    +selectAll +
    +settingsActivity +
    +sharedUserId +
    +sharedUserLabel
    + in  +android.R.attr +
    + in  +android.content.pm.PackageInfo +
    +SHOW_OR_CREATE_CONTACT +
    +smoothScrollbar +
    +SOFT_INPUT_ADJUST_PAN +
    +SOFT_INPUT_ADJUST_RESIZE +
    +SOFT_INPUT_ADJUST_UNSPECIFIED +
    +SOFT_INPUT_IS_FORWARD_NAVIGATION +
    +SOFT_INPUT_MASK_ADJUST +
    +SOFT_INPUT_MASK_STATE +
    +SOFT_INPUT_MODE_CHANGED +
    +SOFT_INPUT_STATE_ALWAYS_HIDDEN +
    +SOFT_INPUT_STATE_ALWAYS_VISIBLE +
    +SOFT_INPUT_STATE_HIDDEN +
    +SOFT_INPUT_STATE_UNCHANGED +
    +SOFT_INPUT_STATE_UNSPECIFIED +
    +SOFT_INPUT_STATE_VISIBLE +
    +softInputMode
    + in  +android.content.pm.ActivityInfo +
    + in  +android.view.WindowManager.LayoutParams +
    +SPAN_COMPOSING +
    +SPAN_INTERMEDIATE +
    +SPAN_POINT_MARK_MASK +
    +startSelectingText +
    +state_long_pressable +
    +stopSelectingText +
    +STREAM_NOTIFICATION +
    +STRETCH_SPACING_UNIFORM +
    +switchInputMethod +
    + +
    T  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +U +V +W + TOP +

    +TERTIARY_EMAIL +
    +TERTIARY_EMAIL_TYPE +
    +TERTIARY_PHONE +
    +TERTIARY_PHONE_TYPE +
    +Theme_InputMethod +
    +Theme_Light_Panel +
    +Theme_NoDisplay +
    +Theme_Panel +
    +thickness +
    +title_bar_tall +
    +topOffset +
    +TYPE_APPLICATION_ATTACHED_DIALOG +
    +TYPE_INPUT_METHOD +
    +TYPE_INPUT_METHOD_DIALOG +
    + +
    U  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +V +W + TOP +

    +UNKNOWN_LENGTH +
    +UPDATE_DEVICE_STATS +
    +updatePeriodMillis +
    + +
    V  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +W + TOP +

    +verticalCorrection +
    +verticalGap +
    +VideoView_error_text_invalid_progressive_playback +
    +voiceLanguage +
    +voiceLanguageModel +
    +voiceMaxResults +
    +voicePromptText +
    +voiceSearchMode +
    +VOLUME_NOTIFICATION +
    + +
    W  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V + TOP +

    +Widget_KeyboardView +
    +WIFI_MAX_DHCP_RETRY_COUNT +
    +WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS +
    +WIFI_MODE_FULL +
    +WIFI_MODE_SCAN_ONLY +
    +WIFI_SLEEP_POLICY +
    +WIFI_SLEEP_POLICY_DEFAULT +
    +WIFI_SLEEP_POLICY_NEVER +
    +WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED +
    +windowDisablePreview +
    +windowNoDisplay +
    +windowSoftInputMode +
    +WRITE_SECURE_SETTINGS +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_all.html b/docs/html/sdk/api_diff/3/changes/fields_index_all.html new file mode 100644 index 0000000000000..786a360054524 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/fields_index_all.html @@ -0,0 +1,1270 @@ + + + + + + + + + +Field Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +Fields +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +ACCELEROMETER_ROTATION +
    +ACTION_AIRPLANE_MODE_SETTINGS +
    +ACTION_APPLICATION_DEVELOPMENT_SETTINGS +
    +ACTION_AUDIO_BECOMING_NOISY +
    +ACTION_BACKGROUND_DATA_SETTING_CHANGED +
    +ACTION_DATA_ROAMING_SETTINGS +
    +ACTION_IMAGE_CAPTURE +
    +ACTION_INPUT_METHOD_CHANGED +
    +ACTION_INPUT_METHOD_SETTINGS +
    +ACTION_INTERNAL_STORAGE_SETTINGS +
    +ACTION_MANAGE_APPLICATIONS_SETTINGS +
    +ACTION_MEDIA_CHECKING +
    +ACTION_MEDIA_NOFS +
    +ACTION_MEMORY_CARD_SETTINGS +
    +ACTION_NETWORK_OPERATOR_SETTINGS +
    +ACTION_OUTSIDE +
    +ACTION_PACKAGE_DATA_CLEARED +
    +ACTION_PACKAGE_REPLACED +
    +ACTION_PHONE_STATE_CHANGED +
    +ACTION_QUICK_LAUNCH_SETTINGS +
    +ACTION_SEARCH_LONG_PRESS +
    +ACTION_SYNC_SETTINGS +
    +ACTION_SYSTEM_TUTORIAL +
    +ACTION_USER_DICTIONARY_SETTINGS +
    +ACTION_USER_PRESENT +
    +ACTION_VIDEO_CAPTURE +
    +ACTION_WIFI_IP_SETTINGS +
    +ADB_ENABLED +
    +addToDictionary +
    +ALIGN_BASELINE +
    +ALIGN_BOTTOM +
    +allowSingleTap +
    +ANDROID_ID +
    +animateOnClick +
    +autoText +
    +AXIS_CLIP +
    +AXIS_MINUS_X +
    +AXIS_MINUS_Y +
    +AXIS_MINUS_Z +
    +AXIS_X +
    +AXIS_Y +
    +AXIS_Z +
    + +
    B  +A +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +backgroundDimEnabled +
    +BIND_APPWIDGET +
    +BIND_INPUT_METHOD +
    +BLUETOOTH_ON +
    +BOOKMARK +
    +bottomOffset +
    +BUCKET_DISPLAY_NAME +
    +BUCKET_ID +
    +BUTTON1 +
    +BUTTON2 +
    +BUTTON3 +
    +BUTTON_NEGATIVE +
    +BUTTON_NEUTRAL +
    +BUTTON_POSITIVE +
    + +
    C  +A +B +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +candidatesArea +
    +candidatesTextStyleSpans +
    +CAP_MODE_CHARACTERS +
    +CAP_MODE_SENTENCES +
    +CAP_MODE_WORDS +
    +capitalize +
    +CATEGORY_GADGET +
    +CATEGORY_INFO +
    +CLIP_HORIZONTAL +
    +CLIP_VERTICAL +
    +closeButton +
    +codes +
    +configPreferences +
    +configure +
    +content +
    +copy +
    +copyUrl +
    +CREATOR
    + in  +android.content.res.AssetFileDescriptor +
    + in  +android.graphics.RectF +
    +cut +
    + +
    D  +A +B +C +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +dark_header +
    +DATA_ROAMING +
    +DATA_X +
    +DATA_Y +
    +DATA_Z +
    +DEBUG_ENABLE_ASSERT +
    +DEBUG_ENABLE_CHECKJNI +
    +DEBUG_ENABLE_DEBUGGER +
    +DEFAULT_SORT_ORDER
    + in  +android.provider.MediaStore.Images.Media +
    + in  +android.provider.MediaStore.Video +
    +DEVICE_PROVISIONED +
    +dialog_alert_title +
    +DISPLAY +
    +DISPLAY_CLIP_HORIZONTAL +
    +DISPLAY_CLIP_VERTICAL +
    +dropDownAnchor +
    +dropDownWidth +
    + +
    E  +A +B +C +D +F +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +editable +
    +editorExtras +
    +enabled +
    +EXTRA_APPLICATION_ID +
    +EXTRA_CREATE_DESCRIPTION +
    +EXTRA_DATA_REMOVED +
    +EXTRA_FINISH_ON_COMPLETION +
    +EXTRA_FORCE_CREATE +
    +EXTRA_INCOMING_NUMBER +
    +EXTRA_MAX_BYTES +
    +EXTRA_MEDIA_ALBUM +
    +EXTRA_MEDIA_ARTIST +
    +EXTRA_MEDIA_FOCUS +
    +EXTRA_MEDIA_TITLE +
    +EXTRA_OUTPUT +
    +EXTRA_REPLACING +
    +EXTRA_SCREEN_ORIENTATION +
    +EXTRA_STATE +
    +EXTRA_STATE_IDLE +
    +EXTRA_STATE_OFFHOOK +
    +EXTRA_STATE_RINGING +
    +EXTRA_VIDEO_QUALITY +
    +extractArea +
    + +
    F  +A +B +C +D +E +G +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +fastScrollEnabled +
    +fillEnabled +
    +FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET +
    +FLAG_ACTIVITY_NO_USER_ACTION +
    +FLAG_ACTIVITY_REORDER_TO_FRONT +
    +FLAG_ALT_FOCUSABLE_IM +
    +FLAG_EDITOR_ACTION +
    +FLAG_FROM_SYSTEM +
    +FLAG_KEEP_TOUCH_MODE +
    +FLAG_NO_HISTORY +
    +FLAG_SOFT_KEYBOARD +
    +FLAG_UPDATE_CURRENT +
    +FLAG_WATCH_OUTSIDE_TOUCH +
    +footerDividersEnabled +
    +FORMAT_JAPAN +
    +FX_KEYPRESS_DELETE +
    +FX_KEYPRESS_RETURN +
    +FX_KEYPRESS_SPACEBAR +
    +FX_KEYPRESS_STANDARD +
    + +
    G  +A +B +C +D +E +F +H +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +GET_CONFIGURATIONS +
    +GET_UNINSTALLED_PACKAGES +
    + +
    H  +A +B +C +D +E +F +G +I +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +handle +
    +HAPTIC_FEEDBACK_ENABLED
    + in  +android.provider.Settings.System +
    + in  +android.view.View +
    +hapticFeedbackEnabled +
    +hardKeyboardHidden +
    +HARDKEYBOARDHIDDEN_NO +
    +HARDKEYBOARDHIDDEN_UNDEFINED +
    +HARDKEYBOARDHIDDEN_YES +
    +headerDividersEnabled +
    +horizontalGap +
    +HTTP_PROXY +
    + +
    I  +A +B +C +D +E +F +G +H +K +L +M +N +P +R +S +T +U +V +W + TOP +

    +ic_btn_speak_now +
    +iconPreview +
    +imeActionId +
    +imeActionLabel +
    +imeExtractEnterAnimation +
    +imeExtractExitAnimation +
    +imeFullscreenBackground +
    +imeOptions +
    +initialLayout +
    +innerRadius +
    +INPUT_METHOD_FROM_FOCUSABLE +
    +INPUT_METHOD_NEEDED +
    +INPUT_METHOD_NOT_NEEDED +
    +INPUT_METHOD_SERVICE +
    +inputArea +
    +inputExtractEditText +
    +inputMethod +
    +inputType +
    +INSTALL_FAILED_CONFLICTING_PROVIDER +
    +INSTALL_NON_MARKET_APPS +
    +INTENT_ACTION_MEDIA_SEARCH +
    +INTENT_ACTION_STILL_IMAGE_CAMERA +
    +INTENT_ACTION_VIDEO_CAMERA +
    +INTERVAL_DAY +
    +INTERVAL_FIFTEEN_MINUTES +
    +INTERVAL_HALF_DAY +
    +INTERVAL_HALF_HOUR +
    +INTERVAL_HOUR +
    +isDefault +
    +isModifier +
    +isRepeatable +
    +isScrollContainer +
    +isSticky +
    + +
    K  +A +B +C +D +E +F +G +H +I +L +M +N +P +R +S +T +U +V +W + TOP +

    +KEY_LOCATION_CHANGED +
    +KEY_PROVIDER_ENABLED +
    +KEY_STATUS_CHANGED +
    +keyBackground +
    +keyboardMode +
    +keyboardView +
    +KEYCODE_MEDIA_FAST_FORWARD +
    +KEYCODE_MEDIA_NEXT +
    +KEYCODE_MEDIA_PLAY_PAUSE +
    +KEYCODE_MEDIA_PREVIOUS +
    +KEYCODE_MEDIA_REWIND +
    +KEYCODE_MEDIA_STOP +
    +KEYCODE_MUTE +
    +keyEdgeFlags +
    +keyHeight +
    +keyIcon +
    +keyLabel +
    +keyOutputText +
    +keyPreviewHeight +
    +keyPreviewLayout +
    +keyPreviewOffset +
    +keyTextColor +
    +keyTextSize +
    +keyWidth +
    + +
    L  +A +B +C +D +E +F +G +H +I +K +M +N +P +R +S +T +U +V +W + TOP +

    +labelTextSize +
    +LIGHT_NO_MOON +
    +LOCATION_PROVIDERS_ALLOWED +
    +LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED +
    +LOGGING_ID +
    + +
    M  +A +B +C +D +E +F +G +H +I +K +L +N +P +R +S +T +U +V +W + TOP +

    +MAX_KEYCODE +
    +MEDIA_CHECKING +
    +MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK +
    +MEDIA_INFO_BAD_INTERLEAVING +
    +MEDIA_INFO_NOT_SEEKABLE +
    +MEDIA_INFO_UNKNOWN +
    +MEDIA_INFO_VIDEO_TRACK_LAGGING +
    +MEDIA_NOFS +
    +MEDIA_RECORDER_ERROR_UNKNOWN +
    +MEDIA_RECORDER_INFO_MAX_DURATION_REACHED +
    +MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED +
    +MEDIA_RECORDER_INFO_UNKNOWN +
    +MODE_APPEND +
    +MOUNT_FORMAT_FILESYSTEMS +
    +mVerticalAlignment +
    + +
    N  +A +B +C +D +E +F +G +H +I +K +L +M +P +R +S +T +U +V +W + TOP +

    +NETWORK_PREFERENCE +
    +noHistory +
    +NUM_STREAMS +
    +NUMBER_OF_SONGS_FOR_ARTIST +
    +numeric +
    + +
    P  +A +B +C +D +E +F +G +H +I +K +L +M +N +R +S +T +U +V +W + TOP +

    +PARENTAL_CONTROL_ENABLED +
    +PARENTAL_CONTROL_LAST_UPDATE +
    +PARENTAL_CONTROL_REDIRECT_URL +
    +password +
    +paste +
    +phoneNumber +
    +PHONETIC_NAME
    + in  +android.provider.Contacts.Intents.Insert +
    + in  +android.provider.Contacts.PeopleColumns +
    +popupCharacters +
    +popupKeyboard +
    +popupLayout +
    +privateImeOptions +
    + +
    R  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +S +T +U +V +W + TOP +

    +RAW_AMR +
    +RAW_DATA_INDEX +
    +RAW_DATA_X +
    +RAW_DATA_Y +
    +RAW_DATA_Z +
    +reqFiveWayNav +
    +reqHardKeyboard +
    +reqKeyboardType +
    +reqNavigation +
    +reqTouchScreen +
    +ROUTE_BLUETOOTH +
    +ROUTE_BLUETOOTH_A2DP +
    +ROUTE_BLUETOOTH_SCO +
    +rowEdgeFlags +
    + +
    S  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +T +U +V +W + TOP +

    +SCREEN_BRIGHTNESS_CHANGED +
    +SCREEN_ORIENTATION_CHANGED +
    +screenBrightness +
    +screenOrientation +
    +searchButtonText +
    +SECONDARY_EMAIL +
    +SECONDARY_EMAIL_TYPE +
    +SECONDARY_PHONE +
    +SECONDARY_PHONE_TYPE +
    +selectAll +
    +SENSOR_ACCELEROMETER +
    +SENSOR_ALL +
    +SENSOR_LIGHT +
    +SENSOR_MAGNETIC_FIELD +
    +SENSOR_MAX +
    +SENSOR_MIN +
    +SENSOR_ORIENTATION +
    +SENSOR_ORIENTATION_RAW +
    +SENSOR_PROXIMITY +
    +SENSOR_TEMPERATURE +
    +SENSOR_TRICORDER +
    +SETTINGS_CLASSNAME +
    +settingsActivity +
    +sharedUserId +
    +sharedUserLabel
    + in  +android.R.attr +
    + in  +android.content.pm.PackageInfo +
    +SHOW_OR_CREATE_CONTACT +
    +singleLine +
    +smoothScrollbar +
    +SOFT_INPUT_ADJUST_PAN +
    +SOFT_INPUT_ADJUST_RESIZE +
    +SOFT_INPUT_ADJUST_UNSPECIFIED +
    +SOFT_INPUT_IS_FORWARD_NAVIGATION +
    +SOFT_INPUT_MASK_ADJUST +
    +SOFT_INPUT_MASK_STATE +
    +SOFT_INPUT_MODE_CHANGED +
    +SOFT_INPUT_STATE_ALWAYS_HIDDEN +
    +SOFT_INPUT_STATE_ALWAYS_VISIBLE +
    +SOFT_INPUT_STATE_HIDDEN +
    +SOFT_INPUT_STATE_UNCHANGED +
    +SOFT_INPUT_STATE_UNSPECIFIED +
    +SOFT_INPUT_STATE_VISIBLE +
    +softInputMode
    + in  +android.content.pm.ActivityInfo +
    + in  +android.view.WindowManager.LayoutParams +
    +SPAN_COMPOSING +
    +SPAN_INTERMEDIATE +
    +SPAN_POINT_MARK_MASK +
    +startSelectingText +
    +state_long_pressable +
    +stopSelectingText +
    +STREAM_NOTIFICATION +
    +STRETCH_SPACING_UNIFORM +
    +switchInputMethod +
    + +
    T  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +U +V +W + TOP +

    +TERTIARY_EMAIL +
    +TERTIARY_EMAIL_TYPE +
    +TERTIARY_PHONE +
    +TERTIARY_PHONE_TYPE +
    +Theme_InputMethod +
    +Theme_Light_Panel +
    +Theme_NoDisplay +
    +Theme_Panel +
    +thickness +
    +title_bar_tall +
    +topOffset +
    +TYPE_APPLICATION_ATTACHED_DIALOG +
    +TYPE_INPUT_METHOD +
    +TYPE_INPUT_METHOD_DIALOG +
    + +
    U  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +V +W + TOP +

    +UNKNOWN_LENGTH +
    +UPDATE_DEVICE_STATS +
    +updatePeriodMillis +
    +USB_MASS_STORAGE_ENABLED +
    +USE_GOOGLE_MAIL +
    + +
    V  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +W + TOP +

    +verticalCorrection +
    +verticalGap +
    +VideoView_error_text_invalid_progressive_playback +
    +voiceLanguage +
    +voiceLanguageModel +
    +voiceMaxResults +
    +voicePromptText +
    +voiceSearchMode +
    +VOLUME_NOTIFICATION +
    + +
    W  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +U +V + TOP +

    +Widget_KeyboardView +
    +WIFI_MAX_DHCP_RETRY_COUNT +
    +WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS +
    +WIFI_MODE_FULL +
    +WIFI_MODE_SCAN_ONLY +
    +WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON +
    +WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY +
    +WIFI_NUM_OPEN_NETWORKS_KEPT +
    +WIFI_ON +
    +WIFI_SLEEP_POLICY +
    +WIFI_SLEEP_POLICY_DEFAULT +
    +WIFI_SLEEP_POLICY_NEVER +
    +WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED +
    +WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE +
    +WIFI_WATCHDOG_AP_COUNT +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS +
    +WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT +
    +WIFI_WATCHDOG_MAX_AP_CHECKS +
    +WIFI_WATCHDOG_ON +
    +WIFI_WATCHDOG_PING_COUNT +
    +WIFI_WATCHDOG_PING_DELAY_MS +
    +WIFI_WATCHDOG_PING_TIMEOUT_MS +
    +windowDisablePreview +
    +windowNoDisplay +
    +windowSoftInputMode +
    +WRITE_SECURE_SETTINGS +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_changes.html b/docs/html/sdk/api_diff/3/changes/fields_index_changes.html new file mode 100644 index 0000000000000..3f5dd5a9b7752 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/fields_index_changes.html @@ -0,0 +1,471 @@ + + + + + + + + + +Field Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Fields +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +H +I +L +M +N +P +R +S +U +W + TOP +

    +ADB_ENABLED +
    +ANDROID_ID +
    +autoText +
    + +
    B  +A +C +D +E +H +I +L +M +N +P +R +S +U +W + TOP +

    +BLUETOOTH_ON +
    +BUTTON1 +
    +BUTTON2 +
    +BUTTON3 +
    + +
    C  +A +B +D +E +H +I +L +M +N +P +R +S +U +W + TOP +

    +capitalize +
    + +
    D  +A +B +C +E +H +I +L +M +N +P +R +S +U +W + TOP +

    +DATA_ROAMING +
    +DATA_X +
    +DATA_Y +
    +DATA_Z +
    +DEFAULT_SORT_ORDER
    + in  +android.provider.MediaStore.Images.Media +
    + in  +android.provider.MediaStore.Video +
    +DEVICE_PROVISIONED +
    + +
    E  +A +B +C +D +H +I +L +M +N +P +R +S +U +W + TOP +

    +editable +
    +enabled +
    + +
    H  +A +B +C +D +E +I +L +M +N +P +R +S +U +W + TOP +

    +HTTP_PROXY +
    + +
    I  +A +B +C +D +E +H +L +M +N +P +R +S +U +W + TOP +

    +inputMethod +
    +INSTALL_NON_MARKET_APPS +
    + +
    L  +A +B +C +D +E +H +I +M +N +P +R +S +U +W + TOP +

    +LIGHT_NO_MOON +
    +LOCATION_PROVIDERS_ALLOWED +
    +LOGGING_ID +
    + +
    M  +A +B +C +D +E +H +I +L +N +P +R +S +U +W + TOP +

    +MAX_KEYCODE +
    + +
    N  +A +B +C +D +E +H +I +L +M +P +R +S +U +W + TOP +

    +NETWORK_PREFERENCE +
    +NUM_STREAMS +
    +numeric +
    + +
    P  +A +B +C +D +E +H +I +L +M +N +R +S +U +W + TOP +

    +PARENTAL_CONTROL_ENABLED +
    +PARENTAL_CONTROL_LAST_UPDATE +
    +PARENTAL_CONTROL_REDIRECT_URL +
    +password +
    +phoneNumber +
    + +
    R  +A +B +C +D +E +H +I +L +M +N +P +S +U +W + TOP +

    +RAW_DATA_INDEX +
    +RAW_DATA_X +
    +RAW_DATA_Y +
    +RAW_DATA_Z +
    +ROUTE_BLUETOOTH +
    + +
    S  +A +B +C +D +E +H +I +L +M +N +P +R +U +W + TOP +

    +searchButtonText +
    +SENSOR_ACCELEROMETER +
    +SENSOR_ALL +
    +SENSOR_LIGHT +
    +SENSOR_MAGNETIC_FIELD +
    +SENSOR_MAX +
    +SENSOR_MIN +
    +SENSOR_ORIENTATION +
    +SENSOR_ORIENTATION_RAW +
    +SENSOR_PROXIMITY +
    +SENSOR_TEMPERATURE +
    +SENSOR_TRICORDER +
    +SETTINGS_CLASSNAME +
    +singleLine +
    + +
    U  +A +B +C +D +E +H +I +L +M +N +P +R +S +W + TOP +

    +USB_MASS_STORAGE_ENABLED +
    +USE_GOOGLE_MAIL +
    + +
    W  +A +B +C +D +E +H +I +L +M +N +P +R +S +U + TOP +

    +WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON +
    +WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY +
    +WIFI_NUM_OPEN_NETWORKS_KEPT +
    +WIFI_ON +
    +WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE +
    +WIFI_WATCHDOG_AP_COUNT +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED +
    +WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS +
    +WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT +
    +WIFI_WATCHDOG_MAX_AP_CHECKS +
    +WIFI_WATCHDOG_ON +
    +WIFI_WATCHDOG_PING_COUNT +
    +WIFI_WATCHDOG_PING_DELAY_MS +
    +WIFI_WATCHDOG_PING_TIMEOUT_MS +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/fields_index_removals.html b/docs/html/sdk/api_diff/3/changes/fields_index_removals.html new file mode 100644 index 0000000000000..58ad6557e1ebc --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/fields_index_removals.html @@ -0,0 +1,68 @@ + + + + + + + + + +Field Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Fields +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    C  + TOP +

    +CATEGORY_GADGET +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html b/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html new file mode 100644 index 0000000000000..f7c9d8f64068f --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.lang.Character.UnicodeBlock.html @@ -0,0 +1,126 @@ + + + + + + + + + +java.lang.Character.UnicodeBlock + + + + + + + + + + +
    +
    +
    +

    +Class java.lang.Character.UnicodeBlock +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + UnicodeBlock forName(String) + +Change from non-final to final.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.Class.html b/docs/html/sdk/api_diff/3/changes/java.lang.Class.html new file mode 100644 index 0000000000000..fa0b056399525 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.lang.Class.html @@ -0,0 +1,166 @@ + + + + + + + + + +java.lang.Class + + + + + + + + + + +
    +
    +
    +

    +Class java.lang.Class +

    + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Methods +
    + + Class[] getClasses() + +Change in return type from Class<?> to Class[].
    +
     
    + + Constructor[] getConstructors() + +Change in return type from Constructor<T> to Constructor[].
    +
     
    + + Class[] getDeclaredClasses() + +Change in return type from Class<?> to Class[].
    +
     
    + + Constructor[] getDeclaredConstructors() + +Change in return type from Constructor<T> to Constructor[].
    +
     
    + + Class[] getInterfaces() + +Change in return type from Class<?> to Class[].
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.String.html b/docs/html/sdk/api_diff/3/changes/java.lang.String.html new file mode 100644 index 0000000000000..5c41b8cc893e5 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.lang.String.html @@ -0,0 +1,161 @@ + + + + + + + + + +java.lang.String + + + + + + + + + + +
    +
    +
    +

    +Class java.lang.String +

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Constructors +
    + + String() + +  
    + + String(byte[]) + +  
    + + String(byte[], int) + +  
    + + String(byte[], int, int) + +  
    + + String(byte[], int, int, int) + +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html b/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html new file mode 100644 index 0000000000000..f593c0ee8e730 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.lang.reflect.Proxy.html @@ -0,0 +1,126 @@ + + + + + + + + + +java.lang.reflect.Proxy + + + + + + + + + + +
    +
    +
    +

    +Class java.lang.reflect.Proxy +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + Class<?> getProxyClass(ClassLoader, Class<?>) + +Change in signature from (ClassLoader, ) to (ClassLoader, Class<?>).
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.net.Socket.html b/docs/html/sdk/api_diff/3/changes/java.net.Socket.html new file mode 100644 index 0000000000000..6027217d619c2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.net.Socket.html @@ -0,0 +1,161 @@ + + + + + + + + + +java.net.Socket + + + + + + + + + + +
    +
    +
    +

    +Class java.net.Socket +

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Constructors +
    + + Socket() + +  
    + + Socket(String, int) + +  
    + + Socket(String, int, InetAddress, int) + +  
    + + Socket(Proxy) + +  
    + + Socket(SocketImpl) + +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.util.Date.html b/docs/html/sdk/api_diff/3/changes/java.util.Date.html new file mode 100644 index 0000000000000..6a8dd26856356 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.util.Date.html @@ -0,0 +1,134 @@ + + + + + + + + + +java.util.Date + + + + + + + + + + +
    +
    +
    +

    +Class java.util.Date +

    + +

    + + + + + + + + + + + + + + +
    Changed Constructors +
    + + Date() + +  
    + + Date(int, int, int, int, int, int) + +  
    +  + + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html new file mode 100644 index 0000000000000..75b4cbc4a8f8e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Packer.html @@ -0,0 +1,130 @@ + + + + + + + + + +java.util.jar.Pack200.Packer + + + + + + + + + + +
    +
    +
    +

    +Interface java.util.jar.Pack200.Packer +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void addPropertyChangeListener(PropertyChangeListener) +  
    + + void removePropertyChangeListener(PropertyChangeListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html new file mode 100644 index 0000000000000..382fdea8428e9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.util.jar.Pack200.Unpacker.html @@ -0,0 +1,130 @@ + + + + + + + + + +java.util.jar.Pack200.Unpacker + + + + + + + + + + +
    +
    +
    +

    +Interface java.util.jar.Pack200.Unpacker +

    + + +

    + + + + + + + + + + + + +
    Added Methods +
    + + void addPropertyChangeListener(PropertyChangeListener) +  
    + + void removePropertyChangeListener(PropertyChangeListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html b/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html new file mode 100644 index 0000000000000..7f5fd19782c8b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.util.logging.Level.html @@ -0,0 +1,127 @@ + + + + + + + + + +java.util.logging.Level + + + + + + + + + + +
    +
    +
    +

    +Class java.util.logging.Level +

    + + +

    + + + + + + + + + +
    Changed Methods +
    + + Level parse(String) + +Change in exceptions thrown from no exceptions to java.lang.IllegalArgumentException.
    + Change from final to non-final.
    +
     
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html b/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html new file mode 100644 index 0000000000000..d259077f26d99 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/java.util.logging.LogManager.html @@ -0,0 +1,137 @@ + + + + + + + + + +java.util.logging.LogManager + + + + + + + + + + +
    +
    +
    +

    +Class java.util.logging.LogManager +

    + + +

    + + + + + + + + + + + + + + + + +
    Added Methods +
    + + void addPropertyChangeListener(PropertyChangeListener) +  
    + + LoggingMXBean getLoggingMXBean() +  
    + + void removePropertyChangeListener(PropertyChangeListener) +  
    +  + +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/jdiff_help.html b/docs/html/sdk/api_diff/3/changes/jdiff_help.html new file mode 100644 index 0000000000000..21a59f92d5261 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/jdiff_help.html @@ -0,0 +1,135 @@ + + + + + + + + + +JDiff Help + + + + + + + + + + + + + + + + + +
    Generated by
    JDiff
    +
    + +
    +

    JDiff Documentation

    +
    +
    +JDiff is a Javadoc doclet which generates a report of the API differences between two versions of a product. It does not report changes in Javadoc comments, or changes in what a class or method does. +This help page describes the different parts of the output from JDiff. +
    +
    + See the reference page in the source for JDiff for information about how to generate a report like this one. +
    +
    +The indexes shown in the top-left frame help show each type of change in more detail. The index "All Differences" contains all the differences between the APIs, in alphabetical order. +These indexes all use the same format: +
      +
    • Removed packages, classes, constructors, methods and fields are struck through.
    • +
    • Added packages, classes, constructors, methods and fields appear in bold.
    • +
    • Changed packages, classes, constructors, methods and fields appear in normal text.
    • +
    +
    +
    +You can always tell when you are reading a JDiff page, rather than a Javadoc page, by the color of the index bar and the color of the background. +Links which take you to a Javadoc page are always in a typewriter font. +Just like Javadoc, all interface names are in italic, and class names are not italicized. Where there are multiple entries in an index with the same name, the heading for them is also in italics, but is not a link. +
    +
    +

    Javadoc

    +This is a link to the top-level Javadoc page for the new version of the product. +
    +
    +

    Overview

    +The overview is the top-level summary of what was removed, added and changed between versions. +
    +
    +

    Package

    +This is a link to the package containing the current changed class or interface. +
    +
    +

    Class

    +This is highlighted when you are looking at the changed class or interface. +
    +
    +

    Text Changes

    +This is a link to the top-level index of all documentation changes for the current package or class. +If it is not present, then there are no documentation changes for the current package or class. +This link can be removed entirely by not using the -docchanges option. +
    +
    +

    Statistics

    +This is a link to a page which shows statistics about the changes between the two APIs. +This link can be removed entirely by not using the -stats option. +
    +
    +

    Help

    +A link to this Help page for JDiff. +
    +
    +

    Prev/Next

    +These links take you to the previous and next changed package or class. +
    +
    +

    Frames/No Frames

    +These links show and hide the HTML frames. All pages are available with or without frames. +
    +
    +

    Complex Changes

    +There are some complex changes which can occur between versions, for example, when two or more methods with the same name change simultaneously, or when a method or field is moved into or from a superclass. +In these cases, the change will be seen as a removal and an addition, rather than as a change. Unexpected removals or additions are often part of one of these type of changes. +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html new file mode 100644 index 0000000000000..6faea52ee8f0d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/jdiff_statistics.html @@ -0,0 +1,1284 @@ + + + + + + + + + +API Change Statistics + + + + + + + + + + +
    +
    +
    +

    API Change Statistics

    +

    +The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

    +
    +Percentage difference = 100 * (added + removed + 2*changed)
    +                        -----------------------------------
    +                        sum of public elements in BOTH APIs
    +
    +

    where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. +This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. +The definition ensures that if all packages are removed and all new packages are +added, the change will be 100%. Values are rounded here, so a value of 0% indicates a percentage difference of less than 0.5%.

    +

    The overall difference between the two APIs is approximately 4%. +

    +

    Contents

    +
    Changed Packages
    Sorted by percentage difference
    +
    Changed Classes and Interfaces
    Sorted by percentage difference
    +
    Total of Differences
    Listed by number and type
    +
    + +

    Changed Packages, Sorted by Percentage Difference

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Percentage DifferencePackage
    33android.opengl
    27android.media
    24android.text.style
    22android.hardware
    22android.location
    13android.content.res
    12dalvik.system
    9android.telephony
    9android.text.method
    8android.app
    8android.test
    8android.test.suitebuilder
    7android
    7android.text
    6android.provider
    6android.view
    5android.widget
    5android.os
    4android.webkit
    3android.content.pm
    2android.util
    1android.content
    1java.util.jar
    1android.graphics.drawable.shapes
    <1android.net
    <1android.graphics.drawable
    <1java.util.logging
    <1android.test.mock
    <1java.lang.reflect
    <1android.view.animation
    <1android.net.wifi
    <1android.telephony.gsm
    <1java.net
    <1android.database
    <1android.graphics
    <1java.lang
    <1android.database.sqlite
    <1android.preference
    <1java.util
    +
    + +

    Changed Classes and Interfaces, Sorted by Percentage Difference

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Percentage
    Difference
    Class or Interface
    84 +android.test.TouchUtils
    81 +dalvik.system.Zygote
    66 +android.webkit.UrlInterceptHandler
    61 +android.provider.MediaStore
    53 +android.view.GestureDetector
    50 +android.app.LauncherActivity
    50 +android.text.style.AlignmentSpan.Standard
    50 +android.text.style.StrikethroughSpan
    50 +android.text.style.UnderlineSpan
    50 +android.widget.PopupWindow.OnDismissListener
    48 +android.app.AlertDialog
    46 +android.content.DialogInterface
    45 +android.view.ViewConfiguration
    42 +android.text.method.KeyListener
    40 +android.text.Annotation
    40 +android.text.style.BackgroundColorSpan
    40 +android.text.style.ForegroundColorSpan
    40 +android.text.style.SubscriptSpan
    40 +android.text.style.SuperscriptSpan
    40 +android.text.style.URLSpan
    39 +android.media.MediaRecorder
    38 +android.text.style.DynamicDrawableSpan
    36 +android.content.res.AssetFileDescriptor
    36 +android.location.LocationManager
    34 +android.hardware.SensorManager
    33 +android.text.AutoText
    33 +android.text.method.Touch
    33 +android.text.style.AbsoluteSizeSpan
    33 +android.text.style.LeadingMarginSpan.Standard
    33 +android.text.style.RelativeSizeSpan
    33 +android.text.style.ScaleXSpan
    33 +android.text.style.StyleSpan
    33 +android.text.style.TypefaceSpan
    33 +android.widget.RemoteViews.ActionException
    31 +android.widget.RemoteViews
    30 +android.provider.Settings
    28 +android.text.style.QuoteSpan
    27 +android.app.AlarmManager
    26 +android.text.style.ImageSpan
    25 +android.hardware.SensorListener
    25 +android.text.method.MetaKeyKeyListener
    25 +android.text.style.BulletSpan
    25 +android.widget.ResourceCursorAdapter
    23 +android.provider.Contacts.Intents
    21 +android.widget.PopupWindow
    20 +android.R.id
    20 +android.provider.Settings.System
    20 +android.app.ActivityManager
    20 +android.text.method.BaseKeyListener
    20 +android.util.TimeUtils
    20 +android.widget.AutoCompleteTextView
    19 +android.provider.Contacts.Intents.Insert
    17 +android.view.GestureDetector.SimpleOnGestureListener
    16 +android.provider.MediaStore.Video
    16 +android.text.SpanWatcher
    16 +android.text.TextWatcher
    16 +android.text.style.ClickableSpan
    16 +android.text.style.MaskFilterSpan
    16 +android.text.style.RasterizerSpan
    16 +android.text.style.TextAppearanceSpan
    15 +android.webkit.UrlInterceptRegistry
    14 +android.media.MediaRecorder.OutputFormat
    14 +android.net.NetworkInfo
    14 +android.test.suitebuilder.TestMethod
    14 +android.text.method.QwertyKeyListener
    14 +android.widget.AbsSeekBar
    12 +android.view.WindowManager.LayoutParams
    12 +android.test.ActivityInstrumentationTestCase
    12 +android.test.InstrumentationTestCase
    12 +android.widget.AbsoluteLayout
    12 +java.util.logging.LogManager
    11 +android.view.Gravity
    11 +android.widget.CursorAdapter
    11 +android.widget.TextView
    11 +android.text.method.DateKeyListener
    11 +android.text.method.DateTimeKeyListener
    11 +android.text.method.DialerKeyListener
    11 +android.text.method.TimeKeyListener
    11 +android.webkit.WebHistoryItem
    11 +java.util.jar.Pack200.Unpacker
    10 +android.media.MediaPlayer
    10 +android.provider.MediaStore.Video.VideoColumns
    10 +android.test.ProviderTestCase
    10 +android.test.suitebuilder.TestSuiteBuilder
    10 +android.widget.Chronometer
    10 +java.net.Socket
    9 +android.graphics.drawable.TransitionDrawable
    9 +android.text.method.MultiTapKeyListener
    8 +android.media.AudioManager
    8 +android.view.ViewTreeObserver
    8 +java.lang.reflect.Proxy
    8 +android.content.pm.PackageInfo
    7 +android.text.Spanned
    7 +android.text.method.DigitsKeyListener
    7 +android.hardware.Camera
    7 +android.R.attr
    7 +android.telephony.TelephonyManager
    7 +android.media.SoundPool
    7 +android.os.Environment
    6 +android.view.KeyEvent
    6 +java.lang.String
    6 +android.graphics.drawable.shapes.Shape
    6 +android.text.method.MovementMethod
    6 +android.view.OrientationListener
    6 +dalvik.system.DexFile
    6 +java.util.Date
    6 +android.text.TextUtils
    6 +android.os.ParcelFileDescriptor
    5 +android.webkit.WebView
    5 +android.graphics.drawable.RotateDrawable
    5 +android.graphics.drawable.ScaleDrawable
    5 +android.provider.MediaStore.Audio.AlbumColumns
    5 +android.provider.MediaStore.Audio.Media
    5 +android.webkit.WebSettings
    5 +android.content.res.Resources
    5 +android.graphics.RectF
    5 +android.os.Looper
    5 +android.provider.Contacts.PeopleColumns
    5 +android.text.method.ArrowKeyMovementMethod
    5 +android.text.method.TextKeyListener
    5 +android.view.ViewDebug
    5 +android.widget.Scroller
    5 +android.widget.AbsListView
    5 +android.net.ConnectivityManager
    5 +android.view.KeyCharacterMap
    4 +android.content.res.Configuration
    4 +android.widget.ProgressBar
    4 +android.widget.SimpleCursorAdapter
    4 +android.R.string
    4 +java.lang.Class
    4 +java.util.jar.Pack200.Packer
    4 +android.provider.MediaStore.Images.Media
    3 +android.os.Build
    3 +android.os.IBinder
    3 +android.text.method.ScrollingMovementMethod
    3 +android.util.SparseIntArray
    3 +android.content.Intent
    3 +android.content.ContentResolver
    3 +android.net.wifi.WifiManager
    3 +android.content.BroadcastReceiver
    3 +android.os.Handler
    3 +android.view.Menu
    3 +android.view.animation.Animation
    3 +android.view.animation.Transformation
    2 +android.webkit.URLUtil
    2 +java.util.logging.Level
    2 +android.R.style
    2 +android.os.Binder
    2 +android.view.ViewParent
    2 +android.widget.GridView
    2 +android.test.mock.MockPackageManager
    2 +android.view.View
    2 +android.widget.ListView
    2 +android.app.PendingIntent
    2 +android.content.pm.PackageManager
    2 +android.telephony.PhoneNumberUtils
    2 +android.content.ContentProvider
    2 +android.Manifest.permission
    2 +android.widget.ArrayAdapter
    2 +android.content.pm.ActivityInfo
    2 +dalvik.system.VMDebug
    1 +android.database.sqlite.SQLiteDatabase
    1 +android.content.res.TypedArray
    1 +android.app.Activity
    1 +android.preference.DialogPreference
    1 +android.view.Window
    1 +android.graphics.Bitmap
    1 +android.os.Debug
    1 +android.provider.Browser
    1 +android.os.Parcel
    1 +android.database.DatabaseUtils
    1 +android.media.RingtoneManager
    1 +android.graphics.Rect
    1 +android.telephony.gsm.SmsMessage
    1 +android.database.Cursor
    1 +android.database.CursorWrapper
    1 +android.view.MotionEvent
    1 +android.location.Location
    1 +android.graphics.drawable.Drawable
    <1 +android.R.drawable
    <1 +android.app.Instrumentation
    <1 +android.graphics.Canvas
    <1 +android.content.Context
    <1 +android.view.ViewGroup
    <1 +java.lang.Character.UnicodeBlock
    <1 +android.text.style.UpdateLayout
    +
    + +

    Total of Differences, by Number and Type

    +

    +The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were removed, added or changed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class. +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Number of Differences
      + RemovalsAdditionsChangesTotal
    Packages063945
    Classes and Interfaces067186253
    Constructors1361552
    Methods038171452
    Fields129668365
    Total27863791167
    +
    + +
    +
    + + + diff --git a/docs/html/sdk/api_diff/3/changes/jdiff_topleftframe.html b/docs/html/sdk/api_diff/3/changes/jdiff_topleftframe.html new file mode 100644 index 0000000000000..666c9dd3ca8dc --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/jdiff_topleftframe.html @@ -0,0 +1,64 @@ + + + + + + + + + +Android API Version Differences + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Select a Diffs Index:
    All Differences
    By Package
    By Class
    By Constructor
    By Method
    By Field
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/methods_index_additions.html b/docs/html/sdk/api_diff/3/changes/methods_index_additions.html new file mode 100644 index 0000000000000..1fa2bdb6c7062 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/methods_index_additions.html @@ -0,0 +1,1397 @@ + + + + + + + + + +Method Additions Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Methods +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +addGpsStatusListener +(Listener)
    +addOnScrollChangedListener +(OnScrollChangedListener)
    +addPropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    +addTestProvider +(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)
    +adjustMetaAfterKeypress +(long)
    +applyDisplay +(int, Rect, Rect)
    + +
    B  +A +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +beginBatchEdit +()
    +bringPointIntoView +(int)
    + +
    C  +A +B +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +calculateLength +(CharSequence, boolean)
    +callActivityOnUserLeaving +(Activity)
    +changeAction +(KeyEvent, int)
    +changeCursorAndColumns +(Cursor, String[], int[])
    +changeFlags +(KeyEvent, int)
    +changeTimeRepeat +(KeyEvent, long, int)
    +checkInputConnectionProxy +(View)
    +clearComposingText +()
    +clearListSelection +()
    +clearMatches +()
    +clearMetaKeyState
    +  type  +(View, Editable, int) in android.text.method.KeyListener +
    +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    +  type  +(View, Editable, int) in android.text.method.MetaKeyKeyListener +
    +  type  +(Editable, int) in android.text.method.MetaKeyKeyListener +
    +clearTestProviderEnabled +(String)
    +clearTestProviderLocation +(String)
    +clearTestProviderStatus +(String)
    +close +()
    +closeContextMenu +()
    +computeDurationHint +()
    +copyPixelsFromBuffer +(Buffer)
    +createInputStream +()
    +createOutputStream +()
    +createWifiLock +(int, String)
    + +
    D  +A +B +C +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +describeContents
    +  type  +() in android.content.res.AssetFileDescriptor +
    +  type  +() in android.graphics.RectF +
    +  type  +() in android.text.Annotation +
    +  type  +() in android.text.style.AbsoluteSizeSpan +
    +  type  +() in android.text.style.AlignmentSpan.Standard +
    +  type  +() in android.text.style.BackgroundColorSpan +
    +  type  +() in android.text.style.BulletSpan +
    +  type  +() in android.text.style.ForegroundColorSpan +
    +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    +  type  +() in android.text.style.QuoteSpan +
    +  type  +() in android.text.style.RelativeSizeSpan +
    +  type  +() in android.text.style.ScaleXSpan +
    +  type  +() in android.text.style.StrikethroughSpan +
    +  type  +() in android.text.style.StyleSpan +
    +  type  +() in android.text.style.SubscriptSpan +
    +  type  +() in android.text.style.SuperscriptSpan +
    +  type  +() in android.text.style.TextAppearanceSpan +
    +  type  +() in android.text.style.TypefaceSpan +
    +  type  +() in android.text.style.URLSpan +
    +  type  +() in android.text.style.UnderlineSpan +
    +deviceHasKey +(int)
    +deviceHasKeys +(int[])
    +didTouchFocusSelect +()
    +dispatchKeyEventPreIme +(KeyEvent)
    +drag +(InstrumentationTestCase, float, float, float, float, int)
    +dragQuarterScreenDown +(InstrumentationTestCase, Activity)
    +dragQuarterScreenUp +(InstrumentationTestCase, Activity)
    +dragViewBy +(InstrumentationTestCase, View, int, int, int)
    +dragViewTo +(InstrumentationTestCase, View, int, int, int)
    +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, Activity, View, int) in android.test.TouchUtils +
    +dragViewToTop
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, View, int) in android.test.TouchUtils +
    +dragViewToX +(InstrumentationTestCase, View, int, int)
    +dragViewToY +(InstrumentationTestCase, View, int, int)
    +drawBitmap +(int[], int, int, float, float, int, int, boolean, Paint)
    +dump
    +  type  +(Printer, String) in android.location.Location +
    +  type  +(FileDescriptor, String[]) in android.os.Binder +
    +  type  +(FileDescriptor, String[]) in android.os.IBinder +
    +dumpCapturedView +(String, Object)
    +dumpHprofData
    +  type  +(String) in android.os.Debug +
    +  type  +(String) in dalvik.system.VMDebug +
    +dumpSpans +(CharSequence, Printer, String)
    + +
    E  +A +B +C +D +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +endBatchEdit +()
    +extractText +(ExtractedTextRequest, ExtractedText)
    + +
    F  +A +B +C +D +E +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +findAll +(String)
    +findNext +(boolean)
    +forkAndSpecialize +(int, int, int[], int, int[][])
    +forkSystemServer +(int, int, int[], int, int[][])
    +formatJapaneseNumber +(Editable)
    + +
    G  +A +B +C +D +E +F +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +get +(Context)
    +getAllowFileAccess +()
    +getBackgroundDataSetting +()
    +getBoolean +(int)
    +getBuiltInZoomControls +()
    +getButton +(int)
    +getCapsMode +(CharSequence, int, int)
    +getCharacters +()
    +getDeclaredLength +()
    +getDefaultSensor +(int)
    +getDeviceConfigurationInfo +()
    +getDialog +()
    +getDoubleTapTimeout +()
    +getDrawable
    +  type  +() in android.graphics.drawable.RotateDrawable +
    +  type  +() in android.graphics.drawable.ScaleDrawable +
    +getDropDownAnchor +()
    +getDropDownWidth +()
    +getEditableText +()
    +getFraction +(int, int, int)
    +getGpsStatus +(GpsStatus)
    +getImeActionId +()
    +getImeActionLabel +()
    +getImeOptions +()
    +getInclination +(float[])
    +getInitialScrollX +(TextView, Spannable)
    +getInitialScrollY +(TextView, Spannable)
    +getInputExtras +(boolean)
    +getInputMethodMode +()
    +getInputType
    +  type  +() in android.text.method.DateKeyListener +
    +  type  +() in android.text.method.DateTimeKeyListener +
    +  type  +() in android.text.method.DialerKeyListener +
    +  type  +() in android.text.method.DigitsKeyListener +
    +  type  +() in android.text.method.KeyListener +
    +  type  +() in android.text.method.MultiTapKeyListener +
    +  type  +() in android.text.method.QwertyKeyListener +
    +  type  +() in android.text.method.TextKeyListener +
    +  type  +() in android.text.method.TimeKeyListener +
    +  type  +() in android.widget.TextView +
    +getItem +(int)
    +getKeyProgressIncrement +()
    +getLaunchIntentForPackage
    +  type  +(String) in android.content.pm.PackageManager +
    +  type  +(String) in android.test.mock.MockPackageManager +
    +getLayoutDimension +(int, int)
    +getListSelection +()
    +getListView +()
    +getLoggingMXBean +()
    +getLong
    +  type  +(ContentResolver, String) in android.provider.Settings.System +
    +  type  +(ContentResolver, String, long) in android.provider.Settings.System +
    +getMaxAvailableHeight +(View, int)
    +getMaxKeyCode +()
    +getMetaState
    +  type  +(long) in android.text.method.MetaKeyKeyListener +
    +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    +getNeighboringCellInfo +()
    +getOnChronometerTickListener +()
    +getOnItemClickListener +()
    +getOnItemSelectedListener +()
    +getOrientation +(float[], float[])
    +getOriginalUrl
    +  type  +() in android.webkit.WebHistoryItem +
    +  type  +() in android.webkit.WebView +
    +getPluginData
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptHandler +
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptRegistry +
    +getPrivateImeOptions +()
    +getRotationMatrix +(float[], float[], float[], float[])
    +getRunningAppProcesses +()
    +getScaledDoubleTapSlop +()
    +getScaledEdgeSlop +()
    +getScaledFadingEdgeLength +()
    +getScaledMaximumDrawingCacheSize +()
    +getScaledMinimumFlingVelocity +()
    +getScaledScrollBarSize +()
    +getScaledTouchSlop +()
    +getScaledWindowTouchSlop +()
    +getSensorList +(int)
    +getSize +(View)
    +getSpanTypeId
    +  type  +() in android.text.Annotation +
    +  type  +() in android.text.style.AbsoluteSizeSpan +
    +  type  +() in android.text.style.AlignmentSpan.Standard +
    +  type  +() in android.text.style.BackgroundColorSpan +
    +  type  +() in android.text.style.BulletSpan +
    +  type  +() in android.text.style.ForegroundColorSpan +
    +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    +  type  +() in android.text.style.QuoteSpan +
    +  type  +() in android.text.style.RelativeSizeSpan +
    +  type  +() in android.text.style.ScaleXSpan +
    +  type  +() in android.text.style.StrikethroughSpan +
    +  type  +() in android.text.style.StyleSpan +
    +  type  +() in android.text.style.SubscriptSpan +
    +  type  +() in android.text.style.SuperscriptSpan +
    +  type  +() in android.text.style.TextAppearanceSpan +
    +  type  +() in android.text.style.TypefaceSpan +
    +  type  +() in android.text.style.URLSpan +
    +  type  +() in android.text.style.UnderlineSpan +
    +getStartX +()
    +getStartY +()
    +getStatSize +()
    +getSubtype +()
    +getSubtypeName +()
    +getSystemSharedLibraryNames
    +  type  +() in android.content.pm.PackageManager +
    +  type  +() in android.test.mock.MockPackageManager +
    +getTextFilter +()
    +getThread +()
    +getTimeZoneDatabaseVersion +()
    +getUserAgentString +()
    +getVerticalAlignment +()
    +getWindowVisibleDisplayFrame +(Rect)
    + +
    H  +A +B +C +D +E +F +G +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +handleKeyDown +(long, int, KeyEvent)
    +handleKeyUp +(long, int, KeyEvent)
    +hasSoftInputMode +()
    +hasWindowFocus +()
    + +
    I  +A +B +C +D +E +F +G +H +L +M +O +P +R +S +T +U +W +Y + TOP +

    +inferStreamType +()
    +intentForPosition +(int)
    +isAboveAnchor +()
    +isBluetoothA2dpOn +()
    +isClippingEnabled +()
    +isDebuggingEnabled +()
    +isFastScrollEnabled +()
    +isFillEnabled +()
    +isHapticFeedbackEnabled +()
    +isInEditMode +()
    +isInputMethodTarget +()
    +isLooping +()
    +isOutsideTouchable +()
    +isPerformingCompletion +()
    +isRoaming +()
    +isSafeMode
    +  type  +() in android.content.pm.PackageManager +
    +  type  +() in android.test.mock.MockPackageManager +
    +isSelectingMetaTracker +(CharSequence, Object)
    +isSmoothScrollbarEnabled +()
    +isTouchable +()
    + +
    L  +A +B +C +D +E +F +G +H +I +M +O +P +R +S +T +U +W +Y + TOP +

    +launchActivityWithIntent +(String, Class<T>, Intent)
    +load
    +  type  +(AssetFileDescriptor, int) in android.media.SoundPool +
    +  type  +(FileDescriptor, long, long, int) in android.media.SoundPool +
    +loadDex +(String, String, int)
    +longClickView +(InstrumentationTestCase, View)
    + +
    M  +A +B +C +D +E +F +G +H +I +L +O +P +R +S +T +U +W +Y + TOP +

    +makeListItems +()
    +mayUseInputMethod +(int)
    +moveCursorToVisibleOffset +()
    +mutate +()
    + +
    O  +A +B +C +D +E +F +G +H +I +L +M +P +R +S +T +U +W +Y + TOP +

    +onBeginBatchEdit +()
    +onCheckIsTextEditor +()
    +onCommitCompletion +(CompletionInfo)
    +onContentChanged +()
    +onCreateInputConnection +(EditorInfo)
    +onDoubleTap +(MotionEvent)
    +onDoubleTapEvent +(MotionEvent)
    +onEditorAction +(int)
    +onEndBatchEdit +()
    +onFinishTemporaryDetach +()
    +onKeyOther
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ArrowKeyMovementMethod +
    +  type  +(View, Editable, KeyEvent) in android.text.method.BaseKeyListener +
    +  type  +(View, Editable, KeyEvent) in android.text.method.KeyListener +
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.MovementMethod +
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ScrollingMovementMethod +
    +onKeyPreIme +(int, KeyEvent)
    +onPrivateIMECommand +(String, Bundle)
    +onSelectionChanged +(int, int)
    +onSingleTapConfirmed +(MotionEvent)
    +onStartTemporaryDetach +()
    +onTextContextMenuItem +(int)
    +onUserInteraction +()
    +onUserLeaveHint +()
    +openAssetFile +(Uri, String)
    +openAssetFileDescriptor +(Uri, String)
    +openOutputStream +(Uri, String)
    +openRawResource +(int, TypedValue)
    + +
    P  +A +B +C +D +E +F +G +H +I +L +M +O +R +S +T +U +W +Y + TOP +

    +parseBundleExtra +(String, AttributeSet, Bundle)
    +parseBundleExtras +(XmlResourceParser, Bundle)
    +peekService +(Context, Intent)
    +performHapticFeedback
    +  type  +(int) in android.view.View +
    +  type  +(int, int) in android.view.View +
    +playSoundEffect +(int, float)
    +putLong +(ContentResolver, String, long)
    + +
    R  +A +B +C +D +E +F +G +H +I +L +M +O +P +S +T +U +W +Y + TOP +

    +readFromParcel +(Parcel)
    +registerListener
    +  type  +(SensorEventListener, Sensor, int) in android.hardware.SensorManager +
    +  type  +(SensorEventListener, Sensor, int, Handler) in android.hardware.SensorManager +
    +remapCoordinateSystem +(float[], int, int, float[])
    +removeAt +(int)
    +removeGpsStatusListener +(Listener)
    +removeOnScrollChangedListener +(OnScrollChangedListener)
    +removePropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    +removeTestProvider +(String)
    +removeUpdates +(PendingIntent)
    +replaceExtras
    +  type  +(Intent) in android.content.Intent +
    +  type  +(Bundle) in android.content.Intent +
    +requestChildRectangleOnScreen +(View, Rect, boolean)
    +requestLocationUpdates +(String, long, float, PendingIntent)
    +resetLockedMeta +(long)
    +restartPackage +(String)
    +restorePicture +(Bundle, File)
    +runTestOnUiThread +(Runnable)
    + +
    S  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +T +U +W +Y + TOP +

    +savePicture +(Bundle, File)
    +scrollToBottom +(InstrumentationTestCase, Activity, ViewGroup)
    +scrollToTop +(InstrumentationTestCase, Activity, ViewGroup)
    +sendExtraCommand +(String, String, Bundle)
    +setAllowFileAccess +(boolean)
    +setBitmap +(int, String, Bitmap)
    +setBluetoothA2dpOn +(boolean)
    +setBoolean +(int, String, boolean)
    +setBuiltInZoomControls +(boolean)
    +setButton
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +setByte +(int, String, byte)
    +setCamera +(Camera)
    +setChar +(int, String, char)
    +setCharSequence +(int, String, CharSequence)
    +setClippingEnabled +(boolean)
    +setCompoundDrawablesWithIntrinsicBounds +(int, int, int, int)
    +setDouble +(int, String, double)
    +setDropDownAnchor +(int)
    +setDropDownWidth +(int)
    +setExtractedText +(ExtractedText)
    +setFastScrollEnabled +(boolean)
    +setFillEnabled +(boolean)
    +setFloat +(int, String, float)
    +setFooterDividersEnabled +(boolean)
    +setHapticFeedbackEnabled +(boolean)
    +setHeaderDividersEnabled +(boolean)
    +setImageViewBitmap +(int, Bitmap)
    +setImeActionLabel +(CharSequence, int)
    +setImeOptions +(int)
    +setInexactRepeating +(int, long, long, PendingIntent)
    +setInputExtras +(int)
    +setInputMethodMode +(int)
    +setInputType +(int)
    +setInt +(int, String, int)
    +setKeyProgressIncrement +(int)
    +setListSelection +(int)
    +setLong +(int, String, long)
    +setMaxDuration +(int)
    +setMaxFileSize +(long)
    +setNetworkAvailable +(boolean)
    +setOnChronometerTickListener +(OnChronometerTickListener)
    +setOnClickPendingIntent +(int, PendingIntent)
    +setOnDoubleTapListener +(OnDoubleTapListener)
    +setOnEditorActionListener +(OnEditorActionListener)
    +setOnErrorListener +(OnErrorListener)
    +setOneShotPreviewCallback +(PreviewCallback)
    +setOnInfoListener
    +  type  +(OnInfoListener) in android.media.MediaPlayer +
    +  type  +(OnInfoListener) in android.media.MediaRecorder +
    +setOnVideoSizeChangedListener +(OnVideoSizeChangedListener)
    +setOutputFile +(FileDescriptor)
    +setOutsideTouchable +(boolean)
    +setPrivateImeOptions +(String)
    +setRawInputType +(int)
    +setScrollContainer +(boolean)
    +setShort +(int, String, short)
    +setSmoothScrollbarEnabled +(boolean)
    +setSoftInputMode +(int)
    +setStaticTransformationsEnabled +(boolean)
    +setString +(int, String, String)
    +setTestProviderEnabled +(String, boolean)
    +setTestProviderLocation +(String, Location)
    +setTestProviderStatus +(String, int, Bundle, long)
    +setTextColor +(int, int)
    +setTouchable +(boolean)
    +setTouchInterceptor +(OnTouchListener)
    +setUri +(int, String, Uri)
    +setUserAgentString +(String)
    +setVideoEncoder +(int)
    +setVideoFrameRate +(int)
    +setVideoSize +(int, int)
    +setVideoSource +(int)
    +setView +(View, int, int, int, int)
    +setViewResource +(int)
    +setVisible +(boolean)
    +setWindowAnimations +(int)
    +setWindowLayoutMode +(int, int)
    +sort +(Comparator<? super T>)
    + +
    T  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +U +W +Y + TOP +

    +toShortString
    +  type  +() in android.graphics.Rect +
    +  type  +() in android.view.animation.Transformation +
    + +
    U  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +W +Y + TOP +

    +unregisterListener
    +  type  +(SensorEventListener) in android.hardware.SensorManager +
    +  type  +(SensorEventListener, Sensor) in android.hardware.SensorManager +
    +update
    +  type  +() in android.widget.PopupWindow +
    +  type  +(int, int, int, int, boolean) in android.widget.PopupWindow +
    + +
    W  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +Y + TOP +

    +writeToParcel
    +  type  +(Parcel, int) in android.content.res.AssetFileDescriptor +
    +  type  +(Parcel, int) in android.graphics.RectF +
    +  type  +(Parcel, int) in android.text.Annotation +
    +  type  +(Parcel, int) in android.text.style.AbsoluteSizeSpan +
    +  type  +(Parcel, int) in android.text.style.AlignmentSpan.Standard +
    +  type  +(Parcel, int) in android.text.style.BackgroundColorSpan +
    +  type  +(Parcel, int) in android.text.style.BulletSpan +
    +  type  +(Parcel, int) in android.text.style.ForegroundColorSpan +
    +  type  +(Parcel, int) in android.text.style.LeadingMarginSpan.Standard +
    +  type  +(Parcel, int) in android.text.style.QuoteSpan +
    +  type  +(Parcel, int) in android.text.style.RelativeSizeSpan +
    +  type  +(Parcel, int) in android.text.style.ScaleXSpan +
    +  type  +(Parcel, int) in android.text.style.StrikethroughSpan +
    +  type  +(Parcel, int) in android.text.style.StyleSpan +
    +  type  +(Parcel, int) in android.text.style.SubscriptSpan +
    +  type  +(Parcel, int) in android.text.style.SuperscriptSpan +
    +  type  +(Parcel, int) in android.text.style.TextAppearanceSpan +
    +  type  +(Parcel, int) in android.text.style.TypefaceSpan +
    +  type  +(Parcel, int) in android.text.style.URLSpan +
    +  type  +(Parcel, int) in android.text.style.UnderlineSpan +
    + +
    Y  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W + TOP +

    +yieldIfContendedSafely +()
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/methods_index_all.html b/docs/html/sdk/api_diff/3/changes/methods_index_all.html new file mode 100644 index 0000000000000..22492a352290e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/methods_index_all.html @@ -0,0 +1,1600 @@ + + + + + + + + + +Method Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +Methods +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +addGpsStatusListener +(Listener)
    +addOnScrollChangedListener +(OnScrollChangedListener)
    +addPropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    +addRequirements +(Predicate<TestMethod>)
    +addTestProvider +(String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)
    +adjustMetaAfterKeypress +(long)
    +appendEscapedSQLString +(StringBuilder, String)
    +applyDisplay +(int, Rect, Rect)
    + +
    B  +A +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +beginBatchEdit +()
    +bringPointIntoView +(int)
    + +
    C  +A +B +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +calculateLength +(CharSequence, boolean)
    +callActivityOnUserLeaving +(Activity)
    +changeAction +(KeyEvent, int)
    +changeCursorAndColumns +(Cursor, String[], int[])
    +changeDebugPort +(int)
    +changeFlags +(KeyEvent, int)
    +changeTimeRepeat +(KeyEvent, long, int)
    +checkInputConnectionProxy +(View)
    +clearComposingText +()
    +clearListSelection +()
    +clearMatches +()
    +clearMetaKeyState
    +  type  +(View, Editable, int) in android.text.method.KeyListener +
    +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    +  type  +(View, Editable, int) in android.text.method.MetaKeyKeyListener +
    +  type  +(Editable, int) in android.text.method.MetaKeyKeyListener +
    +clearTestProviderEnabled +(String)
    +clearTestProviderLocation +(String)
    +clearTestProviderStatus +(String)
    +clone +()
    +close +()
    +closeContextMenu +()
    +computeDurationHint +()
    +copyPixelsFromBuffer +(Buffer)
    +createInputStream +()
    +createOutputStream +()
    +createWifiLock +(int, String)
    + +
    D  +A +B +C +E +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +describeContents
    +  type  +() in android.content.res.AssetFileDescriptor +
    +  type  +() in android.graphics.RectF +
    +  type  +() in android.text.Annotation +
    +  type  +() in android.text.style.AbsoluteSizeSpan +
    +  type  +() in android.text.style.AlignmentSpan.Standard +
    +  type  +() in android.text.style.BackgroundColorSpan +
    +  type  +() in android.text.style.BulletSpan +
    +  type  +() in android.text.style.ForegroundColorSpan +
    +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    +  type  +() in android.text.style.QuoteSpan +
    +  type  +() in android.text.style.RelativeSizeSpan +
    +  type  +() in android.text.style.ScaleXSpan +
    +  type  +() in android.text.style.StrikethroughSpan +
    +  type  +() in android.text.style.StyleSpan +
    +  type  +() in android.text.style.SubscriptSpan +
    +  type  +() in android.text.style.SuperscriptSpan +
    +  type  +() in android.text.style.TextAppearanceSpan +
    +  type  +() in android.text.style.TypefaceSpan +
    +  type  +() in android.text.style.URLSpan +
    +  type  +() in android.text.style.UnderlineSpan +
    +deviceHasKey +(int)
    +deviceHasKeys +(int[])
    +didTouchFocusSelect +()
    +dispatchKeyEventPreIme +(KeyEvent)
    +drag
    +  type  +(InstrumentationTestCase, float, float, float, float, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, float, float, float, float, int) in android.test.TouchUtils +
    +dragQuarterScreenDown
    +  type  +(InstrumentationTestCase, Activity) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase) in android.test.TouchUtils +
    +dragQuarterScreenUp
    +  type  +(InstrumentationTestCase, Activity) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase) in android.test.TouchUtils +
    +dragViewBy
    +  type  +(InstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    +dragViewTo
    +  type  +(InstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int, int, int) in android.test.TouchUtils +
    +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, Activity, View, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, Activity, View) in android.test.TouchUtils +
    +dragViewToTop
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, View, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    +dragViewToX
    +  type  +(InstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    +dragViewToY
    +  type  +(InstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int, int) in android.test.TouchUtils +
    +drawBitmap +(int[], int, int, float, float, int, int, boolean, Paint)
    +dump
    +  type  +(Printer, String) in android.location.Location +
    +  type  +(FileDescriptor, String[]) in android.os.Binder +
    +  type  +(FileDescriptor, String[]) in android.os.IBinder +
    +dumpCapturedView +(String, Object)
    +dumpHprofData
    +  type  +(String) in android.os.Debug +
    +  type  +(String) in dalvik.system.VMDebug +
    +dumpSpans +(CharSequence, Printer, String)
    + +
    E  +A +B +C +D +F +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +endBatchEdit +()
    +extractText +(ExtractedTextRequest, ExtractedText)
    + +
    F  +A +B +C +D +E +G +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +findAll +(String)
    +findNext +(boolean)
    +forkAndSpecialize
    +  type  +(int, int, int[], int, int[][]) in dalvik.system.Zygote +
    +  type  +(int, int, int[], boolean, int[][]) in dalvik.system.Zygote +
    +forkSystemServer
    +  type  +(int, int, int[], int, int[][]) in dalvik.system.Zygote +
    +  type  +(int, int, int[], boolean, int[][]) in dalvik.system.Zygote +
    +formatJapaneseNumber +(Editable)
    +forName +(String)
    + +
    G  +A +B +C +D +E +F +H +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +get +(Context)
    +getAllowFileAccess +()
    +getBackgroundDataSetting +()
    +getBoolean +(int)
    +getBuiltInZoomControls +()
    +getButton +(int)
    +getCapsMode +(CharSequence, int, int)
    +getCharacters +()
    +getClasses +()
    +getColumnIndex
    +  type  +(String) in android.database.Cursor +
    +  type  +(String) in android.database.CursorWrapper +
    +getConstructors +()
    +getCount +()
    +getDeclaredClasses +()
    +getDeclaredConstructors +()
    +getDeclaredLength +()
    +getDefaultSensor +(int)
    +getDeviceConfigurationInfo +()
    +getDialog +()
    +getDoubleTapTimeout +()
    +getDrawable
    +  type  +() in android.graphics.drawable.RotateDrawable +
    +  type  +() in android.graphics.drawable.ScaleDrawable +
    +getDropDownAnchor +()
    +getDropDownWidth +()
    +getEdgeSlop +()
    +getEditableText +()
    +getFadingEdgeLength +()
    +getFraction +(int, int, int)
    +getGpsStatus +(GpsStatus)
    +getHandler +()
    +getImeActionId +()
    +getImeActionLabel +()
    +getImeOptions +()
    +getInclination +(float[])
    +getInitialScrollX +(TextView, Spannable)
    +getInitialScrollY +(TextView, Spannable)
    +getInputExtras +(boolean)
    +getInputMethodMode +()
    +getInputType
    +  type  +() in android.text.method.DateKeyListener +
    +  type  +() in android.text.method.DateTimeKeyListener +
    +  type  +() in android.text.method.DialerKeyListener +
    +  type  +() in android.text.method.DigitsKeyListener +
    +  type  +() in android.text.method.KeyListener +
    +  type  +() in android.text.method.MultiTapKeyListener +
    +  type  +() in android.text.method.QwertyKeyListener +
    +  type  +() in android.text.method.TextKeyListener +
    +  type  +() in android.text.method.TimeKeyListener +
    +  type  +() in android.widget.TextView +
    +getInterfaces +()
    +getItem
    +  type  +(int) in android.view.Menu +
    +  type  +(int) in android.widget.CursorAdapter +
    +getItemClickListener +()
    +getItemId +(int)
    +getItemSelectedListener +()
    +getKeyProgressIncrement +()
    +getLaunchIntentForPackage
    +  type  +(String) in android.content.pm.PackageManager +
    +  type  +(String) in android.test.mock.MockPackageManager +
    +getLayoutDimension +(int, int)
    +getListSelection +()
    +getListView +()
    +getLoggingMXBean +()
    +getLong
    +  type  +(ContentResolver, String) in android.provider.Settings.System +
    +  type  +(ContentResolver, String, long) in android.provider.Settings.System +
    +getMaxAvailableHeight +(View, int)
    +getMaximumDrawingCacheSize +()
    +getMaxKeyCode +()
    +getMetaState
    +  type  +(long) in android.text.method.MetaKeyKeyListener +
    +  type  +(long, int) in android.text.method.MetaKeyKeyListener +
    +getMinimumFlingVelocity +()
    +getNeighboringCellInfo +()
    +getOnChronometerTickListener +()
    +getOnItemClickListener +()
    +getOnItemSelectedListener +()
    +getOrientation +(float[], float[])
    +getOriginalUrl
    +  type  +() in android.webkit.WebHistoryItem +
    +  type  +() in android.webkit.WebView +
    +getPluginData
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptHandler +
    +  type  +(String, Map<String, String>) in android.webkit.UrlInterceptRegistry +
    +getPrivateImeOptions +()
    +getProxyClass +(ClassLoader, Class<?>)
    +getRotationMatrix +(float[], float[], float[], float[])
    +getRunningAppProcesses +()
    +getScaledDoubleTapSlop +()
    +getScaledEdgeSlop +()
    +getScaledFadingEdgeLength +()
    +getScaledMaximumDrawingCacheSize +()
    +getScaledMinimumFlingVelocity +()
    +getScaledScrollBarSize +()
    +getScaledTouchSlop +()
    +getScaledWindowTouchSlop +()
    +getScrollBarSize +()
    +getSensorList +(int)
    +getSensors +()
    +getSize +(View)
    +getSpanTypeId
    +  type  +() in android.text.Annotation +
    +  type  +() in android.text.style.AbsoluteSizeSpan +
    +  type  +() in android.text.style.AlignmentSpan.Standard +
    +  type  +() in android.text.style.BackgroundColorSpan +
    +  type  +() in android.text.style.BulletSpan +
    +  type  +() in android.text.style.ForegroundColorSpan +
    +  type  +() in android.text.style.LeadingMarginSpan.Standard +
    +  type  +() in android.text.style.QuoteSpan +
    +  type  +() in android.text.style.RelativeSizeSpan +
    +  type  +() in android.text.style.ScaleXSpan +
    +  type  +() in android.text.style.StrikethroughSpan +
    +  type  +() in android.text.style.StyleSpan +
    +  type  +() in android.text.style.SubscriptSpan +
    +  type  +() in android.text.style.SuperscriptSpan +
    +  type  +() in android.text.style.TextAppearanceSpan +
    +  type  +() in android.text.style.TypefaceSpan +
    +  type  +() in android.text.style.URLSpan +
    +  type  +() in android.text.style.UnderlineSpan +
    +getStartX +()
    +getStartY +()
    +getStatSize +()
    +getSubtype +()
    +getSubtypeName +()
    +getSurrogate +(String, Map<String, String>)
    +getSystemSharedLibraryNames
    +  type  +() in android.content.pm.PackageManager +
    +  type  +() in android.test.mock.MockPackageManager +
    +getTargetIntent +()
    +getTextFilter +()
    +getThread +()
    +getTimeZoneDatabaseVersion +()
    +getTouchSlop +()
    +getUserAgent +()
    +getUserAgentString +()
    +getVerticalAlignment +()
    +getWindowTouchSlop +()
    +getWindowVisibleDisplayFrame +(Rect)
    +getZoomControls +()
    + +
    H  +A +B +C +D +E +F +G +I +L +M +O +P +R +S +T +U +W +Y + TOP +

    +handleKeyDown +(long, int, KeyEvent)
    +handleKeyUp +(long, int, KeyEvent)
    +hasSoftInputMode +()
    +hasWindowFocus +()
    + +
    I  +A +B +C +D +E +F +G +H +L +M +O +P +R +S +T +U +W +Y + TOP +

    +inferStreamType +()
    +intentForPosition +(int)
    +isAboveAnchor +()
    +isBluetoothA2dpOn +()
    +isClippingEnabled +()
    +isCookielessProxyUrl +(String)
    +isDebuggingEnabled +()
    +isFastScrollEnabled +()
    +isFillEnabled +()
    +isHapticFeedbackEnabled +()
    +isInEditMode +()
    +isInputMethodTarget +()
    +isLooping +()
    +isOutsideTouchable +()
    +isPerformingCompletion +()
    +isRoaming +()
    +isSafeMode
    +  type  +() in android.content.pm.PackageManager +
    +  type  +() in android.test.mock.MockPackageManager +
    +isSelectingMetaTracker +(CharSequence, Object)
    +isSmoothScrollbarEnabled +()
    +isTouchable +()
    + +
    L  +A +B +C +D +E +F +G +H +I +M +O +P +R +S +T +U +W +Y + TOP +

    +launchActivityWithIntent +(String, Class<T>, Intent)
    +load
    +  type  +(AssetFileDescriptor, int) in android.media.SoundPool +
    +  type  +(FileDescriptor, long, long, int) in android.media.SoundPool +
    +loadDex +(String, String, int)
    +longClickView
    +  type  +(InstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    + +
    M  +A +B +C +D +E +F +G +H +I +L +O +P +R +S +T +U +W +Y + TOP +

    +makeListItems +()
    +mayUseInputMethod +(int)
    +moveCursorToVisibleOffset +()
    +mutate +()
    + +
    O  +A +B +C +D +E +F +G +H +I +L +M +P +R +S +T +U +W +Y + TOP +

    +onBeginBatchEdit +()
    +onCheckIsTextEditor +()
    +onCommitCompletion +(CompletionInfo)
    +onContentChanged +()
    +onCreateInputConnection +(EditorInfo)
    +onDoubleTap +(MotionEvent)
    +onDoubleTapEvent +(MotionEvent)
    +onEditorAction +(int)
    +onEndBatchEdit +()
    +onFinishTemporaryDetach +()
    +onGlobalFocusChanged +(View, View)
    +onKeyOther
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ArrowKeyMovementMethod +
    +  type  +(View, Editable, KeyEvent) in android.text.method.BaseKeyListener +
    +  type  +(View, Editable, KeyEvent) in android.text.method.KeyListener +
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.MovementMethod +
    +  type  +(TextView, Spannable, KeyEvent) in android.text.method.ScrollingMovementMethod +
    +onKeyPreIme +(int, KeyEvent)
    +onPrivateIMECommand +(String, Bundle)
    +onRestoreInstanceState +(Parcelable)
    +onSaveInstanceState +()
    +onSelectionChanged +(int, int)
    +onSingleTapConfirmed +(MotionEvent)
    +onStartTemporaryDetach +()
    +onTextContextMenuItem +(int)
    +onUserInteraction +()
    +onUserLeaveHint +()
    +openAssetFile +(Uri, String)
    +openAssetFileDescriptor +(Uri, String)
    +openOutputStream +(Uri, String)
    +openRawResource +(int, TypedValue)
    + +
    P  +A +B +C +D +E +F +G +H +I +L +M +O +R +S +T +U +W +Y + TOP +

    +parse +(String)
    +parseBundleExtra +(String, AttributeSet, Bundle)
    +parseBundleExtras +(XmlResourceParser, Bundle)
    +peekService +(Context, Intent)
    +performHapticFeedback
    +  type  +(int) in android.view.View +
    +  type  +(int, int) in android.view.View +
    +playSoundEffect
    +  type  +(int, float) in android.media.AudioManager +
    +  type  +(int) in android.view.View +
    +prepare +()
    +putLong +(ContentResolver, String, long)
    + +
    R  +A +B +C +D +E +F +G +H +I +L +M +O +P +S +T +U +W +Y + TOP +

    +readFromParcel +(Parcel)
    +readHashMap +(ClassLoader)
    +readMap +(Map, ClassLoader)
    +registerListener
    +  type  +(SensorEventListener, Sensor, int) in android.hardware.SensorManager +
    +  type  +(SensorEventListener, Sensor, int, Handler) in android.hardware.SensorManager +
    +  type  +(SensorListener, int) in android.hardware.SensorManager +
    +  type  +(SensorListener, int, int) in android.hardware.SensorManager +
    +remapCoordinateSystem +(float[], int, int, float[])
    +removeAt +(int)
    +removeGpsStatusListener +(Listener)
    +removeOnScrollChangedListener +(OnScrollChangedListener)
    +removePropertyChangeListener
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Packer +
    +  type  +(PropertyChangeListener) in java.util.jar.Pack200.Unpacker +
    +  type  +(PropertyChangeListener) in java.util.logging.LogManager +
    +removeTestProvider +(String)
    +removeUpdates +(PendingIntent)
    +replaceExtras
    +  type  +(Intent) in android.content.Intent +
    +  type  +(Bundle) in android.content.Intent +
    +requestChildRectangleOnScreen +(View, Rect, boolean)
    +requestLocationUpdates +(String, long, float, PendingIntent)
    +resetLockedMeta +(long)
    +restartPackage +(String)
    +restorePicture +(Bundle, File)
    +runTestOnUiThread +(Runnable)
    + +
    S  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +T +U +W +Y + TOP +

    +savePicture +(Bundle, File)
    +scrollToBottom
    +  type  +(InstrumentationTestCase, Activity, ViewGroup) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, ViewGroup) in android.test.TouchUtils +
    +scrollToTop
    +  type  +(InstrumentationTestCase, Activity, ViewGroup) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, ViewGroup) in android.test.TouchUtils +
    +sendExtraCommand +(String, String, Bundle)
    +service +(String, Map<String, String>)
    +setAllowFileAccess +(boolean)
    +setBitmap +(int, String, Bitmap)
    +setBluetoothA2dpOn +(boolean)
    +setBoolean +(int, String, boolean)
    +setBuiltInZoomControls +(boolean)
    +setButton
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +  type  +(int, CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(int, CharSequence, Message) in android.app.AlertDialog +
    +setButton2
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +setButton3
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +setByte +(int, String, byte)
    +setCamera +(Camera)
    +setChar +(int, String, char)
    +setCharSequence +(int, String, CharSequence)
    +setClippingEnabled +(boolean)
    +setCompoundDrawablesWithIntrinsicBounds +(int, int, int, int)
    +setDouble +(int, String, double)
    +setDropDownAnchor +(int)
    +setDropDownWidth +(int)
    +setExtractedText +(ExtractedText)
    +setFastScrollEnabled +(boolean)
    +setFillEnabled +(boolean)
    +setFloat +(int, String, float)
    +setFooterDividersEnabled +(boolean)
    +setHapticFeedbackEnabled +(boolean)
    +setHeaderDividersEnabled +(boolean)
    +setImageViewBitmap +(int, Bitmap)
    +setImeActionLabel +(CharSequence, int)
    +setImeOptions +(int)
    +setInexactRepeating +(int, long, long, PendingIntent)
    +setInputExtras +(int)
    +setInputMethodMode +(int)
    +setInputType +(int)
    +setInt +(int, String, int)
    +setKeyProgressIncrement +(int)
    +setListSelection +(int)
    +setLong +(int, String, long)
    +setMaxDuration +(int)
    +setMaxFileSize +(long)
    +setNetworkAvailable +(boolean)
    +setOnChronometerTickListener +(OnChronometerTickListener)
    +setOnClickPendingIntent +(int, PendingIntent)
    +setOnDoubleTapListener +(OnDoubleTapListener)
    +setOnEditorActionListener +(OnEditorActionListener)
    +setOnErrorListener +(OnErrorListener)
    +setOneShotPreviewCallback +(PreviewCallback)
    +setOnInfoListener
    +  type  +(OnInfoListener) in android.media.MediaPlayer +
    +  type  +(OnInfoListener) in android.media.MediaRecorder +
    +setOnVideoSizeChangedListener +(OnVideoSizeChangedListener)
    +setOutputFile +(FileDescriptor)
    +setOutsideTouchable +(boolean)
    +setPreviewDisplay +(SurfaceHolder)
    +setPrivateImeOptions +(String)
    +setRawInputType +(int)
    +setScrollContainer +(boolean)
    +setShort +(int, String, short)
    +setSmoothScrollbarEnabled +(boolean)
    +setSoftInputMode +(int)
    +setStaticTransformationsEnabled +(boolean)
    +setString +(int, String, String)
    +setTestProviderEnabled +(String, boolean)
    +setTestProviderLocation +(String, Location)
    +setTestProviderStatus +(String, int, Bundle, long)
    +setTextColor +(int, int)
    +setTouchable +(boolean)
    +setTouchInterceptor +(OnTouchListener)
    +setUri +(int, String, Uri)
    +setUserAgent +(int)
    +setUserAgentString +(String)
    +setVideoEncoder +(int)
    +setVideoFrameRate +(int)
    +setVideoSize +(int, int)
    +setVideoSource +(int)
    +setView +(View, int, int, int, int)
    +setViewResource +(int)
    +setVisible +(boolean)
    +setWindowAnimations +(int)
    +setWindowLayoutMode +(int, int)
    +sort +(Comparator<? super T>)
    + +
    T  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +U +W +Y + TOP +

    +toShortString
    +  type  +() in android.graphics.Rect +
    +  type  +() in android.view.animation.Transformation +
    + +
    U  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +W +Y + TOP +

    +unregisterListener
    +  type  +(SensorEventListener) in android.hardware.SensorManager +
    +  type  +(SensorEventListener, Sensor) in android.hardware.SensorManager +
    +  type  +(SensorListener) in android.hardware.SensorManager +
    +  type  +(SensorListener, int) in android.hardware.SensorManager +
    +update
    +  type  +() in android.widget.PopupWindow +
    +  type  +(int, int, int, int, boolean) in android.widget.PopupWindow +
    + +
    W  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +Y + TOP +

    +writeMap +(Map)
    +writeToParcel
    +  type  +(Parcel, int) in android.content.res.AssetFileDescriptor +
    +  type  +(Parcel, int) in android.graphics.RectF +
    +  type  +(Parcel, int) in android.text.Annotation +
    +  type  +(Parcel, int) in android.text.style.AbsoluteSizeSpan +
    +  type  +(Parcel, int) in android.text.style.AlignmentSpan.Standard +
    +  type  +(Parcel, int) in android.text.style.BackgroundColorSpan +
    +  type  +(Parcel, int) in android.text.style.BulletSpan +
    +  type  +(Parcel, int) in android.text.style.ForegroundColorSpan +
    +  type  +(Parcel, int) in android.text.style.LeadingMarginSpan.Standard +
    +  type  +(Parcel, int) in android.text.style.QuoteSpan +
    +  type  +(Parcel, int) in android.text.style.RelativeSizeSpan +
    +  type  +(Parcel, int) in android.text.style.ScaleXSpan +
    +  type  +(Parcel, int) in android.text.style.StrikethroughSpan +
    +  type  +(Parcel, int) in android.text.style.StyleSpan +
    +  type  +(Parcel, int) in android.text.style.SubscriptSpan +
    +  type  +(Parcel, int) in android.text.style.SuperscriptSpan +
    +  type  +(Parcel, int) in android.text.style.TextAppearanceSpan +
    +  type  +(Parcel, int) in android.text.style.TypefaceSpan +
    +  type  +(Parcel, int) in android.text.style.URLSpan +
    +  type  +(Parcel, int) in android.text.style.UnderlineSpan +
    + +
    Y  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +U +W + TOP +

    +yieldIfContended +()
    +yieldIfContendedSafely +()
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/methods_index_changes.html b/docs/html/sdk/api_diff/3/changes/methods_index_changes.html new file mode 100644 index 0000000000000..1b1b305b9a44d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/methods_index_changes.html @@ -0,0 +1,466 @@ + + + + + + + + + +Method Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Methods +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + +
    A  +C +D +F +G +I +L +O +P +R +S +U +W +Y + TOP +

    +addRequirements +(Predicate<TestMethod>)
    +appendEscapedSQLString +(StringBuilder, String)
    + +
    C  +A +D +F +G +I +L +O +P +R +S +U +W +Y + TOP +

    +changeDebugPort +(int)
    +clone +()
    + +
    D  +A +C +F +G +I +L +O +P +R +S +U +W +Y + TOP +

    +drag +(ActivityInstrumentationTestCase, float, float, float, float, int)
    +dragQuarterScreenDown +(ActivityInstrumentationTestCase)
    +dragQuarterScreenUp +(ActivityInstrumentationTestCase)
    +dragViewBy +(ActivityInstrumentationTestCase, View, int, int, int)
    +dragViewTo +(ActivityInstrumentationTestCase, View, int, int, int)
    +dragViewToBottom
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(InstrumentationTestCase, Activity, View) in android.test.TouchUtils +
    +dragViewToTop
    +  type  +(ActivityInstrumentationTestCase, View) in android.test.TouchUtils +
    +  type  +(ActivityInstrumentationTestCase, View, int) in android.test.TouchUtils +
    +dragViewToX +(ActivityInstrumentationTestCase, View, int, int)
    +dragViewToY +(ActivityInstrumentationTestCase, View, int, int)
    + +
    F  +A +C +D +G +I +L +O +P +R +S +U +W +Y + TOP +

    +forkAndSpecialize +(int, int, int[], boolean, int[][])
    +forkSystemServer +(int, int, int[], boolean, int[][])
    +forName +(String)
    + +
    G  +A +C +D +F +I +L +O +P +R +S +U +W +Y + TOP +

    +getClasses +()
    +getColumnIndex
    +  type  +(String) in android.database.Cursor +
    +  type  +(String) in android.database.CursorWrapper +
    +getConstructors +()
    +getCount +()
    +getDeclaredClasses +()
    +getDeclaredConstructors +()
    +getEdgeSlop +()
    +getFadingEdgeLength +()
    +getHandler +()
    +getInterfaces +()
    +getItem +(int)
    +getItemClickListener +()
    +getItemId +(int)
    +getItemSelectedListener +()
    +getMaximumDrawingCacheSize +()
    +getMinimumFlingVelocity +()
    +getProxyClass +(ClassLoader, Class<?>)
    +getScrollBarSize +()
    +getSensors +()
    +getSurrogate +(String, Map<String, String>)
    +getTargetIntent +()
    +getTouchSlop +()
    +getUserAgent +()
    +getWindowTouchSlop +()
    +getZoomControls +()
    + +
    I  +A +C +D +F +G +L +O +P +R +S +U +W +Y + TOP +

    +isCookielessProxyUrl +(String)
    + +
    L  +A +C +D +F +G +I +O +P +R +S +U +W +Y + TOP +

    +longClickView +(ActivityInstrumentationTestCase, View)
    + +
    O  +A +C +D +F +G +I +L +P +R +S +U +W +Y + TOP +

    +onGlobalFocusChanged +(View, View)
    +onRestoreInstanceState +(Parcelable)
    +onSaveInstanceState +()
    + +
    P  +A +C +D +F +G +I +L +O +R +S +U +W +Y + TOP +

    +parse +(String)
    +playSoundEffect +(int)
    +prepare +()
    + +
    R  +A +C +D +F +G +I +L +O +P +S +U +W +Y + TOP +

    +readHashMap +(ClassLoader)
    +readMap +(Map, ClassLoader)
    +registerListener
    +  type  +(SensorListener, int) in android.hardware.SensorManager +
    +  type  +(SensorListener, int, int) in android.hardware.SensorManager +
    + +
    S  +A +C +D +F +G +I +L +O +P +R +U +W +Y + TOP +

    +scrollToBottom +(ActivityInstrumentationTestCase, ViewGroup)
    +scrollToTop +(ActivityInstrumentationTestCase, ViewGroup)
    +service +(String, Map<String, String>)
    +setButton
    +  type  +(int, CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(int, CharSequence, Message) in android.app.AlertDialog +
    +setButton2
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +setButton3
    +  type  +(CharSequence, OnClickListener) in android.app.AlertDialog +
    +  type  +(CharSequence, Message) in android.app.AlertDialog +
    +setPreviewDisplay +(SurfaceHolder)
    +setUserAgent +(int)
    + +
    U  +A +C +D +F +G +I +L +O +P +R +S +W +Y + TOP +

    +unregisterListener
    +  type  +(SensorListener) in android.hardware.SensorManager +
    +  type  +(SensorListener, int) in android.hardware.SensorManager +
    + +
    W  +A +C +D +F +G +I +L +O +P +R +S +U +Y + TOP +

    +writeMap +(Map)
    + +
    Y  +A +C +D +F +G +I +L +O +P +R +S +U +W + TOP +

    +yieldIfContended +()
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/methods_index_removals.html b/docs/html/sdk/api_diff/3/changes/methods_index_removals.html new file mode 100644 index 0000000000000..bbce14487297d --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/methods_index_removals.html @@ -0,0 +1,62 @@ + + + + + + + + + +Method Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Methods +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/packages_index_additions.html b/docs/html/sdk/api_diff/3/changes/packages_index_additions.html new file mode 100644 index 0000000000000..ccd54fdc5c76c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/packages_index_additions.html @@ -0,0 +1,72 @@ + + + + + + + + + +Package Additions Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Packages +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    +
    +
    + +android.appwidget
    +android.inputmethodservice
    +android.speech
    +android.text.format
    +android.view.inputmethod
    + +java.beans
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/packages_index_all.html b/docs/html/sdk/api_diff/3/changes/packages_index_all.html new file mode 100644 index 0000000000000..5876fe92fca9b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/packages_index_all.html @@ -0,0 +1,112 @@ + + + + + + + + + +Package Differences Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +Packages +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    +
    +
    + +android
    +android.app
    +android.appwidget
    +android.content
    +android.content.pm
    +android.content.res
    +android.database
    +android.database.sqlite
    +android.graphics
    +android.graphics.drawable
    +android.graphics.drawable.shapes
    +android.hardware
    +android.inputmethodservice
    +android.location
    +android.media
    +android.net
    +android.net.wifi
    +android.opengl
    +android.os
    +android.preference
    +android.provider
    +android.speech
    +android.telephony
    +android.telephony.gsm
    +android.test
    +android.test.mock
    +android.test.suitebuilder
    +android.text
    +android.text.format
    +android.text.method
    +android.text.style
    +android.util
    +android.view
    +android.view.animation
    +android.view.inputmethod
    +android.webkit
    +android.widget
    + +dalvik.system
    + +java.beans
    +java.lang
    +java.lang.reflect
    +java.net
    +java.util
    +java.util.jar
    +java.util.logging
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/packages_index_changes.html b/docs/html/sdk/api_diff/3/changes/packages_index_changes.html new file mode 100644 index 0000000000000..3665a918f31ff --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/packages_index_changes.html @@ -0,0 +1,106 @@ + + + + + + + + + +Package Changes Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Packages +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    +
    +
    + +android
    +android.app
    +android.content
    +android.content.pm
    +android.content.res
    +android.database
    +android.database.sqlite
    +android.graphics
    +android.graphics.drawable
    +android.graphics.drawable.shapes
    +android.hardware
    +android.location
    +android.media
    +android.net
    +android.net.wifi
    +android.opengl
    +android.os
    +android.preference
    +android.provider
    +android.telephony
    +android.telephony.gsm
    +android.test
    +android.test.mock
    +android.test.suitebuilder
    +android.text
    +android.text.method
    +android.text.style
    +android.util
    +android.view
    +android.view.animation
    +android.webkit
    +android.widget
    + +dalvik.system
    + +java.lang
    +java.lang.reflect
    +java.net
    +java.util
    +java.util.jar
    +java.util.logging
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/packages_index_removals.html b/docs/html/sdk/api_diff/3/changes/packages_index_removals.html new file mode 100644 index 0000000000000..17a90d9989ca7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/packages_index_removals.html @@ -0,0 +1,64 @@ + + + + + + + + + +Package Removals Index + + + + + + + + + + + + + + + +
    + Filter the Index: +
    +All Packages +
    +Removals +
    +Additions +
    +Changes +
    +
    +Bold indicates New; Strike indicates deleted. Plain indicates changed. +
    +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.app.html b/docs/html/sdk/api_diff/3/changes/pkg_android.app.html new file mode 100644 index 0000000000000..c1602d80f1a3a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.app.html @@ -0,0 +1,198 @@ + + + + + + + + + +android.app + + + + + + + + + + +
    +
    +
    +

    +Package android.app +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Added Classes +
    + + ActivityManager.RunningAppProcessInfo +  
    + + IntentService +  
    + + LauncherActivity.IconResizer +  
    + + LauncherActivity.ListItem +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + Activity +  
    + + ActivityManager +  
    + + AlarmManager +  
    + + AlertDialog +  
    + + Instrumentation +  
    + + LauncherActivity +  
    + + PendingIntent +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.content.html b/docs/html/sdk/api_diff/3/changes/pkg_android.content.html new file mode 100644 index 0000000000000..8a9f4af0a243a --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.content.html @@ -0,0 +1,155 @@ + + + + + + + + + +android.content + + + + + + + + + + +
    +
    +
    +

    +Package android.content +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + BroadcastReceiver +  
    + + ContentProvider +  
    + + ContentResolver +  
    + + Context +  
    + + DialogInterface +  
    + + Intent +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.content.pm.html b/docs/html/sdk/api_diff/3/changes/pkg_android.content.pm.html new file mode 100644 index 0000000000000..d3bddd4badc3b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.content.pm.html @@ -0,0 +1,149 @@ + + + + + + + + + +android.content.pm + + + + + + + + + + +
    +
    +
    +

    +Package android.content.pm +

    +

    + + + + + + + + +
    Added Classes +
    + + ConfigurationInfo +  
    +  +

    + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + ActivityInfo +  
    + + PackageInfo +  
    + + PackageManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.content.res.html b/docs/html/sdk/api_diff/3/changes/pkg_android.content.res.html new file mode 100644 index 0000000000000..81d234d2263c2 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.content.res.html @@ -0,0 +1,163 @@ + + + + + + + + + +android.content.res + + + + + + + + + + +
    +
    +
    +

    +Package android.content.res +

    +

    + + + + + + + + + + + + +
    Added Classes +
    + + AssetFileDescriptor.AutoCloseInputStream +  
    + + AssetFileDescriptor.AutoCloseOutputStream +  
    +  +

    + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + AssetFileDescriptor +  
    + + Configuration +  
    + + Resources +  
    + + TypedArray +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.database.html b/docs/html/sdk/api_diff/3/changes/pkg_android.database.html new file mode 100644 index 0000000000000..70b964445d554 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.database.html @@ -0,0 +1,134 @@ + + + + + + + + + +android.database + + + + + + + + + + +
    +
    +
    +

    +Package android.database +

    +

    + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + Cursor +  
    + + CursorWrapper +  
    + + DatabaseUtils +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.database.sqlite.html b/docs/html/sdk/api_diff/3/changes/pkg_android.database.sqlite.html new file mode 100644 index 0000000000000..db2017bbdc9b4 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.database.sqlite.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.database.sqlite + + + + + + + + + + +
    +
    +
    +

    +Package android.database.sqlite +

    +

    + + + + + + + + +
    Changed Classes +
    + + SQLiteDatabase +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.html b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.html new file mode 100644 index 0000000000000..6025b71b03d86 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.graphics.drawable + + + + + + + + + + +
    +
    +
    +

    +Package android.graphics.drawable +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + Drawable +  
    + + RotateDrawable +  
    + + ScaleDrawable +  
    + + TransitionDrawable +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.shapes.html b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.shapes.html new file mode 100644 index 0000000000000..affdaabc6321c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.drawable.shapes.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.graphics.drawable.shapes + + + + + + + + + + +
    +
    +
    +

    +Package android.graphics.drawable.shapes +

    +

    + + + + + + + + +
    Changed Classes +
    + + Shape +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.html b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.html new file mode 100644 index 0000000000000..c7644d5860bd0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.graphics.html @@ -0,0 +1,141 @@ + + + + + + + + + +android.graphics + + + + + + + + + + +
    +
    +
    +

    +Package android.graphics +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + Bitmap +  
    + + Canvas +  
    + + Rect +  
    + + RectF +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.hardware.html b/docs/html/sdk/api_diff/3/changes/pkg_android.hardware.html new file mode 100644 index 0000000000000..63ebbdc19f691 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.hardware.html @@ -0,0 +1,170 @@ + + + + + + + + + +android.hardware + + + + + + + + + + +
    +
    +
    +

    +Package android.hardware +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + GeomagneticField +  
    + + Sensor +  
    + + SensorEvent +  
    + + SensorEventListener +  
    +  +

    + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + Camera +  
    + + SensorListener +  
    + + SensorManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.html b/docs/html/sdk/api_diff/3/changes/pkg_android.html new file mode 100644 index 0000000000000..0cedd98cb86e8 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.html @@ -0,0 +1,177 @@ + + + + + + + + + +android + + + + + + + + + + +
    +
    +
    +

    +Package android +

    +

    + + + + + + + + + + + + +
    Added Classes +
    + + R.bool +  
    + + R.integer +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + Manifest.permission +  
    + + R.attr +  
    + + R.drawable +  
    + + R.id +  
    + + R.string +  
    + + R.style +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.location.html b/docs/html/sdk/api_diff/3/changes/pkg_android.location.html new file mode 100644 index 0000000000000..2f8af381b95d9 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.location.html @@ -0,0 +1,156 @@ + + + + + + + + + +android.location + + + + + + + + + + +
    +
    +
    +

    +Package android.location +

    +

    + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + GpsSatellite +  
    + + GpsStatus +  
    + + GpsStatus.Listener +  
    +  +

    + + + + + + + + + + + + +
    Changed Classes +
    + + Location +  
    + + LocationManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.media.html b/docs/html/sdk/api_diff/3/changes/pkg_android.media.html new file mode 100644 index 0000000000000..c531240beb8d1 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.media.html @@ -0,0 +1,254 @@ + + + + + + + + + +android.media + + + + + + + + + + +
    +
    +
    +

    +Package android.media +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + AudioFormat +  
    + + AudioRecord +  
    + + AudioRecord.OnRecordPositionUpdateListener +  
    + + AudioTrack +  
    + + AudioTrack.OnPlaybackPositionUpdateListener +  
    + + JetPlayer +  
    + + JetPlayer.OnJetEventListener +  
    + + MediaPlayer.OnInfoListener +  
    + + MediaPlayer.OnVideoSizeChangedListener +  
    + + MediaRecorder.OnErrorListener +  
    + + MediaRecorder.OnInfoListener +  
    + + MediaRecorder.VideoEncoder +  
    + + MediaRecorder.VideoSource +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + AudioManager +  
    + + MediaPlayer +  
    + + MediaRecorder +  
    + + MediaRecorder.OutputFormat +  
    + + RingtoneManager +  
    + + SoundPool +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.net.html b/docs/html/sdk/api_diff/3/changes/pkg_android.net.html new file mode 100644 index 0000000000000..cf2f916cede7b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.net.html @@ -0,0 +1,127 @@ + + + + + + + + + +android.net + + + + + + + + + + +
    +
    +
    +

    +Package android.net +

    +

    + + + + + + + + + + + + +
    Changed Classes +
    + + ConnectivityManager +  
    + + NetworkInfo +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.net.wifi.html b/docs/html/sdk/api_diff/3/changes/pkg_android.net.wifi.html new file mode 100644 index 0000000000000..99f2951d1f788 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.net.wifi.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.net.wifi + + + + + + + + + + +
    +
    +
    +

    +Package android.net.wifi +

    +

    + + + + + + + + +
    Changed Classes +
    + + WifiManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.opengl.html b/docs/html/sdk/api_diff/3/changes/pkg_android.opengl.html new file mode 100644 index 0000000000000..622d8612fb978 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.opengl.html @@ -0,0 +1,148 @@ + + + + + + + + + +android.opengl + + + + + + + + + + +
    +
    +
    +

    +Package android.opengl +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + GLSurfaceView +  
    + + GLSurfaceView.EGLConfigChooser +  
    + + GLSurfaceView.GLWrapper +  
    + + GLSurfaceView.Renderer +  
    + + Visibility +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.os.html b/docs/html/sdk/api_diff/3/changes/pkg_android.os.html new file mode 100644 index 0000000000000..098864ef879d8 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.os.html @@ -0,0 +1,212 @@ + + + + + + + + + +android.os + + + + + + + + + + +
    +
    +
    +

    +Package android.os +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + AsyncTask +  
    + + AsyncTask.Status +  
    + + Handler.Callback +  
    + + ResultReceiver +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + Binder +  
    + + Build +  
    + + Debug +  
    + + Environment +  
    + + Handler +  
    + + IBinder +  
    + + Looper +  
    + + Parcel +  
    + + ParcelFileDescriptor +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.preference.html b/docs/html/sdk/api_diff/3/changes/pkg_android.preference.html new file mode 100644 index 0000000000000..5ffe3cb61f34b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.preference.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.preference + + + + + + + + + + +
    +
    +
    +

    +Package android.preference +

    +

    + + + + + + + + +
    Changed Classes +
    + + DialogPreference +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.provider.html b/docs/html/sdk/api_diff/3/changes/pkg_android.provider.html new file mode 100644 index 0000000000000..f16e4fd197677 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.provider.html @@ -0,0 +1,233 @@ + + + + + + + + + +android.provider + + + + + + + + + + +
    +
    +
    +

    +Package android.provider +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Added Classes +
    + + LiveFolders +  
    + + Settings.Secure +  
    + + UserDictionary +  
    + + UserDictionary.Words +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + Browser +  
    + + Contacts.Intents +  
    + + Contacts.Intents.Insert +  
    + + Contacts.PeopleColumns +  
    + + MediaStore +  
    + + MediaStore.Audio.AlbumColumns +  
    + + MediaStore.Audio.Media +  
    + + MediaStore.Images.Media +  
    + + MediaStore.Video +  
    + + MediaStore.Video.VideoColumns +  
    + + Settings +  
    + + Settings.System +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.gsm.html b/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.gsm.html new file mode 100644 index 0000000000000..d17223483e027 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.gsm.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.telephony.gsm + + + + + + + + + + +
    +
    +
    +

    +Package android.telephony.gsm +

    +

    + + + + + + + + +
    Changed Classes +
    + + SmsMessage +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.html b/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.html new file mode 100644 index 0000000000000..8131269eab826 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.telephony.html @@ -0,0 +1,142 @@ + + + + + + + + + +android.telephony + + + + + + + + + + +
    +
    +
    +

    +Package android.telephony +

    +

    + + + + + + + + +
    Added Classes +
    + + NeighboringCellInfo +  
    +  +

    + + + + + + + + + + + + +
    Changed Classes +
    + + PhoneNumberUtils +  
    + + TelephonyManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.test.html b/docs/html/sdk/api_diff/3/changes/pkg_android.test.html new file mode 100644 index 0000000000000..3b5edd42df00b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.test.html @@ -0,0 +1,163 @@ + + + + + + + + + +android.test + + + + + + + + + + +
    +
    +
    +

    +Package android.test +

    +

    + + + + + + + + + + + + +
    Added Classes +
    + + ActivityInstrumentationTestCase2 +  
    + + ProviderTestCase2 +  
    +  +

    + + + + + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + ActivityInstrumentationTestCase +  
    + + InstrumentationTestCase +  
    + + ProviderTestCase +  
    + + TouchUtils +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.test.mock.html b/docs/html/sdk/api_diff/3/changes/pkg_android.test.mock.html new file mode 100644 index 0000000000000..87a371cd22b18 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.test.mock.html @@ -0,0 +1,120 @@ + + + + + + + + + +android.test.mock + + + + + + + + + + +
    +
    +
    +

    +Package android.test.mock +

    +

    + + + + + + + + +
    Changed Classes +
    + + MockPackageManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.test.suitebuilder.html b/docs/html/sdk/api_diff/3/changes/pkg_android.test.suitebuilder.html new file mode 100644 index 0000000000000..469db289da923 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.test.suitebuilder.html @@ -0,0 +1,127 @@ + + + + + + + + + +android.test.suitebuilder + + + + + + + + + + +
    +
    +
    +

    +Package android.test.suitebuilder +

    +

    + + + + + + + + + + + + +
    Changed Classes +
    + + TestMethod +  
    + + TestSuiteBuilder +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.text.html b/docs/html/sdk/api_diff/3/changes/pkg_android.text.html new file mode 100644 index 0000000000000..ffc696676f160 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.text.html @@ -0,0 +1,191 @@ + + + + + + + + + +android.text + + + + + + + + + + +
    +
    +
    +

    +Package android.text +

    +

    + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + InputType +  
    + + NoCopySpan +  
    + + NoCopySpan.Concrete +  
    + + ParcelableSpan +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + Annotation +  
    + + AutoText +  
    + + SpanWatcher +  
    + + Spanned +  
    + + TextUtils +  
    + + TextWatcher +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.text.method.html b/docs/html/sdk/api_diff/3/changes/pkg_android.text.method.html new file mode 100644 index 0000000000000..89b94ad3125bd --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.text.method.html @@ -0,0 +1,218 @@ + + + + + + + + + +android.text.method + + + + + + + + + + +
    +
    +
    +

    +Package android.text.method +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + ArrowKeyMovementMethod +  
    + + BaseKeyListener +  
    + + DateKeyListener +  
    + + DateTimeKeyListener +  
    + + DialerKeyListener +  
    + + DigitsKeyListener +  
    + + KeyListener +  
    + + MetaKeyKeyListener +  
    + + MovementMethod +  
    + + MultiTapKeyListener +  
    + + QwertyKeyListener +  
    + + ScrollingMovementMethod +  
    + + TextKeyListener +  
    + + TimeKeyListener +  
    + + Touch +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.text.style.html b/docs/html/sdk/api_diff/3/changes/pkg_android.text.style.html new file mode 100644 index 0000000000000..e1e1fec0b4e9e --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.text.style.html @@ -0,0 +1,289 @@ + + + + + + + + + +android.text.style + + + + + + + + + + +
    +
    +
    +

    +Package android.text.style +

    +

    + + + + + + + + +
    Added Interfaces +
    + + UpdateAppearance +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + AbsoluteSizeSpan +  
    + + AlignmentSpan.Standard +  
    + + BackgroundColorSpan +  
    + + BulletSpan +  
    + + ClickableSpan +  
    + + DynamicDrawableSpan +  
    + + ForegroundColorSpan +  
    + + ImageSpan +  
    + + LeadingMarginSpan.Standard +  
    + + MaskFilterSpan +  
    + + QuoteSpan +  
    + + RasterizerSpan +  
    + + RelativeSizeSpan +  
    + + ScaleXSpan +  
    + + StrikethroughSpan +  
    + + StyleSpan +  
    + + SubscriptSpan +  
    + + SuperscriptSpan +  
    + + TextAppearanceSpan +  
    + + TypefaceSpan +  
    + + URLSpan +  
    + + UnderlineSpan +  
    + + UpdateLayout +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.util.html b/docs/html/sdk/api_diff/3/changes/pkg_android.util.html new file mode 100644 index 0000000000000..7403be48c31e0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.util.html @@ -0,0 +1,142 @@ + + + + + + + + + +android.util + + + + + + + + + + +
    +
    +
    +

    +Package android.util +

    +

    + + + + + + + + +
    Added Classes +
    + + PrintStreamPrinter +  
    +  +

    + + + + + + + + + + + + +
    Changed Classes +
    + + SparseIntArray +  
    + + TimeUtils +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.view.animation.html b/docs/html/sdk/api_diff/3/changes/pkg_android.view.animation.html new file mode 100644 index 0000000000000..30c1badc27d72 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.view.animation.html @@ -0,0 +1,127 @@ + + + + + + + + + +android.view.animation + + + + + + + + + + +
    +
    +
    +

    +Package android.view.animation +

    +

    + + + + + + + + + + + + +
    Changed Classes +
    + + Animation +  
    + + Transformation +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.view.html b/docs/html/sdk/api_diff/3/changes/pkg_android.view.html new file mode 100644 index 0000000000000..9b4a0427dacde --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.view.html @@ -0,0 +1,268 @@ + + + + + + + + + +android.view + + + + + + + + + + +
    +
    +
    +

    +Package android.view +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + GestureDetector.OnDoubleTapListener +  
    + + HapticFeedbackConstants +  
    + + OrientationEventListener +  
    + + ViewDebug.CapturedViewProperty +  
    + + ViewTreeObserver.OnScrollChangedListener +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + GestureDetector +  
    + + GestureDetector.SimpleOnGestureListener +  
    + + Gravity +  
    + + KeyCharacterMap +  
    + + KeyEvent +  
    + + Menu +  
    + + MotionEvent +  
    + + OrientationListener +  
    + + View +  
    + + ViewConfiguration +  
    + + ViewDebug +  
    + + ViewGroup +  
    + + ViewParent +  
    + + ViewTreeObserver +  
    + + Window +  
    + + WindowManager.LayoutParams +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.webkit.html b/docs/html/sdk/api_diff/3/changes/pkg_android.webkit.html new file mode 100644 index 0000000000000..339b9ab3b4794 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.webkit.html @@ -0,0 +1,170 @@ + + + + + + + + + +android.webkit + + + + + + + + + + +
    +
    +
    +

    +Package android.webkit +

    +

    + + + + + + + + +
    Added Classes +
    + + PluginData +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + URLUtil +  
    + + UrlInterceptHandler +  
    + + UrlInterceptRegistry +  
    + + WebHistoryItem +  
    + + WebSettings +  
    + + WebView +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_android.widget.html b/docs/html/sdk/api_diff/3/changes/pkg_android.widget.html new file mode 100644 index 0000000000000..fc6e9015391a6 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_android.widget.html @@ -0,0 +1,310 @@ + + + + + + + + + +android.widget + + + + + + + + + + +
    +
    +
    +

    +Package android.widget +

    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Added Classes and Interfaces +
    + + AlphabetIndexer +  
    + + Chronometer.OnChronometerTickListener +  
    + + HorizontalScrollView +  
    + + SectionIndexer +  
    + + SlidingDrawer +  
    + + SlidingDrawer.OnDrawerCloseListener +  
    + + SlidingDrawer.OnDrawerOpenListener +  
    + + SlidingDrawer.OnDrawerScrollListener +  
    + + TextView.OnEditorActionListener +  
    +  +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Changed Classes and Interfaces +
    + + AbsListView +  
    + + AbsSeekBar +  
    + + AbsoluteLayout +  
    + + ArrayAdapter +  
    + + AutoCompleteTextView +  
    + + Chronometer +  
    + + CursorAdapter +  
    + + GridView +  
    + + ListView +  
    + + PopupWindow +  
    + + PopupWindow.OnDismissListener +  
    + + ProgressBar +  
    + + RemoteViews +  
    + + RemoteViews.ActionException +  
    + + ResourceCursorAdapter +  
    + + Scroller +  
    + + SimpleCursorAdapter +  
    + + TextView +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_dalvik.system.html b/docs/html/sdk/api_diff/3/changes/pkg_dalvik.system.html new file mode 100644 index 0000000000000..654be0fb246ea --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_dalvik.system.html @@ -0,0 +1,149 @@ + + + + + + + + + +dalvik.system + + + + + + + + + + +
    +
    +
    +

    +Package dalvik.system +

    +

    + + + + + + + + +
    Added Classes +
    + + DexClassLoader +  
    +  +

    + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + DexFile +  
    + + VMDebug +  
    + + Zygote +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.lang.html b/docs/html/sdk/api_diff/3/changes/pkg_java.lang.html new file mode 100644 index 0000000000000..d7699273d2631 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.lang.html @@ -0,0 +1,134 @@ + + + + + + + + + +java.lang + + + + + + + + + + +
    +
    +
    +

    +Package java.lang +

    +

    + + + + + + + + + + + + + + + + +
    Changed Classes +
    + + Character.UnicodeBlock +  
    + + Class +  
    + + String +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.lang.reflect.html b/docs/html/sdk/api_diff/3/changes/pkg_java.lang.reflect.html new file mode 100644 index 0000000000000..ccc643dd8c998 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.lang.reflect.html @@ -0,0 +1,120 @@ + + + + + + + + + +java.lang.reflect + + + + + + + + + + +
    +
    +
    +

    +Package java.lang.reflect +

    +

    + + + + + + + + +
    Changed Classes +
    + + Proxy +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.net.html b/docs/html/sdk/api_diff/3/changes/pkg_java.net.html new file mode 100644 index 0000000000000..98cc83d2cd89c --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.net.html @@ -0,0 +1,120 @@ + + + + + + + + + +java.net + + + + + + + + + + +
    +
    +
    +

    +Package java.net +

    +

    + + + + + + + + +
    Changed Classes +
    + + Socket +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.util.html b/docs/html/sdk/api_diff/3/changes/pkg_java.util.html new file mode 100644 index 0000000000000..462c73b083b6b --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.util.html @@ -0,0 +1,120 @@ + + + + + + + + + +java.util + + + + + + + + + + +
    +
    +
    +

    +Package java.util +

    +

    + + + + + + + + +
    Changed Classes +
    + + Date +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.util.jar.html b/docs/html/sdk/api_diff/3/changes/pkg_java.util.jar.html new file mode 100644 index 0000000000000..f1ac6e5d7f7d0 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.util.jar.html @@ -0,0 +1,127 @@ + + + + + + + + + +java.util.jar + + + + + + + + + + +
    +
    +
    +

    +Package java.util.jar +

    +

    + + + + + + + + + + + + +
    Changed Interfaces +
    + + Pack200.Packer +  
    + + Pack200.Unpacker +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/changes/pkg_java.util.logging.html b/docs/html/sdk/api_diff/3/changes/pkg_java.util.logging.html new file mode 100644 index 0000000000000..f2cc23d8472e7 --- /dev/null +++ b/docs/html/sdk/api_diff/3/changes/pkg_java.util.logging.html @@ -0,0 +1,127 @@ + + + + + + + + + +java.util.logging + + + + + + + + + + +
    +
    +
    +

    +Package java.util.logging +

    +

    + + + + + + + + + + + + +
    Changed Classes +
    + + Level +  
    + + LogManager +  
    +  +

    + +
    +
    + + + + diff --git a/docs/html/sdk/api_diff/3/stylesheet-jdiff.css b/docs/html/sdk/api_diff/3/stylesheet-jdiff.css new file mode 100644 index 0000000000000..b3c1b9af86b9a --- /dev/null +++ b/docs/html/sdk/api_diff/3/stylesheet-jdiff.css @@ -0,0 +1,37 @@ + +/* (http://www.jdiff.org) */ + +div.and-diff-id {border: 1px solid #eee;position:relative;float:right;clear:both;padding:0px;} +table.diffspectable {border:1px;padding:0px;margin:0px;} +.diffspechead {background-color:#eee;} +.diffspectable tr {border:0px;padding:0px;} +.diffspectable td {background-color:eee;border:0px;font-size:90%;font-weight:normal;padding:0px;padding-left:1px;padding-right:1px;text-align:center;color:777;} +td.diffvalueold {color:orange;background-color:white;border:0px;font-size:80%;font-style:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffvaluenew {color:green;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffvalue {color:444;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffspec {background-color:white;border:0px;font-size:80%;font-weight:normal;padding:1px;color:444;text-align:right;padding-right:.5em;line-height:.95em;} +tt {font-size:11pt;font-family:monospace;} +.indexHeader { + font-size:96%; + line-height:.8em;} +.jdiffIndex td { + font-size:96%; + xline-height:.8em; + padding:2px; + padding-left:1em;} +.indexText { + font-size:100%; + padding-left:1em;} +#indexTableCaption { + font-size:96%; + margin-top:.25em; + margin-bottom:0; + } +.hiddenlink { + font-size:96%; + line-height:.8em; + text-decoration:none;} +a { + text-decoration:none;} +a:hover { + text-decoration:underline;} From 1596b517be4925b82ea55973b6e7595f8d5f2cf5 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Tue, 21 Apr 2009 15:00:26 -0700 Subject: [PATCH 12/70] AI 147238: Update tools index, replace activitycreator with android BUG=1790234 Automated import of CL 147238 --- docs/html/guide/appendix/faq/commontasks.jd | 4 +- docs/html/guide/developing/tools/index.jd | 33 ++++++---- .../html/guide/developing/tools/othertools.jd | 64 ++++++------------- docs/html/guide/guide_toc.cs | 7 +- docs/html/samples/index.jd | 5 +- 5 files changed, 46 insertions(+), 67 deletions(-) diff --git a/docs/html/guide/appendix/faq/commontasks.jd b/docs/html/guide/appendix/faq/commontasks.jd index 9c79bddf75eae..0f89e7534a689 100644 --- a/docs/html/guide/appendix/faq/commontasks.jd +++ b/docs/html/guide/appendix/faq/commontasks.jd @@ -701,8 +701,8 @@ If the latitudeSpan, longitudeSpan, and zoomLevel attributes are not consistent,

    List of Files for an Android Application

    The following list describes the structure and files of an Android application. - Many of these files can be built for you (or stubbed out) by the activitycreator - application shipped in the tools/ menu of the SDK.

    + Many of these files can be built for you (or stubbed out) by the android tool + shipped in the tools/ menu of the SDK.

    diff --git a/docs/html/guide/developing/tools/index.jd b/docs/html/guide/developing/tools/index.jd index b491a4fcd8da1..e53d5957995a8 100644 --- a/docs/html/guide/developing/tools/index.jd +++ b/docs/html/guide/developing/tools/index.jd @@ -8,23 +8,29 @@ applications on the Android platform. The most important of these are the Androi Emulator and the Android Development Tools plugin for Eclipse, but the SDK also includes a variety of other tools for debugging, packaging, and installing your applications on the emulator.

    - -
    -
    Android Emulator
    -
    A virtual mobile device that runs on your computer. You use the emulator to design, - debug, and test your applications in an actual Android run-time environment.
    +
    Android Development Tools Plugin (for the Eclipse IDE)
    The ADT plugin adds powerful extensions to the Eclipse integrated environment, making creating and debugging your Android applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android applications.
    +
    Android Emulator
    +
    A QEMU-based device-emulation tool that you can use to design, + debug, and test your applications in an actual Android run-time environment.
    -
    Hierarchy Viewer
    -
    The Hierarchy Viewer tool allows you to debug and optimize your user interface. - It provides a visual representation of your layout's hierarchy of Views and a magnified inspector - of the current display with a pixel grid, so you can get your layout just right. -
    +
    Android Virtual Devices (AVDs)
    +
    Virtual device configurations that you create, to model device + characteristics in the Android Emulator. In each configuration, you can + specify the Android platform to run, the hardware options, and the + emulator skin to use. Each AVD functions as an independent device with + it's own storage for user data, SD card, and so on.
    + +
    Hierarchy Viewer
    +
    The Hierarchy Viewer tool allows you to debug and optimize your user interface. + It provides a visual representation of your layout's hierarchy of Views and a magnified inspector + of the current display with a pixel grid, so you can get your layout just right. +
    Draw 9-patch
    The Draw 9-patch tool allows you to easily create a @@ -79,10 +85,9 @@ applications on the emulator.

    level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
    -
    activitycreator
    -
    A script that generates android +
    A script that lets you manage AVDs and generate Ant build files that - you can use to compile your Android applications. If you are developing - on Eclipse with the ADT plugin, you won't need to use this script.
    + you can use to compile your Android applications.
    diff --git a/docs/html/guide/developing/tools/othertools.jd b/docs/html/guide/developing/tools/othertools.jd index eaa0b76a5f421..603609eb1ae03 100644 --- a/docs/html/guide/developing/tools/othertools.jd +++ b/docs/html/guide/developing/tools/othertools.jd @@ -3,16 +3,32 @@ page.title=Other Tools

    The sections below describe other tools that you can use when building Android applications.

    -

    All of the tools are included in the Android SDK and are accessible from the tools/ directory.

    +

    All of the tools are included in the Android SDK and are accessible from the <sdk>/tools/ directory.

    Contents

    +
    android
    mksdcard
    dx
    -
    activitycreator
    + +

    android

    + +

    The android tool is a script that lets you create and manage Android Virtual Devices (AVDs) and, if you are developing using Ant, generate template Android projects to help you get started quickly.

    + +

    For information about how to use the android tool to manage AVDs, see Android Virtual Devices.

    + +

    For information about how to use the android tool to create or update a project, see Developing in Other IDEs.

    + +

    Note that if you are developing in Eclipse with the ADT plugin, you will use the android tool to manage the AVDs you create, but you will not use the android tool for creating a project. The ADT plugin provides a New Project Wizard that helps you set up an Android project in Eclipse.

    + +

    If you are developing in Ant, you will use the android tool to manage your AVDs, and you can also use it to create or update a project.

    + +

    Note: The android tool replaces the activitycreator tool provided in previous SDK releases.

    + +

    mksdcard

    @@ -21,7 +37,7 @@ page.title=Other Tools
    mksdcard [-l label] <size>[K|M] <file>
    -

    The table below lists the available options/arguments

    +

    The table below lists the available options/arguments

    MyApp/
    @@ -57,48 +73,6 @@ You can also specify size in kilobytes or megabytes, by appending a "K" or "M" t

    The dx tool lets you generate Android bytecode from .class files. The tool converts target files and/or directories to Dalvik executable format (.dex) files, so that they can run in the Android environment. It can also dump the class files in a human-readable format and run a target unit test. You can get the usage and options for this tool by using dx --help.

    - - -

    activitycreator

    - -

    If you aren't using the Eclipse IDE and ADT plugin, you can use the the activitycreator script to get started with a new application. When you run the script, it creates the structure of a minimal Android application that you can build on and extend to meet your needs.

    - -

    For Linux and Mac, the SDK provides activitycreator, a shell script, and for Windows activitycreator.bat, a batch script that runs an executable. Regardless of platform, the usage for the script is the same:

    - -
    activitycreator [--out <folder>] [--ide intellij] your.package.name.ActivityName
    - -
    - - - - - - - - - - - - - - - -
    OptionDescription
    --out <folder>Specifies where to create the files/folders.
    --ide intellijCreates project files for IntelliJ
    -

    When run, the script creates these files:

    - -
      -
    • AndroidManifest.xml -- The application manifest file.
    • -
    • build.xml -- An Ant script to build/package the application.
    • -
    • res -- The resource directory.
    • -
    • src -- The source directory.
    • -
    • src/your/package/name/ActivityName.java -- The Activity class.
    • -
    • bin -- The output folder for the compiled .apk (when built by Ant).
    • -
    - -

    When you are ready, you can use Ant to build the project so that you can run it on the emulator.

    - -

    If you are using Eclipse with the ADT plugin, you do not need to use activitycreator. You can use the New Project Wizard, provided by the ADT plugin, instead.

    - diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs index 77d3522ce72ae..3c9b7c27bbcd8 100644 --- a/docs/html/guide/guide_toc.cs +++ b/docs/html/guide/guide_toc.cs @@ -61,6 +61,7 @@
  16. <provider>
  17. <receiver>
  18. <service>
  19. +
  20. <uses-configuration>
  21. <uses-library>
  22. <uses-permission>
  23. <uses-sdk>
  24. @@ -84,7 +85,7 @@
  25. Accelerometer
  26. --> -
  27. Location
  28. +
  29. Location and Maps
  30. -
  31. In Eclipse, with ADT
  32. In Other IDEs
  33. On a Device
  34. @@ -110,9 +110,10 @@
    • aapt
    • adb
    • -
    • activitycreator
    • +
    • android
    • aidl
    • +
    • AVDs
    • ddms
    • dx
    • Draw 9-Patch
    • diff --git a/docs/html/samples/index.jd b/docs/html/samples/index.jd index c5c0b7132eb9b..06afd07f8ded7 100644 --- a/docs/html/samples/index.jd +++ b/docs/html/samples/index.jd @@ -18,6 +18,5 @@ page.onlyfortemplate=codesite

      To run these samples, you should import them into -Eclipse or use -activitycreator.py, as described in the Installing the SDK.

      +Eclipse or build them with Ant, as described in +Developing in Other IDEs.

      From 46000b5841033c7171b17e429650a37ec810b4a6 Mon Sep 17 00:00:00 2001 From: Jeff Hamilton <> Date: Tue, 21 Apr 2009 15:12:16 -0700 Subject: [PATCH 13/70] AI 147250: Fix a nasty typo in the docs for ContentResolver.update(). No code changes. BUG=1067866 Automated import of CL 147250 --- core/java/android/content/ContentResolver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 0d886ee23e8d1..0a71d572932ed 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -541,7 +541,7 @@ public abstract class ContentResolver { A null value will remove an existing field value. * @param where A filter to apply to rows before deleting, formatted as an SQL WHERE clause (excluding the WHERE itself). - * @return the URL of the newly created row + * @return The number of rows updated. * @throws NullPointerException if uri or values are null */ public final int update(Uri uri, ContentValues values, String where, From ee378956e3ab9dd312890f4554350ee76e07b301 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet <> Date: Tue, 21 Apr 2009 18:45:32 -0700 Subject: [PATCH 14/70] AI 147290: Update Geocoder javadoc to reflect the need for a backend service. BUG=1794552 Automated import of CL 147290 --- location/java/android/location/Geocoder.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/location/java/android/location/Geocoder.java b/location/java/android/location/Geocoder.java index 709ad23fd7875..53e46b7d20010 100644 --- a/location/java/android/location/Geocoder.java +++ b/location/java/android/location/Geocoder.java @@ -36,7 +36,11 @@ import java.util.List; * coordinate into a (partial) address. The amount of detail in a * reverse geocoded location description may vary, for example one * might contain the full street address of the closest building, while - * another might contain only a city name and postal code. + * another might contain only a city name and postal code. + * + * The Geocoder class requires a backend service that is not included in + * the core android framework. The Geocoder query methods will return an + * empty list if there no backend service in the platform. */ public final class Geocoder { private static final String TAG = "Geocoder"; @@ -94,8 +98,8 @@ public final class Geocoder { * @param longitude the longitude a point for the search * @param maxResults max number of addresses to return. Smaller numbers (1 to 5) are recommended * - * @return a list of Address objects or null if no matches were - * found. + * @return a list of Address objects. Returns null or empty list if no matches were + * found or there is no backend service available. * * @throws IllegalArgumentException if latitude is * less than -90 or greater than 90 @@ -143,7 +147,8 @@ public final class Geocoder { * @param locationName a user-supplied description of a location * @param maxResults max number of results to return. Smaller numbers (1 to 5) are recommended * - * @return a list of Address objects or null if no matches were found. + * @return a list of Address objects. Returns null or empty list if no matches were + * found or there is no backend service available. * * @throws IllegalArgumentException if locationName is null * @throws IOException if the network is unavailable or any other @@ -192,7 +197,8 @@ public final class Geocoder { * @param upperRightLatitude the latitude of the upper right corner of the bounding box * @param upperRightLongitude the longitude of the upper right corner of the bounding box * - * @return a list of Address objects or null if no matches were found. + * @return a list of Address objects. Returns null or empty list if no matches were + * found or there is no backend service available. * * @throws IllegalArgumentException if locationName is null * @throws IllegalArgumentException if any latitude is From fe1f789124ecc4b1475abecfc7d8263c0b21fb6a Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Tue, 21 Apr 2009 18:52:41 -0700 Subject: [PATCH 15/70] AI 147297: Update Android 1.5 SDK Download, Release Notes, Version Notes, Highlights Please let me know if you have other "known issues", "resolved issues", or "highlights". Also, note that the installing and upgrading docs are being updated in a different CL, so the new version is not displayed on my staging server. BUG=1790234 Automated import of CL 147297 --- docs/html/sdk/1.5_r1/index.jd | 45 +++-- docs/html/sdk/RELEASENOTES.jd | 229 ++++++++++++++++++++-- docs/html/sdk/adt_download.jd | 17 +- docs/html/sdk/android-1.5-highlights.jd | 205 ++++++++++++++++++++ docs/html/sdk/android-1.5.jd | 245 +++++++++++++++++++++++- docs/html/sdk/sdk_toc.cs | 17 +- 6 files changed, 717 insertions(+), 41 deletions(-) create mode 100644 docs/html/sdk/android-1.5-highlights.jd diff --git a/docs/html/sdk/1.5_r1/index.jd b/docs/html/sdk/1.5_r1/index.jd index 412887a95257d..834ab7991959a 100644 --- a/docs/html/sdk/1.5_r1/index.jd +++ b/docs/html/sdk/1.5_r1/index.jd @@ -2,60 +2,80 @@ sdk.version=1.5 sdk.rel.id=1 sdk.date=April 2009 -sdk.win_download= +sdk.win_download=android-sdk-windows-1.5_r1.zip sdk.win_bytes= sdk.win_checksum= -sdk.mac_download= +sdk.mac_download=android-sdk-mac_x86-1.5_r1.zip sdk.mac_bytes= sdk.mac_checksum= -sdk.linux_download= +sdk.linux_download=android-sdk-linux_x86-1.5_r1.zip sdk.linux_bytes= sdk.linux_checksum= -page.title=Download Android SDK +page.title=Android 1.5 SDK, Release 1 @jd:body

      SDK Contents

      Development tools

      -

      The SDK includes a variety of tools for developing and debugging application code and designing an application UI. You can read about the tools in the +

      The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the Dev Guide and access them in the <sdk>/tools/ directory. -

      The tools package included in this SDK includes many updates from that provided in the previous SDK and requires you to migrate your applications to the new development environment. For details, see the Upgrading the SDK document.

      +

      The tools package in this SDK includes updates from those provided in the previous SDK. The tools also require a different project structure. To use the new tools, you need to migrate your applications to the new development environment. For more information about how to migrate, see Upgrading the SDK. -

      System Images

      +

      For more information about the new tools features, see the SDK Release Notes. -

      The Android system images listed below are included in this SDK. For more information about a system image — features, applications included, localizations, API changes, and so on — see its Version Notes.

      +

      Android Platforms

      + +

      This SDK includes multiple Android platform versions that you use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version — features, applications included, localizations, API changes, and so on — see its Version Notes.

      - + - + - +
      System ImageAPI LevelNotesDescriptionPlatformAPI LevelNotesDescription
      Android 1.5 3 Version NotesIncludes a set of standard development applications. Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).
      Android 1.1 2 Version NotesIncludes a set of standard development applications. Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues). +external library.
      +

      SDK Add-Ons

      + +

      An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.

      + + + + + + + + + + + +
      Add-OnAPI LevelNotesDescription
      Google APIs3 Includes the com.google.android.maps external library, a compliant +system image, a {@link android.location.Geocoder Geocoder} +backend service implementation, documentation, and sample code.
      +

      Sample Code and Applications

      You can look at a variety of tutorials and samples in the Dev Guide and access the sample code itself in the <sdk>/platforms/android-1.5/samples/ directory of the SDK package. Note the new location — the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory.

      - diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd index bad71a2a59da3..c6a887a446623 100644 --- a/docs/html/sdk/RELEASENOTES.jd +++ b/docs/html/sdk/RELEASENOTES.jd @@ -1,21 +1,209 @@ page.title=SDK Release Notes @jd:body -

      This document provides version-specific information about Android SDK releases. For the latest known issues, please ensure that you're viewing this page at: http://developer.android.com/sdk/RELEASENOTES.html.

      +

      This document provides version-specific information about Android SDK +releases. For the latest known issues, please ensure that you're viewing this +page at: +http://developer.android.com/sdk/RELEASENOTES.html.

      + +

      Android 1.5 SDK, Release 1

      + +

      This SDK provides updates to the development tools and Android system that +you use to create applications for compliant Android-powered devices.

      + +

      Release Overview

      + +

      This SDK release includes many new features for developers. Highlights of the +changes include:

      + +
        +
      • Multiple versions of the Android platform are included (Android 1.1, +Android 1.5). The tools are updated to let you deploy your application +on any platform in the SDK, which helps you ensure forward-compitility and, +if applicable, backward-compatibility.
      • +
      • Introduces Android +Virtual Devices — (AVD) configurations of options that you +run in the emulator to better model actual devices. Each AVD gets its +own dedicated storage area, making it much easier to work with multiple emulators +that are running concurrently.
      • +
      • Support for SDK add-ons, which extend the +Android SDK to give you access to one or more external Android libraries and/or +a customized (but compliant) system image that can run in the emulator.
      • +
      • The new Eclipse ADT plugin (version 0.9.0) offers new Wizards to let you +create projects targetted for specific Android configurations, generate XML +resources (such as layouts, animations, and menus), generate alternate layouts, +and export and sign your application for publishing.
      • +
      • Improved JUnit support in ADT
      • +
      • Easier profiling of performance
      • +
      • Easier management of localized applications. You can now include or +exclude locale resources when building your APK from a single +Android project.
      • +
      • A new tool called "android" replaces the activitycreator script.
      • +
      + +

      For details about the Android platforms included in the SDK — including +bug fixes, features, and API changes — please read the Version Notes +documents available at left. For a list of Android platforms included in this +release, see the Download +page.

      + +

      Installation and Upgrade Notes

      + +

      If you've been developing an application using an Android 1.1 SDK, you need +to make a few changes to your development environment to migrate to the new SDK. +Tools and documentation are provided to assist you. No changes to the source +code of an existing application should be needed, provided that your application +is not using Android internal structures or APIs.

      + +

      To ensure that your existing application will work properly on a device +running the latest version of the Android platform, you are strongly encouraged +to migrate the application to the new SDK, compile it using the platform +matching the application's original API Level, and run it against the most +current platform.

      + +

      If you're installing the Android SDK for the first time, please see +the instructions in Installing the SDK. + +

      SDK Add-Ons

      + +

      This version of the SDK introduces support for SDK add-ons, which extend the +Android SDK to give you access to one or more external Android libraries and/or +a customized (but compliant) system image that can run in the emulator. The +purpose of an SDK add-on is to give you a way to develop applications for a +specific actual device (or family of devices) that extends the APIs available to +Android applications through external libraries or system customizations.

      + +

      From the perspective of your Android development environment, an SDK add-on +is similar to any of the Android platform targets included in the SDK — it +includes an external library, a system image, as well as custom emulator skins +and system properties. The add-on differs in that the Android platform it +provides may include customized UI, resources, or behaviors, a different set of +preinstalled applications, or other similar modifications. + +

      The SDK includes a single SDK add-on — the Google APIs add-on. The +Google APIs add-on gives your application access to the com.google.android.maps +external library that is included on many (if not most) Android-powered devices. +The Google APIs add-on also includes a {@link android.location.Geocoder Geocoder} +backend service implementation. For more information, see the "Maps External +Library" section below.

      + +

      Android Virtual Devices (AVDs)

      + +

      The SDK now gives you the capability to compile an application against any +one of several system targets, then run it in the emulator on top of any +compatible system image. There are two types of targets:

      +
        +
      • Targets that represent core Android platform versions.
      • +
      • Targets that are SDK add-ons, which typically provide application access to +one or more external libraries and/or a customized (but compliant) system image +that can run in the emulator. +
      + +

      A new tool called "android" lets you discover what targets and AVDs are +available to use.

      + +

      For more information about AVDs, see Android Virtual Devices + +

      Other Notes

      + +

      Maps External Library

      + +

      In previous versions of the SDK, the com.google.android.maps package was +included in the standard Android library and system image. In the Android 1.5 +SDK, that is not the case. The Android 1.5 library and system image do not +include the Maps external library (com.google.android.maps). However, the Maps +external library is available as part of the Google APIs add-on for the Android +SDK, downloadable from this location:

      + +

      http://code.google.com +/android/add-ons/google-apis

      + +

      For your convenience, the Google APIs add-on is included in the SDK.

      + +

      For information about how to register for a Maps API Key, see + +Obtaining a Maps API Key.

      + +

      USB Drivers for Windows

      + +

      If you are using Windows and want to develop or test your application on an +Android-powered device (such as the T-Mobile G1), you need an appropriate USB +driver. For your convenience, the Windows version of the Android SDK includes +these USB drivers that you can install, to let you develop on the device:

      + +
        +
      • USB driver for 32-bit XP and Vista
      • +
      • USB driver for 64-bit Vista only
      • +
      + +

      The USB driver files are located in the +<SDK>/usb_driver directory. For details and +installation instructions, see Setting Up a +Device for Development.

      +

      + +

      Resolved Issues, Changes

      + +

      Media

      +
        +
      • Updated documentation for {@link android.media.SoundPool +android.media.SoundPool}
      • +
      • {@link android.webkit.WebView} objects no longer automatically save +thumbnails. The {@link android.webkit.WebView#capturePicture() capturePicture()} +method will need to be called manually.
      • +
      + +

      Known Issues

      + +

      Sensor problems in Emulator

      + +
        +
      • If your application uses the Sensor API and you are running it in the +emulator on the Android 1.5 system image, you may experience problems. Your +application may generate ANR messages or crash when using the sensors. The +problem is being investigated.
      • +
      + +

      Other

      + +
        +
      • We regret to inform developers that Android 1.5 will not include support for +the Zilog Z80 processor architecture.
      • +
      +

      Android 1.1 SDK, Release 1

      -

      This SDK provides the development tools and Android system image you need to create applications for Android-powered devices. Applications developed on this SDK will be compatible with mobile devices running the Android 1.1 platform.

      +

      This SDK provides the development tools and Android system image you need to +create applications for Android-powered devices. Applications developed on this +SDK will be compatible with mobile devices running the Android 1.1 platform. +

      -

      This release provides an updated system image (Android 1.1), updated documentation, and the same set of development tools provided in the Android 1.0 r2 SDK. The updated system image includes bug fixes and some smaller features, as well as a few minor API changes from the 1.0 version.

      +

      This release provides an updated system image (Android 1.1), updated +documentation, and the same set of development tools provided in the Android 1.0 +r2 SDK. The updated system image includes bug fixes and some smaller features, +as well as a few minor API changes from the 1.0 version.

      -

      For details about the Android 1.1 system image included in the SDK — including bug fixes, features, and API changes — please read the Android 1.1 Version Notes.

      +

      For details about the Android 1.1 system image included in the SDK — +including bug fixes, features, and API changes — please read the Android 1.1 Version Notes.

      App Versioning for Android 1.1

      -

      If you are using this SDK to build an application that is compatible only 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 the API Level of Android 1.1 — "2".

      +

      If you are using this SDK to build an application that is compatible +only 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 +the API Level of Android 1.1 — "2".

      -

      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:

      +

      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>
         ...
      @@ -24,13 +212,29 @@ page.title=SDK Release Notes
       </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.

      +

      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.

      +

      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.

      -

      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 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.

      +

      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.

      ADT Plugin Compatibility

      @@ -52,7 +256,7 @@ application on the Android 1.1 emulator for the first time.

      If you're installing the Android SDK for the first time, please see the instructions in Installing the SDK. +href="{@docRoot}sdk/1.5_r1/installing.html">Installing the SDK.

      Other Notes

      @@ -136,9 +340,6 @@ are not working in this release.
    - - -

    Android 1.0 SDK, Release 2

    This SDK release includes the Android 1.0 platform and application API. diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd index 6e9eec4a2b736..6d46297830e8e 100644 --- a/docs/html/sdk/adt_download.jd +++ b/docs/html/sdk/adt_download.jd @@ -26,11 +26,18 @@ page. - 0.8.0 - ADT-0.8.0.zip - 23 September 2008 - Android 1.1 SDK, Release 1
    Android 1.0 SDK, Release 1
    - Required for users of Android 1.1 SDK, Release 1 and Android 1.0 SDK, Release 1
    + 0.9.0 + ADT-0.9.0.zip + 27 April 2009 + Android 1.5 SDK + Required for users of Android 1.5 SDK (and later releases)
    + + + 0.8.0 + ADT-0.8.0.zip +
    23 September 2008 + Android 1.1 SDK
    Android 1.0 SDK
    +
    Required for users of Android 1.1 SDK and Android 1.0 SDK
    0.7.1 diff --git a/docs/html/sdk/android-1.5-highlights.jd b/docs/html/sdk/android-1.5-highlights.jd new file mode 100644 index 0000000000000..46022d159d225 --- /dev/null +++ b/docs/html/sdk/android-1.5-highlights.jd @@ -0,0 +1,205 @@ +page.title=Android 1.5 Platform Highlights +sdk.version=1.5_r1 +@jd:body + +

    +April 2009 +

    + + +

    The Android 1.5 platform introduces many new features for users and developers. +The list below provides an overview of the changes.

    + + + +

    User interface refinements

    +
      +
    • System-wide: +
        +
      • Refinement of all core UI elements
      • +
      • Animated window transitions (off by default)
      • +
      • Accelerometer-based application rotations
      • +
      +
    • +
    • UI polish for: +
        +
      • In-call experience
      • +
      • Contacts, Call log, and Favorites
      • +
      • SMS & MMS
      • +
      • Browser
      • +
      • Gmail
      • +
      • Calendar
      • +
      • Email
      • +
      • Camera & Gallery
      • +
      • Application management
      • +
      +
    • +
    + +

    Performance improvements

    + +
      +
    • Faster Camera start-up and image capture
    • +
    • Much faster acquisition of GPS location (powered by SUPL AGPS)
    • +
    • Smoother page scrolling in Browser
    • +
    • Speedier GMail conversation list scrolling
    • +
    + +

    New features

    + +
      +
    • On-screen soft keyboard +
        +
      • Works in both portrait and landscape orientation
      • +
      • Support for user installation of 3rd party keyboards
      • +
      • User dictionary for custom words
      • +
      +
    • + +
    • Home screen +
        +
      • Widgets +
          +
        • Bundled home screen widgets include: analog clock, calendar, + music player, picture frame, and search
        • +
      • +
      • Live folders
      • +
      +
    • + +
    • Camera & Gallery +
        +
      • Video recording
      • +
      • Video playback (MPEG-4 & 3GP formats)
      • +
      +
    • + +
    • Bluetooth  +
        +
      • Stereo Bluetooth support (A2DP and AVCRP profiles)
      • +
      • Auto-pairing
      • +
      • Improved handsfree experience
      • +
      +
    • + +
    • Browser +
        +
      • Updated with latest Webkit browser & Squirrelfish Javascript engines
      • +
      • Copy 'n paste in browser
      • +
      • Search within a page
      • +
      • User-selectable text-encoding
      • +
      • UI changes include: +
          +
        • Unified Go and Search box
        • +
        • Tabbed bookmarks/history/most-visited screen
        • +
        +
      • +
      +
    • + +
    • Contacts +
        +
      • Shows user picture for Favorites
      • +
      • Specific date/time stamp for events in call log
      • +
      • One-touch access to a contact card from call log event
      • +
      +
    • + +
    • System +
        +
      • New Linux kernel (version 2.6.27)
      • +
      • SD card filesystem auto-checking and repair
      • +
      • SIM Application Toolkit 1.0
      • +
      +
    • + +
    • Google applications (not available in the Android 1.5 System Image that is +included in the Android SDK) +
        +
      • View Google Talk friends' status in Contacts, SMS, MMS, GMail, and + Email applications
      • +
      • Batch actions such as archive, delete, and label on Gmail messages
      • +
      • Upload videos to Youtube
      • +
      • Upload photos on Picasa
      • +
      +
    • +
    + +

    New APIs and manifest elements

    + + diff --git a/docs/html/sdk/android-1.5.jd b/docs/html/sdk/android-1.5.jd index fff911e29096c..c9ab42e01e9ec 100644 --- a/docs/html/sdk/android-1.5.jd +++ b/docs/html/sdk/android-1.5.jd @@ -8,7 +8,250 @@ sys.date=April 2009 API Level: 3

    -

    Please see Download the Android 1.5 Early Look SDK for more information.

    +

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

    + + + +

    Overview

    + +

    The Android 1.5 system delivered in the SDK (as library and system image) is +the development counterpart to the Android 1.5 production system image, +deployable to Android-powered handsets starting in May 2009. The system is fully +compliant and includes no external libraries. This is the first version of the +Android SDK that does not include the Maps external library.

    + +

    The Android 1.5 system delivers an updated version of the framework +API. As with previous versions, the Android 1.5 API +is assigned an integer identifier — 3 — 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 application. 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.

    + +

    When you migrate your application to the new SDK, you will need to choose +the platform version against which you will compile your application. In +general, you should compile your application against the lowest possible +version of the platform that your application can support. After you determine +the lowest version, you should ensure that your application's manifest file +defines the API Level of the lowest compatible platform version in the +minSdkVersion attribute. + +

    After compiling your application, you should make sure to test it on the +platform specified in the application's minSdkVersion attribute. To +ensure forward-compatibility, you should also run the application on platforms +using a higher API Level than that used by your application. To run your +application against different platform versions in the emulator, you create an +AVD for each platform version that you want to test. For more information about +AVDs, see Android Virtual +Devices. If you are using a physical device for testing, ensure that you +know the API Level of the Android platform it runs.

    + +

    If you build an application using the Android 1.5 library and your +application makes use of any APIs introduced in API Level 3, you must set the +android:minSdkVersion attribute in the application's manifest to +"3".

    + +

    Specifically, you define 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="3" />
    +  ...
    +</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 +a compatible version of the Android platform. In turn, this ensures that your +application will function properly on their devices. This is especially +important if your application uses APIs or system features +introduced in Android 1.5.

    + +

    If your application uses APIs introduced in Android 1.5 but does not +declare <uses-sdk minSdkVersion="3" />, then it will +run properly on Android 1.5 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.5 APIs.

    + +

    Conversely, if your application does not use any new APIs introduced in +Android 1.5, the application will in most cases function normally on devices +running a later version of the platform. However, if you have published +the application, you are strongly encouraged to install and test your +application on the Android 1.5 system image included in the SDK. This will +ensure a smooth transition for users, as they upgrade their devices to +the new version of the Android platform.

    + +

    Finally, if your application does not use any new APIs introduced since +Android 1.1, you can indicate general Android 1.1 compatibility by +setting the attribute to "2". If your application does not use any +new APIs introduced since Android 1.0, you can remove the attribute or +set it to "1". However, +before publishing your application, you must make sure to compile your +application against the Android library that corresponds to the application's +minSdkVeresion value.

    + +

    Built-in Applications

    + +

    The system image includes these built-in applications:

    +
      +
    • Alarm Clock
    • +
    • Browser
    • +
    • Calculator
    • +
    • Camcorder
    • +
    • Camera
    • +
    • Contacts
    • +
    • Custom Locale (developer app)
    • +
    • Dev Tools (developer app)
    • +
    • Dialer
    • +
    • Email
    • +
    • Gallery
    • +
    • Messaging
    • +
    • Music
    • +
    • Settings
    • +
    • Spare Parts (developer app)
    • +
    + +

    Locales

    + +

    The system image 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 will be +available in the Android 1.5 system image are listed below (with +language_country/region locale descriptor).

    + +
    +
      +
    • Chinese, PRC (zh_CN)
    • +
    • Chinese, Taiwan (zh_TW)
    • +
    • Czech (cs_CZ)
    • +
    • Dutch, Netherlands (nl_NL)
    • +
    • Dutch, Belgium (nl_BE)
    • +
    • English, US (en_US)
    • +
    • English, Britain (en_GB)
    • +
    • English, Canada(en_CA)
    • +
    • English, Australia (en_AU)
    • +
    • English, New Zealand (en_NZ)
    • +
    • English, Singapore(en_SG)
    • +
    • French, France (fr_FR)
    • +
    +
    +
  35. French, Belgium (fr_BE)
  36. +
  37. French, Canada (fr_CA)
  38. +
  39. French, Switzerland (fr_CH)
  40. +
  41. German, Germany (de_DE)
  42. +
  43. German, Austria(de_AT)
  44. +
  45. German, Switzerland (de_CH)
  46. +
  47. German, Liechtenstein (de_LI)
  48. +
  49. Italian, Italy (it_IT)
  50. +
  51. Italian, Switzerland (it_CH)
  52. +
  53. Japanese (ja_JP)
  54. +
  55. Korean (ko_KR)
  56. +
  57. Polish (pl_PL)
  58. +
  59. Russian (ru_RU)
  60. +
  61. Spanish (es_ES)
  62. + +
    + +

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

    + + + +

    New Features

    + +

    For a list of new system features, see the Android 1.5 Platform +Highlights document.

    + +

    API Changes

    + +

    Overview

    + +
      +
    • UI framework
    • +
        +
      • Framework for easier background/UI thread interaction
      • +
      • New SlidingDrawer widget
      • +
      • Horizontal ScrollView widget
      • +
      + +
    • Home Screen framework
    • +
        +
      • APIs for creating secure home screen widgets
      • +
      • APIs for populating live folders with custom content
      • +
      + +
    • Media framework
    • +
        +
      • Raw audio recording and playback APIs
      • +
      • Interactive MIDI playback engine
      • +
      • Video recording APIs for developers (3GP format)
      • +
      • Video and photo sharing Intents
      • +
      • Media search Intent
      • +
      +
    • Input Method framework
    • +
        +
      • Text prediction engine
      • +
      • Ability to provide downloadable IMEs to users
      • +
      +
    • Application-defined hardware requirements +

      Applications can now use a new element in their manifest files, +<uses-configuration> to indicate to the Android system what hardware +features they require in order to function properly. For example, an application +might use the element to specify that it requires a physical keyboard or a +particular navigation device, such as a trackball. Prior to installing the +application, the Android system checks the attributes defined for the +<uses-configuration> element and allows the installation to +continue only if the required hardware is present.

    • +
    • Speech recognition framework
    • +
        +
      • Support for using speech recognition libraries via Intent
      • +
      +
    • Misc API additions
    • +
        +
      • LocationManager - Applications can get location change updates via +Intent
      • +
      • WebView - Touch start/end/move/cancel DOM event support
      • +
      • SensorManager - redesigned sensor APIs
      • +
      • GLSurfaceView - convenience framework for creating OpenGL +applications
      • +
      • Broadcast Intent for app update install succeeded - for smoother app +upgrade experience
      • +
      + +
    + +

    API Change Details

    + +

    For a detailed view of API changes in this platform (API Level 3), see the API Differences Report.

    diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs index 8c7a0a764fe65..1e5122ffb6443 100644 --- a/docs/html/sdk/sdk_toc.cs +++ b/docs/html/sdk/sdk_toc.cs @@ -2,17 +2,17 @@
    • -

      Android 1.5 SDK, r1

      Android SDK, r

      Current SDK Release

    • -

      Android System Images

      +

      System Image Version Notes

      • Android 1.5 Version Notes
      • Android 1.1 Version Notes
      • @@ -29,8 +29,9 @@
      • Previous SDK Releases

      • Date: Tue, 21 Apr 2009 19:09:24 -0700 Subject: [PATCH 16/70] AI 147306: re-write the Developing in Other IDEs doc with updated information for 1.5 BUG=1796104 Automated import of CL 147306 --- docs/html/guide/developing/other-ide.jd | 485 ++++++++++++++++++------ 1 file changed, 363 insertions(+), 122 deletions(-) diff --git a/docs/html/guide/developing/other-ide.jd b/docs/html/guide/developing/other-ide.jd index 7bcb509a4f4ee..5db4f8d19b221 100644 --- a/docs/html/guide/developing/other-ide.jd +++ b/docs/html/guide/developing/other-ide.jd @@ -1,167 +1,408 @@ -page.title=In Other IDEs +page.title=Developing In Other IDEs @jd:body + +

        The recommended way to develop an Android application is to use - Eclipse with the Android - Development Tools (ADT) plugin, provided in the SDK. The ADT plugin - provides editing, building,and debugging functionality integrated right into the IDE.

        +Eclipse with the ADT plugin. +The ADT plugin provides editing, building, debugging, and .apk packaging and signing functionality +integrated right into the IDE.

        -

        However, if you'd rather develop your application in another IDE, such as IntelliJ, - or use Eclipse without the ADT plugin, you can do that instead. The SDK - provides the tools you need to set up, build, and debug your application. -

        +

        However, if you'd rather develop your application in another IDE, such as IntelliJ, +or in a basic editor, such as Emacs, you can do that instead. The SDK +includes all the tools you need to set up an Android project, build it, debug it and then +package it for distribution. This document is your guide to using these tools.

        -

        Creating an Android Project

        +

        Essential Tools

        -

        The Android SDK includes activityCreator, a program that generates a number of stub files for your project, as well as a build file. You can use the program to create an Android project for new code or from existing code, such as the sample applications included in the SDK. For Linux and Mac, the SDK provides activitycreator and for Windows, activityCreator.bat, a batch script. Regardless of platform, you can use activitycreator in the same way.

        +

        When developing in IDEs or editors other than Eclipse, you'll require +familiarity with the following Android SDK tools:

        -

        To run activityCreator and create an Android project, follow these steps:

        +
        +
        android
        +
        To create/update Android projects and to create/move/delete AVDs.
        +
        Android Emulator
        +
        To run your Android applications on an emulated Android platform.
        +
        Android Debug Bridge
        +
        To interface with your emulator or connected device (install apps, + shell the device, issue commands, etc.). +
        +
        -
          -
        1. In the command line, change to the tools/ directory of the SDK and create a new directory for your project files. If you are creating a project from existing code, change to the root folder of your application instead.
        2. +

          In addition to the above tools, included with the SDK, you'll use the following +open source and third-party tools:

          -
        3. Run activityCreator. In the command, you must specify a fully-qualified class name as an argument. If you are creating a project for new code, the class represents the name of a stub class that the script will create. If you are creating a project from existing code, you must specify the name of one Activity class in the package. Command options for the script include: -

            -
          • --out <folder> which sets the output directory. By default, the output directory is the current directory. If you created a new directory for your project files, use this option to point to it.
          • -
          • --ide intellij, which generates IntelliJ IDEA project files in the newly created project
          • -
          -
        4. -
        +
        +
        Ant
        +
        To compile and build your Android project into an installable .apk file.
        +
        Keytool
        +
        To generate a keystore and private key, used to sign your .apk file.
        +
        Jarsigner (or similar signing tool)
        +
        To sign your .apk file with a private key generated by keytool.
        +
        -

        Here's an example:

        +

        In the topics that follow, you'll be introduced to each of these tools as necessary. +For more advanced operations, please read the respective documentation for each tool.

        + + +

        Creating an Android Project

        + +

        To create an Android project, you must use the android tool. When you create +a new project with android, it will generate a project directory +with some default application files, stub files, configuration files and a build file.

        + + +

        Creating a new Project

        + +

        If you're starting a new project, use the android create project +command to generate all the necessary files and folders.

        + +

        To create a new Android project, open a command-line, +navigate to the tools/ directory of your SDK and run:

        -~/android_linux_sdk/tools $ ./activityCreator.py --out myproject your.package.name.ActivityName
        -package: your.package.name
        -out_dir: myproject
        -activity_name: ActivityName
        -~/android_linux_sdk/tools $ 
        - -

        The activityCreator script generates the following files and directories (but will not overwrite existing ones):

        +android create project \ +--target <targetID> \ +--path /path/to/your/project \ +--activity <your_activity_name> \ +--package <your_package_namespace> +
          -
        • AndroidManifest.xml The application manifest file, synced to the specified Activity class for the project.
        • -
        • build.xml An Ant file that you can use to build/package the application.
        • -
        • src/your/package/name/ActivityName.java The Activity class you specified on input.
        • -
        • your_activity.iml, your_activity.ipr, - your_activity.iws    [only - with the -ide intelliJ flag] intelliJ project - files.
        • -
        • res/   A directory to hold resources.
        • -
        • src/    The source directory. -
        • bin/    The output directory for the build script.
        • +
        • target is the "build target" for your application. It corresponds + to an Android platform library (including any add-ons, such as Google APIs) that you would like to + build your project against. To see a list of available targets and their corresponding IDs, + execute: android list targets.
        • +
        • path is the location of your project directory. If the directory does not exist, + it will be created for you.
        • +
        • activity is the name for your {@link android.app.Activity} class. This class file + will be created for you inside + <path_to_your_project>/src/<your_package_namespace_path>/.
        • +
        • package is the package namespace for your project, following the same rules as for + packages in the Java programming language.
        -

        You can now move your folder wherever you want for development, but keep in mind - that you'll have to use the adb program in the tools/ folder to - send files to the emulator, so you'll need access between your solution and - the tools/ folder.

        +

        Here's an example:

        +
        +android create project \
        +--target 1 \
        +--path ./myProject \
        +--activity MyActivity \
        +--package com.example.myproject
        +
        -

        Also, you should refrain from moving the - location of the SDK directory, since this will break the build scripts (they - will need to be manually updated to reflect the new SDK location before they will - work again).

        - -

        Building the Application with Ant

        -

        Use the Ant build.xml file generated by - activityCreator to build your application.

        -
          -
        1. If you don't have it, you can obtain Ant from the - Apache Ant home page. Install it and make - sure it is on your executable path.
        2. -
        3. Before calling Ant, you need to declare the JAVA_HOME environment variable to specify the path to where the JDK is installed. -

          Note: When installing JDK on Windows, the default is to install in the "Program Files" directory. This location will cause ant to fail, because of the space. To fix the problem, you can specify the JAVA_HOME variable like this: set JAVA_HOME=c:\Prora~1\Java\. The easiest solution, however, is to install JDK in a non-space directory, for example: c:\java\jdk1.6.0_02.

          -
        4. - +

          The tool generates the following files and directories:

          -
        5. If you have not done so already, follow the instructions for Creating a - New Project above to set up the project.
        6. -
        7. You can now run the Ant build file by simply typing ant in the same folder - as the build.xml file for your project. Each time you change - a source file or resource, you should run ant again and it will package up the - latest version of the application for you to deploy.
        8. -
        +
          +
        • AndroidManifest.xml - The application manifest file, + synced to the specified Activity class for the project.
        • +
        • build.xml - Build file for Ant.
        • +
        • default.properties - Properties for the build system. Do not modify + this file.
        • +
        • build.properties - Customizable properties for the build system. You can edit this + file to overried default build settings used by Ant.
        • +
        • src/your/package/namespace/ActivityName.java - The Activity class + you specified during project creation.
        • +
        • bin/ - Output directory for the build script.
        • +
        • gen/ - Holds Ant-generated files, such as R.java.
        • +
        • libs/ - Holds private libraries.
        • +
        • res/ - Holds project resources.
        • +
        • src/ - Holds source code.
        • +
        • tests/ - Holds a duplicate of all-of-the-above, for testing purposes.
        • +
        -

        Setting Up Application Signing

        +

        Once you've created your project, you're ready to begin development. +You can move your project folder wherever you want for development, but keep in mind +that you must use the Android Debug Bridge +(adb) — located in the SDK tools/ directory — to send your application +to the emulator (discussed later). So you need access between your project solution and +the tools/ folder.

        -

        As you begin developing Android applications, you should understand that all +

        Note: You should refrain from moving the +location of the SDK directory, because this will break the build scripts. (They +will need to be manually updated to reflect the new SDK location before they will +work again.)

        + + +

        Updating a project

        + +

        If you're upgrading a project from an older version of the Android SDK or want to create +a new project from existing code, use the +android update project command to update the project to the new development +environment. You can also use this command to revise the build target of an existing project +(with the --target option). The android tool will generate any files and +folders (listed in the previous section) that are either missing or need to be updated, +as needed for the Android project.

        + +

        To update an existing Android project, open a command-line +and navigate to the tools/ directory of your SDK. Now run:

        +
        +android update project --target <targetID> --path path/to/your/project/
        +
        + +
          +
        • target is the "build target" for your application. It corresponds to + an Android platform library (including any add-ons, such as Google APIs) that you would + like to build your project against. To see a list of available targets and their corresponding IDs, + execute: android list targets.
        • +
        • path is the location of your project directory.
        • +
        + +

        Here's an example:

        +
        +android update project --target 2 --path ./myProject
        +
        + + +

        Preparing to Sign Your Application

        + +

        As you begin developing Android applications, understand that all Android applications must be digitally signed before the system will install -them on the emulator or an actual device.

        +them on an emulator or device. There are two ways to do this: +with a debug key (for immediate testing on an emulator or development device) +or with a private key (for application distribution).

        -

        The Android build tools help you get started quickly by signing your .apk -files with a debug key, prior to installing them on the emulator. This means +

        The Android build tools help you get started by automatically signing your .apk +files with a debug key at build time. This means that you can compile your application and install it on the emulator without having to generate your own private key. However, please note that if you intend -to publish your application, you must sign the application with your +to publish your application, you must sign the application with your own private key, rather than the debug key generated by the SDK tools.

        -

        To sign your applications, the ADT plugin requires the Keytool utility -included in the JDK. To set up your development environment for -signing, all you need to do is make sure that Keytool is available on your -machine that the build tools know how to find it.

        - -

        In most cases, you can tell the SDK build tools how to find Keytool by making -sure that -your JAVA_HOME environment variable is set and that it references a suitable -JDK. Alternatively, -you can add the JDK version of Keytool to your PATH variable.

        - -

        If you are developing on a version of Linux that originally came with Gnu -Compiler for Java, -make sure that the system is using the JDK version of Keytool, rather than the -gcj version. -If keytool is already in your PATH, it might be pointing to a symlink at -/usr/bin/keytool. -In this case, check the symlink target to make sure that it points to the -keytool in the JDK.

        - -

        In all cases, please read and understand Signing Your -Applications, which provides an overview of application signing on Android -and what it means to you as an Android application developer.

        +

        Please read Signing Your +Applications, which provides a thorough guide to application signing on Android +and what it means to you as an Android application developer.

        -

        Running an Android Application

        -

        To run a compiled - application, you will upload the .apk file to the /data/app/ directory - in the emulator using the adb tool as described here:

        + +

        Building Your Application

        + +

        There are two ways to build your application: one for testing/debugging your application +— debug mode — and one for building your final package for release — +release mode. As described in the previous +section, your application must be signed before it can be installed on an emulator +or device.

        + +

        Whether you're building in debug mode or release mode, you +need to use the Ant tool to compile and build your project. This will create the .apk file +that is installed onto the emulator or device. When you build in debug mode, the .apk +file is automatically signed by the SDK tools with a debug key, so it's instantly ready for installation +(but only onto an emulator or attached development device). +When you build in release mode, the .apk file is unsigned, so you must manually +sign it with your own private key, using Keytool and Jarsigner.

        + +

        It's important that you read and understand +Signing Your Applications, particularly +once you're ready to release your application and share it with end-users. That document describes +the procedure for generating a private key and then using it to sign your .apk file. +If you're just getting started, however, +you can quickly run your applications on an emulator or your own development device by building in +debug mode.

        + +

        If you don't have Ant, you can obtain it from the +Apache Ant home page. Install it and make +sure it is in your executable PATH. Before calling Ant, you need to declare the JAVA_HOME +environment variable to specify the path to where the JDK is installed.

        + +

        Note: When installing JDK on Windows, the default is to install +in the "Program Files" directory. This location will cause ant to fail, because of +the space. To fix the problem, you can specify the JAVA_HOME variable like this: +set JAVA_HOME=c:\Prora~1\Java\. The easiest solution, however, is to +install JDK in a non-space directory, for example: c:\java\jdk1.6.0_02.

        + + +

        Building in debug mode

        + +

        For immediate application testing and debugging, you can build your application +in debug mode and immediately install it on an emulator. In debug mode, the build tools automatically +sign your application with a debug key. However, you can (and should) also test your +application in release mode. Debug mode simply allows you to run your application without +manually signing the application.

        + +

        To build in debug mode:

        +
          -
        1. Start the emulator (run <your_sdk_dir>/tools/emulator from the command line)
        2. -
        3. On the emulator, navigate to the home screen (it is best not to have that - application running when you reinstall it on the emulator; press the Home key - to navigate away from that application).
        4. -
        5. Run adb install myproject/bin/<appname>.apk to upload - the executable. So, for example, to install the Lunar Lander sample, navigate - in the command line to <your_sdk_dir>/sample/LunarLander and type ../../tools/adb install bin/LunarLander.apk
        6. -
        7. In the emulator, open the list of available applications, and scroll down to - select and start your application.
        8. +
        9. Open a command-line and navigate to the root of your project directory.
        10. +
        11. Use Ant to compile your project in debug mode: +
          ant debug
          +

          This creates your Android application .apk file inside the project bin/ + directory, named <your_DefaultActivity_name>-debug.apk. The file + is already signed with the debug key.

          +
        -

        Note: When you install an Activity for the - first time, you might have to restart the emulator before it shows up in the - application launcher, or other applications can call it. This is because - the package manager usually only examines manifests completely on emulator - startup.

        -

        Attaching a Debugger to Your Application

        +

        Each time you change a source file or resource, you must run Ant +again in order to package up the latest version of the application.

        + +

        To install and run your application on an emulator, see the following section +about Running Your Application.

        + + +

        Building in release mode

        + +

        When you're ready to release and distribute your application to end-users, you must build +your application in release mode. Once you have built in release mode, it's a good idea to perform +additional testing and debugging with the final .apk.

        + +

        To build in release mode:

        + +
          +
        1. Open a command-line and navigate to the root of your project directory.
        2. +
        3. Use Ant to compile your project in release mode: +
          ant release
          +

          This creates your Android application .apk file inside the project bin/ + directory, named <your_DefaultActivity_name>.apk.

          +

          Note: The .apk file is unsigned at this point. + You can't install it on an emulator or device until you sign it with your private key.

          +
        4. +
        + +

        Because release mode builds your application unsigned, your next step is to sign +it with your private key, in order to distribute it to end-users. To complete this procedure, +read Signing Your Applications.

        + +

        Once you have signed your application with a private key, you can install it on an +emulator or device as discussed in the following section about +Running Your Application. +You can also try installing it onto a device from a web server. +Simply upload the signed APK to a web site, then load the .apk URL in your Android web browser to +download the application and begin installation. +(On your device, be sure you have enabled Settings > Applications > Unknown sources.)

        + + +

        Running Your Application

        + +

        Unless you'll be running your application on device hardware, +you need to launch an emulator upon which you will install your application. +An instance of the Android emulator runs a specific Android platform with specific device configuration +settings. The platform and configuration is defined with an Android Virtual Device (AVD). +So before you can launch your emulator, you must define an AVD.

        + +

        If you'll be running your application on device hardware, please read about +Developing On a Device instead.

        + +
          +
        1. Create an AVD +
            +
          1. Open a command-line and navigate to your SDK package's + tools/ directory.
          2. +
          3. First, you need to select a "deployment target." To view available targets, execute: +
            android list targets
            +

            This will output a list of available Android targets, such as:

            +
            +id:1
            +    Name: Android 1.1
            +    Type: platform
            +    API level: 2
            +    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
            +id:2
            +    Name: Android 1.5
            +    Type: platform
            +    API level: 3
            +    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
            +
            +

            Find the target that matches the Android platform upon which you'd like + to run your application. Note the integer value of the id — + you'll use this in the next step.

            +
          4. +
          5. Create a new AVD using your selected deployment target: +
            android create avd --name <your_avd_name> --target <targetID>
            +
          6. Next, you'll be asked whether you'd like to create a custom hardware profile. + If you respond "yes," you'll be presented with a series of prompts to define various aspects of the + device hardware (leave entries blank to use default values, which are shown in brackets). Otherwise, + press return to use all default values ("no" is the default).
          7. + +
          +
        2. + +
        3. Launch an emulator
        4. +

          From your SDK's tools/ directory, launch an emulator + using an existing AVD (created above): +

          emulator -avd <your_avd_name>
          +

          An instance of the emulator will now launch, running the target and configuration + defined by your AVD.

          + + +
        5. Install your application +

          From your SDK's tools/ directory, install the .apk on the emulator: +

          adb install /path/to/your/application.apk
          +

          If there is more than one emulator running, you must specify the emulator upon which to install + the application, by its serial number, with the -s option. For example:

          +
          adb -s emulator-5554 install /my/project/path/myapp.apk
          +
        6. +
        7. Open your application +

          In the emulator, open the list of available applications to find + and open your application.

          +
        8. +
        + +

        If you don't see your application on the emulator. Try restarting the emulator +(with the same AVD). Sometimes when you install an Activity for the +first time, it won't show up in the application launcher or be accessible by other +applications. This is because the package manager usually examines manifests +completely only on emulator startup.

        + +

        Tip: If you have only one emulator running, +you can build your application and install it on the emulator in one simple step. +Navigate to the root of your project directory and use Ant to compile the project +with install mode: +ant install. This will build your application, sign it with the debug key, +and install it on the currently running emulator. +If there is more than one emulator currently running +when using the install command, it will fail — it can't select between the +multiple emulators.

        + +

        For more information on the tools used above, please see the following documents:

        + + + +

        Attaching a Debugger to Your Application

        +

        This section describes how to display debug information on the screen (such as CPU usage), as well as how to hook up your IDE to debug running applications on the emulator.

        Attaching a debugger is automated using the Eclipse plugin, but you can configure other IDEs to listen on a debugging port to receive debugging - information.

        + information:

          -
        1. Start the Dalvik Debug Monitor Server (DDMS) - tool , which +
        2. Start the Dalvik Debug Monitor + Server (DDMS) tool, which acts as a port forwarding service between your IDE and the emulator.
        3. Set optional debugging configurations on - your emulator, such as blocking application startup for an activity + your emulator, such as blocking application startup for an Activity until a debugger is attached. Note that many of these debugging options can be used without DDMS, such as displaying CPU usage or screen refresh rate on the emulator.
        4. -
        5. Configure your IDE to attach to port 8700 for debugging. We - include information on - how to set up Eclipse to debug your project.
        6. - +
        7. Configure your IDE to attach to port 8700 for debugging. Read + about + Configuring Your IDE to Attach to the Debugging Port.
        From 9d8dd806d90bd7bdcc0272f2312f334914921e0b Mon Sep 17 00:00:00 2001 From: Scott Main <> Date: Tue, 21 Apr 2009 19:17:59 -0700 Subject: [PATCH 17/70] AI 147311: update eclipse docs to include necessary AVD procedures and discuss relevant target facilities BUG=1796104 Automated import of CL 147311 --- docs/html/guide/developing/eclipse-adt.jd | 504 +++++++++++++++------- 1 file changed, 352 insertions(+), 152 deletions(-) diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd index 8c482ee40ce57..4f332b13e8cb5 100644 --- a/docs/html/guide/developing/eclipse-adt.jd +++ b/docs/html/guide/developing/eclipse-adt.jd @@ -1,193 +1,393 @@ -page.title=In Eclipse, with ADT +page.title=Developing In Eclipse, with ADT @jd:body -

        The Android Development Tools (ADT) plugin for Eclipse adds powerful extensions to the Eclipse integrated development environment. It allows you to create and debug Android applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android applications:

        + + + +

        The Android Development Tools (ADT) plugin for Eclipse adds powerful extensions to the Eclipse +integrated development environment. It allows you to create and debug Android applications easier +and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android +applications:

          -
        • It gives you access to other Android development tools from inside the Eclipse IDE. For example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage port-forwarding, set breakpoints, and view thread and process informationd irectly from Eclipse.
        • -
        • It provides a New Project Wizard, which helps you quickly create and set up all of the basic files you'll need for a new Android application.
        • +
        • It gives you access to other Android development tools from inside the Eclipse IDE. For +example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage +port-forwarding, set breakpoints, and view thread and process informationd irectly from Eclipse.
        • +
        • It provides a New Project Wizard, which helps you quickly create and set up all of the +basic files you'll need for a new Android application.
        • It automates and simplifies the process of building your Android application.
        • -
        • It provides an Android code editor that helps you write valid XML for your Android manifest and resource files.
        • +
        • It provides an Android code editor that helps you write valid XML for your Android +manifest and resource files.
        • +
        • It will even export your project into a signed APK, which can be distributed to users.
        -

        To begin developing Android applications in the Eclipse IDE with ADT, you first need to download the Eclipse IDE and then download and install the ADT plugin. To do so, follow the steps given in Installing the ADT Plugin, in the installation documentation included with your SDK package.

        +

        To begin developing Android applications in the Eclipse IDE with ADT, you first need to +download the Eclipse IDE and then download and install the ADT plugin. To do so, follow the +steps given in Installing +the ADT Plugin.

        -

        Once you've installed the ADT plugin, you begin by creating an Android -project and then set up a launch configuration. After that, you can write, run, and debug -your application.

        +

        If you are already developing applications using a version of ADT earlier than 0.9, make +sure to upgrade to the latest version before continuing. See the guide to +Update Your Eclipse ADT Plugin.

        -

        The sections below provide instructions assuming that you have installed the ADT plugin -in your Eclipse environment. If you haven't installed the ADT plugin, you should do that -before using the instructions below.

        +

        Note: This guide assumes you are using the latest version of +the ADT plugin (0.9). While most of the information covered also applies to previous +versions, if you are using an older version, you may want to consult this document from +the set of documentation included in your SDK package (instead of the online version).

        - -

        Creating an Android Project

        +

        Creating an Android Project

        -

        The ADT plugin provides a New Project Wizard that you can use to quickly create an -Eclipse project for new or existing code. To create the project, follow these steps:

        - - +

        The ADT plugin provides a New Project Wizard that you can use to quickly create a new +Android project (or a project from existing code). To create a new project:

          -
        1. Select File > New > Project
        2. -
        3. Select Android > Android Project, and press Next
        4. -
        5. Select the contents for the project: -
            -
          • Select Create new project in workspace to start a project for new code. -

            Enter the project name, the base package name, the name of a single Activity class to create as a stub .java file, and a name to use for your application.

          • -
          • Select Create project from existing source to start a project from existing code. Use this option if you want to build and run any of the sample applications included with the SDK. The sample applications are located in the samples/ directory in the SDK. -

            Browse to the directory containing the existing source code and click OK. If the directory contains a valid Android manifest file, the ADT plugin fills in the package, activity, and application names for you.

            -
          • -
          -
        6. -
        7. Press Finish.
        8. -
        - -

        The ADT plugin creates the these folders and - files for you as appropriate for the type of project:

        - +
      • Select File > New > Project.
      • +
      • Select Android > Android Project, and click + Next.
      • +
      • Select the contents for the project: +
          +
        • Enter a Project Name. This will be the name of the folder where your + project is created.
        • +
        • Under Contents, select Create new project in workspace. + Select your project workspace location.
        • +
        • Under Target, select an Android target to be used as the project's Build Target. + The Build Target + specifies which Android platform you'd like your application built against. +

          Unless you know that you'll be using new APIs introduced in the latest SDK, you should + select a target with the lowest platform version possible, such as Android 1.1.

          +

          Note: You can change your the Build Target for your + project at any time: Right-click the project in the Package Explorer, select + Properties, select Android and then check + the desired Project Target.

          +
        • +
        • Under Properties, fill in all necessary fields.
            -
          • src/   A - folder that includes your stub .java Activity file.
          • -
          • res/   A folder for your - resources.
          • -
          • AndroidManifest.xml   The - manifest for your project.
          • +
          • Enter an Application name. This is the human-readable title for your + application — the name that will appear on the Android device.
          • +
          • Enter a Package name. This is the package namespace (following the same rules + as for packages in the Java programming language) where all your source code + will reside.
          • +
          • Select Create Activity (optional, of course, but common) and enter a name + for your main Activity class.
          • +
          • Enter a Min SDK Version. This is an integer that indicates + the minimum API Level required to properly run your application. + Entering this here automatically sets the minSdkVersion attribute in the + <uses-sdk> + of your Android Manifest file. If you're unsure of the appropriate API Level to use, + copy the API Level listed for the Build Target you selected in the Target tab.
          - +
        • +
        +
      • +
      • Click Finish.
- +

Tip: +You can also start the New Project Wizard from the New icon in the toolbar.

-

Creating a Launch Configuration

+

Once you complete the New Project Wizard, ADT creates the following +folders and files in your new project:

+
+
src/
+
Includes your stub Activity Java file. All other Java files for your application + go here.
+
<Android Version>/ (e.g., Android 1.1/)
+
Includes the android.jar file that your application will build against. + This is determined by the build target that you have chosen in the New Project + Wizard.
+
gen/
+
This contains the Java files generated by ADT, such as your R.java file + and interfaces created from AIDL files.
+
assets/
+
This is empty. You can use it to store raw asset files. See + Resources and Assets.
+
res/
+
A folder for your application resources, such as drawable files, layout files, string + values, etc. See + Resources and Assets.
+
AndroidManifest.xml
+
The Android Manifest for your project. See + The AndroidManifest.xml + File.
+
default.properties
+
This file contains project settings, such as the build target. This files is integral + to the project, as such, it should be maintained in a Source Revision Control system. + It should never be edited manually — to edit project properties, + right-click the project folder and select "Properties".
+
-

Before you can run and debug your application in Eclipse, you must create a launch configuration for it. A launch configuration specifies the project to launch, the Activity to start, the emulator options to use, and so on.

-

To create a launch configuration for the application, follow these steps as appropriate for your Eclipse version:

+

Running Your Application

+ +

Wait! Before you can run your application on the Android Emulator, +you must create an Android Virtual Device (AVD). +An AVD is a configuration that specifies the Android platform to be used on the emulator. +You can read more about AVDs in the Developing +Overview, but if you just want to get started, follow the simple guide below to create +an AVD.

+ +

If you will be running your applications only on actual device hardware, you do not +need an AVD — see +Developing On a Device for information +on running your applicaiton.

+ +

Creating an AVD

+ +

To avoid some explanation that's beyond the scope of this document, here's the +basic procedure to create an AVD:

    +
  1. Open a command-line (e.g.,"Command Prompt" application on Windows, or "Terminal" + on Mac/Linux) and navigate to your SDK package's + tools/ directory.
  2. +
  3. First, you need to select a Deployment Target. To view available targets, execute: +
    android list targets
    +

    This will output a list of available Android targets, such as:

    +
    +id:1
    +    Name: Android 1.1
    +    Type: platform
    +    API level: 2
    +    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
    +id:2
    +    Name: Android 1.5
    +    Type: platform
    +    API level: 3
    +    Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
    +
    +

    Find the target that matches the Android platform upon which you'd like + to run your application. Note the integer value of the id — + you'll use this in the next step.

    +
  4. +
  5. Create a new AVD using your selected Deployment Target. Execute: +
    android create avd --name <your_avd_name> --target <targetID>
    +
  6. Next, you'll be asked whether you'd like to create a custom hardware profile. + If you respond "yes," you'll be presented with a series of prompts to define various aspects of the + device hardware (leave entries blank to use default values, which are shown in brackets). Otherwise, + press return to use all default values ("no" is the default).
  7. + +
-
  • Open the launch configuration manager. -
      -
    • In Eclipse 3.3 (Europa), select Run > - Open Run Dialog... or Run > - Open Debug Dialog... as appropriate. -
    • -
    • In Eclipse 3.4 (Ganymede), select Run > - Run Configurations... or Run > - Debug Configurations... as appropriate. -
    • -
    -
  • -
  • In the project type list on the left, locate the Android Application item and double-click it (or right-click > New), to create a new launch configuration.
  • -
  • Enter a name for your configuration.
  • -
  • On the Android tab, browse for the project and Activity to start.
  • -
  • On the Target tab, set the desired screen and network properties, as well as any other emulator startup options.
  • -
  • You can set additional options on the Common tab as desired.
  • -
  • Press Apply to save the launch configuration, or press Run or Debug (as appropriate).
  • +

    That's it; your AVD is ready. In the next section, you'll see how the AVD is used +when launching your application on an emulator.

    +

    To learn more about creating and managing AVDs, please read the +Developing Overview +and android Tool documentation.

    + + +

    Running your application

    + +

    Note: Before you can run your application, be sure that +you have created an AVD with a target that satisfies your application's Build Target. +If an AVD cannot be found that meets the requirements of your Build Target, you will see +a console error telling you so and the launch will be aborted.

    + +

    To run (or debug) your application, select Run > Run (or +Run > Debug) from the Eclipse main menu. The ADT plugin +will automatically create a default launch configuration for the project.

    + +

    When you choose to run or debug your application, Eclipse will perform the following:

    + +
      +
    1. Compile the project (if there have been changes since the last build).
    2. +
    3. Create a default launch configuration (if one does not already exist for the project).
    4. +
    5. Install and start the application on an emulator or device (based on the Deployment Target + defined by the run configuration). +

      By default, Android application run configurations use an "automatic target" mode for + selecting a device target. For information on how automatic target mode selects a + deployment target, see Automatic and manual + target modes below.

      +
    6. +
    + +

    If debugging, the application will start in the "Waiting For Debugger" mode. Once the +debugger is attached, Eclipse will open the Debug perspective.

    + +

    To set or change the launch configuration used for your project, use the launch configuration manager. +See Creating a Launch Configuration for information.

    + + +

    Creating a Run Configuration

    + +

    The run configuration specifies the project to run, the Activity +to start, the emulator options to use, and so on. When you first run a project +as an Android Application, ADT will automatically create a run configuration. +The default run configuration will +launch the default project Activity and use automatic target mode for device selection +(with no preferred AVD). If the default setting don't suit your project, you can +customize the launch configuration or even create a new.

    + +

    To create or modify a launch configuration, follow these steps as appropriate +for your Eclipse version:

    + +
      +
    1. Open the run configuration manager. +
        +
      • In Eclipse 3.3 (Europa), select Run > + Open Run Dialog (or Open Debug Dialog) +
      • +
      • In Eclipse 3.4 (Ganymede), select Run > + Run Configurations (or + Debug Configurations) +
      • +
      +
    2. +
    3. Expand the Android Application item and create a new + configuration or open an existing one. +
        +
      • To create a new configuration: +
          +
        1. Select Android Application and click the New launch configuration + icon above the list (or, right-click Android Application and click + New).
        2. +
        3. Enter a Name for your configuration.
        4. +
        5. In the Android tab, browse and select the project you'd like to run with the + configuration.
        6. +
        +
      • To open an existing configuration, select the configuration name from the list + nested below Android Application.
      • +
      +
    4. +
    5. Adjust your desired launch configuration settings. +

      In the Target tab, consider whether you'd like to use Manual or Automatic mode + when selecting an AVD to run your application. + See the following section on Automatic and manual target + modes).

      +
    -

    Setting Up Application Signing

    +

    Automatic and manual target modes

    -

    As you begin developing Android applications, you should understand that all +

    By default, a run configuration uses the automatic target mode in order to select +an AVD. In this mode, ADT will select an AVD for the application in the following manner:

    + +
      +
    1. If there's a device or emulator already running and its AVD configuration + meets the requirements of the application's build target, the application is installed + and run upon it.
    2. +
    3. If there's more than one device or emulator running, each of which meets the requirements + of the build target, a "device chooser" is shown to let you select which device to use.
    4. +
    5. If there are no devices or emulators running that meet the requirements of the build target, + ADT looks at the available AVDs. If one meets the requirements of the build target, + the AVD is used to launch a new emulator, upon which the application is installed and run.
    6. +
    7. If all else fails, the application will not be run and you will see a console error warning + you that there is no existing AVD that meets the build target requirements.
    8. +
    + +

    However, if a "preferred AVD" is selected in the run configuration, then the application +will always be deployed to that AVD. If it's not already running, then a new emulator +will be launched.

    + +

    If your run configuration uses manual mode, then the "device chooser" +is presented every time that your application is run, so that you can select which AVD to use.

    + + +

    Signing your Applications

    + +

    As you begin developing Android applications, understand that all Android applications must be digitally signed before the system will install -them on the emulator or an actual device.

    +them on an emulator or an actual device. There are two ways to do this: +with a debug key (for immediate testing on an emulator or development device) +or with a private key (for application distribution).

    The ADT plugin helps you get started quickly by signing your .apk files with -a debug key, prior to installing them on the emulator. This means that you can -compile your application and install it on the emulator without having to -generate your own private key. However, please note that if you intend to -publish your application, you must sign the application with your own -private key, rather than the debug key generated by the SDK tools.

    +a debug key, prior to installing them on an emulator or development device. This means that you can +quickly run your application from Eclipse without having to +generate your own private key. No specific action on your part is needed, +provided ADT has access to Keytool.However, please note that if you intend +to publish your application, you must sign the application with your +own private key, rather than the debug key generated by the SDK tools.

    -

    To sign your applications, the ADT plugin requires the Keytool utility -included in the JDK. To set up your development environment for -signing, you need to make sure that Keytool is available on your -machine that the ADT plugin knows how to find it.

    - -

    In most cases, you can tell the SDK build tools how to find Keytool by making -sure that your JAVA_HOME environment variable is set and that it references a -suitable JDK. Alternatively, you can add the JDK version of Keytool to your -PATH variable.

    - -

    If you are developing on a version of Linux that originally came with Gnu -Compiler for Java, make sure that the system is using the JDK version of -Keytool, rather than the gcj version. If keytool is already in your PATH, it -might be pointing to a symlink at /usr/bin/keytool. In this case, check the -symlink target to make sure that it points to the keytool in the JDK.

    - -

    In all cases, please read and understand Signing Your -Applications, which provides an overview of application signing on Android -and what it means to you as an Android application developer.

    +

    Please read Signing Your +Applications, which provides a thorough guide to application signing on Android +and what it means to you as an Android application developer. The document also includes +a guide to exporting and signing your application with the ADT's Export Wizard.

    - +

    Eclipse Tips

    -

    Running and Debugging an Application

    +

    Executing arbitrary Java expressions in Eclipse

    -

    Once you've set up the project and launch configuration for your application, you can run or debug it as described below.

    +

    You can execute arbitrary code when paused at a breakpoint in Eclipse. For example, + when in a function with a String argument called "zip", you can get + information about packages and call class methods. You can also invoke arbitrary + static methods: for example, entering android.os.Debug.startMethodTracing() will + start dmTrace.

    +

    Open a code execution window, select Window>Show + View>Display from the main menu to open the + Display window, a simple text editor. Type your expression, highlight the + text, and click the 'J' icon (or CTRL + SHIFT + D) to run your + code. The code runs in the context of the selected thread, which must be + stopped at a breakpoint or single-step point. (If you suspend the thread + manually, you have to single-step once; this doesn't work if the thread is + in Object.wait().)

    +

    If you are currently paused on a breakpoint, you can simply highlight and execute + a piece of source code by pressing CTRL + SHIFT + D.

    +

    You can highlight a block of text within the same scope by pressing ALT +SHIFT + + UP ARROW to select larger and larger enclosing blocks, or DOWN ARROW to select + smaller blocks.

    +

    Here are a few sample inputs and responses in Eclipse using the Display window.

    -From the Eclipse main menu, select Run > Run or Run > Debug as appropriate, to run or debug the active launch configuration. - -

    Note that the active launch configuration is the one most recently selected in the Run configuration manager. It does not necessarily correspond to the application that is selected in the Eclipse Navigation pane (if any).

    - -

    To set or change the active launch configuration, use the launch configuration manager. See Creating a Launch Configuration for information about how to access the launch configuration manager..

    - -

    Running or debugging the application triggers these actions:

    -
    • Starts the emulator, if it is not already running.
    • -
    • Compiles the project, if there have been changes since the last build, and installs the application on the emulator.
    • -
    • Run starts the application.
    • -
    • Debug starts the application in "Wait for debugger" mode, then opens the Debug perspective and attaches the Eclipse Java debugger to the application.
    • - -
    + + + + + + + + + + + + + + + + + +
    InputResponse
    zip(java.lang.String) + /work/device/out/linux-x86-debug/android/app/android_sdk.zip
    zip.endsWith(".zip")(boolean) true
    zip.endsWith(".jar")(boolean) false
    +

    You can also execute arbitrary code when not debugging by using a scrapbook page. + Search the Eclipse documentation for "scrapbook".

    -

    Eclipse Tips

    -

    Executing arbitrary Java expressions in Eclipse

    -

    You can execute arbitrary code when paused at a breakpoint in Eclipse. For example, - when in a function with a String argument called "zip", you can get - information about packages and call class methods. You can also invoke arbitrary - static methods: for example, entering android.os.Debug.startMethodTracing() will - start dmTrace.

    -

    Open a code execution window, select Window>Show - View>Display from the main menu to open the - Display window, a simple text editor. Type your expression, highlight the - text, and click the 'J' icon (or CTRL + SHIFT + D) to run your - code. The code runs in the context of the selected thread, which must be - stopped at a breakpoint or single-step point. (If you suspend the thread - manually, you have to single-step once; this doesn't work if the thread is - in Object.wait().)

    -

    If you are currently paused on a breakpoint, you can simply highlight and execute - a piece of source code by pressing CTRL + SHIFT + D.

    -

    You can highlight a block of text within the same scope by pressing ALT +SHIFT - + UP ARROW to select larger and larger enclosing blocks, or DOWN ARROW to select - smaller blocks.

    -

    Here are a few sample inputs and responses in Eclipse using the Display window.

    - - - - - - - - - - - - - - - - - -
    InputResponse
    zip(java.lang.String) /work/device/out/linux-x86-debug/android/app/android_sdk.zip
    zip.endsWith(".zip")(boolean) true
    zip.endsWith(".jar")(boolean) false
    -

    You can also execute arbitrary code when not debugging by using a scrapbook page. - Search the Eclipse documentation for "scrapbook".

    - -

    Running DDMS Manually

    +

    Running DDMS Manually

    -

    Although the recommended way to debug is to use the ADT plugin, you can manually run DDMS and configure Eclipse to debug on port 8700. (Note: Be sure that you have first started DDMS).

    +

    Although the recommended way to debug is to use the ADT plugin, you can manually run +DDMS and configure Eclipse to debug on port 8700. (Note: Be sure that you +have first started DDMS).

    + + + From 2b52aa0b68769c6d64ead210208969515c7a8af8 Mon Sep 17 00:00:00 2001 From: Scott Main <> Date: Tue, 21 Apr 2009 19:22:40 -0700 Subject: [PATCH 18/70] AI 147314: change carousel SDK to 1.5; revise Google IO info BUG=1800649 Automated import of CL 147314 --- docs/html/index.jd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/html/index.jd b/docs/html/index.jd index bd681e2c6d977..aea229923ae1f 100644 --- a/docs/html/index.jd +++ b/docs/html/index.jd @@ -12,7 +12,7 @@ home=true Google I/O Developer Conference 2009
    -

    Google I/O is a two-day developer event that will take place May 27-28 at Moscone Center, San Francisco.

    +

    Google I/O is a two-day developer event that will take place May 27-28 at Moscone Center, San Francisco. The agenda includes a number of great sessions on Android topics by team engineers and other developers.

    Learn more »

    @@ -116,10 +116,10 @@ home=true 'sdk': { 'layout':"imgLeft", 'icon':"sdk-small.png", - 'name':"SDK 1.1 r1", + 'name':"SDK 1.5 r1", 'img':"sdk-large.png", - 'title':"Android 1.1 SDK r1", - 'desc': "

    A new Android SDK is available for download. The new SDK includes minor API changes, new UI localizations, bug fixes and some new application features.

    Download Android 1.1 SDK r1

    " + 'title':"Android 1.5 SDK r1", + 'desc': "

    The final version of the Android 1.5 SDK is now available. It includes new APIs for Android 1.5, updated developer tools, multiple platform versions, and a Google APIs Add-on.

    Download Android 1.5 SDK

    " }, 'mapskey': { From 7774462ac4fcb0423101655a204fee6698219e4a Mon Sep 17 00:00:00 2001 From: Scott Main <> Date: Tue, 21 Apr 2009 19:44:01 -0700 Subject: [PATCH 19/70] AI 147325: update the installing and upgrading docs for cupcake BUG=1793249 Automated import of CL 147325 --- docs/html/sdk/1.5_r1/installing.jd | 324 +++++++++++++++++++++- docs/html/sdk/1.5_r1/upgrading.jd | 422 ++++++++++++++++++++--------- 2 files changed, 622 insertions(+), 124 deletions(-) diff --git a/docs/html/sdk/1.5_r1/installing.jd b/docs/html/sdk/1.5_r1/installing.jd index a1f7cffb0576e..bd366ff1add9f 100644 --- a/docs/html/sdk/1.5_r1/installing.jd +++ b/docs/html/sdk/1.5_r1/installing.jd @@ -5,6 +5,328 @@ sdk.date=April 2009 page.title=Installing the Android SDK @jd:body -

    See the Download page for more information.

    + +

    This page describes how to install the Android SDK and set up your +development environment. If you haven't downloaded the SDK, you can +do so from the +Download page. Once you've downloaded +the SDK, return here.

    + +

    If you encounter any problems during installation, see the +Installation Notes at the bottom of +this page.

    + +

    Upgrading?

    +

    If you have already developed applications using an earlier version +of the SDK, please read +Upgrading the +SDK, instead. +

    + + +

    Preparing for Installation

    + +

    Before you begin, take a moment to confirm that your development machine meets the +System Requirements. +

    + +

    If you will be developing on Eclipse with the Android Development +Tools (ADT) Plugin — the recommended path if you are new to +Android — make sure that you have a suitable version of Eclipse +installed on your computer (3.3 or newer). If you need to install Eclipse, you can +download it from this location:

    + +

    http://www.eclipse.org/downloads/

    + +

    A Java or RCP version of Eclipse is recommended.

    + +

    Installing the SDK

    + +

    After downloading the SDK, unpack the .zip archive to a suitable location on your machine. +By default, the SDK files are unpacked into a directory named +android_sdk_<platform>_<release>. +The directory contains a local copy of the documentation (accessible by opening +documentation.html in your browser) and the subdirectories +tools/, add-ons/, platforms/, and others. Inside +each subdirectory of platforms/ you'll find samples/, which includes +code samples that are specific to each version of the platform.

    + +

    Make a note of the name and location of the unpacked SDK directory on your system — you +will need to refer to the SDK directory later, when setting up the Android plugin or when +using the SDK tools.

    + +

    Optionally, you may want to add the location of the SDK's primary tools directory +to your system PATH. The primary tools/ directory is located at the root of the +SDK folder. Adding tools to your path lets you run Android Debug Bridge (adb) and +the other command line tools without +needing to supply the full path to the tools directory.

    +
      +
    • On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look + for a line that sets the PATH environment variable and add the + full path to the tools/ directory to it. If you don't + see a line setting the path, you can add one:
    • + +
        export PATH=${PATH}:<your_sdk_dir>/tools
      + +
    • On a Mac, look in your home directory for .bash_profile and + proceed as for Linux. You can create the .bash_profile if + you haven't already set one up on your machine.
    • + +
    • On Windows, right-click on My Computer, and select Properties. + Under the Advanced tab, hit the Environment Variables button, and in the + dialog that comes up, double-click on Path (under System Variables). Add the full path to the + tools/ directory to the path.
    • +
    + +

    Note that, if you update your SDK in the future, you +should remember to update your PATH settings to point to the new location, if different.

    + +

    If you will be using the Eclipse IDE as your development environment, +the next section describes how to install the Android Development Tools plugin and set up Eclipse. +If you choose not to use Eclipse, you can +develop Android applications in an IDE of your choice and then compile, debug and deploy using +the tools included in the SDK (skip to Next Steps).

    + + +

    Installing the ADT Plugin for Eclipse

    + +

    Android offers a custom plugin for the Eclipse IDE, called Android +Development Tools (ADT), that is designed to give you a powerful, +integrated environment in which to build Android applications. It +extends the capabilites of Eclipse to let you quickly set up new Android +projects, create an application UI, add components based on the Android +Framework API, debug your applications using the Android SDK tools, and even export +signed (or unsigned) APKs in order to distribute your application.

    + +

    In general, using Eclipse with ADT is a highly recommended +approach to Android development and is the fastest way to get started. +(If you prefer to work in an IDE other than Eclipse, +you do not need to install Eclipse or ADT, instead, you can directly +use the SDK tools to build and debug your application.)

    + +

    Once you have Eclipse installed, as described in Preparing for +Installation, follow the steps below to +download the ADT plugin and install it in your respective Eclipse +environment.

    + + + + + + + +
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    + +
      +
    1. Start Eclipse, then select Help > Software Updates +> Find and Install....
    2. +
    3. In the dialog that appears, select Search for new features to install +and click Next.
    4. +
    5. Click New Remote Site.
    6. +
    7. In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and + enter the URL: +
      https://dl-ssl.google.com/android/eclipse/
      +

      If you have trouble aqcuiring the plugin, try using "http" in the URL, + instead of "https" (https is preferred for security reasons).

      +

      Click OK.

    8. +
    9. You should now see the new site added to the search list (and checked). + Click Finish.
    10. +
    11. In the subsequent Search Results dialog box, select the checkbox for the + Android Plugin. + This will select the nested tools: "Android DDMS" and "Android Developer Tools". + Click Next.
    12. +
    13. Read and accept the license agreement, then click Next.
    14. +
    15. On the following Installation window, click Finish.
    16. +
    17. The ADT plugin is not digitally signed. Accept the installation anyway + by clicking Install All.
    18. +
    19. Restart Eclipse.
    20. +
    + +
    + + +
      +
    1. Start Eclipse, then select Help > Software Updates....
    2. +
    3. In the dialog that appears, click the Available Software tab.
    4. +
    5. Click Add Site...
    6. +
    7. Enter the Location: +
      https://dl-ssl.google.com/android/eclipse/
      +

      If you have trouble aqcuiring the plugin, try using "http" in the Location URL, + instead of "https" (https is preferred for security reasons).

      +

      Click OK.

    8. +
    9. Back in the Available Software view, you should see the plugin listed by the URL, + with "Developer Tools" nested within it. Select the checkbox next to + Developer Tools and click Install...
    10. +
    11. On the subsequent Install window, "Android DDMS" and "Android Developer Tools" + should both be checked. Click Next.
    12. +
    13. Read and accept the license agreement, then click Finish.
    14. +
    15. Restart Eclipse.
    16. +
    + +
    + +

    Now modify your Eclipse preferences to point to the Android SDK directory:

    +
      +
    1. Select Window > Preferences... to open the Preferences + panel (Mac: Eclipse > Preferences).
    2. +
    3. Select Android from the left panel.
    4. +
    5. For the SDK Location in the main panel, click Browse... and +locate your downloaded SDK directory.
    6. +
    7. Click Apply, then OK.
    8. +
    + +

    Done! If you haven't encountered any problems, then you're ready to +begin developing Android applications. See the +Next Steps section for suggestions on how to start.

    + + +

    Troubleshooting ADT Installation

    +

    +If you are having trouble downloading the ADT plugin after following the steps above, here are +some suggestions:

    + +
      +
    • If Eclipse can not find the remote update site containing the ADT plugin, try changing + the remote site URL to use http, rather than https. That is, set the Location for the remote site to: +
      http://dl-ssl.google.com/android/eclipse/
    • +
    • If you are behind a firewall (such as a corporate firewall), make + sure that you have properly configured your proxy settings in Eclipse. + In Eclipse 3.3/3.4, you can configure proxy information from the main + Eclipse menu in Window (on Mac, Eclipse) > + Preferences > General > + Network Connections.
    • +
    +

    +If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you +can download the ADT zip file to your local machine and manually install the it: +

    +
      +
    1. Download the ADT zip file (do not unpack it).
    2. +
    3. Follow steps 1 and 2 in the default install instructions (above).
    4. +
    5. In Eclipse 3.3, click New Archive Site....
      + In Eclipse 3.4, click Add Site..., then Archive...
    6. +
    7. Browse and select the downloaded zip file.
    8. +
    9. Follow the remaining procedures, above, starting from steps 5.
    10. +
    +

    To update your plugin once you've installed using the zip file, you will have to +follow these steps again instead of the default update instructions.

    + +

    Other install errors

    + +

    Note that there are features of ADT that require some optional +Eclipse components (for example, WST). If you encounter an error when +installing ADT, your Eclipse installion might not include these components. +For information about how to quickly add the necessary components to your +Eclipse installation, see the troubleshooting topic +ADT +Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    + +

    For Linux users

    +

    If you encounter this error when installing the ADT Plugin for Eclipse: +

    +An error occurred during provisioning.
    +Cannot connect to keystore.
    +JKS
    +

    +...then your development machine lacks a suitable Java VM. Installing Sun +Java 6 will resolve this issue and you can then reinstall the ADT +Plugin.

    + + +

    Next Steps

    +

    Once you have completed installation, you are ready to +begin developing applications. Here are a few ways you can get started:

    + +

    Learn about Android

    +
      +
    • Take a look at the Dev + Guide and the types of information it provides
    • +
    • Read an introduction to Android as a platform in What is + Android?
    • +
    • Learn about the Android framework and how applications run on it in + Application + Fundamentals
    • +
    • Take a look at the Android framework API specification in the Reference tab
    • +
    + +

    Explore the SDK

    + + +

    Explore some code

    +
      +
    • Set up a Hello + World application (highly recommended, especially for Eclipse users)
    • +
    • Follow the + Notepad Tutorial to build a full Android application
    • +
    • Create a new project for one of the other sample applications + included in <sdk>/platforms/<platfrom>/samples, + then compile and run it in your development environment
    • +
    + +

    Visit the Android developer groups

    +
      +
    • Take a look at the Community tab to see a list of + Android developers groups. In particular, you might want to look at the + Android + Developers group to get a sense for what the Android developer + community is like.
    • +
    + + +

    Installation Notes

    + +

    Ubuntu Linux Notes

    + +
      +
    • If you need help installing and configuring Java on your + development machine, you might find these resources helpful: + +
    • +
    • Here are the steps to install Java and Eclipse, prior to installing + the Android SDK and ADT Plugin. +
        +
      1. If you are running a 64-bit distribution on your development + machine, you need to install the ia32-libs package using + apt-get:: +
        apt-get install ia32-libs
        +
      2. +
      3. Next, install Java:
        apt-get install sun-java6-bin
      4. +
      5. The Ubuntu package manager does not currently offer an Eclipse 3.3 + version for download, so we recommend that you download Eclipse from + eclipse.org (http://www.eclipse.org/ + downloads/). A Java or RCP version of Eclipse is recommended.
      6. +
      7. Follow the steps given in previous sections to install the SDK + and the ADT plugin.
      8. +
      +
    • +
    + +

    Other Linux Notes

    + +
      +
    • If JDK is already installed on your development computer, please + take a moment to make sure that it meets the version requirements listed + in the System Requirements. + In particular, note that some Linux distributions may include JDK 1.4 or Gnu + Compiler for Java, both of which are not supported for Android development.
    • +
    + diff --git a/docs/html/sdk/1.5_r1/upgrading.jd b/docs/html/sdk/1.5_r1/upgrading.jd index 532313110cb3e..0b7312b3166f2 100644 --- a/docs/html/sdk/1.5_r1/upgrading.jd +++ b/docs/html/sdk/1.5_r1/upgrading.jd @@ -2,175 +2,351 @@ page.title=Upgrading the SDK sdk.version=1.5_r1 @jd:body - +
  • UI +framework changes in Android 1.5 »
  • + -
  • Release Notes -

    Version details, known issues, and resolved issues.

  • - -
  • Android Developers Group -

    A forum where you can discuss migration issues and learn from other Android developers.

  • - -
  • Android Issue Tracker -

    If you think you may have found a bug, use the issue tracker to report it.

  • - - -
    - ---> - - -
    -
    - -

    Upgrading quickview

    -
      -
    • The Android 1.5 SDK uses a new project structure and a new ADT plugin (ADT 0.9).
    • -
    • To move existing projects into the SDK, you must make some minor changes in your development environment.
    • -
    • The new ADT plugin (ADT 0.9) is not compatible with projects created in previous SDKs.
    • -
    • You need to uninstall your existing ADT plugin, before installing ADT 0.9.
    • - -
    - -
    -

    See the Download page for more information.

    +

    This document describes how to move your development environment and existing +Android applications from an Android 1.0 or 1.1 SDK to the Android 1.5 SDK. +If you are migrating applications from an SDK older than 1.0, please also read the upgrading +document available in the Android 1.0 SDK package.

    -
      -
    1. Select Help > Software Updates > Find and Install....
    2. -
    3. Select Search for updates of the currently installed features and click Finish.
    4. -
    5. If any update for ADT is available, select and install.
    6. -
    7. Restart Eclipse.
    8. -
    -

    Alternatively,

    -
      -
    1. Select Help > Software Updates > Manage Configuration.
    2. - -
    3. Navigate down the tree and select Android Development Tools <version>
    4. -
    5. Select Scan for Updates under Available Tasks.
    6. +
    7. Select Help > Software Updates > + Manage Configuration.
    8. +
    9. Expand the list in the left panel to reveal the installed tools.
    10. +
    11. Right-click "Android Editors" and click Uninstall. Click OK + to confirm.
    12. +
    13. Restart Eclipse. +

      (Do not uninstall "Android Development Tools".)

    +
      -
    1. Select Help > Software Updates...
    2. +
    3. Select Help > Software Updates.
    4. Select the Installed Software tab.
    5. -
    6. Click Update...
    7. -
    8. If an update for ADT is available, select it and click Finish.
    9. +
    10. Select "Android Editors". Click Uninstall.
    11. +
    12. In the next window, be sure "Android Editors" is checked, then click Finish + to uninstall.
    13. +
    14. Restart Eclipse. +

      (Do not uninstall "Android Development Tools".)

    15. +
    + + + + + +

    Install the 0.9 ADT plugin

    + +

    Only install the new plugin once you've completed the procedure to +Uninstall your previous ADT plugin.

    + + + + + +
    Eclipse 3.3 (Europa)Eclipse 3.4 (Ganymede)
    + +
      +
    1. Select Help > Software Updates > + Find and Install.
    2. +
    3. Select Search for new features to install.
    4. +
    5. Select the Android plugin entry by checking the box next to it, + then click Finish. +

      (Your original entry for the plugin should still be here. If not, see the guide + to Installing the ADT Plugin.) +

    6. +
    7. In the results, be sure that "Developer Tools" is checked, then click Next.
    8. +
    9. Read and accept the license agreement, then click Next. +
    10. In the next window, click Finish to start installation.
    11. +
    12. The ADT plugin is not digitally signed. Accept the installation anyway by clicking + Install All.
    13. +
    14. Restart Eclipse.
    15. +
    +
    + +
      +
    1. Select Help > Software Updates.
    2. +
    3. Select the Available Software tab.
    4. +
    5. Expand the entry for the Andriod plugin (may be listed as the location URL) + and select "Developer Tools" by checking the box next to it, then click Install. +
    6. On the next window, "Android DDMS" and "Android Developer Tools" + should both be checked. Click Next. +
    7. Read and accept the license agreement, then click Finish.
    8. Restart Eclipse.
    -

    Update your Eclipse SDK Preferences

    +

    If you encounter problems, ensure your ADT is fully uninstalled and then +follow the guide to +Installing the ADT Plugin +for Eclipse.

    + +

    Update your Eclipse SDK Preferences

    The last step is to update your Eclipse preferences to point to the new SDK directory:

      -
    1. Select Window > Preferences... to open the Preferences panel. (Mac OSX: Eclipse > Preferences)
    2. +
    3. Select Window > Preferences to open the Preferences + panel (Mac: Eclipse > Preferences).
    4. Select Android from the left panel.
    5. -
    6. For the SDK Location in the main panel, click Browse... and locate the SDK directory.
    7. +
    8. For the SDK Location in the main panel, click Browse + and locate your SDK directory.
    9. Click Apply, then OK.
    -

    Migrate Your Applications, if Necessary

    -

    If (and only if) you have written apps in an SDK released previous to -the Android 1.0 SDK, you will need to migrate your applications. After -installing the new SDK and updating the ADT Plugin (if applicable), you -may encounter breakages in your application code, due to -framework and API changes. You'll need to update your code to match the -latest APIs.

    +

    Update Your Projects

    -

    One way to start is to open your project in Eclipse and see where the ADT -identifies errors in your application. You can also look up -specific changes in the Android APIs in the -android-1.5.html#api-changes -Android 1.5 Version Notes +

    You will now need to update any and all Android projects that you have +developed using a previous version of the Android SDK.

    -document.

    + +

    Eclipse users

    + +

    If you use Eclipse to develop applications, use the following procedure to +update each project:

    + +
      +
    1. Right-click on the individual project (in the Package Explorer) + and select Properties.
    2. +
    3. In the properties, open the Android panel and select a "build target" to compile + against. This SDK offers the Android 1.1 and Android 1.5 platforms to choose from. When + you are initially updating your projects to the new SDK, we recommend that you select a build + target with the Android 1.1 platform. Click Apply, then + OK.
    4. +
    + +

    The new plugin creates a gen/ folder in your project, in which it puts the +R.java file +and all automatically generated AIDL java files. If you get an error such as +The type R is already defined, +then you probably need to delete your old R.java or your old auto-generated +AIDL Java files in the src/ folder. +(This does not apply to your own hand-crafted parcelable AIDL java files.)

    + +

    Note that, with the Android 1.5 SDK, there is a new process for running +applications in the Android Emulator. +Specifically, you must create an Android Virtual Device (AVD) before you can launch an instance +of the Emulator. Before attempting to run your applications with the new SDK, +please continue with the section below to +Migrate Your Applications.

    + + +

    Ant users

    + +

    If you build your projects using the Ant tool (rather than with Eclipse), note the +following changes with the new SDK tools.

    + +

    build.xml has changed

    + +

    You must re-create your build.xml file.

    + +

    If you had customized your build.xml, first make a copy of it:

    + +
    +$ cd my-project
    +$ cp build.xml build.xml.old
    +
    + +

    Now use the new android tool (located in your_sdk/tools/) +to create a new build.xml that references +a specific platform target:

    + +
    $ android update project --path /path/to/my-project --target 1
    + +

    The "target" corresponds to an Android platform library (including any add-ons, such as +Google APIs) that you would like to build your project against. You can view a list of available +targets (and their corresponding integer ID) with the command, android list targets. +When you are initially updating your projects to the new SDK, we recommend that you select the +first target ("1"), which uses the Android 1.1 platform library.

    + +

    A gen/ folder will be created the first time you build and your R.java and +your AIDL Java files will be generated in here. You must remove +the old R.java and old auto-generated AIDL java files from the +src/ folder. (This +does not apply to your own hand-crafted parcelabe AIDL java files.)

    + +

    Note: The "activitycreator" tool has been replaced +by the new "android" tool. For information on creating new projects with the android tool, +see the documentation about Developing +In Other IDEs.

    + +

    Note that, with the Android 1.5 SDK, there is a new process for running +applications in the Android Emulator. +Specifically, you must create an Android Virtual Device (AVD) before you can launch an instance +of the Emulator. Before attempting to run your applications with the new SDK, +please continue with the section below to +Migrate Your Applications.

    + + +

    Migrate Your Applications

    + +

    After you have completed the process above to Update Your +Projects, you are strongly encouraged to run each of your applications in an instance +of the emulator running the Android 1.5 system image. It's possible (however, unlikely) +that you'll encounter some breakage in your application when you run your applications on +the Android 1.5 system image. Whether you believe your application will be affected by +platform changes or not, it's very important that you test the application's +forward-compatibility on Android 1.5.

    + +

    To test forward-compatibility, simply run your existing application (as-is) on an Android +Emulator that's running the Android 1.5 system image. The following procedure will guide +you through the process to running your existing applications on an emulator. Please read +the following guide completely before you begin.

    + +

    To test your application on an emulator running Android 1.5:

    +
      +
    1. Update Your Project (you should have done this + already, in the section above).
    2. +
    3. Run your existing project, as-is, on an emulator running the Android 1.5 system image. +

      As mentioned in the guide to Update Your Projects, + you should have selected a "build + target" of "1", which compiles your application against the Android 1.1 system image, so there + should be no new errors in your code.

      +

      Eclipse users: follow the + Eclipse guide to + Running Your Application.

      +

      Ant users: follow the + Ant guide to + Running Your Application +

      During the procedure to Running Your Application, select a "deployment target" + for the AVD that includes the Android 1.5 platform. + If your application utilizes the Google Maps APIs (i.e., + MapView), be certain to select a target that includes the Google APIs.

      +

      Once you complete the procedures to run your application in your respective environment, + linked above, return here.

      +
    4. +
    5. With your application running in the emulator, perform all regular testing on the application + to ensure that it functions normally (in both landscape and portrait orientations).
    6. +
    + +

    Chances are, your application runs just fine on the Android 1.5 platform — +new devices will be able to safely install and run your application and +current users who update their devices will be able to continue using your application as usual. +However, if something doesn't work the way you expect, then you might need to revisit +your project and make any necessary changes to your code.

    + +

    You can check for code breakages caused by API changes by opening your project +in Eclipse, changing the "build target" to one using the Android 1.5 platform, +and see where the ADT identifies errors in your code.

    + +

    There have been several API additions made for this release, but there have been +very few actual API changes. Only a couple (relatively unused) elements +have been removed and a few have been deprecated, so your applications written with the +Android 1.1 system library should work just fine. +Your application will be at highest risk of breakage if it uses Android APIs +that are not available in the public API documentation +or if it explicitly depends on system bugs. For information +about changes made to Android 1.5, refer to the following documents:

    +

    If you have additional trouble updating your code, visit the Android Developers Group to seek help from other Android developers.

    - -

    If you have modified one of the ApiDemos applications and would like to migrate it -to the new SDK, note that you will need to uninstall the version of ApiDemos that comes -preinstalled in the emulator. For more information, or if you encounter an "reinstallation" -error when running or installing ApiDemos, see the troubleshooting topic -I can't install ApiDemos -apps in my IDE because of a signing error for information about how to solve the problem.

    ---> \ No newline at end of file From 6565a5a3002410583b7bdaa5147879032bc3bfb2 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Tue, 21 Apr 2009 20:25:36 -0700 Subject: [PATCH 20/70] AI 147332: Miscellaneous doc changes for cupcake SDK BUG=1790234 Automated import of CL 147332 --- docs/html/community/index.jd | 2 +- docs/html/guide/appendix/faq/framework.jd | 17 +- .../guide/appendix/faq/troubleshooting.jd | 48 +- docs/html/guide/developing/app-signing.jd | 428 ------------------ docs/html/guide/developing/tools/avd.jd | 12 +- docs/html/guide/topics/media/index.jd | 2 +- docs/html/guide/topics/media/media.jd | 172 ------- 7 files changed, 20 insertions(+), 661 deletions(-) delete mode 100644 docs/html/guide/developing/app-signing.jd delete mode 100644 docs/html/guide/topics/media/media.jd diff --git a/docs/html/community/index.jd b/docs/html/community/index.jd index 2df4c01d946ba..ad3a199aa9985 100644 --- a/docs/html/community/index.jd +++ b/docs/html/community/index.jd @@ -77,7 +77,7 @@ phrasing your questions, read android-security-discuss -
  • Subscribe via email: android-secuirty-discuss@googlegroups.com +
  • Subscribe via email: android-security-discuss@googlegroups.com
  • diff --git a/docs/html/guide/appendix/faq/framework.jd b/docs/html/guide/appendix/faq/framework.jd index 76a19c56d19d8..33b69acf21502 100644 --- a/docs/html/guide/appendix/faq/framework.jd +++ b/docs/html/guide/appendix/faq/framework.jd @@ -12,7 +12,7 @@ parent.link=index.html from one Activity/Service to another?
  • How can I check if an Activity is already running before starting it?
  • -
  • If an Activity starts a remote service,is +
  • If an Activity starts a remote service, is there any way for the Service to pass a message back to the Activity?
  • How to avoid getting the Application not responding dialog?
  • @@ -20,7 +20,6 @@ parent.link=index.html added or removed? - @@ -32,7 +31,7 @@ default. If needed, you can declare an android:process attribute in your manifest file, to explicitly place a component (Activity/Service) in another process.

    - + @@ -47,7 +46,7 @@ separate pool of transaction threads in each process to dispatch all incoming IPC calls. The developer should create separate threads for any long-running code, to avoid blocking the main UI thread.

    - + @@ -128,7 +127,7 @@ the Data Storage for further details on how to use these components.

    - + @@ -140,7 +139,7 @@ or to bring the activity stack to the front if is already running in the background— is the to use the NEW_TASK_LAUNCH flag in the startActivity() call.

    - + @@ -156,7 +155,7 @@ messages.

    The sample code for remote service callbacks is given in ApiDemos/RemoteService

    - + @@ -166,7 +165,7 @@ href="{@docRoot}guide/samples/ApiDemos/src/com/example/android/apis/app/RemoteSe document.

    - + @@ -194,5 +193,5 @@ removed.

    - + diff --git a/docs/html/guide/appendix/faq/troubleshooting.jd b/docs/html/guide/appendix/faq/troubleshooting.jd index 7c703e6d07f34..0cf1ab006d1e9 100644 --- a/docs/html/guide/appendix/faq/troubleshooting.jd +++ b/docs/html/guide/appendix/faq/troubleshooting.jd @@ -23,7 +23,6 @@ parent.link=index.html
  • When I go to preferences in Eclipse and select "Android", I get the following error message: Unsupported major.minor version 49.0.
  • I can't install ApiDemos apps in my IDE because of a signing error
  • I can't compile my app because the build tools generated an expired debug certificate
  • -
  • I can't run a JUnit test class in Eclipse/ADT
  • ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui".

    @@ -245,8 +244,8 @@ documentation.

    1. First, delete the debug keystore/key already generated by the Android build tools. Specifically, delete the debug.keystore file. On Linux/Mac OSX, the file is stored in ~/.android. On Windows XP, the file is stored in -C:\Documents and Settings\<user>\Local Settings\Application Data\Android. On Windows Vista, the file is stored in -C:\Users\<user>\AppData\Local\Android
    2. +C:\Documents and Settings\<user>\.android
      . On Windows Vista, the file is stored in +C:\Users\<user>\.android
    3. Next, you can either
      • Temporarily change your development machine's locale (date and time) to one that uses a Gregorian calendar, for example, United States. Once the locale is changed, use the Android build tools to compile and install your app. The build tools will regenerate a new keystore and debug key with valid dates. Once the new debug key is generated, you can reset your development machine to the original locale.
      • @@ -260,46 +259,3 @@ C:\Users\<user>\AppData\Local\Android

        For general information about signing Android applications, see Signing Your Applications.

        -

        I can't run a JUnit test class in Eclipse/ADT

        - -

        If you are developing on Eclipse/ADT, you can add JUnit test classes to your application. However, you may get an error when trying to run such a class as a JUnit test:

        - -
        Error occurred during initialization of VM
        -java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
        - -

        This error occurs because android.jar does not include complete Junit.* class implementations, but includes stub classes only.

        - -

        To add a JUnit class, you have to set up a JUnit configuration:. - -

          -
        1. In the Package Explorer view, select your project.
        2. -
        3. Open the launch configuration manager. -
            -
          • In Eclipse 3.3 (Europa), select Run > - Open Run Dialog... or Run > - Open Debug Dialog... . -
          • - -
          • In Eclipse 3.4 (Ganymede), select Run > - Run Configurations... or Run > - Debug Configurations... . -
          • -
          -
        4. -
        5. In the configuration manager, right-click the "JUnit" configuration type and select New
        6. -
        7. In the new configuration's Test tab, specify the project and test class, as well as any options for running the test.
        8. -
        9. In the new configuration's Classpath tab, find "Android Library" under Bootstrap Entries and remove it.
        10. -
        11. Still in the Classpath tab, select Bootstrap Entries and click the Advanced button.
        12. -
            -
          1. Choose Add Library and click OK.
          2. -
          3. Select JRE System Library and click Next.
          4. -
          5. Select Workspace Default JRE and click Finish.
          6. -
          -
        13. Select Bootstrap Entries again and click Advanced.
        14. -
            -
          1. Choose Add Library and click OK.
          2. -
          3. Select JUnit 3 and click Finish.
          4. -
          -
        -

        When configured in this way, your JUnit test class should now run properly.

        - diff --git a/docs/html/guide/developing/app-signing.jd b/docs/html/guide/developing/app-signing.jd deleted file mode 100644 index 582dfb267b6fa..0000000000000 --- a/docs/html/guide/developing/app-signing.jd +++ /dev/null @@ -1,428 +0,0 @@ -page.title=Signing Your Applications -@jd:body - -

        The Android system requires that all installed applications be digitally -signed with a certificate whose private key is held by the application's -developer. The system uses the certificate as a means of identifying the author of -an application and establishing trust relationships between applications, rather -than for controlling which applications the user can install. The certificate -does not need to be signed by a certificate authority: it is perfectly -allowable, and typical, for Android applications to use self-signed -certificates.

        - -

        The important points to understand about signing Android applications are:

        - -
          -
        • All applications must be signed. The system will not install an application -that is not signed.
        • -
        • You can use self-signed certificates to sign your applications. No certificate authority -is needed.
        • -
        • When you are ready to publish your application, you must sign it with a suitable private -key. You can not publish an application that is signed with the default key generated -by the SDK tools. -
        • -
        • The system tests a signer certificate's expiration date only at install time. If an -application's signer certificate expires after the application is installed, the application -will continue to function normally.
        • -
        • You can use standard tools — Keytool and Jarsigner — to generate keys and -sign your application .apk files.
        • -
        - -

        The Android system will not install or run an application that is not signed appropriately. This -applies wherever the Android system is run, whether on an actual device or on the emulator. -For this reason, you must set up signing for your application before you will be able to -run or debug it on an emulator or device.

        - -

        The Android SDK tools assist you in signing your applications when debugging. Both the ADT Plugin -for Eclipse and the Ant build tool offer two signing modes — debug mode and release mode. - -

          -
        • In debug mode, the build tools use the Keytool utility, included in the JDK, to create -a keystore and key with a known alias and password. At each compilation, the tools then use -the debug key to sign the application .apk file. Because the password is known, the tools -don't need to prompt you for the keystore/key password each time you compile.
        • - -
        • When your application is ready for release, you compile it in release signing mode. -In this mode, the tools compile your .apk without signing it. You must then sign -the .apk manually — with your private key — -using Jarsigner (or similar tool). If you do not have a suitable private key already, -you can run Keytool manually to generate your own keystore/key and then sign your -application with Jarsigner.
        • -
        - -

        Signing Strategies

        - -

        Some aspects of application signing may affect how you approach the development -of your application, especially if you are planning to release multiple -applications.

        - -

        In general, the recommended strategy for all developers is to sign -all of your applications with the same certificate, throughout the expected -lifespan of your applications. There are several reasons why you should do so:

        - -
          -
        • Application upgrade — As you release upgrades to your -application, you will want to sign the upgrades with the same certificate, if you -want users to upgrade seamlessly to the new version. When the system is -installing an update to an application, if any of the certificates in the -new version match any of the certificates in the old version, then the -system allows the update. If you sign the version without using a matching -certificate, you will also need to assign a different package name to the -application — in this case, the user installs the new version as a -completely new application. - -
        • Application modularity — The Android system allows applications that -are signed by the same certificate to run in the same process, if the -applications so request, so that the system treats them as a single application. -In this way you can deploy your application in modules, and users can update -each of the modules independently if needed.
        • - -
        • Code/data sharing through permissions — The Android system provides -signature-based permissions enforcement, so that an application can expose -functionality to another application that is signed with a specified -certificate. By signing multiple applications with the same certificate and -using signature-based permissions checks, your applications can share code and -data in a secure manner.
        • - - - -
        - -

        Another important consideration in determining your signing strategy is -how to set the validity period of the key that you will use to sign your -applications.

        - -
          -
        • If you plan to support upgrades for a single application, you should ensure -that your key has a validity period that exceeds the expected lifespan of -that application. A validity period of 25 years or more is recommended. -When your key's validity period expires, users will no longer be -able to seamlessly upgrade to new versions of your application.
        • - -
        • If you will sign multiple distinct applications with the same key, -you should ensure that your key's validity period exceeds the expected -lifespan of all versions of all of the applications, including -dependent applications that may be added to the suite in the future.
        • - -
        • If you plan to publish your application(s) on Android Market, the -key you use to sign the application(s) must have a validity period -ending after 22 October 2033. The Market server enforces this requirement -to ensure that users can seamlessly upgrade Market applications when -new versions are available.
        • -
        - -

        As you design your application, keep these points in mind and make sure to -use a suitable certificate to sign your applications.

        - -

        Basic Setup for Signing

        - -

        To support the generation of a keystore and debug key, you should first make sure that -Keytool is available to the SDK build -tools. In most cases, you can tell the SDK build tools how to find Keytool by making sure -that your JAVA_HOME environment variable is set and that it references a suitable JDK. -Alternatively, you can add the JDK version of Keytool to your PATH variable.

        - -

        If you are developing on a version of Linux that originally came with GNU Compiler for -Java, make sure that the system is using the JDK version of Keytool, rather than the gcj -version. If Keytool is already in your PATH, it might be pointing to a symlink at -/usr/bin/keytool. In this case, check the symlink target to make sure that it points -to the Keytool in the JDK.

        - -

        If you will release your application to the public, you will also need to have -the Jarsigner tool available on your machine. Both Jarsigner and Keytool are included -in the JDK.

        - -

        Signing in Debug Mode

        - -

        The Android build tools provide a debug signing mode that makes it easier for you -to develop and debug your application, while still meeting the Android system -requirement for signing your .apk when it is installed in the emulator or a device.

        - -

        If you are developing in Eclipse/ADT and have set up Keytool as described -above, signing in debug mode is enabled by default. When you run or debug your -application, ADT signs the .apk for you and installs it on the emulator. No -specific action on your part is needed, provided ADT has access to Keytool.

        - -

        If you use Ant to build your .apk files, debug signing mode -is enabled by default, assuming that you are using a build.xml file generated by the -activitycreator tool included in the latest SDK. When you run Ant against build.xml to -compile your app, the build script generates a keystore/key and signs the .apk for you. -No specific action on your part is needed.

        - -

        Note that you can not release your application to the public if it is signed only with -the debug key.

        - -

        Signing for Public Release

        - -

        When your application is ready for release to other users, you must:

        -
          -
        1. Compile the application in release mode
        2. -
        3. Obtain a suitable private key, and then
        4. -
        5. Sign the application with your private key
        6. -
        7. Secure your private key
        8. -
        - -

        The sections below provide information about these steps.

        - -

        Compiling for Release

        - -

        To prepare your application for release, you must first compile it in release mode. -In release mode, the Android build tools compile your application as usual, -but without signing it with the debug key.

        - -

        If you are developing in Eclipse/ADT, right-click the project in the Package -pane and select Android Tools > Export Application -Package. You can then specify the file location for the unsigned .apk. -Alternatively, you can follow the "Exporting the unsigned .apk" -link in the Manifest Editor overview page.

        - -

        If you are using Ant, all you need to do is specify the build target -"release" in the Ant command. For example, if you are running Ant from the -directory containing your build.xml file, the command would look like this:

        - -
        $ ant release
        - -

        The build script compiles the application .apk without signing it. - -

        Note that you can not release your application unsigned, or signed with the debug key.

        - -

        Obtaining a Suitable Private Key

        - -

        In preparation for signing your application, you must first ensure that -you have a suitable private key with which to sign. A suitable private -key is one that:

        - -
          -
        • Is in your possession
        • -
        • Represents the personal, corporate, or organizational entity to be identified -with the application
        • -
        • Has a validity period that exceeds the expected lifespan of the application -or application suite. A validity period of more than 25 years is recommended. -

          If you plan to publish your application(s) on Android Market, note that a -validity period ending after 22 October 2033 is a requirement. You can not upload an -application if it is signed with a key whose validity expires before that date. -

        • -
        • Is not the debug key generated by the Android SDK tools.
        • -
        - -

        The key may be self-signed. If you do not have a suitable key, you must -generate one using Keytool. Make sure that you have Keytool available, as described -in Basic Setup.

        - -

        To generate a self-signed key with Keytool, use the keytool -command and pass any of the options listed below (and any others, as -needed).

        - -

        Before you run Keytool, make sure to read Securing Your Key for a discussion of how to keep your -key secure and why doing so is critically important to you and to users. In -particular, when you are generating your key, you should select strong -passwords for both the keystore and key.

        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Keytool OptionDescription
        -genkeyGenerate a key pair (public and private -keys)
        -vEnable verbose output.
        -keystore <keystore-name>.keystoreA name -for the keystore containing the private key.
        -storepass <password>

        A password for the -keystore.

        As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Keytool prompts you to enter the password. In this -way, your password is not stored in your shell history.

        -alias <alias_name>An alias for the key.
        -keyalg <alg>The encryption algorithm to use -when generating the key.
        -dname <name>

        A Distinguished Name that describes -who created the key. The value is used as the issuer and subject fields in the -self-signed certificate.

        Note that you do not need to specify this option -in the command line. If not supplied, Jarsigner prompts you to enter each -of the Distinguished Name fields (CN, OU, and so on).

        -validity <valdays>

        The validity period for the -key, in days.

        Note: A value of 9500 or greater is recommended.

        -keypass <password>

        The password for the key.

        -

        As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Keytool prompts you to enter the password. In this -way, your password is not stored in your shell history.

        - - -

        Here's an example of a Keytool command that generates a private key:

        - -
        $ keytool -genkey -v -keystore my-release-key.keystore 
        --alias alias_name -keyalg RSA -validity 9500
        - -

        Running the example command above, Keytool prompts you to provide -passwords for the keystore and key, and to provide the Distinguished -Name fields for your key. It then generates the keystore as a file called -my-release-key.keystore. The keystore and key are -protected by the passwords you entered. The keystore contains -a single key, valid for 9500 days. The alias is a name that you — -will use later, to refer to this keystore when signing your application.

        - -

        For more information about Keytool, see the documentation at - -http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security

        - -

        Signing Your Application

        - -

        When you are ready to actually sign your .apk for release, you can do so -using the Jarsigner tool. Make sure that you have Jarsigner available on your -machine, as described in Basic Setup. Also, make sure that -the keystore containing your private key is available.

        - -

        To sign your application, you run Jarsigner, referencing both the -application's .apk and the keystore containing the private key with which to -sign the .apk. The table below shows the options you could use.

        - - - - - - - - - - - - - - - - - - -
        Jarsigner OptionDescription
        -keystore <keystore-name>.keystoreThe name of -the keystore containing your private key.
        -verboseEnable verbose output.
        -storepass <password>

        The password for the -keystore.

        As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Jarsigner prompts you to enter the password. In this -way, your password is not stored in your shell history.

        -keypass <password>

        The password for the private -key.

        As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Jarsigner prompts you to enter the password. In this -way, your password is not stored in your shell history.

        - -

        Here's how you would use Jarsigner to sign an application package called -my_application.apk, using the example keystore created above. -

        - -
        $ jarsigner -verbose -keystore my-release-key.keystore 
        -my_application.apk alias_name
        - -

        Running the example command above, Jarsigner prompts you to provide -passwords for the keystore and key. It then modifies the APK -in-place, meaning the .apk is now signed. Note that you can sign an -APK multiple times with different keys.

        - -

        To verify that your .apk is signed, you can use a command like this:

        - -
        $ jarsigner -verify my_signed.apk
        - -

        If the .apk is signed properly, Jarsigner prints "jar verified". -If you want more details, you can try one of these commands:

        - -
        $ jarsigner -verify -verbose my_application.apk
        - -

        or

        - -
        $ jarsigner -verify -verbose -certs my_application.apk
        - -

        The command above, with the -certs option added, will show you the -"CN=" line that describes who created the key.

        - -

        Note: if you see "CN=Android Debug", this means the .apk was -signed with the debug key generated by the Android SDK. If you intend to release -your application, you must sign it with your private key instead of the debug -key.

        - -

        For more information about Jarsigner, see the documentation at - -http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security

        - -

        Securing Your Private Key

        - -

        Maintaining the security of your private key is of critical importance, both -to you and to the user. If you allow someone to use your key, or if you leave -your keystore and passwords in an unsecured location such that a third-party -could find and use them, your authoring identity and the trust of the user -are compromised.

        - -

        If a third party should manage to take your key without your knowledge or -permission, that person could sign and distribute applications that maliciously -replace your authentic applications or corrupt them. Such a person could also -sign and distribute applications under your identity that attack other -applications or the system itself, or corrupt or steal user data.

        - -

        Your reputation as a developer entity depends on your securing your private -key properly, at all times, until the key is expired. Here are some tips for -keeping your key secure:

        - -
          -
        • Select strong passwords for the keystore and key.
        • -
        • When you generate your key with Keytool, do not supply the --storepass and -keypass options at the command line. -If you do so, your passwords will be available in your shell history, -which any user on your computer could access.
        • -
        • Similarly, when signing your applications with Jarsigner, -do not supply the -storepass and -keypass -options at the command line.
        • -
        • Do not give or lend anyone your private key, and do not let unauthorized -persons know your keystore and key passwords.
        • -
        - -

        In general, if you follow common-sense precautions when generating, using, -and storing your key, it will remain secure.

        - -

        Expiry of the Debug Certificate

        - -

        The self-signed certificate used to sign your application in debug mode (the default on -Eclipse/ADT and Ant builds) will have an expiration date of 365 days from its creation date.

        - -

        When the certificate expires, you will get a build error. On Ant builds, the error -looks like this:

        - -
        debug:
        -[echo] Packaging bin/samples-debug.apk, and signing it with a debug key...
        -[exec] Debug Certificate expired on 8/4/08 3:43 PM
        - -

        In Eclipse/ADT, you will see a similar error in the Android console.

        - -

        To fix this problem, simply delete the debug.keystore file. On Linux/Mac OSX, -the file is stored in ~/.android. OOn Windows XP, the file is stored in -C:\Documents and Settings\<user>\Local Settings\Application Data\Android. -On Windows Vista, the file is stored in -C:\Users\<user>\AppData\Local\Android.

        - -

        The next time you build, the build tools will regenerate a new keystore and debug key.

        - -

        Note that, if your development machine is using a non-Gregorian locale, the build -tools may erroneously generate an already-expired debug certificate, so that you get an -error when trying to compile your application. For workaround information, see the -troubleshooting topic -I can't compile my app because the build tools generated an expired debug -certificate.

        \ No newline at end of file diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd index 7ba79685eef76..1e13ace551f73 100644 --- a/docs/html/guide/developing/tools/avd.jd +++ b/docs/html/guide/developing/tools/avd.jd @@ -21,13 +21,12 @@ page.title=Android Virtual Devices
      • Creating the AVD
      • Setting hardware emulation options
      • Default location of the AVD files
      • -
      • Command-line options, create avd
  • Managing AVDs
    1. Moving an AVD
    2. -
    3. Deleting an AVD
    4. +
    5. Updating an AVD
    6. Deleting an AVD
  • @@ -35,7 +34,8 @@ page.title=Android Virtual Devices

    See Also

      -
    1. Android Emulator
    2. +
    3. Android + Emulator
    @@ -366,6 +366,10 @@ the -p option to place the AVD directory in another location. The AVD's .ini file remains in the .android directory on the network drive, regardless of the location of the AVD directory.

    +

    Managing AVDs

    + +

    The sections below provide more information about how to manage AVDs once you've created them.

    +

    Moving an AVD

    If you want to move or rename an AVD, you can do so using this command:

    @@ -455,7 +459,7 @@ files. -s <name> or
    - -s <dimensions> + -s <width>-<height> The skin to use for this AVD, identified by name or dimensions. The android tool scans for a matching skin by name or dimension in the skins/ directory of the target referenced in the -t diff --git a/docs/html/guide/topics/media/index.jd b/docs/html/guide/topics/media/index.jd index 4541024111b9e..fd7d2da021d84 100644 --- a/docs/html/guide/topics/media/index.jd +++ b/docs/html/guide/topics/media/index.jd @@ -9,7 +9,7 @@ page.title=Audio and Video
  • Audio playback and record
  • Video playback
  • Handles data from raw resources, files, streams
  • -
  • Built-in codecs for a variety of media. See Android 1.0 Media Formats
  • +
  • Built-in codecs for a variety of media. See Android Supported Media Formats
  • Key classes

    diff --git a/docs/html/guide/topics/media/media.jd b/docs/html/guide/topics/media/media.jd deleted file mode 100644 index 463686d367aeb..0000000000000 --- a/docs/html/guide/topics/media/media.jd +++ /dev/null @@ -1,172 +0,0 @@ -page.title=Media Capabilities -@jd:body - - - -

    The Android platform offers built-in encoding/decoding for a variety of common media types, -so that you can easily integrate audio, video, and images into your applications. Accessing the platform's media -capabilities is fairly straightforward &mdash you do so using the same intents and -activities mechanism that the rest of Android uses.

    - -

    Android lets you play audio and video from several types of data sources. You can play audio or video from media files stored in the application's resources (raw resources), from standalone files in the filesystem, or from a data stream arriving over a network connection. To play audio or video from your application, use the {@link android.media.MediaPlayer} class.

    - -

    The platform also lets you record audio, where supported by the mobile device hardware. Recording of video is not currently supported, but is planned for a future release. To record audio, use the -{@link android.media.MediaRecorder} class. Note that the emulator doesn't have hardware to capture audio, but actual mobile devices are likely to provide these capabilities that you can access through MediaRecorder.

    - -

    For a list of the media formats for which Android offers built-in support, see the Android Media Formats appendix.

    - -

    Playing Audio and Video

    -

    Media can be played from anywhere: from a raw resource, from a file from the system, -or from an available network (URL).

    - -

    You can play back the audio data only to the standard -output device; currently, that is the mobile device speaker or Bluetooth headset. You -cannot play sound files in the conversation audio.

    - -

    Playing from a Raw Resource

    -

    Perhaps the most common thing to want to do is play back media (notably sound) -within your own applications. Doing this is easy:

    -
      -
    1. Put the sound (or other media resource) file into the res/raw - folder of your project, where the Eclipse plugin (or aapt) will find it and - make it into a resource that can be referenced from your R class
    2. -
    3. Create an instance of MediaPlayer, referencing that resource using - {@link android.media.MediaPlayer#create MediaPlayer.create}, and then call - {@link android.media.MediaPlayer#start() start()} on the instance:

    4. -
    -
    -    MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
    -    mp.start();
    -
    -

    To stop playback, call {@link android.media.MediaPlayer#stop() stop()}. If -you wish to later replay the media, then you must -{@link android.media.MediaPlayer#reset() reset()} and -{@link android.media.MediaPlayer#prepare() prepare()} the MediaPlayer object -before calling {@link android.media.MediaPlayer#start() start()} again. -(create() calls prepare() the first time.)

    -

    To pause playback, call {@link android.media.MediaPlayer#pause() pause()}. -Resume playback from where you paused with -{@link android.media.MediaPlayer#start() start()}.

    - -

    Playing from a File or Stream

    -

    You can play back media files from the filesystem or a web URL:

    -
      -
    1. Create an instance of the MediaPlayer using new
    2. -
    3. Call {@link android.media.MediaPlayer#setDataSource setDataSource()} - with a String containing the path (local filesystem or URL) - to the file you want to play
    4. -
    5. First {@link android.media.MediaPlayer#prepare prepare()} then - {@link android.media.MediaPlayer#start() start()} on the instance:

    6. -
    -
    -    MediaPlayer mp = new MediaPlayer();
    -    mp.setDataSource(PATH_TO_FILE);
    -    mp.prepare();
    -    mp.start();
    -
    -

    {@link android.media.MediaPlayer#stop() stop()} and -{@link android.media.MediaPlayer#pause() pause()} work the same as discussed -above.

    -

    Note: It is possible that mp could be - null, so good code should null check after the new. - Also, IllegalArgumentException and IOException either - need to be caught or passed on when using setDataSource(), since - the file you are referencing may not exist.

    -

    Note: -If you're passing a URL to an online media file, the file must be capable of -progressive download.

    - -

    Recording Media Resources

    -

    Recording media is a little more involved than playing it back, as you would -probably expect, but it is still fairly simple. There is just a little more set -up to do

    -
      -
    1. Create a new instance of {@link android.media.MediaRecorder - android.media.MediaRecorder} using new
    2. -
    3. Create a new instance of {@link android.content.ContentValues - android.content.ContentValues} and put in some standard properties like - TITLE, TIMESTAMP, and the all important - MIME_TYPE
    4. -
    5. Create a file path for the data to go to (you can use {@link - android.content.ContentResolver android.content.ContentResolver} to - create an entry in the Content database and get it to assign a path - automatically which you can then use)
    6. -
    7. Set the audio source using {@link android.media.MediaRecorder#setAudioSource - MediaRecorder.setAudioSource()}. You will probably want to use - MediaRecorder.AudioSource.MIC
    8. -
    9. Set output file format using {@link - android.media.MediaRecorder#setOutputFormat MediaRecorder.setOutputFormat()} -
    10. -
    11. Set the audio encoder using - {@link android.media.MediaRecorder#setAudioEncoder MediaRecorder.setAudioEncoder()} -
    12. -
    13. Finally, {@link android.media.MediaRecorder#prepare prepare()} and - {@link android.media.MediaRecorder#start start()} the recording. - {@link android.media.MediaRecorder#stop stop()} and - {@link android.media.MediaRecorder#release release()} when you are done
    14. -
    -

    Here is a code example that will hopefully help fill in the gaps:

    -

    Start Recording

    -
    -    recorder = new MediaRecorder();
    -    ContentValues values = new ContentValues(3);
    -
    -    values.put(MediaStore.MediaColumns.TITLE, SOME_NAME_HERE);
    -    values.put(MediaStore.MediaColumns.TIMESTAMP, System.currentTimeMillis());
    -    values.put(MediaStore.MediaColumns.MIME_TYPE, recorder.getMimeContentType());
    -    
    -    ContentResolver contentResolver = new ContentResolver();
    -    
    -    Uri base = MediaStore.Audio.INTERNAL_CONTENT_URI;
    -    Uri newUri = contentResolver.insert(base, values);
    -    
    -    if (newUri == null) {
    -        // need to handle exception here - we were not able to create a new
    -        // content entry
    -    }
    -    
    -    String path = contentResolver.getDataFilePath(newUri);
    -
    -    // could use setPreviewDisplay() to display a preview to suitable View here
    -    
    -    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    -    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    -    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    -    recorder.setOutputFile(path);
    -    
    -    recorder.prepare();
    -    recorder.start();
    -
    -

    Stop Recording

    -
    -    recorder.stop();
    -    recorder.release();
    -
    - From e1d9b55f807f0972ca35c5f24786b1ab27d1d876 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Tue, 21 Apr 2009 20:39:18 -0700 Subject: [PATCH 21/70] AI 147336: Remove stuff relating to the Maps ext library from the docs. Leave a pointer over to code.google.com. BUG=1790234 Automated import of CL 147336 --- docs/html/guide/topics/location/geo/mapkey.jd | 210 ---------- docs/html/guide/topics/location/index.jd | 124 +++--- .../guide/tutorials/views/hello-mapview.jd | 26 ++ docs/html/index.jd | 2 +- docs/html/maps-api-signup.html | 369 ------------------ docs/html/maps-api-tos.pdf | Bin 97303 -> 0 bytes 6 files changed, 105 insertions(+), 626 deletions(-) delete mode 100644 docs/html/guide/topics/location/geo/mapkey.jd delete mode 100644 docs/html/maps-api-signup.html delete mode 100644 docs/html/maps-api-tos.pdf diff --git a/docs/html/guide/topics/location/geo/mapkey.jd b/docs/html/guide/topics/location/geo/mapkey.jd deleted file mode 100644 index 9aa824c1d61bb..0000000000000 --- a/docs/html/guide/topics/location/geo/mapkey.jd +++ /dev/null @@ -1,210 +0,0 @@ -page.title=Obtaining a Maps API Key -@jd:body - - - -

    com.google.android.maps.MapView is a very useful class that lets you easily integrate Google Maps into your application. It provides built-in map downloading, rendering, and caching of Maps tiles, as well as a variety of display options and controls. It provides a wrapper around the Google Maps API that lets your application request and manipulate Google Maps data through class methods, and it lets you work with Maps data as you would other types of Views.

    - -

    Because MapView gives you access to Google Maps data, you need to register with the Google Maps service and agree to the applicable Terms of Service before your MapView will be able to obtain data from Google Maps. This will apply whether you are developing your application on the emulator or preparing your application for deployment to mobile devices.

    - -

    Registering for a Maps API Key is simple, free, and has two parts:

    - -
      -
    1. Registering the MD5 fingerprint of the certificate that you will use to sign your application. The Maps registration service then provides you a Maps API Key that is associated with your application's signer certificate.
    2. -
    3. Adding a reference to the Maps API Key in each MapView, whether declared in XML or instantiated directly from code. You can use the same Maps API Key for any MapView in any Android application, provided that the application is signed with the certificate whose fingerprint you registered with the service.
    4. -
    - -

    During registration, you also need to agree to the Maps API Terms of Service, which describe how your application can use the Maps data. In general, the terms of service are permissive and place few restrictions on how you can use the data. For example, the terms allow you to build "friend finder" type applications.

    - -

    The sections below describe how to obtain your Maps API Key and how to reference it from your MapView elements.

    - - - -

    Overview

    - -

    MapView objects are views that display Maps tiles downloaded from the Google Maps service. To ensure that applications use Maps data in an appropriate manner, the Google Maps service requires application developers to register with the service, agreeing to the Terms of Service and supplying an MD5 fingerprint of the certificate(s) that they will use to sign applications. For each registered certificate fingerprint, the service then provides the developer with a Maps API Key — an alphanumeric string that uniquely identifies the certificate and developer registered with the service.

    - -

    The Google Maps service also requires that each MapView identify itself to the service using a Maps API Key. Before providing Maps tiles to a MapView, the service checks the Maps API Key supplied by the MapView to ensure that it:

    -
      -
    • References a certificate/developer registered with the service, and
    • -
    • References a certificate that matches the certificate with which the application (containing the MapView) was signed.
    • -
    - -

    Unless both conditions are met, the service does not provide Maps tiles to the MapView.

    - -

    Each MapView object in your application must reference a Maps API Key. Since the Key is associated with a certificate, all Mapview elements in an application should reference the same Key. Going a step further, all MapView elements in all applications that you sign with the same certificate should reference the same Key.

    - -

    On the other hand, you can register for multiple Maps API Keys, each being associated with a specific certificate. You would want to do this if, for example, you were developing several independent applications that you will sign using different certificates. In this case, note that all MapView elements in a given application can reference the same Maps API Key, but must reference the Key that is associated with the certificate used to sign the application.

    - -

    Because MapView elements must refer to a Maps API Key, you need to register your certificate and receive a Key before you can make use of MapView elements in your application. To make it easier for you to get started using MapView elements, you are welcome to register the debug certificate generated by the SDK tools and receive a temporary Maps API Key. The details of how to do that are given below.

    - -

    When you are preparing to release your application, however, note that you must sign your application with a suitable cryptographic key, rather than the SDK debug key. That means that you will also need to register your application's release certificate with the Google Maps service. After you've done so, you will receive a new Maps API Key that is uniquely associated with your release certificate. To enable the MapView elements in your application to work after release, you must remember to change the Maps API Key for all MapViews in your application so that they refer to the Key associated with your release certificate (rather than your debug certificate).

    - -

    To summarize, the important points to understand about MapViews and the Maps API Key are:

    - -
      -
    • To display Maps data in a MapView, you need to register for a Maps API Key
    • -
    • Each Maps API Key is uniquely associated with a specific certificate, based on an MD5 fingerprint of the certificate
    • -
    • Each MapView must reference a Maps API Key, and the Key referenced must be registered to the certificate used to sign the application
    • -
    • All MapView elements in an application can reference the same Maps API Key
    • -
    • You can register multiple certificates under your developer identity
    • -
    • You can get a temporary Maps API Key based on your debug certificate, but before you publish your application, you must register for a new Key based on your release certificate and update references in your MapViews accordingly
    • -
    - -

    Getting the MD5 Fingerprint of Your Signing Certificate

    - - - -

    To register for a Maps API Key, you need to provide an MD5 fingerprint of the certificate that you will use to sign your application.

    - -

    Before you visit the registration page, use Keytool to generate the fingerprint of the appropriate certificate. - -

    First, determine which key you will use to sign your application at release and make sure of the path to the keystore that contains it.

    - -

    Next, run Keytool with the -list option, against the target keystore and key alias. The table below lists the options you should use.

    - - - - - - - - - - - - - - - - - - - - - -
    Keytool OptionDescription
    -listPrint an MD5 fingerprint of a certificate.
    -keystore <keystore-name>.keystoreThe name of the keystore containing the target key.
    -storepass <password>

    A password for the -keystore.

    As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Keytool prompts you to enter the password. In this -way, your password is not stored in your shell history.

    -alias <alias_name>The alias for the key for which to generate the MD5 certificate fingerprint.
    -keypass <password>

    The password for the key.

    -

    As a security precaution, do not include this option -in your command line unless you are working at a secure computer. -If not supplied, Keytool prompts you to enter the password. In this -way, your password is not stored in your shell history.

    - -

    Here's an example of a Keytool command that generates an MD5 certificate fingerprint for the key alias_name in the keystore my-release-key.keystore:

    - -
    $ keytool -list -alias alias_name -keystore my-release-key.keystore
    - -

    Keytool will prompt you to enter passwords for the keystore and key. As output of the command, Keytool prints the fingerprint to the shell. For example:

    - -
    Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
    - -

    Note that, if you happen to forget your Maps API Key, you can repeat the process described above and register the fingerprint again. The server will give you the same key for the specified certificate fingerprint.

    - -

    Once you have the fingerprint, you can go to the Maps API registration site, described next.

    - -

    Getting the MD5 Fingerprint of the SDK Debug Certificate

    - -

    While you are developing and debugging your application, you will likely be -sigining your application in debug mode — that is, the SDK build tools -will automatically sign your application using the debug certificate. To let -your MapView elements properly display Maps data during this period, you should -obtain a temporary Maps API Key registered to the debug certificate. To do so, -you first need to get the MD5 fingerprint of the debug certificate. When -you are ready to release your application, you must register your release -certificate with the Google Maps service and obtain a new Maps API Key. You must -then change the MapView elements in your application to reference the new API -key.

    - -

    To generate an MD5 fingerprint of the debug certificate, first locate the debug keystore. The location at which the SDK tools create the default debug keystore varies by platform:

    - -
      -
    • Windows Vista: C:\Users\<user>\AppData\Local\Android\debug.keystore
    • -
    • Windows XP: C:\Documents and Settings\<user>\Local Settings\Application Data\Android\debug.keystore
    • -
    • OS X and Linux: ~/.android/debug.keystore
    • -
    - -

    If you are using Eclipse/ADT and are unsure where the debug keystore is located, you can select Windows > Prefs > Android > Build to check the full path, which you can then paste into a file explorer to locate the directory containing the keystore.

    - -

    Once you have located the keystore, use this Keytool command to get the MD5 fingerprint of the debug certificate:

    - -
    $ keytool -list -alias androiddebugkey \
    --keystore <path_to_debug_keystore>.keystore \
    --storepass android -keypass android
    - -

    Registering the Certificate Fingerprint with the Google Maps Service

    - -

    When you are ready to register for a Maps API Key, load this page in a browser:

    - -

    http://code.google.com/android/maps-api-signup.html

    - -

    To register for a Maps API Key, follow these steps:

    - -
      -
    1. If you don't have a Google account, use the link on the page to set one up.
    2. -
    3. Read the Android Maps API Terms of Service carefully. If you agree to the terms, indicate so using the checkbox on the screen.
    4. -
    5. Paste the MD5 certificate fingerprint of the certificate that you are registering into the appropriate form field.
    6. -
    7. Click "Generate API Key"
    8. -
    - -

    The server will handle your request, associating the fingerprint with your developer identity and generating a unique Maps API Key, then returning a results page that gives you your Key string.

    - -

    To use the Maps API Key string, copy and paste it into your code as described in the next section.

    - -

    Adding the Maps API Key to your Application

    - -

    Once you've registered with the Google Maps service and have obtained a Maps API Key, you must add it to your application's MapView objects, so that the Maps server will allow them to download Maps tiles.

    - -

    For <MapView> elements declared in XML layout files, add the Maps API Key as the value of a special attribute — android:apiKey. For example: - -

    <com.google.android.maps.MapView
    - android:layout_width="fill_parent"
    - android:layout_height="fill_parent"
    - android:enabled="true"
    - android:clickable="true"
    - android:apiKey="example_Maps_ApiKey_String"
    - />
    - - -

    For MapView objects instantiated directly from code, pass the Maps API Key string as a parameter in the constructor. For example:

    - -
    mMapView = new MapView(this, "example_Maps_ApiKey_String");
    - -

    For more information about MapView, see the MapView class Documentation.

    - -

    Final Steps to Enable MapView Elements

    - -

    If you've added the Maps API Key to the MapViews in your application, here are the final steps to enable the MapView elements to run properly:

    - -
      -
    • Make sure that you added a <uses-library> element referencing the external com.google.android.maps library. The element must be a child of the <application> element in the application's manifest. For example: - -

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      - package="com.example.package.name">
      - ...
      - <application android:name="MyApplication" >
      -   <uses-library android:name="com.google.android.maps" />
      - ...
      - </application>

    • - -
    • Sign your application with the certificate that corresponds to the Maps API Key referenced in your MapView elements.
    • - -
    - -

    Note that, when you are ready to publish your application, you must get a Maps API Key that is based on the certificate that you will use to sign the application for release. You must then change the Maps API Key string referenced by all of your MapView elements, so that they reference the new Key.

    - - - diff --git a/docs/html/guide/topics/location/index.jd b/docs/html/guide/topics/location/index.jd index 53f1d290ba648..d7a8ff27585f2 100644 --- a/docs/html/guide/topics/location/index.jd +++ b/docs/html/guide/topics/location/index.jd @@ -1,35 +1,43 @@ -page.title=Location +page.title=Location and Maps @jd:body
    +

    Location and Maps quickview

    +
      +
    • Android provides a location framework that your application can use to determine the device's location and bearing and register for updates.
    • +
    • A Google Maps external library is available that lets you display and manage Maps data.
    • +

    In this document

      -
    1. android.location
    2. -
    3. com.google.android.maps
    4. +
    5. Location Services
    6. +
    7. Google Maps External Library
    8. +
    +

    See Also

    +
      +
    1. Google APIs add-on download»
    -

    The Android SDK includes two packages that provide Android's primary support -for building location-based services: -{@link android.location} and {@link-fixme com.google.android.maps}. -Please read on below for a brief introduction to each package.

    +

    Location- and maps-based applications and services are compelling for mobile device users. You can build these capabilities into your applications using the classes of the {@link android.location} package and the Google Maps external library. The sections below provide details.

    -

    android.location

    +

    Location Services

    -

    This package contains several classes related to -location services in the Android platform. Most importantly, it introduces the -{@link android.location.LocationManager} -service, which provides an API to determine location and bearing if the -underlying device (if it supports the service). The LocationManager -should not be -instantiated directly; rather, a handle to it should be retrieved via -{@link android.content.Context#getSystemService(String) -getSystemService(Context.LOCATION_SERVICE)}.

    +

    Android gives your applications access to the location services supported by +the device through the classes in the android.location package. The +central component of the location framework is the +{@link android.location.LocationManager} system service, which provides an API to +determine location and bearing if the underlying device (if it supports location +capabilities).

    -

    Once your application has a handle to the LocationManager, your application +

    As with other system services, you do not instantiate a LocationManager directly. +Rather, you request an LocationManager instance from the system by calling +{@link android.content.Context#getSystemService(String) getSystemService(Context.LOCATION_SERVICE)}. +The method returns a handle to a new LocationManager instance.

    + +

    Once your application has a handle to a LocationManager instance, your application will be able to do three things:

      @@ -42,20 +50,20 @@ will be able to do three things:

      lat/long.
    -

    However, during initial development, you may not have access to real -data from a real location provider (Network or GPS). So it may be necessary to -spoof some data for your application, with some mock location data.

    +

    However, during initial development in the emulator, you may not have access to real +data from a real location provider (Network or GPS). In that case, it may be necessary to +spoof some data for your application using a mock location provider.

    Note: If you've used mock LocationProviders in -previous versions of the SDK (m3/m5), you can no longer provide canned LocationProviders +previous versions of the SDK, you can no longer provide canned LocationProviders in the /system/etc/location directory. These directories will be wiped during boot-up. -Please follow the new procedures below.

    - +Please follow the new procedures outlined below.

    Providing Mock Location Data

    When testing your application on the Android emulator, there are a couple different -ways to send it some spoof location data: with the DDMS tool or the "geo" command.

    +ways to send it some mock location data: you can use the DDMS tool or the "geo" command +option in the emulator console.

    Using DDMS

    With the DDMS tool, you can simulate location data a few different ways:

    @@ -67,9 +75,9 @@ ways to send it some spoof location data: with the DDMS tool or the "geo" comman

    For more information on using DDMS to spoof location data, see the Using DDMS guide. -

    Using the "geo" command

    +

    Using the "geo" command in the emulator console

    Launch your application in the Android emulator and open a terminal/console in -your SDK's /tools directory. Now you can use:

    +your SDK's /tools directory. Connect to the emulator console. Now you can use:

    • geo fix to send a fixed geo-location.

      This command accepts a longitude and latitude in decimal degrees, and an optional altitude in meters. For example:

      @@ -82,28 +90,52 @@ your SDK's /tools directory. Now you can use:

    +

    For information about how to connect to the emulator console, see +Using the Emulator Console.

    -

    com.google.android.maps

    +

    Google Maps External Library

    -

    This package introduces a number of classes related to -rendering, controlling, and overlaying customized information on your own -Google Mapified Activity. The most important of which is the -{@link-fixme com.google.android.maps.MapView} class, which automagically draws you a -basic Google Map when you add a MapView to your layout. Note that, if you -want to do so, then your Activity that handles the -MapView must extend {@link-fixme com.google.android.maps.MapActivity}.

    +

    To make it easier for you to add powerful mapping capabilities to your +application, Google provides a Maps external library that includes the +com.google.android.maps package. The classes of the com.google.android.maps +package offer built-in downloading, rendering, and caching of Maps tiles, as +well as a variety of display options and controls.

    -

    Also note that you must obtain a MapView API Key from the Google Maps -service, before your MapView can load maps data. For more information, see -Obtaining a MapView API Key.

    +

    The key class in the Maps package is +com.google.android.maps.MapView, a subclass of +{@link android.view.ViewGroup ViewGroup}. A MapView displays a map with data obtained +from the Google Maps service. When the MapView has focus, it will capture +keypresses and touch gestures to pan and zoom the map automatically, including +handling network requests for additional maps tiles. It also provides all of the +UI elements necessary for users to control the map. Your application can also +use MapView class methods to control the MapView programmatically and draw a +number of Overlay types on top of the map.

    -

    Once you've created a MapView, you'll probably want to use -{@link-fixme com.google.android.maps.MapView#getController()} to -retrieve a {@link-fixme com.google.android.maps.MapController}, for controlling and -animating the map, and {@link-fixme com.google.android.maps.ItemizedOverlay} to -draw {@link-fixme com.google.android.maps.Overlay}s and other information on the Map.

    +

    In general, the MapView class provides a wrapper around the Google Maps API +that lets your application manipulate Google Maps data through class methods, +and it lets you work with Maps data as you would other types of Views.

    -

    This is not a standard package in the Android library. In order to use it, you must add the following node to your Android Manifest file, as a child of the -<application> element:

    -
    <uses-library android:name="com.google.android.maps" />
    +

    The Maps external library is not part of the standard Android library, so it +may not be present on some compliant Android-powered devices (although it is +likely to be present on most devices). Similarly, the Maps external library is +not included in the standard Android library provided in the SDK. So that you +can develop using the classes of the com.google.android.maps package, the Maps +external library is made available to you as part of the Google APIs add-on for +the Android SDK.

    + +

    To learn more about the Maps external library and how to download and use the +Google APIs add-on, visit

    + +

    http://code.google.com/android/add-ons/google-apis

    + +

    For your convenience, the Google APIs add-on is also included in the Android +SDK.

    + +

    Note: In order to display Google Maps data in a +MapView, you must register with the Google Maps service and obtain a Maps API +Key. For information about how to get a Maps API Key, see Obtaining +a Maps API Key.

    diff --git a/docs/html/guide/tutorials/views/hello-mapview.jd b/docs/html/guide/tutorials/views/hello-mapview.jd index 976b8ab42e500..30b92c46eee9e 100644 --- a/docs/html/guide/tutorials/views/hello-mapview.jd +++ b/docs/html/guide/tutorials/views/hello-mapview.jd @@ -3,6 +3,32 @@ parent.title=Hello, Views parent.link=index.html @jd:body +
    +

    This tutorial requires that you have the Google Maps external library +installed in your SDK environment. By default the Android 1.5 SDK includes the +Google APIs add-on, which in turn includes the Maps external library. If you +don't have the Google APIs SDK add-on, you can download it from this +location:

    + +

    http://code.google.com/android/add-ons/google-apis

    + +

    The Google APIs add-on requires Android 1.5 SDK or later release. After +installing the add-on in your SDK, set your project properties to use the build +target called "Google APIs Add-on". See the instructions for setting a build +target in Developing in +Eclipse with ADT or Developing in Other IDEs, +as appropriate for your environment.

    + +

    You will also need to use the android tool to set up an AVD that uses the +Google APIs deployment target. See Android Virtual Devices for +more information. Once you have set up your environment, you will be able to +build and run the project described in this tutorial

    + +
    +

    A MapView allows you to create your own map-viewing Activity. First, we'll create a simple Activity that can view and navigate a map. Then we will add some overlay items.

    diff --git a/docs/html/index.jd b/docs/html/index.jd index aea229923ae1f..cc609a3d681bb 100644 --- a/docs/html/index.jd +++ b/docs/html/index.jd @@ -128,7 +128,7 @@ home=true 'name':"Maps API Key", 'img':"maps-large.png", 'title':"Maps API Key", - 'desc':"

    If you're writing an Android application that uses Google Maps (with MapView), you must register your application to obtain a Maps API Key. Without the key, your maps application will not work on Android devices. Obtaining a key requires just a couple of steps.

    Learn how to get a Maps API Key

    " + 'desc':"

    If you're writing an Android application that uses Google Maps (with MapView), you must register your application to obtain a Maps API Key. Without the key, your maps application will not work on Android devices. Obtaining a key requires just a couple of steps.

    Learn more...

    " }, 'market': { diff --git a/docs/html/maps-api-signup.html b/docs/html/maps-api-signup.html deleted file mode 100644 index a604b2ad0eb55..0000000000000 --- a/docs/html/maps-api-signup.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - - -Sign Up for the Android Maps API - Android Maps API - Google Code - - - - - - - - - - - -
    - - -
    - - -
    - - -
    - - -
    -

    Android Maps API Key Signup

    - -
    - - -
    - - - -
    -

    Sign Up for the Android Maps API

    - -

    The Android Maps API lets you embed -Google -Maps in your own Android applications. A single Maps API key is -valid for all applications signed by a single certificate. See -this documentation -page for more information about application signing. To get a -Maps API key for your certificate, you will need to provide its the certificate's -fingerprint. This can be obtained using Keytool. For example, on -Linux or Mac OSX, you would examine your debug keystore like this: -

    $ keytool -list -keystore ~/.android/debug.keystore
    -...
    -Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
    -
    - -

    If you use different keys for signing development builds and -release builds, you will need to obtain a separate Maps API key for -each certificate. Each key will only work in applications signed by -the corresponding certificate.

    - -

    You also need a Google Account -to get a Maps API key, and your API key will be connected to your Google Account.

    -
    -
    - -
    - -
    -
    - - - - - - - - - - - - - -
    I have read and agree with the terms and conditions (printable version)
    - My certificate's MD5 fingerprint: - -
    -
    -
    - - - - -
    -
    - -
    - - - - - diff --git a/docs/html/maps-api-tos.pdf b/docs/html/maps-api-tos.pdf deleted file mode 100644 index 80c28363a0215124ae663c9bfb2502b4fd04140c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97303 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 Date: Wed, 22 Apr 2009 12:33:55 -0700 Subject: [PATCH 22/70] AI 147406: Import revised translations. Automated import of CL 147406 --- core/res/res/values-es/strings.xml | 2 +- core/res/res/values-pl/strings.xml | 110 ++++++++++++++--------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index b2294f3267a67..cf1811bd791c6 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -406,7 +406,7 @@ "Bloqueada para la red" "La tarjeta SIM está bloqueada con el código PUK." "Consulta la guía del usuario o ponte en contacto con el servicio de atención al cliente." - "Introduzca código PIN." + "Introduce el código PIN." "Desbloqueando tarjeta SIM..." "Has realizado %d intentos fallidos de creación de un patrón de desbloqueo. "\n\n"Inténtalo de nuevo dentro de %d segundos." "Has realizado %d intentos fallidos de creación del patrón de desbloqueo. Si realizas %d intentos fallidos más, se te pedirá que desbloquees el teléfono con tus credenciales de acceso de Google."\n\n" Espera %d segundos e inténtalo de nuevo." diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index fc7d53e943661..560bd5aa65f27 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -311,7 +311,7 @@ "Pozwala aplikacji na pobranie listy kont zapisanych w telefonie." "wyświetlanie stanu sieci" "Pozwala aplikacji na wyświetlanie stanu wszystkich sieci." - "pełen dostęp do Internetu" + "pełen dostęp do internetu" "Pozwala aplikacji na tworzenie gniazd sieciowych." "zapisywanie ustawień nazwy punktu dostępowego (APN, Access Point Name)" "Pozwala aplikacji na zmianę ustawień APN, takich jak serwer proxy oraz port dowolnego APN." @@ -566,10 +566,10 @@ "%1$s, %2$s" "%1$s, %2$s" "%1$s, %2$s" - "MMMM' 'd', 'yyyy" - "d' 'MMMM', 'yyyy" - "MMM' 'd', 'yyyy" - "d' 'MMM', 'yyyy" + "d' 'MMMM' 'yyyy" + "d' 'MMMM' 'yyyy" + "d' 'MMM' 'yyyy" + "d' 'MMM' 'yyyy" "h':'mm' 'a" "HH':'mm" "południe" @@ -582,34 +582,34 @@ "%-d %B %Y" "%B %Y" "%H:%M:%S" - "%H:%M:%S %B %-d, %Y" - "%2$s %3$s%7$s %8$s" - "%1$s, %2$s %3$s%6$s, %7$s %8$s" - "%2$s %3$s%7$s %8$s, %9$s" - "%1$s, %2$s %3$s%6$s, %7$s %8$s, %9$s" - "%2$s %3$s, %5$s%7$s %8$s, %10$s" - "%1$s, %2$s %3$s, %5$s%6$s, %7$s %8$s, %10$s" - "%2$s %3$s, %4$s, %5$s%7$s %8$s, %9$s, %10$s" - "%1$s, %2$s %3$s, %4$s, %5$s%6$s, %7$s %8$s, %9$s, %10$s" - "%2$s/%3$s%7$s/%8$s" - "%1$s, %2$s/%3$s%6$s, %7$s/%8$s" - "%2$s/%3$s/%4$s%7$s/%8$s/%9$s" - "%1$s, %2$s/%3$s/%4$s%6$s, %7$s/%8$s/%9$s" - "%2$s/%3$s, %5$s%7$s/%8$s, %10$s" - "%1$s, %2$s/%3$s, %5$s%6$s, %7$s/%8$s, %10$s" - "%2$s/%3$s/%4$s, %5$s%7$s/%8$s/%9$s, %10$s" - "%1$s, %2$s/%3$s/%4$s, %5$s%6$s, %7$s/%8$s/%9$s, %10$s" - "%2$s %3$s%8$s" - "%1$s, %2$s %3$s%6$s, %7$s %8$s" - "%2$s %3$s%8$s, %9$s" - "%1$s, %2$s %3$s, %4$s%6$s, %7$s %8$s, %9$s" - "%2$s %3$s, %5$s%7$s %8$s, %10$s" - "%1$s, %2$s %3$s, %5$s%6$s, %7$s %8$s, %10$s" - "%2$s %3$s, %4$s, %5$s%7$s %8$s, %9$s, %10$s" - "%1$s, %2$s %3$s, %4$s, %5$s%6$s, %7$s %8$s, %9$s, %10$s" + "%H:%M:%S, %-d %B %Y" + "%3$s %2$s%8$s %7$s" + "%1$s, %3$s %2$s%6$s, %8$s %7$s" + "%3$s %2$s%8$s %7$s %9$s" + "%1$s, %3$s %2$s%6$s, %8$s %7$s %9$s" + "%3$s %2$s, %5$s%8$s %7$s, %10$s" + "%1$s, %3$s %2$s, %5$s%6$s, %8$s %7$s, %10$s" + "%3$s %2$s %4$s, %5$s%8$s %7$s %9$s, %10$s" + "%1$s, %3$s %2$s %4$s, %5$s%6$s, %8$s %7$s %9$s, %10$s" + "%3$s/%2$s%8$s/%7$s" + "%1$s, %3$s/%2$s%6$s, %8$s/%7$s" + "%3$s/%2$s/%4$s%8$s/%7$s/%9$s" + "%1$s, %3$s/%2$s/%4$s%6$s, %8$s/%7$s/%9$s" + "%3$s/%2$s, %5$s%8$s/%7$s, %10$s" + "%1$s, %3$s/%2$s, %5$s%6$s, %8$s/%7$s, %10$s" + "%3$s/%2$s/%4$s, %5$s%8$s/%7$s/%9$s, %10$s" + "%1$s, %3$s/%2$s/%4$s, %5$s%6$s, %8$s/%7$s/%9$s, %10$s" + "%3$s%8$s %2$s" + "%1$s, %3$s %2$s%6$s, %8$s %7$s" + "%3$s%8$s %2$s %9$s" + "%1$s, %3$s %2$s %4$s%6$s, %8$s %7$s %9$s" + "%3$s %2$s, %5$s%8$s %7$s, %10$s" + "%1$s, %3$s %2$s, %5$s%6$s, %8$s %7$s, %10$s" + "%3$s %2$s %4$s, %5$s%8$s %7$s %9$s, %10$s" + "%1$s, %3$s %2$s %4$s, %5$s%6$s, %8$s %7$s %9$s, %10$s" "%-d %b %Y" "%b %Y" - "%b %-d" + "%-d %b" "niedziela" @@ -659,30 +659,30 @@ "Październik" "Listopad" "Grudzień" - "Sty" - "Lut" - "Mar" - "Kwi" - "Maj" - "Cze" - "Lip" - "Sie" - "Wrz" - "Paź" - "Lis" - "Gru" - "Sty" - "Lut" - "Pon" - "Kwi" - "Maj" - "Cze" - "Lip" - "Sie" - "Wrz" - "Paź" - "Lis" - "Gru" + "sty" + "lut" + "mar" + "kwi" + "maj" + "cze" + "lip" + "sie" + "wrz" + "paź" + "lis" + "gru" + "sty" + "lut" + "mar" + "kwi" + "maj" + "cze" + "lip" + "sie" + "wrz" + "paź" + "lis" + "gru" "%1$02d:%2$02d" "%1$d:%2$02d:%3$02d" "Zaznacz wszystko" From 134e8e4fc391d4f48f89acbfda757cd61504cb46 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Wed, 22 Apr 2009 18:45:05 -0700 Subject: [PATCH 23/70] AI 147433: Fix broken link to sdk/samples dir in the offline.html page. BUG=1790234 Automated import of CL 147433 --- docs/html/offline.jd | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/html/offline.jd b/docs/html/offline.jd index 57c55c7ff559f..a42e346ec4cdb 100644 --- a/docs/html/offline.jd +++ b/docs/html/offline.jd @@ -17,8 +17,10 @@ page.title=Welcome

    Once you've completed the SDK installation, you can start learning about development on the Android framework by reading the Developer's Guide. The SDK package -also includes a wide variety of very helpful code samples.

    +also includes a wide variety of code samples specific to each Android +platform. You can find the samples at this location:

    + +

    <sdk>/platforms/android-<version>/samples/

    Please note that you are currently viewing a local, offline version of the Android developer documentation. The offline documentation offers the same From 620986a358c522178ddfc5c0088b2a5e1768e5ae Mon Sep 17 00:00:00 2001 From: Scott Main <> Date: Wed, 22 Apr 2009 18:58:13 -0700 Subject: [PATCH 24/70] AI 147438: add app widget docs to dev guide move app widget docs out of the package description BUG=1790234 Automated import of CL 147438 --- core/java/android/appwidget/package.html | 114 +-------------- docs/html/guide/guide_toc.cs | 8 +- docs/html/guide/topics/appwidgets/index.jd | 154 +++++++++++++++++++++ 3 files changed, 164 insertions(+), 112 deletions(-) create mode 100644 docs/html/guide/topics/appwidgets/index.jd diff --git a/core/java/android/appwidget/package.html b/core/java/android/appwidget/package.html index b6cd9c74d02ef..2b85bd5a41a4e 100644 --- a/core/java/android/appwidget/package.html +++ b/core/java/android/appwidget/package.html @@ -3,127 +3,22 @@ views are called widgets, and are published by "AppWidget providers." The component that can contain widgets is called a "AppWidget host."

    -

    AppWidget Providers

    - -

    AppWidget Hosts

    +

    For more information, see the +AppWidgets +documentation in the Dev Guide.

    {@more}

    AppWidget Providers

    -

    -Any application can publish widgets. All an application needs to do to publish a widget is +

    Any application can publish widgets. All an application needs to do to publish a widget is to have a {@link android.content.BroadcastReceiver} that receives the {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} intent, and provide some meta-data about the widget. Android provides the {@link android.appwidget.AppWidgetProvider} class, which extends BroadcastReceiver, as a convenience class to aid in handling the broadcasts. -

    Declaring a widget in the AndroidManifest

    - -

    -First, declare the {@link android.content.BroadcastReceiver} in your application's -AndroidManifest.xml file. - -{@sample frameworks/base/tests/appwidgets/AppWidgetHostTest/AndroidManifest.xml AppWidgetProvider} - -

    -The <receiver> element has the following attributes: -

      -
    • android:name - which specifies the - {@link android.content.BroadcastReceiver} or {@link android.appwidget.AppWidgetProvider} - class.
    • -
    • android:label - which specifies the string resource that - will be shown by the widget picker as the label.
    • -
    • android:icon - which specifies the drawable resource that - will be shown by the widget picker as the icon.
    • -
    - -

    -The <intent-filter> element tells the {@link android.content.pm.PackageManager} -that this {@link android.content.BroadcastReceiver} receives the {@link -android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} broadcast. -The widget manager will send other broadcasts directly to your widget provider as required. -It is only necessary to explicitly declare that you accept the {@link -android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} broadcast. - -

    -The <meta-data> element tells the widget manager which xml resource to -read to find the {@link android.appwidget.AppWidgetProviderInfo} for your widget provider. It has the following -attributes: -

      -
    • android:name="android.appwidget.provider" - identifies this meta-data - as the {@link android.appwidget.AppWidgetProviderInfo} descriptor.
    • -
    • android:resource - is the xml resource to use as that descriptor.
    • -
    - - -

    Adding the {@link android.appwidget.AppWidgetProviderInfo AppWidgetProviderInfo} meta-data

    - -

    -For a widget, the values in the {@link android.appwidget.AppWidgetProviderInfo} structure are supplied -in an XML resource. In the example above, the xml resource is referenced with -android:resource="@xml/appwidget_info". That XML file would go in your application's -directory at res/xml/appwidget_info.xml. Here is a simple example. - -{@sample frameworks/base/tests/appwidgets/AppWidgetHostTest/res/xml/appwidget_info.xml AppWidgetProviderInfo} - -

    -The attributes are as documented in the {@link android.appwidget.AppWidgetProviderInfo GagetInfo} class. (86400000 milliseconds means once per day) - - -

    Using the {@link android.appwidget.AppWidgetProvider AppWidgetProvider} class

    - -

    The AppWidgetProvider class is the easiest way to handle the widget provider intent broadcasts. -See the src/com/example/android/apis/appwidget/ExampleAppWidgetProvider.java -sample class in ApiDemos for an example. - -

    Keep in mind that since the the AppWidgetProvider is a BroadcastReceiver, -your process is not guaranteed to keep running after the callback methods return. See -Application Fundamentals > -Broadcast Receiver Lifecycle for more information. - - - -

    AppWidget Configuration UI

    - -

    -Widget hosts have the ability to start a configuration activity when a widget is instantiated. -The activity should be declared as normal in AndroidManifest.xml, and it should be listed in -the AppWidgetProviderInfo XML file in the android:configure attribute. - -

    The activity you specified will be launched with the {@link -android.appwidget.AppWidgetManager#ACTION_APPWIDGET_CONFIGURE} action. See the documentation for that -action for more info. - -

    See the src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java -sample class in ApiDemos for an example. - - - -

    AppWidget Broadcast Intents

    - -

    {@link android.appwidget.AppWidgetProvider} is just a convenience class. If you would like -to receive the widget broadcasts directly, you can. The four intents you need to care about are: -

      -
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE}
    • -
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_DELETED}
    • -
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_ENABLED}
    • -
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_DISABLED}
    • -
    - -

    By way of example, the implementation of -{@link android.appwidget.AppWidgetProvider#onReceive} is quite simple:

    - -{@sample frameworks/base/core/java/android/appwidget/AppWidgetProvider.java onReceive} -

    AppWidget Hosts

    Widget hosts are the containers in which widgets can be placed. Most of the look and feel @@ -132,5 +27,6 @@ widgets, but the lock screen could also contain widgets, and it would have a dif adding, removing and otherwise managing widgets.

    For more information on implementing your own widget host, see the {@link android.appwidget.AppWidgetHost AppWidgetHost} class.

    + diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs index 3c9b7c27bbcd8..a5fdae957c5c8 100644 --- a/docs/html/guide/guide_toc.cs +++ b/docs/html/guide/guide_toc.cs @@ -19,11 +19,13 @@ @@ -37,7 +39,6 @@
  • Intents and Intent Filters
  • Data Storage
  • Content Providers
  • -
  • Security and Permissions
  • @@ -94,6 +95,7 @@ --> +
  • AppWidgets
  • diff --git a/docs/html/guide/topics/appwidgets/index.jd b/docs/html/guide/topics/appwidgets/index.jd new file mode 100644 index 0000000000000..f6d481ae882ee --- /dev/null +++ b/docs/html/guide/topics/appwidgets/index.jd @@ -0,0 +1,154 @@ +page.title=AppWidgets +@jd:body + +
    +
    +

    Key classes

    +
      +
    1. {@link android.appwidget.AppWidgetProvider}
    2. +
    3. {@link android.appwidget.AppWidgetHost}
    4. +
    +

    In this document

    +
      +
    1. AppWidget Providers +
        +
      1. Declaring a widget in the AndroidManifest
      2. +
      3. Adding the AppWidgetProviderInfo meta-data
      4. +
      5. Using the AppWidgetProvider class
      6. +
      7. AppWidget Configuration UI
      8. +
      9. AppWidget Broadcast Intents
      10. +
      +
    2. +
    3. AppWidget Hosts
    4. +
    + +

    See also

    +
      +
    1. Introducing + home screen widgets and the AppWidget framework »
    2. +
    +
    +
    + +

    AppWidgets are miniature application views that can be embedded in other applications +(e.g., the Home). These views are called "widgets" and you can publish one with +an "AppWidget provider." An application component that is able to hold other widgets is +called an "AppWidget host."

    + + + + +

    AppWidget Providers

    +

    Any application can publish widgets. All an application needs to do to publish a widget is +to have a {@link android.content.BroadcastReceiver} that receives the {@link +android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} intent, +and provide some meta-data about the widget. Android provides the +{@link android.appwidget.AppWidgetProvider} class, which extends BroadcastReceiver, as a convenience +class to aid in handling the broadcasts. + + +

    Declaring a widget in the AndroidManifest

    + +

    First, declare the {@link android.content.BroadcastReceiver} in your application's +AndroidManifest.xml file. + +{@sample frameworks/base/tests/appwidgets/AppWidgetHostTest/AndroidManifest.xml AppWidgetProvider} + +

    +The <receiver> element has the following attributes: +

      +
    • android:name - which specifies the + {@link android.content.BroadcastReceiver} or {@link android.appwidget.AppWidgetProvider} + class.
    • +
    • android:label - which specifies the string resource that + will be shown by the widget picker as the label.
    • +
    • android:icon - which specifies the drawable resource that + will be shown by the widget picker as the icon.
    • +
    + +

    +The <intent-filter> element tells the {@link android.content.pm.PackageManager} +that this {@link android.content.BroadcastReceiver} receives the {@link +android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} broadcast. +The widget manager will send other broadcasts directly to your widget provider as required. +It is only necessary to explicitly declare that you accept the {@link +android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE AppWidgetManager.ACTION_APPWIDGET_UPDATE} broadcast. + +

    +The <meta-data> element tells the widget manager which xml resource to +read to find the {@link android.appwidget.AppWidgetProviderInfo} for your widget provider. It has the following +attributes: +

      +
    • android:name="android.appwidget.provider" - identifies this meta-data + as the {@link android.appwidget.AppWidgetProviderInfo} descriptor.
    • +
    • android:resource - is the xml resource to use as that descriptor.
    • +
    + + +

    Adding the AppWidgetProviderInfo meta-data

    + +

    For a widget, the values in the {@link android.appwidget.AppWidgetProviderInfo} structure are supplied +in an XML resource. In the example above, the xml resource is referenced with +android:resource="@xml/appwidget_info". That XML file would go in your application's +directory at res/xml/appwidget_info.xml. Here is a simple example. + +{@sample frameworks/base/tests/appwidgets/AppWidgetHostTest/res/xml/appwidget_info.xml AppWidgetProviderInfo} + +

    The attributes are as documented in the +{@link android.appwidget.AppWidgetProviderInfo} class. + + +

    Using the AppWidgetProvider class

    + +

    The AppWidgetProvider class is the easiest way to handle the widget provider intent broadcasts. +See the src/com/example/android/apis/appwidget/ExampleAppWidgetProvider.java +sample class in ApiDemos for an example. + +

    Keep in mind that since the the AppWidgetProvider is a BroadcastReceiver, +your process is not guaranteed to keep running after the callback methods return. See +Application Fundamentals > +Broadcast Receiver Lifecycle for more information. + + + +

    AppWidget Configuration UI

    + +

    +Widget hosts have the ability to start a configuration activity when a widget is instantiated. +The activity should be declared as normal in AndroidManifest.xml, and it should be listed in +the AppWidgetProviderInfo XML file in the android:configure attribute. + +

    The activity you specified will be launched with the {@link +android.appwidget.AppWidgetManager#ACTION_APPWIDGET_CONFIGURE} action. See the documentation for that +action for more info. + +

    See the src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java +sample class in ApiDemos for an example. + + + +

    AppWidget Broadcast Intents

    + +

    {@link android.appwidget.AppWidgetProvider} is just a convenience class. If you would like +to receive the widget broadcasts directly, you can. The four intents you need to care about are: +

      +
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_UPDATE}
    • +
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_DELETED}
    • +
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_ENABLED}
    • +
    • {@link android.appwidget.AppWidgetManager#ACTION_APPWIDGET_DISABLED}
    • +
    + +

    By way of example, the implementation of +{@link android.appwidget.AppWidgetProvider#onReceive} is quite simple:

    + +{@sample frameworks/base/core/java/android/appwidget/AppWidgetProvider.java onReceive} + + +

    AppWidget Hosts

    + +

    Widget hosts are the containers in which widgets can be placed. Most of the look and feel +details are left up to the widget hosts. For example, the home screen has one way of viewing +widgets, but the lock screen could also contain widgets, and it would have a different way of +adding, removing and otherwise managing widgets.

    +

    For more information on implementing your own widget host, see the +{@link android.appwidget.AppWidgetHost AppWidgetHost} class.

    From 78b1511d96f0b2123bfadf51c5c1ccf33cdd2b3d Mon Sep 17 00:00:00 2001 From: Bill Napier <> Date: Thu, 23 Apr 2009 17:14:22 -0700 Subject: [PATCH 25/70] AI 147541: Add cs as default language for cz. BUG=1781746 Automated import of CL 147541 --- .../com/android/internal/telephony/gsm/MccTable.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/gsm/MccTable.java b/telephony/java/com/android/internal/telephony/gsm/MccTable.java index 53145fb7516c6..4507fe33a9dd4 100644 --- a/telephony/java/com/android/internal/telephony/gsm/MccTable.java +++ b/telephony/java/com/android/internal/telephony/gsm/MccTable.java @@ -62,11 +62,11 @@ public final class MccTable entryForMcc(int mcc) { int index; - + MccEntry m; m = new MccEntry(mcc, null, 0); - + index = Collections.binarySearch(table, m); if (index < 0) { @@ -154,7 +154,7 @@ public final class MccTable /* * The table below is built from two resources: - * + * * 1) ITU "Mobile Network Code (MNC) for the international * identification plan for mobile terminals and mobile users" * which is available as an annex to the ITU operational bulletin @@ -167,7 +167,7 @@ public final class MccTable * * FIXME(mkf) this should be stored in a more efficient representation */ - + table.add(new MccEntry(202,"gr",2)); //Greece table.add(new MccEntry(204,"nl",2,"Europe/Amsterdam")); //Netherlands (Kingdom of the) table.add(new MccEntry(206,"be",2)); //Belgium @@ -183,7 +183,7 @@ public final class MccTable table.add(new MccEntry(225,"va",2,"Europe/Rome","it")); //Vatican City State table.add(new MccEntry(226,"ro",2)); //Romania table.add(new MccEntry(228,"ch",2,"Europe/Zurich","en")); //Switzerland (Confederation of) - table.add(new MccEntry(230,"cz",2,"Europe/Prague")); //Czech Republic + table.add(new MccEntry(230,"cz",2,"Europe/Prague","cs")); //Czech Republic table.add(new MccEntry(231,"sk",2)); //Slovak Republic table.add(new MccEntry(232,"at",2,"Europe/Vienna","de")); //Austria table.add(new MccEntry(234,"gb",2,"Europe/London","en")); //United Kingdom of Great Britain and Northern Ireland From d97e8dc252b6f2f5919885ee337518e5fd5bd285 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Fri, 24 Apr 2009 11:30:35 -0700 Subject: [PATCH 26/70] AI 147710: Add redirects for sdk/preview pages. BUG=1790234 Automated import of CL 147710 --- docs/html/sdk/preview/features.html | 202 ++++++++++++++++++++++++++++ docs/html/sdk/preview/index.jd | 5 + 2 files changed, 207 insertions(+) create mode 100644 docs/html/sdk/preview/features.html create mode 100644 docs/html/sdk/preview/index.jd diff --git a/docs/html/sdk/preview/features.html b/docs/html/sdk/preview/features.html new file mode 100644 index 0000000000000..392c0895ec259 --- /dev/null +++ b/docs/html/sdk/preview/features.html @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Redirecting... + + + + + + + + + + +
    +
    +
    + + + +
    +
    + + + +
    + + + + +
    + +
    + + + + + + + + + diff --git a/docs/html/sdk/preview/index.jd b/docs/html/sdk/preview/index.jd new file mode 100644 index 0000000000000..cb699e9121d1d --- /dev/null +++ b/docs/html/sdk/preview/index.jd @@ -0,0 +1,5 @@ +sdk.redirect=true +@jd:body + + + From 6edea74a4dc0f2e17d9fb59ef5e175d9cb1a8508 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty <> Date: Fri, 24 Apr 2009 11:32:25 -0700 Subject: [PATCH 27/70] AI 147711: Fix link text in highlights doc. Copy "New APIs" section to Version Notes doc. BUG=1790234 Automated import of CL 147711 --- docs/html/sdk/android-1.5-highlights.jd | 32 ++++---- docs/html/sdk/android-1.5.jd | 98 +++++++++++++++---------- 2 files changed, 76 insertions(+), 54 deletions(-) diff --git a/docs/html/sdk/android-1.5-highlights.jd b/docs/html/sdk/android-1.5-highlights.jd index 46022d159d225..b0e5f57d6b37c 100644 --- a/docs/html/sdk/android-1.5-highlights.jd +++ b/docs/html/sdk/android-1.5-highlights.jd @@ -11,13 +11,13 @@ sdk.version=1.5_r1 The list below provides an overview of the changes.

    -

    User interface refinements

    +

    User Interface Refinements