summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2009-11-23 09:19:40 -0800
committerJean-Baptiste Queru <jbq@google.com>2009-11-23 09:19:40 -0800
commit8625c1ec4fb4057b1aa4f386f9f1757f19d0298f (patch)
treea89274915d88860452235356ff105e3f1e8764fe
parent2b63ff51d5202eb2b458e937d4b65b326238733e (diff)
parent01889503c47aadc9faacf727371f1d23e3a99d97 (diff)
downloadbase-donut-plus-aosp.tar.gz
merge from donutdonut-plus-aosp
-rw-r--r--Android.mk6
-rw-r--r--api/4.xml76
-rw-r--r--api/current.xml76
-rw-r--r--core/java/android/app/Activity.java13
-rw-r--r--core/java/android/app/SearchDialog.java2
-rw-r--r--core/java/android/app/SearchManager.java24
-rw-r--r--core/java/android/content/res/StringBlock.java34
-rw-r--r--core/java/android/hardware/Camera.java51
-rw-r--r--core/java/android/provider/Telephony.java3
-rwxr-xr-xcore/java/android/speech/tts/TextToSpeech.java197
-rw-r--r--core/java/android/text/StaticLayout.java8
-rw-r--r--core/java/android/text/TextPaint.java5
-rw-r--r--core/java/android/text/style/AbsoluteSizeSpan.java37
-rw-r--r--core/java/android/text/style/LineHeightSpan.java10
-rw-r--r--core/java/android/widget/TextView.java6
-rw-r--r--core/jni/android/graphics/Bitmap.cpp9
-rw-r--r--core/jni/android/graphics/Graphics.cpp6
-rw-r--r--core/jni/android/graphics/GraphicsJNI.h2
-rw-r--r--core/jni/android/graphics/Paint.cpp10
-rw-r--r--core/jni/android_emoji_EmojiFactory.cpp4
-rw-r--r--core/res/res/values-da/strings.xml168
-rw-r--r--core/res/res/values-el/strings.xml168
-rw-r--r--core/res/res/values-es-rUS/strings.xml168
-rw-r--r--core/res/res/values-it/strings.xml2
-rw-r--r--core/res/res/values-ko/strings.xml168
-rw-r--r--core/res/res/values-mcc204-el/strings.xml2
-rw-r--r--core/res/res/values-mcc204-nb/strings.xml19
-rw-r--r--core/res/res/values-mcc230-el/strings.xml2
-rw-r--r--core/res/res/values-mcc230-nb/strings.xml19
-rw-r--r--core/res/res/values-mcc232-el/strings.xml2
-rw-r--r--core/res/res/values-mcc232-nb/strings.xml19
-rw-r--r--core/res/res/values-mcc234-el/strings.xml2
-rw-r--r--core/res/res/values-mcc234-nb/strings.xml19
-rw-r--r--core/res/res/values-mcc260-el/strings.xml2
-rw-r--r--core/res/res/values-mcc260-nb/strings.xml19
-rw-r--r--core/res/res/values-mcc262-el/strings.xml2
-rw-r--r--core/res/res/values-mcc262-nb/strings.xml19
-rw-r--r--core/res/res/values-nb/strings.xml46
-rw-r--r--core/res/res/values-pt-rPT/strings.xml168
-rw-r--r--core/res/res/values-pt/strings.xml172
-rw-r--r--core/res/res/values-ru/strings.xml168
-rw-r--r--core/res/res/values-sv/strings.xml168
-rw-r--r--core/res/res/values-tr/strings.xml168
-rw-r--r--core/res/res/values-zh-rCN/strings.xml248
-rw-r--r--core/res/res/values/attrs.xml9
-rw-r--r--data/fonts/fonts.xml7
-rw-r--r--docs/html/community/index.jd22
-rw-r--r--docs/html/guide/appendix/api-levels.jd386
-rw-r--r--docs/html/guide/developing/eclipse-adt.jd16
-rw-r--r--docs/html/guide/developing/other-ide.jd121
-rw-r--r--docs/html/guide/developing/tools/avd.jd94
-rw-r--r--docs/html/guide/developing/tools/emulator.jd78
-rw-r--r--docs/html/guide/developing/tools/index.jd5
-rw-r--r--docs/html/guide/developing/tools/othertools.jd47
-rw-r--r--docs/html/guide/developing/tools/zipalign.jd65
-rw-r--r--docs/html/guide/developing/updating-sdk.jd108
-rw-r--r--docs/html/guide/guide_toc.cs15
-rw-r--r--docs/html/guide/practices/screens_support.jd1307
-rw-r--r--docs/html/guide/publishing/app-signing.jd248
-rw-r--r--docs/html/guide/publishing/preparing.jd14
-rw-r--r--docs/html/guide/publishing/versioning.jd37
-rw-r--r--docs/html/guide/topics/intents/intents-filters.jd418
-rw-r--r--docs/html/guide/topics/manifest/supports-screens-element.jd37
-rw-r--r--docs/html/guide/topics/manifest/uses-sdk-element.jd33
-rw-r--r--docs/html/guide/topics/resources/available-resources.jd346
-rwxr-xr-xdocs/html/guide/topics/resources/localization.jd644
-rwxr-xr-xdocs/html/guide/topics/resources/resources-i18n.jd2
-rw-r--r--docs/html/guide/topics/ui/ui-events.jd8
-rwxr-xr-xdocs/html/guide/tutorials/localization/index.jd587
-rw-r--r--docs/html/images/emulator-wvga800l.pngbin0 -> 513676 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/copy_res_files.pngbin0 -> 14109 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/custom_locale_app.pngbin0 -> 40676 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-de-rDE/flag.pngbin0 -> 1613 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-en-rCA/flag.pngbin0 -> 7765 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-en-rUS/flag.pngbin0 -> 13781 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-fr-rCA/flag.pngbin0 -> 7765 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-fr-rFR/flag.pngbin0 -> 615 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/drawable-ja-rJP/flag.pngbin0 -> 2303 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/flag.pngbin0 -> 17480 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/frenchCA_screenshot.pngbin0 -> 19252 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/germanCH_screenshot.pngbin0 -> 25593 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/german_screenshot.pngbin0 -> 15424 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/japanese_screenshot.pngbin0 -> 18564 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/nonlocalized_project.pngbin0 -> 21195 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/nonlocalized_screenshot1.pngbin0 -> 25693 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/nonlocalized_screenshot2.pngbin0 -> 30201 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/plain_project.pngbin0 -> 10091 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/romanshCH_screenshot.pngbin0 -> 25352 bytes
-rwxr-xr-xdocs/html/images/hello_l10n/using_custom_locale.pngbin0 -> 38388 bytes
-rwxr-xr-xdocs/html/images/resources/arrow.pngbin0 -> 486 bytes
-rwxr-xr-xdocs/html/images/resources/res-selection-flowchart.png (renamed from docs/html/guide/topics/resources/res-selection-flowchart.png)bin23228 -> 23228 bytes
-rwxr-xr-xdocs/html/images/resources/right-arrow.pngbin0 -> 420 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_14fj6dhsc3_b.pngbin0 -> 67915 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_15dcsvrscg_b.pngbin0 -> 64510 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_16g95wjqg3_b.pngbin0 -> 6640 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_17p2w4txgc_b.pngbin0 -> 41291 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_18c6mhm3cm_b.pngbin0 -> 249072 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_19c743p6cr_b.pngbin0 -> 212513 bytes
-rw-r--r--docs/html/images/screens_support/afdvfckr9j_20fvptbbdd_b.pngbin0 -> 19799 bytes
-rw-r--r--docs/html/images/screens_support/avds-config.pngbin0 -> 78486 bytes
-rw-r--r--docs/html/images/screens_support/dip.pngbin0 -> 396188 bytes
-rw-r--r--docs/html/images/screens_support/scale-test.pngbin0 -> 85470 bytes
-rwxr-xr-xdocs/html/images/sdk_manager_packages.pngbin0 -> 79905 bytes
-rw-r--r--docs/html/index.jd19
-rw-r--r--docs/html/intl/ja/community/index.jd18
-rw-r--r--docs/html/intl/ja/index.jd10
-rw-r--r--docs/html/sdk/1.0_r1/requirements.jd8
-rw-r--r--docs/html/sdk/1.0_r2/requirements.jd8
-rw-r--r--docs/html/sdk/1.1_r1/requirements.jd8
-rw-r--r--docs/html/sdk/1.5_r1/requirements.jd8
-rw-r--r--docs/html/sdk/1.5_r2/requirements.jd8
-rw-r--r--docs/html/sdk/1.5_r3/requirements.jd8
-rw-r--r--docs/html/sdk/1.6_r1/index.jd140
-rw-r--r--docs/html/sdk/1.6_r1/installing.jd441
-rw-r--r--docs/html/sdk/1.6_r1/requirements.jd57
-rw-r--r--docs/html/sdk/1.6_r1/upgrading.jd386
-rw-r--r--docs/html/sdk/RELEASENOTES.jd197
-rw-r--r--docs/html/sdk/adt_download.jd19
-rw-r--r--docs/html/sdk/android-1.6-highlights.jd213
-rw-r--r--docs/html/sdk/android-1.6.jd324
-rw-r--r--docs/html/sdk/api_diff/4/changes.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html994
-rw-r--r--docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html1011
-rw-r--r--docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html14
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.anim.html151
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.array.html199
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.attr.html130
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.color.html332
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.dimen.html213
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.drawable.html284
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.id.html269
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.integer.html213
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.layout.html206
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.string.html304
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.R.style.html137
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.Activity.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.Dialog.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.Context.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.Intent.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.location.Address.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.os.Build.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.util.Config.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.view.Surface.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.view.View.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.ListView.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/changes-summary.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/classes_index_additions.html24
-rw-r--r--docs/html/sdk/api_diff/4/changes/classes_index_all.html47
-rw-r--r--docs/html/sdk/api_diff/4/changes/classes_index_changes.html7
-rw-r--r--docs/html/sdk/api_diff/4/changes/fields_index_additions.html715
-rw-r--r--docs/html/sdk/api_diff/4/changes/fields_index_all.html715
-rw-r--r--docs/html/sdk/api_diff/4/changes/java.lang.String.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/java.net.Socket.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/java.util.Date.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/jdiff_help.html2
-rw-r--r--docs/html/sdk/api_diff/4/changes/jdiff_statistics.html105
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.app.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.content.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.html53
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.location.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.media.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.os.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.provider.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.test.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.util.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.view.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_android.widget.html26
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_java.lang.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_java.net.html4
-rw-r--r--docs/html/sdk/api_diff/4/changes/pkg_java.util.html4
-rw-r--r--docs/html/sdk/api_diff/4/missingSinces.txt233
-rw-r--r--docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml (renamed from docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml)1442
-rw-r--r--docs/html/sdk/images/battery.pngbin0 -> 22208 bytes
-rw-r--r--docs/html/sdk/images/camera.pngbin0 -> 47444 bytes
-rw-r--r--docs/html/sdk/images/donut_small_bg.pngbin0 -> 4031 bytes
-rw-r--r--docs/html/sdk/images/market.pngbin0 -> 40382 bytes
-rw-r--r--docs/html/sdk/images/search.pngbin0 -> 24245 bytes
-rw-r--r--docs/html/sdk/ndk/1.6_r1/index.jd360
-rw-r--r--docs/html/sdk/preview/features.jd4
-rw-r--r--docs/html/sdk/preview/index.jd192
-rw-r--r--docs/html/sdk/preview/installing.jd343
-rw-r--r--docs/html/sdk/preview/requirements.jd44
-rw-r--r--docs/html/sdk/preview/upgrading.jd257
-rw-r--r--docs/html/sdk/sdk_toc.cs4
-rw-r--r--docs/html/sdk/terms.jd2
-rw-r--r--docs/html/search.jd223
-rw-r--r--docs/html/videos/index.jd4
-rw-r--r--graphics/java/android/graphics/Bitmap.java9
-rw-r--r--graphics/java/android/graphics/Paint.java126
-rw-r--r--graphics/java/android/graphics/PixelFormat.java6
-rw-r--r--graphics/java/android/graphics/drawable/NinePatchDrawable.java26
-rw-r--r--media/jni/android_media_MediaMetadataRetriever.cpp4
-rw-r--r--packages/SettingsProvider/res/values-da/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-el/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-es-rUS/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-ko/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-nb/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-pt-rPT/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-pt/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-ru/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-sv/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-tr/strings.xml19
-rw-r--r--packages/SettingsProvider/res/values-zh-rCN/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-da/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-el/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-es-rUS/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-ko/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-nb/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-pt-rPT/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-pt/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-ru/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-sv/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-tr/strings.xml19
-rw-r--r--packages/SubscribedFeedsProvider/res/values-zh-rCN/strings.xml19
-rw-r--r--packages/VpnServices/res/values-da/strings.xml22
-rw-r--r--packages/VpnServices/res/values-el/strings.xml22
-rw-r--r--packages/VpnServices/res/values-es-rUS/strings.xml22
-rw-r--r--packages/VpnServices/res/values-ko/strings.xml22
-rw-r--r--packages/VpnServices/res/values-nb/strings.xml22
-rw-r--r--packages/VpnServices/res/values-pt-rPT/strings.xml22
-rw-r--r--packages/VpnServices/res/values-pt/strings.xml22
-rw-r--r--packages/VpnServices/res/values-ru/strings.xml22
-rw-r--r--packages/VpnServices/res/values-sv/strings.xml22
-rw-r--r--packages/VpnServices/res/values-tr/strings.xml22
-rw-r--r--packages/VpnServices/res/values-zh-rCN/strings.xml22
-rw-r--r--services/java/com/android/server/DeviceStorageMonitorService.java104
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java9
-rw-r--r--telephony/java/com/android/internal/telephony/WapPushOverSms.java40
-rw-r--r--telephony/java/com/android/internal/telephony/WspTypeDecoder.java5
-rw-r--r--tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java44
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Bitmap.java4
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Canvas.java90
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Paint.java219
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Typeface.java48
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java3
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeResources.java2
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java5
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/FontLoader.java142
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/ResourceHelper.java113
308 files changed, 9584 insertions, 10761 deletions
diff --git a/Android.mk b/Android.mk
index 1b5c70b6ae1d..16d77e456f86 100644
--- a/Android.mk
+++ b/Android.mk
@@ -361,13 +361,13 @@ web_docs_sample_code_flags := \
## SDK version identifiers used in the published docs
# major[.minor] version for current SDK. (full releases only)
-framework_docs_SDK_VERSION:=1.5
+framework_docs_SDK_VERSION:=1.6
# release version (ie "Release x") (full releases only)
-framework_docs_SDK_REL_ID:=3
+framework_docs_SDK_REL_ID:=1
# name of current SDK directory (full releases only)
framework_docs_SDK_CURRENT_DIR:=$(framework_docs_SDK_VERSION)_r$(framework_docs_SDK_REL_ID)
# flag to build offline docs for a preview release
-framework_docs_SDK_PREVIEW:=true
+framework_docs_SDK_PREVIEW:=0
framework_docs_LOCAL_DROIDDOC_OPTIONS += \
-hdf sdk.version $(framework_docs_SDK_VERSION) \
diff --git a/api/4.xml b/api/4.xml
index fc54859f7369..82ddcc43050a 100644
--- a/api/4.xml
+++ b/api/4.xml
@@ -51157,7 +51157,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51201,7 +51201,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51769,7 +51769,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51786,7 +51786,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51803,7 +51803,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -111799,6 +111799,17 @@
visibility="public"
>
</field>
+<field name="DATA_ACTIVITY_DORMANT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="DATA_ACTIVITY_IN"
type="int"
transient="false"
@@ -111939,6 +111950,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_1xRTT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="7"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_EDGE"
type="int"
transient="false"
@@ -111950,6 +111983,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_EVDO_0"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="5"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_EVDO_A"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="6"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_GPRS"
type="int"
transient="false"
@@ -111983,6 +112038,17 @@
visibility="public"
>
</field>
+<field name="PHONE_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="PHONE_TYPE_GSM"
type="int"
transient="false"
diff --git a/api/current.xml b/api/current.xml
index 76ee8521442a..38e871ba233f 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -51157,7 +51157,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51201,7 +51201,7 @@
<method name="breakText"
return="int"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51769,7 +51769,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51786,7 +51786,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -51803,7 +51803,7 @@
<method name="measureText"
return="float"
abstract="false"
- native="true"
+ native="false"
synchronized="false"
static="false"
final="false"
@@ -111799,6 +111799,17 @@
visibility="public"
>
</field>
+<field name="DATA_ACTIVITY_DORMANT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="DATA_ACTIVITY_IN"
type="int"
transient="false"
@@ -111939,6 +111950,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_1xRTT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="7"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_EDGE"
type="int"
transient="false"
@@ -111950,6 +111983,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_EVDO_0"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="5"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_EVDO_A"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="6"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_GPRS"
type="int"
transient="false"
@@ -111983,6 +112038,17 @@
visibility="public"
>
</field>
+<field name="PHONE_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="PHONE_TYPE_GSM"
type="int"
transient="false"
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index f2905a7d80c5..5e821fd93871 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2479,16 +2479,17 @@ public class Activity extends ContextThemeWrapper
/**
* This hook is called when the user signals the desire to start a search.
*
- * <p>You can use this function as a simple way to launch the search UI, in response to a
- * menu item, search button, or other widgets within your activity. Unless overidden,
- * calling this function is the same as calling:
- * <p>The default implementation simply calls
- * {@link #startSearch startSearch(null, false, null, false)}, launching a local search.
+ * <p>You can use this function as a simple way to launch the search UI, in response to a
+ * menu item, search button, or other widgets within your activity. Unless overidden,
+ * calling this function is the same as calling
+ * {@link #startSearch startSearch(null, false, null, false)}, which launches
+ * search for the current activity as specified in its manifest, see {@link SearchManager}.
*
* <p>You can override this function to force global search, e.g. in response to a dedicated
* search key, or to block search entirely (by simply returning false).
*
- * @return Returns true if search launched, false if activity blocks it
+ * @return Returns {@code true} if search launched, and {@code false} if activity blocks it.
+ * The default implementation always returns {@code true}.
*
* @see android.app.SearchManager
*/
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 5844079e616c..3e93ec71e3b7 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -1206,7 +1206,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
cv.put(SearchManager.SUGGEST_COLUMN_INTENT_ACTION, intent.getAction());
cv.put(SearchManager.SUGGEST_COLUMN_INTENT_DATA, intent.getDataString());
cv.put(SearchManager.SUGGEST_COLUMN_INTENT_COMPONENT_NAME,
- intent.getStringExtra(SearchManager.COMPONENT_NAME_KEY));
+ intent.getComponent().flattenToShortString());
// ensure the icons will work for global search
cv.put(SearchManager.SUGGEST_COLUMN_ICON_1,
diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java
index 2245562763cf..7d4e51dfeb69 100644
--- a/core/java/android/app/SearchManager.java
+++ b/core/java/android/app/SearchManager.java
@@ -768,8 +768,11 @@ import java.util.List;
* </tr>
*
* <tr><th>android:icon</th>
- * <td>If provided, this icon will be used <i>in place</i> of the label string. This
- * is provided in order to present logos or other non-textual banners.</td>
+ * <td>If provided, this icon will be shown in place of the label above the search box.
+ * This is a reference to a drawable (icon) resource. Note that the application icon
+ * is also used as an icon to the left of the search box and you cannot modify this
+ * behavior, so including the icon attribute is unecessary and this may be
+ * deprecated in the future.</td>
* <td align="center">No</td>
* </tr>
*
@@ -778,11 +781,6 @@ import java.util.List;
* entered.</td>
* <td align="center">No</td>
* </tr>
- *
- * <tr><th>android:searchButtonText</th>
- * <td>If provided, this text will replace the default text in the "Search" button.</td>
- * <td align="center">No</td>
- * </tr>
*
* <tr><th>android:searchMode</th>
* <td>If provided and non-zero, sets additional modes for control of the search
@@ -791,15 +789,17 @@ import java.util.List;
* <tbody>
* <tr><th>showSearchLabelAsBadge</th>
* <td>If set, this flag enables the display of the search target (label)
- * within the search bar. If this flag and showSearchIconAsBadge
+ * above the search box. If this flag and showSearchIconAsBadge
* (see below) are both not set, no badge will be shown.</td>
* </tr>
* <tr><th>showSearchIconAsBadge</th>
- * <td>If set, this flag enables the display of the search target (icon) within
- * the search bar. If this flag and showSearchLabelAsBadge
+ * <td>If set, this flag enables the display of the search target (icon)
+ * above the search box. If this flag and showSearchLabelAsBadge
* (see above) are both not set, no badge will be shown. If both flags
* are set, showSearchIconAsBadge has precedence and the icon will be
- * shown.</td>
+ * shown. Because the application icon is now used to the left of the
+ * search box by default, using this search mode is no longer necessary
+ * and may be deprecated in the future.</td>
* </tr>
* <tr><th>queryRewriteFromData</th>
* <td>If set, this flag causes the suggestion column SUGGEST_COLUMN_INTENT_DATA
@@ -2000,4 +2000,4 @@ public class SearchManager
Thread thread = Thread.currentThread();
Log.d(TAG, msg + " (" + thread.getName() + "-" + thread.getId() + ")");
}
-}
+} \ No newline at end of file
diff --git a/core/java/android/content/res/StringBlock.java b/core/java/android/content/res/StringBlock.java
index e684cb8018df..8fb82be33880 100644
--- a/core/java/android/content/res/StringBlock.java
+++ b/core/java/android/content/res/StringBlock.java
@@ -202,7 +202,7 @@ final class StringBlock {
sub = subtag(tag, ";size=");
if (sub != null) {
int size = Integer.parseInt(sub);
- buffer.setSpan(new AbsoluteSizeSpan(size),
+ buffer.setSpan(new AbsoluteSizeSpan(size, true),
style[i+1], style[i+2]+1,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@@ -310,7 +310,7 @@ final class StringBlock {
* the ascent if possible, or the descent if shrinking the ascent further
* will make the text unreadable.
*/
- private static class Height implements LineHeightSpan {
+ private static class Height implements LineHeightSpan.WithDensity {
private int mSize;
private static float sProportion = 0;
@@ -321,9 +321,21 @@ final class StringBlock {
public void chooseHeight(CharSequence text, int start, int end,
int spanstartv, int v,
Paint.FontMetricsInt fm) {
- if (fm.bottom - fm.top < mSize) {
- fm.top = fm.bottom - mSize;
- fm.ascent = fm.ascent - mSize;
+ // Should not get called, at least not by StaticLayout.
+ chooseHeight(text, start, end, spanstartv, v, fm, null);
+ }
+
+ public void chooseHeight(CharSequence text, int start, int end,
+ int spanstartv, int v,
+ Paint.FontMetricsInt fm, TextPaint paint) {
+ int size = mSize;
+ if (paint != null) {
+ size *= paint.density;
+ }
+
+ if (fm.bottom - fm.top < size) {
+ fm.top = fm.bottom - size;
+ fm.ascent = fm.ascent - size;
} else {
if (sProportion == 0) {
/*
@@ -343,27 +355,27 @@ final class StringBlock {
int need = (int) Math.ceil(-fm.top * sProportion);
- if (mSize - fm.descent >= need) {
+ if (size - fm.descent >= need) {
/*
* It is safe to shrink the ascent this much.
*/
- fm.top = fm.bottom - mSize;
- fm.ascent = fm.descent - mSize;
- } else if (mSize >= need) {
+ fm.top = fm.bottom - size;
+ fm.ascent = fm.descent - size;
+ } else if (size >= need) {
/*
* We can't show all the descent, but we can at least
* show all the ascent.
*/
fm.top = fm.ascent = -need;
- fm.bottom = fm.descent = fm.top + mSize;
+ fm.bottom = fm.descent = fm.top + size;
} else {
/*
* Show as much of the ascent as we can, and no descent.
*/
- fm.top = fm.ascent = -mSize;
+ fm.top = fm.ascent = -size;
fm.bottom = fm.descent = 0;
}
}
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 091bc1700988..142bbd96315f 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -35,6 +35,23 @@ import android.os.Message;
* frames for encoding for video.
* <p>There is no default constructor for this class. Use {@link #open()} to
* get a Camera object.</p>
+ *
+ * <p>In order to use the device camera, you must declare the
+ * {@link android.Manifest.permission#CAMERA} permission in your Android
+ * Manifest. Also be sure to include the
+ * <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
+ * manifest element in order to declare camera features used by your application.
+ * For example, if you use the camera and auto-focus feature, your Manifest
+ * should include the following:</p>
+ * <pre> &lt;uses-permission android:name="android.permission.CAMERA" />
+ * &lt;uses-feature android:name="android.hardware.camera" />
+ * &lt;uses-feature android:name="android.hardware.camera.autofocus" /></pre>
+ *
+ * <p class="caution"><strong>Caution:</strong> Different Android-powered devices
+ * may have different hardware specifications, such as megapixel ratings and
+ * auto-focus capabilities. In order for your application to be compatible with
+ * more devices, you should not make assumptions about the device camera
+ * specifications.</p>
*/
public class Camera {
private static final String TAG = "Camera";
@@ -172,8 +189,9 @@ public class Camera {
/**
* The callback that delivers the preview frames.
*
- * @param data The contents of the preview frame in getPreviewFormat()
- * format.
+ * @param data The contents of the preview frame in the format defined
+ * by {@link android.graphics.PixelFormat}, which can be queried
+ * with {@link android.hardware.Camera.Parameters#getPreviewFormat()}.
* @param camera The Camera service object.
*/
void onPreviewFrame(byte[] data, Camera camera);
@@ -296,6 +314,13 @@ public class Camera {
/**
* Handles the callback for the camera auto focus.
+ * <p>Devices that do not support auto-focus will receive a "fake"
+ * callback to this interface. If your application needs auto-focus and
+ * should not be installed on devices <em>without</em> auto-focus, you must
+ * declare that your app uses the
+ * {@code android.hardware.camera.autofocus} feature, in the
+ * <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
+ * manifest element.</p>
*/
public interface AutoFocusCallback
{
@@ -312,6 +337,14 @@ public class Camera {
* Starts auto-focus function and registers a callback function to
* run when camera is focused. Only valid after startPreview() has
* been called.
+ * <p>Devices that do not support auto-focus will trigger a "fake"
+ * callback to the
+ * {@link android.hardware.Camera.AutoFocusCallback}.
+ * If your application should not be installed
+ * on devices without auto-focus, you must declare that your application
+ * uses auto-focus with the
+ * <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
+ * manifest element.</p>
*
* @param cb the callback to run
*/
@@ -668,10 +701,15 @@ public class Camera {
}
/**
- * Sets the image format for preview pictures.
+ * Sets the image format for preview pictures.
+ * <p>If the image format is not set with this method, then the
+ * preview format will default to
+ * {@link android.graphics.PixelFormat#YCbCr_420_SP}, which
+ * uses the NV21 encoding format.</p>
*
- * @param pixel_format the desired preview picture format
- * (<var>PixelFormat.YCbCr_420_SP</var>,
+ * @param pixel_format the desired preview picture format, defined
+ * by one of the {@link android.graphics.PixelFormat} constants.
+ * (E.g., <var>PixelFormat.YCbCr_420_SP</var> (default),
* <var>PixelFormat.RGB_565</var>, or
* <var>PixelFormat.JPEG</var>)
* @see android.graphics.PixelFormat
@@ -688,7 +726,8 @@ public class Camera {
/**
* Returns the image format for preview pictures.
*
- * @return the PixelFormat int representing the preview picture format
+ * @return the {@link android.graphics.PixelFormat} int representing
+ * the preview picture format.
*/
public int getPreviewFormat() {
return pixelFormatForCameraFormat(get("preview-format"));
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index c292c537e696..ff29a957e81c 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -532,7 +532,8 @@ public final class Telephony {
* <li><em>transactionId (Integer)</em> - The WAP transaction
* ID</li>
* <li><em>pduType (Integer)</em> - The WAP PDU type</li>
- * <li><em>data</em> - The data payload of the message</li>
+ * <li><em>header (byte[])</em> - The header of the message</li>
+ * <li><em>data (byte[])</em> - The data payload of the message</li>
* </ul>
*
* <p>If a BroadcastReceiver encounters an error while processing
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java
index a6d76d684fe4..3f369ddd580a 100755
--- a/core/java/android/speech/tts/TextToSpeech.java
+++ b/core/java/android/speech/tts/TextToSpeech.java
@@ -35,9 +35,13 @@ import java.util.Locale;
/**
*
* Synthesizes speech from text for immediate playback or to create a sound file.
+ * <p>A TextToSpeech instance can only be used to synthesize text once it has completed its
+ * initialization. Implement the {@link TextToSpeech.OnInitListener} to be
+ * notified of the completion of the initialization.<br>
+ * When you are done using the TextToSpeech instance, call the {@link #shutdown()} method
+ * to release the native resources used by the TextToSpeech engine.
*
*/
-//TODO complete javadoc + add links to constants
public class TextToSpeech {
/**
@@ -85,7 +89,7 @@ public class TextToSpeech {
public static final int LANG_MISSING_DATA = -1;
/**
- * Denotes the language is not supported by the current TTS engine.
+ * Denotes the language is not supported.
*/
public static final int LANG_NOT_SUPPORTED = -2;
@@ -100,29 +104,38 @@ public class TextToSpeech {
/**
- * Called when the TTS has initialized.
- *
- * The InitListener must implement the onInit function. onInit is passed a
- * status code indicating the result of the TTS initialization.
+ * Interface definition of a callback to be invoked indicating the completion of the
+ * TextToSpeech engine initialization.
*/
public interface OnInitListener {
+ /**
+ * Called to signal the completion of the TextToSpeech engine initialization.
+ * @param status {@link TextToSpeech#SUCCESS} or {@link TextToSpeech#ERROR}.
+ */
public void onInit(int status);
}
/**
- * Called when the TTS has completed saying something that has an utterance ID set.
+ * Interface definition of a callback to be invoked indicating the TextToSpeech engine has
+ * completed synthesizing an utterance with an utterance ID set.
*
- * The OnUtteranceCompletedListener must implement the onUtteranceCompleted function.
- * onUtteranceCompleted is passed a String that is the utteranceId given in
- * the original speak call.
*/
- public interface OnUtteranceCompletedListener {
+ public interface OnUtteranceCompletedListener {
+ /**
+ * Called to signal the completion of the synthesis of the utterance that was identified
+ * with the string parameter. This identifier is the one originally passed in the
+ * parameter hashmap of the synthesis request in
+ * {@link TextToSpeech#speak(String, int, HashMap)} or
+ * {@link TextToSpeech#synthesizeToFile(String, HashMap, String)} with the
+ * {@link TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID} key.
+ * @param utteranceId the identifier of the utterance.
+ */
public void onUtteranceCompleted(String utteranceId);
}
/**
- * Internal constants for the TTS functionality
+ * Internal constants for the TextToSpeech functionality
*
*/
public class Engine {
@@ -145,38 +158,41 @@ public class TextToSpeech {
public static final String DEFAULT_SYNTH = "com.svox.pico";
// default values for rendering
+ /**
+ * Default audio stream used when playing synthesized speech.
+ */
public static final int DEFAULT_STREAM = AudioManager.STREAM_MUSIC;
// return codes for a TTS engine's check data activity
/**
* Indicates success when checking the installation status of the resources used by the
- * text-to-speech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
+ * TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
public static final int CHECK_VOICE_DATA_PASS = 1;
/**
* Indicates failure when checking the installation status of the resources used by the
- * text-to-speech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
+ * TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
public static final int CHECK_VOICE_DATA_FAIL = 0;
/**
* Indicates erroneous data when checking the installation status of the resources used by
- * the text-to-speech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
+ * the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
public static final int CHECK_VOICE_DATA_BAD_DATA = -1;
/**
* Indicates missing resources when checking the installation status of the resources used
- * by the text-to-speech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
+ * by the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
public static final int CHECK_VOICE_DATA_MISSING_DATA = -2;
/**
* Indicates missing storage volume when checking the installation status of the resources
- * used by the text-to-speech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
+ * used by the TextToSpeech engine with the {@link #ACTION_CHECK_TTS_DATA} intent.
*/
public static final int CHECK_VOICE_DATA_MISSING_VOLUME = -3;
// intents to ask engine to install data or check its data
/**
- * Activity Action: Triggers the platform Text-To-Speech engine to
+ * Activity Action: Triggers the platform TextToSpeech engine to
* start the activity that installs the resource files on the device
* that are required for TTS to be operational. Since the installation
* of the data can be interrupted or declined by the user, the application
@@ -197,7 +213,7 @@ public class TextToSpeech {
public static final String ACTION_TTS_DATA_INSTALLED =
"android.speech.tts.engine.TTS_DATA_INSTALLED";
/**
- * Activity Action: Starts the activity from the platform Text-To-Speech
+ * Activity Action: Starts the activity from the platform TextToSpeech
* engine to verify the proper installation and availability of the
* resource files on the system. Upon completion, the activity will
* return one of the following codes:
@@ -210,9 +226,9 @@ public class TextToSpeech {
* fields:
* <ul>
* <li>{@link #EXTRA_VOICE_DATA_ROOT_DIRECTORY} which
- * indicates the path to the location of the resource files</li>,
+ * indicates the path to the location of the resource files,</li>
* <li>{@link #EXTRA_VOICE_DATA_FILES} which contains
- * the list of all the resource files</li>,
+ * the list of all the resource files,</li>
* <li>and {@link #EXTRA_VOICE_DATA_FILES_INFO} which
* contains, for each resource file, the description of the language covered by
* the file in the xxx-YYY format, where xxx is the 3-letter ISO language code,
@@ -226,18 +242,18 @@ public class TextToSpeech {
// extras for a TTS engine's check data activity
/**
* Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent where
- * the text-to-speech engine specifies the path to its resources.
+ * the TextToSpeech engine specifies the path to its resources.
*/
public static final String EXTRA_VOICE_DATA_ROOT_DIRECTORY = "dataRoot";
/**
* Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent where
- * the text-to-speech engine specifies the file names of its resources under the
+ * the TextToSpeech engine specifies the file names of its resources under the
* resource path.
*/
public static final String EXTRA_VOICE_DATA_FILES = "dataFiles";
/**
* Extra information received with the {@link #ACTION_CHECK_TTS_DATA} intent where
- * the text-to-speech engine specifies the locale associated with each resource file.
+ * the TextToSpeech engine specifies the locale associated with each resource file.
*/
public static final String EXTRA_VOICE_DATA_FILES_INFO = "dataFilesInfo";
@@ -272,11 +288,17 @@ public class TextToSpeech {
/**
* Parameter key to specify the audio stream type to be used when speaking text
* or playing back a file.
+ * @see TextToSpeech#speak(String, int, HashMap)
+ * @see TextToSpeech#playEarcon(String, int, HashMap)
*/
public static final String KEY_PARAM_STREAM = "streamType";
/**
- * Parameter key to identify an utterance in the completion listener after text has been
+ * Parameter key to identify an utterance in the
+ * {@link TextToSpeech.OnUtteranceCompletedListener} after text has been
* spoken, a file has been played back or a silence duration has elapsed.
+ * @see TextToSpeech#speak(String, int, HashMap)
+ * @see TextToSpeech#playEarcon(String, int, HashMap)
+ * @see TextToSpeech#synthesizeToFile(String, HashMap, String)
*/
public static final String KEY_PARAM_UTTERANCE_ID = "utteranceId";
@@ -330,13 +352,14 @@ public class TextToSpeech {
private String[] mCachedParams;
/**
- * The constructor for the TTS.
+ * The constructor for the TextToSpeech class.
+ * This will also initialize the associated TextToSpeech engine if it isn't already running.
*
* @param context
- * The context
+ * The context this instance is running in.
* @param listener
- * The InitListener that will be called when the TTS has
- * initialized successfully.
+ * The {@link TextToSpeech.OnInitListener} that will be called when the
+ * TextToSpeech engine has initialized.
*/
public TextToSpeech(Context context, OnInitListener listener) {
mContext = context;
@@ -402,9 +425,9 @@ public class TextToSpeech {
/**
- * Shuts down the TTS. It is good practice to call this in the onDestroy
- * method of the Activity that is using the TTS so that the TTS is stopped
- * cleanly.
+ * Releases the resources used by the TextToSpeech engine.
+ * It is good practice for instance to call this method in the onDestroy() method of an Activity
+ * so the TextToSpeech engine can be cleanly stopped.
*/
public void shutdown() {
try {
@@ -418,11 +441,12 @@ public class TextToSpeech {
/**
* Adds a mapping between a string of text and a sound resource in a
- * package.
- * @see #speak(String, int, HashMap)
+ * package. After a call to this method, subsequent calls to
+ * {@link #speak(String, int, HashMap)} will play the specified sound resource
+ * if it is available, or synthesize the text it is missing.
*
* @param text
- * Example: <b><code>"south_south_east"</code></b><br/>
+ * The string of text. Example: <code>"south_south_east"</code>
*
* @param packagename
* Pass the packagename of the application that contains the
@@ -438,7 +462,7 @@ public class TextToSpeech {
* </p>
*
* @param resourceId
- * Example: <b><code>R.raw.south_south_east</code></b>
+ * Example: <code>R.raw.south_south_east</code>
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -476,10 +500,13 @@ public class TextToSpeech {
/**
* Adds a mapping between a string of text and a sound file. Using this, it
- * is possible to add custom pronounciations for text.
+ * is possible to add custom pronounciations for a string of text.
+ * After a call to this method, subsequent calls to {@link #speak(String, int, HashMap)}
+ * will play the specified sound resource if it is available, or synthesize the text it is
+ * missing.
*
* @param text
- * The string of text
+ * The string of text. Example: <code>"south_south_east"</code>
* @param filename
* The full path to the sound file (for example:
* "/sdcard/mysounds/hello.wav")
@@ -520,28 +547,26 @@ public class TextToSpeech {
/**
* Adds a mapping between a string of text and a sound resource in a
- * package.
+ * package. Use this to add custom earcons.
*
* @see #playEarcon(String, int, HashMap)
*
- * @param earcon The name of the earcon
- * Example: <b><code>"[tick]"</code></b><br/>
+ * @param earcon The name of the earcon.
+ * Example: <code>"[tick]"</code><br/>
*
* @param packagename
- * Pass the packagename of the application that contains the
- * resource. If the resource is in your own application (this is
- * the most common case), then put the packagename of your
- * application here.<br/>
+ * the package name of the application that contains the
+ * resource. This can for instance be the package name of your own application.
* Example: <b>"com.google.marvin.compass"</b><br/>
- * The packagename can be found in the AndroidManifest.xml of
- * your application.
+ * The package name can be found in the AndroidManifest.xml of
+ * the application containing the resource.
* <p>
* <code>&lt;manifest xmlns:android=&quot;...&quot;
* package=&quot;<b>com.google.marvin.compass</b>&quot;&gt;</code>
* </p>
*
* @param resourceId
- * Example: <b><code>R.raw.tick_snd</code></b>
+ * Example: <code>R.raw.tick_snd</code>
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -578,11 +603,14 @@ public class TextToSpeech {
/**
- * Adds a mapping between a string of text and a sound file. Using this, it
- * is possible to add custom earcons.
+ * Adds a mapping between a string of text and a sound file.
+ * Use this to add custom earcons.
+ *
+ * @see #playEarcon(String, int, HashMap)
*
* @param earcon
- * The name of the earcon
+ * The name of the earcon.
+ * Example: <code>"[tick]"</code>
* @param filename
* The full path to the sound file (for example:
* "/sdcard/mysounds/tick.wav")
@@ -623,18 +651,18 @@ public class TextToSpeech {
/**
* Speaks the string using the specified queuing strategy and speech
- * parameters. Note that the speech parameters are not universally supported
- * by all engines and will be treated as a hint. The TTS library will try to
- * fulfill these parameters as much as possible, but there is no guarantee
- * that the voice used will have the properties specified.
+ * parameters.
*
* @param text
* The string of text to be spoken.
* @param queueMode
* The queuing strategy to use.
- * See QUEUE_ADD and QUEUE_FLUSH.
+ * {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
* @param params
- * The hashmap of speech parameters to be used.
+ * The list of parameters to be used. Can be null if no parameters are given.
+ * They are specified using a (key, value) pair, where the key can be
+ * {@link Engine#KEY_PARAM_STREAM} or
+ * {@link Engine#KEY_PARAM_UTTERANCE_ID}.
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -690,9 +718,12 @@ public class TextToSpeech {
* @param earcon
* The earcon that should be played
* @param queueMode
- * See QUEUE_ADD and QUEUE_FLUSH.
+ * {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
* @param params
- * The hashmap of parameters to be used.
+ * The list of parameters to be used. Can be null if no parameters are given.
+ * They are specified using a (key, value) pair, where the key can be
+ * {@link Engine#KEY_PARAM_STREAM} or
+ * {@link Engine#KEY_PARAM_UTTERANCE_ID}.
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -747,7 +778,11 @@ public class TextToSpeech {
* @param durationInMs
* A long that indicates how long the silence should last.
* @param queueMode
- * See QUEUE_ADD and QUEUE_FLUSH.
+ * {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
+ * @param params
+ * The list of parameters to be used. Can be null if no parameters are given.
+ * They are specified using a (key, value) pair, where the key can be
+ * {@link Engine#KEY_PARAM_UTTERANCE_ID}.
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -791,9 +826,9 @@ public class TextToSpeech {
/**
- * Returns whether or not the TTS is busy speaking.
+ * Returns whether or not the TextToSpeech engine is busy speaking.
*
- * @return Whether or not the TTS is busy speaking.
+ * @return Whether or not the TextToSpeech engine is busy speaking.
*/
public boolean isSpeaking() {
synchronized (mStartLock) {
@@ -827,7 +862,8 @@ public class TextToSpeech {
/**
- * Stops speech from the TTS.
+ * Interrupts the current utterance (whether played or rendered to file) and discards other
+ * utterances in the queue.
*
* @return Code indicating success or failure. See {@link #ERROR} and {@link #SUCCESS}.
*/
@@ -865,15 +901,12 @@ public class TextToSpeech {
/**
- * Sets the speech rate for the TTS engine.
+ * Sets the speech rate for the TextToSpeech engine.
*
- * Note that the speech rate is not universally supported by all engines and
- * will be treated as a hint. The TTS library will try to use the specified
- * speech rate, but there is no guarantee.
* This has no effect on any pre-recorded speech.
*
* @param speechRate
- * The speech rate for the TTS engine. 1 is the normal speed,
+ * The speech rate for the TextToSpeech engine. 1 is the normal speed,
* lower values slow down the speech (0.5 is half the normal speech rate),
* greater values accelerate it (2 is twice the normal speech rate).
*
@@ -917,15 +950,12 @@ public class TextToSpeech {
/**
- * Sets the speech pitch for the TTS engine.
+ * Sets the speech pitch for the TextToSpeech engine.
*
- * Note that the pitch is not universally supported by all engines and
- * will be treated as a hint. The TTS library will try to use the specified
- * pitch, but there is no guarantee.
* This has no effect on any pre-recorded speech.
*
* @param pitch
- * The pitch for the TTS engine. 1 is the normal pitch,
+ * The pitch for the TextToSpeech engine. 1 is the normal pitch,
* lower values lower the tone of the synthesized voice,
* greater values increase it.
*
@@ -967,11 +997,11 @@ public class TextToSpeech {
/**
- * Sets the language for the TTS engine.
- *
- * Note that the language is not universally supported by all engines and
- * will be treated as a hint. The TTS library will try to use the specified
- * language as represented by the Locale, but there is no guarantee.
+ * Sets the language for the TextToSpeech engine.
+ * The TextToSpeech engine will try to use the closest match to the specified
+ * language as represented by the Locale, but there is no guarantee that the exact same Locale
+ * will be used. Use {@link #isLanguageAvailable(Locale)} to check the level of support
+ * before choosing the language to use for the next utterances.
*
* @param loc
* The locale describing the language to be used.
@@ -1023,9 +1053,10 @@ public class TextToSpeech {
/**
- * Returns a Locale instance describing the language currently being used by the TTS engine.
+ * Returns a Locale instance describing the language currently being used by the TextToSpeech
+ * engine.
* @return language, country (if any) and variant (if any) used by the engine stored in a Locale
- * instance, or null is the TTS engine has failed.
+ * instance, or null is the TextToSpeech engine has failed.
*/
public Locale getLanguage() {
synchronized (mStartLock) {
@@ -1063,7 +1094,7 @@ public class TextToSpeech {
}
/**
- * Checks if the specified language as represented by the Locale is available.
+ * Checks if the specified language as represented by the Locale is available and supported.
*
* @param loc
* The Locale describing the language to be used.
@@ -1112,7 +1143,9 @@ public class TextToSpeech {
* @param text
* The String of text that should be synthesized
* @param params
- * A hashmap of parameters.
+ * The list of parameters to be used. Can be null if no parameters are given.
+ * They are specified using a (key, value) pair, where the key can be
+ * {@link Engine#KEY_PARAM_UTTERANCE_ID}.
* @param filename
* The string that gives the full output filename; it should be
* something like "/sdcard/myappsounds/mysound.wav".
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index c133cf2b30a0..f0a5ffd67127 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -968,7 +968,13 @@ extends Layout
fm.bottom = bottom;
for (int i = 0; i < chooseht.length; i++) {
- chooseht[i].chooseHeight(text, start, end, choosehtv[i], v, fm);
+ if (chooseht[i] instanceof LineHeightSpan.WithDensity) {
+ ((LineHeightSpan.WithDensity) chooseht[i]).
+ chooseHeight(text, start, end, choosehtv[i], v, fm, paint);
+
+ } else {
+ chooseht[i].chooseHeight(text, start, end, choosehtv[i], v, fm);
+ }
}
above = fm.ascent;
diff --git a/core/java/android/text/TextPaint.java b/core/java/android/text/TextPaint.java
index f13820d3a885..36c69ef9e545 100644
--- a/core/java/android/text/TextPaint.java
+++ b/core/java/android/text/TextPaint.java
@@ -27,6 +27,10 @@ public class TextPaint extends Paint {
public int baselineShift;
public int linkColor;
public int[] drawableState;
+ /**
+ * @hide Not in the donut API
+ */
+ public float density = 1.0f;
public TextPaint() {
super();
@@ -51,5 +55,6 @@ public class TextPaint extends Paint {
baselineShift = tp.baselineShift;
linkColor = tp.linkColor;
drawableState = tp.drawableState;
+ density = tp.density;
}
}
diff --git a/core/java/android/text/style/AbsoluteSizeSpan.java b/core/java/android/text/style/AbsoluteSizeSpan.java
index 484f8ce410a2..deedf4058e0d 100644
--- a/core/java/android/text/style/AbsoluteSizeSpan.java
+++ b/core/java/android/text/style/AbsoluteSizeSpan.java
@@ -24,13 +24,30 @@ import android.text.TextUtils;
public class AbsoluteSizeSpan extends MetricAffectingSpan implements ParcelableSpan {
private final int mSize;
+ private boolean mDip;
+ /**
+ * Set the text size to <code>size</code> physical pixels.
+ */
public AbsoluteSizeSpan(int size) {
mSize = size;
}
+ /**
+ * Set the text size to <code>size</code> physical pixels,
+ * or to <code>size</code> device-independent pixels if
+ * <code>dip</code> is true.
+ *
+ * @hide Not in the donut API
+ */
+ public AbsoluteSizeSpan(int size, boolean dip) {
+ mSize = size;
+ mDip = dip;
+ }
+
public AbsoluteSizeSpan(Parcel src) {
mSize = src.readInt();
+ mDip = src.readInt() != 0;
}
public int getSpanTypeId() {
@@ -43,19 +60,35 @@ public class AbsoluteSizeSpan extends MetricAffectingSpan implements ParcelableS
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mSize);
+ dest.writeInt(mDip ? 1 : 0);
}
public int getSize() {
return mSize;
}
+ /**
+ * @hide Not in the donut API
+ */
+ public boolean getDip() {
+ return mDip;
+ }
+
@Override
public void updateDrawState(TextPaint ds) {
- ds.setTextSize(mSize);
+ if (mDip) {
+ ds.setTextSize(mSize * ds.density);
+ } else {
+ ds.setTextSize(mSize);
+ }
}
@Override
public void updateMeasureState(TextPaint ds) {
- ds.setTextSize(mSize);
+ if (mDip) {
+ ds.setTextSize(mSize * ds.density);
+ } else {
+ ds.setTextSize(mSize);
+ }
}
}
diff --git a/core/java/android/text/style/LineHeightSpan.java b/core/java/android/text/style/LineHeightSpan.java
index c0ef97c483e9..8b723e136f4f 100644
--- a/core/java/android/text/style/LineHeightSpan.java
+++ b/core/java/android/text/style/LineHeightSpan.java
@@ -19,6 +19,7 @@ package android.text.style;
import android.graphics.Paint;
import android.graphics.Canvas;
import android.text.Layout;
+import android.text.TextPaint;
public interface LineHeightSpan
extends ParagraphStyle, WrapTogetherSpan
@@ -26,4 +27,13 @@ extends ParagraphStyle, WrapTogetherSpan
public void chooseHeight(CharSequence text, int start, int end,
int spanstartv, int v,
Paint.FontMetricsInt fm);
+
+ /**
+ * @hide Not in the donut API
+ */
+ public interface WithDensity extends LineHeightSpan {
+ public void chooseHeight(CharSequence text, int start, int end,
+ int spanstartv, int v,
+ Paint.FontMetricsInt fm, TextPaint paint);
+ }
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 88730aac0c8b..c9fdd8be2740 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -327,11 +327,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
mText = "";
mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
+ mTextPaint.density = getResources().getDisplayMetrics().density;
+ mTextPaint.setCompatibilityScaling(
+ getResources().getCompatibilityInfo().applicationScale);
+
// If we get the paint from the skin, we should set it to left, since
// the layout always wants it to be left.
// mTextPaint.setTextAlign(Paint.Align.LEFT);
mHighlightPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ mHighlightPaint.setCompatibilityScaling(
+ getResources().getCompatibilityInfo().applicationScale);
mMovement = getDefaultMovementMethod();
mTransformation = null;
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index 3fb07a74a6f6..fe6264263866 100644
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -332,6 +332,7 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) {
const int width = p->readInt32();
const int height = p->readInt32();
const int rowBytes = p->readInt32();
+ const int density = p->readInt32();
if (SkBitmap::kARGB_8888_Config != config &&
SkBitmap::kRGB_565_Config != config &&
@@ -369,12 +370,13 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) {
memcpy(bitmap->getPixels(), p->readInplace(size), size);
bitmap->unlockPixels();
- return GraphicsJNI::createBitmap(env, bitmap, isMutable, NULL);
+ return GraphicsJNI::createBitmap(env, bitmap, isMutable, NULL, density);
}
static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject,
const SkBitmap* bitmap,
- jboolean isMutable, jobject parcel) {
+ jboolean isMutable, jint density,
+ jobject parcel) {
if (parcel == NULL) {
SkDebugf("------- writeToParcel null parcel\n");
return false;
@@ -387,6 +389,7 @@ static jboolean Bitmap_writeToParcel(JNIEnv* env, jobject,
p->writeInt32(bitmap->width());
p->writeInt32(bitmap->height());
p->writeInt32(bitmap->rowBytes());
+ p->writeInt32(density);
if (bitmap->getConfig() == SkBitmap::kIndex8_Config) {
SkColorTable* ctable = bitmap->getColorTable();
@@ -546,7 +549,7 @@ static JNINativeMethod gBitmapMethods[] = {
{ "nativeCreateFromParcel",
"(Landroid/os/Parcel;)Landroid/graphics/Bitmap;",
(void*)Bitmap_createFromParcel },
- { "nativeWriteToParcel", "(IZLandroid/os/Parcel;)Z",
+ { "nativeWriteToParcel", "(IZILandroid/os/Parcel;)Z",
(void*)Bitmap_writeToParcel },
{ "nativeExtractAlpha", "(II[I)Landroid/graphics/Bitmap;",
(void*)Bitmap_extractAlpha },
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index ca1cb7d65201..2e0caed82a37 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -351,7 +351,7 @@ SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)
///////////////////////////////////////////////////////////////////////////////////////////
jobject GraphicsJNI::createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
- jbyteArray ninepatch)
+ jbyteArray ninepatch, int density)
{
SkASSERT(bitmap != NULL);
SkASSERT(NULL != bitmap->pixelRef());
@@ -359,7 +359,7 @@ jobject GraphicsJNI::createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
jobject obj = env->AllocObject(gBitmap_class);
if (obj) {
env->CallVoidMethod(obj, gBitmap_constructorMethodID,
- (jint)bitmap, isMutable, ninepatch);
+ (jint)bitmap, isMutable, ninepatch, density);
if (hasException(env)) {
obj = NULL;
}
@@ -541,7 +541,7 @@ int register_android_graphics_Graphics(JNIEnv* env)
gBitmap_class = make_globalref(env, "android/graphics/Bitmap");
gBitmap_nativeInstanceID = getFieldIDCheck(env, gBitmap_class, "mNativeBitmap", "I");
gBitmap_constructorMethodID = env->GetMethodID(gBitmap_class, "<init>",
- "(IZ[B)V");
+ "(IZ[BI)V");
gBitmapConfig_class = make_globalref(env, "android/graphics/Bitmap$Config");
gBitmapConfig_nativeInstanceID = getFieldIDCheck(env, gBitmapConfig_class,
diff --git a/core/jni/android/graphics/GraphicsJNI.h b/core/jni/android/graphics/GraphicsJNI.h
index f8b60a805e1b..7adadbc22a0e 100644
--- a/core/jni/android/graphics/GraphicsJNI.h
+++ b/core/jni/android/graphics/GraphicsJNI.h
@@ -50,7 +50,7 @@ public:
then the bitmap must be an owner of its natively allocated pixels (via allocPixels).
*/
static jobject createBitmap(JNIEnv* env, SkBitmap* bitmap, bool isMutable,
- jbyteArray ninePatch);
+ jbyteArray ninePatch, int density = -1);
static jobject createRegion(JNIEnv* env, SkRegion* region);
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index d1fe83edce66..c8f4fa42b00d 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -564,11 +564,11 @@ static JNINativeMethod methods[] = {
{"descent","()F", (void*) SkPaintGlue::descent},
{"getFontMetrics", "(Landroid/graphics/Paint$FontMetrics;)F", (void*)SkPaintGlue::getFontMetrics},
{"getFontMetricsInt", "(Landroid/graphics/Paint$FontMetricsInt;)I", (void*)SkPaintGlue::getFontMetricsInt},
- {"measureText","([CII)F", (void*) SkPaintGlue::measureText_CII},
- {"measureText","(Ljava/lang/String;)F", (void*) SkPaintGlue::measureText_String},
- {"measureText","(Ljava/lang/String;II)F", (void*) SkPaintGlue::measureText_StringII},
- {"breakText","([CIIF[F)I", (void*) SkPaintGlue::breakTextC},
- {"breakText","(Ljava/lang/String;ZF[F)I", (void*) SkPaintGlue::breakTextS},
+ {"native_measureText","([CII)F", (void*) SkPaintGlue::measureText_CII},
+ {"native_measureText","(Ljava/lang/String;)F", (void*) SkPaintGlue::measureText_String},
+ {"native_measureText","(Ljava/lang/String;II)F", (void*) SkPaintGlue::measureText_StringII},
+ {"native_breakText","([CIIF[F)I", (void*) SkPaintGlue::breakTextC},
+ {"native_breakText","(Ljava/lang/String;ZF[F)I", (void*) SkPaintGlue::breakTextS},
{"native_getTextWidths","(I[CII[F)I", (void*) SkPaintGlue::getTextWidths___CII_F},
{"native_getTextWidths","(ILjava/lang/String;II[F)I", (void*) SkPaintGlue::getTextWidths__StringII_F},
{"native_getTextPath","(I[CIIFFI)V", (void*) SkPaintGlue::getTextPath___CIIFFPath},
diff --git a/core/jni/android_emoji_EmojiFactory.cpp b/core/jni/android_emoji_EmojiFactory.cpp
index 7d6e24fa2567..cc9e2bf895a0 100644
--- a/core/jni/android_emoji_EmojiFactory.cpp
+++ b/core/jni/android_emoji_EmojiFactory.cpp
@@ -184,7 +184,7 @@ static jobject android_emoji_EmojiFactory_getBitmapFromAndroidPua(
jobject obj = env->AllocObject(gBitmap_class);
if (obj) {
env->CallVoidMethod(obj, gBitmap_constructorMethodID,
- reinterpret_cast<jint>(bitmap), false, NULL);
+ reinterpret_cast<jint>(bitmap), false, NULL, -1);
if (env->ExceptionCheck() != 0) {
LOGE("*** Uncaught exception returned from Java call!\n");
env->ExceptionDescribe();
@@ -294,7 +294,7 @@ static jfieldID getFieldIDCheck(JNIEnv* env, jclass clazz,
int register_android_emoji_EmojiFactory(JNIEnv* env) {
gBitmap_class = make_globalref(env, "android/graphics/Bitmap");
gBitmap_constructorMethodID = env->GetMethodID(gBitmap_class, "<init>",
- "(IZ[B)V");
+ "(IZ[BI)V");
gEmojiFactory_class = make_globalref(env, "android/emoji/EmojiFactory");
gEmojiFactory_constructorMethodID = env->GetMethodID(
gEmojiFactory_class, "<init>", "(ILjava/lang/String;)V");
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index ef8490be1986..b833b2beb39a 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"Gb"</string>
<string name="terabyteShort" msgid="231613018159186962">"Tb"</string>
<string name="petabyteShort" msgid="5637816680144990219">"Pb"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;uden navn&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Intet telefonnummer)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Opkaldsspærring"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Ændring af adgangskode"</string>
<string name="PinMmi" msgid="3113117780361190304">"ændring af PIN-kode"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Opkaldsnummer til stede"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Opkaldsnummer begrænset"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Trevejsopkald"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Afvisning af uønskede, irriterende opkald"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Opkaldsnummer levering"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Forstyr ikke"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Standarder for opkalds-id til begrænset. Næste opkald: Begrænset"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Standarder for opkalds-id til begrænset. Næste opkald: Ikke begrænset"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Standarder for opkalds-id til ikke begrænset. Næste opkald: Begrænset"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Synkroniser"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Pakke"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Roamingindikator til"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Roamingindikator fra"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Roamingindikator blinker"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Ude af kvarteret"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Ude af bygningen"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Roaming – Foretrukket system"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming – Tilgængeligt system"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming – Alliance Partner"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming – Premium Partner"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming – Fuld servicefunktionalitet"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming – Delvis servicefunktionalitet"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Roamingbanner til"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Roamingbanner fra"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Søger efter tjeneste"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Ikke videresendt"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> efter <xliff:g id="TIME_DELAY">{2}</xliff:g> sekunder"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Ikke videresendt"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Ikke videresendt"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Funktionskode komplet."</string>
+ <string name="fcError" msgid="3327560126588500777">"Forbindelsesproblemer eller ugyldig funktionskode."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
<string name="httpError" msgid="2567300624552921790">"Websiden indeholder en fejl."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Webadressen kunne ikke findes."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Adgang og kontrol til systemet på lavere niveau."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Udviklingsværktøjer"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Funktioner kun til programudviklere."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Få adgang til SD-kortet."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"deaktiver eller rediger statuslinje"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Tillader et program at deaktivere statuslinjen eller tilføje eller fjerne systemikoner."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"udvid/skjul statuslinje"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Tillader et program at tvinge alle programmer, der er i forgrunden, til at lukke og gå tilbage. Bør aldrig være nødvendigt til normale programmer."</string>
<string name="permlab_dump" msgid="1681799862438954752">"hent intern systemtilstand"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Tillader et program at hente systemets interne tilstand. Ondsindede programmer kan hente en række private og sikre oplysninger, som de normalt aldrig bør have brug for."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"delvis lukning"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Sætter aktivitetsadministratoren i lukningstilstand. Lukker ikke helt ned."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"undgå programskift"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Forhindrer brugeren i at skifte til et andet program."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"overvåg og kontroller start af alle programmer"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Tillader et program at overvåge og kontrollere, hvordan systemet starter aktiviteter. Ondsindede programmer kan fuldstændig kompromittere systemet. Denne tilladelse er kun nødvendig til udvikling, aldrig til normal telefonbrug."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"send udsendelse om fjernet pakke"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Tillader et program at kontrollere, om aktiviteter altid afsluttes, så snart de går i baggrunden. Aldrig nødvendigt til normale programmer."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"rediger batteristatistikker"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Tillader ændring af indsamlede batteristatistikker. Ikke til brug for normale programmer."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"kontroller sikkerhedskopiering af system, og gendan"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Tillader et program at kontrollere systemets sikkerhedskopierings- og gendannelsesmekanisme. Ikke til brug til normale programmer."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"vis uautoriserede vinduer"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Tillader oprettelse af vinduer, der er beregnet til at blive brugt af den interne systembrugergrænseflade. Ikke til brug for normale programmer."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"vis underretninger på systemniveau"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Opret imiterede placeringskilder til testning. Ondsindede programmer kan bruge dette til at tilsidesætte den returnerede placering og/eller status fra rigtige placeringskilder som f.eks. GPS eller netværksudbydere."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"få adgang til ekstra kommandoer for placeringsudbyder"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Få adgang til ekstra kommandoer fra placeringsudbyder. Ondsindede programmer kan bruge dette til at gribe ind i driften af GPS\'en eller andre placeringskilder."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"tilladelse til at installere en placeringsudbyder"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Opret imiterede placeringskilder til testning. Ondsindede programmer kan bruge dette til at tilsidesætte den returnerede placering og/eller status fra rigtige placeringskilder som f.eks. GPS eller netværksudbydere eller til at overvåge og rapportere din placering til en ekstern kilde."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"fin (GPS) placering"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Få adgang til gode placeringskilder, som f.eks. Global Positioning System på telefonen, når det er tilgængeligt. Ondsindede programmer kan bruge dette til at finde ud af, hvor du er og kan eventuelt bruge yderligere batterikapacitet."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"grov (netværksbaseret) placering"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Tillader programmet at fortælle systemet, hvilke widgets der kan bruges af hvilke programmer. Med denne tilladelse kan programmer give adgang til personlige data til andre programmer. Ikke til brug til normale programmer."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"rediger telefontilstand"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Tillader programmet at kontrollere enhedens telefonfunktioner. Et program med denne tilladelse kan skifte netværk, slå telefonens radio til og fra og lignende uden nogensinde at underrette dig."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"læs telefontilstand og identitet"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Tillader programmet at få adgang til enhedens telefonfunktioner. Et program med denne tilladelse kan afgøre denne telefons telefon- og serienummer, om et opkald er aktivt, nummeret som opkaldet er forbundet til osv."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"afhold telefonen fra at gå i dvale"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Tillader et program at forhindre telefonen i at gå i dvale."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"Tænd eller sluk for telefonen"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Tillader et program at vise oplysninger om Wi-Fi-tilstanden."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"skift Wi-Fi-tilstand"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Tillader et program at oprette og afbryde forbindelse fra Wi-Fi-adgangspunkter og foretage ændringer til konfigurerede Wi-Fi-netværk."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"tillad Wi-Fi-multicastmodtagelse"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Tillader et program at modtage pakker, der ikke er direkte adresseret til din enhed. Dette kan være nyttigt, hvis du finder tjenester, der er tilbudt i nærheden. Det bruger mere strøm end multicasttilstanden."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"bluetooth-administration"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Tillader et program at konfigurere den lokale Bluetooth-telefon samt at opdage og parre med fjerne enheder."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"opret Bluetooth-forbindelser"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Tillader et program at læse alle private ord, navne og sætninger, som brugeren eventuelt har gemt i brugerordbogen."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"skriv til den brugerdefinerede mappe"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Tillader et program at skrive nye ord i brugermappen."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"ret/slet indholdet af SD-kort"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Tillader et program at skrive til SD-kortet."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Start"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Rigtigt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Beklager! Prøv igen"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Oplader (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Opladt."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Tilslut din oplader."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Der er ikke noget SIM-kort."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Der er ikke noget SIM-kort i telefonen."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ugyldigt brugernavn eller ugyldig adgangskode."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ryd"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ingen meddelelser"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Løbende"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meddelelser"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Forbind oplader"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Batteriet er ved at blive tomt:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"mindre end <xliff:g id="NUMBER">%d%%</xliff:g> tilbage."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Hvorfor?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Fabrikstest mislykkedes"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"Handlingen FACTORY_TEST understøttes kun af pakker installeret i /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Der blev ikke fundet nogen pakke, som leverer handlingen FACTORY_TEST."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"Javascript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Naviger væk fra denne side?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n" Vælg OK for at fortsætte eller Annuller for at blive på den aktuelle side."</string>
<string name="save_password_label" msgid="6860261758665825069">"Bekræft"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"læs browserens oversigt og bogmærker"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Tillader programmet at læse alle de webadresser, browseren har besøgt, og alle browserens bogmærker."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"skriv browserens oversigt og bogmærker"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Tillader et program at ændre browseroversigten eller bogmærker, der er gemt på din telefon. Ondsindede programmer kan bruge dette til at slette eller ændre din browsers data."</string>
<string name="save_password_message" msgid="767344687139195790">"Ønsker du, at browseren skal huske denne adgangskode?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Ikke nu"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Husk"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"Programmet <xliff:g id="APPLICATION">%1$s</xliff:g> (igangværende <xliff:g id="PROCESS">%2$s</xliff:g>) svarer ikke."</string>
<string name="anr_process" msgid="1246866008169975783">"Processen <xliff:g id="PROCESS">%1$s</xliff:g> svarer ikke."</string>
<string name="force_close" msgid="3653416315450806396">"Tving til at lukke"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Rapporter"</string>
<string name="wait" msgid="7147118217226317732">"Vent"</string>
<string name="debug" msgid="9103374629678531849">"Fejlretning"</string>
<string name="sendText" msgid="5132506121645618310">"Vælg en handling for teksten"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Formater SD-kort"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Er du sikker på, du ønsker at formatere SD-kortet? Alle data på kortet mistes."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Formater"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-fejlretning forbundet"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Der er forbundet en computer til din telefon."</string>
<string name="select_input_method" msgid="2086499663193509436">"Vælg inputmetode"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Forbereder SD-kort"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Kontrollerer for fejl."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Blankt SD-kort"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD-kortet er tomt eller har et ikke understøttet filsystem."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Beskadiget SD-kort"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD-kort beskadiget. Du bliver muligvis nødt til at omformatere det."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"SD-kort blev uventet fjernet"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Demonter SD-kortet inden fjernelse for at undgå tab af data."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"SD-kortet kan fjernes sikkert"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Du kan nu fjerne SD-kortet."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"SD-kortet er fjernet"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD-kortet er fjernet. Indsæt et nyt."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Der blev ikke fundet nogen matchende aktiviteter"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"opdater brugerstatistikker for komponenter"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Tillader ændring af indsamlede brugerstatistikker for komponenter. Ikke til brug til normale programmer."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Udfør"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Ring til nummer"\n"ved hjælp af <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Opret kontakt"\n"ved hjælp af <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"kontrolleret"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"ikke kontrolleret"</string>
</resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index ba39b940d94d..8874fa5c1e19 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;χωρίς τίτλο&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Δεν υπάρχει τηλεφωνικός αριθμός)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Φραγή κλήσεων"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Αλλαγή κωδικού πρόσβασης"</string>
<string name="PinMmi" msgid="3113117780361190304">"Αλλαγή αριθμού PIN"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Υπάρχει αριθμός κλήσης"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Απόκρυψη αριθμού κλήσης"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Τριμερής κλήση"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Απόρριψη ανεπιθύμητων, ενοχλητικών κλήσεων"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Παράδοση καλούμενου αριθμού"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Μην ενοχλείτε"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Η αναγνώριση κλήσης βρίσκεται από προεπιλογή στην \"περιορισμένη\". Επόμενη κλήση: Περιορισμένη."</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Η αναγνώριση κλήσης βρίσκεται από προεπιλογή στην \"περιορισμένη\". Επόμενη κλήση: Μη περιορισμένη"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Η αναγνώριση κλήσης βρίσκεται από προεπιλογή στην \"μη περιορισμένη\". Επόμενη κλήση: Περιορισμένη."</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Συγχρονισμός"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Πακέτο"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Ενεργή ένδειξη περιαγωγής"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Ανενεργή ένδειξη περιαγωγής"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Η ένδειξη περιαγωγής αναβοσβήνει"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Εκτός γειτονίας"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Εκτός κτιρίου"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Περιαγωγή - Προτιμώμενο σύστημα"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Περιαγωγή - Διαθέσιμο σύστημα"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Περιαγωγή - Συνεργάτης Alliance"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Περιαγωγή - Συνεργάτης με λογαριασμό Premium"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Περιαγωγή - Πλήρης λειτουργικότητα υπηρεσίας"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Περιαγωγή - Μερική λειτουργικότητα υπηρεσίας"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Ενεργό διαφημιστικό πλαίσιο περιαγωγής"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Διαφημιστικό πλαίσιο περιαγωγής απενεργοποιημένο"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Αναζήτηση υπηρεσιών"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Δεν προωθήθηκε"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> μετά από <xliff:g id="TIME_DELAY">{2}</xliff:g> δευτερόλεπτα"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Δεν προωθήθηκε"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Δεν προωθήθηκε"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Ο κωδικός λειτουργίας ολοκληρώθηκε."</string>
+ <string name="fcError" msgid="3327560126588500777">"Πρόβλημα σύνδεσης ή μη έγκυρος κώδικας δυνατότητας."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
<string name="httpError" msgid="2567300624552921790">"Η ιστοσελίδα περιέχει ένα σφάλμα."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Δεν ήταν δυνατή η εύρεση της διεύθυνσης URL."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Χαμηλού επιπέδου πρόσβαση και έλεγχος του συστήματος."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Εργαλεία ανάπτυξης"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Δυνατότητες που είναι απαραίτητες μόνο σε προγραμματιστές εφαρμογών."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Αποθηκευτικός χώρος"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Πρόσβαση στην κάρτα SD."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"απενεργοποίηση ή τροποποίηση γραμμής κατάστασης"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Επιτρέπει στην εφαρμογή να απενεργοποιεί τη γραμμή κατάστασης ή να προσθέτει και να αφαιρεί εικονίδια συστήματος."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"ανάπτυξη/σύμπτυξη γραμμής κατάστασης"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Επιτρέπει σε μια εφαρμογή να εξαναγκάσει οποιαδήποτε δραστηριότητα που βρίσκεται στο προσκήνιο να κλείσει και να μεταβεί στο φόντο. Δεν είναι απαραίτητο για κανονικές εφαρμογές."</string>
<string name="permlab_dump" msgid="1681799862438954752">"ανάκτηση εσωτερικής κατάστασης συστήματος"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Επιτρέπει σε μια εφαρμογή να ανακτήσει την εσωτερική κατάσταση του συστήματος. Κακόβουλες εφαρμογές ενδέχεται να ανακτήσουν μεγάλο εύρος ιδιωτικών και ασφαλών πληροφοριών, τις οποίες δεν χρειάζονται."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"μερικός τερματισμός λειτουργίας"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Θέτει το πρόγραμμα διαχείρισης δραστηριοτήτων σε κατάσταση τερματισμού λειτουργιών. Δεν εκτελεί πλήρη τερματισμό λειτουργιών."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"αποτροπή εναλλαγών εφαρμογών"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Αποτρέπει το χρήστη από τη μετάβαση σε άλλη εφαρμογή."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"παρακολούθηση και έλεγχος όλων των εκκινήσεων εφαρμογών"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Επιτρέπει σε μια εφαρμογή να παρακολουθεί και να ελέγχει τον τρόπο με τον οποίο το σύστημα εκκινεί δραστηριότητες. Κακόβουλες εφαρμογές ενδέχεται να θέσουν σε κίνδυνο το σύστημα. Αυτή η άδεια είναι απαραίτητη μόνο για ανάπτυξη και ποτέ για κανονική χρήση τηλεφώνου."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"αποστολή εκπομπής χωρίς πακέτο"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Επιτρέπει σε μια εφαρμογή να ελέγχει εάν οι δραστηριότητες ολοκληρώνονται πάντοτε μόλις μεταβούν στο φόντο. Δεν είναι ποτέ απαραίτητο για κανονικές εφαρμογές."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"τροποποίηση στατιστικών μπαταρίας"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Επιτρέπει την τροποποίηση στατιστικών μπαταρίας που έχουν συλλεχθεί. Δεν πρέπει να χρησιμοποιείται από συνήθεις εφαρμογές."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"αντίγραφο ασφαλείας και επαναφορά συστήματος"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Επιτρέπει στην εφαρμογή τον έλεγχο του μηχανισμού δημιουργίας αντιγράφων ασφαλείας και επαναφοράς των συστημάτων. Δεν προορίζεται για χρήση από κανονικές εφαρμογές."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"προβολή μη εξουσιοδοτημένων παραθύρων"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Επιτρέπει τη δημιουργία παραθύρων που πρόκειται να χρησιμοποιηθούν από την εσωτερική διεπαφή χρήστη του συστήματος. Δεν πρέπει να χρησιμοποιείται από κανονικές εφαρμογές."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"εμφάνιση ειδοποιήσεων επιπέδου συστήματος"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Δημιουργία εικονικών πηγών τοποθεσίας για δοκιμή. Κακόβουλες εφαρμογές μπορούν να το χρησιμοποιήσουν για να παρακάμψουν την τοποθεσία και/ή την κατάσταση που βρίσκουν πραγματικές πηγές τοποθεσίας, όπως πάροχοι GPS ή πάροχοι δικτύου."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"πρόσβαση σε επιπλέον εντολές παρόχου τοποθεσίας"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Πρόσβαση σε επιπλέον εντολές παρόχου τοποθεσίας. Κακόβουλες εφαρμογές ενδέχεται να το χρησιμοποιήσουν ώστε να παρέμβουν στη λειτουργία του GPS ή άλλων πηγών τοποθεσίας."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"άδεια για εγκατάσταση ενός παρόχου τοποθεσίας"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Δημιουργία πηγών πρόχειρης τοποθεσίας για έλεγχο. Οι κακόβουλες εφαρμογές μπορούν να τη χρησιμοποιήσουν για αντιγραφή της τοποθεσίας και/ή η κατάσταση που επιστρέφεται από τις αληθινές πηγές τοποθεσίας όπως GPS ή Πάροχοι δικτύου ή έλεγχος και αναφορά της τοποθεσίας σας σε μια εξωτερική πηγή."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"ακριβής τοποθεσία (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Πρόσβαση σε πηγές ακριβούς τοποθεσίας, όπως το Παγκόσμιο Σύστημα Εντοπισμού (GPS) στο τηλέφωνο, όπου αυτό είναι διαθέσιμο. Κακόβουλες εφαρμογές μπορούν να το χρησιμοποιήσουν για να προσδιορίσουν τη θέση που βρίσκεστε και ενδέχεται να καταναλώσουν επιπλέον ισχύ μπαταρίας."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"κατά προσέγγιση (βασισμένη στο δίκτυο) τοποθεσία"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Επιτρέπει στην εφαρμογή να ορίσει στο σύστημα ποια γραφικά στοιχεία μπορεί να χρησιμοποιήσει κάθε εφαρμογή. Με αυτή την άδεια, οι εφαρμογές μπορούν να παρέχουν πρόσβαση σε προσωπικά δεδομένα σε άλλες εφαρμογές. Δεν πρέπει να χρησιμοποιείται από συνήθεις εφαρμογές."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"τροποποίηση κατάστασης τηλεφώνου"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Επιτρέπει στην εφαρμογή τον έλεγχο των τηλεφωνικών δυνατοτήτων της συσκευής. Μια εφαρμογή με αυτήν την άδεια μπορεί να πραγματοποιήσει εναλλαγή μεταξύ δικτύων, να ενεργοποιήσει και να απενεργοποιήσει τον πομπό του τηλεφώνου κ.λπ. χωρίς να σας ειδοποιήσει."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"ανάγνωση κατάστασης και ταυτότητας τηλεφώνου"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Επιτρέπει στην εφαρμογή την πρόσβαση στις λειτουργίες τηλεφώνου της συσκευής. Μια εφαρμογή με αυτή την άδεια μπορεί να προσδιορίσει τον τηλεφωνικό αριθμό του τηλεφώνου, αν μια κλήση είναι ενεργή ή όχι, τον τηλεφωνικό αριθμό της κλήσης κ.λπ.."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"παρεμπόδιση μετάβασης του τηλεφώνου σε κατάσταση αδράνειας"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Επιτρέπει σε μια εφαρμογή την παρεμπόδιση της μετάβασης του τηλεφώνου σε κατάσταση αδράνειας."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"ενεργοποίηση και απενεργοποίηση τηλεφώνου"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Επιτρέπει σε μια εφαρμογή την προβολή των πληροφοριών σχετικά με την κατάσταση του Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"αλλαγή κατάστασης Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Επιτρέπει σε μια εφαρμογή τη σύνδεση σε σημεία πρόσβασης Wi-Fi και την αποσύνδεση από αυτά, καθώς και την πραγματοποίηση αλλαγών σε διαμορφωμένα δίκτυα Wi-Fi."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"να επιτρέπεται η λήψη πολλαπλής διανομής Wi-Fi"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Επιτρέπει στην εφαρμογή να λαμβάνει πακέτα τα οποία δεν αποστέλλονται απευθείας στη συσκευή σας. Αυτό μπορεί να φανεί χρήσιμο κατά την ανακάλυψη υπηρεσιών που προσφέρονται σε κοντινές τοποθεσίες. Χρησιμοποιεί περισσότερη ενέργεια σε σχέση με την κατάσταση μη πολλαπλής διανομής."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"διαχείριση Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Επιτρέπει σε μια εφαρμογή τη διαμόρφωση του τοπικού τηλεφώνου Bluetooth και την ανακάλυψη και σύζευξη με απομακρυσμένες συσκευές."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"δημιουργία συνδέσεων Bluetooth"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Επιτρέπει σε μια εφαρμογή να αναγνώσει ιδιωτικές λέξεις και φράσεις και ιδιωτικά ονόματα, τα οποία ο χρήστης ενδέχεται να έχει αποθηκεύσει στο λεξικό χρήστη."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"εγγραφή σε καθορισμένο από τον χρήστη λεξικό"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Επιτρέπει σε μια εφαρμογή την εγγραφή νέων λέξεων στο λεξικό χρήστη."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"τροποποίηση/διαγραφή περιεχομένων κάρτας SD"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Επιτρέπει στην εφαρμογή την εγγραφή στην κάρτα SD."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Οικία"</item>
<item msgid="869923650527136615">"Κινητό"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Σωστό!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Προσπαθήστε αργότερα"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Φόρτιση (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Φορτίστηκε."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Συνδέστε τον φορτιστή."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Δεν υπάρχει κάρτα SIM."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Δεν υπάρχει κάρτα SIM στο τηλέφωνο."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Εκκαθάριση"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Δεν υπάρχουν ειδοποιήσεις"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Εν εξελίξει"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ειδοποιήσεις"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Συνδέστε τον φορτιστή"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Η στάθμη της μπαταρίας είναι χαμηλή:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"απομένουν λιγότερο από <xliff:g id="NUMBER">%d%%</xliff:g>."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Γιατί;"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Η εργοστασιακή δοκιμή απέτυχε"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"Η ενέργεια FACTORY_TEST υποστηρίζεται μόνο για πακέτα που είναι εγκατεστημένα στον κατάλογο /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Δεν βρέθηκε πακέτο που να παρέχει την ενέργεια FACTORY_TEST."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Απομάκρυνση από αυτή τη σελίδα;"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Επιλέξτε OK για συνέχεια, ή Ακύρωση για παραμονή στην τρέχουσα σελίδα."</string>
<string name="save_password_label" msgid="6860261758665825069">"Επιβεβαίωση"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"ανάγνωση ιστορικού και σελιδοδεικτών προγράμματος περιήγησης"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Επιτρέπει στην εφαρμογή την ανάγνωση όλων των διευθύνσεων URL που το πρόγραμμα περιήγησης έχει επισκεφθεί και όλων των σελιδοδεικτών του προγράμματος περιήγησης."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"εγγραφή ιστορικού και σελιδοδεικτών προγράμματος περιήγησης"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Επιτρέπει σε μια εφαρμογή να τροποποιήσει το ιστορικό ή τους σελιδοδείκτες του προγράμματος περιήγησης που βρίσκονται αποθηκευμένα στο τηλέφωνό σας. Κακόβουλες εφαρμογές μπορούν να το χρησιμοποιήσουν για να διαγράψουν ή να τροποποιήσουν τα δεδομένα του προγράμματος περιήγησης."</string>
<string name="save_password_message" msgid="767344687139195790">"Θέλετε το πρόγραμμα περιήγησης να διατηρήσει αυτόν τον κωδικό πρόσβασης;"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Να μην γίνει τώρα"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Διατήρηση"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"Η εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g> (στη διαδικασία <xliff:g id="PROCESS">%2$s</xliff:g>) δεν αποκρίνεται."</string>
<string name="anr_process" msgid="1246866008169975783">"Η διαδικασία <xliff:g id="PROCESS">%1$s</xliff:g> δεν αποκρίνεται."</string>
<string name="force_close" msgid="3653416315450806396">"Αναγκαστικό κλείσιμο"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Αναφορά"</string>
<string name="wait" msgid="7147118217226317732">"Αναμονή"</string>
<string name="debug" msgid="9103374629678531849">"Εντοπισμός σφαλμάτων"</string>
<string name="sendText" msgid="5132506121645618310">"Επιλέξτε μια ενέργεια για το κείμενο"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Διαμόρφωση κάρτας SD"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Είστε βέβαιοι ότι θέλετε να διαμορφώσετε την κάρτα SD; Όλα τα δεδομένα στην κάρτα σας θα χαθούν."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Διαμόρφωση"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"Συνδέθηκε ο εντοπισμός σφαλμάτων USB"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Ένας υπολογιστής είναι συνδεδεμένος στο τηλέφωνό σας."</string>
<string name="select_input_method" msgid="2086499663193509436">"Επιλογή μεθόδου εισόδου"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"υποψήφιοι"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Προετοιμασία κάρτας SD"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Έλεγχος για σφάλματα."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Κενή κάρτα SD"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"Η κάρτα SD είναι κενή ή έχει μη υποστηριζόμενο σύστημα αρχείων."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Κατεστραμμένη κάρτα SD"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"Η κάρτα SD παρουσιάζει βλάβη. Ενδεχομένως θα πρέπει να προβείτε σε διαμόρφωσή της."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"Μη αναμενόμενη αφαίρεση κάρτας SD"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Αποπροσαρτήστε την κάρτα SD πριν την αφαιρέσετε για την αποφυγή απώλειας δεδομένων."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"Η κάρτα SD μπορεί να αφαιρεθεί με ασφάλεια"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Μπορείτε να αφαιρέσετε με ασφάλεια της κάρτα SD."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Η κάρτα SD αφαιρέθηκε"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"Αφαιρέθηκε η κάρτα SD. Τοποθετήστε μια νέα κάρτα."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Δεν βρέθηκαν δραστηριότητες που να αντιστοιχούν"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"ενημέρωση στατιστικών χρήσης στοιχείου"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Επιτρέπει την τροποποίηση στατιστικών χρήσης στοιχείων που έχουν συλλεχθεί. Δεν πρέπει να χρησιμοποιείται από κανονικές εφαρμογές."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Εκτέλεση"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Κλήση αριθμού"\n"με τη χρήση <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Δημιουργία επαφής"\n"με τη χρήση του <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"επιλεγμένο"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"δεν ελέγχθηκε"</string>
</resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index f34adcb23b2e..c0133df77b94 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;sin título&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(No hay número de teléfono)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Restricción de llamadas"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Cambio de contraseña"</string>
<string name="PinMmi" msgid="3113117780361190304">"Cambio de PIN"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Número de llamada presente"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Número de llamada restringido"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Llamada de tres direcciones"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Rechazo de llamadas molestas no deseadas"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Entrega de número de llamada"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"No molestar"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"El identificador de llamadas está predeterminado en restringido. Llamada siguiente: restringida"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"El Identificador de llamadas está predeterminado en restringido. Llamada siguiente: no restringido"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"El identificador de llamadas está predeterminado en no restringido. Llamada siguiente: restringida"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Sincronización"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Paquete"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Indicador de roaming encendido"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Indicador de roaming apagado"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Indicador de roaming titilando"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Fuera del vecindario"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Fuera de construcción"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Roaming: sistema preferido"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming: sistema disponible"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming: socio de alianza"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming: socio premium"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming: funcionalidad de servicio completa"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming: funcionalidad de servicio parcial"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Banner de roaming encendido"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Banner de roaming apagado"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Buscando servicio"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: no se ha remitido"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> después de <xliff:g id="TIME_DELAY">{2}</xliff:g> segundos"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: no se ha remitido"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: no se ha remitido"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Código de función completo."</string>
+ <string name="fcError" msgid="3327560126588500777">"Problema de conexión o código de función no válido."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"Aceptar"</string>
<string name="httpError" msgid="2567300624552921790">"La página web contiene un error."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"No se ha podido encontrar la URL."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acceso y control de nivel más bajo del sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Herramientas de desarrollo"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Las funciones sólo son necesarias para los desarrolladores de aplicaciones."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Espacio de almacenamiento"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Acceder a la tarjeta SD."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"desactivar o modificar la barra de estado"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Admite que la aplicación desactive la barra de estado, o agregue y elimine íconos del sistema."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"expandir o reducir la barra de estado"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Admite una aplicación que provoca que cualquier actividad del fondo se acerque y vuelva a alejarse. Se debe evitar utilizarlo en aplicaciones normales."</string>
<string name="permlab_dump" msgid="1681799862438954752">"recuperar el estado interno del sistema"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Admite que la aplicación recupere el estado interno del sistema. Las aplicaciones maliciosas pueden recuperar una gran variedad de información privada y segura que normalmente nunca necesitaría."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"cierre parcial"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Pone al administrador de la actividad en estado de cierre. No realiza un cierre completo."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedir conmutadores de aplicación"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Impide que el usuario cambie a otra aplicación."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"verificar y controlar todos los lanzamientos de actividades"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Admite una aplicación que verifica y controla el lanzamiento de actividades por parte del sistema. Las aplicaciones maliciosas pueden comprometer totalmente al sistema. Este permiso sólo es necesario para el desarrollo, nunca para el uso normal del teléfono."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"enviar emisión de paquete eliminado"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Admite una aplicación que controla si las actividades siempre finalizan cuando van al fondo. No se utiliza nunca en aplicaciones normales."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"modificar la estadística de la batería"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Admite la modificación de estadísticas recopiladas sobre la batería. Las aplicaciones normales no deben utilizarlo."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"copia de seguridad y restauración del sistema de control"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Permite a la aplicación controlar el mecanismo de restauración y copia de seguridad de los sistemas. No es para uso de las aplicaciones normales."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"mostrar ventanas no autorizadas"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Permite la creación de ventanas que la interfaz interna del usuario del sistema pretenda utilizar. Las aplicaciones normales no deben utilizarlo."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"mostrar alertas a nivel del sistema"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Crea fuentes de ubicación de prueba. Las aplicaciones maliciosas pueden utilizarlo para invalidar la ubicación o el estado que arrojen las fuentes de ubicación real, como GPS o proveedores de red."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"acceder a comandos adicionales del proveedor del lugar"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Accede a comandos adicionales del proveedor del lugar. Las aplicaciones maliciosas pueden utilizarlo para interferir en la operación del GPS u otras fuentes de ubicación."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"autorización para instalar un proveedor de ubicación"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Crear fuentes de ubicación simuladas para las pruebas. Las aplicaciones maliciosas pueden utilizar esta opción para anular la ubicación y el estado que devuelven las fuentes de ubicación actuales, como por ejemplo los proveedores de GPS o redes, o para monitorear y notificar tu ubicación a una fuente externa."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"ubicación precisa (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Accede a las fuentes de ubicación precisa, como el Sistema de posicionamiento global en el teléfono, si está disponible. Las aplicaciones maliciosas pueden utilizarlo para determinar donde te encuentras y puede consumir energía adicional de la batería."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"ubicación aproximada (basada en la red)"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Admite que la aplicación indique al sistema cuáles controles puede utilizar cada aplicación. Con este permiso, las aplicaciones pueden brindar acceso a los datos personales a otras aplicaciones. Las aplicaciones normales no deben utilizarlo."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"modificar el estado del teléfono"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Admite que la aplicación controle las funciones telefónicas del dispositivo. Una aplicación con este permiso puede cambiar las redes, encender y apagar la radio del teléfono y funciones similares sin notificarte en ningún momento."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"leer el estado del teléfono y la identidad"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Admite que la aplicación acceda a las funciones telefónicas del dispositivo. Una aplicación con este permiso puede determinar el número de teléfono y el número de serie de este teléfono, si una llamada está activa, el número al cual está conectado esa llamada y funciones similares."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"evitar que el teléfono entre en estado de inactividad"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Admite una aplicación que evita que el teléfono entre en estado de inactividad."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"apagar o encender el teléfono"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Admite una aplicación que observa la información sobre el estado de Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"cambiar el estado de Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Admite una aplicación que se conecta y desconecta de los puntos de acceso de Wi-Fi y que hace cambios en las redes de Wi-Fi configuradas."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"permitir recepción de multidifusión Wi-Fi"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Permite a una aplicación recibir paquetes que no están dirigidos directamente a tu dispositivo. Esta opción puede ser útil al descubrir servicios ofrecidos. Además, ejerce más potencia que el modo que no es de multidifusión."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"administración de bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Admite una aplicación que configura el teléfono Bluetooth local y descubre y se vincula con dispositivos remotos."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"crear conexiones de Bluetooth"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Admite una aplicación para leer palabras, nombres y frases privadas que posiblemente el usuario haya almacenado en el diccionario del usuario."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"escribir al diccionario definido por el usuario"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Admite una aplicación que escribe palabras nuevas en el diccionario del usuario."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"modificar/suprimir el contenido de la tarjeta SD"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Admite que una aplicación escriba en la tarjeta SD."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Página principal"</item>
<item msgid="869923650527136615">"Celular"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Lo sentimos, vuelve a intentarlo"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Cargando (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Cargada."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Conecta tu cargador."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"No hay tarjeta SIM."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"No hay tarjeta SIM en el teléfono."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nombre de usuario o contraseña incorrecta."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No hay notificaciones"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Continuo"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificaciones"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Conecta el cargador"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Hay poca batería:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"menos de <xliff:g id="NUMBER">%d%%</xliff:g> restante."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"¿Por qué?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Error en la prueba de fábrica"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"La acción FACTORY_TEST se admite solamente en paquetes instalados en /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"No se ha encontrado ningún paquete que proporcione la acción FACTORY_TEST ."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"¿Deseas salir de esta página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selecciona Aceptar para continuar o Cancelar para permanecer en la página actual."</string>
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"leer historial y marcadores del navegador"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Permite a la aplicación leer todas las URL que ha visitado el navegador y todos los marcadores del navegador."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"escribir historial y marcadores del navegador"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Permite a una aplicación modificar el historial y los marcadores del navegador almacenados en tu teléfono. Las aplicaciones maliciosas pueden utilizarlo para borrar o modificar tus datos."</string>
<string name="save_password_message" msgid="767344687139195790">"¿Quieres recordar esta contraseña en el navegador?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Ahora no."</string>
<string name="save_password_remember" msgid="6491879678996749466">"Recuerda"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"La aplicación <xliff:g id="APPLICATION">%1$s</xliff:g> (en proceso <xliff:g id="PROCESS">%2$s</xliff:g>) no responde."</string>
<string name="anr_process" msgid="1246866008169975783">"El proceso <xliff:g id="PROCESS">%1$s</xliff:g> no responde."</string>
<string name="force_close" msgid="3653416315450806396">"Provocar acercamiento"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Notificar"</string>
<string name="wait" msgid="7147118217226317732">"Espera"</string>
<string name="debug" msgid="9103374629678531849">"Depurar"</string>
<string name="sendText" msgid="5132506121645618310">"Selecciona una acción para el texto"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Formatear tarjeta SD"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"¿Estás seguro de que quieres formatear la tarjeta SD? Se perderán todos los datos de tu tarjeta."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Formato"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuración de USB conectada"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Hay una computadora conectada a tu teléfono."</string>
<string name="select_input_method" msgid="2086499663193509436">"Seleccionar método de entrada"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Preparación de la tarjeta SD"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Verificando errores"</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Tarjeta SD vacía"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"Tarjeta SD en blanco o el sistema de archivos no es compatible."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Tarjeta SD dañada"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"Tarjeta SD dañada. Es posible que debas reformatearla."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"Tarjeta SD extraída de forma imprevista"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Desmontar la tarjeta SD antes de extraerla para evitar la pérdida de datos."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"Tarjeta SD fácil de extraer"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Puedes eliminar la tarjeta SD sin riesgos."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Tarjeta SD extraída"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"Tarjeta SD eliminada. Inserta una nueva."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"No se encontraron actividades coincidentes"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"actualizar la estadística de uso de los componentes"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Permite la modificación de estadísticas recopiladas sobre el uso de componentes. Las aplicaciones normales no deben utilizarlo."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Ejecutar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Marcar el número"\n"con <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Crear contacto "\n"con <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"verificado"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"no verificado"</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index fde4f2395209..42e539102b27 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -131,7 +131,7 @@
<string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Modalità silenziosa"</string>
<string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Audio non attivo"</string>
<string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Audio attivo"</string>
- <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modalità aereo attiva"</string>
+ <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modalità aereo"</string>
<string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Modalità aereo attiva"</string>
<string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Modalità aereo non attiva"</string>
<string name="safeMode" msgid="2788228061547930246">"Modalità provvisoria"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 2e85a1065ef0..0d0fb614a5b3 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;제목없음&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(전화번호 없음)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"착발신 제한"</string>
<string name="PwdMmi" msgid="7043715687905254199">"비밀번호 변경"</string>
<string name="PinMmi" msgid="3113117780361190304">"PIN 변경"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"통화 번호 존재"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"제한된 통화 번호"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"3자 통화"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"원하지 않는 통화 수신 거부"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"통화 번호 전달"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"응답 거부"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"발신자 번호가 기본적으로 제한됨으로 설정됩니다. 다음 통화: 제한됨"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"발신자 번호가 기본적으로 제한됨으로 설정됩니다. 다음 통화: 제한되지 않음"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"발신자 번호가 기본적으로 제한되지 않음으로 설정됩니다. 다음 통화: 제한됨"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"동기화"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"패킷"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"로밍 표시기 사용"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"로밍 표시기 사용 안함"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"로밍 표시기 깜박임"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"인근 지역 외부"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"건물 밖"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"로밍 - 기본 시스템"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"로밍 - 사용 가능한 시스템"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"로밍 - 제휴 파트너"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"로밍 - 프리미엄 파트너"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"로밍 - 전체 서비스 기능"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"로밍 - 부분 서비스 기능"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"로밍 배너 사용"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"로밍 배너 사용 안함"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"서비스 검색 중"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: 착신전환 안됨"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g><xliff:g id="TIME_DELAY">{2}</xliff:g>초 후"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: 착신전환 안됨"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: 착신전환 안됨"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"기능 코드가 완료되었습니다."</string>
+ <string name="fcError" msgid="3327560126588500777">"연결에 문제가 있거나 기능 코드가 잘못되었습니다."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"확인"</string>
<string name="httpError" msgid="2567300624552921790">"웹페이지에 오류가 있습니다."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"URL을 찾을 수 없습니다."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"시스템을 하위 수준에서 액세스하고 제어합니다."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"개발 도구"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"응용프로그램 개발자에게만 필요한 기능입니다."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"저장"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"SD 카드에 액세스합니다."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"상태 표시줄 사용 중지 또는 수정"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"응용프로그램이 상태 표시줄을 사용 중지하거나 시스템 아이콘을 추가 및 제거할 수 있도록 합니다."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"상태 표시줄 확장/축소"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"응용프로그램이 포그라운드에 있는 활동을 강제로 닫고 되돌아갈 수 있도록 합니다. 일반 응용프로그램에는 필요하지 않습니다."</string>
<string name="permlab_dump" msgid="1681799862438954752">"시스템 내부 상태 검색"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"응용프로그램이 시스템의 내부 상태를 검색할 수 있도록 합니다. 단, 악성 응용프로그램이 이 기능을 이용하여 일반적으로 필요하지 않은 다양한 개인정보와 보안정보를 검색할 수 있습니다."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"부분 종료"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"작업 관리자를 종료 상태로 설정하며 전체 종료를 수행하지 않습니다."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"응용프로그램 전환 방지"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"사용자가 다른 응용프로그램으로 전환하지 못하게 합니다."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"실행 중인 모든 응용프로그램 모니터링 및 제어"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"응용프로그램이 시스템에서 활동이 시작되는 방식을 모니터링하고 제어할 수 있도록 합니다. 단, 악성 응용프로그램이 이 기능을 이용하여 시스템을 완전히 손상시킬 수 있습니다. 이 권한은 개발 과정에만 필요하며 일반 휴대전화 사용 시에는 필요하지 않습니다."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"패키지 제거 브로드캐스트 보내기"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"응용프로그램이 백그라운드로 이동한 활동을 항상 바로 종료할지 여부를 제어할 수 있도록 합니다. 일반 응용프로그램에는 필요하지 않습니다."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"배터리 통계 수정"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"수집된 배터리 통계를 수정할 수 있도록 합니다. 일반 응용프로그램에서는 사용할 수 없습니다."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"시스템 백업 및 복원 관리"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"응용프로그램이 시스템 백업을 관리하고 매커니즘을 복원할 수 있도록 합니다. 일반 응용프로그램에서는 사용할 수 없습니다."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"인증되지 않은 창 표시"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"내부 시스템 사용자 인터페이스에서 사용하는 창을 만들 수 있도록 합니다. 일반 응용프로그램에서는 사용하지 않습니다."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"시스템 수준 경고 표시"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"테스트용 가짜 위치 소스를 만듭니다. 단, 악성 응용프로그램이 이 기능을 이용하여 GPS, 네트워크 제공업체 같은 실제 위치 소스에서 반환한 위치 및/또는 상태를 덮어쓸 수 있습니다."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"추가 위치 제공업체 명령 액세스"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"추가 위치 제공업체 명령에 액세스합니다. 단, 악성 응용프로그램이 이 기능을 이용하여 GPS 또는 기타 위치 소스의 작동을 방해할 수 있습니다."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"위치 정보 공급자 설치 권한"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"테스트용 가짜 위치 소스를 만듭니다. 단, 악성 응용프로그램이 이 기능을 이용하여 GPS, 네트워크 제공업체 같은 실제 위치 소스에서 반환한 위치 및/또는 상태를 덮어쓰거나 사용자의 위치를 모니터링하여 외부 소스로 보고할 수 있습니다."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"자세한 (GPS) 위치"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"가능한 경우 휴대전화에서 GPS(범지구 위치 측정 시스템) 등의 자세한 위치 소스에 액세스합니다. 이 경우 악성 응용프로그램이 사용자의 위치를 확인하고 추가 배터리 전원을 소비할 수 있습니다."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"광범위한 네트워크 기반 위치"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"응용프로그램이 응용프로그램에서 사용할 수 있는 위젯을 시스템에 알릴 수 있도록 합니다. 이 권한을 갖는 응용프로그램은 개인 정보에 대한 액세스 권한을 다른 응용프로그램에 부여할 수 있습니다. 일반 응용프로그램에서는 사용하지 않습니다."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"휴대전화 상태 수정"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"응용프로그램이 장치의 휴대전화 기능을 제어할 수 있도록 합니다. 이 권한을 갖는 응용프로그램은 사용자에게 알리지 않고 네트워크를 전환하거나 휴대전화 무선 기능을 켜고 끄는 등의 작업을 수행할 수 있습니다."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"휴대전화 상태 및 ID 읽기"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"응용프로그램이 장치의 휴대전화 기능에 액세스할 수 있도록 합니다. 이 권한을 갖는 응용프로그램은 휴대전화의 전화번호 및 일련번호, 통화가 활성인지 여부, 해당 통화가 연결된 번호 등을 확인할 수 있습니다."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"휴대전화가 절전 모드로 전환되지 않도록 설정"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"응용프로그램이 휴대전화가 절전 모드로 전환되지 않도록 합니다."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"휴대전화 전원 켜고 끄기"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"응용프로그램이 Wi-Fi의 상태에 대한 정보를 볼 수 있도록 합니다."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"Wi-Fi 상태 변경"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"응용프로그램이 Wi-Fi 액세스포인트에 연결하거나 연결을 끊고, 구성된 Wi-Fi 네트워크를 변경할 수 있도록 합니다."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"Wi-Fi 멀티캐스트 수신 허용"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"응용프로그램이 휴대기기로 직접 주소가 지정되지 않은 패킷을 받을 수 있도록 합니다. 이 기능은 가까운 곳에서 제공되는 서비스를 검색할 때 유용하며 비멀티캐스트 모드보다 전원을 더 많이 소비합니다."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"Bluetooth 관리"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"응용프로그램이 로컬 Bluetooth 휴대전화를 구성한 다음 원격 장치를 검색하여 페어링할 수 있도록 합니다."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"Bluetooth 연결 만들기"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"응용프로그램이 사용자 사전에 보관되어 있는 비공개 단어, 이름 및 구문을 읽도록 합니다."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"상용자 정의 사전에 작성"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"응용프로그램이 사용자 사전에 새 단어를 입력할 수 있도록 합니다."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"SD 카드 콘텐츠 수정/삭제"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"응용프로그램이 SD 카드에 쓸 수 있도록 합니다."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"집"</item>
<item msgid="869923650527136615">"모바일"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"맞습니다."</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"죄송합니다. 다시 시도하세요."</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"충전 중(<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"충전되었습니다."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"충전기를 연결하세요."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"SIM 카드가 없습니다."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"휴대전화에 SIM 카드가 없습니다."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"사용자 이름 또는 비밀번호가 잘못되었습니다."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"지우기"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"알림 없음"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"진행 중"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"알림"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"충전기를 연결하세요."</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"배터리 전원이 부족합니다."</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"<xliff:g id="NUMBER">%d%%</xliff:g> 미만 남음"</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"원인"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"출고 테스트 불합격"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"FACTORY_TEST 작업은 /system/app 디렉토리에 설치된 패키지에 대해서만 지원됩니다."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"FACTORY_TEST 작업을 제공하는 패키지가 없습니다."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"자바스크립트"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"다른 페이지를 탐색하시겠습니까?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"계속하려면 \'확인\'을 선택하고 현재 페이지에 그대로 있으려면 \'취소\'를 선택하세요."</string>
<string name="save_password_label" msgid="6860261758665825069">"확인"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"브라우저의 기록 및 북마크 읽기"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"응용프로그램이 브라우저로 방문한 모든 URL과 브라우저의 모든 북마크를 읽도록 허용합니다."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"브라우저의 기록 및 북마크 쓰기"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"응용프로그램이 휴대전화에 저장된 브라우저 기록 또는 북마크를 수정할 수 있도록 허용합니다. 이 경우 악성 응용프로그램이 브라우저의 데이터를 지우거나 수정할 수 있습니다."</string>
<string name="save_password_message" msgid="767344687139195790">"브라우저에 이 비밀번호를 저장하시겠습니까?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"나중에"</string>
<string name="save_password_remember" msgid="6491879678996749466">"저장"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"<xliff:g id="APPLICATION">%1$s</xliff:g> 응용프로그램(<xliff:g id="PROCESS">%2$s</xliff:g> 프로세스)이 응답하지 않습니다."</string>
<string name="anr_process" msgid="1246866008169975783">"<xliff:g id="PROCESS">%1$s</xliff:g> 프로세스가 응답하지 않습니다."</string>
<string name="force_close" msgid="3653416315450806396">"닫기"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"신고"</string>
<string name="wait" msgid="7147118217226317732">"대기"</string>
<string name="debug" msgid="9103374629678531849">"디버그"</string>
<string name="sendText" msgid="5132506121645618310">"텍스트에 대한 작업 선택"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"SD 카드 포맷"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"SD 카드를 포맷하시겠습니까? 포맷하면 카드의 모든 데이터를 잃게 됩니다."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"포맷"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"USB 디버깅 연결됨"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"컴퓨터가 휴대전화에 연결되어 있습니다."</string>
<string name="select_input_method" msgid="2086499663193509436">"입력 방법 선택"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"가능한 원인"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"SD 카드 준비 중"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"오류 확인 중입니다."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"빈 SD 카드"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD 카드가 비어 있거나 지원되지 않는 파일 시스템을 사용합니다."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"손상된 SD 카드"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD 카드가 손상되었습니다. 카드를 다시 포맷해야 할 수 있습니다."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"SD 카드가 예상치 않게 제거되었습니다."</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"데이터 손실을 피하려면 SD 카드를 제거하기 전에 마운트 해제합니다."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"SD 카드를 안전하게 제거할 수 있습니다."</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"안전하게 SD 카드를 제거할 수 있습니다."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"SD 카드를 제거했습니다."</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD 카드가 제거되었습니다. 새 카드를 넣으세요."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"일치하는 활동이 없습니다."</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"구성 요소 사용 통계 업데이트"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"수집된 구성요소 사용 통계를 수정할 수 있는 권한을 부여합니다. 일반 응용프로그램은 이 권한을 사용할 수 없습니다."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"실행"</string>
<string name="dial_number_using" msgid="5789176425167573586">"전화하기 "\n"<xliff:g id="NUMBER">%s</xliff:g>에 연결"</string>
<string name="create_contact_using" msgid="4947405226788104538">"전화번호부에"\n"<xliff:g id="NUMBER">%s</xliff:g> 추가"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"선택함"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"선택 안함"</string>
</resources>
diff --git a/core/res/res/values-mcc204-el/strings.xml b/core/res/res/values-mcc204-el/strings.xml
index f7ca3d2b963f..94786f128d8c 100644
--- a/core/res/res/values-mcc204-el/strings.xml
+++ b/core/res/res/values-mcc204-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="2972154133076909542">"el_GR"</string>
+ <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
</resources>
diff --git a/core/res/res/values-mcc204-nb/strings.xml b/core/res/res/values-mcc204-nb/strings.xml
new file mode 100644
index 000000000000..94786f128d8c
--- /dev/null
+++ b/core/res/res/values-mcc204-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+</resources>
diff --git a/core/res/res/values-mcc230-el/strings.xml b/core/res/res/values-mcc230-el/strings.xml
index 49ea9f37c125..63ade62b84d6 100644
--- a/core/res/res/values-mcc230-el/strings.xml
+++ b/core/res/res/values-mcc230-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="9011721823833053909">"el_GR"</string>
+ <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
</resources>
diff --git a/core/res/res/values-mcc230-nb/strings.xml b/core/res/res/values-mcc230-nb/strings.xml
new file mode 100644
index 000000000000..63ade62b84d6
--- /dev/null
+++ b/core/res/res/values-mcc230-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+</resources>
diff --git a/core/res/res/values-mcc232-el/strings.xml b/core/res/res/values-mcc232-el/strings.xml
index 3698d2c3008b..b0289274ec12 100644
--- a/core/res/res/values-mcc232-el/strings.xml
+++ b/core/res/res/values-mcc232-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="166900303893651370">"el_GR"</string>
+ <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
</resources>
diff --git a/core/res/res/values-mcc232-nb/strings.xml b/core/res/res/values-mcc232-nb/strings.xml
new file mode 100644
index 000000000000..b0289274ec12
--- /dev/null
+++ b/core/res/res/values-mcc232-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+</resources>
diff --git a/core/res/res/values-mcc234-el/strings.xml b/core/res/res/values-mcc234-el/strings.xml
index e04aa9343bfc..bd391e15b0fa 100644
--- a/core/res/res/values-mcc234-el/strings.xml
+++ b/core/res/res/values-mcc234-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="233769627858930762">"el_GR"</string>
+ <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
</resources>
diff --git a/core/res/res/values-mcc234-nb/strings.xml b/core/res/res/values-mcc234-nb/strings.xml
new file mode 100644
index 000000000000..bd391e15b0fa
--- /dev/null
+++ b/core/res/res/values-mcc234-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+</resources>
diff --git a/core/res/res/values-mcc260-el/strings.xml b/core/res/res/values-mcc260-el/strings.xml
index ea6f87b07d9d..13ea1b203c1d 100644
--- a/core/res/res/values-mcc260-el/strings.xml
+++ b/core/res/res/values-mcc260-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="6306793451973344945">"el_GR"</string>
+ <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
</resources>
diff --git a/core/res/res/values-mcc260-nb/strings.xml b/core/res/res/values-mcc260-nb/strings.xml
new file mode 100644
index 000000000000..13ea1b203c1d
--- /dev/null
+++ b/core/res/res/values-mcc260-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+</resources>
diff --git a/core/res/res/values-mcc262-el/strings.xml b/core/res/res/values-mcc262-el/strings.xml
index 38827c5dcaac..a90e7cf99b12 100644
--- a/core/res/res/values-mcc262-el/strings.xml
+++ b/core/res/res/values-mcc262-el/strings.xml
@@ -15,5 +15,5 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="locale_replacement" msgid="273407696421660814">"el_GR"</string>
+ <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
</resources>
diff --git a/core/res/res/values-mcc262-nb/strings.xml b/core/res/res/values-mcc262-nb/strings.xml
new file mode 100644
index 000000000000..a90e7cf99b12
--- /dev/null
+++ b/core/res/res/values-mcc262-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index c19d057e4da8..c7e8a05a84de 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -21,7 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;uten navn&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Mangler telefonnummer)"</string>
@@ -80,11 +80,11 @@
<string name="roamingText3" msgid="5148255027043943317">"Ute av nabolaget"</string>
<string name="roamingText4" msgid="8808456682550796530">"Ute av bygningen"</string>
<string name="roamingText5" msgid="7604063252850354350">"Roaming - foretrukket system"</string>
- <string name="roamingText6" msgid="2059440825782871513">"Roaming - tilgjengelig system"</string>
- <string name="roamingText7" msgid="7112078724097233605">"Roaming - alliansepartner"</string>
- <string name="roamingText8" msgid="5989569778604089291">"Roaming - gullpartner"</string>
- <string name="roamingText9" msgid="7969296811355152491">"Roaming - full tjenestefunksjoanlitet"</string>
- <string name="roamingText10" msgid="3992906999815316417">"Roaming - delvis tjenestefunksjonalitet"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming – tilgjengelig system"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming – alliansepartner"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming – gullpartner"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming – full tjenestefunksjonalitet"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming – delvis tjenestefunksjonalitet"</string>
<string name="roamingText11" msgid="4154476854426920970">"Roaming-banner på"</string>
<string name="roamingText12" msgid="1189071119992726320">"Roaming-banner av"</string>
<string name="roamingTextSearching" msgid="8360141885972279963">"Leter etter tjeneste"</string>
@@ -194,14 +194,14 @@
<string name="permdesc_shutdown" msgid="7046500838746291775">"Lar applikasjonen sette aktivitetshåndtereren i avslutningstilstand. Slår ikke systemet helt av."</string>
<string name="permlab_stopAppSwitches" msgid="4138608610717425573">"forhindre applikasjonsbytte"</string>
<string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Lar applikasjonen forhindre brukeren fra å bytte til en annen applikasjon."</string>
- <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"overvåke og kontrollere all applikasjonsoppstart"</string>
+ <string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"Blokker popup-vinduer"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Lar applikasjonen overvåke og kontrollere hvordan systemet starter applikasjoner. Ondsinnede applikasjoner kan ta over systemet helt. Denne rettigheten behøves bare for utvikling, aldri for vanlig bruk av telefonen."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"kringkaste melding om fjernet pakke"</string>
<string name="permdesc_broadcastPackageRemoved" msgid="3453286591439891260">"Lar applikasjonen kringkaste en melding om at en applikasjonspakke er blitt fjernet. Ondsinnede applikasjoner kan bruke dette til å drepe vilkårlige andre kjørende applikasjoner."</string>
<string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"kringkaste melding om mottatt SMS"</string>
<string name="permdesc_broadcastSmsReceived" msgid="9122419277306740155">"Lar applikasjonen kringkaste en melding om at en SMS-melding er mottatt. Ondsinnede applikasjoner kan bruke dette til å forfalske innkommende SMS-meldinger."</string>
<string name="permlab_broadcastWapPush" msgid="3145347413028582371">"kringkaste melding om mottatt WAP-PUSH"</string>
- <string name="permdesc_broadcastWapPush" msgid="3955303669461378091">"Lar applikasjonen kringkaste en melding om at en WAP-PUSH-melding er blitt mottatt. Ondsinnede applikasjoner kan bruke dette til å forfalske MMS-kvitteringer eller i det stille erstatte innholdet av vilkårlige nettsider med ondsinnede varianter."</string>
+ <string name="permdesc_broadcastWapPush" msgid="3955303669461378091">"Lar applikasjonen kringkaste en melding om at en WAP-PUSH-melding er blitt mottatt. Ondsinnede applikasjoner kan bruke dette til å forfalske MMS-kvitteringer eller i det stille erstatte innholdet av vilkårlige nettsteder med ondsinnede varianter."</string>
<string name="permlab_setProcessLimit" msgid="2451873664363662666">"begrense antallet kjørende prosesser"</string>
<string name="permdesc_setProcessLimit" msgid="7824786028557379539">"Lar applikasjonen kontrollere maksimalt antall kjørende prosesser. Behøves aldri for vanlige applikasjoner."</string>
<string name="permlab_setAlwaysFinish" msgid="5342837862439543783">"få alle bakgrunnsapplikasjoner til å lukkes"</string>
@@ -243,9 +243,9 @@
<string name="permlab_clearAppCache" msgid="4747698311163766540">"slette hurtigbufferdata for alle applikasjoner"</string>
<string name="permdesc_clearAppCache" msgid="7740465694193671402">"Lar applikasjonen frigjøre lagringsplass ved å slette filer i applikasjoners hurtigbufferkatalog. Tilgangen er vanligvis sterkt begrenset, til systemprosesser."</string>
<string name="permlab_readLogs" msgid="4811921703882532070">"lese systemets loggfiler"</string>
- <string name="permdesc_readLogs" msgid="2257937955580475902">"Lar applikasjonen to lese fra diverse loggfiler på systemet. Disse inneholder generell informasjon om hva som gjøres med telefonen, men skal ikke inneholde personlig eller privat informasjon."</string>
+ <string name="permdesc_readLogs" msgid="2257937955580475902">"Lar applikasjonen lese fra diverse loggfiler på systemet. Disse inneholder generell informasjon om hva som gjøres med telefonen, men skal ikke inneholde personlig eller privat informasjon."</string>
<string name="permlab_diagnostic" msgid="8076743953908000342">"lese/skrive ressurser eid av diag"</string>
- <string name="permdesc_diagnostic" msgid="3121238373951637049">"Lar applikasjonen to lese og skrive enhver ressurs eid av gruppen diag; for eksempel, filer i /dev. Dette kan potensielt påvirke systemets sikkerhet og stabilitet. Dette bør KUN brukes for maskinvarespesifikke diagnoseverktøy laget av operatøren eller produsenten."</string>
+ <string name="permdesc_diagnostic" msgid="3121238373951637049">"Lar applikasjonen lese og skrive enhver ressurs eid av gruppen diag; for eksempel, filer i /dev. Dette kan potensielt påvirke systemets sikkerhet og stabilitet. Dette bør KUN brukes for maskinvarespesifikke diagnoseverktøy laget av operatøren eller produsenten."</string>
<string name="permlab_changeComponentState" msgid="79425198834329406">"aktivere eller deaktigere applikasjonskomponenter"</string>
<string name="permdesc_changeComponentState" msgid="4569107043246700630">"Lar applikasjonen endre om en komponent i en annen applikasjon er aktivert eller ikke. Ondsinnede applikasjoner kan bruke dette til å deaktivere viktige telefonfunksjoner. Denne rettigheten må brukes med forsiktighet, ettersom det er mulig å få applikasjonskomponenter inn i en ubrukelig, inkonsistent eller ustabil tilstand."</string>
<string name="permlab_setPreferredApplications" msgid="3393305202145172005">"velge foretrukne applikasjoner"</string>
@@ -272,8 +272,8 @@
<string name="permdesc_readCalendar" msgid="5533029139652095734">"Lar applikasjonen lese alle kalenderhendelser lagret på telefonen. Ondsinnede applikasjoner kan bruke dette til å sende kalenderhendelser til andre."</string>
<string name="permlab_writeCalendar" msgid="377926474603567214">"skrive kalenderinformasjon"</string>
<string name="permdesc_writeCalendar" msgid="8674240662630003173">"Lar applikasjonen endre kalenderhendelser lagret på telefonen. Ondsinnede applikasjoner kan bruke dette til å slette eller endre kalenderinformasjon."</string>
- <string name="permlab_accessMockLocation" msgid="8688334974036823330">"lage manuelle plasseringskilder for testing"</string>
- <string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Lage manuelle plassingskilder for testing. Ondsinnede applikasjoner kan bruke dette til å overstyre plasseringen og/eller statusen rapportert av ekte plasseringskilder slik som GPS eller nettverksoperatører."</string>
+ <string name="permlab_accessMockLocation" msgid="8688334974036823330">"lage simulerte plasseringskilder for testing"</string>
+ <string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Lage simulerte plassingskilder for testing. Ondsinnede applikasjoner kan bruke dette til å overstyre plasseringen og/eller statusen rapportert av ekte plasseringskilder slik som GPS eller nettverksoperatører."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"få tilgang til ekstra plasseringskommandoer"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Få tilgang til ekstra kommandoer for plasseringskilder. Ondsinnede applikasjoner kan bruke dette til å forstyrre GPS eller andre plasseringskilder."</string>
<string name="permlab_installLocationProvider" msgid="6578101199825193873">"installere plasseringskilder"</string>
@@ -318,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Lar applikasjonen fortelle systemet hvilke gadgeter som kan brukes av hvilke applikasjoner. Med denne rettigheten kan applikasjoner andre applikasjoner tilgang til personlig data. Ikke ment for vanlige applikasjoner."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"endre telefontilstand"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Lar applikasjonen kontrollere telefonfunksjonaliteten i enheten. En applikasjon med denne rettigheten kan endre nettverk, slå telefonens radio av eller på og lignende uten noensinne å varsle brukeren."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"lese telefontilstand og -identitet"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Gir applikasjonen tilgang til telefonfunksjonaliteten i enheten. En applikasjon med denne rettigheten kan finne telefonens telefonnummer og seriellnummer, om en samtale er aktiv, nummeret det ringes til og lignende."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"forhindre telefonen fra å sove"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Lar applikasjonen forhindre telefonen fra å gå i hvilemodus."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"slå telefonen av eller på"</string>
@@ -332,8 +330,8 @@
<string name="permdesc_setWallpaper" msgid="6417041752170585837">"Lar applikasjonen sette systemets bakgrunnsbilde."</string>
<string name="permlab_setWallpaperHints" msgid="3600721069353106851">"sette størrelseshint for bakgrunn"</string>
<string name="permdesc_setWallpaperHints" msgid="6019479164008079626">"Lar applikasjonen sette størrelseshint for systemets bakgrunnsbilde."</string>
- <string name="permlab_masterClear" msgid="2315750423139697397">"nullstille systemet til fabrikkinnstillinger"</string>
- <string name="permdesc_masterClear" msgid="5033465107545174514">"Lar applikasjonen nullstille systemet til fabrikkinnstillinger, noe som vil fjerne alle data, alt oppsett, og alle installerte applikasjoner."</string>
+ <string name="permlab_masterClear" msgid="2315750423139697397">"tilbakestille systemet til fabrikkinnstillinger"</string>
+ <string name="permdesc_masterClear" msgid="5033465107545174514">"Lar applikasjonen tilbakestille systemet til fabrikkinnstillinger, noe som vil fjerne alle data, alt oppsett, og alle installerte applikasjoner."</string>
<string name="permlab_setTimeZone" msgid="2945079801013077340">"endre tidssone"</string>
<string name="permdesc_setTimeZone" msgid="1902540227418179364">"Lar applikasjonen endre telefonens tidssone."</string>
<string name="permlab_getAccounts" msgid="4549918644233460103">"oppdage kjente kontoer"</string>
@@ -365,7 +363,7 @@
<string name="permlab_writeSyncSettings" msgid="6297138566442486462">"skrive synkroniseringsinnstillinger"</string>
<string name="permdesc_writeSyncSettings" msgid="2498201614431360044">"Lar applikasjonen to endre på synkroniseringsinnstillingene, som for eksempel om kontakter blir synkronisert."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lese synkroniseringsstatistikk"</string>
- <string name="permdesc_readSyncStats" msgid="7511448343374465000">"Lar applikasjonen lese synkroniseringsstatistikk, som for eksempel historien over alle synkroniseringer utført."</string>
+ <string name="permdesc_readSyncStats" msgid="7511448343374465000">"Lar applikasjonen lese synkroniseringsstatistikk, som for eksempel loggen over alle synkroniseringer utført."</string>
<string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"lese abonnement på nyhetskilder"</string>
<string name="permdesc_subscribedFeedsRead" msgid="3622200625634207660">"Lar applikasjonen hente detaljer om hvilke nyhetskilder som synkroniseres."</string>
<string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"endre abonnement på nyhetskilder"</string>
@@ -422,7 +420,7 @@
</string-array>
<string name="keyguard_password_enter_pin_code" msgid="3731488827218876115">"Skriv inn PIN-kode:"</string>
<string name="keyguard_password_wrong_pin_code" msgid="1295984114338107718">"Gal PIN-kode!"</string>
- <string name="keyguard_label_text" msgid="861796461028298424">"For å låse opp, trykk på Meny og deretter 0."</string>
+ <string name="keyguard_label_text" msgid="861796461028298424">"For å låse opp, trykk på menyknappen og deretter 0."</string>
<string name="emergency_call_dialog_number_for_display" msgid="696192103195090970">"Nødnummer"</string>
<string name="lockscreen_carrier_default" msgid="8812714795156374435">"(Ingen operatør)"</string>
<string name="lockscreen_screen_locked" msgid="7288443074806832904">"Skjermen er låst"</string>
@@ -451,7 +449,7 @@
<string name="lockscreen_glogin_instructions" msgid="1816635201812207709">"For å låse opp, logg på med Google-kontoen din"</string>
<string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"Brukernavn (e-post)"</string>
<string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Passord"</string>
- <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Logg inn"</string>
+ <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Logg på"</string>
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ugyldig brukernavn eller passord."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
@@ -473,10 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Naviger bort fra denne siden?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Velg OK for å fortsette, eller Avbryt for å forbli på denne siden."</string>
<string name="save_password_label" msgid="6860261758665825069">"Bekreft"</string>
- <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"lese nettleserens historie og bokmerker"</string>
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"lese nettleserens logg og bokmerker"</string>
<string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Lar applikasjonen lese alle adresser nettleseren har besøkt, og alle nettleserens bokmerker."</string>
- <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"skrive til nettleserens historie og bokmerker"</string>
- <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Lar applikasjonen endre nettleserens historie og bokmerker lagret på telefonen. Ondsinnede applikasjoner kan bruke dette til å fjerne eller redigere nettleserens data."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"skrive til nettleserens logg og bokmerker"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Lar applikasjonen endre nettleserens logg og bokmerker lagret på telefonen. Ondsinnede applikasjoner kan bruke dette til å fjerne eller redigere nettleserens data."</string>
<string name="save_password_message" msgid="767344687139195790">"Ønsker du at nettleseren skal huske dette passordet?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Ikke nå"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Husk"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index a6ab576bf4e6..5b3b2c317401 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;sem título&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Nenhum número de telefone)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Barramento de chamadas"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Alteração de palavra-passe"</string>
<string name="PinMmi" msgid="3113117780361190304">"Alteração de PIN"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Apresentação do número chamador"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Número chamador restringido"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Chamada de conferência entre três interlocutores"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Rejeição de chamadas inoportunas indesejadas"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Entrega do número chamador"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Não incomodar"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"ID do autor da chamada é predefinido como restrito. Chamada seguinte: Restrita"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"ID do autor da chamada é predefinido como restrito. Chamada seguinte: Não restrita"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"ID do autor da chamada é predefinido como não restrito. Chamada seguinte: Restrita"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Sincronização"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Pacote"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Indicador de Roaming activado"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Indicador de Roaming desactivado"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Indicador de Roaming intermitente"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Fora da Vizinhança"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"No Exterior"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Roaming - Sistema Preferencial"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming - Sistema Disponível"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming - Parceiro Alliance"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming - Parceiro Premium"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming - Funcionalidade de Serviço Total"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming - Funcionalidade de Serviço Parcial"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Faixa de Roaming activada"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Faixa de Roaming desactivada"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"A procurar Serviço"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não reencaminhado"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> após <xliff:g id="TIME_DELAY">{2}</xliff:g> segundos"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não reencaminhado"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não reencaminhado"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Código de funcionalidade completo."</string>
+ <string name="fcError" msgid="3327560126588500777">"Problema de ligação ou código de funcionalidade inválido."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
<string name="httpError" msgid="2567300624552921790">"A página Web contém um erro."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Não foi possível localizar o URL."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acesso e controlo de nível inferior do sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ferramentas de desenvolvimento"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Funcionalidades apenas necessárias para programadores de aplicações."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Aceder ao cartão SD."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"desactivar ou modificar barra de estado"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Permite à aplicação desactivar a barra de estado ou adicionar e remover ícones do sistema."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"expandir/fechar barra de estado"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Permite a uma aplicação forçar qualquer actividade em primeiro plano a fechar e retroceder. Nunca deve ser necessário para aplicações normais."</string>
<string name="permlab_dump" msgid="1681799862438954752">"obter estado interno do sistema"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Permite à aplicação obter o estado interno do sistema. Algumas aplicações maliciosas podem obter uma ampla variedade de dados privados e seguros de que, normalmente, nunca devem necessitar."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"encerramento parcial"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Coloca o gestor de actividade num estado de encerramento. Não executa um encerramento completo."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedir trocas de aplicações"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Impede que o utilizador mude para outra aplicação."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"monitorizar a controlar a iniciação de todas as aplicações"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Permite a uma aplicação monitorizar e controlar a forma como o sistema inicia actividades. Algumas aplicações maliciosas podem comprometer totalmente o sistema. Esta autorização apenas é necessária para desenvolvimento, nunca para a utilização normal do telefone."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"enviar difusão de pacote removido"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Permite a uma aplicação controlar se as actividades são sempre terminadas assim que passam para o fundo. Nunca é necessário para aplicações normais."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"modificar estatísticas da bateria"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Permite a modificação das estatísticas recolhidas sobre a bateria. Não se destina a utilização por aplicações normais."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"controlar a cópia de segurança e restauro do sistema"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Permite que a aplicação controle o mecanismo de cópia de segurança e restauro do sistema. Não deve ser utilizado por aplicações normais."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"apresentar janelas não autorizadas"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Permite a criação de janelas destinadas a utilização pela interface de utilizador interna do sistema. Não se destina a utilização por aplicações normais."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"apresentar alertas ao nível do sistema"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Crie fontes de localização fictícias para fins de teste. Algumas aplicações maliciosas podem utilizar este item para substituir a localização e/ou o estado devolvido por fontes de localização reais, tais como fornecedores de GPS ou de Rede."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"aceder a comandos adicionais do fornecedor de localização"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Aceda a comandos adicionais do fornecedor de localização. Algumas aplicações maliciosas podem utilizar este item para interferir com o funcionamento do GPS ou de outras fontes de localização."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"autorização para instalar um fornecedor de localização"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Criar origens de localização simuladas para testes. Aplicações maliciosas podem utilizar esta situação para substituir a localização e/ou o estado indicado por origens de localização reais, tais como fornecedores de rede ou GPS, ou monitorizar e informar a localização a uma origem externa."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"localização exacta (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Aceder a fontes de localização específicas, tais como o Sistema de Posicionamento Global (GPS), no telefone, se disponível. Algumas aplicações maliciosas podem utilizar este item para determinar a localização do utilizador e podem consumir energia adicional da bateria."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"localização aproximada (baseada na rede)"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Permite à aplicação informar o sistema acerca das miniaplicações que podem ser utilizadas com cada aplicação. Com esta autorização, algumas aplicações podem conceder acesso a dados pessoais a outras aplicações. Não se destina a utilização por aplicações normais."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"modificar estado do telefone"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Permite à aplicação controlar as funcionalidades do telefone do dispositivo. Uma aplicação com esta autorização pode alternar entre redes, ligar e desligar o rádio do telefone, etc., sem nunca notificar o utilizador."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"ler identidade e estado do telefone"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Permite à aplicação aceder às funcionalidades do dispositivo. Uma aplicação com esta autorização pode determinar o número deste telefone assim como o número de série do mesmo, se existe uma chamada activa, o número a que a essa chamada está ligada, etc."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"impedir que o telefone entre em inactividade"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Permite a uma aplicação impedir o telefone de entrar em inactividade."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"ligar ou desligar o telefone"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Permite a uma aplicação ver as informações acerca do estado do Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"alterar estado de Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Permite a uma aplicação ligar e desligar de pontos de acesso de Wi-Fi, bem como efectuar alterações a redes Wi-Fi configuradas."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"permitir recepção Multicast Wi-Fi"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Permite que uma aplicação receba pacotes não enviados directamente para o dispositivo. Esta opção pode ser útil para descobrir serviços oferecidos na vizinhança. Utiliza mais energia do que o modo não multicast."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"administração de Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Permite a uma aplicação configurar o telefone Bluetooth local, bem como descobrir e emparelhar com dispositivos remotos."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"criar ligações Bluetooth"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Permite a uma aplicação ler quaisquer palavras, nomes e expressões privadas que o utilizador possa ter armazenado no dicionário do utilizador."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"escrever no dicionário definido pelo utilizador"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Permite a uma aplicação escrever novas palavras no dicionário do utilizador."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"modificar/eliminar os conteúdos do cartão SD"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Permite que uma aplicação escreva no cartão SD."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Residência"</item>
<item msgid="869923650527136615">"Móvel"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correcto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Lamentamos, tente novamente"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"A carregar (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Carregado."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Ligue o carregador."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Nenhum cartão SIM."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Nenhum cartão SIM no telefone."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nome de utilizador ou palavra-passe inválidos."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g> <xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g> <xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em curso"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Ligue o carregador"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"A bateria está a ficar fraca:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"resta menos de <xliff:g id="NUMBER">%d%%</xliff:g>."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Porquê?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"O teste de fábrica falhou"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"A acção FACTORY_TEST apenas é suportada para pacotes instalados em /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Não foi localizado qualquer pacote que forneça a acção FACTORY_TEST."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Navegar para outra página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Seleccione OK para continuar ou Cancelar para permanecer na página actual."</string>
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"ler histórico e marcadores do browser"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Permite que a aplicação leia todos os URLs visitados pelo browser e todos os marcadores do browser."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"gravar histórico e marcadores do browser"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Permite que uma aplicação modifique o histórico e os marcadores do browser armazenados no telefone. As aplicações maliciosas podem utilizar esta permissão para apagar ou modificar os dados do browser."</string>
<string name="save_password_message" msgid="767344687139195790">"Quer que o browser memorize esta palavra-passe?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Agora não"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Lembrar"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"A aplicação <xliff:g id="APPLICATION">%1$s</xliff:g> (no processo <xliff:g id="PROCESS">%2$s</xliff:g>) não está a responder."</string>
<string name="anr_process" msgid="1246866008169975783">"O processo <xliff:g id="PROCESS">%1$s</xliff:g> não está a responder."</string>
<string name="force_close" msgid="3653416315450806396">"Forçar fecho"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Relatório"</string>
<string name="wait" msgid="7147118217226317732">"Esperar"</string>
<string name="debug" msgid="9103374629678531849">"Depuração"</string>
<string name="sendText" msgid="5132506121645618310">"Seleccionar uma acção para texto"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Formatar cartão SD"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Tem a certeza de que pretende formatar o cartão SD? Perder-se-ão todos os dados no cartão."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatar"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuração USB ligada"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"O telefone está ligado a um computador."</string>
<string name="select_input_method" msgid="2086499663193509436">"Seleccionar método de entrada"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"A preparar cartão SD"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"A verificar a presença de erros."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Cartão SD vazio"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"Cartão SD vazio ou sistema de ficheiros não suportado."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Cartão SD danificado"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"Cartão SD danificado. Poderá ser necessário reformatá-lo."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"Cartão SD removido de forma inesperada"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Desmonte o cartão SD antes de retirá-lo para evitar a perda de dados."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"É seguro retirar o cartão SD"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Pode remover o cartão SD com segurança."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Cartão SD removido"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"Cartão SD removido. Insira um novo cartão."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Nenhuma actividade correspondente encontrada"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"actualizar estatísticas de utilização de componentes"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Permite a modificação de estatísticas de utilização de componentes recolhidas. Não se destina a utilização por aplicações normais."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Executar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Marcar número"\n"utilizando <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Criar contacto"\n"utilizando <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"verificado"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"não verificado"</string>
</resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index a241e36cfddb..a4081d2b742d 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;sem título&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Nenhum número de telefone)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Bloqueio de chamadas"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Alteração da senha"</string>
<string name="PinMmi" msgid="3113117780361190304">"Alteração do PIN"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Chamando número atual"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Chamando número restrito"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Chamada com três participantes"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Rejeição das chamadas indesejadas"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Chamando número de entrega"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Não perturbe"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"O ID do chamador assume o padrão de restrito. Próxima chamada: Restrita"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"O ID do chamador assume o padrão de restrito. Próxima chamada: Não restrita"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"O ID do chamador assume o padrão de não restrito. Próxima chamada: Restrita"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Sincronizar"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Pacote"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Indicador de roaming ativado"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Indicador de roaming desativado"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Indicador de roaming piscando"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Fora da vizinhança"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Ao ar livre"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Roaming - Sistema recomendado"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming - Sistema disponível"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming - Parceiro do Alliance"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming - Parceiro do Google Premium"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming - Funcionalidade de serviço completo"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming - Funcionalidade de serviço parcial"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Banner de roaming ativado"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Banner de roaming desativado"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Pesquisando serviço"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não encaminhado"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> após <xliff:g id="TIME_DELAY">{2}</xliff:g> segundos"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não encaminhado"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Não encaminhado"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Código de recurso concluído."</string>
+ <string name="fcError" msgid="3327560126588500777">"Problema de conexão ou código de recurso inválido."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
<string name="httpError" msgid="2567300624552921790">"A página da web contém um erro."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Não foi possível encontrar o URL."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Acesso de nível inferior e controle do sistema."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Ferramentas de desenvolvimento"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Recursos necessários apenas para desenvolvedores de aplicativo."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Armazenamento"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Acessar o cartão SD."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"desativar ou modificar a barra de status"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Permite que o aplicativo desative a barra de status ou adicione e remova ícones do sistema."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"expandir/recolher barra de status"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Permite que um aplicativo force o fechamento de qualquer atividade que esteja em primeiro plano. Aplicativos normais não devem precisar disso em momento algum."</string>
<string name="permlab_dump" msgid="1681799862438954752">"recuperar o estado interno do sistema"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Permite que um aplicativo recupere o estado interno do sistema. Aplicativos maliciosos podem recuperar uma grande variedade de informações privadas e de segurança que normalmente não precisariam."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"desligamento parcial"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Coloca o gerenciador de atividades em um estado de desligamento. Não executa o desligamento completo."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"evitar trocas de aplicativo"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Impede que o usuário passe para outro aplicativo."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"monitorar e controlar toda inicialização de aplicativo"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Permite que um aplicativo monitore e controle a maneira como o sistema inicia as atividades. Aplicativos maliciosos podem comprometer todo o sistema. Essa permissão é necessária apenas para desenvolvimento, nunca para uso normal do telefone."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"enviar transmissão removida do pacote"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Permite que um aplicativo controle se as atividades são sempre concluídas assim que vão para o segundo plano. Aplicativos normais não precisam disso em momento algum."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"modificar estatísticas da bateria"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Permite a modificação das estatísticas de bateria coletadas. Não deve ser usado por aplicativos normais."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"controlar backup e restauração do sistema"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Permite que o aplicativo controle o mecanismo de backup e restauração de sistemas. Não deve ser usado por aplicativos normais."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"exibir janelas não autorizadas"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Permite a criação de janelas destinadas ao uso pela interface de usuário do sistema interno. Não deve ser usado por aplicativos normais."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"exibir alertas de nível do sistema"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Cria fontes de locais fictícios para teste. Aplicativos maliciosos podem usar isso para substituir o local e/ou o status retornado pelas fontes de locais reais como GPS ou provedores de rede."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"acessar comandos extras do provedor de localização"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Acessa comandos extras do provedor de localização. Aplicativos maliciosos podem usar isso para interferir na operação do GPS ou de outras fontes de localização."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"autorização para instalar um provedor de localização"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Cria fontes de locais fictícios para teste. Aplicativos maliciosos podem usar isso para substituir o local e/ou o status retornado pelas fontes de locais reais como GPS ou provedores de rede ou para monitorar e informar sua localização para uma fonte externa."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"Localização precisa (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Acessa fontes de localização precisa como o GPS (Global Positioning System) no telefone, onde disponível. Aplicativos maliciosos podem usar isso para determinar onde você está e podem consumir energia adicional da bateria."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"local aproximado (com base na rede)"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Permite que o aplicativo informe ao sistema quais widgets podem ser usados por quais aplicativos. Com essa permissão, os aplicativos podem conceder acesso aos dados pessoais a outros aplicativos. Não deve ser usado por aplicativos normais."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"modificar estado do telefone"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Permite que o aplicativo controle os recursos de telefone do dispositivo. Um aplicativo com essa permissão pode alternar redes, ligar e desligar o rádio do telefone e outras ações parecidas sem notificá-lo."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"ler estado e identidade do telefone"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Permite que o aplicativo acesse os recursos de telefone do aparelho. Um aplicativo com essa autorização pode determinar o número e o número de série desse telefone, se uma chamada está ativa, o número ao qual a chamada está conectada e outras informações parecidas."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"impedir modo de inatividade do telefone"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Permite que um aplicativo impeça o telefone de entrar no modo de inatividade."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"ligar ou desligar o telefone"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Permite que um aplicativo veja as informações sobre o estado de Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"alterar o estado de Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Permite que um aplicativo se conecte e desconecte dos pontos de acesso Wi-Fi e faça alterações nas redes Wi-Fi configuradas."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"permitir recebimento de multicast Wi-Fi"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Permite que um aplicativo receba pacotes não endereçados diretamente para o seu aparelho. Isso pode ser útil ao detectar os serviços oferecidos nas proximidades. Ele consome mais energia do que o modo não-multicast."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"administração de Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Permite que um aplicativo configure o telefone Bluetooth local, descubra e pareie com dispositivos remotos."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"criar conexões Bluetooth"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Permite que um aplicativo leia quaisquer palavras, nomes e frases particulares armazenados pelo usuário no dicionário do usuário."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"gravar no dicionário definido pelo usuário"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Permite que um aplicativo grave novas palavras no dicionário do usuário."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"modificar/excluir conteúdo do cartão SD"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Permite que um aplicativo grave no cartão SD."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Página inicial"</item>
<item msgid="869923650527136615">"Celular"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Correto!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Tente novamente"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Carregando (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Carregado."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Conecte o seu carregador."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Sem cartão SIM."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Não há um cartão SIM no telefone."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Nome de usuário ou senha inválida."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em andamento"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Conecte o carregador"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"A bateria está ficando baixa:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"menos de <xliff:g id="NUMBER">%d%%</xliff:g> restantes."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Por quê?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Falha no teste de fábrica"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"A ação FACTORY_TEST é suportada apenas para pacotes instalados em /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Nenhum pacote que forneça a ação FACTORY_TEST foi encontrado."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Deseja sair desta página?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Selecione OK para continuar ou Cancelar para permanecer na página atual."</string>
<string name="save_password_label" msgid="6860261758665825069">"Confirmar"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"ler histórico e favoritos do Navegador"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Permite que o aplicativo leia todos os URLs visitados pelo Navegador e todos os favoritos do Navegador."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"gravar histórico e favoritos do Navegador"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Permite que um aplicativo modifique o histórico ou os favoritos do Navegador armazenados no seu telefone. Aplicativos maliciosos podem usar isso para apagar ou modificar os dados do seu Navegador."</string>
<string name="save_password_message" msgid="767344687139195790">"Deseja que o navegador lembre desta senha?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Agora não"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Lembrar"</string>
@@ -614,7 +568,7 @@
<string name="weeks" msgid="6509623834583944518">"semanas"</string>
<string name="year" msgid="4001118221013892076">"ano"</string>
<string name="years" msgid="6881577717993213522">"anos"</string>
- <string name="every_weekday" msgid="8777593878457748503">"Todos os dias da semana (de segunda a sexta)"</string>
+ <string name="every_weekday" msgid="8777593878457748503">"De segunda a sexta-feira"</string>
<string name="daily" msgid="5738949095624133403">"Diariamente"</string>
<string name="weekly" msgid="983428358394268344">"Semanalmente na <xliff:g id="DAY">%s</xliff:g>"</string>
<string name="monthly" msgid="2667202947170988834">"Mensalmente"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"O aplicativo <xliff:g id="APPLICATION">%1$s</xliff:g> (no processo <xliff:g id="PROCESS">%2$s</xliff:g>) não está respondendo."</string>
<string name="anr_process" msgid="1246866008169975783">"O processo <xliff:g id="PROCESS">%1$s</xliff:g> não está respondendo."</string>
<string name="force_close" msgid="3653416315450806396">"Forçar fechamento"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Informar"</string>
<string name="wait" msgid="7147118217226317732">"Aguardar"</string>
<string name="debug" msgid="9103374629678531849">"Depurar"</string>
<string name="sendText" msgid="5132506121645618310">"Selecione uma ação para o texto"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Formatar cartão SD"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Tem certeza de que deseja formatar o cartão SD? Todos os dados no seu cartão serão perdidos."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatar"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuração USB conectada"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Um computador está conectado ao seu telefone."</string>
<string name="select_input_method" msgid="2086499663193509436">"Selecionar método de entrada"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"candidatos"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Preparando o cartão SD"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Procurando erros."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Cartão SD em branco"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"Cartão SD vazio ou com sistema de arquivos incompatível."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Cartão SD danificado"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"O cartão SD está danificado. Talvez seja necessário reformatá-lo."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"Cartão SD removido inesperadamente."</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Desmonte o cartão SD antes da remoção para evitar a perda de dados."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"O cartão SD já pode ser removido com segurança."</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Você pode remover o cartão SD com segurança."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Cartão SD removido"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"Cartão SD removido. Insira um novo."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Nenhum atividade correspondente foi encontrada"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"atualizar estatísticas de uso do componente"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Permite a modificação das estatísticas de uso do componente coletadas. Não deve ser usado por aplicativos normais."</string>
@@ -753,13 +699,11 @@
<string name="ime_action_go" msgid="8320845651737369027">"Ir"</string>
<string name="ime_action_search" msgid="658110271822807811">"Pesquisar"</string>
<string name="ime_action_send" msgid="2316166556349314424">"Enviar"</string>
- <string name="ime_action_next" msgid="3138843904009813834">"Próximo"</string>
+ <string name="ime_action_next" msgid="3138843904009813834">"Avançar"</string>
<string name="ime_action_done" msgid="8971516117910934605">"Concluído"</string>
<string name="ime_action_default" msgid="2840921885558045721">"Executar"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Discar número"\n"usando <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Criar contato "\n"usando <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"selecionado"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"não selecionado"</string>
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 861354004a80..4f6329cc9b6d 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"ГБ"</string>
<string name="terabyteShort" msgid="231613018159186962">"TБ"</string>
<string name="petabyteShort" msgid="5637816680144990219">"ПБ"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;без названия&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Нет номера телефона)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Запрет вызовов"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Смена пароля"</string>
<string name="PinMmi" msgid="3113117780361190304">"Смена PIN"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Вызывающий номер присутствует"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Вызывающий номер запрещен"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Вызов с участием трех абонентов"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Отклонение нежелательных звонков"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Доставка номера вызывающего абонента"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Не беспокоить"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Идентификация абонента по умолчанию запрещена. След. вызов: запрещена"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Идентификация абонента по умолчанию запрещена. След. вызов: разрешена"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Идентификация абонента по умолчанию не запрещена. След. вызов: запрещена"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Синхр."</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Пакет"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Индикатор роуминга включен"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Индикатор роуминга отключен"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Индикатор роуминга мигает"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"За пределами домашней сети"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"На улице"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Роуминг – предпочтительная система"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Роуминг – доступная система"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Роуминг – ассоциированный партнер"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Роуминг – основной партнер"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Роуминг – полная функциональность службы"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Роуминг – частичная функциональность службы"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Баннер роуминга включен"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Баннер роуминга выключен"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Поиск службы"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: не переадресовано"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> через <xliff:g id="TIME_DELAY">{2}</xliff:g> с."</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Не переадресовано"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Не переадресовано"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Код функции выполнен."</string>
+ <string name="fcError" msgid="3327560126588500777">"Неполадки подключения или неверный код функции."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"ОК"</string>
<string name="httpError" msgid="2567300624552921790">"Ошибка на веб-странице."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Не удалось найти URL."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Доступ нижнего уровня и управление системой."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Инструменты разработки"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Функции, необходимые только разработчикам приложений."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Память"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Доступ к SD-карте."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"отключать или изменять строку состояния"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Позволяет приложению отключать строку состояния или добавлять/удалять системные значки."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"разворачивать/сворачивать строку состояния"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Позволяет приложению принудительно закрыть или вернуть в исходное состояние процессы, выполняемые в активном режиме. Не требуется для обычных приложений."</string>
<string name="permlab_dump" msgid="1681799862438954752">"извлекать данные о внутреннем состоянии системы"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Позволяет приложению извлекать внутренние сведения о состоянии системы. Вредоносные приложения смогут извлечь разнообразные личные и защищенные сведения, в которых обычно нет необходимости."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"частичное завершение работы"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Завершает работу диспетчера активности. Не выполняет полное завершение работы."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"запретить переключение приложений"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Запрещает пользователям переключаться между приложениями."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"отслеживать и управлять запуском всех приложений"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Позволяет приложению отслеживать и управлять способом подключения системы. Вредоносные приложения могут разгласить конфиденциальную информацию о системе. Это разрешение необходимо только при разработке, но не при обычной работе с телефоном."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"отправлять рассылку об удалении пакета"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Позволяет приложению контролировать, были ли действия завершены сразу же после их перехода в фоновый режим. Не требуется для обычных приложений."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"изменять статистику батареи"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Позволяет изменять собранную статистику батареи. Не предназначено для использования обычными приложениями."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"управление резервным копированием и восстановлением системы"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Разрешает приложению контролировать механизмы резервного копирования и восстановления системы. Не используется обычными приложениями."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"показывать неавторизованные окна"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Разрешает создание окон, предназначенных для использования внутренним пользовательским интерфейсом системы. Не предназначено для использования обычными приложениями."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"показывать оповещения системного уровня"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Создавать копии источников данных о местоположении для проверки. Вредоносные приложения могут использовать эту возможность для перезаписи места и/или состояния, возвращаемого действительными источниками данных о местоположении, такими как GPS или операторы связи."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"получать доступ к дополнительным командам источника данных о местоположении"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Получать доступ к дополнительным командам поставщика данных о местоположении. Вредоносные приложения могут использовать эту возможность для вмешательства в работу GPS или других источников места."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"разрешение на установку поставщика местоположения"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Создайте фиктивные источники местоположения для тестирования. Вредоносное ПО может использовать их для переопределения местоположения и/или статуса, возвращаемого действительными источниками местоположения, такими как GPS или сетевые провайдеры, а также отслеживать ваше положение и передавать внешним источникам."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"точное местоположение (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Получать доступ к источникам точного местоположения, таким как GPS, если возможно. Вредоносные приложения могут использовать это разрешение для определения вашего местоположения и расходовать ресурс батареи."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"отслеживать местоположение по сигналам сети"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Позволяет приложению сообщить системе, какие приложения могут использовать какие виджеты. Это разрешение позволяет приложениям предоставлять другим приложениям доступ к личной информации. Не предназначено для использования обычными приложениями."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"изменять состояние телефона"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Позволяет приложению управлять функциями телефона в устройстве. Приложение, обладающее этим разрешением, может переключать сети, включать и выключать радио на телефоне и выполнять другие подобные действия без соответствующего уведомления."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"считывать состояние и идентификаторы телефона"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Разрешает приложению получать доступ к функциям телефона на устройстве. Приложение с таким разрешением может определить номер телефона и серийный номер устройства, наличие активного вызова, номер вызываемого/вызывающего абонента и т.п."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"предотвратить переключение телефона в спящий режим"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Позволяет приложению запретить переход телефона в спящий режим"</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"включать и выключать питание телефона"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Позволяет приложению просматривать сведения о состоянии Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"изменять состояние Wi-Fi"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Позволяет приложению подключаться к точкам доступа Wi-Fi и отключаться от них, а также вносить изменения в конфигурацию сетей Wi-Fi."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"разрешить принимать многоадресный сигнал Wi-Fi"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Разрешает приложению получать пакеты, не адресованные напрямую вашему устройству. Это может быть полезно при поиске находящихся рядом служб. Расход заряда батареи при этом выше, чем при одноадресной передаче."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"управление Bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Позволяет приложению настраивать локальный телефон Bluetooth, обнаруживать и выполнять сопряжение удаленных устройств."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"создавать подключения Bluetooth"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Позволяет приложению считывать любые слова, имена и фразы личного пользования, которые могут храниться в пользовательском словаре."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"записывать в пользовательский словарь"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Позволяет приложению записывать новые слова в пользовательский словарь."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"изменять/удалять содержание SD-карты"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Разрешает приложению запись на SD-карту"</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Домашний"</item>
<item msgid="869923650527136615">"Мобильный"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Повторите попытку"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Идет зарядка (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Заряжена."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Подключите зарядное устройство."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Нет SIM-карты."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"SIM-карта не установлена."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Неверное имя пользователя или пароль."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Очистить"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Нет уведомлений"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Текущие"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Уведомления"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Подключите зарядное устройство"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Батарея разряжена:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"осталось менее <xliff:g id="NUMBER">%d%%</xliff:g>"</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Почему?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Не удалось провести стандартный тест"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"Действие FACTORY_TEST поддерживается только для пакетов, установленных в /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Пакет, обеспечивающий действие FACTORY_TEST, не найден."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Перейти с этой страницы?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Нажмите \"ОК\", чтобы продолжить, или \"Отмена\", чтобы остаться на текущей странице."</string>
<string name="save_password_label" msgid="6860261758665825069">"Подтвердите"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"считывать историю и закладки браузера"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Разрешает приложению считывать все URL, посещенные браузером, и все его закладки."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"записывать историю и закладки браузера"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Разрешает приложению изменять историю и закладки браузера, сохраненные в вашем телефоне. Вредоносное ПО может пользоваться этим, чтобы стирать или изменять данные вашего браузера."</string>
<string name="save_password_message" msgid="767344687139195790">"Вы хотите, чтобы браузер запомнил этот пароль?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Не сейчас"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Запомнить"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"Приложение <xliff:g id="APPLICATION">%1$s</xliff:g> (в процессе <xliff:g id="PROCESS">%2$s</xliff:g>) не отвечает."</string>
<string name="anr_process" msgid="1246866008169975783">"Процесс <xliff:g id="PROCESS">%1$s</xliff:g> не отвечает."</string>
<string name="force_close" msgid="3653416315450806396">"Принудительное закрытие"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Отчет"</string>
<string name="wait" msgid="7147118217226317732">"Подождите"</string>
<string name="debug" msgid="9103374629678531849">"Выполнить отладку"</string>
<string name="sendText" msgid="5132506121645618310">"Выберите действие для текста"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Форматировать карту SD"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Отформатировать карту SD? Все данные, находящиеся на карте, будут уничтожены."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Формат"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"Отладка USB подключена"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Компьютер подключен к телефону."</string>
<string name="select_input_method" msgid="2086499663193509436">"Выберите способ ввода"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"варианты"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Подготовка карты SD"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Проверка ошибок."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Пустая карта SD"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD-карта пуста или использует неподдерживаемую файловую систему"</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Поврежденная карта SD"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD-карта повреждена. Попробуйте отформатировать ее."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"Карта SD неожиданно извлечена"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Перед извлечением карты SD отключите ее во избежание потери данных."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"Безопасное удаление карты SD"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Можно безопасно извлечь SD-карту."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Отсутствует карта SD"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD-карта извлечена. Вставьте новую карту."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Подходящих действий не найдено"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"обновлять статистику использования компонентов"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Позволяет изменять собранную статистику использования компонентов. Не предназначено для использования обычными приложениями."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Выполнить"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Набрать номер"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Создать контакт"\n"с номером <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"отмечено"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"не проверено"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 611bfaa11f7a..7e753e4084fe 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;utan titel&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Inget telefonnummer)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Samtalsspärr"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Byt lösenord"</string>
<string name="PinMmi" msgid="3113117780361190304">"Byt PIN-kod"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Nummer för inkommande samtal tillgängligt"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Begränsad åtkomst till nummer för inkommande samtal"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Trepartssamtal"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"Avvisande av oönskade irriterande samtal"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Leverans av nummer för inkommande samtal"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Stör ej"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Nummerpresentatören är begränsad som standard. Nästa samtal: Begränsad"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Nummerpresentatörens standardinställning är begränsad. Nästa samtal: Inte begränsad"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Nummerpresentatörens standardinställning är inte begränsad. Nästa samtal: Begränsad"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Synkronisera"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Paket"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Indikator för roaming på"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Indikator för roaming av"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Blinkande roamingindikator"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Utanför kvarteret"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Utanför huset"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Roaming – föredraget system"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Roaming - tillgängligt system"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Roaming – alllianspartner"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Roaming – premiumpartner"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Roaming – full funktionalitet för tjänst"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Roaming – delvis funktionalitet för tjänst"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Roamingbanner på"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Roamingbanner av"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Söker efter tjänst"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Vidarebefordras inte"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g><xliff:g id="DIALING_NUMBER">{1}</xliff:g> efter <xliff:g id="TIME_DELAY">{2}</xliff:g> sekunder"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>. Vidarebefordras inte"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Vidarebefordras inte"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Funktionskoden är fullständig."</string>
+ <string name="fcError" msgid="3327560126588500777">"Anslutningsproblem eller ogiltig funktionskod."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
<string name="httpError" msgid="2567300624552921790">"Webbsidan innehåller ett fel."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"Webbadressen kunde inte hittas."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Åtkomst och kontroll av systemet på lägre nivå."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Utvecklingsverktyg"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Funktioner som endast behövs för programutvecklare."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Lagring"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"Få åtkomst till SD-kortet."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"inaktivera eller ändra statusfält"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Tillåter att programmet inaktiverar statusfältet eller lägger till och tar bort systemikoner."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"expandera/komprimera statusfält"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Tillåter att ett program tvingar en aktivitet som finns i förgrunden att avsluta och gå tillbaka. Behövs inte för vanliga program."</string>
<string name="permlab_dump" msgid="1681799862438954752">"hämta systemets interna status"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Tillåter att ett program hämtar systemets interna status. Skadliga program kan hämta privat och skyddad information som de normalt aldrig ska behöva."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"avsluta delvis"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Sätter aktivitetshanteraren i avstängningsläge. Utför inte en fullständig avstängning."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"förhindrar programbyten"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Hindrar att användaren byter till ett annat program."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"övervaka och styra alla program som öppnas"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Tillåter att ett program övervakar och styr hur systemet startar aktiviteter. Skadliga program kan bryta systemet helt. Den här behörigheten behövs bara för programmering, aldrig för vanlig telefonanvändning."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"skicka meddelande om borttaget paket"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Tillåter att ett program bestämmer om aktiviteter alltid är slutförda när de hamnar i bakgrunden. Ska inte behövas för vanliga program."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"ändra batteristatistik"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Tillåter att samlad batteristatistik ändras. Används inte av vanliga program."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"kontrollera säkerhetskopiering och återställning av systemet"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Tillåter att programmet styr över systemets mekanism för säkerhetskopiering och återställning. Används inte av vanliga program."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"visa otillåtna fönster"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Tillåter att fönster skapas och används av det interna systemgränssnittet. Används inte av vanliga program."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"visa varningar på systemnivå"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Skapa skenplatser för att testa. Skadliga program kan använda detta för att åsidosätta platsen och/eller statusen som returneras av riktiga platser, till exempel GPS- eller nätverksleverantörer."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"få åtkomst till extra kommandon för platsleverantör"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Få åtkomst till extra kommandon för platsleverantörer. Skadliga program kan använda detta för att störa hur GPS eller andra platskällor fungerar."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"behörighet att installera en platsleverantör"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Skapa skenplatser för att testa. Skadliga program kan använda detta för att åsidosätta platsen och/eller statusen som returneras av riktiga platser, till exempel GPS- eller nätverksleverantörer, eller övervaka och rapportera din plats till en extern källa."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"hitta plats (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Få åtkomst till detaljerade platskällor som Global Positioning System på telefonen, om det är tillgängligt. Skadliga program kan använda detta för att identifiera var du befinner dig, vilket drar mycket batteri."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"grov (nätverksbaserad) plats"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Tillåter att programmet instruerar systemet vilka widgetar som kan användas av vilket program. Med den här behörigheten kan åtkomst till personliga data beviljas andra program. Används inte av vanliga program."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"ändra telefonstatus"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Tillåter att programmet styr enhetens telefonfunktioner. Ett program med denna behörighet kan växla nätverk, aktivera och inaktivera telefonens radio och så vidare utan att ens meddela dig."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"läsa telefonstatus och identitet"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Tillåter att programmet kommer åt enhetens telefonfunktioner. Ett program som har den här behörigheten kan identifiera telefonens telefonnummer och serienummer, om ett samtal pågår, numret som samtalet är kopplat till och så vidare."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"förhindra att telefonen sätts i viloläge"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Tillåter att ett program förhindrar att telefonen går in i viloläge."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"sätta på eller stänga av telefonen"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Tillåter att ett program visar information om statusen för Wi-Fi."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"byta Wi-Fi-status"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Tillåter att ett program ansluter till och kopplar från Wi-Fi-åtkomstpunkter och gör ändringar i konfigurerade Wi-Fi-nätverk."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"tillåt Wi-Fi multicast-mottagning"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Tillåter att ett program tar emot paket som inte är adresserade direkt till din enhet. Detta är användbart om du vill upptäcka tillgängliga tjänster i närheten. Det drar mer batteri än om telefonen inte är i multicast-läge."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"administrera bluetooth"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Tillåter att ett program konfigurerar den lokala Bluetooth-telefonen samt upptäcker och parkopplar den med fjärranslutna enheter."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"skapa Bluetooth-anslutningar"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Tillåt att ett program läser alla privata ord, namn och fraser som användaren lagrar i sin ordlista."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"skriva till användardefinierad ordlista"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Tillåter att ett program skriver in nya ord i användarordlistan."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"ändra/ta bort innehåll på SD-kortet"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Tillåter att ett program skriver till SD-kortet."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Hem"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Korrekt!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Försök igen"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Laddar (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Laddad."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Anslut din laddare."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"Inget SIM-kort."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Inget SIM-kort i telefonen."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Ogiltigt användarnamn eller lösenord."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ta bort"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Inga aviseringar"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Pågående"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meddelanden"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Anslut laddaren"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Batteriet håller på att ta slut:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"Mindre än <xliff:g id="NUMBER">%d%%</xliff:g> återstår."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Varför?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Det gick fel vid fabrikstestet"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"Åtgärden FACTORY_TEST stöds endast för paket som har installerats i /system/app."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"Vi hittade inget paket som erbjuder åtgärden FACTORY_TEST."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Vill du lämna den här den här sidan?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Tryck på OK om du vill fortsätta eller på Avbryt om du vill vara kvar på den aktuella sidan."</string>
<string name="save_password_label" msgid="6860261758665825069">"Bekräfta"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"läsa webbläsarhistorik och bokmärken"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Tillåter att program läser alla webbadresser som webbläsaren har öppnat och alla webbläsarens bokmärken."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"skriva webbläsarhistorik och bokmärken"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Tillåter att ett program ändrar webbläsarhistoriken och bokmärkena i din telefon. Skadliga program kan använda detta för att ta bort eller ändra data i webbläsaren."</string>
<string name="save_password_message" msgid="767344687139195790">"Vill du att webbläsaren ska komma ihåg lösenordet?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Inte nu"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Kom ihåg"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"Programmet <xliff:g id="APPLICATION">%1$s</xliff:g> (i processen <xliff:g id="PROCESS">%2$s</xliff:g>) svarar inte."</string>
<string name="anr_process" msgid="1246866008169975783">"Processen <xliff:g id="PROCESS">%1$s</xliff:g> svarar inte."</string>
<string name="force_close" msgid="3653416315450806396">"Tvinga fram en stängning"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Rapportera"</string>
<string name="wait" msgid="7147118217226317732">"Vänta"</string>
<string name="debug" msgid="9103374629678531849">"Felsökning"</string>
<string name="sendText" msgid="5132506121645618310">"Välj en åtgärd för text"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"Formatera SD-kort"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"Vill du formatera SD-kortet? Alla data på ditt kort kommer att gå förlorade."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-felsökning ansluten"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"En dator är ansluten till din telefon."</string>
<string name="select_input_method" msgid="2086499663193509436">"Välj indatametod"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"kandidater"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"Förbereder SD-kort"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Söker efter fel."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Tomt SD-kort"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD-kortet är tomt eller så har det ett filsystem som inte stöds."</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Skadat SD-kort"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD-kortet är skadat. Du måste eventuellt formatera om det."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"SD-kort togs oväntat bort"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Demontera SD-kort innan borttagning för att undvika dataförlust."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"Säkert att ta bort SD-kort"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"Det är nu säkert att ta bort SD-kortet."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"Borttaget SD-kort"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD-kortet har tagits bort. Sätt i ett nytt."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Inga matchande aktiviteter hittades"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"uppdatera statistik över användning av komponenter"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Tillåter att samlad komponentstatistik ändras. Används inte av vanliga program."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Utför"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Slå nummer "\n"med <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"Skapa kontakt"\n"med <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"markerad"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"inte markerad"</string>
</resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index a8625fd21954..44c1bfe1d15b 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;başlıksız&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"…"</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(Telefon numarası yok)"</string>
@@ -50,18 +49,12 @@
<string name="BaMmi" msgid="455193067926770581">"Çağrı engelleme"</string>
<string name="PwdMmi" msgid="7043715687905254199">"Şifre değişikliği"</string>
<string name="PinMmi" msgid="3113117780361190304">"PIN kodu değişikliği"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
+ <string name="CnipMmi" msgid="3110534680557857162">"Arayan numara mevcut"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"Arayan numara engellendi"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"Üç yönlü arama"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"İstenmeyen sinir bozucu aramaların reddi"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"Aranan numara iletimi"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"Rahatsız etmeyin"</string>
<string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Arayan kimliği varsayılanları kısıtlanmıştır. Sonraki çağrı: Kısıtlanmış"</string>
<string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Arayan kimliği varsayılanları kısıtlanmıştır. Sonraki çağrı: Kısıtlanmamış"</string>
<string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Arayan kimliği varsayılanları kısıtlanmamıştır. Sonraki çağrı: Kısıtlanmış"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"Senk."</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"Paket"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"Dolaşım Göstergesi Açık"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"Dolaşım Göstergesi Kapalı"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"Dolaşım Göstergesi Yanıp Sönüyor"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"Semt Dışında"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"Bina Dışında"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"Dolaşım - Tercih Edilen Sistem"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"Dolaşım - Kullanılabilir Sistem"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"Dolaşım - İş Ortağı"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"Dolaşım - Özel Ortak"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"Dolaşım - Tam Hizmet İşlevselliği"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"Dolaşım - Kısmi Hizmet İşlevselliği"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"Dolaşım Başlığı Açık"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"Dolaşım Başlığı Kapalı"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"Hizmet Aranıyor"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönlendirilmedi"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="TIME_DELAY">{2}</xliff:g> saniye sonra <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönlendirilmedi"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönlendirilmedi"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"Özellik kodu tamamlandı."</string>
+ <string name="fcError" msgid="3327560126588500777">"Bağlantı sorunu veya geçersiz özellik kodu."</string>
<string name="httpErrorOk" msgid="1191919378083472204">"Tamam"</string>
<string name="httpError" msgid="2567300624552921790">"Web sayfası hata içeriyor."</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"URL bulunamadı."</string>
@@ -179,10 +156,8 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Sisteme alt düzey erişim ve denetimi."</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Geliştirme araçları"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"Yalnızca uygulama geliştiriciler için gerekli özellikler."</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"Depolama"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"SD karta erişin."</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"durum çubuğunu devre dışı bırak veya değiştir"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"Uygulamanın durum çubuğunu devre dışı bırakmasına veya sistem simgeleri ekleyip kaldırmasına izin verir."</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"durum çubuğunu genişlet/daralt"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"Uygulamaların, ön plandaki herhangi bir etkinliği kapanmaya ve arka plana geçmeye zorlamasına izin verir. Normal uygulamalarda hiçbir zaman gerekmemelidir."</string>
<string name="permlab_dump" msgid="1681799862438954752">"sistemin dahili durumunu al"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"Uygulamanın dahili sistem durumunu almasına izin verir. Kötü amaçlı uygulamalar, normalde gerekli olmaması gereken çok çeşitli özel ve koruma altındaki bilgiyi alabilir."</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"kısmi kapatma"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"Eylem yöneticisini kapalı duruma getirir. Tam kapatma işlemi gerçekleştirmez."</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"uygulama değişimlerini engelle"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"Kullanıcının başka bir uygulamaya geçiş yapmasını engeller."</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"tüm uygulama başlatma işlemlerini izle ve denetle"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"Uygulamaların, sistemin etkinlikleri nasıl başlattığını izlemesine ve denetlemesine izin verir. Kötü amaçlı uygulamalar sistemin güvenliğini tamamen tehlikeye atabilir. Bu izin yalnızca program geliştirme amacıyla gereklidir, normal telefon kullanımı için gerekli değildir."</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"paket ile kaldırılan yayını gönder"</string>
@@ -237,10 +208,8 @@
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"Uygulamaların, etkinliklerin arka planda daima tamamlanıp tamamlanmadığını denetlemesine izin verir. Normal uygulamalar için hiçbir zaman gerekli değildir."</string>
<string name="permlab_batteryStats" msgid="7863923071360031652">"pil istatistiklerini değiştir"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"Toplanan pil istatistiklerinin değiştirilmesine izin verir. Normal uygulamalarda kullanılmamalıdır."</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"sistem yedeğini kontrol et ve geri yükle"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"Uygulamaya sistem yedeklemesini denetleme ve mekanizmayı geri yükleme izni verir. Normal uygulamalar tarafından kullanım için değildir."</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"yetkisiz pencereleri görüntüle"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"Dahili sistem kullanıcı arayüzü tarafından kullanılmak üzere tasarlanmış pencerelerin oluşturulmasına izin verir. Normal uygulamalarda kullanılmaz."</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"sistem düzeyi uyarıları görüntüle"</string>
@@ -307,10 +276,8 @@
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"Test amacıyla sahte konum kaynakları oluşturur. Kötü amaçlı uygulamalar bu işlevi GPS veya Ağ Hizmeti sağlayıcılar gibi gerçek kaynaklardan gelen konum ve/veya durum bilgilerini geçersiz kılmak için kullanabilir."</string>
<string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"ek konum sağlayıcı komutlarına eriş"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"Ek konum sağlayıcı komutlarına erişin. Kötü amaçlı uygulamalar bu işlevi GPS veya diğer konum kaynaklarının işleyişine müdahale etmek için kullanabilir."</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"konum sağlayıcı yükleme izni"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"Test için sahte konum kaynakları oluşturun. Kötü amaçlı uygulamalar bunu GPS veya Ağ sağlayıcılarının gerçek konum kaynakları tarafından gönderilen konum ve/veya durumu geçersiz kılmak veya konumunuzu izleyerek bir dış kaynağa bildirmek için kullanabilir."</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"kesinliği yüksek (GPS) konum"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"Bulunduğu yerlerde telefondan Küresel Konumlandırma Sistemi gibi hassas konum bulma kaynaklarına erişin. Kötü amaçlı uygulamalar bu işlevi bulunduğunuz yeri belirlemek için kullanabilir ve ek pil gücü tüketebilir."</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"kesinliği düşük (ağ tabanlı) konum"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"Uygulamaların sisteme hangi uygulamalar tarafından hangi widget\'ların kullanılabileceğini söylemesine izin verir. Bu izin sayesinde uygulamalar, başka uygulamalara kişisel verilere erişim verebilir. Normal uygulamalarda kullanılmaz."</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"telefon durumunu değiştir"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"Uygulamaların cihazın telefon özelliklerini kullanmasına izin verir. Bu izne sahip bir uygulama, size bildirmeden ağ değiştirebilir ve telefon radyosunu kapatıp açabilir."</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"telefon durumunu ve kimliğini oku"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"Uygulamaların cihazın telefon özelliklerine erişmesine izin verir. Bu izne sahip bir uygulama telefonun telefon numarasını, bu telefonun seri numarasını, o anda bir çağrı sürmekte olup olmadığını, çağrının bağlanmış olduğu numarayı ve benzerini belirleyebilir."</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"telefonunun uykuya geçmesini önle"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"Uygulamaların telefonun uykuya geçmesini önlemesine izin verir."</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"telefonu aç veya kapat"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"Uygulamaların, kablosuz bağlantının durumu ile ilgili bilgileri görüntülemesine izin verir."</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"Kablosuz durumunu değiştir"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"Uygulamaların kablosuz erişim noktalarına bağlanıp bunlarla bağlantısını kesmesine ve yapılandırılmış kablosuz ağlarda değişiklikler yapmasına izin verir."</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"Kablosuz Çoklu Yayın alımına izin ver"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"Bir uygulamaya doğrudan cihazınıza yönlendirilmemiş paketleri alma izni verir. Yakın yerlerde sunulan hizmetlerin keşfedilmesi sırasında faydalı olabilir. Birden fazla noktaya yayın yapmayan moda göre daha fazla güç harcar."</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"bluetooth yönetimi"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"Uygulamaların yerel Bluetooth telefonunu yapılandırmasına ve uzak cihazları keşfedip bunlar ile eşleşmesine izin verir."</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"Bluetooth bağlantıları oluştur"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Kullanıcının kullanıcı sözlüğünde depolamış olabileceği kişisel kelimeleri, adları ve kelime öbeklerini uygulamaların okumasına izin verir."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"kullanıcı tanımlı sözlüğe yaz"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Uygulamaların kullanıcı sözlüğüne yeni kelimeler yazmasına izin verir."</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"SD kart içeriklerini değiştir/sil"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"Bir uygulamaya SD karta yazma izni verir."</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"Ev"</item>
<item msgid="869923650527136615">"Mobil"</item>
@@ -470,8 +431,7 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Doğru!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"Üzgünüz, lütfen yeniden deneyin"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"Şarj oluyor (<xliff:g id="PERCENT">%%</xliff:g><xliff:g id="NUMBER">%d</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"Şarj oldu."</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Şarj cihazınızı bağlayın."</string>
<string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"SIM kart yok."</string>
<string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"Telefonda SIM kart yok."</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Geçersiz kullanıcı adı veya şifre."</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="HOUR">%-l</xliff:g> <xliff:g id="AMPM">%P</xliff:g>"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="HOUR">%-l</xliff:g> <xliff:g id="AMPM">%p</xliff:g>"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Temizle"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Bildirim yok"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Sürüyor"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"Bildirimler"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"Lütfen şarj cihazını takın"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"Pil tükeniyor:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"<xliff:g id="NUMBER">%d%%</xliff:g> adetten daha az kaldı."</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"Neden?"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"Fabrika testi yapılamadı"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"FACTORY_TEST işlemi yalnızca /system/app dizinine yüklenmiş paketler için desteklenir."</string>
<string name="factorytest_no_action" msgid="872991874799998561">"FACTORY_TEST işlemini sağlayan hiçbir paket bulunamadı."</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"Bu sayfadan ayrılıyor musunuz?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"Devam etmek için Tamam\'ı, sayfada kalmak için İptal\'i tıklatın."</string>
<string name="save_password_label" msgid="6860261758665825069">"Onayla"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"Tarayıcı geçmişini ve favorileri oku"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"Uygulamaya Tarayıcının ziyaret etmiş olduğu tüm URL\'leri ve Tarayıcının tüm favorilerini okuma izni verir."</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"Tarayıcı geçmişini ve favorileri yaz"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"Uygulamaya telefonunuzda depolanan Tarayıcı geçmişini veya favorileri değiştirme izni verir. Kötü amaçlı uygulamalar bunu Tarayıcı verilerinizi silmek veya değiştirmek için kullanabilir."</string>
<string name="save_password_message" msgid="767344687139195790">"Tarayıcının bu şifreyi anımsamasını istiyor musunuz?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"Şimdi değil"</string>
<string name="save_password_remember" msgid="6491879678996749466">"Anımsa"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"<xliff:g id="APPLICATION">%1$s</xliff:g> uygulaması (<xliff:g id="PROCESS">%2$s</xliff:g> işleminde) yanıt vermiyor."</string>
<string name="anr_process" msgid="1246866008169975783">"<xliff:g id="PROCESS">%1$s</xliff:g> işlemi yanıt vermiyor."</string>
<string name="force_close" msgid="3653416315450806396">"Kapanmaya zorla"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"Rapor"</string>
<string name="wait" msgid="7147118217226317732">"Bekle"</string>
<string name="debug" msgid="9103374629678531849">"Hata ayıkla"</string>
<string name="sendText" msgid="5132506121645618310">"Metin için bir işlem seçin"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"SD kartı biçimlendir"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"SD kartı biçimlendirmek istediğinizden emin misiniz? Kartınızdaki tüm veriler yok olacak."</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"Biçimlendir"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"USB hata ayıklaması bağlandı"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"Telefonunuza bir bilgisayar bağlanmış."</string>
<string name="select_input_method" msgid="2086499663193509436">"Giriş Yöntemini Seç"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"adaylar"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"SD kart hazırlanıyor"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Hatalar denetleniyor."</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"Boş SD kart"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD kart boş veya desteklenmeyen dosya sistemi içeriyor"</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"Hasarlı SD kart"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD kart zarar gördü. Yeniden biçimlendirmeniz gerekebilir."</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"SD kart beklenmedik biçimde çıkarıldı"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"Veri kaybından kaçınmak için SD kartı çıkarmadan önce bağlantısını kesin."</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"SD kart güvenle çıkarılabilir"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"SD kartı güvenle kaldırabilirsiniz."</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"SD kart çıkarılmış"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD kart çıkarıldı. Yeni bir SD kart takın."</string>
<string name="activity_list_empty" msgid="4168820609403385789">"Eşleşen hiçbir etkinlik bulunamadı"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"bileşen kullanım istatistiklerini güncelle"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"Toplanmış bileşen istatistiklerinin değiştirilmesine izin verir. Normal uygulamalarda kullanılmamalıdır."</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"Çalıştır"</string>
<string name="dial_number_using" msgid="5789176425167573586">"Numarayı çevir:"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"<xliff:g id="NUMBER">%s</xliff:g>"\n" ile kişi oluştur"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"seçildi"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"seçilmedi"</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index c7eb522701fe..7ad817638f20 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -21,8 +21,7 @@
<string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
<string name="terabyteShort" msgid="231613018159186962">"TB"</string>
<string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
- <!-- no translation found for fileSizeSuffix (7670819340156489359) -->
- <skip />
+ <string name="fileSizeSuffix" msgid="7670819340156489359">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
<string name="untitled" msgid="6071602020171759109">"&lt;无标题&gt;"</string>
<string name="ellipsis" msgid="7899829516048813237">"..."</string>
<string name="emptyPhoneNumber" msgid="7694063042079676517">"(无电话号码)"</string>
@@ -30,9 +29,9 @@
<string name="defaultVoiceMailAlphaTag" msgid="2660020990097733077">"语音信箱"</string>
<string name="defaultMsisdnAlphaTag" msgid="2850889754919584674">"MSISDN1"</string>
<string name="mmiError" msgid="5154499457739052907">"出现连接问题或 MMI 码无效。"</string>
- <string name="serviceEnabled" msgid="8147278346414714315">"服务已启用。"</string>
+ <string name="serviceEnabled" msgid="8147278346414714315">"已启用服务。"</string>
<string name="serviceEnabledFor" msgid="6856228140453471041">"已针对以下内容启用了服务:"</string>
- <string name="serviceDisabled" msgid="1937553226592516411">"服务已被停用。"</string>
+ <string name="serviceDisabled" msgid="1937553226592516411">"已停用服务。"</string>
<string name="serviceRegistered" msgid="6275019082598102493">"注册成功。"</string>
<string name="serviceErased" msgid="1288584695297200972">"清除成功。"</string>
<string name="passwordIncorrect" msgid="7612208839450128715">"密码不正确。"</string>
@@ -43,31 +42,25 @@
<string name="invalidPin" msgid="3850018445187475377">"输入一个 4 至 8 位数的 PIN。"</string>
<string name="needPuk" msgid="919668385956251611">"您的 SIM 卡被 PUK 锁定。请输入 PUK 码进行解锁。"</string>
<string name="needPuk2" msgid="4526033371987193070">"输入 PUK2 以解锁 SIM 卡。"</string>
- <string name="ClipMmi" msgid="6952821216480289285">"来电显示"</string>
- <string name="ClirMmi" msgid="7784673673446833091">"外拨电话显示"</string>
+ <string name="ClipMmi" msgid="6952821216480289285">"来电者信息"</string>
+ <string name="ClirMmi" msgid="7784673673446833091">"外拨者信息"</string>
<string name="CfMmi" msgid="5123218989141573515">"呼叫转接"</string>
<string name="CwMmi" msgid="9129678056795016867">"呼叫等待"</string>
<string name="BaMmi" msgid="455193067926770581">"呼叫限制"</string>
<string name="PwdMmi" msgid="7043715687905254199">"密码更改"</string>
<string name="PinMmi" msgid="3113117780361190304">"PIN 码更改"</string>
- <!-- no translation found for CnipMmi (3110534680557857162) -->
- <skip />
- <!-- no translation found for CnirMmi (3062102121430548731) -->
- <skip />
- <!-- no translation found for ThreeWCMmi (9051047170321190368) -->
- <skip />
- <!-- no translation found for RuacMmi (7827887459138308886) -->
- <skip />
- <!-- no translation found for CndMmi (3116446237081575808) -->
- <skip />
- <!-- no translation found for DndMmi (1265478932418334331) -->
- <skip />
- <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"来电显示默认设置为受限制。下一个呼叫:受限制"</string>
- <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"来电显示默认设置为受限制。下一个呼叫:不受限制"</string>
- <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"来电显示默认设置为不受限制。下一个呼叫:受限制"</string>
- <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"来电显示默认设置为不受限制。下一个呼叫:不受限制"</string>
+ <string name="CnipMmi" msgid="3110534680557857162">"来电显示"</string>
+ <string name="CnirMmi" msgid="3062102121430548731">"来电显示受限制"</string>
+ <string name="ThreeWCMmi" msgid="9051047170321190368">"三方通话"</string>
+ <string name="RuacMmi" msgid="7827887459138308886">"拒绝不想接听的骚扰电话"</string>
+ <string name="CndMmi" msgid="3116446237081575808">"主叫号码传送"</string>
+ <string name="DndMmi" msgid="1265478932418334331">"请勿打扰"</string>
+ <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"来电者信息在默认情况下受限制。在下一次通话中:受限制"</string>
+ <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"来电者信息在默认情况受限制。在下一次通话中:不受限制"</string>
+ <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"来电者信息在默认情况下不受限制。在下一次通话中:受限制"</string>
+ <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"来电者信息在默认情况下不受限制。在下一次通话中:不受限制"</string>
<string name="serviceNotProvisioned" msgid="8614830180508686666">"未提供服务。"</string>
- <string name="CLIRPermanent" msgid="5460892159398802465">"无法更改来电显示设置。"</string>
+ <string name="CLIRPermanent" msgid="5460892159398802465">"无法更改来电者信息设置。"</string>
<string name="RestrictedChangedTitle" msgid="5592189398956187498">"访问受限情况已发生变化"</string>
<string name="RestrictedOnData" msgid="8653794784690065540">"数据服务已禁用。"</string>
<string name="RestrictedOnEmergency" msgid="6581163779072833665">"紧急服务已禁用。"</string>
@@ -81,43 +74,27 @@
<string name="serviceClassDataSync" msgid="7530000519646054776">"同步"</string>
<string name="serviceClassPacket" msgid="6991006557993423453">"封包"</string>
<string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
- <!-- no translation found for roamingText0 (7170335472198694945) -->
- <skip />
- <!-- no translation found for roamingText1 (5314861519752538922) -->
- <skip />
- <!-- no translation found for roamingText2 (8969929049081268115) -->
- <skip />
- <!-- no translation found for roamingText3 (5148255027043943317) -->
- <skip />
- <!-- no translation found for roamingText4 (8808456682550796530) -->
- <skip />
- <!-- no translation found for roamingText5 (7604063252850354350) -->
- <skip />
- <!-- no translation found for roamingText6 (2059440825782871513) -->
- <skip />
- <!-- no translation found for roamingText7 (7112078724097233605) -->
- <skip />
- <!-- no translation found for roamingText8 (5989569778604089291) -->
- <skip />
- <!-- no translation found for roamingText9 (7969296811355152491) -->
- <skip />
- <!-- no translation found for roamingText10 (3992906999815316417) -->
- <skip />
- <!-- no translation found for roamingText11 (4154476854426920970) -->
- <skip />
- <!-- no translation found for roamingText12 (1189071119992726320) -->
- <skip />
- <!-- no translation found for roamingTextSearching (8360141885972279963) -->
- <skip />
+ <string name="roamingText0" msgid="7170335472198694945">"启用漫游指示符"</string>
+ <string name="roamingText1" msgid="5314861519752538922">"禁用漫游指示符"</string>
+ <string name="roamingText2" msgid="8969929049081268115">"漫游指示符正在闪烁"</string>
+ <string name="roamingText3" msgid="5148255027043943317">"不在附近"</string>
+ <string name="roamingText4" msgid="8808456682550796530">"室外"</string>
+ <string name="roamingText5" msgid="7604063252850354350">"漫游 - 首选系统"</string>
+ <string name="roamingText6" msgid="2059440825782871513">"漫游 - 可用系统"</string>
+ <string name="roamingText7" msgid="7112078724097233605">"漫游 - 联盟合作伙伴"</string>
+ <string name="roamingText8" msgid="5989569778604089291">"漫游 - 高级合作伙伴"</string>
+ <string name="roamingText9" msgid="7969296811355152491">"漫游 - 全部服务功能"</string>
+ <string name="roamingText10" msgid="3992906999815316417">"漫游 - 服务功能不全"</string>
+ <string name="roamingText11" msgid="4154476854426920970">"启用漫游横幅"</string>
+ <string name="roamingText12" msgid="1189071119992726320">"禁用漫游横幅"</string>
+ <string name="roamingTextSearching" msgid="8360141885972279963">"正在搜索服务"</string>
<string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>:无法转接"</string>
<string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>:<xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>:<xliff:g id="TIME_DELAY">{2}</xliff:g> 秒后拨打 <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
<string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>:没有转接"</string>
<string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>:没有转接"</string>
- <!-- no translation found for fcComplete (3118848230966886575) -->
- <skip />
- <!-- no translation found for fcError (3327560126588500777) -->
- <skip />
+ <string name="fcComplete" msgid="3118848230966886575">"功能代码已拨完。"</string>
+ <string name="fcError" msgid="3327560126588500777">"出现连接问题或功能代码无效。"</string>
<string name="httpErrorOk" msgid="1191919378083472204">"确定"</string>
<string name="httpError" msgid="2567300624552921790">"网页包含错误。"</string>
<string name="httpErrorLookup" msgid="4517085806977851374">"找不到网址。"</string>
@@ -137,7 +114,7 @@
<string name="contentServiceSync" msgid="8353523060269335667">"同步"</string>
<string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"同步"</string>
<string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"太多<xliff:g id="CONTENT_TYPE">%s</xliff:g>删除项。"</string>
- <string name="low_memory" msgid="6632412458436461203">"手机存储空间已满!请删除一些文件来腾出空间。"</string>
+ <string name="low_memory" msgid="6632412458436461203">"手机内存已用完!请删除一些文件来腾出空间。"</string>
<string name="me" msgid="6545696007631404292">"我"</string>
<string name="power_dialog" msgid="1319919075463988638">"手机选项"</string>
<string name="silent_mode" msgid="7167703389802618663">"静音模式"</string>
@@ -152,8 +129,8 @@
<string name="global_action_lock" msgid="2844945191792119712">"屏幕锁定"</string>
<string name="global_action_power_off" msgid="4471879440839879722">"关机"</string>
<string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"静音模式"</string>
- <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"声音已“关闭”"</string>
- <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"声音已“开启”"</string>
+ <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"已关闭声音"</string>
+ <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"已打开声音"</string>
<string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"飞行模式"</string>
<string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"飞行模式已开启"</string>
<string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"飞行模式已关闭"</string>
@@ -179,16 +156,14 @@
<string name="permgroupdesc_systemTools" msgid="8162102602190734305">"对系统的低级别访问和控制。"</string>
<string name="permgrouplab_developmentTools" msgid="3446164584710596513">"开发工具"</string>
<string name="permgroupdesc_developmentTools" msgid="9056431193893809814">"只有应用程序开发人员需要这些功能。"</string>
- <!-- no translation found for permgrouplab_storage (1971118770546336966) -->
- <skip />
- <!-- no translation found for permgroupdesc_storage (9203302214915355774) -->
- <skip />
+ <string name="permgrouplab_storage" msgid="1971118770546336966">"存储"</string>
+ <string name="permgroupdesc_storage" msgid="9203302214915355774">"访问 SD 卡。"</string>
<string name="permlab_statusBar" msgid="7417192629601890791">"停用或修改状态栏"</string>
<string name="permdesc_statusBar" msgid="1365473595331989732">"允许应用程序停用状态栏,或者添加和删除系统图标。"</string>
<string name="permlab_expandStatusBar" msgid="1148198785937489264">"展开/折叠状态栏"</string>
<string name="permdesc_expandStatusBar" msgid="7088604400110768665">"允许应用程序展开或折叠状态栏。"</string>
- <string name="permlab_processOutgoingCalls" msgid="1136262550878335980">"拦截对外呼叫"</string>
- <string name="permdesc_processOutgoingCalls" msgid="2228988201852654461">"允许应用程序处理对外呼叫和更改要拨打的号码。恶意应用程序可借此监视、重定向或阻止对外呼叫。"</string>
+ <string name="permlab_processOutgoingCalls" msgid="1136262550878335980">"拦截外拨电话"</string>
+ <string name="permdesc_processOutgoingCalls" msgid="2228988201852654461">"允许应用程序处理外拨电话和更改要拨打的号码。恶意应用程序可借此监视、重定向或阻止外拨电话。"</string>
<string name="permlab_receiveSms" msgid="2697628268086208535">"接收短信"</string>
<string name="permdesc_receiveSms" msgid="6298292335965966117">"允许应用程序接收和处理短信。恶意应用程序可借此监视您的信息,或者将信息删除而不向您显示。"</string>
<string name="permlab_receiveMms" msgid="8894700916188083287">"接收彩信"</string>
@@ -201,7 +176,7 @@
<string name="permdesc_writeSms" msgid="6299398896177548095">"允许应用程序写入手机或 SIM 卡中存储的短信。恶意应用程序可借此删除您的信息。"</string>
<string name="permlab_receiveWapPush" msgid="8258226427716551388">"接收 WAP"</string>
<string name="permdesc_receiveWapPush" msgid="5979623826128082171">"允许应用程序接收和处理 WAP 消息。恶意应用程序可借此监视您的消息,或者将消息删除而不向您显示。"</string>
- <string name="permlab_getTasks" msgid="5005277531132573353">"检索所运行的应用程序"</string>
+ <string name="permlab_getTasks" msgid="5005277531132573353">"检索当前运行的应用程序"</string>
<string name="permdesc_getTasks" msgid="7048711358713443341">"允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的私有信息。"</string>
<string name="permlab_reorderTasks" msgid="5669588525059921549">"对正在运行的应用程序重新排序"</string>
<string name="permdesc_reorderTasks" msgid="126252774270522835">"允许应用程序将任务移至前台和后台。恶意应用程序可借此强行进到前台,而不受您的控制。"</string>
@@ -215,14 +190,10 @@
<string name="permdesc_forceBack" msgid="6534109744159919013">"允许应用程序强行关闭前台中的任何活动并返回。普通应用程序从不需要使用此权限。"</string>
<string name="permlab_dump" msgid="1681799862438954752">"检索系统内部状态"</string>
<string name="permdesc_dump" msgid="2198776174276275220">"允许应用程序检索系统的内部状态。恶意应用程序可借此检索它们通常并不需要的各种私有信息和安全信息。"</string>
- <!-- no translation found for permlab_shutdown (7185747824038909016) -->
- <skip />
- <!-- no translation found for permdesc_shutdown (7046500838746291775) -->
- <skip />
- <!-- no translation found for permlab_stopAppSwitches (4138608610717425573) -->
- <skip />
- <!-- no translation found for permdesc_stopAppSwitches (3857886086919033794) -->
- <skip />
+ <string name="permlab_shutdown" msgid="7185747824038909016">"部分关机"</string>
+ <string name="permdesc_shutdown" msgid="7046500838746291775">"使活动管理器进入关闭状态。不执行彻底关机。"</string>
+ <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"禁止切换应用程序"</string>
+ <string name="permdesc_stopAppSwitches" msgid="3857886086919033794">"禁止用户切换到另一应用程序。"</string>
<string name="permlab_runSetActivityWatcher" msgid="7811586187574696296">"监控所有应用程序的启动"</string>
<string name="permdesc_runSetActivityWatcher" msgid="3228701938345388092">"允许应用程序监控系统启动活动的方式。恶意应用程序可借此彻底损坏系统。这一权限只在开发过程中需要,普通的手机操作不需要。"</string>
<string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"发送已删除包的广播"</string>
@@ -231,16 +202,14 @@
<string name="permdesc_broadcastSmsReceived" msgid="9122419277306740155">"允许应用程序广播已收到短信的通知。恶意应用程序可借此伪造收到的短信。"</string>
<string name="permlab_broadcastWapPush" msgid="3145347413028582371">"发送 WAP 一键接收广播"</string>
<string name="permdesc_broadcastWapPush" msgid="3955303669461378091">"允许应用程序广播收到 WAP 一键信息的通知。恶意应用程序可借此乱发彩信或暗中用恶意内容替换任意网页中的内容。"</string>
- <string name="permlab_setProcessLimit" msgid="2451873664363662666">"限制所运行进程的数量"</string>
+ <string name="permlab_setProcessLimit" msgid="2451873664363662666">"限制运行的进程个数"</string>
<string name="permdesc_setProcessLimit" msgid="7824786028557379539">"允许应用程序控制将运行的最大进程数。普通应用程序从不需要使用此权限。"</string>
<string name="permlab_setAlwaysFinish" msgid="5342837862439543783">"关闭所有后台应用程序"</string>
<string name="permdesc_setAlwaysFinish" msgid="8773936403987091620">"允许应用程序控制活动是否始终是一转至后台就完成。普通应用程序从不需要使用此权限。"</string>
- <string name="permlab_batteryStats" msgid="7863923071360031652">"修改电池使用情况统计信息"</string>
+ <string name="permlab_batteryStats" msgid="7863923071360031652">"修改电池统计信息"</string>
<string name="permdesc_batteryStats" msgid="5847319823772230560">"允许修改收集的电池使用情况统计信息。普通应用程序不能使用此权限。"</string>
- <!-- no translation found for permlab_backup (470013022865453920) -->
- <skip />
- <!-- no translation found for permdesc_backup (2305432853944929371) -->
- <skip />
+ <string name="permlab_backup" msgid="470013022865453920">"控制系统备份和还原"</string>
+ <string name="permdesc_backup" msgid="2305432853944929371">"允许应用程序控制各系统的备份和还原机制。不适用于普通应用程序。"</string>
<string name="permlab_internalSystemWindow" msgid="2148563628140193231">"显示未授权的窗口"</string>
<string name="permdesc_internalSystemWindow" msgid="5895082268284998469">"允许创建专供内部系统用户界面使用的窗口。普通应用程序不能使用此权限。"</string>
<string name="permlab_systemAlertWindow" msgid="3372321942941168324">"显示系统级警报"</string>
@@ -248,14 +217,14 @@
<string name="permlab_setAnimationScale" msgid="2805103241153907174">"修改全局动画速度"</string>
<string name="permdesc_setAnimationScale" msgid="7181522138912391988">"允许应用程序随时更改全局动画速度(加快或放慢动画)。"</string>
<string name="permlab_manageAppTokens" msgid="17124341698093865">"管理应用程序令牌"</string>
- <string name="permdesc_manageAppTokens" msgid="977127907524195988">"允许应用程序创建和管理自己的令牌,从而绕开正常的 Z 排序方式。普通应用程序从不需要使用此权限。"</string>
+ <string name="permdesc_manageAppTokens" msgid="977127907524195988">"允许应用程序创建和管理自己的令牌,从而绕开正常的 Z 方向排序。普通应用程序从不需要使用此权限。"</string>
<string name="permlab_injectEvents" msgid="1378746584023586600">"按键和控制按钮"</string>
<string name="permdesc_injectEvents" msgid="3946098050410874715">"允许应用程序将其自己的输入活动(按键等)提供给其他应用程序。恶意应用程序可借此掌控手机。"</string>
<string name="permlab_readInputState" msgid="469428900041249234">"记录您输入的内容和采取的操作"</string>
<string name="permdesc_readInputState" msgid="5132879321450325445">"允许应用程序查看您按的键,即使在与其他应用程序交互(例如输入密码)时也不例外。普通应用程序从不需要使用此权限。"</string>
<string name="permlab_bindInputMethod" msgid="3360064620230515776">"绑定至输入法"</string>
<string name="permdesc_bindInputMethod" msgid="3734838321027317228">"允许手机用户绑定至输入法的顶级界面。普通应用程序从不需要使用此权限。"</string>
- <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕浏览模式"</string>
+ <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕显示方向"</string>
<string name="permdesc_setOrientation" msgid="6335814461615851863">"允许应用程序随时更改屏幕的旋转方向。普通应用程序从不需要使用此权限。"</string>
<string name="permlab_signalPersistentProcesses" msgid="4255467255488653854">"向应用程序发送 Linux 信号"</string>
<string name="permdesc_signalPersistentProcesses" msgid="3565530463215015289">"允许应用程序请求将提供的信号发送给所有持续的进程。"</string>
@@ -272,7 +241,7 @@
<string name="permlab_installPackages" msgid="335800214119051089">"直接安装应用程序"</string>
<string name="permdesc_installPackages" msgid="526669220850066132">"允许应用程序安装新的或更新的 Android 包。恶意应用程序可借此添加具有极大权限的新应用程序。"</string>
<string name="permlab_clearAppCache" msgid="4747698311163766540">"删除所有应用程序缓存数据"</string>
- <string name="permdesc_clearAppCache" msgid="7740465694193671402">"允许应用程序通过删除应用程序缓存目录中的文件释放手机存储空间。对系统进程的访问通常受到严格限制。"</string>
+ <string name="permdesc_clearAppCache" msgid="7740465694193671402">"允许应用程序通过删除应用程序缓存目录中的文件释放手机内存。通常严格限制访问系统进程。"</string>
<string name="permlab_readLogs" msgid="4811921703882532070">"读取系统日志文件"</string>
<string name="permdesc_readLogs" msgid="2257937955580475902">"允许应用程序读取系统的各日志文件。这样应用程序可以发现有关您操作手机的一般信息,但这些信息不应包含任何个人信息或私有信息。"</string>
<string name="permlab_diagnostic" msgid="8076743953908000342">"读取/写入诊断所拥有的资源"</string>
@@ -289,7 +258,7 @@
<string name="permdesc_writeGservices" msgid="6602362746516676175">"允许应用程序修改 Google 服务地图。普通应用程序不能使用此权限。"</string>
<string name="permlab_receiveBootCompleted" msgid="7776779842866993377">"开机时自动启动"</string>
<string name="permdesc_receiveBootCompleted" msgid="698336728415008796">"允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。"</string>
- <string name="permlab_broadcastSticky" msgid="7919126372606881614">"发送顽固广播"</string>
+ <string name="permlab_broadcastSticky" msgid="7919126372606881614">"发送置顶广播"</string>
<string name="permdesc_broadcastSticky" msgid="1920045289234052219">"允许应用程序发送顽固广播,这些广播在结束后仍会保留。恶意应用程序可能会借此使手机耗用太多内存,从而降低其速度或稳定性。"</string>
<string name="permlab_readContacts" msgid="6219652189510218240">"读取联系人数据"</string>
<string name="permdesc_readContacts" msgid="3371591512896545975">"允许应用程序读取您手机上存储的所有联系人(地址)数据。恶意应用程序可借此将您的数据发送给其他人。"</string>
@@ -303,14 +272,12 @@
<string name="permdesc_readCalendar" msgid="5533029139652095734">"允许应用程序读取您手机上存储的所有日历活动。恶意应用程序可借此将您的日历活动发送给其他人。"</string>
<string name="permlab_writeCalendar" msgid="377926474603567214">"写入日历数据"</string>
<string name="permdesc_writeCalendar" msgid="8674240662630003173">"允许应用程序修改您手机上存储的日历活动。恶意应用程序可借此清除或修改您的日历数据。"</string>
- <string name="permlab_accessMockLocation" msgid="8688334974036823330">"用于测试的模拟位置源"</string>
+ <string name="permlab_accessMockLocation" msgid="8688334974036823330">"禁止使用位置来源进行测试"</string>
<string name="permdesc_accessMockLocation" msgid="7648286063459727252">"创建用于测试的模拟位置源。恶意应用程序可借此替代真正的位置源(如 GPS 或网络提供商)返回的位置和/或状态。"</string>
- <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"接收额外的位置提供者命令"</string>
+ <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"访问更多位置提供者的命令"</string>
<string name="permdesc_accessLocationExtraCommands" msgid="1948144701382451721">"访问额外的位置提供程序命令。恶意应用程序可借此干扰 GPS 或其他位置源的运作。"</string>
- <!-- no translation found for permlab_installLocationProvider (6578101199825193873) -->
- <skip />
- <!-- no translation found for permdesc_installLocationProvider (5449175116732002106) -->
- <skip />
+ <string name="permlab_installLocationProvider" msgid="6578101199825193873">"安装位置信息提供程序"</string>
+ <string name="permdesc_installLocationProvider" msgid="5449175116732002106">"创建用于测试的模拟地点信息源。恶意应用程序可借此覆盖真正的地点信息源(如 GPS 或网络提供商)返回的地点和/或状态,或者监视您的地点并向外部信息源报告。"</string>
<string name="permlab_accessFineLocation" msgid="8116127007541369477">"精准位置 (GPS)"</string>
<string name="permdesc_accessFineLocation" msgid="7411213317434337331">"访问精准的位置源,例如手机上的全球定位系统(如果适用)。恶意应用程序可能借此确定您所处的位置,并消耗额外的电池电量。"</string>
<string name="permlab_accessCoarseLocation" msgid="4642255009181975828">"粗略位置(以网络为基础)"</string>
@@ -340,9 +307,9 @@
<string name="permlab_hardware_test" msgid="4148290860400659146">"测试硬件"</string>
<string name="permdesc_hardware_test" msgid="3668894686500081699">"允许应用程序控制各种用于硬件测试的外围设备。"</string>
<string name="permlab_callPhone" msgid="3925836347681847954">"直接拨打电话号码"</string>
- <string name="permdesc_callPhone" msgid="3369867353692722456">"允许应用程序在没有您干预的情况下呼叫电话号码。恶意应用程序可借此在您的话费单上产生意外通话费。请注意,此权限不允许应用程序呼叫紧急电话号码。"</string>
+ <string name="permdesc_callPhone" msgid="3369867353692722456">"允许应用程序在无人操作的情况下拨打电话。恶意应用程序可借此在您的话费单上产生意外通话费。请注意,此权限不允许应用程序拨打紧急电话。"</string>
<string name="permlab_callPrivileged" msgid="4198349211108497879">"直接呼叫任何电话号码"</string>
- <string name="permdesc_callPrivileged" msgid="244405067160028452">"允许应用程序在没有您干预的情况下呼叫任何电话号码(包括紧急电话号码)。恶意应用程序可借此对紧急服务拨打骚扰电话和非法电话。"</string>
+ <string name="permdesc_callPrivileged" msgid="244405067160028452">"允许应用程序在无人操作的情况下拨打任何电话(包括紧急电话)。恶意应用程序可借此向紧急服务拨打骚扰电话和非法电话。"</string>
<string name="permlab_locationUpdates" msgid="7785408253364335740">"控制位置更新通知"</string>
<string name="permdesc_locationUpdates" msgid="2300018303720930256">"允许启用/停用收音机的位置更新通知。普通应用程序不能使用此权限。"</string>
<string name="permlab_checkinProperties" msgid="7855259461268734914">"访问检入属性"</string>
@@ -351,10 +318,8 @@
<string name="permdesc_bindGadget" msgid="2098697834497452046">"允许应用程序告诉系统哪个应用程序可以使用哪些窗口小部件。具有该权限的应用程序可以允许其他应用程序访问个人数据。普通应用程序不适合使用此权限。"</string>
<string name="permlab_modifyPhoneState" msgid="8423923777659292228">"修改手机状态"</string>
<string name="permdesc_modifyPhoneState" msgid="3302284561346956587">"允许应用程序控制设备的手机功能。具有此权限的应用程序可切换网络、打开和关闭手机收音机等,而不通知您。"</string>
- <!-- no translation found for permlab_readPhoneState (2326172951448691631) -->
- <skip />
- <!-- no translation found for permdesc_readPhoneState (188877305147626781) -->
- <skip />
+ <string name="permlab_readPhoneState" msgid="2326172951448691631">"读取手机状态和身份"</string>
+ <string name="permdesc_readPhoneState" msgid="188877305147626781">"允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。"</string>
<string name="permlab_wakeLock" msgid="573480187941496130">"防止手机休眠"</string>
<string name="permdesc_wakeLock" msgid="7584036471227467099">"允许应用程序防止手机进入休眠状态。"</string>
<string name="permlab_devicePower" msgid="4928622470980943206">"开机或关机"</string>
@@ -373,7 +338,7 @@
<string name="permdesc_getAccounts" msgid="6839262446413155394">"允许应用程序获取手机已知的帐户列表。"</string>
<string name="permlab_accessNetworkState" msgid="6865575199464405769">"查看网络状态"</string>
<string name="permdesc_accessNetworkState" msgid="558721128707712766">"允许应用程序查看所有网络的状态。"</string>
- <string name="permlab_createNetworkSockets" msgid="9121633680349549585">"互联网完全访问"</string>
+ <string name="permlab_createNetworkSockets" msgid="9121633680349549585">"完全访问互联网"</string>
<string name="permdesc_createNetworkSockets" msgid="4593339106921772192">"允许应用程序创建网络套接字。"</string>
<string name="permlab_writeApnSettings" msgid="7823599210086622545">"写入接入点名称设置"</string>
<string name="permdesc_writeApnSettings" msgid="7443433457842966680">"允许应用程序修改 APN 设置,例如任何 APN 的代理和端口。"</string>
@@ -385,10 +350,8 @@
<string name="permdesc_accessWifiState" msgid="485796529139236346">"允许应用程序查看有关 Wi-Fi 状态的信息。"</string>
<string name="permlab_changeWifiState" msgid="7280632711057112137">"更改 Wi-Fi 状态"</string>
<string name="permdesc_changeWifiState" msgid="2950383153656873267">"允许应用程序连接到 Wi-Fi 接入点以及与 Wi-Fi 接入点断开连接,并对配置的 Wi-Fi 网络进行更改。"</string>
- <!-- no translation found for permlab_changeWifiMulticastState (1368253871483254784) -->
- <skip />
- <!-- no translation found for permdesc_changeWifiMulticastState (8199464507656067553) -->
- <skip />
+ <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"允许接收 Wi-Fi 多播"</string>
+ <string name="permdesc_changeWifiMulticastState" msgid="8199464507656067553">"允许应用程序接收并非直接向您的设备发送的数据包。这样在查找附近提供的服务时很有用。这种操作所耗电量大于非多播模式。"</string>
<string name="permlab_bluetoothAdmin" msgid="1092209628459341292">"蓝牙管理"</string>
<string name="permdesc_bluetoothAdmin" msgid="7256289774667054555">"允许应用程序配置本地蓝牙手机,以及查找远程设备并与之配对。"</string>
<string name="permlab_bluetooth" msgid="8361038707857018732">"创建蓝牙连接"</string>
@@ -409,10 +372,8 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"允许应用程序读取用户在用户词典中存储的任意私有字词、名称和短语。"</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"写入用户定义的词典"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"允许应用程序向用户词典中写入新词。"</string>
- <!-- no translation found for permlab_sdcardWrite (8079403759001777291) -->
- <skip />
- <!-- no translation found for permdesc_sdcardWrite (6643963204976471878) -->
- <skip />
+ <string name="permlab_sdcardWrite" msgid="8079403759001777291">"修改/删除 SD 卡内容"</string>
+ <string name="permdesc_sdcardWrite" msgid="6643963204976471878">"允许应用程序写入 SD 卡。"</string>
<string-array name="phoneTypes">
<item msgid="8901098336658710359">"住宅电话"</item>
<item msgid="869923650527136615">"手机"</item>
@@ -431,10 +392,10 @@
</string-array>
<string name="mobileEmailTypeName" msgid="2858957283716687707">"手机"</string>
<string-array name="postalAddressTypes">
- <item msgid="6880257626740047286">"住宅地址"</item>
- <item msgid="5629153956045109251">"单位地址"</item>
- <item msgid="4966604264500343469">"其他地址"</item>
- <item msgid="4932682847595299369">"自定义地址"</item>
+ <item msgid="6880257626740047286">"住宅"</item>
+ <item msgid="5629153956045109251">"单位"</item>
+ <item msgid="4966604264500343469">"其他"</item>
+ <item msgid="4932682847595299369">"自定义"</item>
</string-array>
<string-array name="imAddressTypes">
<item msgid="1738585194601476694">"住宅聊天工具"</item>
@@ -470,16 +431,15 @@
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"正确!"</string>
<string name="lockscreen_pattern_wrong" msgid="4817583279053112312">"很抱歉,请重试"</string>
<string name="lockscreen_plugged_in" msgid="613343852842944435">"正在充电 (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <!-- no translation found for lockscreen_charged (4938930459620989972) -->
- <skip />
+ <string name="lockscreen_charged" msgid="4938930459620989972">"已充满。"</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"连接您的充电器。"</string>
- <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"没有 SIM 卡。"</string>
- <string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"手机中无 SIM 卡。"</string>
- <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"请插入 SIM 卡。"</string>
+ <string name="lockscreen_missing_sim_message_short" msgid="7381499217732227295">"没有 SIM 卡"</string>
+ <string name="lockscreen_missing_sim_message" msgid="2186920585695169078">"手机中无 SIM 卡"</string>
+ <string name="lockscreen_missing_sim_instructions" msgid="8874620818937719067">"请插入 SIM 卡"</string>
<string name="lockscreen_network_locked_message" msgid="143389224986028501">"网络已锁定"</string>
- <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM 卡被 PUK 锁定。"</string>
+ <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM 卡被 PUK 锁定"</string>
<string name="lockscreen_sim_puk_locked_instructions" msgid="635967534992394321">"请参阅《用户指南》或联系客服人员。"</string>
- <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM 卡被锁定。"</string>
+ <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM 卡被锁定"</string>
<string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"正在解锁 SIM 卡..."</string>
<string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="3514742106066877476">"您已经 <xliff:g id="NUMBER_0">%d</xliff:g> 次错误地绘制了解锁图案。"\n\n"请在 <xliff:g id="NUMBER_1">%d</xliff:g> 秒后重试。"</string>
<string name="lockscreen_failed_attempts_almost_glogin" msgid="3351013842320127827">"您已经 <xliff:g id="NUMBER_0">%d</xliff:g> 次错误地绘制了解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%d</xliff:g> 次后仍不成功,系统会要求您使用自己的 Google 登录信息解锁手机。"\n\n"请在 <xliff:g id="NUMBER_2">%d</xliff:g> 秒后重试。"</string>
@@ -493,8 +453,7 @@
<string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"用户名或密码无效。"</string>
<string name="hour_ampm" msgid="4329881288269772723">"<xliff:g id="AMPM">%P</xliff:g><xliff:g id="HOUR">%-l</xliff:g>点"</string>
<string name="hour_cap_ampm" msgid="1829009197680861107">"<xliff:g id="AMPM">%p</xliff:g><xliff:g id="HOUR">%-l</xliff:g>点"</string>
- <!-- no translation found for status_bar_clear_all_button (7774721344716731603) -->
- <skip />
+ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"清除"</string>
<string name="status_bar_no_notifications_title" msgid="4755261167193833213">"无通知"</string>
<string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"正在进行"</string>
<string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string>
@@ -503,8 +462,7 @@
<string name="battery_low_title" msgid="7923774589611311406">"请连接充电器"</string>
<string name="battery_low_subtitle" msgid="7388781709819722764">"电量在减少:"</string>
<string name="battery_low_percent_format" msgid="6564958083485073855">"剩余电量不足 <xliff:g id="NUMBER">%d%%</xliff:g>。"</string>
- <!-- no translation found for battery_low_why (7655196144309694753) -->
- <skip />
+ <string name="battery_low_why" msgid="7655196144309694753">"查看原因"</string>
<string name="factorytest_failed" msgid="5410270329114212041">"出厂测试失败"</string>
<string name="factorytest_not_system" msgid="4435201656767276723">"只有 /system/app 中安装的包支持 FACTORY_TEST 操作。"</string>
<string name="factorytest_no_action" msgid="872991874799998561">"未发现支持 FACTORY_TEST 操作的包。"</string>
@@ -513,14 +471,10 @@
<string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
<string name="js_dialog_before_unload" msgid="1901675448179653089">"是否从该页面导航至它处?"\n\n"<xliff:g id="MESSAGE">%s</xliff:g>"\n\n"选择“确定”继续,或选择“取消”留在当前页面。"</string>
<string name="save_password_label" msgid="6860261758665825069">"确认"</string>
- <!-- no translation found for permlab_readHistoryBookmarks (1284843728203412135) -->
- <skip />
- <!-- no translation found for permdesc_readHistoryBookmarks (4981489815467617191) -->
- <skip />
- <!-- no translation found for permlab_writeHistoryBookmarks (9009434109836280374) -->
- <skip />
- <!-- no translation found for permdesc_writeHistoryBookmarks (945571990357114950) -->
- <skip />
+ <string name="permlab_readHistoryBookmarks" msgid="1284843728203412135">"读取浏览器的历史记录和书签"</string>
+ <string name="permdesc_readHistoryBookmarks" msgid="4981489815467617191">"允许应用程序读取用浏览器访问过的所有网址,以及浏览器的所有书签。"</string>
+ <string name="permlab_writeHistoryBookmarks" msgid="9009434109836280374">"写入浏览器的历史记录和书签"</string>
+ <string name="permdesc_writeHistoryBookmarks" msgid="945571990357114950">"允许应用程序修改存储在手机中的浏览器历史记录或书签。恶意应用程序可借此清除或修改浏览器数据。"</string>
<string name="save_password_message" msgid="767344687139195790">"是否希望浏览器记住此密码?"</string>
<string name="save_password_notnow" msgid="6389675316706699758">"此时不保存密码"</string>
<string name="save_password_remember" msgid="6491879678996749466">"记住"</string>
@@ -643,16 +597,16 @@
<string name="addToDictionary" msgid="726256909274177272">"将“%s”添加到词典"</string>
<string name="editTextMenuTitle" msgid="1672989176958581452">"编辑文字"</string>
<string name="low_internal_storage_view_title" msgid="1399732408701697546">"空间不足"</string>
- <string name="low_internal_storage_view_text" msgid="635106544616378836">"手机存储空间正在减少。"</string>
+ <string name="low_internal_storage_view_text" msgid="635106544616378836">"手机内存空间正在减少。"</string>
<string name="ok" msgid="5970060430562524910">"确定"</string>
<string name="cancel" msgid="6442560571259935130">"取消"</string>
<string name="yes" msgid="5362982303337969312">"确定"</string>
<string name="no" msgid="5141531044935541497">"取消"</string>
<string name="dialog_alert_title" msgid="2049658708609043103">"注意事项"</string>
- <string name="capital_on" msgid="1544682755514494298">"开启"</string>
+ <string name="capital_on" msgid="1544682755514494298">"打开"</string>
<string name="capital_off" msgid="6815870386972805832">"关闭"</string>
- <string name="whichApplication" msgid="4533185947064773386">"使用以下内容完成操作"</string>
- <string name="alwaysUse" msgid="4583018368000610438">"默认用于执行此操作。"</string>
+ <string name="whichApplication" msgid="4533185947064773386">"使用以下方式发送"</string>
+ <string name="alwaysUse" msgid="4583018368000610438">"默认使用此方式发送。"</string>
<string name="clearDefaultHintMsg" msgid="4815455344600932173">"清除“主屏幕设置”&gt;“应用程序”&gt;“管理应用程序”中的默认设置。"</string>
<string name="chooseActivity" msgid="1009246475582238425">"选择一项操作"</string>
<string name="noApplications" msgid="1691104391758345586">"没有应用程序可执行此操作。"</string>
@@ -665,8 +619,7 @@
<string name="anr_application_process" msgid="4185842666452210193">"<xliff:g id="APPLICATION">%1$s</xliff:g>应用程序(在 <xliff:g id="PROCESS">%2$s</xliff:g> 进程中)无响应。"</string>
<string name="anr_process" msgid="1246866008169975783">"<xliff:g id="PROCESS">%1$s</xliff:g> 进程无响应。"</string>
<string name="force_close" msgid="3653416315450806396">"强行关闭"</string>
- <!-- no translation found for report (4060218260984795706) -->
- <skip />
+ <string name="report" msgid="4060218260984795706">"报告"</string>
<string name="wait" msgid="7147118217226317732">"等待"</string>
<string name="debug" msgid="9103374629678531849">"调试"</string>
<string name="sendText" msgid="5132506121645618310">"选择要对文字执行的操作"</string>
@@ -709,7 +662,7 @@
<string name="usb_storage_button_unmount" msgid="6092146330053864766">"不安装"</string>
<string name="usb_storage_error_message" msgid="2534784751603345363">"使用 SD 卡进行 USB 存储时出现问题。"</string>
<string name="usb_storage_notification_title" msgid="8175892554757216525">"USB 已连接"</string>
- <string name="usb_storage_notification_message" msgid="7380082404288219341">"选择以将文件复制到计算机/从计算机复制文件。"</string>
+ <string name="usb_storage_notification_message" msgid="7380082404288219341">"选择将文件复制到计算机/从计算机复制到存储设备。"</string>
<string name="usb_storage_stop_notification_title" msgid="2336058396663516017">"关闭 USB 存储设备"</string>
<string name="usb_storage_stop_notification_message" msgid="2591813490269841539">"选中以关闭 USB 存储设备。"</string>
<string name="usb_storage_stop_title" msgid="6014127947456185321">"关闭 USB 存储设备"</string>
@@ -720,31 +673,24 @@
<string name="extmedia_format_title" msgid="8663247929551095854">"格式化 SD 卡"</string>
<string name="extmedia_format_message" msgid="3621369962433523619">"您确定要格式化 SD 卡?卡上的所有数据都会丢失。"</string>
<string name="extmedia_format_button_format" msgid="4131064560127478695">"格式化"</string>
- <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
- <skip />
- <!-- no translation found for adb_active_notification_message (4661997077344501389) -->
- <skip />
+ <string name="adb_active_notification_title" msgid="6729044778949189918">"已连接 USB 调试"</string>
+ <string name="adb_active_notification_message" msgid="4661997077344501389">"计算机已与手机相连。"</string>
<string name="select_input_method" msgid="2086499663193509436">"选择输入法"</string>
<string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
<string name="candidates_style" msgid="4333913089637062257"><u>"候选"</u></string>
<string name="ext_media_checking_notification_title" msgid="5457603418970994050">"正在准备 SD 卡"</string>
- <!-- no translation found for ext_media_checking_notification_message (8287319882926737053) -->
- <skip />
+ <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"正在检查是否有错误。"</string>
<string name="ext_media_nofs_notification_title" msgid="780477838241212997">"空 SD 卡"</string>
- <!-- no translation found for ext_media_nofs_notification_message (3817704088027829380) -->
- <skip />
+ <string name="ext_media_nofs_notification_message" msgid="3817704088027829380">"SD 卡是空的或其文件系统不受支持。"</string>
<string name="ext_media_unmountable_notification_title" msgid="6410723906019100189">"SD 卡受损"</string>
- <!-- no translation found for ext_media_unmountable_notification_message (6902531775948238989) -->
- <skip />
+ <string name="ext_media_unmountable_notification_message" msgid="6902531775948238989">"SD 卡已损坏。可能必须重新格式化。"</string>
<string name="ext_media_badremoval_notification_title" msgid="6872152882604407837">"SD 卡被意外拔除"</string>
<string name="ext_media_badremoval_notification_message" msgid="7260183293747448241">"先卸载 SD 卡再拔除,以避免数据丢失。"</string>
<string name="ext_media_safe_unmount_notification_title" msgid="6729801130790616200">"SD 卡已安全移除"</string>
- <!-- no translation found for ext_media_safe_unmount_notification_message (568841278138377604) -->
- <skip />
+ <string name="ext_media_safe_unmount_notification_message" msgid="568841278138377604">"可安全地取出 SD 卡。"</string>
<string name="ext_media_nomedia_notification_title" msgid="8902518030404381318">"已移除 SD 卡"</string>
- <!-- no translation found for ext_media_nomedia_notification_message (3870120652983659641) -->
- <skip />
+ <string name="ext_media_nomedia_notification_message" msgid="3870120652983659641">"SD 卡已取出。请插入另一 SD 卡。"</string>
<string name="activity_list_empty" msgid="4168820609403385789">"找不到匹配的活动"</string>
<string name="permlab_pkgUsageStats" msgid="8787352074326748892">"更新组件使用情况统计"</string>
<string name="permdesc_pkgUsageStats" msgid="891553695716752835">"允许修改收集的组件使用情况统计。普通应用程序不能使用此权限。"</string>
@@ -758,8 +704,6 @@
<string name="ime_action_default" msgid="2840921885558045721">"执行"</string>
<string name="dial_number_using" msgid="5789176425167573586">"拨打电话"\n"<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="create_contact_using" msgid="4947405226788104538">"创建电话号码为"\n"<xliff:g id="NUMBER">%s</xliff:g> 的联系人"</string>
- <!-- no translation found for accessibility_compound_button_selected (5612776946036285686) -->
- <skip />
- <!-- no translation found for accessibility_compound_button_unselected (8864512895673924091) -->
- <skip />
+ <string name="accessibility_compound_button_selected" msgid="5612776946036285686">"已选中"</string>
+ <string name="accessibility_compound_button_unselected" msgid="8864512895673924091">"未选中"</string>
</resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 5870c3901e9b..4348b2f2ecaf 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2759,9 +2759,11 @@
For a more in-depth discussion of search configuration, please refer to
{@link android.app.SearchManager}. -->
<declare-styleable name="Searchable">
- <!-- If provided, this icon will be shown in place of the label. It is typically used
- in order to identify a searchable application via a logo or branding, instead of
- plain text. This is a reference to a drawable (icon) resource.
+ <!-- If provided, this icon will be shown in place of the label above the search box.
+ This is a reference to a drawable (icon) resource. Note that the application icon
+ is also used as an icon to the left of the search box and you cannot modify this
+ behavior, so including the icon attribute is unecessary and this may be
+ deprecated in the future.
<i>Optional attribute.</i> -->
<attr name="icon" />
<!-- This is the user-displayed name of the searchable activity. <i>Required
@@ -3330,4 +3332,3 @@
</resources>
-
diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml
index 2bce8469cfda..6bcaaaf9059a 100644
--- a/data/fonts/fonts.xml
+++ b/data/fonts/fonts.xml
@@ -13,6 +13,10 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+<!--
+ This is only used by the layoutlib to display
+ layouts in ADT.
+-->
<fonts>
<font ttf="DroidSans">
<name>sans-serif</name>
@@ -39,5 +43,6 @@
<name>courier new</name>
<name>monaco</name>
</font>
- <font ttf="DroidSansFallback" />
+ <fallback ttf="DroidSansFallback" />
+ <fallback ttf="DroidSansJapanese" />
</fonts> \ No newline at end of file
diff --git a/docs/html/community/index.jd b/docs/html/community/index.jd
index eb5887a23e58..3e69de4e57c0 100644
--- a/docs/html/community/index.jd
+++ b/docs/html/community/index.jd
@@ -3,8 +3,8 @@ page.title=Community
@jd:body
<div id="mainBodyFluid">
- <h1>Community</h1>
- <p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
+<h1>Community</h1>
+<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
<p class="note"><strong>Note:</strong> If you are seeking discussion about Android source code (not application development),
then please refer to the <a href="http://source.android.com/discuss">Open Source Project Mailing lists</a>.</p>
@@ -53,48 +53,42 @@ phrasing your questions, read <a href="http://www.catb.org/%7Eesr/faqs/smart-que
<li><b>Android beginners</b> - You're new to Android application development. You want to figure out how to get started with the Android SDK and the basic Android APIs? Start here. This list is open to any discussion around beginner-type questions for developers using the SDK; this is a great way to get up and running with your new application on the Android platform. Ask about getting your development environment set up, get help with the first steps of Android development (your first User Interface, your first permission, your first file on the Android filesystem, your first app on the Android Market...). Be sure to check the archives first before asking new questions. Please avoid advanced subjects, which belong on android-developers, and user questions, which will get a better reception on android-discuss.
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-beginners">android-beginners</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android developers</b> - You're now an experienced Android application developer. You've grasped the basics of Android app development, you're comfortable using the SDK, now you want to move to advanced topics. Get help here with troubleshooting applications, advice on implementation, and strategies for improving your application's performance and user experience. This is the not the right place to discuss user issues (use android-discuss for that) or beginner questions with the Android SDK (use android-beginners for that).
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-developers">android-developers</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android discuss</b> - The "water cooler" of Android discussion. You can discuss just about anything Android-related here, ideas for the Android platform, announcements about your applications, discussions about Android devices, community resources... As long as your discussion is related to Android, it's on-topic here. However, if you have a discussion here that could belong on another list, you are probably not reaching all of your target audience here and may want to consider shifting to a more targeted list.
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-discuss">android-discuss</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android ndk</b> - A place for discussing the Android NDK and topics related to using native code in Android applications.
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-ndk">android-ndk</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android security discuss</b> - A place for open discussion on secure development, emerging security concerns, and best practices for and by android developers. Please don't disclose vulnerabilities directly on this list, you'd be putting all Android users at risk.
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-security-discuss">android-security-discuss</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android security announce</b> - A low-volume group for security-related announcements by the Android Security Team.
<ul>
<li>Subscribe using Google Groups:&nbsp;<a href="http://groups.google.com/group/android-security-announce">android-security-announce</a></li>
-<li>Subscribe via email:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a>
-<a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>Subscribe via email:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
</ul>
</li>
diff --git a/docs/html/guide/appendix/api-levels.jd b/docs/html/guide/appendix/api-levels.jd
index 8fc899bb4cc2..31581924c744 100644
--- a/docs/html/guide/appendix/api-levels.jd
+++ b/docs/html/guide/appendix/api-levels.jd
@@ -1,81 +1,337 @@
page.title=Android API Levels
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
-<p>The Android <em>API Level</em> is an integer that indicates a set of APIs available in an Android SDK
-and on a version of the Android platform. Each version of the Android platform supports a specific set
-of APIs, which are always backward-compatible. For example, Android 1.5 supports all APIs available in
-Android 1.0, but the reverse is not true. If an application uses APIs
-available in Android 1.5 that are not available in 1.0, then the application should never be installed
-on an Android 1.0 device, because it will fail due to missing APIs. The API Level ensures this does not happen
-by comparing the minimum API Level required by the applicaiton to the API Level available on the device.</p>
-
-<p>When a new version of Android adds APIs, a new API Level is added to the platform. The new APIs
-are available only to applications that declare a minimum API Level that is equal-to or greater-than
-the API Level in which the APIs were introduced. The API Level required by an application is declared with the
-<code>&lt;uses-sdk></code> element inside the Android manifest, like this:</p>
-
-<pre>&lt;uses-sdk android:minSdkVersion="3" /></pre>
-
-<p>The value for <code>minSdkVersion</code> is the minimum API Level required by the application.
-If this is not declared, then it is assumed that the application is compatible with all versions and defaults to
-API Level 1. In which case, if the application actually uses APIs introduced with an API Level greater than 1, then
-the application will fail in unpredictable ways when installed on a device that only supports API Level 1
-(such as an Android 1.0 device).
-See the <code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk></a></code>
-documentation for more about declaring the API Level in your manifest.</p>
-
-<p>For example, the {@link android.appwidget} package was introduced with API Level 3. If your application
-has set <code>minSdkVersion</code> to 1 or 2, then your application cannot use this package,
-even if the device running your application uses a version of Android that supports it.
-In order to use the {@link android.appwidget} package, your application must set <code>minSdkVersion</code>
-to 3 or higher. When the <code>minSdkVersion</code> is set to 3, the application will no longer be able to install
-on a device running a platform version with an API Level less than 3.</p>
-
-<p>Despite the name of the manifest attribute (<code>minSdkVersion</code>), the API Level is not directly
-associated with a specific SDK. For example, the SDK for Android 1.0 uses
-API Level 1 and the SDK for Android 1.1 uses API Level 2. So it may seem that the API Level increases consistently.
-However, it's possible that a subsequent platform
-releases will not introduce new APIs, and thus, the API Level will remain the same. In addition, there are often
-multiple SDK releases for a single platform version (there were three SDK releases for Android 1.5), and
-there's no guarantee that the API Level will remain the same between these. It's possible (but unlikely) that
-a second or third SDK for a given version of the platform will provide new APIs and add a new API Level.
-When you install a new SDK, be sure to read the SDK Contents on the install page, which specifies the API
-Level for each platform available in the SDK. Also see the comparison of
-<a href="#VersionsVsApiLevels">Platform Versions vs. API Levels</a>, below.</p>
-
-<p class="note"><strong>Note:</strong> During an "Early Look" SDK release, the APIs may not be final, so the
-API Level number cannot be specified. In this case, a string value matching the
-platform codename must be used as the value for <code>minSdkVersion</code>. This codename value
-will only be valid while using the Early Look SDK with the emulator. An application using this API Level
-can never be installed on an Android device. When the final SDK is released, you must update your manifest to use
-the official API Level integer.</p>
-
-<h2 id="VersionsVsApiLevels">Platform Versions vs. API Levels</h2>
-
-<p>The following table specifies the <em>maximum</em> API Level supported by each version of the Android platform.
-(Every platform is backward-compatible to API Level 1.)</p>
+ <h2>In this document</h2>
+<ol>
+ <li><a href="intro">What is API Level?</a></li>
+ <li><a href="#uses">Uses of API Level in Android</a></li>
+ <li><a href="#considerations">Development Considerations</a>
+ <ol>
+ <li><a href="#fc">Application forward compatibility</a></li>
+ <li><a href="#bc">Application backward compatibility</a></li>
+ <li><a href="#platform">Selecting a platform version and API Level</a></li>
+ <li><a href="#apilevel">Declaring a minimum API Level</a></li>
+ <li><a href="#testing">Testing against higher API Levels</a></li>
+ </ol>
+ </li>
+ <li><a href="#provisional">Using a Provisional API Level</a></li>
+ <li><a href="#filtering">Filtering the Reference Documentation by API Level</a></li>
+</ol>
+
+ <h2>See also</h2>
+ <ol>
+ <li><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a> manifest element</li>
+ </ol>
+
+</div>
+</div>
+
+<p>As you develop your application on Android, it's useful to understand the
+platform's general approach to API change management. It's also important to
+understand the API Level identifier and the role it plays in ensuring your
+application's compatibility with devices on which it may be installed. </p>
+
+<p>The sections below provide information about API Level and how it affects
+your applications. </p>
+
+<p>For information about how to use the "Filter by API Level" control
+available in the API reference documentation, see
+<a href="#filtering">Filtering the documentation</a> at the
+end of this document. </p>
+
+<h2 id="intro">What is API Level?</h2>
+
+<p>API Level is an integer value that uniquely identifies the framework API
+revision offered by a version of the Android platform.</p>
+
+<p>The Android platform provides a framework API that applications can use to
+interact with the underlying Android system. The framework API consists of:</p>
+
+<ul>
+<li>A core set of packages and classes</li>
+<li>A set of XML elements and attributes for declaring a manifest file</li>
+<li>A set of XML elements and attributes for declaring and accessing resources</li>
+<li>A set of Intents</li>
+<li>A set of permissions that applications can request, as well as permission
+enforcements included in the system</li>
+</ul>
+
+<p>Each successive version of the Android platform can include updates to the
+Android application framework API that it delivers. </p>
+
+<p>Updates to the framework API are designed so that the new API remains
+compatible with earlier versions of the API. That is, most changes in the API
+are additive and introduce new or replacement functionality. As parts of the API
+are upgraded, the older replaced parts are deprecated but are not removed, so
+that existing applications can still use them. In a very small number of cases,
+parts of the API may be modified or removed, although typically such changes are
+only needed to ensure API robustness and application or system security. All
+other API parts from earlier revisions are carried forward without
+modification.</p>
+
+<p>The framework API that an Android platform delivers is specified using an
+integer identifier called "API Level". Each Android platform version supports
+exactly one API Level, although support is implicit for all earlier API Levels
+(down to API Level 1). The initial release of the Android platform provided
+API Level 1 and subsequent releases have incremented the API Level.</p>
+
+<p>The following table specifies the API Level supported by each version of the
+Android platform.</p>
<table>
<tr><th>Platform Version</th><th>API Level</th></tr>
- <tr><td>Android 1.0</td><td>1</td></tr>
- <tr><td>Android 1.1</td><td>2</td></tr>
+ <tr><td>Android 1.6</td><td>4</td></tr>
<tr><td>Android 1.5</td><td>3</td></tr>
- <tr><td>Android Donut</td><td>Donut</td></tr>
+ <tr><td>Android 1.1</td><td>2</td></tr>
+ <tr><td>Android 1.0</td><td>1</td></tr>
</table>
-<h2 id="ViewingTheApiReference">Viewing the API Reference Based on API Level</h2>
+<h2 id="uses">Uses of API Level in Android</h2>
+
+<p>The API Level identifier serves a key role in ensuring the best possible
+experience for users and application developers:
+
+<ul>
+<li>It lets the Android platform describe the maximum framework API revision
+that it supports</li>
+<li>It lets applications describe the framework API revision that they
+require</li>
+<li>It lets the system negotiate the installation of applications on the user's
+device, such that version-incompatible applications are not installed.</li>
+</ul>
+
+<p>Each Android platform version stores its API Level identifier internally, in
+the Android system itself. </p>
+
+<p>Applications can use a manifest element provided by the framework API &mdash;
+<code>&lt;uses-sdk&gt;</code> &mdash; to describe the minimum and maximum API
+Levels under which they are able to run, as well as the preferred API Level that
+they are designed to support. The element offers two key attributes:</p>
+
+<ul>
+<li><code>android:minSdkVersion</code> &mdash; Specifies the minimum API Level
+on which the application is able to run. The default value is "1".</li>
+<li><code>android:maxSdkVersion</code> &mdash; Specifies the maximum API Level
+on which the application is able to run.</li>
+</ul>
+
+<p>For example, to specify the minimum system API Level that an application
+requires in order to run, the application would include in its manifest a
+<code>&lt;uses-sdk&gt;</code> element with a <code>android:minSdkVersion</code>
+attribute. The value of <code>android:minSdkVersion</code> would be the integer
+corresponding to the API Level of the earliest version of the Android platform
+under which the application can run. </p>
+
+<p>When the user attempts to install an application, the Android system first
+checks the <code>&lt;uses-sdk&gt;</code> attributes in the application's
+manifest and compares them against its own internal API Level. The system
+allows the installation to begin only if these conditions are met:</p>
+
+<ul>
+<li>If a <code>android:minSdkVersion</code> attribute is declared, its value
+must be less than or equal to the system's API Level integer. If not declared,
+the system assumes that the application requires API Level 1. </li>
+<li>If a <code>android:maxSdkVersion</code> attribute is declared, its value
+must be equal to or greater than the system's API Level integer.
+If not declared, the system assumes that the application
+has no maximum API Level. </li>
+</ul>
+
+<p>When declared in an application's manifest, a <code>&lt;uses-sdk&gt;</code>
+element might look like this: </p>
+
+<pre>&lt;manifest&gt;
+ ...
+ &lt;uses-sdk android:minSdkVersion="4" /&gt;
+ ...
+&lt;/manifest&gt;</pre>
+
+<p>The principal reason that an application would declare an API Level in
+<code>android:minSdkVersion</code> is to tell the Android system that it is
+using APIs that were <em>introduced</em> in the API Level specified. If the
+application were to be somehow installed on a platform with a lower API Level,
+then it would crash at run-time when it tried to access APIs that don't exist.
+The system prevents such an outcome by not allowing the application to be
+installed if the lowest API Level it requires is higher than that of the
+platform version on the target device.</p>
+
+<p>For example, the {@link android.appwidget} package was introduced with API
+Level 3. If an application uses that API, it must declare a
+<code>android:minSdkVersion</code> attribute with a value of "3". The
+application will then be installable on platforms such as Android 1.5 (API Level
+3) and Android 1.6 (API Level 4), but not on the Android 1.1 (API Level 2) and
+Android 1.0 platforms (API Level 1).</p>
+
+<p>For more information about how to specify an application's API Level
+requirements, see the <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
+ section of the manifest file documentation.</p>
+
+
+<h2 id="considerations">Development Considerations</h2>
+
+<p>The sections below provide information related to API level that you should
+consider when developing your application.</p>
+
+<h3 id="fc">Application forward compatibility</h3>
+
+<p>Android applications are generally forward-compatible with new versions of
+the Android platform.</p>
+
+<p>Because almost all changes to the framework API are additive, an Android
+application developed using any given version of the API (as specified by its
+API Level) is forward-compatible with later versions of the Android platform and
+higher API levels. The application should be able to run on all later versions
+of the Android platform, except in isolated cases where the application uses a
+part of the API that is later removed for some reason. </p>
+
+<p>Forward compatibility is important because many Android-powered devices
+receive over-the-air (OTA) system updates. The user may install your
+application and use it successfully, then later receive an OTA update to a new
+version of the Android platform. Once the update is installed, your application
+will run in a new run-time version of the environment, but one that has the API
+and system capabilities that your application depends on. </p>
+
+<p>In some cases, changes <em>below</em> the API, such those in the underlying
+system itself, may affect your application when it is run in the new
+environment. For that reason it's important for you, as the application
+developer, to understand how the application will look and behave in each system
+environment. To help you test your application on various versions of the Android
+platform, the Android SDK includes multiple platforms that you can download.
+Each platform includes a compatible system image that you can run in an AVD, to
+test your application. </p>
+
+<h3 id="bc">Application backward compatibility</h3>
+
+<p>Android applications are not necessarily backward compatible with versions of
+the Android platform older than the version against which they were compiled.
+</p>
+
+<p>Each new version of the Android platform can include new framework APIs, such
+as those that give applications access to new platform capabilities or replace
+existing API parts. The new APIs are accessible to applications when running on
+the new platform and, as mentioned above, also when running on later versions of
+the platform, as specified by API Level. Conversely, because earlier versions of
+the platform do not include the new APIs, applications that use the new APIs are
+unable to run on those platforms.</p>
+
+<p>Although it's unlikely that an Android-powered device would be downgraded to
+a previous version of the platform, it's important to realize that there are
+likely to be many devices in the field that run earlier versions of the
+platform. Even among devices that receive OTA updates, some might lag and
+might not receive an update for a significant amount of time. </p>
+
+<h3 id="platform">Selecting a platform version and API Level</h3>
+
+<p>When you are developing your application, you will need to choose
+the platform version against which you will compile the application. In
+general, you should compile your application against the lowest possible
+version of the platform that your application can support.
+
+<p>You can determine the lowest possible platform version by compiling the
+application against successively lower build targets. After you determine the
+lowest version, you should create an AVD using the corresponding platform
+version (and API Level) and fully test your application. Make sure to declare a
+<code>android:minSdkVersion</code> attribute in the application's manifest and
+set its value to the API Level of the platform version. </p>
+
+<h3 id="apilevel">Declaring a minimum API Level</h3>
+
+<p>If you build an application that uses APIs or system features introduced in
+the latest platform version, you should set the
+<code>android:minSdkVersion</code> attribute to the API Level of the latest
+platform version. This ensures 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 can function properly on
+their devices. </p>
+
+<p>If your application uses APIs introduced in the latest platform version but
+does <em>not</em> declare a <code>android:minSdkVersion</code> attribute, then
+it will run properly on devices running the latest version of the platform, but
+<em>not</em> on devices running earlier versions of the platform. In the latter
+case, the application will crash at runtime when it tries to use APIs that don't
+exist on the earlier versions.</p>
+
+<h3 id="testing">Testing against higher API Levels</h3>
+
+<p>After compiling your application, you should make sure to test it on the
+platform specified in the application's <code>android:minSdkVersion</code>
+attribute. To do so, create an AVD that uses the platform version required by
+your application. Additionally, to ensure forward-compatibility, you should run
+and test the application on all platforms that use a higher API Level than that
+used by your application. </p>
+
+<p>The Android SDK includes multiple platform versions that you can use,
+including the latest version, and provides an updater tool that you can use to
+download other platform versions as necessary. </p>
+
+<p>To access the updater, use the <code>android</code> command-line tool,
+located in the &lt;sdk&gt;/tools directory. You can launch the Updater by using
+the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+In ADT, you can also access the updater by selecting
+<strong>Window</strong>&nbsp;>&nbsp;<strong>Android SDK and AVD
+Manager</strong>.</p>
+
+<p>To run your application against different platform versions in the emulator,
+create an AVD for each platform version that you want to test. For more
+information about AVDs, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>. If
+you are using a physical device for testing, ensure that you know the API Level
+of the Android platform it runs. See the table at the top of this document for
+a list of platform versions and their API Levels. </p>
+
+
+<h2 id="provisional">Using a Provisional API Level</h2>
+
+<p>During an "Early Look" SDK release, the APIs may not be final, so the API Level integer
+will not be specified. You must instead use a provisional API Level in your application
+manifest in order to build applications against the Early Look platform. In this case,
+the provisional API Level is not an integer, but a string matching the codename of the
+unreleased platform version (for example, "Eclair"). The provisional API Level will be specified
+in the Early Look SDK release notes and is case-sensitive.</p>
+
+<p>The use of a provisional API Level is designed to protect developers
+and device users from inadvertently publishing or installing applications based on the
+Early Look framework API, which may not run properly on actual devices running the final
+system image.</p>
+
+<p>The provisional API Level will only be valid while using the Early Look SDK to run
+applications in the emulator. An application using the provisional API Level can never be
+installed on an Android device. When the final SDK is released, you must replace any
+instances of the provisional API Level in your application manifest with the final
+API Level integer.</p>
+
+
+<h2 id="filtering">Filtering the Reference Documentation by API Level</h2>
-<p>The Android API reference includes information that specififies the minimum API Level required for each
-package, class, and member. You can see this information on the right side of each header or label.</p>
+<p>Reference documentation pages on the Android Developers site offer a "Filter
+by API Level" control in the top-right area of each page. You can use the
+control to show documentation only for parts of the API that are actually
+accessible to your application, based on the API Level that it specifies in
+the <code>android:minSdkVersion</code> attribute of its manifest file. </p>
-<p>By default, the reference documentation shows all APIs available with the latest SDK release.
-This means that the reference assumes you're using the latest API Level and will show you everything available
-with it. If you're developing applications for a version of Android that does not support the latest API Level,
-then you can filter the reference to reveal only the packages, classes, and members available for that API Level.
-When viewing the reference, use the "Filter by API Level" selection box (below the search box) to pick the API Level
-you'd like to view.</p>
+<p>To use filtering, set the control to the same API Level as that specified
+by your application. Notice that APIs introduced in a later API Level are
+then grayed out and their content is masked, since they would not be
+accessible to your application. </p>
+<p>Filtering by API Level in the documentation does not provide a view
+of what is new or introduced in each API Level &mdash; it simply provides a way
+to view the entire API associated with a given API Level, while excluding API
+elements introduced in later API Levels.</p>
+<p>By default, API Level filtering is enabled and set to show the latest API
+Level. If you do not want to use filtering reference documentation,
+simply select the highest available API Level. </p>
+<p>Also note that the reference documentation for individual API elements
+specifies the API Level at which the elements were introduced. The API Level
+for packages and classes is specified as "Since &lt;api level&gt;" at the
+top-right corner of the content area on each documentation page. The API Level
+for class members is specified in their detailed description headers,
+at the right margin. </p>
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index a5cf7358500c..c3ec2e552cc5 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -149,15 +149,15 @@ on running your applicaiton.</p>
<h3 id="CreatingAnAvd">Creating an AVD</h3>
-<p>With ADT 0.9.2 and above, the Android AVD Manager provides a simple graphical interface
+<p>With ADT 0.9.3 and above, the Android SDK and AVD Manager provides a simple graphical interface
for creating and managing AVDs. (If you're using ADT version 0.9.1 or older, you must
use the <code>android</code> tool to create your AVDs&mdash;read the AVD guide to
<a href="{@docRoot}guide/developing/tools/avd.html#creating">Creating an AVD</a>.)
-<p>To create an AVD with the Android AVD Manager:</p>
+<p>To create an AVD with the AVD Manager:</p>
<ol>
- <li>Select <strong>Window > Android AVD Manager</strong>, or click the Android AVD Manager icon (a black device)
+ <li>Select <strong>Window > Android SDK and AVD Manager</strong>, or click the Android SDK and AVD Manager icon (a black device)
in the Eclipse toolbar.</p>
</li>
<li>In the Virtual Devices panel, you'll see a list of existing AVDs. Click <strong>New</strong>
@@ -169,7 +169,7 @@ use the <code>android</code> tool to create your AVDs&mdash;read the AVD guide t
<li>Click <strong>Create AVD</strong>.</li>
</ol>
-<p>Your AVD is now ready and you can close the Android AVD Manager.
+<p>Your AVD is now ready and you can close the AVD Manager.
In the next section, you'll see how the AVD is used
when launching your application on an emulator.</p>
@@ -217,7 +217,7 @@ to start, the emulator options to use, and so on. When you first run a project
as an <em>Android Application</em>, 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
+(with no preferred AVD). If the default settings don't suit your project, you can
customize the launch configuration or even create a new.</p>
<p>To create or modify a launch configuration, follow these steps as appropriate
@@ -256,6 +256,12 @@ for your Eclipse version:</p>
when selecting an AVD to run your application.
See the following section on <a href=#AutoAndManualModes">Automatic and manual target
modes</a>).</p>
+ <p>You can specify any emulator options to the Additional Emulator Command
+ Line Options field. For example, you could add <code>-scale 96dpi</code> to
+ scale the AVD's screen to an accurate size, based on the dpi of your
+ computer monitor. For a full list of emulator options, see the <a
+ href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>
+document.</p>
</li>
</ol>
diff --git a/docs/html/guide/developing/other-ide.jd b/docs/html/guide/developing/other-ide.jd
index 8cdf0b91d7b8..2080873eaf58 100644
--- a/docs/html/guide/developing/other-ide.jd
+++ b/docs/html/guide/developing/other-ide.jd
@@ -85,7 +85,8 @@ command to generate all the necessary files and folders.</p>
navigate to the <code>tools/</code> directory of your SDK and run:</p>
<pre>
android create project \
---target <em>&lt;targetID&gt;</em> \
+--target <em>&lt;target_ID&gt;</em> \
+--name <em>&lt;your_project_name&gt;</em> \
--path <em>/path/to/your/project</em> \
--activity <em>&lt;your_activity_name&gt;</em> \
--package <em>&lt;your_package_namespace&gt;</em>
@@ -96,11 +97,14 @@ android create project \
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: <code>android list targets</code>.</li>
+ <li><code>name</code> is the name for your project. This is optional. If provided, this name will be used
+ for your .apk filename when you build your application.</li>
<li><code>path</code> is the location of your project directory. If the directory does not exist,
it will be created for you.</li>
- <li><code>activity</code> is the name for your {@link android.app.Activity} class. This class file
+ <li><code>activity</code> is the name for your default {@link android.app.Activity} class. This class file
will be created for you inside
- <code><em>&lt;path_to_your_project&gt;</em>/src/<em>&lt;your_package_namespace_path&gt;</em>/</code>.</li>
+ <code><em>&lt;path_to_your_project&gt;</em>/src/<em>&lt;your_package_namespace_path&gt;</em>/</code>.
+ This will also be used for your .apk filename unless you provide a the <code>name</code>.</li>
<li><code>package</code> is the package namespace for your project, following the same rules as for
packages in the Java programming language.</li>
</ul>
@@ -109,9 +113,10 @@ android create project \
<pre>
android create project \
--target 1 \
---path ./myProject \
---activity MyActivity \
---package com.example.myproject
+--name MyAndroidApp \
+--path ./MyAndroidAppProject \
+--activity MyAndroidAppActivity \
+--package com.example.myandroid
</pre>
<p>The tool generates the following files and directories:</p>
@@ -123,7 +128,8 @@ android create project \
<li><code>default.properties</code> - Properties for the build system. <em>Do not modify
this file</em>.</li>
<li><code>build.properties</code> - Customizable properties for the build system. You can edit this
- file to overried default build settings used by Ant.</li>
+ file to override default build settings used by Ant and provide a pointer to your keystore and key alias
+ so that the build tools can sign your application when built in release mode.</li>
<li><code>src<em>/your/package/namespace/ActivityName</em>.java</code> - The Activity class
you specified during project creation.</li>
<li><code>bin/</code> - Output directory for the build script.</li>
@@ -141,7 +147,7 @@ that you must use the <a href="{@docRoot}guide/developing/tools/adb.html">Androi
to the emulator (discussed later). So you need access between your project solution and
the <code>tools/</code> folder.</p>
-<p class="warning"><strong>Note:</strong> You should refrain from moving the
+<p class="caution"><strong>Caution:</strong> 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.)</p>
@@ -153,14 +159,15 @@ work again.)</p>
a new project from existing code, use the
<code>android update project</code> 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 <code>--target</code> option). The <code>android</code> tool will generate any files and
+(with the <code>--target</code> option) and the project name (with the <code>--name</code>
+option). The <code>android</code> 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.</p>
<p>To update an existing Android project, open a command-line
and navigate to the <code>tools/</code> directory of your SDK. Now run:</p>
<pre>
-android update project --target <em>&lt;targetID&gt;</em> --path <em>path/to/your/project/</em>
+android update project --name <em>&lt;project_name&gt;</em> --target <em>&lt;target_ID&gt;</em> --path <em>path/to/your/project/</em>
</pre>
<ul>
@@ -169,11 +176,13 @@ android update project --target <em>&lt;targetID&gt;</em> --path <em>path/to/you
like to build your project against. To see a list of available targets and their corresponding IDs,
execute: <code>android list targets</code>.</li>
<li><code>path</code> is the location of your project directory.</li>
+ <li><code>name</code> is the name for the project. This is optional&mdash;if you're not
+ changing the project name, you don't need this.</li>
</ul>
<p>Here's an example:</p>
<pre>
-android update project --target 2 --path ./myProject
+android update project --name MyApp --target 2 --path ./MyAppProject
</pre>
@@ -237,8 +246,9 @@ install JDK in a non-space directory, for example: <code>c:\java\jdk1.6.0_02</co
<h3 id="DebugMode">Building in debug mode</h3>
<p>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
+in debug mode and immediately install it on an emulator. In debug mode, the build tools
+automatically sign your application with a debug key and optimize the package with
+{@code zipalign}. 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.</p>
@@ -248,9 +258,9 @@ manually signing the application.</p>
<li>Open a command-line and navigate to the root of your project directory.</li>
<li>Use Ant to compile your project in debug mode:
<pre>ant debug</pre>
- <p>This creates your Android application .apk file inside the project <code>bin/</code>
- directory, named <code><em>&lt;your_DefaultActivity_name&gt;</em>-debug.apk</code>. The file
- is already signed with the debug key.</p>
+ <p>This creates your debug .apk file inside the project <code>bin/</code>
+ directory, named <code><em>&lt;your_project_name&gt;</em>-debug.apk</code>. The file
+ is already signed with the debug key and has been aligned with {@code zipalign}.</p>
</li>
</ol>
@@ -267,23 +277,86 @@ about <a href="#Running">Running Your Application</a>.</p>
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.</p>
-<p>To build in release mode:</p>
+<p>Before you start building your application in release mode, be aware that you must sign
+the resulting application package with your private key, and should then align it using the
+{@code zipalign} tool. There are two approaches to building in release mode:
+build an unsigned package in release mode and then manually sign and align
+the package, or allow the build script
+to sign and align the package for you.</p>
+
+<h4 id="ManualReleaseMode">Build unsigned</h4>
+
+<p>If you build your application <em>unsigned</em>, then you will need to
+manually sign and align the package.</p>
+
+<p>To build an <em>unsigned</em> .apk in release mode:</p>
<ol>
<li>Open a command-line and navigate to the root of your project directory.</li>
<li>Use Ant to compile your project in release mode:
<pre>ant release</pre>
- <p>This creates your Android application .apk file inside the project <code>bin/</code>
- directory, named <code><em>&lt;your_DefaultActivity_name&gt;</em>.apk</code>.</p>
- <p class="note"><strong>Note:</strong> The .apk file is <em>unsigned</em> at this point.
- You can't install it on an emulator or device until you sign it with your private key.</p>
</li>
</ol>
-<p>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,
+<p>This creates your Android application .apk file inside the project <code>bin/</code>
+directory, named <code><em>&lt;your_project_name&gt;</em>-unsigned.apk</code>.</p>
+
+<p class="note"><strong>Note:</strong> The .apk file is <em>unsigned</em> at this point
+and can't be installed until signed with your private key.</p>
+
+<p>Once you have created the unsigned .apk, your next step is to sign the .apk
+with your private key and then align it with {@code zipalign}. To complete this procedure,
read <a href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
+<p>When your .apk has been signed and aligned, it's ready to be distributed to end-users.</p>
+
+<h4 id="AutoReleaseMode">Build signed and aligned</h4>
+
+<p>If you would like, you can configure the Android build script to automatically
+sign and align your application package. To do so, you must provide the path to your keystore
+and the name of your key alias in your project's {@code build.properties} file. With this
+information provided, the build script will prompt you for your keystore and alias password
+when you build in release mode and produce your final application package, which will be ready
+for distribution.</p>
+
+<p class="caution"><strong>Caution:</strong> Due to the way Ant handles input, the password that
+you enter during the build process <strong>will be visible</strong>. If you are
+concerned about your keystore and alias password being visible on screen, then you
+may prefer to perform the application signing manually, via Jarsigner (or a similar tool). To instead
+perform the signing procedure manually, <a href="#ManualReleaseMode">buid unsigned</a> and then continue
+with <a href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
+
+<p>To specify your keystore and alias, open the project {@code build.properties} file (found in the
+root of the project directory) and add entries for {@code key.store} and {@code key.alias}.
+For example:</p>
+
+<pre>
+key.store=/path/to/my.keystore
+key.alias=mykeystore
+</pre>
+
+<p>Save your changes. Now you can build a <em>signed</em> .apk in release mode:</p>
+
+<ol>
+ <li>Open a command-line and navigate to the root of your project directory.</li>
+ <li>Use Ant to compile your project in release mode:
+ <pre>ant release</pre>
+ </li>
+ <li>When prompted, enter you keystore and alias passwords.
+ <p class="caution"><strong>Caution:</strong> As described above,
+ your password will be visible on the screen.</p>
+ </li>
+</ol>
+
+<p>This creates your Android application .apk file inside the project <code>bin/</code>
+directory, named <code><em>&lt;your_project_name&gt;</em>-release.apk</code>.
+This .apk file has been signed with the private key specified in
+{@code build.properties} and aligned with {@code zipalign}. It's ready for
+installation and distribution.</p>
+
+
+<h4>Once built and signed in release mode</h4>
+
<p>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
<a href="#Running">Running Your Application</a>.
@@ -329,7 +402,7 @@ id:2
you'll use this in the next step.</p>
</li>
<li>Create a new AVD using your selected deployment target:
- <pre>android create avd --name <em>&lt;your_avd_name&gt;</em> --target <em>&lt;targetID&gt;</em></pre>
+ <pre>android create avd --name <em>&lt;your_avd_name&gt;</em> --target <em>&lt;target_ID&gt;</em></pre>
<li>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,
diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd
index b8f205ec0f7e..06b1245c426d 100644
--- a/docs/html/guide/developing/tools/avd.jd
+++ b/docs/html/guide/developing/tools/avd.jd
@@ -11,6 +11,8 @@ page.title=Android Virtual Devices
hardware options, system image, and data storage.
<li>You create AVD configurations to model different device environments
in the Android emulator.</li>
+ <li>The <code>android</code> tool offers a graphical Android AVD
+ Manager and a command-line interface for creating AVDs.</li>
</ul>
<h2>In this document</h2>
<ol>
@@ -72,9 +74,18 @@ reference of emulator options, please see the <a
href="{@docRoot}guide/developing/tools/emulator.html">Emulator</a>
documentation. </p>
-<p>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 <a
+<p>To create and manage AVDs, you use the <code>android</code> tool provided in
+the <code>tools/</code> directory of the Android SDK. The tool provides both a
+graphical AVD manager and a command-line interface that you can use to
+create AVDs. To access the graphical AVD manager, run the
+<code>android</code> tool without options. The sections below describe how to
+use the <code>android</code> command-line interface to create and manage AVDs.
+Note that some functionality, such as the capability to create an AVD with a
+custom hardware configuration, are only available through the command-line
+interface. </p>
+
+<p>For more information about how to work with AVDs from inside your development
+environment, see <a
href="{@docRoot}guide/developing/eclipse-adt.html">Developing in Eclipse with
ADT</a> or <a href="{@docRoot}guide/developing/other-ide.html">Developing in
Other IDEs</a>, as appropriate for your environment.</p>
@@ -89,11 +100,11 @@ you need to create an AVD before you can run any application in the emulator
</div>
</div>
-<p>To create an AVD, you use the android tool, a command-line utility
-available in the <code>&lt;sdk&gt;/tools/</code> 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
-<code>&lt;sdk&gt;/tools/</code> directory, if needed</p>
+<p>To create an AVD, you use the <code>android</code> tool, a command-line
+utility available in the <code>&lt;sdk&gt;/tools/</code> directory. Managing
+AVDs is one of the two main function of the <code>android</code> tool (the other
+is creating and updating Android projects). Open a terminal window and change to
+the <code>&lt;sdk&gt;/tools/</code> directory, if needed</p>
<p>To create each AVD, you issue the command <code>android create avd</code>,
with options that specify a name for the new AVD and the system image you want
@@ -118,11 +129,12 @@ 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 <code>-t</code> argument.<p>
<p>To specify the system image to use, you refer to its <em>target ID</em>
-&mdash; an integer &mdash; 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
-<em>before</em> you run the <code>android create avd</code> command.
+&mdash; an integer &mdash; as assigned by the <code>android</code> 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 <code>android</code> tool list the
+available system images and the target ID of each, as described in the next
+section. You should do this <em>before</em> you run the <code>android create
+avd</code> command.
</p>
<h3 id="listingtargets">Listing targets</h3>
@@ -131,7 +143,7 @@ target ID of each, as described in the next section. You should do this
<pre>android list targets</pre>
-<p>The android tool scans the <code>&lt;sdk&gt;/platforms</code> and
+<p>The <code>android</code> tool scans the <code>&lt;sdk&gt;/platforms</code> and
<code>&lt;sdk&gt;/add-ons</code> directories looking for valid system images and
then generates the list of targets. Here's an example of the command output:
</p>
@@ -199,24 +211,22 @@ system image in the list above): </p>
<pre>android create avd -n my_android1.5 -t 2</pre>
<p>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. </p>
-
+platform"), the <code>android</code> tool next asks you whether you want to
+create a custom hardware profile. </p>
<pre>Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]</pre>
<p>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
+The <code>android</code> tool creates the AVD with name and system image mapping you
requested, with the options you specified.
-<p class="note">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. </p>
-
+<p class="note">If you are creating an AVD whose target is an SDK add-on, the
+<code>android</code> 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. </p>
<p>For a list of options you can use in the <code>android create avd</code>
command, see the table in <a href="#options">Command-line options for AVDs</a>,
at the bottom of
@@ -225,11 +235,11 @@ this page. </p>
<h3 id="hardwareopts">Setting hardware emulation options</h3>
<p>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). </p>
-
+platform"), the <code>android</code> 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). </p>
<table>
<tr>
@@ -249,7 +259,6 @@ configuration file (the config.ini file in the AVD's local directory). </p>
<td>Whether there is a touch screen or not on the device. Default value is "yes".</td>
<td>hw.touchScreen
-
<tr>
<td>Trackball support </td>
<td>Whether there is a trackball on the device. Default value is "yes".</td>
@@ -339,23 +348,30 @@ configuration file (the config.ini file in the AVD's local directory). </p>
<td>Default value is "66MB".</td>
<td>disk.cachePartition.size </td>
</tr>
+
+<tr>
+<td>Abstracted LCD density</td>
+<td>Sets the generalized density characteristic used by the AVD's screen. Default value is "160".</td>
+<td>hw.lcd.density </td>
+</tr>
+
</table>
<h3 id="location">Default location of the AVD files</h3>
-<p>When you create an AVD, the android tool creates a dedicated directory for it
+<p>When you create an AVD, the <code>android</code> 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 &mdash; instead, the AVD configuration file contains a mapping to the
system image, which it loads when the AVD is launched. </p>
-<p>The android tool also creates a &lt;AVD name&gt;.ini file for the AVD at the
+<p>The <code>android</code> tool also creates a &lt;AVD name&gt;.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.</p>
-<p>By default, the android tool creates the AVD directory inside
+<p>By default, the <code>android</code> tool creates the AVD directory inside
<code>~/.android/avd/</code> (on Linux/Mac), <code>C:\Documents and
Settings\&lt;user&gt;\.android\</code> on Windows XP, and
<code>C:\Users\&lt;user&gt;\.android\</code> on Windows Vista.
@@ -396,18 +412,18 @@ Error: Invalid value in image.sysdir. Run 'android update avd -n foo' </pre>
<h3 id="deleting">Deleting an AVD</h3>
-<p>You can use the android tool to delete an AVD. Here is the command usage:</p>
+<p>You can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p>
<pre>android delete avd -n &lt;name&gt; </pre>
-<p>When you issue the command, the android tool looks for an AVD matching the
+<p>When you issue the command, the <code>android</code> tool looks for an AVD matching the
specified name deletes the AVD's directory and files. </p>
<h2 id="options">Command-line options for AVDs</h2>
<p>The table below lists the command-line options you can use with the
-android tool. </p>
+<code>android</code> tool. </p>
<table>
@@ -448,9 +464,9 @@ android tool. </p>
<td><code>-f</code></td>
<td>Force creation of the AVD</td>
<td>By 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
+ existing AVD, the <code>android</code> tool will not create the new AVD or overwrite
the existing AVD. If you specify the <code>-f</code> option, however, the
- android tool will automatically overwrite any existing AVD that has the
+ <code>android</code> 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. </td>
</tr>
@@ -465,7 +481,7 @@ files.</td>
<td><code>-s &lt;name&gt;</code> or <br>
<code>-s &lt;width&gt;-&lt;height&gt;</code> </td>
<td>The skin to use for this AVD, identified by name or dimensions.</td>
- <td>The android tool scans for a matching skin by name or dimension in the
+ <td>The <code>android</code> tool scans for a matching skin by name or dimension in the
<code>skins/</code> directory of the target referenced in the <code>-t
&lt;targetID&gt;</code> argument. Example: <code>-s HVGA-L</code></td>
</tr>
diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd
index 82d3c8dd6d0a..a9b6914cf476 100644
--- a/docs/html/guide/developing/tools/emulator.jd
+++ b/docs/html/guide/developing/tools/emulator.jd
@@ -1,7 +1,7 @@
page.title=Android Emulator
@jd:body
-<img src="{@docRoot}images/emulator-hvga-p.png" alt="Image of the Android Emulator" width="271" height="524" style="margin-left:0em;margin-top:-4em;float:right;"/>
+<div style="padding:1em;"><img src="/images/emulator-wvga800l.png" alt="Image of the Android Emulator" width="367" height="349" style="margin-left:2em;margin-top:-4em;float:right;"/></div>
<p>The Android SDK includes a mobile device emulator -- a virtual mobile device
that runs on your computer. The emulator lets you prototype, develop, and test
@@ -27,9 +27,13 @@ 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.</p>
-<div class="inline-toc" style="whitespace:nowrap;">
-<h4>In this document:</h4>
-<div class="g-unit g-first" style="whitespace:nowrap;width:35%;">
+<table>
+<tr>
+<td colspan="2" style="border:0;"><strong>In this document:</strong></td>
+</tr>
+<tr>
+<td style="border:0;">
+
<ol class="toc">
<li><a href="#overview">Overview</a></li>
<li><a href="#starting">Starting and Stopping the Emulator</a></li>
@@ -53,9 +57,9 @@ on the data channel.</p>
<li><a href="#calling">Sending a Voice Call or SMS to Another Emulator Instance</a></li>
</ol></li>
</ol>
-</div>
+</td>
-<div class="g-unit" style="whitespace:nowrap;">
+<td style="border:0;">
<ol class="toc">
<li><a href="#console">Using the Emulator Console</a>
<ol class="toc">
@@ -85,9 +89,9 @@ on the data channel.</p>
<li><a href="#troubleshooting">Troubleshooting Emulator Problems</a></li>
<li><a href="#limitations">Emulator Limitations</a></li>
</ol>
-</div>
+</td>
-</div>
+</table>
<a name="overview"></a>
@@ -260,11 +264,11 @@ the keys of your keyboard. </p>
</tr>
<tr>
<td>Switch to previous layout orientation (for example, portrait, landscape)</td>
- <td>KEYPAD_7, F11</td>
+ <td>KEYPAD_7, Ctrl-F11</td>
</tr>
<tr>
<td>Switch to next layout orientation (for example, portrait, landscape)</td>
- <td>KEYPAD_9, F12</td>
+ <td>KEYPAD_9, Ctrl-F12</td>
</tr>
<tr>
<td>Toggle cell networking on/off</td>
@@ -721,19 +725,19 @@ scale in direct relationship with &lt;delay&gt; values.</p>
</tr>
<tr>
<td><code>-skin &lt;skinID&gt;</code></td>
- <td>Start the emulator with the specified skin. </td>
- <td>The standard Android platforms includes a <a href="#skins">choice of
- four skins</a>:<br />
- <li>HVGA-L (480x320, landscape)</li>
- <li>HVGA-P (320x480, portrait) (default) </li>
- <li>QVGA-L (320x240, landscape)</li>
- <li>QVGA-P (240x320, portrait) </li>
+ <td>This emulator option is deprecated. </td>
+ <td>Please set skin options using AVDs, rather than by using this emulator
+option. Using this option may yield unexpected and in some cases misleading
+results, since the density with which to render the skin may not be defined.
+AVDs let you associate each skin with a default density and override the default
+as needed. For more information, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>.
</td>
</tr>
<tr>
<td><code>-skindir &lt;dir&gt;</code></td>
- <td>Search for emulator skins in &lt;dir&gt;. </td>
- <td>&nbsp;</td></tr>
+ <td>This emulator option is deprecated. </td>
+ <td>See comments for <code>-skin</code>, above.</td></tr>
</table>
<a name="diskimages"></a>
@@ -1636,41 +1640,9 @@ kilobits/sec):</p>
<h2>Using Emulator Skins</h2>
-<p>You can run the emulator with any of four default skins, as described in the table below. To specify a skin, use <code>-skin &lt;skinID&gt;</code> when starting the emulator. </p>
-
-<p>For example: </p>
-
-<pre>emulator -skin HVGA-L</pre>
+<p>The Android SDK includes several Emulator skins that you can use to control the resolution and density of the emulated device's screen. To select a specific skin for running the emulator, create an AVD that uses that skin. Please do not use deprecated emulator options such as <code>-skin</code> to control the skin used by an emulator instance. For more information about AVDs, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>. </p>
-<p>Note that you must enter the <code>&lt;skinID&gt;</code> in uppercase letters (if your development computer is case-sensitive).</p>
-
-<table border="0" style="clear:left;padding:2em;">
- <tr>
- <th width="20%">skinID</th>
- <th >Description</th>
- <th >Skin</th>
- </tr>
- <tr>
- <td><code>HVGA-L</code></td>
- <td>480x320, landscape</td>
- <td><img src="{@docRoot}images/e-mini-hvga-l.png" width="219" height="113"></td>
- </tr>
- <tr>
- <td><code>HVGA-P</code></td>
- <td>320x480, portrait (default)</td>
- <td><img src="{@docRoot}images/e-mini-hvga-p.png" width="113" height="219"></td>
- </tr>
- <tr>
- <td><code>QVGA-L</code></td>
- <td>320x240, landscape</td>
- <td><img src="{@docRoot}images/e-mini-qvga-l.png" width="119" height="197"></td>
- </tr>
- <tr>
- <td><code>QVGA-P</code></td>
- <td>240x320, portrait</td>
- <td><img src="{@docRoot}images/e-mini-qvga-p.png" width="95" height="173"></td>
- </tr>
-</table>
<a name="multipleinstances"></a>
diff --git a/docs/html/guide/developing/tools/index.jd b/docs/html/guide/developing/tools/index.jd
index 2c9e45df3117..91b430ff771a 100644
--- a/docs/html/guide/developing/tools/index.jd
+++ b/docs/html/guide/developing/tools/index.jd
@@ -89,5 +89,10 @@ applications on the emulator. </p>
<dd>A script that lets you manage AVDs and generate <a
href="http://ant.apache.org/" title="Ant">Ant</a> build files that
you can use to compile your Android applications. </dd>
+
+ <dt><a href="zipalign.html">zipalign</a></dt>
+ <dd>An important .apk optimization tool. This tool ensures that all uncompressed data starts
+ with a particular alignment relative to the start of the file. This should always be used
+ to align .apk files after they have been signed.</dd>
</dl>
diff --git a/docs/html/guide/developing/tools/othertools.jd b/docs/html/guide/developing/tools/othertools.jd
index 603609eb1ae0..b4c4cf32dd08 100644
--- a/docs/html/guide/developing/tools/othertools.jd
+++ b/docs/html/guide/developing/tools/othertools.jd
@@ -1,9 +1,11 @@
page.title=Other Tools
@jd:body
-<p>The sections below describe other tools that you can use when building Android applications. </p>
+<p>The sections below describe other tools that you can use when building
+Android applications. </p>
-<p>All of the tools are included in the Android SDK and are accessible from the <code>&lt;sdk&gt;/tools/</code> directory.</p>
+<p>All of the tools are included in the Android SDK and are accessible from the
+<code>&lt;sdk&gt;/tools/</code> directory.</p>
<h2>Contents</h2>
@@ -16,24 +18,32 @@ page.title=Other Tools
<a name="activitycreator"></a>
<h2 id="android">android</h2>
-<p>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. </p>
+<p>{@code android} is an important development tool that lets you:</p>
-<p>For information about how to use the android tool to manage AVDs, see <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>. </p>
+<ul>
+ <li>Create, delete, and view Android Virtual Devices (AVDs). See
+ <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>.</li>
+ <li>Create and update Android projects. See
+ <a href="{@docRoot}guide/developing/other-ide.html">Developing in Other IDEs</a>.</li>
+ <li>Update your Android SDK with new platforms, add-ons, and documentation. See
+ <a href="{@docRoot}guide/developing/updating-sdk.html">Updating Your SDK</a>.</li>
+</ul>
-<p>For information about how to use the android tool to create or update a project, see <a href="{@docRoot}guide/developing/other-ide.html">Developing in Other IDEs</a>. </p>
-
-<p>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. </p>
-
-<p>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. </p>
-
-<p class="note">Note: The android tool replaces the activitycreator tool provided in previous SDK releases.</p>
+<p>If you develop in Eclipse with the ADT plugin, you can perform
+these tasks directly from the IDE. To create
+Android projects and AVDs from Eclipse, see <a href="{@docRoot}guide/developing/eclipse-adt.html">Developing
+In Eclipse</a>. To update your SDK from Eclipse, see
+<a href="{@docRoot}guide/developing/updating-sdk.html">Updating Your SDK</a>.
+</p>
<a name="mksdcard"></a>
<h2>mksdcard</h2>
-<p>The mksdcard tool lets you quickly create a FAT32 disk image that you can load in the emulator, to simulate the presence of an SD card in the device. Here is the usage for mksdcard:</p>
+<p>The mksdcard tool lets you quickly create a FAT32 disk image that you can
+load in the emulator, to simulate the presence of an SD card in the device.
+Here is the usage for mksdcard:</p>
<pre>mksdcard [-l label] &lt;size&gt;[K|M] &lt;file&gt;</pre>
@@ -53,7 +63,8 @@ page.title=Other Tools
<tr>
<td><code>size</code></td>
<td>An integer that specifies the size (in bytes) of disk image to create.
-You can also specify size in kilobytes or megabytes, by appending a "K" or "M" to &lt;size&gt;. For example, <code>1048576K</code>, <code>1024M</code>.</td>
+You can also specify size in kilobytes or megabytes, by appending a "K" or "M" to
+&lt;size&gt;. For example, <code>1048576K</code>, <code>1024M</code>.</td>
</tr>
<tr>
@@ -63,7 +74,9 @@ You can also specify size in kilobytes or megabytes, by appending a "K" or "M" t
</table>
-<p>Once you have created the disk image file, you can load it in the emulator at startup using the emulator's -sdcard option. For more information, see <a href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>.</p>
+<p>Once you have created the disk image file, you can load it in the emulator at
+startup using the emulator's -sdcard option. For more information, see
+<a href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>.</p>
<pre>emulator -sdcard &lt;file&gt;</pre>
@@ -71,7 +84,11 @@ You can also specify size in kilobytes or megabytes, by appending a "K" or "M" t
<h2>dx</h2>
-<p>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 <code>dx --help</code>.</p>
+<p>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 <code>dx --help</code>.</p>
diff --git a/docs/html/guide/developing/tools/zipalign.jd b/docs/html/guide/developing/tools/zipalign.jd
new file mode 100644
index 000000000000..6231798408d0
--- /dev/null
+++ b/docs/html/guide/developing/tools/zipalign.jd
@@ -0,0 +1,65 @@
+page.title=zipalign
+@jd:body
+
+<p>zipalign is an archive alignment tool that provides important
+optimization to Android application (.apk) files.
+The purpose is to ensure that all uncompressed data starts
+with a particular alignment relative to the start of the file. Specifically,
+it causes all uncompressed data within the .apk, such as images or raw files,
+to be aligned on 4-byte boundaries. This
+allows all portions to be accessed directly with {@code mmap()} even if they
+contain binary data with alignment restrictions.
+The benefit is a reduction in the amount of RAM consumed
+when running the application.</p>
+
+<p>This tool should always be used to align your .apk file before
+distributing it to end-users. The Android build tools can handle
+this for you. When using Eclipse with the ADT plugin, the Export Wizard
+will automatically zipalign your .apk after it signs it with your private key.
+The build scripts used
+when compiling your application with Ant will also zipalign your .apk,
+as long as you have provided the path to your keystore and the key alias in
+your project {@code build.properties} file, so that the build tools
+can sign the package first.</p>
+
+<p class="caution"><strong>Caution:</strong> zipalign must only be performed
+<strong>after</strong> the .apk file has been signed with your private key.
+If you perform zipalign before signing, then the signing procedure will undo
+the alignment. Also, do not make alterations to the aligned package.
+Alterations to the archive, such as renaming or deleting entries, will
+potentially disrupt the alignment of the modified entry and all later
+entries. And any files added to an "aligned" archive will not be aligned.</p>
+
+<p>The adjustment is made by altering the size of
+the "extra" field in the zip Local File Header sections. Existing data
+in the "extra" fields may be altered by this process.</p>
+
+<p>For more information about how to use zipalign when building your
+application, please read <a href="{@docRoot}guide/publishing/app-signing.html">Signing
+Your Application</a>.</p>
+
+
+<h3>Usage</h3>
+
+<p>To align {@code infile.apk} and save it as {@code outfile.apk}:</p>
+
+<pre>zipalign [-f] [-v] &lt;alignment> infile.apk outfile.apk</pre>
+
+<p>To confirm the alignment of {@code existing.apk}:</p>
+
+<pre>zipalign -c -v &lt;alignment> existing.apk</pre>
+
+<p>The {@code &lt;alignment>} is an integer that defines the byte-alignment boundaries.
+This must always be 4 (which provides 32-bit alignment) or else it effectively
+does nothing.</p>
+
+<p>Flags:</p>
+
+<ul>
+ <li>{@code -f} : overwrite existing outfile.zip</li>
+ <li>{@code -v} : verbose output</li>
+ <li>{@code -c} : confirm the alignment of the given file</li>
+</ul>
+
+
+
diff --git a/docs/html/guide/developing/updating-sdk.jd b/docs/html/guide/developing/updating-sdk.jd
new file mode 100644
index 000000000000..f65eabba050d
--- /dev/null
+++ b/docs/html/guide/developing/updating-sdk.jd
@@ -0,0 +1,108 @@
+page.title=Updating Your SDK
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>Quickview</h2>
+<ul>
+ <li>Use the Android SDK and AVD Manager to
+ install individual Android platforms, add-ons, tools
+ and documentation.</li>
+ <li>Keep your SDK up-to-date without having to install new
+ SDK directories and update your Eclipse preferences or {@code PATH}
+ variable.</li>
+ <li>The Android SDK and AVD Manager is available only with the
+ Android 1.6 SDK or later.</li>
+</ul>
+
+<h2>In this document</h2>
+<ol>
+ <li><a href="#Install">Installing SDK Packages</a></li>
+ <li><a href="#Add">Adding SDK Package Sites</a></li>
+</ol>
+</div>
+</div>
+
+<p>The <strong>Android SDK and AVD Manager</strong> lets you
+update your Android SDK without a visit to the
+Android Developers web site. Instead of downloading an entirely new SDK
+that includes Android platforms, tools, and documentation, you can instead
+install only the individual packages that you want.</p>
+
+<p>For example, when a new version of the Android platform is made available
+for developing applications, use the SDK and AVD Manager to install the
+platform into your existing SDK directory. You can then use the new platform
+in your <a href="{@docRoot}guide/developing/tools/avd.html">AVDs</a> and
+build your apps against it.</p>
+
+<p>The benefit to using this feature is that your SDK directory will
+remain the same. You don't need to reset the SDK location in
+your Eclipse preferences or modify your {@code PATH} environment variable,
+because all new packages are installed into your existing SDK directory.</p>
+
+
+<p>The SDK and AVD Manager can be opened in two ways:</p>
+<ul>
+ <li>Execute the
+ <a href="{@docRoot}guide/developing/tools/othertools.html#android">{@code
+ android}</a> tool with no options, or</li>
+ <li>From Eclipse, select <strong>Window</strong> > <strong>Android
+ SDK and AVD Manager</strong>.</li>
+</ul>
+
+<p>The screenshot below shows the Android SDK and AVD Manager
+with the Available Packages open.</p>
+
+<img src="{@docRoot}images/sdk_manager_packages.png" alt="" />
+
+
+<h2 id="Install">Installing SDK Packages</h2>
+
+<p>When a new Android SDK platform, add-on, set of development tools or
+documentation becomes available, you can quickly download and
+install them into your existing Android SDK:</p>
+
+<ol>
+ <li>Select <strong>Available Packages</strong> in the left panel.
+ This will reveal all packages currently available for download.</li>
+ <li>Select the packages you'd like to install and click <strong>Install
+ Selected</strong>.</li>
+ <li>Verify and accept the packages you want and click <strong>Install
+ Accepted</strong>. The packages will now be installed into your existing
+ Android SDK directories.</li>
+</ol>
+
+<p>New platforms are automatically saved into the
+<code><em>&lt;sdk_dir>/</em>platforms/</code> directory of your SDK;
+new add-ons are saved in the <code><em>&lt;sdk_dir>/</em>add-ons/</code>
+directory; and new documentation is saved in the existing
+<code><em>&lt;sdk_dir>/</em>docs/</code> directory (old docs are replaced).</p>
+
+<p class="note"><strong>Tip:</strong>
+Use the "Display updates only" checkbox to show only the packages
+you do not have.</p>
+
+
+<h2 id="Add">Adding SDK Package Sites</h2>
+
+<p>By default, <strong>Available Packages</strong> only shows
+the Google repository for Android SDK packages and Google API
+add-ons. You can add additional sites that host
+Android SDK add-ons, then download add-on packages from them.</p>
+
+<p>For example, a mobile carrier or hardware manufacturer may offer additional
+API libraries that are supported by their own Android-powered devices.
+In order for you to develop using their libraries, you may need to install an
+Android SDK add-on.
+If the carrier or manufacturer has hosted an add-on repository file on their
+web site, add their site to the SDK and AVD Manager:</p>
+<ol>
+ <li>Select <strong>Available Packages</strong> in the left panel.</li>
+ <li>Click <strong>Add Site</strong> and enter the URL of the
+{@code repository.xml} file. Click <strong>OK</strong>.</li>
+</ol>
+<p>Any SDK packages available from the web site will now be listed and
+available for you to install in your existing Android SDK.</p>
+
+
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index a5dadbc25acd..4324a0e15041 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -98,7 +98,7 @@
</li>
<li class="toggle-list">
<div><a href="<?cs var:toroot ?>guide/topics/resources/index.html">
- <span class="en">Resources and Assests</span>
+ <span class="en">Resources and Assets</span>
</a></div>
<ul>
<li><a href="<?cs var:toroot ?>guide/topics/resources/resources-i18n.html">
@@ -107,6 +107,9 @@
<li><a href="<?cs var:toroot ?>guide/topics/resources/available-resources.html">
<span class="en">Available Resource Types</span>
</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/localization.html">
+ <span class="en">Localization</span>
+ </a></li>
</ul>
</li>
<li><a href="<?cs var:toroot ?>guide/topics/intents/intents-filters.html">
@@ -236,6 +239,7 @@
<li><a href="<?cs var:toroot ?>guide/developing/debug-tasks.html">
<span class="en">Debugging Tasks</span>
</a></li>
+ <li><a href="<?cs var:toroot ?>guide/developing/updating-sdk.html">Updating Your SDK</a></li>
<li class="toggle-list">
<div><a href="<?cs var:toroot ?>guide/developing/tools/index.html">
<span class="en">Tools</span>
@@ -256,6 +260,7 @@
<li><a href="<?cs var:toroot ?>guide/developing/tools/monkey.html">Monkey</a></li>
<li><a href="<?cs var:toroot ?>guide/developing/tools/adb.html#sqlite">sqlite3</a></li>
<li><a href="<?cs var:toroot ?>guide/developing/tools/traceview.html" >Traceview</a></li>
+ <li><a href="<?cs var:toroot ?>guide/developing/tools/zipalign.html" >zipalign</a></li>
</ul>
</li>
<!--<li><a href="<?cs var:toroot ?>guide/developing/instrumentation/index.html">Instrumentation</a></li>
@@ -321,6 +326,9 @@
<span class="zh-TW">最佳實務</span>
</h2>
<ul>
+ <li><a href="<?cs var:toroot ?>guide/practices/screens_support.html">
+ <span class="en">Supporting Multiple Screens</span>
+ </a></li>
<li class="toggle-list">
<div><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/index.html">
<span class="en">UI Guidelines</span>
@@ -340,6 +348,8 @@
</a></li>
</ul>
</li>
+ </ul>
+ <ul>
<li><a href="<?cs var:toroot ?>guide/practices/design/performance.html">
<span class="en">Designing for Performance</span>
</a></li>
@@ -369,6 +379,9 @@
<li><a href="<?cs var:toroot ?>guide/tutorials/views/index.html">
<span class="en">Hello Views</span>
</a></li>
+ <li><a href="<?cs var:toroot ?>guide/tutorials/localization/index.html">
+ <span class="en">Hello Localization</span>
+ </a></li>
<li><a href="<?cs var:toroot ?>guide/tutorials/notepad/index.html">
<span class="en">Notepad Tutorial</span>
</a></li>
diff --git a/docs/html/guide/practices/screens_support.jd b/docs/html/guide/practices/screens_support.jd
new file mode 100644
index 000000000000..09347a6bace6
--- /dev/null
+++ b/docs/html/guide/practices/screens_support.jd
@@ -0,0 +1,1307 @@
+page.title=Supporting Multiple Screens
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>Multiple screens quickview: </h2>
+ <ul>
+ <li>Android runs on devices that have different screen sizes and resolutions.</li>
+ <li>The screen on which your application is displayed can affect its user interface.</li>
+ <li>The platform handles most of the work of adapting your app to the current screen.</li>
+ <li>You can create screen-specific resources for precise control of your UI, if needed. </li>
+ <li>Older applications run in a compatibility mode that provides best-effort rendering on the current screen.</li>
+ <li>It's important to follow the best practices described in this document and test your application in all supported screens. </li>
+ </ul>
+
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#overview">Overview of Screen Support</a></li>
+ <ol>
+ <li><a href="#range">Range of screens supported</a></li>
+ <li><a href="#support">How Android supports multiple screens</a></li>
+ <li><a href="#density-independence">Density independence</a></li>
+ <li><a href="#attrs">Manifest attributes</a></li>
+ <li><a href="#qualifiers">Resource qualifiers</a></li>
+ </ol>
+ <li style="padding-top:4px;"><a href="#screen-independence">Best Practices for Screen Independence</a></li>
+ <li><a href="#strategies">Strategies for Legacy Apps</a></li>
+ <li><a href="#testing">How to Test Your App</a></li>
+
+ </ol>
+
+ <h2>See Also</h2>
+ <ol>
+ <li><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></code></li>
+ <li><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code></li>
+ <li><a href="{@docRoot}guide/topics/resources/resources-i18n.html#AlternateResources">Alternate Resources</a></li>
+ <li><a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>Android is designed to run on a variety of devices that offer a range of
+screen sizes and resolutions. For applications, the platform provides a
+consistent environment across devices and handles much of the complexity of
+adapting an application's UI to the screen on which it is being displayed. At
+the same time, the platform exposes APIs that give application developers
+precise control over their application's UI when displayed on specific screen
+sizes and resolutions. </p>
+
+<p>This document explains the screens-support features provided by the platform
+and how you use them in your application. By following the practices described
+here, you can easily create an application that displays properly on all
+supported device screens and that you can deploy to any device as a single .apk.
+</p>
+
+<p>If you have already developed and published an application for Android 1.5 or
+earlier, you should read this document and consider how you may need to adapt
+your application for proper display on new devices that offer different screens
+and that are running Android 1.6 or later. In most cases, only minor adjustments
+are needed, however you should make sure to <a href="#testing">test your
+application</a> on all of the new screens supported in Android 1.6.
+
+<!--See <a href="#migrating">Migrating</a> for strategies e you can continue using the previous API level and use target API level, or you can just compile. --></p>
+
+<p>In particular, if you have an existing application that you would like to
+make available for users of devices with small screens (such as QVGA), please
+see <a href="#strategies">Strategies for Legacy Applications</a> for more
+information about how to do that. </p>
+
+
+<h2 id="overview">Overview of Screens Support</h2>
+
+<p>The sections below provide an overview of the Android platform's support for multiple screens, including an introduction to terms and concepts used in this document and in the API, a summary of the screen configurations that the platform supports, and an overview of the API and underlying screen-compatibility features.</p>
+
+
+<h3>Terms and Concepts</h3>
+
+<dl>
+<dt><em>Screen size</em></dt>
+ <dd>Actual physical size, measured as the screen's diagonal.
+
+ <p>For simplicity, Android collapses all actual screen sizes into three
+generalized sizes: large, normal, and small. Applications can provide custom
+layouts for each of these three sizes &mdash; the platform transparently handles
+the rendering of the layouts at the actual screen size.</p></dd>
+
+<dt><em>Aspect ratio</em></dt>
+ <dd>The porportional relationship of the screen's physical width to its
+height. Applications can provide layout resources for specific aspect ratios by
+using the resource qualifiers <code>long</code> and <code>notlong</code>. </dd>
+
+<dt><em>Resolution</em></dt>
+ <dd>The total number of physical pixels on a screen. Note that, although
+resolution is often expressed as <em>width</em> x <em>height</em>, resolution
+does not imply a specific aspect ratio. In Android, applications do not work
+directly with resolution.</dd>
+
+<dt><em>Density</em></dt>
+ <dd>Based on the screen resolution, the spread of pixels across the physical
+width and height of the screen.
+
+ <p>A screen with lower density has fewer available pixels spread across the
+screen width and height, where a screen with higher density has more &mdash;
+sometimes significantly more &mdash; pixels spread across the same area. The
+density of a screen is important because, other things being equal, a UI element
+(such as a button) whose height and width are defined in terms of screen pixels
+will appear larger on the lower density screen and smaller on the higher density
+screen. </p>
+
+ <p>For simplicity, Android collapses all actual screen densities into three
+generalized densities: high, medium, and low. Applications can provide custom
+resources for each of these three densities &mdash; the platform handles the
+scaling of the resources up or down to meet the actual screen density. </p></dd>
+<dt><em>Density independent pixel (dip)</em></dt>
+ <dd>A virtual pixel unit that applications can use in defining their UI, to
+express layout dimensions or position in a density-independent way.
+ <p>The density-independent pixel is equivalent to one physical pixel on a 160
+dpi screen, the baseline density assumed by the platform (as described later in
+this document). At run time, the platform transparently handles any scaling of
+the dip units needed, based on the actual density of the screen in use. The
+conversion of dip units to screen pixels is simple: <code>pixels = dips *
+(density / 160)</code>. For example, on 240 dpi screen, 1 dip would equal 1.5
+physical pixels. Using dip units to define your application's UI is highly
+recommended, as a way of ensuring proper display of your UI on different
+screens. </p></dd>
+</dl>
+
+
+<h3 id="range">Range of Screens Supported</h3>
+
+<p>Android 1.5 and earlier versions of the platform were designed to support a
+single screen configuration &mdash; HVGA (320x480) resolution on a 3.2" screen.
+Because the platform targeted just one screen, application developers could
+write their applications specifically for that screen, without needing to worry
+about how their applications would be displayed on other screens. </p>
+
+<p>Starting from Android 1.6, the platform adds support for multiple screen
+sizes and resolutions, reflecting the many new types and sizes of devices on
+which the platform will run. This means that developers must design their
+applications for proper display on a range of devices and screens.</p>
+
+<p>To simplify the way application developers design their user interfaces for
+multiple devices, and to allow more devices to participate without impacting
+applications, the platform divides the range of actual supported screen sizes
+and resolutions into:</p>
+
+<ul>
+<li>A set of three generalized sizes: <em>large</em>, <em>normal</em>, and <em>small</em>, and </li>
+<li>A set of three generalized densities: high (<em>hdpi</em>), medium (<em>mdpi</em>), and low (<em>ldpi</em>)
+</ul>
+
+<!--<p>Applications use to these generalized sizesThe to let you apply custom UI
+and enable/disable functionality according to the generalized class of screen,
+rather than by the specific screen. When you are developing your application,
+you use these generalized sizes and densities and Applications can use these
+generalized sizes and densities to tell the platform I will do it or you do it.
+Or a combination of both. -->
+
+<p>Applications can provide custom resources (primarily layouts) for any of the
+three generalized sizes, if needed, and they can also provide resources
+(primarily drawables such as images) for any of the three generalized densities.
+Applications do not need to work with the actual physical size or density of the
+device screen. At run time, the platform handles the loading of the correct size
+or density resources, based on the generalized size or density of the current
+device screen, and adapts them to the actual pixel map of the screen.</p>
+
+<p>The range of screens supported by Android and the generalized screen
+configurations that the platform maps them to are shown in the table below. </p>
+
+ <table id="screens-table" width="80%" style="margin-top:2em;">
+ <tbody>
+ <tr>
+ <td></td>
+ <td style="background-color:#f3f3f3">
+ <nobr>Low density (120), <em>ldpi</em></nobr>
+ </td>
+ <td style="background-color:#f3f3f3">
+ <nobr>Medium density (160), <em>mdpi</em></nobr>
+ </td>
+ <td style="background-color:#f3f3f3">
+ <nobr>High density (240), <em>hdpi</em><nobr>
+ </td>
+ </tr>
+ <tr>
+ <td style="background-color:#f3f3f3">
+ <em>Small</em> screen
+ </td>
+ <td style="font-size:.9em;">
+ <ul style="padding:0">
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">QVGA (240x320), <nobr>2.6"-3.0" diagonal</nobr></li>
+ </ul>
+ </td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td style="background-color:#f3f3f3">
+ <em>Normal</em> screen
+ </td>
+ <td style="font-size:.9em;">
+ <ul style="padding:0">
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">WQVGA (240x400), <nobr>3.2"-3.5" diagonal</nobr></li>
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">FWQVGA (240x432), <nobr>3.5"-3.8" diagonal</nobr></li>
+ </ul>
+ </td>
+ <td style="font-size:.9em;background-color:#FFE;">
+ <ul style="padding:0">
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">HVGA (320x480), <nobr>3.0"-3.5" diagonal</nobr></li>
+ </ul>
+ </td>
+ <td style="font-size:.9em;">
+ <ul style="padding:0">
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">WVGA (480x800), <nobr>3.3"-4.0" diagonal</nobr></li>
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">FWVGA (480x854), <nobr>3.5"-4.0" diagonal</nobr></li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td style="background-color:#f3f3f3">
+ <em>Large</em> screen
+ </td>
+ <td></td>
+ <td style="font-size:.9em;">
+ <ul style="padding:0">
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">WVGA (480x800), <nobr>4.8"-5.5" diagonal</nobr></li>
+ <li style="margin: 0 0 0 1em;padding:.25em 0 0 0; font-size:.9em;">FWVGA (480x854), <nobr>5.0"-5.8" diagonal</nobr></li>
+ </ul>
+ </td>
+ <td></td>
+ </tr>
+ </tbody>
+ </table>
+
+<p class="caption" style="margin-top:1em;margin-bottom:1.5em;"><strong>Table
+1.</strong> Summary of device screens supported by Android. </p>
+
+<p>As shown above, the various screen configurations are arranged around a
+baseline screen &mdash; HVGA (320x480) resolution on a 3.2" screen &mdash; which
+is assigned a size of "normal" and a density of "medium". The HVGA screen is
+used as the baseline because all applications written against Android 1.5 or
+earlier are (by definition) written for the HVGA screen used on the T-Mobile G1
+and similar devices.</p>
+
+<!-- <p>Note that each screen configuration spans a range of actual resolutions
+and physical screen sizes. For example, the The baseline configuration spans a
+range of actual screen sizes &mdash; from 3.0" to 3.5" diagonal &mdash; all with
+the same HVGA resolution. That means that the actual pixel density of devices in
+a single screen configuration can vary. </p>
+
+Because differences in density can affect the displayed size of UI elements
+declared in pixels, the framework provides a density-independent pixel (dip)
+unit that applications can use to declare UI dimensions, letting the platform
+automatically handle the scaling to the actual pixel density of the screen. When
+UI dimensions are declared in dip, the result is that they are displayed at the
+same physical size on all screens in a given configuration. </p> -->
+
+<p>Although the platform currently supports the nine possible size-density
+configurations listed in the table, you do not necessarily need to custom
+resources for each one of them. The platform provides robust compatibility
+features, described in the sections below, that can handle most of the work of
+rendering your application on the current device screen, provided that the UI is
+properly implemented. For more information, see <a
+href="#screen-independence">Best Practices for Screen Independence</a>.</p>
+
+
+<h3 id="support">How Android supports multiple screens</h3>
+
+<div class="sidebox-wrapper">
+<div class="sidebox">
+<h2>Using the alternate resources framework</h2>
+
+<p>The platform's support for loading screen size- and density-specific
+resources at run time is based on the alternate resources framework.
+
+<p> If you want to use size- or density-specific layouts or drawables in your
+application and you are not familiar with resource qualifiers or how the
+platform uses them, please read
+<a href="{@docRoot}guide/topics/resources/resources-i18n.html#AlternateResources">
+Alternate Resources</a>.
+</div>
+</div>
+
+<p>The foundation of Android's support for multiple screens is a set of built-in
+compatibility features that together manage the rendering of application
+resources in an appropriate way for the current device screen. The platform
+handles most of the work of rendering your application, but also gives you two
+key ways to control the way your application is displayed, if you need or want
+to use them:</p>
+
+<ul>
+ <li>The platform provides a set of resource qualifiers that let you provide
+size- and density-specific resources, if needed. The qualifiers for
+size-specific resources are <code>large</code>, <code>normal</code>, and
+<code>small</code>, and those for density-specific resources are
+<code>hdpi</code> (high), <code>mdpi</code> (medium), and <code>ldpi</code>
+(low). The qualifiers correspond to the generalized densities given in
+<a href="#range">Table 1</a>, above.</li>
+ <li>The platform also provides a
+<a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">
+<code>&lt;supports-screens&gt;</code></a>
+element, whose attributes
+<code>android:largeScreens</code>, <code>android:normalScreens</code>, and
+<code>android:smallScreens</code> let you specify what generalized screen sizes
+your application supports. A fourth attribute, <code>android:anyDensity</code>,
+lets you indicate whether or not your application includes built-in support for
+multiple densities.</li>
+</ul>
+
+<p>At run time, the platform provides three types of support to your
+application, to ensure the best possible display on the current device
+screen:</p>
+
+<ol>
+<li><em>Pre-scaling of resources (such as image assets)</em>
+
+ <p>Based on the density of the current screen, the platform automatically
+loads any size- or density-specific resources from your application and displays
+them without scaling. If no matching resources are available, the platform loads
+the default resources and scales them up or down as needed to match the current
+screen's generalized density. The platform assumes that default resources are
+designed for proper display at the baseline screen density of "medium" (160),
+unless they are loaded from a density-specific resource directory.</p>
+
+ <p>For example, if the current screen's density is "high", the platform loads
+resources that are tagged with the qualifier <code>hdpi</code> and uses them
+without scaling. If no such resources are available, the platform uses the
+default resources instead, scaling them from the baseline density ("medium") to
+"high". </p>
+
+ <p>For more information about how to create size- and density-specific
+resources, see <a href="#qualifiers">Resource qualifiers</a>.</p></li>
+
+<li><em>Auto-scaling of pixel dimensions and coordinates</em>
+
+ <p>If the application states that it does not support different screen
+densities, the platform auto-scales any absolute pixel coordinates, pixel
+dimension values, and pixel math used in the application (such as might be used
+for specifying the width or padding for a view). It does this to ensure that
+pixel-defined screen elements are displayed at approximately the same physical
+size as they would be at the baseline density of "medium" (160). The platform
+handles this scaling transparently to the application and also reports scaled
+overall pixel dimensions to the application, rather than physical pixel
+dimensions. </p>
+
+ <p>For instance, suppose a given device is using a WVGA high-denisty screen,
+which is 480x800 and about the same size as a traditional HVGA screen, but it's
+running an app that states that it does not support multiple densities. In this
+case, the system will "lie" to the application when it queries for screen
+dimensions, and report 320x533. Then, when the app does drawing operations, such
+as invalidating the rectangle from (10,10) to (100, 100), the system will
+likewise automatically transform the coordinates by scaling them the appropriate
+amount, and actually invalidate the region (15,15) to (150, 150). The same
+thing happens in the other direction, if the application is running on a
+lower-density screen, coordinates are scaled down.<p>
+
+ <p>For more information, see the <code>android:anyDensity</code> attribute in
+<a href="#attrs">Manifest attributes for screens support</a>.</p></li>
+
+<div class="sidebox-wrapper" xstyle="margin-bottom:2em;margin-top:.5em;width:90%;">
+ <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png">
+ <div id="qv-sub-rule">
+ <img src="{@docRoot}assets/images/icon_market.jpg" style="float:left;margin:0;padding:0;">
+ <p style="color:#669999;">Publishing to Small Screen Devices</p>
+ <p>To ensure the best experience for users on small-screen devices, Android
+Market only shows applications that explicitly declare support for small
+screens. If you developed an application on Android 1.5 or earlier and published
+it on Android Market, you need to <a href="#testing">test your application</a>
+on small screens and then upload an updated version that explicitly
+<a href="#attrs">indicates support for small screens</a>. </p>
+ </div>
+</div>
+
+<li><em>Compatibility-mode display on larger screen-sizes</em>
+
+ <p>If the current screen's size is larger than your application supports, as
+specified in the <code>supports-screens</code> element, the platform displays
+the application at the baseline size ("normal") and density ("medium). For
+screens larger than baseline, the platform displays the application in a
+baseline-sized portion of the overall screen, against a black background. </p>
+
+ <p>For instance, suppose a given device is using a WVGA medium density screen,
+classified as a "large" screen, but the application states that it does not
+support large screens; in this case, the system will again "lie" to the
+application when it queries for screen dimensions, and report 320x480. Instead
+of scaling the application, however, the application's 320x480 interface will be
+placed as a "postage stamp" in the larger 480x800 screen.</p>
+
+ <p>For more information, see the <code>android:anyDensity</code> attribute in
+<a href="#attrs">Manifest elements for screens support</a> and the
+<a href="#compatibility-examples">Screen-Compatibility Examples</a>
+section.</p></li>
+</ol>
+
+<p>In general, these compatibility features ensure that all applications,
+including those written against Android 1.5 and earlier platform versions, can
+display properly on most devices, especially when the device's screen is at the
+baseline "normal" size or larger. </p>
+
+<p>However, note that applications written for the baseline HVGA screen may need
+minor adjustments before they display properly on smaller screens such as QVGA.
+With the reduced screen area of small screens, there may be tradeoffs in design,
+content, and function that you, as the application developer, need to consider.
+For more information about how to prepare an existing application for display on
+small screens, see <a href="#strategies">Strategies for Legacy
+Applications</a>.</p>
+
+<p>The sections below provide more information how to take advantage of the
+platform's multiple-screens support. </p>
+
+
+<h3 id="density-independence">Density independence</h3>
+
+<p>The goal of density independence is to preserve the physical size, from the
+user's point of view, of user interface elements declared in an application,
+when the application is displayed on screens with different densities. Density
+independence applies to both layouts and drawables such as icons. Maintaining
+density-independence is important because, other things being equal, a UI
+element (such as a button) whose height and width are defined in terms of screen
+pixels will appear physically larger on the lower density screen and smaller on
+the higher density screen. Such density-related size changes can cause problems
+in application layout, usability, and consistency with other applications
+installed on the device.</p>
+
+<p>The platform provides density independence to applications by default. It
+does this in three ways: </p>
+
+<ul>
+<li>Through pre-scaling of drawable resources (scaled at resource loading
+time)</li>
+<li>Through auto-scaling of device-independent pixel (dip) values used in
+layouts</li>
+<li>Through auto-scaling of absolute pixel values used in the application (only
+needed if the application has set <code>android:anyDensity="false"</code> in its
+manifest)</li>
+</ul>
+
+<p>The example screens below illustrate the density independence provided by the
+platform. Note that both the layouts and launcher icons are displayed at the
+same physical sizes, although screen sizes, aspect ratios, and densities are
+different.</p>
+
+
+<div id=vi09 style=TEXT-ALIGN:left>
+<img src="{@docRoot}images/screens_support/dip.png" style="padding-bottom:0;margin-bottom:0;" />
+<p class="caption" style="margin:0 0 1.5em 1em;padding:0 0 0
+1em;"><strong>Figure 1.</strong> Examples of density independence on WVGA high
+density (left), HVGA medium density (center), and QVGA low density (right). </p>
+</div>
+
+<p>In most cases, you can take advantage of density independence in your
+application simply by making sure that your layouts specify all dimension values
+in density-independent pixels (<code>dip</code> or <code>dp</code>) or
+scale-independent pixels (<code>sip</code> or <code>sp</code>, for text only).
+If you are using absolute pixel values in the application and manifest includes
+<a href="#attrs"><code>android:anyDensity="true"</code></a>, you will also need
+to scale the pixel values. See <a href="#dips-pels">Converting from dips to
+pixels</a> for more information. </p>
+
+
+<h3 id="attrs">Manifest attributes for screens support</h3>
+
+<p> Android 1.6 introduces a new manifest element,
+<a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code>&lt;supports-screens&gt;</code></a>,
+whose attributes you can use to control the
+display of your application on different classes of device screens, as listed
+below. The <code>smallScreens</code>, <code>normalScreens</code>, and
+<code>largeScreens</code> attributes correspond to the generalized screen sizes
+shown in <a href="#range">Table 1</a>, earlier in this document.</p>
+
+ <table id="vrr8">
+ <tr>
+ <th>
+ Attribute
+ </th>
+ <th >
+ Description
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <code>android:smallScreens</code>
+ </td>
+ <td>
+ Whether or not the application UI is designed for use on
+<em>small</em> screens &mdash; "<code>true</code>" if it is, and
+"<code>false</code>" if not. See <a href="#defaults">Default values for
+attributes</a> for information about the assumed value of this attribute, if not
+declared.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <code>android:normalScreens</code>
+ </td>
+ <td>
+ Whether or not the application UI is designed for use on
+<em>normal</em> screens &mdash; "<code>true</code>" if it is, and
+"<code>false</code>" if not. The default value is "<code>true</code>".
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <code>android:largeScreens</code>
+ </td>
+ <td>
+ Whether or not the application UI is designed for use on
+<em>large</em> screens &mdash; "<code>true</code>" if it is, and
+"<code>false</code>" if not. See <a href="#defaults">Default values for
+attributes</a> for information about the assumed value of this attribute, if not
+declared.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <code>android:anyDensity</code>
+ </td>
+ <td>
+ <p>Whether or not the application is designed to manage its UI properly
+in different density environments &mdash; "<code>true</code>" if so, and
+"<code>false</code>" if not. </p>
+ <ul>
+ <li>If set to "<code>true</code>", the platform disables its
+density-compatibility features for all screen densities &mdash; specifically,
+the auto-scaling of absolute pixel units and math &mdash; and relies on the
+application to use density-independent pixel units and/or to manage the
+adaptation of pixel values according to density of the current screen. </li>
+
+ <li>If set to "<code>false</code>", the platform enables its
+density-compatibility features for all screen densities. In this case, the
+platform provides a scaled, virtual screen pixel map to the application, against
+which it can layout and draw its UI as though against a medium-density screen
+(160). The platform then transparently auto-scales the application's pixel units
+and math as needed to match the actual device screen density. </li>
+ </ul>
+ <p>See <a href="#defaults">Default values for attributes</a> for
+information about the assumed value of this attribute, if not declared.</p>
+ </td>
+ </tr>
+ </table>
+
+<p>In general, when you declare a screen-size attribute
+(<code>smallScreens</code>, <code>normalScreens</code>, or
+<code>largeScreens</code>) as "true", you are signaling to the platform that
+your application wants to manage its UI by itself, for all screen sizes, without
+the platform applying any size-compatibility behaviors (such as a virtual HVGA
+display area). If you declare a screen-size attribute as "false", you are
+signaling that your application is not designed for that screen size. The
+effects are conditioned by the screen size that your application does not
+support:</p>
+
+<ul>
+ <li>If you declare <code>largeScreens="false"</code>, your application can
+still be installed by users of devices with large screens. When run on a device
+with a large screen, this attribute value causes the platform to run the
+application in compatibility mode, rendering it in a baseline HVGA screen area
+(normal size, medium density) reserved on the larger screen. See
+<a href="#compatibility-examples">Screen-Compatibility Examples</a> for an
+illustration of what an application looks like when displayed in compatibility
+mode.</li>
+ <li>If you declare <code>smallScreens="false"</code>, your application can
+still be installed by users of devices with small screens. However, this
+attribute value causes Android Market to filter your application from the list
+of applications available to such users. In effect, this prevents users from
+installing the application on small-screen devices. </li>
+</ul>
+
+<p>If you declare the <code>android:anyDensity</code> attribute as "true", you
+are signaling to the platform that your application wants to manage its UI by
+itself, for all screen densities, using the actual screen dimensions and pixels.
+In this case, the application must ensure that it declares its UI dimensions
+using device-independent pixels and scales any actual pixel values or math by
+the scaling factor available from
+{@link android.util.DisplayMetrics#density android.util.DisplayMetrics.density}.</p>
+
+<p>Note that the setting of the <code>android:anyDensity</code> attribute does
+not affect the platform's pre-scaling of drawable resources, such as bitmaps and
+nine-patch images, which always takes place by default. </p>
+
+<p>The following example shows a manifest that declares support for large,
+normal, and small screens in any densities.</p>
+
+<pre>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;
+
+ &lt;supports-screens
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:largeScreens="true"
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:normalScreens="true"
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:smallScreens="true"
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:resizable="true"
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:anyDensity="true" /&gt;
+ &lt;/manifest&gt;
+</pre>
+
+<h4 id="defaults">
+ Default values for attributes
+</h4>
+
+<p>The default values for the <code>&lt;supports-screens&gt;</code> attributes
+differs, depending on the the value of the
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>android:minSdkVersion</code></a>
+ attribute in the application's manifest, as well as on
+the value of <code>android:targetSdkVersion</code>, if declared:</p>
+
+<div>
+ <ul>
+ <li>
+ If <code>android:minSdkVersion</code> or
+<code>android:targetSdkVersion</code> is "3" (Android 1.5) or lower, the default
+value for everything except android:normalScreens is <code>false</code>. If you
+are primarily targeting pre-Android 1.6 platforms but also want to support other
+densities/screen sizes, you need to set the appropriate attributes to
+<code>true</code>.
+ </li>
+ <li>
+ If <code>android:minSdkVersion</code> or
+<code>android:targetSdkVersion</code> is "4" (Android 1.6) or higher, the
+default value for everything is <code>true</code>. If your application
+requires&nbsp;<span style=BACKGROUND-COLOR:#ffffff>Android 1.6 </span>features,
+but does not support these densities and/or screen sizes, you need to set the
+appropriate attributes to <code>false</code>.
+ </li>
+ <li>
+ Note that <code>android:normalScreens</code> always defaults to
+<code>true</code>.
+ </li>
+ </ul>
+</div>
+
+
+<h3 id="qualifiers">Resource directory qualifiers for screen size and density</h3>
+
+<p>Android 1.6 supports new resource directory qualifiers for selecting
+resources based on the characteristics of the screen on which your application
+is running. You can use these qualifiers to provide size- and density-specific
+resources in your application. For more information about the generalized sizes
+and densities that correspond to the qualifiers, see <a href="#range">Table
+1</a>, earlier in this document.</p>
+
+<table>
+<tr>
+<th>Screen characteristic</th>
+<th>Qualifier</th>
+<th>Description</th>
+</tr>
+
+<tr>
+ <td rowspan="3">Size</td>
+ <td><code>small</code></td>
+ <td>Resources for small screens, such as QVGA low density.</td>
+</tr>
+<tr>
+ <td><code>normal</code></td>
+ <td>Resources for normal (baseline configuration) screens, such as T-Mobile
+G1/HTC Magic screen size, or equivalent.</td>
+</tr>
+<tr>
+<td><code>large</code></td>
+<td>Resources for large screens. Typical example is a tablet like device.</td>
+</tr>
+
+<tr>
+<td rowspan="4">Density</td>
+<td><code>ldpi</code></td>
+<td>Low-density resources, for 100 to 140 dpi screens.</td>
+</tr>
+<tr>
+<td><code>mdpi</code></td>
+<td>Medium-density resources for 140 to 180 dpi screens.</td>
+</tr>
+<tr>
+<td><code>hdpi</code></td>
+<td>High-density resources for 190 to 250 dpi screens.</td>
+</tr>
+<tr>
+<td><code>nodpi</code></td>
+<td>Density-independent resources. The platform does not auto-scale resources
+tagged with this qualifier, regardless of the current screen's density.</td>
+</tr>
+
+<tr>
+<td rowspan="2">Aspect ratio</td>
+<td><code>long</code></td>
+<td>Resources for screens of any size or density that have a significantly
+taller (in portrait mode) and wider (in landscape mode) aspect ratio than the
+baseline screen configuration.</td>
+</tr>
+<tr>
+<td><code>notlong</code></td>
+<td>Resources for use only on screens that have an aspect ratio that is similar
+to the baseline screen configuration.</td>
+</tr>
+<tr>
+<td>Platform version</td>
+<td><code>v4</code></td>
+<td>Resources that are for use only on Android 1.6 (API Level 4) or higher
+platform versions. If your application is designed to run on both Android 1.5
+(or lower) and Android 1.6 (and higher), you can use this qualifier to tag
+resources that should be excluded when your application is running on Android
+1.5 or earlier. Using this qualifier is necessary in some cases, if the older
+platform is inadvertently loading resources from an Android 1.6 resources
+directory. </td>
+</tr>
+</table>
+
+<p>
+Note that the density and the screen size are independent parameters and are
+interpreted by the system individually. For example, WVGA high density is
+considered a normal screen because its physical size is about the same as one of
+T-Mobile G1. On the other hand, a WVGA medium density screen is considered a
+<i>large</i> screen &mdash; it offers the same resolution but at lower pixel
+density, meaning that it is both physically larger than the baseline screen and
+can display significantly more information than a normal screen size.
+</p>
+
+<p>Here is an example of the resource directory structure of an application that
+supports low and high density, and employs different layout schemes.</p>
+
+<pre>res/layout/my_layout.xml // layout for normal screen size
+res/layout-small/my_layout.xml // layout for small screen size
+res/layout-large/my_layout.xml // layout for large screen size
+res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode
+
+res/drawable-ldpi/my_icon.png // icon image for low density
+res/drawable-mdpi/dpi/my_icon.png // icon for medium density
+res/drawable-hdpi/my_icon.png // icon image for high density
+
+res/drawable-nodpi/composite.xml // density independent resource
+</pre>
+
+<p>For more information about how to use resource qualifiers or how the platform
+selects them, please read
+<a href="{@docRoot}guide/topics/resources/resources-i18n.html#AlternateResources">
+Alternate Resources</a>.</p>
+
+
+<h2 id="screen-independence">Best practices for Screen Independence</h2>
+
+<p>The objective of supporting multiple screens is to create an application that
+can run properly on any display and function properly on any of the screen
+configurations listed in <a href="#range">Table 1</a> earlier in this document.
+</p>
+
+<p>You can easily ensure that your application will display properly on
+different screens. Here is a quick checklist:</p>
+
+<ol>
+ <li>
+ Prefer wrap_content, fill_parent and the dip unit to px in XML layout files
+ </li>
+ <li>
+ Avoid AbsoluteLayout
+ </li>
+ <li>
+ Do not use hard coded pixel values in your code
+ </li>
+ <li>
+ Use density and/or resolution specific resources
+ </li>
+</ol>
+
+<h3 id="use-relative">1. Prefer wrap_content, fill_parent and the dip unit to
+absolute pixels<br> </h3>
+
+<p>When defining the <code>layout_width</code> and <code>layout_height</code> of
+views in an XML layout file, using <code>wrap_content</code>,
+<code>fill_parent</code> or the <code>dip</code> will guarantee that the view is
+given an appropriate size on the current device screen. For instance, a view
+with a <code>layout_width="100dip"</code> will measure 100 pixels wide on an
+HVGA@160 density display and 150 pixels on a WVGA@240 density display, but the
+view will occupy approximately the same physical space. </p>
+
+<p>Similarly, you should prefer the <code>sp</code> (scale-independent pixel,
+the scale factor depends on a user setting) or <code>dip</code> (if you don't
+want to allow the user to scale the text) to define font sizes.</p>
+
+<h3 id="avoid-absolute">2. Avoid AbsoluteLayout </h3>
+
+<p>{@link android.widget.AbsoluteLayout AbsoluteLayout}
+is one of the layout containers offered by the Android UI toolkit. Unlike the
+other layouts however, <code>AbsoluteLayout</code> enforces the use of fixed
+positions which might easily lead to user interfaces that do not work well on
+different displays. Because of this, <code>AbsoluteLayout</code> was deprecated
+in Android 1.5 (API Level 3). </p>
+
+<p>You can achieve much the same layout by using a
+{@link android.widget.FrameLayout FrameLayout} instead, and setting
+<code>layout_margin</code> attributes of the children. This approach is more
+flexible and will yield better results on different screens.</p>
+
+<h3>3. Do not use hard-coded pixel values in your code</h3>
+
+<p>For performance reasons and to keep the code simpler, the Android framework
+API uses pixels as the standard unit for expressing dimension or coordinate
+values. That means that the dimensions of a View are always expressed in the
+code in pixels. For instance, if <code>myView.getWidth()</code> returns 10, the
+view is 10 pixels wide. In some cases, you may need to scale the pixel values
+that you use in your code. The sections below provide more information. </p>
+
+<h4 id="dips-pels">Converting from dips to pixels</h4>
+
+<p>In some cases, you will need to express dimensions in <code>dip</code> and
+then convert them to pixels. Imagine an application in which a scroll gesture is
+recognized after the user's finger has moved by at least 16 pixels. On a
+baseline HVGA screen, the user will have to move his finger by 16 pixels / 160
+dpi = 1/10th of an inch (or 2.5 mm) before the gesture is recognized. On a
+device with a high (240) density display, the user will move his finger by only
+16 pixels / 240 dpi = 1/15th of an inch (or 1.7 mm.) The distance is much
+shorter and the application thus appears more sensitive to the user. To fix this
+issue, the gesture threshold must be expressed in the code in <code>dip</code>
+and then converted to actual pixels.</p>
+
+<pre>// The gesture threshold expressed in dip
+private static final float GESTURE_THRESHOLD_DIP = 16.0f;
+
+// Convert the dips to pixels
+final float scale = getContext().getResources().getDisplayMetrics().density;
+mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale + 0.5f);</span>
+
+// Use mGestureThreshold as a distance in pixels
+</pre>
+
+<p>The {@link android.util.DisplayMetrics#density android.util.DisplayMetrics.density}
+field specifies the the scale factor you must use to
+convert dips to pixels according to the current screen density. You can access
+the current screen's metrics through a <code>Context</code> or
+<code>Activity</code>. On a medium (160) density screen,
+<code>DisplayMetrics.density</code> equals "1.0", whereas on a high (240)
+density screen it equals "1.5". You can refer to the documentation of the
+{@link android.util.DisplayMetrics DisplayMetrics}
+class for details.</p>
+
+<h4>Use pre-scaled configuration values</h4>
+
+<p>The {@link android.view.ViewConfiguration ViewConfiguration} class can be
+used to access the most common distances, speeds, and times used in the Android
+framework. For instance, the distance in pixels used by the framework as the
+scroll threshold can be obtained as follows:</p>
+
+<pre>ViewConfiguration.get(aContext).getScaledTouchSlop()</pre>
+
+<p>Methods starting with the <code>getScaled</code> prefix are guaranteed to return a value in pixels that will display properly regardless of the current screen density.</p>
+
+<h3>4. Use density and/or size-specific resources</h3>
+
+<div style="float: right;background-color:#fff;margin: 0;padding: 20px 0 20px 20px;">
+<img src="{@docRoot}images/screens_support/scale-test.png" style="padding:0;margin:0;">
+<p class="caption" style="margin:0;padding:0;"><strong>Figure 2.</strong> Comparison of pre-scaled and auto-scaled bitmaps.</p>
+</div>
+
+<p>Even with the size- and density-compatibility features that the platform
+provides, you may still want to make adjustments to the UI of your application
+when it displayed on certain screen sizes or densities. You can do this by
+providing size- or density-specific resources &mdash; assets, layouts, strings,
+and so on. If you want, you can also take control over the scaling of images
+assets. The sections below provide more information.</p>
+
+<h4 id="resource-dirs">Custom resources and directories</h4>
+
+<p>If you need to control exactly how your application will look on various
+displays, simply adjust your assets and layouts in configuration-specific
+resources directories. For example, consider an icon that you want to display on
+medium and high density screens. Simply create your icon at two different sizes
+(for instance 100x100 for medium density and 150x150 for high density) and put
+the two variations in the appropriate directories, using the proper
+qualifiers:</p>
+
+<p style="margin-left:2em;"><code>res/drawable-mdpi/icon.png&nbsp;&nbsp;&nbsp;//
+for medium-density screens</code></p>
+
+<p style="margin-left:2em;"><code>res/drawable-hdpi/icon.png&nbsp;&nbsp;&nbsp;//
+for high-density screens</code></p>
+
+<p>If a density qualifier is not defined in a resource directory name, the
+platform assumes that the resources in that directory are designed for the
+baseline medium density. It is not recommended that you put density-specific
+resources such as images in the default directory.</p>
+
+<p>For more information about valid resource qualifiers, see
+<a href="#qualifiers">Resource directory qualifiers</a>, earlier in this
+document.</p>
+
+<h4 id="scaling">Pre-scaling and auto-scaling of bitmaps and nine-patches</h4>
+
+<p>When a bitmap or nine-patch image is loaded from the application's resources,
+the platform attempts to pre-scale it to match the display's density. For
+instance, if you placed a 100x100 icon in the <code>res/drawable/</code>
+directory and loaded that icon as a bitmap on a high-density screen, Android
+would automatically scale up the icon and produce a 150x150 bitmap.</p>
+
+<p>This pre-scaling mechanism works independently of the source. For instance,
+an application targeted for a high-density screen may have bitmaps only in the
+<code>res/drawable-hdpi/</code> directory. If one of the bitmaps is a 240x240
+icon and is loaded on a medium-density screen, the resulting bitmap will measure
+160x160.</p>
+
+<p>The platform pre-scales resources as needed, whether the application is
+running with density-compatibility features enabled or not (as specified by the
+value of <code>android:anyDensity</code>). However, when running with
+density-compatibility enabled, the platform continues to report the size of
+pre-scaled bitmaps and other resources as if they were loaded in a
+medium-density environment. For example, when density-compatibility is enabled,
+if you load a 76x76 image from the default resources for display on a
+high-density screen, the platform will pre-scale the image to 114x114
+internally. However, the API still reports the size of the image as 76x76. This
+discrepancy may cause unexpected behavior if your application somehow directly
+manipulates the scaled bitmap, but this was considered a reasonable trade-off to
+keep the performance of existing applications as good as possible.</p>
+
+<p>This does not apply for the case that an application creates an in-memory
+bitmap internally and draws something on it, for later display on the screen.
+The platform auto-scales such bitmaps on the fly, at draw time. Other side
+effects of such a case might be that fonts drawn in such a bitmap will be scaled
+at the bitmap level, when the off-screen bitmap is finally rendered to the
+display, resulting in scaling artifacts.</p>
+
+<p>There are situations in which you may not want Android to automatically scale
+a resource. The easiest way to accomplish this is to put it in a "nodpi"
+resource directory:</p>
+
+<p style="margin-left:2em;"><code>res/drawable-nodpi/icon.png</code></p>
+
+<p>You can also take complete control of the scaling mechanism by using the
+{@link android.graphics.BitmapFactory.Options BitmapFactory.Options} class,
+which lets you define whether you want the bitmap to be pre-scaled and what the
+density of the bitmap should be. For instance, if you are loading a bitmap from
+a web server, you may want to force the bitmap's density to be high density.
+When pre-scaling is disabled, the resulting bitmap is in auto-scaling mode. The
+bitmap is associated with a density (that you may or may not have specified
+through the <code>BitmapFactory.Options</code>) which will be used to scale the
+bitmap on screen <em>at drawing time</em>.
+
+<p>Using auto-scaling instead of pre-scaling is more CPU expensive than
+pre-scaling but uses less memory. You can refer to the documentation of
+{@link android.graphics.BitmapFactory BitmapFactory},
+{@link android.graphics.Bitmap Bitmap}, and
+{@link android.graphics.Canvas Canvas} for more
+information on auto-scaling.</p>
+
+<p>Figure 2, at right, demonstrates the results of the pre-scale and auto-scale
+mechanisms when loading low (120), medium (160) and high (240) density bitmaps
+on a baseline screen. The differences are subtle, because all of the bitmaps are
+being scaled to match the current screen density, however the scaled bitmaps
+have slightly different appearances depending on whether they are pre-scaled or
+auto-scaled at draw time.</p>
+
+<h2 id="strategies">Strategies for Legacy Applications</h2>
+
+<p>If you have already developed and published an Android application based on
+Android 1.5 or earlier platform version, you need to consider how you will adapt
+your application so that it is deployable to </p>
+
+<ul>
+<li>Existing devices, which may be running Android 1.5 (or lower) platform
+version, as well as to </li>
+<li>Newer devices that are running Android 1.6 (or higher) and offering various
+screen sizes and resolutions</li>
+</ul>
+
+<p>To support the newer devices and the different screens they use, you might
+need to make some changes in your app, but at the same time your app may be very
+stable and so you want to minimize the changes. There are a variety of ways that
+you can extend your existing application to support new devices with multiple
+screens <em>and</em> existing devices running older platform versions. You
+should be able to make these changes to your application such that you can
+distribute a single .apk to any and all devices.</p>
+
+<p>The recommended strategy is to develop against the most recent version of the
+platform you are targeting, and test on the minimum one you want to run on.
+Here's how to do that:</p>
+
+<ol>
+ <li>Maintain compatibility with existing devices by leaving your application's
+<code>android:minSdkVersion</code> attribute as it is. You <em>do not</em> need
+to increment the value of the attribute to support new devices and multiple
+screens. </li>
+ <li>Extend compatibility for Android 1.6 devices by adding a new attribute
+&mdash; <code>android:targetSdkVersion</code> &mdash; to the
+<code>uses-sdk</code> element. Set the value of the attribute to
+"<code>4</code>". This allows your application to "inherit" the platform's
+multiple screens support, even though it is technically using an earlier version
+of the API. </li>
+ <li>Add an empty <code>&lt;supports-screens&gt;</code> element as a child of
+<code>&lt;manifest&gt;</code>. If you need to enable size or density attributes
+later, this is where you will add them.</li>
+ <li>Change your application's build properties, such that it compiles against
+the Android 1.6 (API Level 4) library, rather than against the Android 1.5 (or
+earlier) library. You will not be able to compile your application against the
+older platform because of the new manifest attribute. </li>
+ <li>Set up AVDs for testing your application on Android 1.6. Create AVDs that
+use the screen sizes and densities that you want to support. When you create the
+AVDs, make sure to select the Android 1.6 platform as the system image to run.
+For more information, see <a href="#testing">How to Test Your Application on
+Multiple Screens</a>, below.</li>
+ <li>Set up AVDs for testing your application on Android 1.5 (or earlier
+platform). You need AVDs running the older platforms you are targeting, so that
+you can test for compatibility and ensure that there are no functional
+regressions. </li>
+ <li>Compile your application against the Android 1.6 library and run it on the
+AVDs you created. Observe the way your application looks and runs, and test all
+of the user interactions. </li>
+ <li>Debug any display or functional issues. For issues that you resolve in
+your application code, <span style="color:red">make certain not to use any APIs
+introduced in API Level 4 or later</span>. If you are in doubt, refer to SDK
+reference documentation and look for the API Level specifier for the API you
+want to use. Using an API introduced in API Level 4 or later will mean that your
+application will no longer be compatible with devices running Android 1.5 or
+earlier.</li>
+ <li>For resource-related issues, you can try resolving them by:
+ <ul>
+ <li>Adding a <code>anyDensity="false"</code> attribute to
+<code>&lt;supports-screens&gt;</code>, to enable density-compatibility
+scaling.</li>
+ <li>Creating any size- or density-specific resources you need and placing
+them in directories tagged with the <a href="#qualifiers">correct
+qualifiers</a>. Qualifiers must be arranged in a proscribed order. See
+<a href="{@docRoot}guide/topics/resources/resources-i18n.html#AlternateResources">
+Alternate Resources</a> for more information. </li>
+ <li>Note that if you add size- or density-specific resource directories
+tagged with any of the Android 1.6 qualifiers listed in this document, you
+should make sure to also tag those directories with the <code>v4</code>
+qualifier. This ensures that those resources will be ignored when the
+application is run on Android 1.5 or lower platform versions.</p></li>
+ </ul>
+ </li>
+ <li>If your application does not offer support (such as custom layouts) for
+large screens and you want the platform to display your application in
+screen-compatibility mode on larger screens, add a
+<code>largeScreens="false"</code> attribute to the
+<code>&lt;supports-screens&gt;</code> element in the manifest. See
+<a href="#compatibility-examples">Screen-Compatibility Examples</a> for
+illustrations of how the platform displays your application in this case.</li>
+ <li>If your application does not offer support (such as custom layouts) for
+small screens (such as on a QVGA low-density screen) and you do not want Android
+Market to offer the application to users of small-screen devices, you
+<em>must</em> add a <code>smallScreens="false"</code> attribute to the
+<code>&lt;supports-screens&gt;</code> element. </li>
+ <li>Continue testing and debugging until your application performs as expected
+on all of the platforms and screen sizes your application will support.</li>
+ <li>Export, zipalign, and sign your application using the same private key you
+used when publishing the previous version, then publish the application to users
+as an update. </li>
+</ol>
+
+<p>In particular, remember to test your application on an AVD that emulates a
+small-screen device. Devices that offer screens with QVGA resolution at low
+density are available now. Users of those devices may want to download your
+application, so you should understand how your application will look and
+function on a small-screen device. In many cases, the reduced screen area and
+density mean that you may need to make tradeoffs in design, content, and
+function on those devices. </p>
+
+<h2 id="testing">How to Test Your Application on Multiple Screens</h2>
+
+<p>Before publishing an application that supports multiple screens, you should
+thoroughly test it in all of the targeted screen sizes and densities. You can
+test how it displays with the platform's compatibility features enabled or with
+screen-specific UI resources included in your application. The Android SDK
+includes all the tools you need to test your application on any supported
+screen.</p>
+
+<!-- You can test in any minsdk, and you can test with compatabiltiy code or
+not. Once you've tested your application and found that it displays properly on
+various screen sizes, you should make sure to add the corresponding size
+attribute(s) to your application's manifest. -->
+
+<p>As a test environment for your applications, set up a series of AVDs that
+emulate the screen sizes and densities you want to support. The Android SDK
+includes four emulator skins to get you started. You can use the Android AVD
+Manager or the <code>android</code> tool to create AVDs that use the various
+emulator skins and you can also set up custom AVDs to test densities other than
+the defaults. For general information about working with AVDs, see
+<a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a>.</p>
+
+<p>The Android 1.6 SDK includes these emulator skins, which represent the
+primary screen configurations that your should test:</p>
+
+<ul>
+ <li>
+ QVGA (240x320, low density, small screen)
+ </li>
+ <li>
+ HVGA (320x480, medium density, normal screen)
+ </li>
+ <li>
+ WVGA800 (480x800, high density, normal screen)
+ </li>
+ <li>
+ WVGA854 (480x854 high density, normal screen)
+ </li>
+</ul>
+
+<p>If you are using the <code>android</code> tool command line to create your
+AVDs, here's an example of how to specify the skin you want to use:</p>
+
+<pre>android create avd ... --skin WVGA800</pre>
+
+<p>We also recommend that you test your application in an emulator that is set
+up to run at a physical size that closely matches an actual device. This makes
+it a lot easier to compare the results at various resolutions and densities. To
+do so you will need to know the approximate density, in dpi, of your computer
+monitor (a 30" Dell monitor has for instance a density of about 96 dpi.). Use
+your monitor's dpi as the value of the <code>-scale</code> option, when
+launching the emulator, for example:</p>
+
+<pre>emulator -avd &lt;name&gt; -scale 96dpi</pre>
+
+<p>If you are working in Eclipse with ADT, you can specify the <code>-scale
+96dpi</code> option in the Target tab of run and debug configurations, under
+"Additional Emulator Command Line Options" field. </p>
+
+<p>Note that starting the emulator with the <code>-scale</code> option will
+scale the entire emulator display, based on both the dpi of the skin and of your
+monitor. Using the default densities, the emulator skins included in the Android
+1.6 SDK will emulate the following screen sizes:</p>
+
+<ul>
+ <li>
+ QVGA, low density: 3.3"
+ </li>
+ <li>
+ HVGA, medium density: 3.6"
+ </li>
+ <li>
+ WVGA800, high density: 3.9"
+ </li>
+ <li>
+ WVGA854, high density: 4.1"
+ </li>
+</ul>
+
+<p>You should also make sure to test your application on different physical
+screen sizes within a single size-density configuration. For example, according
+to <a href="#range">Table 1</a>, the minimum supported diagonal of QVGA is 2.8".
+To display this is on a 30" monitor you will need to adjust the value passed to
+<code>-scale</code> to 96*2.8/3.3 = 81dpi. You can also pass a float value to
+<code>-scale</code> to specify your own scaling factor:</p>
+
+<pre>emulator -avd &lt;name&gt; -scale 0.6</pre>
+
+<p>If you would like to test your application on a screen not supported by the
+built-in skins, you can either adjust an existing skin, or create a custom
+resolution.</p>
+
+<p>For example, to test on a large WVGA800 screen with medium density:</p>
+
+<ol>
+ <li>Create an AVD based on the WVGA800 skin (using the <code>android</code>
+tool's command line.)<br></li>
+ <li>Answer "yes" when asked about using custom hardware</li>
+ <li>enter "160" when asked about the value for <em>hw.lcd.density</em>
+(120-low, 160-medium, 240-high).</li>
+</ol>
+
+<p>When running this AVD, the emulator will emulate a 5.8" WVGA screen.</p>
+
+<p>As an alternative to adjusting the emulator skin configuration, you can use
+the emulator skin's default density and add the <code>-dpi-device</code> option
+to the emulator command line when starting the AVD. For example, </p>
+
+<pre>emulator -avd WVGA800 -scale 96dpi -dpi-device 160</pre>
+
+<p>If you would like to test your application with a resolution not supported by
+the provided skins, you can use the desired resolution in place of the skin
+name. For instance, for FWQVGA you would use:</p>
+
+<pre>android create avd ... --skin 240x432</pre>
+
+<p>Next, you would need to set the proper density for the screen. When asked by
+the tool whether you want to create a custom hardware profile for the new AVD,
+enter "yes". Continue through the various profile settings until the tools asks
+you to specify "Abstracted LCD density". Consult <a href="#range">Table 1</a>,
+earlier in this document, and enter the appropriate value. For the FWQVGA
+screen, the density should be "160", or medium.</p>
+
+<div id="f9.5" style="text-align:left;margin:0;padding:0;">
+ <img src="{@docRoot}images/screens_support/avds-config.png" style="padding:0;margin:0;">
+ <p class="caption" style="margin:0 0 1.5em 1em;padding:0 0 0 1em;"><strong>Figure 3.</strong>
+ A typical set of AVDs for testing screens support.</p>
+</div>
+
+
+<h2 id="compatibility-examples">Screen-Compatibility Examples</h2>
+
+<p>This section provides examples of how the Android platform displays an
+application written for the baseline screen configuration &mdash; HVGA (320x480)
+resolution on a 3.2" screen &mdash; with all of the platform's size- and
+density-compatibility features enabled. That is, the examples show how
+the platform displays an application that doesn't provide built-in support
+for the screen on which it is being rendered, but which instead relies completely
+on the platform.</p>
+
+<p>The platform's screen-compatibility features are designed to provide such
+an application with a virtual baseline screen environment against which to run,
+while at the same time ensuring for the user a physical display that is
+approximately the same as the baseline screen size and density. </p>
+
+<p>Legacy applications that have not been modified to support multiple
+screens would be typical examples of such applications. In most cases,
+you would want to add multiple-screens support to a legacy application and
+publish an updated version, as described in <a href="#strategies">Strategies
+for Legacy Applications</a>. However, if you did not do so, the
+platform still performs best-effort rendering of your application, as
+illustrated below.</p>
+
+<p> Internally, these are the compatibility features that the platform
+provides, based on the current device screen:</p>
+
+ <ul>
+ <li>
+ If the device's screen density is <em>not medium</em>, the application's
+layout and drawing of its content is as if the screen <em>is</em> medium density, but the
+framework scales the layout and images (if the image for the target density is
+not available) to fit the target density. It scales 1.5 times if the target
+density is high density (160-&gt;240 virtual dpi), or 0.75 times if the target
+density is low density (160 -&gt; 120 virtual dpi).
+ </li>
+ <li>
+ If the device's screen size is <em>small</em>, there are few options
+options for making Android 1.5 applications work well on such a screen, so
+Android Market will filter applications that are not known to support these
+screens from the device.
+ </li>
+ <li>
+ If the device's screen size is <em>large</em>, it limits the application's
+screen to the normal size and draws a black background around the application.
+For example, if an application supports high density, but does not support large
+screens, it only uses a 480x720 area of the screen and the rest will be filled
+with a black background (see example below).
+ </li>
+ </ul>
+
+<table style="width:10%;margin-left:.5em;">
+ <tr>
+ <td>
+ HVGA, normal size, normal density<br>
+ [ emulator -skin HVGA ]<br>
+ <img height=149 src="{@docRoot}images/screens_support/afdvfckr9j_15dcsvrscg_b.png" width=225>
+ </td>
+ <td>
+ WVGA, normal size, high density<br>
+ [emulator -skin WVGA854 -dpi-device 240]<br>
+ <img height=143 src="{@docRoot}images/screens_support/afdvfckr9j_18c6mhm3cm_b.png" width=254><br>
+ <p>The application occupies full screen as its considered to be normal size. (close to 480x720)</p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ VGA, large size, medium density<br>
+ [ emulator -skin 640x480 ]<br>
+ <img height=243 src="{@docRoot}images/screens_support/afdvfckr9j_14fj6dhsc3_b.png" width=324>
+ <p>The application occupies 320x480 of VGA.</p>
+ </td>
+ <td>
+ SVGA, large size, high density<br>
+ [ emulator -skin 800x600 -dpi-device 240]<br>
+ <img height=223 src="{@docRoot}images/screens_support/afdvfckr9j_19c743p6cr_b.png" width=294>
+ <p>The application occupies 480x720 (=1.5 x [320x480]) of 800x600.</p>
+ </td>
+ </tr>
+</table>
+
+
+<h3>Screen-compatibility limitations on small, low-density screens</h3>
+
+<p>Because these device has smaller state/resolution, there are known
+limitations when application runs in compatibility mode.</p>
+
+<h4>QVGA</h4>
+
+<p>Because QVGA (240x320) screens have less screen area available and lower
+density than normal, which is 240x360 in low density, some applications cannot
+render all their content properly on those screens.&nbsp; As a result, on a QVGA
+device, Android Market will filter out all applications that do not declare they
+support small screens.</p>
+
+<p>Examples:</p>
+
+<table style="width:10%;margin-left:.5em;">
+ <tr>
+ <td>The part of z value graph is chopped.</td>
+ <td>The lap time area is chopped.<br></td>
+ </tr>
+ <tr>
+ <td><img height=207 src="{@docRoot}images/screens_support/afdvfckr9j_16g95wjqg3_b.png" width="155"></td>
+ <td><img height=186 src="{@docRoot}images/screens_support/afdvfckr9j_17p2w4txgc_b.png" width="139"></td>
+ </tr>
+</table>
+
+
+<h4>Images with 1 pixel height/width.</h4>
+
+<p>If an image has 1 pixel height or width, it may not be shown on the screen
+due to rounding issue. This is inevitable as it just does not have enough
+pixels.</p>
+
+<p>For example, in the screen below, the divider in the menu is invisible
+because the width of the image is trancated to 0. (This particular problem is
+solvable because menu is handled inside framework, but there is no generic
+solution as it just does not have enough pixels.)</p>
+
+<img height=222 src="{@docRoot}images/screens_support/afdvfckr9j_20fvptbbdd_b.png" width=166>
+
+
+
diff --git a/docs/html/guide/publishing/app-signing.jd b/docs/html/guide/publishing/app-signing.jd
index a16c9106ad93..f0febc09785a 100644
--- a/docs/html/guide/publishing/app-signing.jd
+++ b/docs/html/guide/publishing/app-signing.jd
@@ -22,10 +22,11 @@ page.title=Signing Your Applications
<li><a href="#debugmode">Signing in Debug Mode</a></li>
<li><a href="#releasemode">Signing for Public Release</a>
<ol>
- <li><a href="#releasecompile">Compiling for release</a></li>
- <li><a href="#cert">Obtaining a suitable private key</a></li>
- <li><a href="#signapp">Signing your application</a></li>
- <li><a href="#ExportWizard">Compiling and signing with Eclipse ADT</a></li>
+ <li><a href="#cert">Obtain a suitable private key</a></li>
+ <li><a href="#releasecompile">Compile the application in release mode</a></li>
+ <li><a href="#signapp">Sign your application with your private key</a></li>
+ <li><a href="#align">Align the final APK package</a></li>
+ <li><a href="#ExportWizard">Compile and sign with Eclipse ADT</a></li>
</ol>
</li>
<li><a href="#secure-key">Securing Your Private Key</a></li>
@@ -71,6 +72,7 @@ application's signer certificate expires after the application is installed, the
will continue to function normally.</li>
<li>You can use standard tools &mdash; Keytool and Jarsigner &mdash; to generate keys and
sign your application .apk files.</li>
+ <li>Once you have signed the application, use the <code>zipalign</code> tool to optimize the final APK package.</li>
</ul>
<p>The Android system will not install or run an application that is not signed appropriately. This
@@ -107,6 +109,9 @@ There are two ways to do this:
</li>
</ul>
+<p>Once your application is signed, don't forget to run {@code zipalign} on the APK
+for additional optimization.</p>
+
<h2 id="strategies">Signing Strategies</h2>
<p>Some aspects of application signing may affect how you approach the development
@@ -171,16 +176,16 @@ use a <a href="#cert">suitable certificate</a> to sign your applications. </p>
<h2 id="setup">Basic Setup for Signing</h2>
-<p>To support the generation of a keystore and debug key, you should first make sure that
+<p>Before you begin, you should 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.</p>
+tools. In most cases, you can tell the SDK build tools how to find Keytool by setting
+your <code>JAVA_HOME</code> environment variable to references a suitable JDK.
+Alternatively, you can add the JDK version of Keytool to your <code>PATH</code> variable.</p>
<p>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
-<code>/usr/bin/keytool</code>. In this case, check the symlink target to make sure that it points
+version. If Keytool is already in your <code>PATH</code>, it might be pointing to a symlink at
+<code>/usr/bin/keytool</code>. In this case, check the symlink target to be sure it points
to the Keytool in the JDK.</p>
<p>If you will release your application to the public, you will also need to have
@@ -191,46 +196,50 @@ in the JDK. </p>
<p>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.
-When you use debug mode, the SDK tools invoke Keytool to create a debug
-keystore and key.</p>
+requirement for signing your .apk.
+When using debug mode to build your app, the SDK tools invoke Keytool to automatically create
+a debug keystore and key. This debug key is then used to automatically sign the .apk, so
+you do not need to sign the package with your own key.</p>
-<p>The SDK tools create the debug keystore/key with predetermined names/passwords;</p>
+<p>The SDK tools create the debug keystore/key with predetermined names/passwords:</p>
<ul>
-<li>Keystore name &ndash; "debug.keystore"</li>
-<li>Keystore password &ndash; "android"</li>
-<li>Key alias &ndash; "androiddebugkey"</li>
-<li>Key password &ndash; "android"</li>
-<li>CN &ndash; "CN=Android Debug,O=Android,C=US"</li>
+<li>Keystore name: "debug.keystore"</li>
+<li>Keystore password: "android"</li>
+<li>Key alias: "androiddebugkey"</li>
+<li>Key password: "android"</li>
+<li>CN: "CN=Android Debug,O=Android,C=US"</li>
</ul></p>
<p>If necessary, you can change the location/name of the debug keystore/key or
-supply a custom debug keystore/key to use. In Eclipse/ADT, you can use
-<strong>Windows</strong> &gt; <strong>Prefs</strong> &gt;
-<strong>Android</strong> &gt; <strong>Build</strong>. However, any custom debug
+supply a custom debug keystore/key to use. However, any custom debug
keystore/key must use the same keystore/key names and passwords as the default
-debug key (as described above).</p>
+debug key (as described above). (To do so in Eclipse/ADT, go to
+<strong>Windows</strong> &gt; <strong>Preferences</strong> &gt;
+<strong>Android</strong> &gt; <strong>Build</strong>.) </p>
-<p class="note"><strong>Note:</strong> You <em>cannot</em> release your application
+<p class="caution"><strong>Caution:</strong> You <em>cannot</em> release your application
to the public when signed with the debug certificate.</p>
<h3>Eclipse Users</h3>
-<p>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 with the debug certificate and installs it on
-the emulator. No specific action on your part is needed, provided ADT has
-access to Keytool.</p>
+<p>If you are developing in Eclipse/ADT (and have set up Keytool as described above in
+<a href="#setup">Basic Setup for Signing</a>),
+signing in debug mode is enabled by default. When you run or debug your
+application, ADT signs the .apk with the debug certificate, runs {@code zipalign} on the
+package, then installs it on
+the selected emulator or connected device. No specific action on your part is needed,
+provided ADT has access to Keytool.</p>
<h3>Ant Users</h3>
-<p>If you use Ant to build your .apk files, debug signing mode
-is enabled by using the <code>debug</code> option, assuming that you are using a
-<code>build.xml</code> file generated by the
-<code>android</code> tool. When you run <code>ant debug</code> to
+<p>If you are using Ant to build your .apk files, debug signing mode
+is enabled by using the <code>debug</code> option with the <code>ant</code> command
+(assuming that you are using a <code>build.xml</code> file generated by the
+<code>android</code> tool). When you run <code>ant debug</code> to
compile your app, the build script generates a keystore/key and signs the .apk for you.
+The script then also aligns the .apk with the <code>zipalign</code> tool.
No other action on your part is needed. Read
-<a href="{@docRoot}guide/developing/other-ide.html#DebugMode">Developing In Other IDEs: Building
+<a href="{@docRoot}guide/developing/other-ide.html#DebugMode">Developing In Other IDEs: Building
in debug mode</a> for more information.</p>
@@ -268,51 +277,20 @@ certificate</a>. </p>
<p>When your application is ready for release to other users, you must:</p>
<ol>
- <li>Compile the application in release mode</li>
- <li>Obtain a suitable private key</li>
- <li>Sign the application with your private key</li>
+ <li><a href="#cert">Obtain a suitable private key</a></li>
+ <li><a href="#releasecompile">Compile the application in release mode</li>
+ <li><a href="#signapp">Sign your application with your private key</a></li>
+ <li><a href="#align">Align the final APK package</a></li>
</ol>
-<p>The sections below provide information about how to perform these steps.</p>
-
-<p>If you use Eclipse with the ADT plugin, you can instead use the Export Wizard
-to compile and sign an .apk with your private key. The Export Wizard even allows you to
-generate a new keystore and private key in the process. Skip to
-<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
-
-
-<h3 id="releasecompile">Compiling for release</h3>
-
-<p>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.</p>
-
-<p class="warning"><strong>Note:</strong>
-You can not release your application unsigned, or signed with the debug key.</p>
+<p>If you are developing in Eclipse with the ADT plugin, you can use the Export Wizard
+to perform the compile, sign, and align procedures. The Export Wizard even allows you to
+generate a new keystore and private key in the process. So if you use Eclipse, you can
+skip to <a href="#ExportWizard">Compile and sign with Eclipse ADT</a>.</p>
-<h4>Eclipse users</h4>
-<p>To export an <em>unsigned</em> .apk from Eclipse, right-click the project in the Package
-Explorer and select <strong>Android Tools</strong> > <strong>Export Unsigned Application
-Package</strong>. Then simply specify the file location for the unsigned .apk.
-(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
-the <em>Overview</em> tab, and click <strong>Export an unsigned .apk</strong>.)</p>
-
-<p>You can also combine the compiling and signing steps with the Export Wizard. See
-<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
-<h4>Ant users</h4>
-
-<p>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:</p>
-
-<pre>$ ant release</pre>
-
-<p>The build script compiles the application .apk without signing it.</p>
-
-
-<h3 id="cert">Obtaining a Suitable Private Key</h3>
+<h3 id="cert">1. Obtain a suitable private key</h3>
<p>In preparation for signing your application, you must first ensure that
you have a suitable private key with which to sign. A suitable private
@@ -339,7 +317,8 @@ in <a href="#setup">Basic Setup</a>.</p>
command and pass any of the options listed below (and any others, as
needed). </p>
-<p class="warning"><strong>Note:</strong> Before you run Keytool, make sure to read
+<p class="warning"><strong>Warning:</strong> Keep your private key secure.
+Before you run Keytool, make sure to read
<a href="#secure-key">Securing Your Private Key</a> 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
@@ -395,7 +374,6 @@ way, your password is not stored in your shell history.</p></td>
</tr>
</table>
-
<p>Here's an example of a Keytool command that generates a private key:</p>
<pre>$ keytool -genkey -v -keystore my-release-key.keystore
@@ -415,9 +393,57 @@ href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security">
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security</a></p>
-<h3 id="signapp">Signing your application</h3>
-<p>When you are ready to actually sign your .apk for release, you can do so
+<h3 id="releasecompile">2. Compile the application in release mode</h3>
+
+<p>In order to release your application to users, you must compile it in release mode.
+In release mode, the compiled application is not signed by default and you will need
+to sign it with your private key.</p>
+
+<p class="caution"><strong>Caution:</strong>
+You can not release your application unsigned, or signed with the debug key.</p>
+
+<h4>With Eclipse</h4>
+
+<p>To export an <em>unsigned</em> .apk from Eclipse, right-click the project in the Package
+Explorer and select <strong>Android Tools</strong> > <strong>Export Unsigned Application
+Package</strong>. Then specify the file location for the unsigned .apk.
+(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
+the <em>Overview</em> tab, and click <strong>Export an unsigned .apk</strong>.)</p>
+
+<p>Note that you can combine the compiling and signing steps with the Export Wizard. See
+<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
+
+<h4>With Ant</h4>
+
+<p>If you are using Ant, you can enable release mode by using the <code>release</code> option
+with the <code>ant</code> command. For example, if you are running Ant from the
+directory containing your {@code build.xml} file, the command would look like this:</p>
+
+<pre>ant release</pre>
+
+<p>By default, the build script compiles the application .apk without signing it. The output file
+in your project {@code bin/} will be <code><em>&lt;your_project_name></em>-unsigned.apk</code>.
+Because the application .apk is still unsigned, you must manually sign it with your private
+key and then align it using {@code zipalign}.</p>
+
+<p>However, the Ant build script can also perform the signing
+and aligning for you, if you have provided the path to your keystore and the name of
+your key alias in the project's {@code build.properties} file. With this information provided,
+the build script will prompt you for your keystore and alias password when you perform
+<code>ant release</code>, it will sign the package and then align it. The final output
+file in {@code bin/} will instead be
+<code><em>&lt;your_project_name></em>-release.apk</code>. With these steps
+automated for you, you're able to skip the manual procedures below (steps 3 and 4).
+To learn how to specify your keystore and alias in the {@code build.properties} file,
+see <a href="{@docRoot}guide/developing/other-ide.html#ReleaseMode">Developing In Other
+IDEs: Building in release mode</a>.</p>
+
+
+
+<h3 id="signapp">3. Sign your application with your private key</h3>
+
+<p>When you have an application package that is ready to be signed, you can do sign it
using the Jarsigner tool. Make sure that you have Jarsigner available on your
machine, as described in <a href="#setup">Basic Setup</a>. Also, make sure that
the keystore containing your private key is available.</p>
@@ -492,29 +518,63 @@ key.</p>
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security</a></p>
-<h3 id="ExportWizard">Compiling and signing with Eclipse ADT</h3>
+<h3 id="align">4. Align the final APK package</h3>
-<p>When using Eclipse with ADT, you can use the Export Wizard to
+<p>Once you have signed the .apk with your private key, run <code>zipalign</code> on the file.
+This tool ensures that all uncompressed data starts with a particular byte alignment,
+relative to the start of the file. Ensuring alignment at 4-byte boundaries provides
+a performance optimization when installed on a device. When aligned, the Android
+system is able to read files with {@code mmap()}, even if
+they contain binary data with alignment restrictions, rather than copying all
+of the data from the package. The benefit is a reduction in the amount of
+RAM consumed by the running application.</p>
+
+<p>The <code>zipalign</code> tool is provided with the Android SDK, inside the
+<code>tools/</code> directory. To align your signed .apk, execute:</p>
+
+<pre>zipalign -v 4 <em>your_project_name</em>-unaligned.apk <em>your_project_name</em>.apk</pre>
+
+<p>The {@code -v} flag turns on verbose output (optional). {@code 4} is the
+byte-alignment (don't use anything other than 4). The first file argument is
+your signed .apk (the input) and the second file is the destination .apk file (the output).
+If you're overriding an existing .apk, add the {@code -f} flag.</p>
+
+<p class="caution"><strong>Caution:</strong> Your input .apk must be signed with your
+private key <strong>before</strong> you optimize the package with {@code zipalign}.
+If you sign it after using {@code zipalign}, it will undo the alignment.</p>
+
+<p>For more information, read about the
+<a href="{@docRoot}guide/developing/tools/zipalign.html">zipalign</a> tool.
+
+
+<h3 id="ExportWizard">Compile and sign with Eclipse ADT</h3>
+
+<p>If you are using Eclipse with the ADT plugin, you can use the Export Wizard to
export a <em>signed</em> .apk (and even create a new keystore,
if necessary). The Export Wizard performs all the interaction with
-the Keytool and Jarsigner for you, which allows you to perform signing via a
-graphical interface instead of the command-line.
+the Keytool and Jarsigner for you, which allows you to sign the package using a GUI
+instead of performing the manual procedures to compile, sign,
+and align, as discussed above. Once the wizard has compiled and signed your package,
+it will also perfom package alignment with {@code zipalign}.
Because the Export Wizard uses both Keytool and Jarsigner, you should
ensure that they are accessible on your computer, as described above
in the <a href=#setup">Basic Setup for Signing</a>.</p>
-<p>To create a signed .apk, right-click the project in the Package
-Explorer and select <strong>Android Tools > Export Signed Application Package</strong>.
-(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
-the <em>Overview</em> tab, and click <strong>Use the Export Wizard</strong>.)
-The window that appears will display any errors found while
-attempting to export your application. If no errors are found, continue with the
-Export Wizard, which will guide you through the process of signing your application,
-including steps for selecting the private key with which to sign the .apk,
-or creating a new keystore and private key.</p>
-
-<p>When you complete the Export Wizard, you'll
-have a signed .apk that's ready for distribution.</p>
+<p>To create a signed and aligned .apk in Eclipse:</p>
+
+<ol>
+ <li>Select the project in the Package
+Explorer and select <strong>File > Export</strong>.</li>
+ <li>Open the Android folder, select Export Android Application,
+ and click <strong>Next</strong>.
+ <p>The Export Android Application wizard now starts, which will
+ guide you through the process of signing your application,
+ including steps for selecting the private key with which to sign the .apk
+ (or creating a new keystore and private key).</p>
+ <li>Complete the Export Wizard and your application will be compiled,
+ signed, aligned, and ready for distribution.</li>
+</ol>
+
<h2 id="secure-key">Securing Your Private Key</h2>
diff --git a/docs/html/guide/publishing/preparing.jd b/docs/html/guide/publishing/preparing.jd
index b4eaea39607f..5357166eb17a 100644
--- a/docs/html/guide/publishing/preparing.jd
+++ b/docs/html/guide/publishing/preparing.jd
@@ -220,22 +220,20 @@ elements, any MapView elements referencing the old Key will not have permission
to download Maps data. </li>
</ol>
-<p>For more information about signing and your private key, see <a
-href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
-
-
<h2 id="compile">Compile your application</h2>
<p>When you've prepared your application as described in the previous sections,
-you can compile your application for release. </p>
+you can compile your application for release.</p>
+
<h2 id="post-compile">After compiling your application</h2>
<h3 id="signapp">8. Sign your application</h3>
-<p>Sign your application using your private key. Signing your application
-correctly is critically important. Please see
-<a href="{@docRoot}guide/publishing/app-signing.html">Signing Your
+<p>Sign your application using your private key and then
+align it with the {@code zipalign} tool. Signing your application
+correctly is critically important. Please see
+<a href="{@docRoot}guide/publishing/app-signing.html">Signing Your
Applications</a> for complete information. </p>
<h3 id="testapp">9. Test your compiled and signed application</h3>
diff --git a/docs/html/guide/publishing/versioning.jd b/docs/html/guide/publishing/versioning.jd
index bd0403aa2673..7260eaef00e4 100644
--- a/docs/html/guide/publishing/versioning.jd
+++ b/docs/html/guide/publishing/versioning.jd
@@ -17,7 +17,7 @@ page.title=Versioning Your Applications
<ol>
<li><a href="#appversion">Setting Application Version</a></li>
-<li><a href="#minsdkversion">Specifying Minimum System API Version</a>
+<li><a href="#minsdkversion">Specifying Your Application's System API Requirements</a>
</ol>
@@ -125,31 +125,44 @@ applications use the
{@link android.content.pm.PackageManager#getPackageInfo(java.lang.String, int)}
method of {@link android.content.pm.PackageManager PackageManager}. </p>
-<h2 id="minsdkversion">Specifying Minimum System API Version</h2>
+<h2 id="minsdkversion">Specifying Your Application's System API Requirements</h2>
<p>If your application requires a specific minimum version of the Android
-platform, you can specify that version as an API Level identifier
+platform, or is designed only to support a certain range of Android platform
+versions, you can specify those version requirements as API Level identifiers
in the application's manifest file. Doing so ensures that your
application can only be installed on devices that
are running a compatible version of the Android system. </p>
-<p>To specify the minimum system version in the manifest, use this attribute: </p>
+<p>To specify API Level requirements, add a <code>&lt;uses-sdk&gt;</code>
+element in the application's manifest, with one or more of these attributes: </p>
<ul>
-<li><code>android:minSdkVersion</code> &mdash; An integer value corresponding to
-the code version of the Android platform.
-<p>When preparing to install an application, the system checks the value of this
+<li><code>android:minSdkVersion</code> &mdash; The minimum version
+of the Android platform on which the application will run, specified
+by the platform's API Level identifier. </li>
+<li><code>android:maxSdkVersion</code> &mdash; The maximum version
+of the Android platform on which the application is designed to run,
+specified by the platform's API Level identifier. </li>
+</ul>
+
+<p>When preparing to install your application, the system checks the value of this
attribute and compares it to the system version. If the
<code>android:minSdkVersion</code> value is greater than the system version, the
-system aborts the installation of the application. </p>
+system aborts the installation of the application. Similarly, the system
+installs your application only if its <code>android:maxSdkVersion</code>
+is compatible with the platform version.</p>
-<p>If you do not specify this attribute in your manifest, the system assumes
-that your application is compatible with all platform versions.</p></li>
-</ul>
+<p>If you do not specify these attributes in your manifest, the system assumes
+that your application is compatible with all platform versions, with no
+maximum API Level. </p>
<p>To specify a minimum platform version for your application, add a
<code>&lt;uses-sdk&gt;</code> element as a child of
<code>&lt;manifest&gt;</code>, then define the
<code>android:minSdkVersion</code> as an attribute. </p>
-<p>For more information, also see the <a href="{@docRoot}sdk/android-1.1.html">Android System Image 1.1 Version Notes</a>.</p>
+<p>For more information, see the <a
+href="{@docRoot}guide/developing/manifest/uses-sdk-element.html"><code>&lt;uses-
+sdk&gt;</code></a> manifest element documentation and the <a
+href="{@docRoot}guide/appendix/api-levels.htmll">API Levels</a> document.</p>
diff --git a/docs/html/guide/topics/intents/intents-filters.jd b/docs/html/guide/topics/intents/intents-filters.jd
index fd20ca1799c9..962a00135a17 100644
--- a/docs/html/guide/topics/intents/intents-filters.jd
+++ b/docs/html/guide/topics/intents/intents-filters.jd
@@ -16,10 +16,11 @@ page.title=Intents and Intent Filters
<h2>In this document</h2>
<ol>
<li><a href="#iobjs">Intent Objects</a></li>
-<li><a href="#ires">Intent Resolution</a>, including:</li>
+<li><a href="#ires">Intent Resolution</a></li>
<li style="margin-left: 2em"><a href="#ifs">Intent filters</a></li>
<li style="margin-left: 2em"><a href="#ccases">Common cases</a></li>
<li style="margin-left: 2em"><a href="#imatch">Using intent matching</a></li>
+<li><a href="#npex">Note Pad Example</a></li>
</ol>
</div>
</div>
@@ -31,7 +32,7 @@ broadcast receivers &mdash; are activated through messages, called <i>intents</i
Intent messaging is a facility for late run-time binding between components in the same
or different applications. The intent itself, an {@link android.content.Intent}
object, is a passive data structure holding an abstract description of an operation
-to be performed &mdash; or, in the case of broadcasts, a description of something
+to be performed &mdash; or, often in the case of broadcasts, a description of something
that has happened and is being announced. There are separate mechanisms for
delivering intents to each type of component:
</p>
@@ -40,7 +41,9 @@ delivering intents to each type of component:
<li>An Intent object is passed to <code>{@link android.content.Context#startActivity
Context.startActivity()}</code> or <code>{@link android.app.Activity#startActivityForResult
Activity.startActivityForResult()}</code> to launch an activity or get an existing
-activity to do something new.</li>
+activity to do something new. (It can also be passed to
+<code>{@link android.app.Activity#setResult(int, Intent) Activity.setResult()}</code>
+to return information to the activity that called {@code startActivityForResult()}.)</li>
<li><p>An Intent object is passed to <code>{@link android.content.Context#startService
Context.startService()}</code> to initiate a service or deliver new instructions to an
@@ -380,22 +383,12 @@ component's filters.
<p>
A component has separate filters for each job it can do, each face it can
-present to the user. For example, the principal activity of the sample
-NotePad application has three filters &mdash; one for starting up with a
-blank slate, another for starting with an assigned directory of notes
-that the user can view, edit, or select from, and a third for finding a
-particular note without an initial specification of its directory.
-</p>
-
-<p>
-An intent filter is an instance of the {@link android.content.IntentFilter} class.
-However, since the Android system must know about the capabilities of a component
-before it can launch that component, intent filters are generally not set up in
-Java code, but in the application's manifest file (AndroidManifest.xml) as
-{@code &lt;intent-filter&gt;} elements. (The one exception would be filters for
-broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String,
-Handler) Context.registerReceiver()}</code>; they are directly created as
-IntentFilter objects.)
+present to the user. For example, the NoteEditor activity of the sample
+Note Pad application has two filters &mdash; one for starting up with a
+specific note that the user can view or edit, and another for starting
+with a new, blank note that the user can fill in and save. (All of Note
+Pad's filters are described in the <a href="#npex">Note Pad Example</a>
+section, later.)
</p>
<div class="sidebox-wrapper">
@@ -413,6 +406,18 @@ name the component as the target.
</div>
<p>
+An intent filter is an instance of the {@link android.content.IntentFilter} class.
+However, since the Android system must know about the capabilities of a component
+before it can launch that component, intent filters are generally not set up in
+Java code, but in the application's manifest file (AndroidManifest.xml) as
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+elements. (The one exception would be filters for
+broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String,
+Handler) Context.registerReceiver()}</code>; they are directly created as
+IntentFilter objects.)
+</p>
+
+<p>
A filter has fields that parallel the action, data, and category fields of an
Intent object. An implicit intent is tested against the filter in all three areas.
To be delivered to the component that owns the filter, it must pass all three tests.
@@ -429,8 +434,11 @@ Each of the three tests is described in detail below:
<dl>
<dt><b>Action test</b></dt>
-<dd>An {@code &lt;intent-filter&gt;} element in the manifest file lists actions
-as {@code &lt;action&gt;} subelements. For example:
+<dd>An
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+element in the manifest file lists actions as
+<code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
+subelements. For example:
<pre>&lt;intent-filter . . . &gt;
&lt;action android:name="com.example.project.SHOW_CURRENT" /&gt;
@@ -464,8 +472,9 @@ contains at least one action.</p></li>
</dd>
<dt><b>Category test</b></dt>
-<dd>An {@code &lt;intent-filter&gt;} element also lists categories as subelements.
-For example:
+<dd>An
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+element also lists categories as subelements. For example:
<pre>&lt;intent-filter . . . &gt;
&lt;category android:name="android.intent.category.DEFAULT" /&gt;
@@ -512,14 +521,16 @@ is contained in a subelement. And, as in those cases, the subelement can appear
multiple times, or not at all. For example:
<pre>&lt;intent-filter . . . &gt;
- &lt;data android:type="video/mpeg" android:scheme="http" . . . /&gt;
- &lt;data android:type="audio/mpeg" android:scheme="http" . . . /&gt;
+ &lt;data android:mimeType="video/mpeg" android:scheme="http" . . . /&gt;
+ &lt;data android:mimeType="audio/mpeg" android:scheme="http" . . . /&gt;
. . .
&lt;/intent-filter&gt;</pre>
<p>
-Each {@code &lt;data&gt;} element can specify a URI and a data type (MIME media type).
-There are separate attributes &mdash; {@code scheme}, {@code host}, {@code port},
+Each
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code>
+element can specify a URI and a data type (MIME media type). There are separate
+attributes &mdash; {@code scheme}, {@code host}, {@code port},
and {@code path} &mdash; for each part of the URI:
</p>
@@ -607,7 +618,7 @@ for example, tells Android that the component can get image data from a content
provider and display it:
</p>
-<pre>&lt;data android:type="image/*" /&gt;</pre>
+<pre>&lt;data android:mimeType="image/*" /&gt;</pre>
<p>
Since most available data is dispensed by content providers, filters that
@@ -681,6 +692,357 @@ can respond. There's a similar method,
queryBroadcastReceivers()}, for broadcast receivers.
</p>
+<h2 id="npex">Note Pad Example</h2>
+
+<p>
+The Note Pad sample application enables users to browse through a list
+of notes, view details about individual items in the list, edit the items,
+and add a new item to the list. This section looks at the intent filters
+declared in its manifest file. (If you're working offline in the SDK, you
+can find all the source files for this sample application, including its
+manifest file, at {@code &lt;sdk&gt;/samples/NotePad/index.html}.
+If you're viewing the documentation online, the source files are in the
+<a href="{@docRoot}guide/samples/index.html">Tutorials and Sample Code</a>
+section <a href="{@docRoot}guide/samples/NotePad/index.html">here</a>.)
+</p>
+
+<p>
+In its manifest file, the Note Pad application declares three activities,
+each with at least one intent filter. It also declares a content provider
+that manages the note data. Here is the manifest file in its entirety:
+</p>
+
+<pre>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.example.android.notepad"&gt;
+ &lt;application android:icon="@drawable/app_notes"
+ android:label="@string/app_name" &gt;
+
+ &lt;provider android:name="NotePadProvider"
+ android:authorities="com.google.provider.NotePad" /&gt;
+
+ &lt;activity android:name="NotesList" android:label="@string/title_notes_list"&gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.MAIN" /&gt;
+ &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.VIEW" /&gt;
+ &lt;action android:name="android.intent.action.EDIT" /&gt;
+ &lt;action android:name="android.intent.action.PICK" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.GET_CONTENT" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;/activity&gt;
+
+ &lt;activity android:name="NoteEditor"
+ android:theme="@android:style/Theme.Light"
+ android:label="@string/title_note" &gt;
+ &lt;intent-filter android:label="@string/resolve_edit"&gt;
+ &lt;action android:name="android.intent.action.VIEW" /&gt;
+ &lt;action android:name="android.intent.action.EDIT" /&gt;
+ &lt;action android:name="com.android.notepad.action.EDIT_NOTE" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.INSERT" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;/activity&gt;
+
+ &lt;activity android:name="TitleEditor"
+ android:label="@string/title_edit_title"
+ android:theme="@android:style/Theme.Dialog"&gt;
+ &lt;intent-filter android:label="@string/resolve_title"&gt;
+ &lt;action android:name="com.android.notepad.action.EDIT_TITLE" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;category android:name="android.intent.category.ALTERNATIVE" /&gt;
+ &lt;category android:name="android.intent.category.SELECTED_ALTERNATIVE" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+ &lt;/intent-filter&gt;
+ &lt;/activity&gt;
+
+ &lt;/application&gt;
+&lt;/manifest&gt;</pre>
+
+<p>
+The first activity, NotesList, is
+distinguished from the other activities by the fact that it operates
+on a directory of notes (the note list) rather than on a single note.
+It would generally serve as the initial user interface into the
+application. It can do three things as described by its three intent
+filters:
+</p>
+
+<ol>
+<li><pre>&lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.MAIN" /&gt;
+ &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter declares the main entry point into the Note Pad application.
+The standard {@code MAIN} action is an entry point that does not require
+any other information in the Intent (no data specification, for example),
+and the {@code LAUNCHER} category says that this entry point should be
+listed in the application launcher.
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.VIEW" /&gt;
+ &lt;action android:name="android.intent.action.EDIT" /&gt;
+ &lt;action android:name="android.intent.action.PICK" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter declares the things that the activity can do on a directory
+of notes. It can allow the user to view or edit the directory (via
+the {@code VIEW} and {@code EDIT} actions), or to pick a particular note
+from the directory (via the {@code PICK} action).
+</p>
+
+<p>
+The {@code mimeType} attribute of the
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code>
+element specifies the kind of data that these actions operate on. It
+indicates that the activity can get a Cursor over zero or more items
+({@code vnd.android.cursor.dir}) from a content provider that holds
+Note Pad data ({@code vnd.google.note}). The Intent object that launches
+the activity would include a {@code content:} URI specifying the exact
+data of this type that the activity should open.
+</p>
+
+<p>
+Note also the {@code DEFAULT} category supplied in this filter. It's
+there because the <code>{@link android.content.Context#startActivity
+Context.startActivity()}</code> and
+<code>{@link android.app.Activity#startActivityForResult
+Activity.startActivityForResult()}</code> methods treat all intents
+as if they contained the {@code DEFAULT} category &mdash; with just
+two exceptions:
+</p>
+
+<ul>
+<li>Intents that explicitly name the target activity</li>
+<li>Intents consisting of the {@code MAIN} action and {@code LAUNCHER}
+category</li>
+</ul>
+
+<p>
+Therefore, the {@code DEFAULT} category is <em>required</em> for all
+filters &mdash; except for those with the {@code MAIN} action and
+{@code LAUNCHER} category. (Intent filters are not consulted for
+explicit intents.)
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.GET_CONTENT" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+This filter describes the activity's ability to return a note selected by
+the user without requiring any specification of the directory the user should
+choose from. The {@code GET_CONTENT} action is similar to the {@code PICK}
+action. In both cases, the activity returns the URI for a note selected by
+the user. (In each case, it's returned to the activity that called
+<code>{@link android.app.Activity#startActivityForResult
+startActivityForResult()}</code> to start the NoteList activity.) Here,
+however, the caller specifies the type of data desired instead of the
+directory of data the user will be picking from.
+</p>
+
+<p>
+The data type, <code>vnd.android.cursor.item/vnd.google.note</code>,
+indicates the type of data the activity can return &mdash; a URI for
+a single note. From the returned URI, the caller can get a Cursor for
+exactly one item ({@code vnd.android.cursor.item}) from the content
+provider that holds Note Pad data ({@code vnd.google.note}).
+</p>
+
+<p>
+In other words, for the {@code PICK} action in the previous filter,
+the data type indicates the type of data the activity could display to the
+user. For the {@code GET_CONTENT} filter, it indicates the type of data
+the activity can return to the caller.
+</p></li>
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NotesList activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>android.intent.action.MAIN</code></dt>
+<dd>Launches the activity with no data specified.</dd>
+
+<dt>action: <code>android.intent.action.MAIN</code>
+<br/>category: <code>android.intent.category.LAUNCHER</code></dt>
+<dd> Launches the activity with no data selected specified.
+This is the actual intent used by the Launcher to populate its top-level
+list. All activities with filters that match this action and category
+are added to the list.</dd>
+
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of all the notes under
+<code>content://com.google.provider.NotePad/notes</code>. The user can then
+browse through the list and get information about the items in it.</dd>
+
+<dt>action: <code>android.intent.action.PICK</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of the notes under
+<code>content://com.google.provider.NotePad/notes</code>.
+The user can then pick a note from the list, and the activity will return
+the URI for that item back to the activity that started the NoteList activity.</dd>
+
+<dt>action: <code>android.intent.action.GET_CONTENT</code>
+<br/>data type: <code>vnd.android.cursor.item/vnd.google.note</code></dt>
+<dd>Asks the activity to supply a single item of Note Pad data.</dd>
+</dl>
+
+<p>
+The second activity, NoteEditor, shows
+users a single note entry and allows them to edit it. It can do two things
+as described by its two intent filters:
+
+<ol>
+<li><pre>&lt;intent-filter android:label="@string/resolve_edit"&gt;
+ &lt;action android:name="android.intent.action.VIEW" /&gt;
+ &lt;action android:name="android.intent.action.EDIT" /&gt;
+ &lt;action android:name="com.android.notepad.action.EDIT_NOTE" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The first, primary, purpose of this activity is to enable the user to
+interact with a single note &mdash to either {@code VIEW} the note or
+{@code EDIT} it. (The {@code EDIT_NOTE} category is a synonym for
+{@code EDIT}.) The intent would contain the URI for data matching the
+MIME type <code>vnd.android.cursor.item/vnd.google.note</code> &mdash;
+that is, the URI for a single, specific note. It would typically be a
+URI that was returned by the {@code PICK} or {@code GET_CONTENT}
+actions of the NoteList activity.
+</p>
+
+<p>
+As before, this filter lists the {@code DEFAULT} category so that the
+activity can be launched by intents that don't explicitly specify the
+NoteEditor class.
+</p></li>
+
+<li><pre>&lt;intent-filter&gt;
+ &lt;action android:name="android.intent.action.INSERT" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The secondary purpose of this activity is to enable the user to create a new
+note, which it will {@code INSERT} into an existing directory of notes. The
+intent would contain the URI for data matching the MIME type
+<code>vnd.android.cursor.dir/vnd.google.note</code> &mdash; that
+is, the URI for the directory where the note should be placed.
+</p></li>
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NoteEditor activity:
+</p>
+
+<dl style:"margin-left: 2em">
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified
+by {@code <var>ID</var>}. (For details on how {@code content:} URIs
+specify individual members of a group, see
+<a href="{@docRoot}guide/topics/provider/content-providers.html">Content Providers</a>.)
+
+<dt>action: <code>android.intent.action.EDIT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified
+by {@code <var>ID</var>}, and to let the user edit it. If the user
+saves the changes, the activity updates the data for the note in the
+content provider.</dd>
+
+<dt>action: <code>android.intent.action.INSERT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to create a new, empty note in the notes list at
+<code>content://com.google.provider.NotePad/notes</code>
+and allow the user to edit it. If the user saves the note, its URI
+is returned to the caller.
+</dd>
+</dl>
+
+<p>The last activity, TitleEditor,
+enables the user to edit the title of a note. This could be implemented
+by directly invoking the activity (by explicitly setting its component
+name in the Intent), without using an intent filter. But here we take
+the opportunity to show how to publish alternative operations on existing
+data:
+</p>
+
+<pre>&lt;intent-filter android:label="@string/resolve_title"&gt;
+ &lt;action android:name="com.android.notepad.action.EDIT_TITLE" /&gt;
+ &lt;category android:name="android.intent.category.DEFAULT" /&gt;
+ &lt;category android:name="android.intent.category.ALTERNATIVE" /&gt;
+ &lt;category android:name="android.intent.category.SELECTED_ALTERNATIVE" /&gt;
+ &lt;data android:mimeType="vnd.android.cursor.item/vnd.google.note" /&gt;
+&lt;/intent-filter&gt;</pre>
+
+<p>
+The single intent filter for this activity uses a custom action called
+"<code>com.android.notepad.action.EDIT_TITLE</code>". It must be invoked on
+a specific note (data type <code>vnd.android.cursor.item/vnd.google.note</code>),
+like the previous {@code VIEW} and {@code EDIT} actions. However, here the
+activity displays the title contained in the note data, not the content of
+the note itself.
+</p>
+
+<p>
+In addition to supporting the usual {@code DEFAULT} category, the title
+editor also supports two other standard categories:
+<code>{@link android.content.Intent#CATEGORY_ALTERNATIVE ALTERNATIVE}</code>
+and <code>{@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE
+SELECTED_ALTERNATIVE}</code>.
+These categories identify activities that can be presented to users in
+a menu of options (much as the {@code LAUNCHER} category identifies
+activities that should be presented to user in the application launcher).
+Note that the filter also supplies an explicit label (via
+<code>android:label="@string/resolve_title"</code>) to better control
+what users see when presented with this activity as an alternative
+action to the data they are currently viewing. (For more information
+on these categories and building options menus, see the
+<code>{@link android.content.pm.PackageManager#queryIntentActivityOptions
+PackageManager.queryIntentActivityOptions()}</code> and
+<code>{@link android.view.Menu#addIntentOptions Menu.addIntentOptions()}</code>
+methods.)
+</p>
+
+<p>
+Given these capabilities, the following intent will resolve to the
+TitleEditor activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>com.android.notepad.action.EDIT_TITLE</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the title associated with note <var>ID</var>, and
+allow the user to edit the title.</dd>
+</dl>
+
diff --git a/docs/html/guide/topics/manifest/supports-screens-element.jd b/docs/html/guide/topics/manifest/supports-screens-element.jd
index 00797edd5566..3fb0172addea 100644
--- a/docs/html/guide/topics/manifest/supports-screens-element.jd
+++ b/docs/html/guide/topics/manifest/supports-screens-element.jd
@@ -30,40 +30,8 @@ framework will scale down assets by a factor of 0.75 (low dpi screens)
or scale them up by a factor of 1.5 (high dpi screens).
The screen density is expressed as dots-per-inch (dpi).</p>
-<p>Currently supported densities:</p>
-<ul>
- <li>Low density: 120 dpi</li>
- <li>Medium density: 160 dpi</li>
- <li>High density: 240 dpi</li>
-</ul>
-
-<p>Table of display types:</p>
-
-<table>
-<tr>
- <th></th><th>Low Density</th><th>Medium Density</th><th>High Density</th>
-</tr>
-<tr>
- <th>Small Screen</th>
- <td>QVGA</td>
- <td>n/a</td>
- <td>VGA</td>
-</tr>
-<tr>
- <th>Normal Screen</th>
- <td>WQVGA</td>
- <td>HVGA</td>
- <td>WVGA, FWVGA</td>
-</tr>
-<tr>
- <th>Large Screen</th>
- <td>n/a</td>
- <td>VGA, WVGA, FWVGA</td>
- <td>n/a</td>
-</tr>
-</table>
-
-</dd>
+<p>For more information, see
+<a href="{@docRoot}guide/practices/screens_suppport.html">Multiple Screens Support</a>.</p>
<dt>attributes:</dt>
@@ -116,6 +84,7 @@ The screen density is expressed as dots-per-inch (dpi).</p>
<dt>see also:</dt>
<dd>
<ul>
+ <li><a href="{@docRoot}guide/practices/screens_suppport.html">Multiple Screens Support</a></li>
<li>{@link android.util.DisplayMetrics}</li>
</ul>
</dd>
diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd
index ee8d03dc06d1..aa1e8aee4a41 100644
--- a/docs/html/guide/topics/manifest/uses-sdk-element.jd
+++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd
@@ -36,30 +36,27 @@ and minor versions).</p>
<dd>
<dl class="attr">
<dt><a name="min"></a>{@code android:minSdkVersion}</dt>
- <dd>An integer designating the minimum level of the Android API that's required
- for the application to run.
+ <dd>An integer designating the minimum API Level required
+ for the application to run. The Android system will prevent the user from installing
+ the application if the system's API Level is lower than the value specified in
+ this attribute. You should always declare this attribute.
- <p>Prior to installing an application, the Android system checks the value of this
- attribute and allows the installation only if it
- is less than or equal to the API Level used by the system itself.</p>
-
- <p>If you do not declare this attribute, then a value of "1" is assumed, which
+ <p class="caution"><strong>Caution:</strong>
+ If you do not declare this attribute, then a value of "1" is assumed, which
indicates that your application is compatible with all versions of Android. If your
- application is <em>not</em> universally compatible (for instance if it uses APIs
- introduced in Android 1.5) and you have not declared the proper <code>minSdkVersion</code>,
- then when installed on a system with a lower API Level, the application
- will crash during runtime. For this reason, be certain to declare the appropriate API Level
+ application is <em>not</em> compatible with all versions (for instance, it uses APIs
+ introduced in API Level 3) and you have not declared the proper <code>minSdkVersion</code>,
+ then when installed on a system with an API Level less than 3, the application will crash
+ during runtime when attempting to access the unavailable APIs. For this reason,
+ be certain to declare the appropriate API Level
in the <code>minSdkVersion</code> attribute.</p>
</dd>
<dt><a name="max"></a>{@code android:maxSdkVersion}</dt>
- <dd>An integer designating the maximum level of the Android API that the application is
- compatible with. You can use this to ensure your application is filtered out
- of later versions of the platform when you know you have incompatibility with them.</p>
-
- <p>Prior to installing an application, the Android system checks the value of this
- attribute and allows the installation only it
- is greater than or equal to the API Level used by the system itself.</p>
+ <dd>An integer designating the maximum API Level on which the application is
+ designed to run. The Android system will prevent the user from installing the
+ application if the system's API Level is higher than the value specified
+ in this attribute.
<p>Introduced in: API Level 4</p>
</dd>
diff --git a/docs/html/guide/topics/resources/available-resources.jd b/docs/html/guide/topics/resources/available-resources.jd
index 2a6a6ac6a112..f5f1475b79da 100644
--- a/docs/html/guide/topics/resources/available-resources.jd
+++ b/docs/html/guide/topics/resources/available-resources.jd
@@ -36,6 +36,7 @@ parent.link=index.html
</ol>
</li>
<li><a href="#stylesandthemes">Styles and Themes</a></li>
+ <li><a href="#Searchable">Searchable</a></li>
</ol>
</div>
@@ -86,7 +87,7 @@ XML files such as <a href="#layoutresources">layouts</a>.</p>
<code>&lt;color&gt;</code> tags.
</p>
<p>
- <strong>Resource source file location</strong>: res/values/<em>colors</em>.xml (file name is arbitrary)
+ <strong>Resource source file location</strong>: {@code res/values/<em>colors</em>.xml} (File name is arbitrary.)
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a Java int.
@@ -183,7 +184,7 @@ tags.
<strong>Source file format:</strong> XML file requiring a <code>&lt;?xml version="1.0" encoding="utf-8"?&gt;</code> declaration, and a root <code>&lt;resources&gt;</code> element containing one or more <code>&lt;string&gt;</code> tags.
</p>
<p>
- <strong>Resource source file location</strong>: res/values/<em>strings</em>.xml (file name is arbitrary)
+ <strong>Resource source file location</strong>: {@code res/values/<em>strings</em>.xml} (File name is arbitrary.)
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a Java CharSequence.
@@ -338,8 +339,8 @@ version="1.0" encoding="utf-8"?&gt;</code> declaration, and a root
<code>&lt;resources&gt;</code> element containing one or more
<code>&lt;dimen&gt;</code> tags.</p>
-<p><strong>Resource source file location</strong>: res/values/dimens.xml (File
-name is arbitrary; standard practice is to put all dimensions in one file
+<p><strong>Resource source file location</strong>: {@code res/values/dimens.xml} (File
+name is arbitrary, but standard practice is to put all dimensions in one file
devoted to dimensions.)</p>
<p><strong>Compiled resource datatype:</strong> Resource pointer to a
dimension.</p>
@@ -424,7 +425,7 @@ res/drawable/my_picture.png would be referenced as R.drawable.my_picture).</p>
<strong>Source file formats:</strong> png (preferred), jpg (acceptable), gif (discouraged). One resource per file.
</p>
<p>
- <strong>Resource file location</strong>: res/drawable/<em>some_file</em>.png or <em>some_file</em>.jpg or <em>some_file</em>.gif.
+ <strong>Resource file location</strong>: {@code res/drawable/<em>some_file</em>.png}
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a {@link android.graphics.drawable.BitmapDrawable BitmapDrawable}.
@@ -453,7 +454,8 @@ version="1.0" encoding="utf-8"?&gt;</code> declaration, and a root
<code>&lt;resources&gt;</code> element containing one or more
<code>&lt;drawable&gt;</code> tags.</p>
<p>
- <strong>Resource source file location</strong>: res/values/colors.xml (File name is arbitrary; standard practice is to put the PaintDrawable items in the file along with the <a href="resources-i18n.html#numericcolorresources">numeric color values</a>.)
+ <strong>Resource source file location</strong>: {@code res/values/colors.xml} (File name is arbitrary, but standard practice is to put the PaintDrawable
+ items in the file along with the <a href="resources-i18n.html#numericcolorresources">numeric color values</a>.)
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a {@link android.graphics.drawable.PaintDrawable}.
@@ -540,7 +542,7 @@ tv.setBackground(redDrawable);
<strong>Source file format:</strong> PNG &mdash; one resource per file
</p>
<p>
- <strong>Resource source file location</strong>: res/drawable/<em>some_name</em>.9.png (must end in .9.png)
+ <strong>Resource source file location</strong>: {@code res/drawable/<em>some_name</em>.9.png} (Filename must end in {@code .9.png})
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a {@link android.graphics.drawable.NinePatchDrawable NinePatchDrawable}.
@@ -573,7 +575,7 @@ in <a href="{@docRoot}guide/topics/graphics/2d-graphics.html#nine-patch">2D Grap
<strong>Source file format:</strong> XML file, one resource per file, one root tag with no <code>&lt;?xml&gt;</code> declaration
</p>
<p>
- <strong>Resource file location</strong>: res/anim/<em>some_file</em>.xml
+ <strong>Resource file location</strong>: {@code res/anim/<em>some_file</em>.xml}
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to an {@link android.view.animation.Animation}.
@@ -906,7 +908,7 @@ res/layout/<em>some_file</em>.xml.</p>
</p>
<pre>
&lt;<em>ViewGroupClass</em> xmlns:android="http://schemas.android.com/apk/res/android"
- id="@+id/<em>string_name</em>" (attributes)&gt;
+ android:id="@+id/<em>string_name</em>" (attributes)&gt;
&lt;<em>widget</em> or other nested <em>ViewGroupClass</em>&gt;+
&lt;requestFocus/&gt;(0 or 1 per layout file, assigned to any element)
&lt;/<em>ViewGroupClass</em>&gt;
@@ -917,7 +919,7 @@ res/layout/<em>some_file</em>.xml.</p>
</dt>
<dd>
<p>The file must have a single root element. This can be a ViewGroup class that contains other elements, or a widget (or custom item) if it's only one object. By default, you can use any (case-sensitive) Android {@link android.widget widget} or {@link android.view.ViewGroup ViewGroup} class name as an element. These elements support attributes that apply to the underlying class, but the naming is not as clear. How to discover what attributes are supported for what tags is discussed below. You should not assume that any nesting is valid (for example you cannot enclose <code>&lt;TextView&gt;</code> elements inside a <code>&lt;ListLayout&gt;</code>).</p>
- <p>If a class derives from another class, the XML element inherits all the attributes from the element that it "derives" from. So, for example, <code>&lt;EditText&gt;</code> is the corresponding XML element for the EditText class. It exposes its own unique attributes (<code>EditText_numeric</code>), as well as all attributes supported by <code>&lt;TextView&gt;</code> and <code>&lt;View&gt;</code>. For the <em>id</em> attribute of a tag in XML, you should use a special syntax: "@+id/<em>somestringvalue</em>". The "@+" syntax creates a resource number in the R.id class, if one doesn't exist, or uses it, if it does exist. When declaring an ID value for an XML tag, use this syntax. Example: <code>&lt;TextView id="@+id/nameTextbox"/&gt;</code>, and refer to it this way in Java: <code>findViewById(R.id.nameTextbox)</code>. All elements support the following values:</p>
+ <p>If a class derives from another class, the XML element inherits all the attributes from the element that it "derives" from. So, for example, <code>&lt;EditText&gt;</code> is the corresponding XML element for the EditText class. It exposes its own unique attributes (<code>EditText_numeric</code>), as well as all attributes supported by <code>&lt;TextView&gt;</code> and <code>&lt;View&gt;</code>. For the <em>id</em> attribute of a tag in XML, you should use a special syntax: "@+id/<em>somestringvalue</em>". The "@+" syntax creates a resource number in the R.id class, if one doesn't exist, or uses it, if it does exist. When declaring an ID value for an XML tag, use this syntax. Example: <code>&lt;TextView android:id="@+id/nameTextbox"/&gt;</code>, and refer to it this way in Java: <code>findViewById(R.id.nameTextbox)</code>. All elements support the following values:</p>
<ul>
<li>
<em>id</em> - An ID value used to access this element in Java. Typically you will use the syntax @+id/<em>string_name</em> to generate an ID for you in the id.xml file if you haven't created one yourself.
@@ -1005,7 +1007,7 @@ res/layout/<em>some_file</em>.xml.</p>
android:paddingBottom="4" // TextView.paddingBottom
android:text="@string/redirect_getter"/&gt; // TextView.text
- &lt;EditText id="@+id/text"
+ &lt;EditText android:id="@+id/text"
android:layout_width="fill_parent" // EditText.LayoutParams.width
android:layout_height="wrap_content" // EditText.LayoutParams.height
android:layout_weight="0" // EditText.LinearLayoutParams.weight
@@ -1013,7 +1015,7 @@ res/layout/<em>some_file</em>.xml.</p>
&lt;requestFocus /&gt;
&lt;/EditText&gt;
- &lt;Button id="@+id/apply"
+ &lt;Button android:id="@+id/apply"
android:layout_width="wrap_content" // Button.LayoutParams.width
android:layout_height="wrap_content" // Button.LayoutParams.height
android:text="@string/apply" /&gt; // TextView.text
@@ -1045,7 +1047,7 @@ setContentView(R.layout.main_screen);
<strong>Java implementation file</strong> - The implementation file. The class must extend {@link android.view.View View} or a subclass. See LabelView.java in ApiDemos.
</li>
<li>
- <strong>res/values/attrs.xml</strong> - Defines the XML element, and the attributes that it supports, for clients to use to instantiate your object in their layout XML file. Define your element in a <code>&lt;declare-styleable id=<em>your_java_class_name</em>&gt;</code>. See res/layout/attrs.xml in ApiDemos.
+ <strong>res/values/attrs.xml</strong> - Defines the XML element, and the attributes that it supports, for clients to use to instantiate your object in their layout XML file. Define your element in a <code>&lt;declare-styleable name=<em>your_java_class_name</em>&gt;</code>. See res/values/attrs.xml in ApiDemos.
</li>
<li>
<strong>res/layout/<em>your_class</em>.xml</strong> [<em>optional</em>] - An optional XML file to describe the layout of your object. This could also be done in Java. See custom_view_1.xml in ApiDemos.
@@ -1055,7 +1057,7 @@ setContentView(R.layout.main_screen);
<strong>Source file format:</strong> XML file without an <code>&lt;?xml&gt;</code> declaration, and a <code>&lt;resources&gt;</code> root element containing one or more custom element tags.
</p>
<p>
- <strong>Resource file location</strong>: res/values/<em>attrs</em>.xml (file name is arbitrary).
+ <strong>Resource file location</strong>: {@code res/values/<em>attrs</em>.xml} (File name is arbitrary.)
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a {@link android.view.View} (or subclass) resource.
@@ -1084,7 +1086,7 @@ setContentView(R.layout.main_screen);
<strong>Source file format:</strong> XML file requiring a <code>&lt;?xml version="1.0" encoding="utf-8"?&gt;</code> declaration, and a root <code>&lt;resources&gt;</code> element containing one or more <code>&lt;style&gt;</code> tags.
</p>
<p>
- <strong>Resource source file location</strong>: res/values/styles.xml (file name is arbitrary). The file name is arbitrary, but standard practice is to put all styles into a file named styles.xml.
+ <strong>Resource source file location</strong>: {@code res/values/styles.xml} (File name is arbitrary, but standard practice is to put all styles into a file named styles.xml.)
</p>
<p>
<strong>Compiled resource datatype:</strong> Resource pointer to a Java CharSequence.
@@ -1133,3 +1135,317 @@ setContentView(R.layout.main_screen);
<p>For examples of how to declare and apply styles and themes, read
<a href="{@docRoot}guide/topics/ui/themes.html">Applying Styles and Themes</a>.</p>
+
+
+
+<h2 id="Searchable">Searchable</h2>
+
+<p>To make search appear to the user as a seamless system-wide feature, the Android framework
+offers APIs that let applications control how they are searched.
+Applications can customize how search is invoked, how the search dialog looks, and what type of
+search results are available, including suggestions that are shown as the user types.</p>
+
+<p>In order to utilize the Android search framework, an application must provide a search configuration
+in the form of an XML resource.
+This section describes the search configuration XML in terms of its syntax and usage. For a more
+complete discussion about how to implement search features for your application, see
+<!-- <a href="{@docRoot}guide/topics/search/index.html">Search</a> -->
+{@link android.app.SearchManager}.</p>
+
+<p>
+ <strong>Source file format:</strong>
+ XML file requiring a <code>&lt;?xml version="1.0" encoding="utf-8"?&gt;</code>
+ declaration, and a root <code>&lt;searchable&gt;</code> element.
+</p>
+
+<p>
+ <strong>Resource source file location</strong>: {@code res/xml/searchable.xml}
+ (The file name is arbitrary, but standard practice is to use searchable.xml.)
+</p>
+
+<p>
+ <strong>Compiled resource datatype:</strong>
+ Resource pointer to an xml object.
+</p>
+
+<p>
+ <strong>Resource reference name:</strong>
+</p>
+
+<ul>
+ <li>
+ <strong>Java:</strong>
+ <code>R.xml.<em>filename</em></code>.
+ </li>
+ <li>
+ <strong>XML:</strong>
+ <code>@[<em>package</em>:]xml/<em>filename</em></code> (e.g., <code>@xml/searchable</code>).
+ </li>
+</ul>
+
+<p>
+ <strong>Syntax</strong>
+</p>
+
+<pre>
+&lt;searchable xmlns:android="http://schemas.android.com/apk/res/android
+ android:label="@string/search_label"
+ ... &gt;
+ <em>&lt;actionkey
+ android:keycode="KEYCODE_CALL"
+ ... &gt;</em>
+&lt;/searchable&gt;
+</pre>
+
+<dl>
+ <dt>
+ &lt;searchable&gt;
+ </dt>
+ <dd>
+ Defines all application search configurations, including settings for text and voice searches
+ performed within the application. It accepts the following attributes:
+ <ul>
+ <li>
+ <em>label</em> - <strong>Required</strong>. This is the name for your application, as it
+ will appear to the user. This will be visible only if <em>searchMode</em> is set to
+ "showSearchLabelAsBadge" (see below).
+ </li>
+ <li>
+ <em>hint</em> - This is the text to display in the search text field when no text has
+ been entered. This is recommended in order to provide context to the search about to be
+ performed (e.g., "Search the Dictionary").
+ </li>
+ <li>
+ <em>searchMode</em> - If provided and non-zero, this sets additional modes for control
+ of the search presentation. The following mode values are accepted:
+ <ul>
+ <li>
+ <em>showSearchLabelAsBadge</em> - If set, this enables the display of the
+ search target (label) within the search bar.
+ </li>
+ <li>
+ <em>queryRewriteFromData</em> - If set, this causes the suggestion column
+ SUGGEST_COLUMN_INTENT_DATA to be considered as the text for suggestion query
+ rewriting. This should only be used when the values in
+ SUGGEST_COLUMN_INTENT_DATA are suitable for user inspection and editing -
+ typically, HTTP/HTTPS Uri's.
+ </li>
+ <li>
+ <em>queryRewriteFromText</em> - If set, this causes the suggestion
+ column SUGGEST_COLUMN_TEXT_1 to be considered as the text for suggestion query
+ rewriting. This should be used for suggestions in which no query
+ text is provided and the SUGGEST_COLUMN_INTENT_DATA values are not suitable
+ for user inspection and editing.
+ </li>
+ </ul>
+ <p>More than one of the above values for <em>searchMode</em> can be used at once. For
+ example, you can declare two modes at once, like this:
+ <code>searchMode="queryRewriteFromData|queryRewriteFromText"</code>
+ </li>
+ <li>
+ <em>inputType</em> - If provided, supplies a hint about the type of search text
+ the user will be entering. For most searches, in which free form text is expected,
+ this attribute is not needed. See
+ {@link android.R.attr#inputType} for a list of suitable values for this attribute.
+ </li>
+ <li>
+ <em>imeOptions</em> - If provided, supplies additional options for the input method.
+ For most searches, in which free form text is expected, this attribute is not needed,
+ and will default to "actionSearch". See
+ {@link android.R.attr#imeOptions} for a list of suitable values for this attribute.
+ </li>
+ </ul>
+
+ <p>If you have defined a content provider to generate search suggestions, you need to
+ provide some more searchable metadata in order to configure communications with the content
+ provider. The following are additional {@code &lt;searchable>} attributes for use when
+ providing search suggestions:</p>
+
+ <ul>
+ <li>
+ <em>searchSuggestAuthority</em> - <strong>Required to provide search suggestions</strong>.
+ This value must match the authority string provided in the provider section of your manifest.
+ </li>
+ <li>
+ <em>searchSuggestPath</em> - If provided, this path will be inserted in the suggestions
+ query Uri, after the authority you have provide but before the standard suggestions path.
+ This is only required if you have a single content provider issuing different types
+ of suggestions (e.g. for different data types) and you need
+ a way to disambiguate the suggestions queries when they are received.
+ </li>
+ <li>
+ <em>searchSuggestSelection</em> - If provided, this value will be passed into your
+ query function as the selection parameter. Typically this will be a WHERE clause for
+ your database, and will contain a single question mark, which represents the actual query
+ string that has been typed by the user. However, you can also use any non-null value to simply
+ trigger the delivery of the query text (via selection arguments), and then use the query
+ text in any way appropriate for your provider (ignoring the actual text of the selection parameter.)
+ </li>
+ <li>
+ <em>searchSuggestIntentAction</em> - The default Intent action to be used when a user
+ clicks on a search suggestion.
+ If provided, and not overridden by the selected suggestion, this value will
+ be placed in the action field of the {@link android.content.Intent} when the
+ user clicks a suggestion.
+ </li>
+ <li>
+ <em>searchSuggestIntentData</em> - The default Intent data to be used when a user
+ clicks on a search suggestion.
+ If provided, and not overridden by the selected suggestion, this value will be
+ placed in the data field of the {@link android.content.Intent} when the user clicks
+ a suggestion.
+ </li>
+ </ul>
+
+ <p>Beyond providing search suggestions while using your application's local search, you
+ can also configure your search suggestions to be made available to Quick Search Box,
+ which will allow users so receive search suggestions from your application content from outside
+ your application. The following are additional {@code &lt;searchable>} attributes for use when
+ providing search suggestions to Quick Search Box:</p>
+
+ <ul>
+ <li>
+ <em>includeInGlobalSearch</em> - <strong>Required to provide search suggestions in
+ Quick Search Box</strong>. If true, this indicates the search suggestions provided by your
+ application should be included in the globally accessible Quick Search Box. The user must
+ still enable your application as a searchable item in the system search settings in order
+ for your suggestions to appear in Quick Search Box.
+ </li>
+ <li>
+ <em>searchSettingsDescription</em> - If provided, this provides a brief description
+ of the search suggestions that you provide to Quick Search Box,
+ and will be displayed in the search settings entry for your application.
+ </li>
+ <li>
+ <em>queryAfterZeroResults</em> - Indicates whether a source should be invoked for
+ supersets of queries it has returned zero results for in the past. For example, if a
+ source returned zero results for "bo", it would be ignored for "bob". If set to false,
+ this source will only be ignored for a single session; the next time the search dialog
+ is invoked, all sources will be queried. The default value is false.
+ </li>
+ <li>
+ <em>searchSuggestThreshold</em> - Indicates the minimum number of characters needed to
+ trigger a source lookup from Quick Search Box. Only guarantees that a source will not be
+ queried for anything shorter than the threshold. The default value is 0.
+ </li>
+ </ul>
+
+ <p>To enable voice search for your Activity, you can add fields to the searchable metadata
+ that enable and configure voice search. The following are additional {@code &lt;searchable>}
+ attributes for use when implementing voice search:</p>
+
+ <ul>
+ <li>
+ <em>voiceSearchMode</em> - <strong>Required to provide voice search
+ capabilities</strong>.
+ If 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 values are accepted:
+ <ul>
+ <li>
+ <em>showVoiceSearchButton</em> - If 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.
+ </li>
+ <li>
+ <em>launchWebSearch</em> - If 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.
+ </li>
+ <li>
+ <em>launchRecognizer</em> - If 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.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <em>voiceLanguageModel</em> - A string constant from
+ {@link android.speech.RecognizerIntent}.
+ If 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.
+ </li>
+ <li>
+ <em>voicePromptText</em> - A string. If provided, this specifies a prompt
+ that will be displayed during voice input. If not provided, a default prompt
+ will be displayed.
+ </li>
+ <li>
+ <em>voiceLanguage</em> - A string constant from {@link java.util.Locale}.
+ If 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()}.
+ </li>
+ <li>
+ <em>voiceMaxResults</em> - If 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 EXTRA_RESULTS to get the results from the intent.
+ If not provided, the recognizer will choose how many results to return.
+ </li>
+ </ul>
+ </dd>
+
+ <dt>
+ &lt;actionkey&gt;
+ </dt>
+ <dd>
+ Defines a shortcut key for a search action.
+ <ul>
+ <li>
+ <em>keycode</em> - <strong>Required</strong>. This attribute denotes the action key
+ you wish to respond to. Note that not all action keys are actually supported using
+ this mechanism, as many of them are used for typing,
+ navigation, or system functions. This will be added to the
+ {@link android.content.Intent#ACTION_SEARCH ACTION_SEARCH} Intent that is passed to your
+ searchable Activity. To examine the key code, use
+ {@link android.content.Intent#getIntExtra getIntExtra(SearchManager.ACTION_KEY)}.
+ Note that, in addition to the keycode, you must also provide one or more of
+ the action specifier attributes below.
+ </li>
+ <li>
+ <em>queryActionMsg</em> - If you wish to handle an action key during normal
+ search query entry, you must define an action string here. This will be added to the
+ {@link android.content.Intent#ACTION_SEARCH ACTION_SEARCH} Intent that is
+ passed to your searchable Activity. To examine the string, use
+ {@link android.content.Intent#getStringExtra
+ getStringExtra(SearchManager.ACTION_MSG)}.
+ </li>
+ <li>
+ <em>suggestActionMsg</em> - If you wish to handle an action key while a
+ suggestion is being displayed and selected, there are two ways to handle this.
+ If all of your suggestions can handle the action key, you can simply define
+ the action message using this attribute. This will be added to the
+ {@link android.content.Intent#ACTION_SEARCH} Intent that is passed to your
+ searchable Activity. To examine the string,
+ use {@link android.content.Intent#getStringExtra
+ getStringExtra(SearchManager.ACTION_MSG)}.
+ </li>
+ <li>
+ <em>suggestActionMsgColumn</em> - If you wish to handle an action key while
+ a suggestion is being displayed and selected, but you do not wish to enable
+ this action key for every suggestion, then you can use this attribute to control
+ it on a suggestion-by-suggestion basis. First, you must define a column
+ (and name it here) where your suggestions will include the action string. Then,
+ in your content provider, you must provide this column, and when desired,
+ provide data in this column. The search manager will look at your suggestion cursor,
+ using the string provided here in order to select a column, and will use
+ that to select a string from the cursor. That string will be added to the
+ {@link android.content.Intent#ACTION_SEARCH ACTION_SEARCH}
+ Intent that is passed to your searchable Activity. To examine
+ the string, use {@link android.content.Intent#getStringExtra
+ getStringExtra(SearchManager.ACTION_MSG)}. If the data does not exist for the
+ selection suggestion, the action key will be ignored.
+ </li>
+ </ul>
+ </dd>
+</dl>
+
+
+
+
+
diff --git a/docs/html/guide/topics/resources/localization.jd b/docs/html/guide/topics/resources/localization.jd
new file mode 100755
index 000000000000..f32f1ac17824
--- /dev/null
+++ b/docs/html/guide/topics/resources/localization.jd
@@ -0,0 +1,644 @@
+page.title=Localization
+parent.title=Resources and Assets
+parent.link=index.html
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+
+<h2>Localization quickview</h2>
+
+<ul>
+ <li>Android lets you create different resource sets for different locales.</li>
+ <li>When your application runs, Android will load the resource set
+that match the device's locale.</li>
+ <li>If locale-specific resources are not available, Android falls back to
+defaults.</li>
+ <li>The emulator has features for testing localized apps. </li>
+</ul>
+
+<h2>In this document</h2>
+<ol>
+ <li><a href="#resource-switching">Overview: Resource-Switching in Android</a>
+
+</li>
+<ol><li><a href="#defaults-r-important">Why Default Resources Are Important</a></li></ol>
+<li><a href="#using-framework">Using Resources for Localization</a>
+ <ol>
+ <li><a href="#creating-defaults">How to Create Default Resources</a></li><li>
+ <a href="#creating-alternates">How to Create Alternate Resources</a></li>
+ <li><a href="#resource-precedence">Which Resources Take Precedence?</a></li>
+ <li><a href="#referring-to-resources">Referring to Resources in Java</a></li>
+
+ </ol>
+</li>
+<li><a href="#strategies">Localization Strategies</a></li>
+<li><a href="#testing">Testing Localized Applications</a></li>
+ <ol>
+ <li><a href="#device">Testing on a Device</a></li>
+ <li><a href="#emulator">Testing on an Emulator</a></li>
+ <li><a href="#test-for-default">Testing for Default Resources</a></li>
+ </ol>
+<li><a href="#publishing">Publishing</a></li>
+<li><a href="#checklist">Localization Checklists</a></li>
+ <ol>
+ <li><a href="#planning-checklist">Planning and Design Checklist</a></li>
+ <li><a href="#content-checklist">Content Checklist</a></li>
+ <li><a href="#testing-checklist">Testing and Publishing Checklist</a></li>
+ </ol>
+</ol>
+
+<h2>See also</h2>
+ <ol>
+ <li><a
+href="{@docRoot}guide/tutorials/localization/index.html">Hello, L10N Tutorial</a></li>
+ <li><a href="resources-i18n.html">Resources</a></li>
+ <li><a href="{@docRoot}guide/topics/ui/declaring-layout.html">Declaring Layout</a></li>
+ <li><a href="{@docRoot}reference/android/app/Activity.html#ActivityLifecycle">Activity Lifecycle</a></li>
+</ol>
+</div>
+</div>
+
+<p>Android will run on many devices in many regions. To reach the most users,
+your application should handle text, audio files, numbers, currency, and
+graphics in ways appropriate to the locales where your application will be used.
+</p>
+
+<p>This document describes best practices for localizing Android
+applications. The principles apply whether you are developing your application
+using ADT with Eclipse, Ant-based tools, or any other IDE. </p>
+
+<p>You should already have a working knowledge of Java and be familiar with
+Android resource loading, the declaration of user interface elements in XML,
+development considerations such as Activity lifecycle, and general principles of
+internationalization and localization. </p>
+
+<p>It is good practice to use the Android resource framework to separate the
+localized aspects of your application as much as possible from the core Java
+functionality:</p>
+
+<ul>
+ <li>You can put most or all of the <em>contents</em> of your application's
+user interface into resource files, as described in this document and in <a
+href="index.html">Resources</a>. </li>
+ <li>The <em>behavior</em> of the user interface, on the other hand, is driven
+by your Java code.
+ For example, if users input data that needs to be formatted or sorted
+differently depending on locale, then you would use Java to handle the data
+programmatically. This document does not cover how to localize your Java code.
+</li>
+</ul>
+
+<p>The <a
+href="{@docRoot}guide/tutorials/localization/index.html">Hello, L10N
+</a> tutorial takes you through the steps of creating a simple localized
+application that uses locale-specific resources in the way described in this
+document. </p>
+
+
+<h2 id="resource-switching">Overview: Resource-Switching in Android</h2>
+
+<p>Resources are text strings, layouts, sounds, graphics, and any other static
+data that your Android application needs. An application can include multiple
+sets of resources, each customized for a different device configuration. When a
+user runs the application, Android automatically selects and loads the
+resources that best match the device.</p>
+
+<p>(This document focuses on localization and locale. For a complete description
+of resource-switching and all the types of configurations that you can
+specify &#8212; screen orientation, touchscreen type, and so on &#8212; see <a
+href="resources-i18n.html#AlternateResources">Alternate Resources</a>.)</p>
+
+<table border="0" cellspacing="0" cellpadding="0">
+ <tr border="0">
+ <td width="180" style="border: 0pt none ;"><p class="special-note">
+ <strong>When you write your application:</strong>
+ <br><br>
+ You create a set of default resources, plus alternates to be used in
+ different locales.</p></td>
+ <td style="border: 0pt none; padding:0">
+ <p style="border:0; padding:0"><img src="../../../images/resources/right-arrow.png" alt="right-arrow"
+ width="51" height="17"></p></td>
+ <td width="180" style="border: 0pt none ;"><p class="special-note">
+ <strong>When a user runs your application:</strong>
+ <br><br>The Android system selects which resources to load, based on the
+ device's locale.</p></td>
+ </tr>
+</table>
+
+<p>When you write your application, you create default and alternate resources
+for your application to use. To create resources, you place files within
+specially named subdirectories of the project's <code>res/</code> directory.
+</p>
+
+
+
+<h3 id="defaults-r-important">Why Default Resources Are Important</h3>
+
+<p>Whenever the application runs in a locale for which you have not provided
+locale-specific text, Android will load the default strings from
+<code>res/values/strings.xml</code>. If this default file is absent, or if it
+is missing a string that your application needs, then your application will not run
+and will show an error.
+The example below illustrates what can happen when the default text file is incomplete. </p>
+
+<p><em>Example:</em>
+<p>An application's Java code refers to just two strings, <code>text_a</code> and
+ <code>text_b</code>. This application includes a localized resource file
+ (<code>res/values-en/strings.xml</code>) that defines <code>text_a</code> and
+ <code>text_b</code> in English. This application also includes a default
+ resource file (<code>res/values/strings.xml</code>) that includes a
+definition for <code>text_a</code>, but not for <code>text_b</code>:
+<ul>
+ <li>This application might compile without a problem. An IDE such as Eclipse
+ will not highlight any errors if a resource is missing.</li>
+ <li>When this application is launched on a device with locale set to English,
+ the application might run without a problem, because
+ <code>res/values-en/strings.xml</code> contains both of the needed text
+ strings.</li>
+ <li>However, <strong>the user will see an error message and a Force Close
+ button</strong> when this application is launched on a device set to a
+ language other than English. The application will not load.</li>
+</ul>
+
+
+<p>To prevent this situation, make sure that a <code>res/values/strings.xml</code>
+ file exists and that it defines every needed string. The situation applies to
+ all types of resources, not just strings: You
+ need to create a set of default resource files containing all
+ the resources that your application calls upon &#8212; layouts, drawables,
+ animations, etc. For information about testing, see <a href="#test-for-default">
+ Testing for Default Resources</a>.</p>
+
+<h2 id="using-framework">Using Resources for Localization</h2>
+
+<h3 id="creating-defaults">How to Create Default Resources</h3>
+
+<p>Put the application's default text in
+a file with the following location and name:</p>
+<p><code>&nbsp;&nbsp;&nbsp;&nbsp;res/values/strings.xml</code> (required directory)</p>
+
+<p>The text strings in <code>res/values/strings.xml</code> should use the
+default language, which is the language that you expect most of your application's users to
+speak. </p>
+
+<p>The default resource set must also include any default drawables and layouts,
+ and can include other types of resources such as animations.
+<br>
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;res/drawable/</code>(required directory holding at least
+ one graphic file, for the application's icon in the Market)<br>
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;res/layout/</code> (required directory holding an XML
+ file that defines the default layout)<br>
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;res/anim/</code> (required if you have any
+ <code>res/anim-<em>&lt;qualifiers&gt;</em></code> folders)<br>
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;res/xml/</code> (required if you have any
+ <code>res/xml-<em>&lt;qualifiers&gt;</em></code> folders)<br>
+ <code>&nbsp;&nbsp;&nbsp;&nbsp;res/raw/</code> (required if you have any
+ <code>res/raw-<em>&lt;qualifiers&gt;</em></code> folders)
+</p>
+
+<p class="note"><strong>Tip:</strong> In your code, examine each reference to
+ an Android resource. Make sure that a default resource is defined for each
+ one. Also make sure that the default string file is complete: A <em>
+ localized</em> string file can contain a subset of the strings, but the
+ <em>default</em> string file must contain them all.
+</p>
+
+<h3 id="creating-alternates">How to Create Alternate Resources</h3>
+
+<p>A large part of localizing an application is providing alternate text for
+different languages. In some cases you will also provide alternate graphics,
+sounds, layouts, and other locale-specific resources. </p>
+
+<p>An application can specify many <code>res/<em>&lt;qualifiers&gt;</em>/</code>
+directories, each with different qualifiers. To create an alternate resource for
+a different locale, you use a qualifier that specifies a language or a
+language-region combination. (The name of a resource directory must conform
+to the naming scheme described in
+<a href="resources-i18n.html#AlternateResources">Alternate Resources</a>,
+or else it will not compile.)</p>
+
+<p><em>Example:</em></p>
+
+<p>Suppose that your application's default language is English. Suppose also
+that you want to localize all the text in your application to French, and most
+of the text in your application (everything except the application's title) to
+Japanese. In this case, you could create three alternate <code>strings.xml</code>
+files, each stored in a locale-specific resource directory:</p>
+
+<ol>
+ <li><code>res/values/strings.xml</code><br>
+ Contains English text for all the strings that the application uses,
+including text for a string named <code>title</code>.</li>
+ <li><code>res/values-fr/strings.xml</code><br>
+ Contain French text for all the strings, including <code>title</code>.</li>
+ <li><code>res/values-ja/strings.xml</code><br>
+ Contain Japanese text for all the strings <em>except</em>
+<code>title</code>.<br>
+ <code></code></li>
+</ol>
+
+<p>If your Java code refers to <code>R.string.title</code>, here is what will
+happen at runtime:</p>
+
+<ul>
+ <li>If the device is set to any language other than French, Android will load
+<code>title</code> from the <code>res/values/strings.xml</code> file.</li>
+ <li>If the device is set to French, Android will load <code>title</code> from
+the <code>res/values-fr/strings.xml</code> file.</li>
+</ul>
+
+<p>Notice that if the device is set to Japanese, Android will look for
+<code>title</code> in the <code>res/values-ja/strings.xml</code> file. But
+because no such string is included in that file, Android will fall back to the
+default, and will load <code>title</code> in English from the
+<code>res/values/strings.xml</code> file. </p>
+
+<h3 id="resource-precedence">Which Resources Take Precedence?</h3>
+
+<p> If multiple resource files match a device's configuration, Android follows a
+set of rules in deciding which file to use. Among the qualifiers that can be
+specified in a resource directory name, <strong>locale almost always takes
+precedence</strong>. </p>
+<p><em>Example:</em></p>
+
+<p>Assume that an application includes a default set of graphics and two other
+sets of graphics, each optimized for a different device setup:</p>
+
+<ul>
+ <li><code>res/drawable/</code><br>
+ Contains
+ default graphics.</li>
+ <li><code>res/drawable-small-land-stylus/</code><br>
+ Contains graphics optimized for use with a device that expects input from a
+ stylus and has a QVGA low-density screen in landscape orientation.</li>
+ <li><code>res/drawable-ja/</code> <br>
+ Contains graphics optimized for use with Japanese.</li>
+</ul>
+
+<p>If the application runs on a device that is configured to use Japanese,
+Android will load graphics from <code>res/drawable-ja/</code>, even if the
+device happens to be one that expects input from a stylus and has a QVGA
+low-density screen in landscape orientation.</p>
+
+<p class="note"><strong>Exception:</strong> The only qualifiers that take
+precedence over locale in the selection process are MCC and MNC (mobile country
+code and mobile network code). </p>
+
+<p><em>Example:</em></p>
+
+<p>Assume that you have the following situation:</p>
+
+<ul>
+ <li>The application code calls for <code>R.string.text_a</code></li>
+ <li>Two relevant resource files are available:
+ <ul>
+ <li><code>res/values-mcc404/strings.xml</code>, which includes
+<code>text_a</code> in the application's default language, in this case
+English.</li>
+ <li><code>res/values-hi/strings.xml</code>, which includes
+<code>text_a</code> in Hindi.</li>
+ </ul>
+ </li>
+ <li>The application is running on a device that has the following
+configuration:
+ <ul>
+ <li>The SIM card is connected to a mobile network in India (MCC 404).</li>
+ <li>The language is set to Hindi (<code>hi</code>).</li>
+ </ul>
+ </li>
+</ul>
+
+<p>Android will load <code>text_a</code> from
+<code>res/values-mcc404/strings.xml</code> (in English), even if the device is
+configured for Hindi. That is because in the resource-selection process, Android
+will prefer an MCC match over a language match. </p>
+
+<p>The selection process is not always as straightforward as these examples
+suggest. Please read <a href="resources-i18n.html#best-match">How Android finds
+the best matching directory</a> for a more nuanced description of the
+process. All the qualifiers are described and listed in order of
+precedence in <a href="resources-i18n.html#table2">Table 2 in the Resources
+document</a>.</p>
+
+<h3 id="referring-to-resources">Referring to Resources in Java</h3>
+
+<p>In your application's Java code, you refer to resources using the syntax
+<code>R.<em>resource_type</em>.<em>resource_name</em></code> or
+<code>android.R.<em>resource_type</em>.<em>resource_name</em></code><em>.</em>
+For more about this, see <a href="resources-i18n.html#ResourcesInCode">Using
+Resources in Code</a>.</p>
+
+<h2 id="strategies">Localization Strategies</h2>
+
+<h4 id="failing2">Design your application to work in any locale</h4>
+
+<p>You cannot assume anything about the device on which a user will
+run your application. The device might have hardware that you were not
+anticipating, or it might be set to a locale that you did not plan for or that
+you cannot test. Design your application so that it will function normally or fail gracefully no
+matter what device it runs on.</p>
+
+<p class="note"><strong>Important:</strong> Make sure that your application
+includes a full set of default resources.</p> <p>Make sure to include
+<code>res/drawable/</code> and a <code>res/values/</code> folders (without any
+additional modifiers in the folder names) that contain all the images and text
+that your application will need. </p>
+
+<p>If an application is missing even one default resource, it will not run on a
+ device that is set to an unsupported locale. For example, the
+ <code>res/values/strings.xml</code> default file might lack one string that
+ the application needs: When the application runs in an unsupported locale and
+ attempts to load <code>res/values/strings.xml</code>, the user will see an
+ error message and a Force Close button. An IDE such as Eclipse will not
+ highlight this kind of error, and you will not see the problem when you
+ test the application on a device or emulator that is set to a supported locale.</p>
+
+<p>For more information, see <a href="#test-for-default">Testing for Default Resources</a>.</p>
+
+<h4>Design a flexible layout</h4>
+
+<p> If you need to rearrange your layout to fit a certain language (for example
+German with its long words), you can create an alternate layout for that
+language (for example <code>res/layout-de/main.xml</code>). However, doing this
+can make your application harder to maintain. It is better to create a single
+layout that is more flexible.</p>
+
+<p>Another typical situation is a language that requires something different in
+its layout. For example, you might have a contact form that should include two
+name fields when the application runs in Japanese, but three name fields when
+the application runs in some other language. You could handle this in either of
+two ways:</p>
+
+<ul>
+ <li>Create one layout with a field that you can programmatically enable or
+disable, based on the language, or</li>
+ <li>Have the main layout include another layout that includes the changeable
+field. The second layout can have different configurations for different
+languages.</li>
+</ul>
+
+<h4>Avoid creating more resource files and text strings than you need</h4>
+
+<p>You probably do not need to create a locale-specific
+alternative for every resource in your application. For example, the layout
+defined in the <code>res/layout/main.xml</code> file might work in any locale,
+in which case there would be no need to create any alternate layout files.
+</p>
+
+<p>Also, you might not need to create alternate text for every
+string. For example, assume the following:</p>
+
+<ul>
+ <li>Your application's default language is American
+English. Every string that the application uses is defined, using American
+English spellings, in <code>res/values/strings.xml</code>. </li>
+
+ <li>For a few important phrases, you want to provide
+British English spelling. You want these alternate strings to be used when your
+application runs on a device in the United Kingdom. </li>
+</ul>
+
+<p>To do this, you could create a small file called
+<code>res/values-en-rGB/strings.xml</code> that includes only the strings that
+should be different when the application runs in the U.K. For all the rest of
+the strings, the application will fall back to the defaults and use what is
+defined in <code>res/values/strings.xml</code>.</p>
+
+<h4>Use the Android Context object for manual locale lookup</h4>
+
+<p>You can look up the locale using the {@link android.content.Context} object
+that Android makes available:</p>
+
+<pre>String locale = context.getResources().getConfiguration().locale.getDisplayName();</pre>
+
+<h2 id="testing">Testing Localized Applications</h2>
+
+<h3 id="device">Testing on a Device</h3>
+<p>Keep in mind that the device you are testing may be significantly different from
+ the devices available to consumers in other geographies. The locales available
+ on your device may differ from those available on other devices. Also, the
+ resolution and density of the device screen may differ, which could affect
+ the display of strings and drawables in your UI.</p>
+
+<p>To change the locale on a device, use the Settings application (Home &gt;
+Menu &gt; Settings &gt; Locale &amp; text &gt; Select locale). </p>
+
+<h3 id="emulator">Testing on an Emulator</h3>
+
+<p>For details about using the emulator, see See <a
+href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>.</p>
+<h4>Creating and using a custom locale</h4>
+
+<p>A &quot;custom&quot; locale is a language/region combination that the
+Android system image does not explicitly support. (For a list of supported
+locales, see the <a href="{@docRoot}sdk/android-{@sdkCurrentVersion}.html">Android
+Version Notes</a>.) You can test how your application will run in a custom
+locale by creating a custom locale in the emulator. There are two ways to do
+this:</p>
+
+<ul>
+ <li>Use the Custom Locale application, which is accessible from the
+Application tab. (After you create a custom locale, switch to it by
+pressing and holding the locale name.)</li>
+ <li>Change to a custom locale from the adb shell, as described below.</li>
+</ul>
+
+<p>When you set the emulator to a locale that is not available in the Android
+system image, the system itself will display in its default language. Your
+application, however, should localize properly.</p>
+
+<h4>Changing the emulator locale from the adb shell</h4>
+
+<p>To change the locale in the emulator by using the adb shell. </p>
+
+<ol>
+ <li>Pick the locale you want to test and determine its language and region codes, for
+example <code>fr</code> for French and <code>CA</code> for Canada.<br>
+ </li>
+ <li>Launch an emulator.</li>
+ <li>From a command-line shell on the host computer, run the following
+command:<br>
+ <code>adb shell</code><br>
+ or if you have a device attached, specify that you want the emulator by adding
+the <code>-e</code> option:<br>
+ <code>adb -e shell</code></li>
+ <li>At the adb shell prompt (<code>#</code>), run this command: <br>
+ <code>setprop persist.sys.language [<em>language code</em>];setprop
+persist.sys.country [<em>country code</em>];stop;sleep 5;start <br>
+ </code>Replace bracketed sections with the appropriate codes from Step
+1.</li>
+</ol>
+
+<p>For instance, to test in Canadian French:</p>
+
+<p><code>setprop persist.sys.language fr;setprop persist.sys.country
+CA;stop;sleep 5;start </code></p>
+
+<p>This will cause the emulator to restart. (It will look like a full reboot,
+but it is not.) Once the Home screen appears again, re-launch your application (for
+example, click the Run icon in Eclipse), and the application will launch with
+the new locale. </p>
+
+<h3 id="test-for-default">Testing for Default Resources</h3>
+<p>Here's how to test whether an application includes every string resource that it needs: </p>
+<ol><li>Set the emulator or device to a language that your application does not
+ support. For example, if the application has French strings in
+ <code>res/values-fr/</code> but does not have any Spanish strings in
+ <code>res/values-es/</code>, then set the emulator's locale to Spanish.
+ (You can use the Custom Locale application to set the emulator to an
+ unsupported locale.)</li>
+ <li>Run the application.</li>
+<li>If the application shows an error message and a Force Close button, it might
+ be looking for a string that is not available. Make sure that your
+ <code>res/values/strings.xml</code> file includes a definition for
+ every string that the application uses.</li>
+</ol>
+</p>
+
+<p>If the test is successful, repeat it for other types of
+ configurations. For example, if the application has a layout file called
+ <code>res/layout-land/main.xml</code> but does not contain a file called
+ <code>res/layout-port/main.xml</code>, then set the emulator or device to
+ portrait orientation and see if the application will run.
+
+<h2 id="publishing">Publishing Localized Applications</h2>
+
+<p>The Android Market is
+ the main application distribution system for Android devices. To publish a
+ localized application, you need to sign your application, version it, and go
+through all the other steps described in <a
+href="{@docRoot}guide/publishing/preparing.html">Preparing to Publish</a>. </p>
+
+<p>If you split your application in several .apk files, each targeted to a
+different locale, follow these guidelines:</p>
+
+<ul>
+ <li>Sign each .apk file with the same certificate. For more about this, see <a
+href="{@docRoot}guide/publishing/app-signing.html#strategies">Signing
+Strategies</a>. </li>
+ <li>Give each .apk file a different application name. Currently it is
+impossible to put two applications into the Android Market that have exactly the
+same name.</li>
+<li>Include a complete set of default resources in each .apk file.</li>
+</ul>
+
+<h2 id="checklist">Localization Checklists</h2>
+
+<p>These checklists summarize the process of localizing an Android application.
+Not everything on these lists will apply to every application.</p>
+
+<h3 id="planning-checklist">Planning and Design Checklist</h3>
+
+<table width="100%" border="0" cellpadding="5" cellspacing="0">
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Choose a localization strategy. Which countries and which languages will
+your application support? What is your application's default country and
+language? How will your application behave when it does not have specific
+resources available for a given locale?</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td><p>Identify everything in your application that will need to be
+localized: </p>
+ <ul>
+ <li>Consider specific details of your application &#8212; text, images,
+sounds, music, numbers, money, dates and times. You might not need to localize
+everything. For example, you don't need to localize text that the user never
+sees, or images that are culturally neutral, or icons that convey the same
+meaning in every locale. </li>
+ <li>Consider broad themes. For example, if you hope to sell your
+application in two very culturally different markets, you might want to design
+your UI and present your application in an entirely different way for each
+locale.</li>
+ </ul></td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td><p>Design your Java code to externalize resources wherever possible:</p>
+ <ul>
+ <li>Use <code>R.string</code> and <code>strings.xml</code> files instead
+of hard-coded strings or string constants. </li>
+ <li>Use <code>R.drawable</code> and <code>R.layout</code> instead of
+hard-coded drawables or layouts. </li>
+ </ul></td>
+ </tr>
+</table>
+<h3 id="content-checklist">Content Checklist</h3>
+<table border="0" cellspacing="0" cellpadding="5" width="100%">
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Create a full set of default resources in <code>res/values/</code> and
+other <code>res/</code> folders, as described in <a
+href="#creating-defaults">Creating Default Resources</a>.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Obtain reliable translations of the static text, including menu text,
+button names, error messages, and help text. Place the translated strings in
+<code>res/values-<em>&lt;qualifiers&gt;</em>/strings.xml</code> files. </td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Make sure that your application correctly formats dynamic text (for
+example numbers and dates) for each supported locale. Make sure that your
+application handles word breaks, punctuation, and alphabetical sorting correctly
+for each supported language.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>If necessary, create locale-specific versions of your graphics and
+layout, and place them in <code>res/drawable-<em>&lt;qualifiers&gt;</em>/</code> and
+<code>res/layout-<em>&lt;qualifiers&gt;</em>/</code> folders.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Create any other localized content that your application requires; for
+example, create recordings of sound files for each language, as needed.</td>
+ </tr>
+</table>
+<h3 id="testing-checklist">Testing and Publishing Checklist</h3>
+ <table border="0" cellspacing="0" cellpadding="5" width="100%">
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Test your application for each supported locale. If possible, have a
+person who is native to each locale test your application and give you
+feedback.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Test the default resources by loading a locale that is not available on
+ the device or emulator. For instructions, see <a href="#test-for-default">
+ Testing for Default Resources</a>. </td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Test the localized strings in both landscape and portrait display modes.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Sign your application and create your final build or builds.</td>
+ </tr>
+ <tr>
+ <td valign="top" align="center"><img src="../../../images/resources/arrow.png" alt="arrow" width="26"
+border="0"></td>
+ <td>Upload your .apk file or files to Market, selecting the appropriate
+languages as
+ you upload. (For more details, see <a
+href="{@docRoot}guide/publishing/publishing.html">Publishing Your
+Applications</a>.)</td>
+ </tr>
+</table> \ No newline at end of file
diff --git a/docs/html/guide/topics/resources/resources-i18n.jd b/docs/html/guide/topics/resources/resources-i18n.jd
index 85b89d1c409c..e9b8af79ddad 100755
--- a/docs/html/guide/topics/resources/resources-i18n.jd
+++ b/docs/html/guide/topics/resources/resources-i18n.jd
@@ -685,7 +685,7 @@ MyApp/res/drawable-en-port/
</ol>
<p class="note"><strong>Tip:</strong> The <em>precedence</em> of the qualifiers is more important than the number of qualifiers that exactly match the device. For example, in step 4 above, the last choice on the list includes three qualifiers that exactly match the device (orientation, touchscreen type, and input method), while <code>drawable-en</code> has only one parameter that matches (language). However, language has a higher precedence, so <code>drawable-port-notouch-12key</code> is out.</p>
<p>This flowchart summarizes how Android selects resource directories to load.</p>
-<p><img src="res-selection-flowchart.png" alt="resource-selection" width="461" height="471" style="margin:15px"></p>
+<p><img src="../../../images/resources/res-selection-flowchart.png" alt="resource-selection" width="461" height="471" style="margin:15px"></p>
<h3>Terminology</h3>
<p>The resource system brings a number of different pieces together to
form the final complete resource functionality. To help understand the
diff --git a/docs/html/guide/topics/ui/ui-events.jd b/docs/html/guide/topics/ui/ui-events.jd
index f4d114a30e7d..5628d46e2bcc 100644
--- a/docs/html/guide/topics/ui/ui-events.jd
+++ b/docs/html/guide/topics/ui/ui-events.jd
@@ -28,8 +28,8 @@ the specific View object that the user interacts with. The View class provides t
methods that look useful for UI events. These methods are called by the Android framework when the
respective action occurs on that object. For instance, when a View (such as a Button) is touched,
the <code>onTouchEvent()</code> method is called on that object. However, in order to intercept this, you must extend
-the class and override the method. Obviously, extending every View object
-you want to use (just to handle an event) would be obsurd. This is why the View class also contains
+the class and override the method. However, extending every View object
+in order to handle such an event would not be practical. This is why the View class also contains
a collection of nested interfaces with callbacks that you can much more easily define. These interfaces,
called <a href="#EventListeners">event listeners</a>, are your ticket to capturing the user interaction with your UI.</p>
@@ -102,7 +102,7 @@ protected void onCreate(Bundle savedValues) {
}
</pre>
-<p>You may also find it more conventient to implement OnClickListener as a part of your Activity.
+<p>You may also find it more convenient to implement OnClickListener as a part of your Activity.
This will avoid the extra class load and object allocation. For example:</p>
<pre>
public class ExampleActivity extends Activity implements OnClickListener {
@@ -168,7 +168,7 @@ you'll learn see some of the common callbacks used for event handling, including
<li><code>{@link android.view.View#onTouchEvent}</code> - Called when a touch screen motion event occurs.</li>
<li><code>{@link android.view.View#onFocusChanged}</code> - Called when the view gains or loses focus.</li>
</ul>
-<p>There are some other methods that you should be awere of, which are not part of the View class,
+<p>There are some other methods that you should be aware of, which are not part of the View class,
but can directly impact the way you're able to handle events. So, when managing more complex events inside
a layout, consider these other methods:</p>
<ul>
diff --git a/docs/html/guide/tutorials/localization/index.jd b/docs/html/guide/tutorials/localization/index.jd
new file mode 100755
index 000000000000..19f9eb3d2289
--- /dev/null
+++ b/docs/html/guide/tutorials/localization/index.jd
@@ -0,0 +1,587 @@
+page.title=Hello, L10N
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#unlocalized">Create an Unlocalized App</a>
+ <ol>
+ <li><a href="#create">Create the Project and Layout</a></li>
+ <li><a href="#default">Create Default Resources</a></li>
+ </ol>
+ </li>
+ <li><a href="#run">Run the Unlocalized App</a></li>
+ <li><a href="#plan">Plan the Localization</a></li>
+ <li><a href="#localize">Localize the App</a>
+ <ol>
+ <li><a href="#localize_strings">Localize the Strings</a></li>
+ <li><a href="#localize_images">Localize the Images</a></li>
+ </ol>
+ </li>
+ <li><a href="#test_localized">Run and Test the Localized App</a></li>
+ </ol>
+ <h2>See also</h2>
+ <ol>
+<li>{@link android.widget.Button}</li>
+<li>{@link android.widget.TextView}</li>
+<li>{@link android.app.AlertDialog}</li>
+</ol>
+ </div>
+</div>
+
+<p>In this tutorial, we will create a Hello, L10N application that uses the
+Android framework to selectively load resources. Then we will localize the
+application by adding resources to the <code>res/</code> directory. </p>
+
+<p>This tutorial uses the practices described in the <a
+href="{@docRoot}guide/topics/resources/localization.html">Localization</a>
+document. </p>
+
+
+<h2 id="unlocalized">Create an Unlocalized Application</h2>
+
+<p>The first version of the Hello, L10N application will use only the default
+resource directories (<code>res/drawable</code>, <code>res/layout</code>, and
+<code>res/values</code>). These resources are not localized &#8212; they are the
+graphics, layout, and strings that we expect the application to use most often.
+When a user runs the application in the default locale, or in a locale that the
+application does not specifically support, the application will load resources
+from these default directories.</p>
+
+<p>The application consists of a simple user interface that displays two
+{@link android.widget.TextView} objects and a {@link android.widget.Button} image with a
+ background image of a national flag. When clicked, the button displays an
+{@link android.app.AlertDialog} object that shows additional text. </p>
+
+<h3 id="create">Create the Project and Layout</h3>
+
+<p>For this application, the default language will be British English and the
+default location the United Kingdom. </p>
+
+<ol>
+ <li>Start a new project and Activity called &quot;HelloL10N.&quot; If you are
+using Eclipse, fill out these values in the New Android Project wizard:
+ <ul>
+ <li><em>Project name:</em> HelloL10N</li>
+ <li><em>Application name:</em> Hello, L10N</li>
+ <li><em>Package name:</em> com.example.hellol10n (or your own private
+namespace)</li>
+ <li><em>Create Activity:</em> HelloL10N</li>
+ <li><em>Min SDK Version:</em> 3</li>
+ </ul>
+ <p>The basic project contains a <code>res/</code> directory with
+subdirectories for the three most common types of resources: graphics
+(<code>res/drawable/</code>), layouts (<code>res/layout/</code>) and strings
+(<code>res/values/</code>). Most of the localization work you do later in this
+tutorial will involve adding more subdirectories to the <code>res/</code>
+directory.</p>
+ <img src="../../../images/hello_l10n/plain_project.png" alt="plain project" width="194"
+height="229">
+ </li>
+ <li>Open the <code>res/layout/main.xml</code> file and replace it with the
+following code:
+ <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
+ android:orientation=&quot;vertical&quot;
+ android:layout_width=&quot;fill_parent&quot;
+ android:layout_height=&quot;fill_parent&quot;
+ &gt;
+&lt;TextView
+ android:layout_width=&quot;fill_parent&quot;
+ android:layout_height=&quot;wrap_content&quot;
+ android:gravity=&quot;center_horizontal&quot;
+ android:text=&quot;@string/text_a&quot;
+ /&gt;
+&lt;TextView
+ android:layout_width=&quot;fill_parent&quot;
+ android:layout_height=&quot;wrap_content&quot;
+ android:gravity=&quot;center_horizontal&quot;
+ android:text=&quot;@string/text_b&quot;
+ /&gt;
+&lt;Button
+ android:id=&quot;@+id/flag_button&quot;
+ android:layout_width=&quot;wrap_content&quot;
+ android:layout_height=&quot;wrap_content&quot;
+ android:layout_gravity=&quot;center&quot;
+ /&gt;
+&lt;/LinearLayout&gt;
+ </pre>
+
+ <p>The LinearLayout has two {@link android.widget.TextView} objects that will
+display localized text and one {@link android.widget.Button} that shows a flag.
+</p>
+ </li>
+</ol>
+
+<h3 id="default">Create Default Resources</h3>
+
+<p>The layout refers to resources that need to be defined. </p>
+
+<ol>
+ <li>Create default text strings. To do this, open the <code>res/values/strings.xml</code> file and replace it with the following code:<br>
+ <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+&lt;resources&gt;
+ &lt;string name=&quot;app_name&quot;&gt;Hello, L10N&lt;/string&gt;
+ &lt;string name=&quot;text_a&quot;&gt;Shall I compare thee to a summer&quot;'&quot;s day?&lt;/string&gt;
+ &lt;string name=&quot;text_b&quot;&gt;Thou art more lovely and more temperate.&lt;/string&gt;
+ &lt;string name=&quot;dialog_title&quot;&gt;No Localisation&lt;/string&gt;
+ &lt;string name=&quot;dialog_text&quot;&gt;This dialog box&quot;'&quot;s strings are not localised. For every locale, the text here will come from values/strings.xml.&lt;/string&gt;
+&lt;/resources&gt;</pre>
+
+ <p>This code provides British English text for each string that the application
+will use. When we localize this application, we will provide alternate text in
+German, French, and Japanese for some of the strings.</p>
+ </li>
+ <li>Add a default flag graphic to the <code>res/drawable</code> folder by
+saving <a href="../../../images/hello_l10n/flag.png">flag.png</a> as
+<code>res/drawable/flag.png</code>. When the application is not localized, it
+will show a British flag.<br>
+
+ </li>
+ <li>Open HelloL10N.java (in the <code>src/</code> directory) and add the
+following code inside the <code>onCreate()</code> method (after
+<code>setContentView</code>).
+
+ <pre>// assign flag.png to the button, loading correct flag image for current locale
+Button b;
+(b = (Button)findViewById(R.id.flag_button)).setBackgroundDrawable(this.getResources().getDrawable(R.drawable.flag));
+
+// build dialog box to display when user clicks the flag
+AlertDialog.Builder builder = new AlertDialog.Builder(this);
+builder.setMessage(R.string.dialog_text)
+ .setCancelable(false)
+ .setTitle(R.string.dialog_title)
+ .setPositiveButton("Done", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.dismiss();
+ }
+ });
+final AlertDialog alert = builder.create();
+
+// set click listener on the flag to show the dialog box
+b.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ alert.show();
+ }
+ });</pre>
+
+ <p class="note"><strong>Tip:</strong> In Eclipse, use
+<strong>Ctrl-Shift-O</strong> (<strong>Cmd-Shift-O</strong>, on Mac) to find and
+add missing import packages to your project, then save the HelloL10N.java
+file.</p>
+
+ <p>The code that you added does the following:</p>
+
+ <ul>
+ <li>It assigns the correct flag icon to the button.
+ For now, no resources are defined other than the default, so this code
+will always assign the contents of <code>res/drawable/flag.png</code> (the
+British flag) as the flag icon, no matter what the locale. Once we add more
+flags for different locales, this code will sometimes assign a different flag.
+</li>
+ <li>It creates an {@link android.app.AlertDialog} object and sets a click listener so that when the
+user clicks the button, the AlertDialog will display.
+ We will not localize the dialog text;
+the AlertDialog will always display the <code>dialog_text</code> that is located
+within <code>res/values/strings.xml</code>. </li>
+ </ul>
+
+ </li>
+</ol>
+
+<p>The project structure now looks like this:</p>
+
+ <img src="../../../images/hello_l10n/nonlocalized_project.png" alt="nonlocalized" width="394"
+height="320">
+
+<p class="note"><strong>Tip:</strong> If you will want to run the application on
+a device and not just on an emulator, open <code>AndroidManifest.xml</code> and
+add <code>android:debuggable="true"</code> inside the
+<code>&lt;application&gt;</code> element. For information about setting up the
+device itself so it can run applications from your system, see <a
+href="{@docRoot}guide/developing/device.html">Developing on a Device</a>.</p>
+
+
+<h2 id="run">Run the Unlocalized Application</h2>
+
+<p>Save the project and run the application to see how it works. No matter what
+locale your device or emulator is set to, the application runs the same way. It
+should look something like this:</p>
+
+<table border="0" cellspacing="0" cellpadding="30">
+ <tr>
+ <th scope="col">The unlocalized application, running in any locale:</th>
+ <th scope="col">After clicking the flag, in any locale:</th>
+ </tr>
+ <tr>
+ <td valign="top"><img src="../../../images/hello_l10n/nonlocalized_screenshot1.png"
+alt="nonlocalized" width="321" height="366"></td>
+ <td><img src="../../../images/hello_l10n/nonlocalized_screenshot2.png" alt="nonlocalized2"
+width="321" height="366"></td>
+ </tr>
+</table>
+<h2 id="plan">Plan the Localization</h2>
+<p>The first step in localizing an application is to plan how the application
+will render differently in different locales. In this application, the default
+locale will be the United Kingdom. We will add some locale-specific information
+for Germany, France, Canada, Japan, and the United States. Table 1 shows the
+plan for how the application will appear in different locales.</p>
+
+<p class="caption">Table 1</p>
+
+<table border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <th scope="col" valign="bottom">Region /<br />
+ Language</th>
+ <th scope="col">United Kingdom</th>
+ <th scope="col">Germany</th>
+ <th scope="col">France</th>
+ <th scope="col">Canada</th>
+ <th scope="col">Japan</th>
+ <th scope="col">United States</th>
+ <th scope="col">Other Location</th>
+ </tr>
+ <tr>
+ <th scope="row"><br>
+ English</th>
+ <td> British English text; British flag <em>(default)</em></td>
+ <td><em>-</em></td>
+ <td><em>-</em></td>
+ <td> British English text; Canadian flag</td>
+ <td>-</td>
+ <td> British English text; U.S. flag</td>
+ <td> British English text; British flag <em>(default)</em></td>
+ </tr>
+ <tr>
+ <th scope="row">German</th>
+ <td>-</td>
+ <td>German text for <code>app_name</code>, <code>text_a</code> and
+<code>text_b</code>; German flag</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>German text for <code>app_name</code>, <code>text_a</code> and
+<code>text_b</code>; British flag</td>
+ </tr>
+ <tr>
+ <th scope="row">French</th>
+ <td>-</td>
+ <td>-</td>
+ <td>French text for <code>app_name</code>, <code>text_a</code> and
+<code>text_b</code>; French flag</td>
+ <td>French text for <code>app_name</code>, <code>text_a</code> and
+<code>text_b</code>; Canadian flag</td>
+ <td>-</td>
+ <td>-</td>
+ <td>French text for <code>app_name</code>, <code>text_a</code> and
+<code>text_b</code>; British flag</td>
+ </tr>
+ <tr>
+ <th scope="row">Japanese</th>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>Japanese text for <code>text_a</code> and <code>text_b</code>; Japanese
+flag</td>
+ <td>-</td>
+ <td>Japanese text for <code>text_a</code> and <code>text_b</code>; British
+flag</td>
+ </tr>
+ <tr>
+ <th scope="row">Other Language</th>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td>-</td>
+ <td> British English text; British flag <em>(default)</em></td>
+ </tr>
+</table>
+
+<p class="note"> Note that other behaviors are possible; for example, the
+application could support Canadian English or U.S. English text. But given the
+small amount of text involved, adding more versions of English would not make
+this application more useful.</p>
+
+<p>As shown in the table above, the plan calls for five flag icons in addition
+to the British flag that is already in the <code>res/drawable/</code> folder. It
+also calls for three sets of text strings other than the text that is in
+<code>res/values/strings.xml</code>.</p>
+
+<p>Table 2 shows where the needed text strings and flag icons will go, and
+specifies which ones will be loaded for which locales. (For more about the
+locale codes, <em></em>see <a
+href="{@docRoot}guide/topics/resources/resources-i18n.html#AlternateResources">
+Alternate Resources</a>.)</p>
+<p class="caption" id="table2">Table 2</p>
+
+<table border="1" cellspacing="0" cellpadding="5">
+ <tr>
+ <th scope="col">Locale Code</th>
+ <th scope="col">Language / Country</th>
+ <th scope="col">Location of strings.xml</th>
+ <th scope="col">Location of flag.png</th>
+ </tr>
+ <tr>
+ <td><em>Default</em></td>
+ <td>English / United Kingdom</td>
+ <td>res/values/</td>
+ <td>res/drawable/</td>
+ </tr>
+ <tr>
+ <td>de-rDE</td>
+ <td>German / Germany</td>
+ <td>res/values-de/</td>
+ <td>res/drawable-de-rDE/</td>
+ </tr>
+ <tr>
+ <td>fr-rFR</td>
+ <td>French / France</td>
+ <td>res/values-fr/</td>
+ <td>res/drawable-fr-rFR/</td>
+ </tr>
+ <tr>
+ <td>fr-rCA</td>
+ <td>French / Canada</td>
+ <td>res/values-fr/</td>
+ <td>res/drawable-fr-rCA/</td>
+ </tr>
+ <tr>
+ <td>en-rCA</td>
+ <td>English / Canada</td>
+ <td><em>(res/values/)</em></td>
+ <td>res/drawable-en-rCA/</td>
+ </tr>
+ <tr>
+ <td>ja-rJP</td>
+ <td>Japanese / Japan</td>
+ <td>res/values-ja/</td>
+ <td>res/drawable-ja-rJP/</td>
+ </tr>
+ <tr>
+ <td>en-rUS</td>
+ <td>English / United States</td>
+ <td><em>(res/values/)</em></td>
+ <td>res/drawable-en-rUS/</td>
+ </tr>
+</table>
+
+<p class="note"><strong>Tip: </strong>A folder qualifer cannot specify a region
+without a language. Having a folder named <code>res/drawable-rCA/</code>,
+for example, will prevent the application from compiling. </p>
+
+<p>At run time, the application will select a set of resources to load based on the locale
+that is set in the user's device. In cases where no locale-specific resources
+are available, the application will fall back on the defaults. </p>
+
+<p>For example, assume that the device's language is set to German and its
+location to Switzerland. Because this application does not have a
+<code>res/drawable-de-rCH/</code> directory with a <code>flag.png</code> file in it, the system
+will fall back on the default, which is the UK flag located in
+<code>res/drawable/flag.png</code>. The language used will be German. Showing a
+British flag to German speakers in Switzerland is not ideal, but for now we will
+just leave the behavior as it is. There are several ways you could improve this
+application's behavior if you wanted to:</p>
+
+<ul>
+ <li>Use a generic default icon. In this application, it might be something
+that represents Shakespeare. </li>
+ <li>Create a <code>res/drawable-de/</code> folder that includes an icon that
+the application will use whenever the language is set to German but the location
+is not Germany. </li>
+</ul>
+
+
+<h2 id="localize">Localize the Application</h2>
+
+<h3 id="localize_strings">Localize the Strings</h3>
+
+<p>The application requires three more <code>strings.xml</code> files, one each
+for German, French, and Japanese. In this example, we will start by copying
+<code>res/values/strings.xml</code> into new
+<code>res/values-<em>&lt;qualifier&gt;</em>/strings.xml</code> files.</p>
+
+<p>Under the <code>res/</code> directory, create the three new directories and
+copy <code>res/values/strings.xml</code> into each of them. For example, using
+Eclipse you could do it like this:</p>
+
+<ol>
+ <li>Right-click the <code>res/values/</code> folder and select Copy.</li>
+ <li>Right-click on the <code>res/</code> folder and select Paste. Rename the
+folder <code>values-de </code>and click OK.<br>
+ <img src="../../../images/hello_l10n/copy_res_files.png" alt="res_file_copy" width="557"
+height="181" style="margin:15px"></li>
+ <li>Repeat steps 1 and 2 two more times, for <code>values-fr</code>, and
+<code>values-ja</code>. Now the project includes these new files, all still
+containing British English text strings: <br />
+ <code>res/<strong>values-de</strong>/strings.xml</code><br />
+ <code>res/<strong>values-fr</strong>/strings.xml</code><br />
+ <code>res/<strong>values-ja</strong>/strings.xml</code><br />
+ </li>
+ <li>Replace the strings in the three new files with localized text. To do
+this, open the <code>res/values-<em>&lt;qualifier&gt;</em>/strings.xml</code> files and
+replace the code as follows:</li>
+</ol>
+
+<table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <th scope="col">File</th>
+ <th scope="col">Replace the contents with the following code:</th>
+ </tr>
+ <tr>
+ <td><code>res/values-de/strings.xml</code></td>
+ <td><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+&lt;resources&gt;
+ &lt;string name=&quot;app_name&quot;&gt;Hallo, Lokalisierung&lt;/string&gt;
+ &lt;string name=&quot;text_a&quot;&gt;Soll ich dich einem Sommertag vergleichen,&lt;/string&gt;
+ &lt;string name=&quot;text_b&quot;&gt;Der du viel lieblicher und sanfter bist?&lt;/string&gt;
+&lt;/resources&gt;</pre></td>
+ </tr>
+ <tr>
+ <td><code>res/values-fr/strings.xml</code></td>
+ <td><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+&lt;resources&gt;
+ &lt;string name=&quot;app_name&quot;&gt;Bonjour, Localisation&lt;/string&gt;
+ &lt;string name=&quot;text_a&quot;&gt;Irai-je te comparer au jour d'été?&lt;/string&gt;
+ &lt;string name=&quot;text_b&quot;&gt;Tu es plus tendre et bien plus tempéré.&lt;/string&gt;
+&lt;/resources&gt; </pre></td>
+ </tr>
+ <tr>
+ <td><code>res/values-ja/strings.xml</code></td>
+ <td>
+<pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
+&lt;resources&gt;
+ &lt;string name=&quot;text_a&quot;&gt;あなたをなにかにたとえるとしたら夏の一日でしょうか?&lt;/string&gt;
+ &lt;string name=&quot;text_b&quot;&gt;だがあなたはもっと美しく、もっとおだやかです。&lt;/string&gt;
+&lt;/resources&gt;</pre></td>
+ </tr>
+</table>
+
+<p class="note"><b>Tip:</b> In the
+<code>values-<em>&lt;qualifier&gt;</em>/strings.xml</code> files, you only need to
+include text for strings that are different from the default strings. For
+example, when the application runs on a device that is configured for Japanese,
+the plan is for <code>text_a</code> and <code>text_b</code> to be in Japanese
+while all the other text is in English, so
+<code>res/values-ja/strings.xml</code> only needs to include <code>text_a</code>
+and <code>text_b</code>.</p>
+
+<h3 id="localize_images">Localize the Images</h3>
+
+<p>As shown in <a href="#table2">Table 2</a>, the application needs six more
+drawable folders, each containing a <code>flag.png</code> icon. Add the needed
+icons and folders to your project:</p>
+
+<ol>
+ <li>Save this <a href="../../../images/hello_l10n/drawable-de-rDE/flag.png">German flag icon</a>
+as <code>res/drawable-de-rDE/flag.png</code> in the application's project
+workspace.
+ <p>For example:</p>
+ <ol>
+ <li>Click the link to open the flag image.</li>
+ <li>Save the image in
+<code><em>your-workspace</em>/HelloL10N/res/drawable-de-rDE/</code> .</li>
+ </ol>
+ </li>
+ <li>Save this <a href="../../../images/hello_l10n/drawable-fr-rFR/flag.png">French flag icon</a>
+as <code>res/drawable-fr-rFR/flag.png</code> in the application's project
+workspace. </li>
+ <li>Save this <a href="../../../images/hello_l10n/drawable-fr-rCA/flag.png">Canadian flag icon</a>
+as <code>res/drawable-fr-rCA/flag.png</code> in the project workspace. </li>
+ <li>Save the <a href="../../../images/hello_l10n/drawable-en-rCA/flag.png">Canadian flag icon</a>
+again, this time as <code>res/drawable-en-rCA/flag.png</code> in the project
+workspace. (Why not have just <em>one</em> folder that contains the Canadian
+flag? Because a folder qualifer cannot specify a region without a language.
+You cannot have a folder named <code>drawable-rCA/</code>; instead you must
+create two separate folders, one for each of the Canadian languages represented
+in the application.)</li>
+ <li>Save this <a href="../../../images/hello_l10n/drawable-ja-rJP/flag.png">Japanese flag icon</a>
+as <code>res/drawable-ja-rJP/flag.png</code> in the project workspace. </li>
+ <li>Save this <a href="../../../images/hello_l10n/drawable-en-rUS/flag.png">United States flag
+icon</a> as <code>res/drawable-en-rUS/flag.png</code> in the project workspace.
+ </li>
+</ol>
+
+<p>If you are using Eclipse, refresh the project (F5). The new
+<code>res/drawable-<em>&lt;qualifier&gt;</em>/</code> folders should appear in the
+project view. </p>
+
+
+<h2 id="test_localized">Run and Test the Localized Application</h2>
+
+<p>Once you've added the localized string and image resources, you are ready to
+ run the application and test its handling of them. To change the locale
+ on a device or in the emulator, use the Settings
+application (Home &gt; Menu &gt; Settings &gt; Locale &amp; text &gt; Select
+locale). Depending on how a device was configured, it might not offer any
+alternate locales via the Settings application, or might offer only a few. The
+emulator, on the other hand, will offer a selection of all the locales that are
+available in the Android system image. </p>
+
+<p>To set the emulator to a locale that is not available in the system image,
+use the Custom Locale application, which is available in the Application
+tab:</p>
+
+<p><img src="../../../images/hello_l10n/custom_locale_app.png" alt="custom locale app" width="163"
+height="158" style="margin-left:15px"></p>
+
+<p>To switch to a new locale, long-press a locale name:</p>
+
+<p><img src="../../../images/hello_l10n/using_custom_locale.png" alt="using custom locale"
+width="512" height="299" style="margin-left:15px"></p>
+
+<p>For a list of supported locales, see the
+<a href="{@docRoot}sdk/android-{@sdkCurrentVersion}.html">Android
+Version Notes</a>.</p>
+
+<p>Run the application for each of the expected locales, plus one unexpected
+locale. Here are some of the results you should see:</p>
+
+<table border="0" cellspacing="0" cellpadding="05">
+ <tr>
+ <th scope="col">Locale</th>
+ <th scope="col">Opening screen of application</th>
+ </tr>
+ <tr>
+ <td>German / Germany
+ <br />Specifically supported by the Hello, L10N application.</td>
+ <td><img src="../../../images/hello_l10n/german_screenshot.png" alt="custom locale app"
+width="321" height="175" align="right"
+style="margin-left:10px;margin-right:20px"></td>
+ </tr>
+ <tr>
+ <td>French / Canada
+ <br />Specifically supported by the Hello, L10N application.</td>
+ <td><img src="../../../images/hello_l10n/frenchCA_screenshot.png" alt="custom locale app"
+width="321" height="175" align="right"
+style="margin-left:10px;margin-right:20px"></td>
+ </tr>
+ <tr>
+ <td>German / Switzerland
+ <br />Only the language is specifically supported by
+the Hello, L10N application.</td>
+ <td><img src="../../../images/hello_l10n/germanCH_screenshot.png" alt="custom locale app"
+width="321" height="175" align="right"
+style="margin-left:10px;margin-right:20px">`</td>
+ </tr>
+ <tr>
+ <td>Japanese
+ <br />Specifically supported by the Hello, L10N application.
+ </td>
+ <td><img src="../../../images/hello_l10n/japanese_screenshot.png" alt="custom locale app"
+width="321" height="220" align="right"
+style="margin-left:10px;margin-right:20px">`</td>
+ </tr>
+ <tr>
+ <td>Romansh / Switzerland (custom locale <code>rm_CH</code>)
+ <br />Not specifically supported by the Hello, L10N
+application, so the application uses the default resources.</td>
+ <td><img src="../../../images/hello_l10n/romanshCH_screenshot.png" alt="custom locale app"
+width="321" height="175" align="right"
+style="margin-left:10px;margin-right:20px"></td>
+ </tr>
+</table>
diff --git a/docs/html/images/emulator-wvga800l.png b/docs/html/images/emulator-wvga800l.png
new file mode 100644
index 000000000000..a2140338a469
--- /dev/null
+++ b/docs/html/images/emulator-wvga800l.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/copy_res_files.png b/docs/html/images/hello_l10n/copy_res_files.png
new file mode 100755
index 000000000000..9e704b255242
--- /dev/null
+++ b/docs/html/images/hello_l10n/copy_res_files.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/custom_locale_app.png b/docs/html/images/hello_l10n/custom_locale_app.png
new file mode 100755
index 000000000000..f89648ea62b8
--- /dev/null
+++ b/docs/html/images/hello_l10n/custom_locale_app.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
new file mode 100755
index 000000000000..2cc58c79f962
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
new file mode 100755
index 000000000000..b441d2e2ae64
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
new file mode 100755
index 000000000000..47a11792c4da
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
new file mode 100755
index 000000000000..b441d2e2ae64
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
new file mode 100755
index 000000000000..cdbe85fa90e5
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
new file mode 100755
index 000000000000..7b93ee97613a
--- /dev/null
+++ b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/flag.png b/docs/html/images/hello_l10n/flag.png
new file mode 100755
index 000000000000..c2321326e70c
--- /dev/null
+++ b/docs/html/images/hello_l10n/flag.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/frenchCA_screenshot.png b/docs/html/images/hello_l10n/frenchCA_screenshot.png
new file mode 100755
index 000000000000..f8e65176aef9
--- /dev/null
+++ b/docs/html/images/hello_l10n/frenchCA_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/germanCH_screenshot.png b/docs/html/images/hello_l10n/germanCH_screenshot.png
new file mode 100755
index 000000000000..240104aeeae7
--- /dev/null
+++ b/docs/html/images/hello_l10n/germanCH_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/german_screenshot.png b/docs/html/images/hello_l10n/german_screenshot.png
new file mode 100755
index 000000000000..3d1b1979947e
--- /dev/null
+++ b/docs/html/images/hello_l10n/german_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/japanese_screenshot.png b/docs/html/images/hello_l10n/japanese_screenshot.png
new file mode 100755
index 000000000000..e1ffbf911d35
--- /dev/null
+++ b/docs/html/images/hello_l10n/japanese_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_project.png b/docs/html/images/hello_l10n/nonlocalized_project.png
new file mode 100755
index 000000000000..8df9a060ee7f
--- /dev/null
+++ b/docs/html/images/hello_l10n/nonlocalized_project.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
new file mode 100755
index 000000000000..02ace4b58a31
--- /dev/null
+++ b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
new file mode 100755
index 000000000000..e5a771b91be6
--- /dev/null
+++ b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/plain_project.png b/docs/html/images/hello_l10n/plain_project.png
new file mode 100755
index 000000000000..f3c2b576e565
--- /dev/null
+++ b/docs/html/images/hello_l10n/plain_project.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/romanshCH_screenshot.png b/docs/html/images/hello_l10n/romanshCH_screenshot.png
new file mode 100755
index 000000000000..a3fd1941298f
--- /dev/null
+++ b/docs/html/images/hello_l10n/romanshCH_screenshot.png
Binary files differ
diff --git a/docs/html/images/hello_l10n/using_custom_locale.png b/docs/html/images/hello_l10n/using_custom_locale.png
new file mode 100755
index 000000000000..61b4c055bff8
--- /dev/null
+++ b/docs/html/images/hello_l10n/using_custom_locale.png
Binary files differ
diff --git a/docs/html/images/resources/arrow.png b/docs/html/images/resources/arrow.png
new file mode 100755
index 000000000000..78ad5421b97a
--- /dev/null
+++ b/docs/html/images/resources/arrow.png
Binary files differ
diff --git a/docs/html/guide/topics/resources/res-selection-flowchart.png b/docs/html/images/resources/res-selection-flowchart.png
index d738b3f0c866..d738b3f0c866 100755
--- a/docs/html/guide/topics/resources/res-selection-flowchart.png
+++ b/docs/html/images/resources/res-selection-flowchart.png
Binary files differ
diff --git a/docs/html/images/resources/right-arrow.png b/docs/html/images/resources/right-arrow.png
new file mode 100755
index 000000000000..092f029a7ab1
--- /dev/null
+++ b/docs/html/images/resources/right-arrow.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_14fj6dhsc3_b.png b/docs/html/images/screens_support/afdvfckr9j_14fj6dhsc3_b.png
new file mode 100644
index 000000000000..ff4fbbf0303a
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_14fj6dhsc3_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_15dcsvrscg_b.png b/docs/html/images/screens_support/afdvfckr9j_15dcsvrscg_b.png
new file mode 100644
index 000000000000..7a987dd2e95a
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_15dcsvrscg_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_16g95wjqg3_b.png b/docs/html/images/screens_support/afdvfckr9j_16g95wjqg3_b.png
new file mode 100644
index 000000000000..20835b61cd74
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_16g95wjqg3_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_17p2w4txgc_b.png b/docs/html/images/screens_support/afdvfckr9j_17p2w4txgc_b.png
new file mode 100644
index 000000000000..8895d4958230
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_17p2w4txgc_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_18c6mhm3cm_b.png b/docs/html/images/screens_support/afdvfckr9j_18c6mhm3cm_b.png
new file mode 100644
index 000000000000..ef6ec66932b3
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_18c6mhm3cm_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_19c743p6cr_b.png b/docs/html/images/screens_support/afdvfckr9j_19c743p6cr_b.png
new file mode 100644
index 000000000000..34be21293e6c
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_19c743p6cr_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/afdvfckr9j_20fvptbbdd_b.png b/docs/html/images/screens_support/afdvfckr9j_20fvptbbdd_b.png
new file mode 100644
index 000000000000..2415b52093e4
--- /dev/null
+++ b/docs/html/images/screens_support/afdvfckr9j_20fvptbbdd_b.png
Binary files differ
diff --git a/docs/html/images/screens_support/avds-config.png b/docs/html/images/screens_support/avds-config.png
new file mode 100644
index 000000000000..7db8c7388a01
--- /dev/null
+++ b/docs/html/images/screens_support/avds-config.png
Binary files differ
diff --git a/docs/html/images/screens_support/dip.png b/docs/html/images/screens_support/dip.png
new file mode 100644
index 000000000000..3cbad5754bf8
--- /dev/null
+++ b/docs/html/images/screens_support/dip.png
Binary files differ
diff --git a/docs/html/images/screens_support/scale-test.png b/docs/html/images/screens_support/scale-test.png
new file mode 100644
index 000000000000..f4fc6623a630
--- /dev/null
+++ b/docs/html/images/screens_support/scale-test.png
Binary files differ
diff --git a/docs/html/images/sdk_manager_packages.png b/docs/html/images/sdk_manager_packages.png
new file mode 100755
index 000000000000..463be8f38749
--- /dev/null
+++ b/docs/html/images/sdk_manager_packages.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 823ec96192e5..dc8bf2fe5179 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -15,12 +15,12 @@ home=true
<div id="announcement" style="width:275px">
<p>The second Android Developer Challenge has begun! In this contest,
real-world users will help review and score applications and the overall winner will
- take away $250,000. The deadline for submitting an application to the contest is August 31, 2009.</p>
+ take away $250,000. The deadline for submissions was August 31, 2009.</p>
<p><a href="http://code.google.com/android/adc/">Learn more about ADC 2 &raquo;</a></p>
</div> <!-- end annoucement -->
</div> <!-- end annoucement-block -->
</div><!-- end topAnnouncement -->
- <div id="carouselMain" style="height:192px"> <!-- this height can be adjusted based on the content height -->
+ <div id="carouselMain" style="height:190px"> <!-- this height can be adjusted based on the content height -->
</div>
<div class="clearer"></div>
<div id="carouselWheel">
@@ -120,12 +120,17 @@ home=true
'sdk': {
'layout':"imgLeft",
'icon':"sdk-small.png",
- 'name':"SDK 1.5 r3",
- 'img':"sdk-large.png",
- 'title':"Android 1.5 SDK",
- 'desc': "<p>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.</p><p><a href='{@docRoot}sdk/1.5_r3/index.html'>Download Android 1.5 SDK &raquo;</a></p>"
+ 'name':"Android 1.6 SDK",
+ 'img':"donut-android.png",
+ 'title':"Android 1.6 SDK",
+ 'desc': "<p>The Android 1.6 SDK is now available, with new APIs and updated tools!</p>"
+ + " <p>For more about the Android 1.6 platform, read the <a href='http://developer.android.com/sdk/android-1.6-highlights.html'>highlights</a>"
+ + "<!--and watch some <a href='http://developer.android.com/videos/index.html'>videos</a>-->."
+ + " Also keep an eye on the <a href='http://android-developers.blogspot.com'>Blog</a>"
+ + " for posts about some of the new developer technologies in Android 1.6.</p>"
+ + "<p><a href='{@docRoot}sdk/1.6_r1/index.html'>Download the Android 1.6 SDK &raquo;</a></p>"
},
-
+
'io': {
'layout':"imgLeft",
'icon':"io-small.png",
diff --git a/docs/html/intl/ja/community/index.jd b/docs/html/intl/ja/community/index.jd
index e0a645b2280c..659aee7d68f1 100644
--- a/docs/html/intl/ja/community/index.jd
+++ b/docs/html/intl/ja/community/index.jd
@@ -40,38 +40,46 @@ page.title=コミュニティ
<h3 id="ApplicationDeveloperLists">アプリケーション デベロッパー メーリング リスト</h3>
<ul>
+
+<li><b>Android SDK Japan</b> - Android SDK に関する質問と答え、提案とフィードバックを交換できる場です。
+<ul>
+<li>Google グループで登録:&nbsp;<a href="http://groups.google.co.jp/group/android-sdk-japan?hl=ja">android-sdk-japan</a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-sdk-japan-subscribe@googlegroups.com">android-sdk-japan-subscribe@googlegroups.com</a></li>
+</ul>
+</li>
+
<li><b>Android 初心者向け</b> - Android アプリケーションの開発初心者向けです。Android SDK と基本的な Android API の利用方法について学習したい場合は、このメーリング リストから始めてください。このメーリング リストには、SDK を利用するデベロッパーの初歩的なディスカッションの場所です。Android プラットフォームで初めてアプリケーションを作成して実行する際は、非常に有益な情報を得ることができるでしょう。開発環境のインストール方法についての質問を投稿したり、Android 開発の初歩(初めて作成するユーザー インターフェース、権限、Android ファイルシステムでのファイル、Android マーケットでのアプリケーションなど)について教えてもらうことができます。新たに質問する前に、必ず最初にアーカイブを確認してください。高度な内容の質問の場合はここでは質問せず、android-developers メーリング リストで質問してください。また使用に関する質問は、android-discuss メーリング リストの方が適しています。
<ul>
<li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-beginners?hl=ja">android-beginners</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android デベロッパー向け</b> - Android アプリケーション デベロッパーとして経験を積むにつれ、Android アプリケーション開発の基本を把握して、SDK を使いこなせるようになります。今度は、より高度な内容について質問する必要があります。アプリケーションのトラブルシューティング、実装へのアドバイス、アプリケーションのパフォーマンスやユーザー エクスペリエンスを改良するテクニックに関する質問には、次のメーリング リストが役立ちます。使用に関する問題(android-discuss をご利用ください)や、Android SDK を使用する際の初歩的質問(android-beginners をご利用ください)についてのディスカッションの場所ではありません。
<ul>
<li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-developers?hl=ja">android-developers</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android ディスカッション</b> - Android に関する「井戸端会議」です。ここでは、Android プラットフォームへのアイデア、自分のアプリケーションの公表、Android 携帯端末に関するディスカッション、コミュニティ リソースなど、Android に関することなら何でも投稿可能です。ただし他のメーリング リストに該当する内容の場合は、そのメーリング リストに投稿することをおすすめします。質問のテーマが限定されている場所の方が、より多くの回答を得ることができるでしょう。
<ul>
<li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-discuss?hl=ja">android-discuss</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android セキュリティ ディスカッション</b> - 安全な開発、新たに発生したセキュリティの問題、Android デベロッパー向けの Android デベロッパーによるベスト プラクティスについて自由にディスカッションを行える場所です。メーリング リストで脆弱性を直接公開することは、すべての Android ユーザーを危険にさらすことになるので、避けてください。
<ul>
<li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-security-discuss?hl=ja">android-security-discuss</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android セキュリティに関する発表</b> - Android セキュリティ チームがセキュリティ関連の発表を行う、小規模なグループです。
<ul>
<li>Google グループで登録:&nbsp;<a href="http://groups.google.com/group/android-security-announce?hl=ja">android-security-announce</a></li>
-<li>メールで登録:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a> <a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録:&nbsp;<a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
</ul>
</li>
diff --git a/docs/html/intl/ja/index.jd b/docs/html/intl/ja/index.jd
index a5378c964d3d..3ed235799235 100644
--- a/docs/html/intl/ja/index.jd
+++ b/docs/html/intl/ja/index.jd
@@ -56,7 +56,7 @@ home=true
<td>
<h2 class="green">公開</h2>
<p>Android マーケットは、アプリケーションを携帯端末に配信するためのオープン サービスです。</p>
- <p><a href="http://www.android.com/market.html">詳細 &raquo;</a></p>
+ <p><a href="http://market.android.com/publish/Home">詳細 &raquo;</a></p>
</td>
</tr>
<tr>
@@ -118,10 +118,10 @@ home=true
'sdk': {
'layout':"imgLeft",
'icon':"sdk-small.png",
- 'name':"SDK 1.5 r3",
- 'img':"sdk-large.png",
- 'title':"Android 1.5 SDK",
- 'desc': "<p>Android 1.5 SDK の最新バージョンが公開されました。このリリースには Android 1.5 用の API、最新版デベロッパーツール、複数プラットフォーム(バージョン)サポート、そして Google API のアドオンが含まれています。</p><p><a href='{@docRoot}sdk/1.5_r3/index.html'>Android 1.5 SDK をダウンロード &raquo;</a></p>"
+ 'name':"SDK 1.6 r1",
+ 'img':"donut-android.png",
+ 'title':"Android 1.6 SDK",
+ 'desc': "<p>Android 1.6 SDK の最新バージョンが公開されました。このリリースには Android 1.6 用の API、最新版デベロッパーツール、複数プラットフォーム(バージョン)サポート、そして Google API のアドオンが含まれています。</p><p><a href='{@docRoot}sdk/1.6_r1/index.html'>Android 1.6 SDK をダウンロード &raquo;</a></p>"
},
'io': {
diff --git a/docs/html/sdk/1.0_r1/requirements.jd b/docs/html/sdk/1.0_r1/requirements.jd
index af0667548dcc..4163513174c2 100644
--- a/docs/html/sdk/1.0_r1/requirements.jd
+++ b/docs/html/sdk/1.0_r1/requirements.jd
@@ -14,7 +14,13 @@ developing Android applications using the Android SDK tools included in Android
<ul>
<li>Windows XP or Vista</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#installnotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h4>Supported Development Environments:</h4>
diff --git a/docs/html/sdk/1.0_r2/requirements.jd b/docs/html/sdk/1.0_r2/requirements.jd
index 74d90ef0a332..4f7c093cad5f 100644
--- a/docs/html/sdk/1.0_r2/requirements.jd
+++ b/docs/html/sdk/1.0_r2/requirements.jd
@@ -13,7 +13,13 @@ sdk.version=1.0_r2
<ul>
<li>Windows XP or Vista</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#installnotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h4>Supported Development Environments:</h4>
diff --git a/docs/html/sdk/1.1_r1/requirements.jd b/docs/html/sdk/1.1_r1/requirements.jd
index 95b658bea203..9d8f9eb1e096 100644
--- a/docs/html/sdk/1.1_r1/requirements.jd
+++ b/docs/html/sdk/1.1_r1/requirements.jd
@@ -11,7 +11,13 @@ sdk.date=February 2009
<ul>
<li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#installnotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h3>Supported Development Environments</h3>
diff --git a/docs/html/sdk/1.5_r1/requirements.jd b/docs/html/sdk/1.5_r1/requirements.jd
index 4ed38a741261..c10ccac561ea 100644
--- a/docs/html/sdk/1.5_r1/requirements.jd
+++ b/docs/html/sdk/1.5_r1/requirements.jd
@@ -7,7 +7,13 @@ page.title=System Requirements
<ul>
<li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h3>Supported Development Environments</h3>
diff --git a/docs/html/sdk/1.5_r2/requirements.jd b/docs/html/sdk/1.5_r2/requirements.jd
index 4ed38a741261..c10ccac561ea 100644
--- a/docs/html/sdk/1.5_r2/requirements.jd
+++ b/docs/html/sdk/1.5_r2/requirements.jd
@@ -7,7 +7,13 @@ page.title=System Requirements
<ul>
<li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h3>Supported Development Environments</h3>
diff --git a/docs/html/sdk/1.5_r3/requirements.jd b/docs/html/sdk/1.5_r3/requirements.jd
index 5f20cf1c0b94..5bcee27ed753 100644
--- a/docs/html/sdk/1.5_r3/requirements.jd
+++ b/docs/html/sdk/1.5_r3/requirements.jd
@@ -10,7 +10,13 @@ page.title=System Requirements
<ul>
<li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
<li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
</ul>
<h3>Supported Development Environments</h3>
diff --git a/docs/html/sdk/1.6_r1/index.jd b/docs/html/sdk/1.6_r1/index.jd
new file mode 100644
index 000000000000..8f33949c05d1
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/index.jd
@@ -0,0 +1,140 @@
+page.title=Android 1.6 SDK, Release 1
+sdk.redirect=0
+sdk.version=1.6
+
+sdk.date=September 2009
+
+sdk.win_download=android-sdk-windows-1.6_r1.zip
+sdk.win_bytes=260529085
+sdk.win_checksum=2bcbacbc7af0363058ca1cac6abad848
+
+sdk.mac_download=android-sdk-mac_x86-1.6_r1.zip
+sdk.mac_bytes=247412515
+sdk.mac_checksum=eb13cc79602d492e89103efcf48ac1f6
+
+sdk.linux_download=android-sdk-linux_x86-1.6_r1.tgz
+sdk.linux_bytes=238224860
+sdk.linux_checksum=b4bf0e610ff6db2fb6fb09c49cba1e79
+
+adt.zip_download=ADT-0.9.3.zip
+adt.zip_version=0.9.3
+adt.zip_bytes=3252487
+adt.zip_checksum=c296488ac35772667c0f49e822156979
+
+@jd:body
+
+<p>For more information on this SDK release, read the
+<a href="{@docRoot}sdk/RELEASENOTES.html#1.6_r1">Release Notes</a>.</p>
+
+<h2>SDK Contents</h2>
+
+<h4>Development tools</h4>
+
+<p>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 <a
+href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them
+in the <code>&lt;sdk&gt;/tools/</code> directory.
+
+<p>The tools package in this SDK includes updates from those provided in the
+previous SDK. The tools use the same project structure as in the previous SDK
+(Android 1.5). If you have application projects developed in the Android 1.5
+SDK, you can migrate them to the latest SDK without modification. For more
+information about how to migrate, see <a href="upgrading.html">Upgrading the
+SDK</a>.
+
+<h4 id="system_images">Android Platforms</h4>
+
+<p>This SDK includes multiple Android platform versions that you can 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 &mdash;
+features, applications included, localizations, API changes, and so on &mdash;
+see its Version Notes. </p>
+
+<table style="margin-right:1em;" width="80%">
+<tr>
+<th><nobr>Platform</nobr></th><th><nobr>API
+Level</nobr></th><th>Notes</th><th>Description</th>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.6</nobr></td>
+<td width="5%">4</td>
+<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.6.html">Version
+Notes</a></nobr></td>
+<td>Includes a standard Android 1.6 library and system image with a set of
+development applications. Does not include any external libraries (such as the
+Maps external library).</td>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.5</nobr></td>
+<td width="5%">3</td>
+<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version
+Notes</a></nobr></td>
+<td>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).</td>
+</tr>
+</table>
+
+<p>Note that you can use the Android SDK and AVD Manager to download other
+platform versions into your development environment.</span>.
+
+<h4 id="system_images">SDK Add-Ons</h4>
+
+<p>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-ons listed below. The Android system API Level required by
+the add-ons are noted.</p>
+
+<table style="margin-right:1em;" width="80%">
+<tr>
+<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th>
+<th>Notes</th><th>Description</th>
+</tr>
+<tr>
+<td width="5%"><nobr>Google APIs</nobr></td>
+<td width="5%">4</td>
+<td width="5%">&nbsp;</td>
+<td>Includes the com.google.android.maps external library, a compliant
+Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+<tr>
+<td width="5%"><nobr>Google APIs</nobr></td>
+<td width="5%">3</td>
+<td width="5%">&nbsp;</td>
+<td>Includes the com.google.android.maps external library, a compliant
+Android 1.5 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+</table>
+
+<h4>Sample Code and Applications</h4>
+
+<p>You can look at a variety of tutorials and samples in the <a
+href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample
+code itself in the <code>&lt;sdk&gt;/platforms/&lt;platform&gt;/samples/</code>
+directory of the SDK package. Note the new location &mdash; the SDK now includes
+multiple platform versions that you can develop against and each has its own
+sample code directory. </p>
+
+<p>For example, to view or build the samples available for the Android
+1.6 platform (AVD target "Android 1.6"), you will find the samples in the
+<code>&lt;sdk&gt;/platforms/android-1.6/samples/</code> directory of the SDK
+package. </p>
+
+<h4>Documentation</h4>
+
+<p>The SDK package includes a full set of local documentation. To view it, open
+the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you
+are developing in an IDE such as Eclipse, you can also view the reference
+documentation directly in the IDE. </p>
+
+<p>The most current documentation is always available on the Android Developers
+site:</p>
+
+<p style="margin-left:2em;"><a
+href="http://developer.android.com/index.html">http://developer.android.com/</a>
+</p>
+
+
diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd
new file mode 100644
index 000000000000..954bfa3f0039
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/installing.jd
@@ -0,0 +1,441 @@
+page.title=Installing the Android 1.6 SDK
+sdk.version=1.6
+sdk.preview=0
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#Preparing">Prepare for Installation</a></li>
+ <li><a href="#Installing">Install the SDK</a></li>
+ <li><a href="#InstallingADT">Install the ADT Plugin for Eclipse</a></li>
+ <li><a href="#sdkContents">SDK Contents</a></li>
+ <li><a href="#NextSteps">Next Steps</a></li>
+ <li><a href="#InstallationNotes">Installation Notes</a></li>
+ <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>This page describes how to install the Android SDK and set up your
+development environment.</p>
+
+<p>If you encounter any problems during installation, see the
+<a href="#InstallationNotes">Installation Notes</a> at the bottom of
+this page.</p>
+
+<h4 style="margin-top">Upgrading?</h4>
+<p>If you have already developed applications using an earlier version
+of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
+</p>
+
+
+<h2 id="Preparing">Prepare for Installation</h2>
+
+<p>Before you begin, take a moment to confirm that your development machine
+meets the <a href="requirements.html">System Requirements</a>.</p>
+
+<p>If you will be developing on Eclipse with the Android Development
+Tools (ADT) Plugin &mdash; the recommended path if you are new to
+Android &mdash; make sure that you have a suitable version of Eclipse
+installed on your computer (3.4 or newer is recommended). If you need
+to install Eclipse, you can download it from this location: </p>
+
+<p style="margin-left:2em;"><a href=
+"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
+
+<p>A Java or RCP version of Eclipse is recommended. </p>
+
+<h2 id="Installing">Install the SDK</h2>
+
+<p>After downloading the Android SDK, unpack the Android SDK .zip archive
+to a suitable location on your machine. By default, the SDK files are unpacked
+into a directory named <code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>. </p>
+
+<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you
+will need to refer to the SDK directory later, when setting up the Android plugin or when
+using the SDK tools.</p>
+
+<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory
+to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the
+SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and
+the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without
+needing to supply the full path to the tools directory. </p>
+<ul>
+ <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
+ for a line that sets the PATH environment variable and add the
+ full path to the <code>tools/</code> directory to it. If you don't
+ see a line setting the path, you can add one:</li>
+
+ <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
+
+ <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
+ proceed as for Linux. You can create the <code>.bash_profile</code> if
+ you haven't already set one up on your machine. </li>
+
+ <li>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
+ <code>tools/</code> directory to the path. </li>
+ </ul>
+
+<p>Note that, if you update your SDK in the future, you
+should remember to update your <code>PATH</code> settings to point to the new location, if different.</p>
+
+<p>If you will be using the Eclipse IDE as your development environment,
+the next section describes how to install the Android Development Tools (ADT) 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 <a href="#NextSteps">Next Steps</a>).</p>
+
+
+<h2 id="InstallingADT">Install the ADT Plugin for Eclipse</h2>
+
+<p>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.</p>
+
+<p>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&mdash;skip to <a href="#NextSteps">Next Steps</a>.)</p>
+
+<p>Once you have the Eclipse IDE installed, as described in <a
+href="#Preparing">Preparing for Installation</a>, follow the steps below to
+download the ADT plugin and install it in your respective Eclipse environment.
+</p>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="45%">
+<!-- 3.4 steps -->
+<ol>
+ <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.
+ In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
+ <li>Click <strong>Add Site...</strong> </li>
+ <li>In the Add Site dialog that appears, enter this URL in the "Location" field:
+ <pre style="margin-left:0">https://dl-ssl.google.com/android/eclipse/</pre>
+ <p>Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
+ instead of "https" (https is preferred for security reasons).</p>
+ <p>Click <strong>OK</strong>.</p></li>
+ <li>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 <strong>Install...</strong></li>
+ <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
+ should both be checked. Click <strong>Next</strong>. </li>
+ <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
+ <li>Restart Eclipse. </li>
+</ol>
+
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+ <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install
+ New Softare</strong>. </li>
+ <li>In the Available Software dialog, click <strong>Add...</strong>.</li>
+ <li>In the Add Site dialog that appears, enter a name for the remote site
+ (e.g., "Android Plugin") in the "Name" field.
+ <p>In the "Location" field, enter this URL:</p>
+ <pre>https://dl-ssl.google.com/android/eclipse/</pre>
+ <p>Note: If you have trouble aqcuiring the plugin, you can try
+ using "http" in the URL, instead of "https" (https is preferred for
+ security reasons).</p>
+ <p>Click <strong>OK</strong>.</p>
+ </li>
+ <li>Back in the Available Software view, you should now see "Developer
+ Tools" added to the list. Select the checkbox next to Developer Tools,
+ which will automatically select the nested tools Android DDMS and Android
+ Development Tools.
+ Click <strong>Next</strong>. </li>
+ <li>In the resulting Install Details dialog, the Android DDMS and Android
+ Development Tools features are listed. Click <strong>Next</strong> to
+ read and accept the license agreement and install any dependencies,
+ then click <strong>Finish</strong>. </li>
+ <li>Restart Eclipse. </li>
+
+</ol>
+</td>
+</tr>
+</table>
+
+<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
+<ol>
+ <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
+ panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
+ <li>Select <strong>Android</strong> from the left panel. </li>
+ <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and
+ locate your downloaded SDK directory. </li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+<p>Done! If you haven't encountered any problems, then you're ready to
+begin developing Android applications. See the
+<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
+
+
+<h2 id="sdkContents">Contents of the SDK</h2>
+
+<p>Once you've downloaded and unpacked the SDK, open the SDK directory
+and take a look at what's inside.
+
+<p>The table below describes the SDK directory contents. </p>
+
+<table>
+<tr>
+<th colspan="3">Name</th><th>Description</th>
+</tr>
+<tr>
+<td colspan="3"><code>add-ons/</code></td>
+<td>Contains add-ons to the Android SDK development
+environment, which let you develop against external libraries that are available on some
+devices. </td>
+</tr>
+<tr>
+<td colspan="3"><code>docs/</code></td>
+<td>A full set of documentation in HTML format, including the Developer's Guide,
+API Reference, and other information.</td>
+</tr>
+<tr>
+<td colspan="3"><code>platforms/</code></td>
+<td>Contains a set of Android platform versions that you can develop
+applications against, each in a separate directory. </td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td colspan="2"><code>&lt;platform&gt;/</code></td>
+<td>Platform version directory, for example "Android 1.6". All platform version
+directories contain a similar set of files and subdirectory structure.</td>
+</tr>
+
+<tr>
+<td style="width:2em;border-bottom-color:white;">&nbsp;</td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>data/</code></td>
+<td>Storage area for default fonts and resource definitions.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>images/</code></td>
+<td>Storage area for default disk images, including the Android system image,
+the default userdata image, the default ramdisk image, and more. The images
+are used in emulator sessions.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>samples/</code></td>
+<td>Contains a wide variety of sample applications that you can load as projects
+into your development environment, compile, and run on the emulator.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>skins/</code></td>
+<td>A set of emulator skins available for the platform version. Each skin is
+designed for a specific screen resolution.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>templates/</code></td>
+<td>Storage area for file templates used by the SDK development tools.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>tools/</code></td>
+<td>Any development tools that are specific to the platform version.</td>
+</tr>
+<tr>
+<td style="width:2em;"></td>
+<td style="width:2em;"></td>
+<td><code>android.jar</code></td>
+<td>The Android library used when compiling applications against this platform
+version.</td>
+</tr>
+<tr>
+<td colspan="3"><code>tools/</code></td>
+<td>Contains the set of development and profiling tools available to you, such
+as the emulator, the <code>android</code> tool, adb, ddms, and more.</td>
+</tr>
+<tr>
+<td colspan="3"><code>RELEASE_NOTES.html</code></td>
+<td>A file that loads the local version of the SDK release notes, if
+available.</td>
+</tr>
+<tr>
+<td colspan="3"><code>documentation.html</code></td>
+<td>A file that loads the entry page for the local Android SDK
+documentation.</td>
+</tr>
+
+</table>
+
+<h2 id="NextSteps">Next Steps</h2>
+<p>Once you have completed installation, you are ready to
+begin developing applications. Here are a few ways you can get started: </p>
+
+<p><strong>Learn about Android</strong></p>
+<ul>
+ <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
+ Guide</a> and the types of information it provides</li>
+ <li>Read an introduction to Android as a platform in <a
+ href="{@docRoot}guide/basics/what-is-android.html">What is
+ Android?</a></li>
+ <li>Learn about the Android framework and how applications run on it in
+ <a href="{@docRoot}guide/topics/fundamentals.html">Application
+ Fundamentals</a></li>
+ <li>Take a look at the Android framework API specification in the <a
+ href="{@docRoot}reference/packages.html">Reference</a> tab</li>
+</ul>
+
+<p><strong>Explore the SDK</strong></p>
+<ul>
+ <li>Get an overview of the <a
+ href="{@docRoot}guide/developing/tools/index.html">development
+ tools</a> that are available to you</li>
+ <li>Read how to develop <a
+ href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
+ <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
+ </li>
+</ul>
+
+<p><strong>Explore some code</strong></p>
+<ul>
+ <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
+ World application</a> (highly recommended, especially for Eclipse users)</li>
+ <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
+ Notepad Tutorial</a> to build a full Android application </li>
+ <li>Create a new project for one of the other sample applications
+ included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platform&gt;</em>/samples</code>,
+ then compile and run it in your development environment</li>
+</ul>
+
+<p><strong>Visit the Android developer groups</strong></p>
+<ul>
+ <li>Take a look at the <a
+ href="{@docRoot}community/index.html">Community</a> tab to see a list of
+ Android developers groups. In particular, you might want to look at the
+ <a href="http://groups.google.com/group/android-developers">Android
+ Developers</a> group to get a sense for what the Android developer
+ community is like.</li>
+</ul>
+
+
+<h2 id="InstallationNotes">Installation Notes</h2>
+
+<h3>Ubuntu Linux Notes</h3>
+
+<ul>
+ <li>If you need help installing and configuring Java on your
+ development machine, you might find these resources helpful:
+ <ul>
+ <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
+ <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
+ </ul>
+ </li>
+ <li>Here are the steps to install Java and Eclipse, prior to installing
+ the Android SDK and ADT Plugin.
+ <ol>
+ <li>If you are running a 64-bit distribution on your development
+ machine, you need to install the <code>ia32-libs</code> package using
+ <code>apt-get:</code>:
+ <pre>apt-get install ia32-libs</pre>
+ </li>
+ <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
+ <li>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 (<a
+ href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
+ downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
+ <li>Follow the steps given in previous sections to install the SDK
+ and the ADT plugin. </li>
+ </ol>
+ </li>
+</ul>
+
+<h3>Other Linux Notes</h3>
+
+<ul>
+ <li>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 <a href="requirements.html">System Requirements</a>.
+ 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.</li>
+</ul>
+
+
+<h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
+
+<p> If you are having trouble downloading the ADT plugin after following the
+steps above, here are some suggestions: </p>
+
+<ul>
+ <li>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:
+<pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
+<li>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
+<strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt;
+<strong>Preferences</strong> &gt; <strong>General</strong> &gt; <strong>Network
+Connections</strong>.</li>
+</ul>
+
+<p> 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 it:</p>
+
+<ol>
+ <li><a href="http://developer.android.com/sdk/preview/index.html">Download the
+ ADT Plugin zip file</a> (do not unpack it).</li>
+ <li>Follow steps 1 and 2 in the <a href="#InstallingADT">default install
+ instructions</a> (above).</li>
+ <li>In the Add Site dialog, click <strong>Archive</strong>.</li>
+ <li>Browse and select the downloaded zip file.</li>
+ <li>In Eclipse 3.5 only, enter a name for the local update site (e.g.,
+ "Android Plugin") in the "Name" field.</li>
+ <li>Click <strong>OK</strong>.
+ <li>Follow the remaining procedures as listed for
+ <a href="#InstallingADT">default installation</a> above,
+ starting from step 4.</li>
+</ol>
+
+<p>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.</p>
+
+<h4>Other install errors</h4>
+
+<p>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
+<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT
+Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
+
+<h4>For Linux users</h4>
+<p>If you encounter this error when installing the ADT Plugin for Eclipse:
+<pre>
+An error occurred during provisioning.
+Cannot connect to keystore.
+JKS</pre>
+<p>
+...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.</p>
+
+
diff --git a/docs/html/sdk/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd
new file mode 100644
index 000000000000..8cfc0494b820
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/requirements.jd
@@ -0,0 +1,57 @@
+page.title=System Requirements
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+<p>The sections below describe the system and software requirements for developing
+Android applications using the Android SDK tools included in Android
+<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
+
+<h3>Supported Operating Systems</h3>
+<ul>
+ <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
+ <li>Mac OS X 10.4.8 or later (x86 only)</li>
+ <li>Linux (tested on Linux Ubuntu Hardy Heron)
+ <ul>
+ <li>64-bit distributions must be capable of running 32-bit applications.
+ For information about how to add support for 32-bit applications, see
+ the <a href="installing.html#InstallationNotes">Installation Notes</a>.</li>
+ </ul>
+ </li>
+</ul>
+
+<h3>Supported Development Environments</h3>
+<ul>
+ <li>Eclipse IDE
+ <ul>
+ <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
+ <ul>
+ <li>Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to
+ Eclipse 3.4 or 3.5.</li>
+ <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
+ <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
+ <li>Eclipse Classic IDE package is not supported.</li>
+ </ul>
+ </li>
+ <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+ <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
+ <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+ </ul>
+ </li>
+ <li>Other development environments or IDEs
+ <ul>
+ <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+ <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
+ <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+ </ul>
+ </li>
+</ul>
+
+<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. 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. </p>
+
+<h3>Hardware requirements</h3>
+<ul>
+ <li>For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed. </li>
+</ul>
+
diff --git a/docs/html/sdk/1.6_r1/upgrading.jd b/docs/html/sdk/1.6_r1/upgrading.jd
new file mode 100644
index 000000000000..ebe6a95c8ee9
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/upgrading.jd
@@ -0,0 +1,386 @@
+page.title=Upgrading the SDK
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>Upgrading the SDK</h2>
+ <ul>
+ <li>If you are developing on the Android 1.5 SDK, migrating your
+applications is straightforward and typically requires no modifications.</li>
+ <li>For Eclipse users, a new version of ADT is available. To use the Android
+1.6 SDK, please upgrade to ADT 0.9.3 (or later).</li>
+ <li>For Windows users, the SDK includes a new USB driver that you can
+install, if you are developing on a device. </li>
+ <li>A new Android SDK and AVD Manager tool is available. To access
+it, run the <code>android</code> tool without options. </li>
+ </ul>
+
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#Install">Install the SDK</a></li>
+ <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
+ <li><a href="#RunYourApps">Run Your Applications</a></li>
+ <li><a href="#MigrateYourApps">Migrate Your Applications</a></li>
+ </ol>
+
+ <h2>Migrating information</h2>
+ <ol>
+ <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 API
+Differences</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>This document describes how to move your development environment and existing
+Android applications from an Android 1.5 SDK to the Android 1.6 SDK. If you are
+migrating applications from an SDK older than 1.5, please also read the
+upgrading document available in the Android 1.5 SDK package.</p>
+
+<p>There are several compelling reasons to upgrade, such as new SDK tools that
+make developing more efficient and new APIs that allow you to expand the
+feature-set of your applications. However, even if you or your applications
+don't require these enhancements, it's important that you upgrade to ensure that
+your applications run properly on the upcoming Android platform.</p>
+
+<p>The Android 1.6 platform will soon be deployable to devices around the world.
+If you have already released Android applications to the public, you should test
+the forward-compatibility of your applications on the latest version of the
+platform as soon as possible. It's unlikely that you'll encounter problems in
+your applications, but in the interest of maintaining the best user experience,
+you should take no risks. So, please install the new Android SDK and test your
+applications on the new platform.</p>
+
+<!-- NOT AVAILABLE FOR PREVIEW RELEASES -->
+<p>For more information on new SDK features and system changes,
+see the <a href="{@docRoot}sdk/android-1.6.html">Android 1.6 Version Notes</a>.</p>
+<!-- -->
+
+<h2 id="Install">Install the SDK</h2>
+
+<p>If you haven't yet downloaded the SDK, <a href="index.html">download it from
+here</a> and unpack it into a safe location.</p>
+
+<p>If you had previously setup your <code>PATH</code> variable to point to the SDK
+tools directory, then you need to update it to point to the new SDK. For example, for
+a <code>.bashrc</code> or <code>.bash_profile</code> file:</p>
+<pre>export PATH=$PATH:<em>&lt;your_sdk_dir></em>/tools</pre>
+
+
+<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
+
+<p>If you don't use the Eclipse IDE for development,
+skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
+
+<p>A new version of the ADT Plugin, ADT 0.9.3, is available in conjunction with
+this SDK release. To use the SDK, you must upgrade your ADT Plugin to version
+0.9.3. With ADT 0.9.3, you can still compile your existing applications against
+multiple platform versions, such as Android 1.5, Android 1.1, and so on. However,
+ADT 0.9.3 is not compatible with previous versions of the SDK and its tools, so
+make sure that you upgrade both your SDK <em>and</em> the ADT Plugin.</p>
+
+The upgrade steps for ADT are described below. For information about new features in ADT, see the <a
+href="{@docRoot}sdk/RELEASENOTES.html">Release Notes</a> document. </p>
+
+<p>If you're currently using a version of ADT <em>older</em> than version 0.9,
+then you must uninstall ADT before you proceed (read how to <a
+href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
+ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't need
+to uninstall and can continue with the procedure below.</p>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="50%">
+<!-- 3.4 steps -->
+<ol>
+ <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong>.</li>
+ <li>Select the <strong>Available Software</strong> tab.</li>
+ <li>Select the checkboxes next to Android DDMS and Android Developer Tools,
+ then click <strong>Update</strong>.</li>
+ <li>In the resulting Available Updates dialog, ensure that both Android DDMS
+ and Android Development Tools are selected, then click
+ <strong>Next</strong>.</li>
+ <li>Read and accept the license agreement and then click <strong>Finish</strong>.
+ This will download and install the latest version of Android DDMS and
+ Android Development Tools.</li>
+ <li>Restart Eclipse.</li>
+</ol>
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+ <li>Select <strong>Help</strong> &gt; <strong>Check for Updates</strong>. </li>
+ <li>In the resulting Available Updates dialog, locate the Android DDMS and
+ Android Development Tools features in the list and ensure that the checkboxes
+ next to them are selected. Click <strong>Next</strong>.
+ <p>If the Available Updates dialog does not list Android DDMS and Android
+ Development tools, make sure that you have set up a remote update site
+ for them, as described in
+ <a href="installing.html#InstallingADT">Installing the ADT Plugin</a>.
+ </p></li>
+ <li>In the Update Details dialog, click <strong>Next</strong>.</li>
+ <li>Read and accept the license agreement and then click <strong>Finish</strong>.
+ This will download and install the latest version of Android DDMS and
+ Android Development Tools.</li>
+ <li>Restart Eclipse.</li>
+</ol>
+</td>
+</tr>
+</table>
+
+<p>If you encounter problems with this update procedure, try performing a fresh
+installation. Fully remove your existing ADT Plugin as described in <a
+href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
+ADT plugin</a> and then follow the guide to <a
+href="installing.html#InstallingADT">Installing the ADT Plugin for
+Eclipse</a>.</p>
+
+<h3 id="updateEclipsePrefs">Update your Eclipse SDK Preferences</h3>
+
+<p>The last step is to update your Eclipse preferences to point to the new
+SDK directory:</p>
+<ol>
+ <li>Select <strong>Window</strong> > <strong>Preferences</strong> to open
+ the Preferences panel (Mac: <strong>Eclipse</strong> > <strong>Preferences
+ </strong>).</li>
+ <li>Select <strong>Android</strong> from the left panel.</li>
+ <li>For the SDK Location, click <strong>Browse</strong>
+ and locate your SDK directory.</li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+
+<h2 id="RunYourApps">Run Your Applications to Test Forward Compatibility</h2>
+
+<p>Now that you have installed the Android 1.6 SDK, we encourage you run each of
+your existing applications on the Android 1.6 system image that is included in
+the SDK, to ensure that it functions properly on the new platform.
+Testing forward-compatibility in this way is especially important for
+applications that you may have already published and that may be installed on
+devices that will upgrade to the new platform. </p>
+
+<p>In most cases, your applications will function properly when run on the new
+version of the platform. However, it is possible that you will encounter
+unexpected behavior, because of changes in the API or underlying platform. If
+you do find problems, you can use the SDK tools to compile and publish an update
+to the applications, which users can then download.
+
+<p>To test forward-compatibility, simply run your application, as-is, on an
+instance of the Android Emulator that uses an AVD targeted to the "Android 1.6"
+system image. Here are the steps: </p>
+
+<ol>
+ <li>Make no changes to your application code.</li>
+ <li>Create a new AVD that runs the new "Android 1.6" platform. </li>
+ <li>Launch your application in an emulator running the new AVD.</li>
+ <li>Perform normal testing on your application to ensure everything works as
+ expected.</li>
+</ol>
+
+<p>Note that, for the purposes of forward-compatibility testing, you should not
+change how your application is compiled. That is, you should continue to compile
+the application against the same version of the Android library as before. The
+only change needed is to the AVD, which controls the version of the Android
+system image (run-time environment) on which the application is run.
+
+<p>For more information on creating an AVD and launching your application, see
+<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Applications (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running
+Your Applications (other IDEs)</a>, depending on your development
+environment.</p>
+
+<h3 id="FutureProofYourApps">Android 1.6 Forward-Compatibility Tips</h3>
+
+<p>The new version of the Android platform includes several new APIs, but
+very few actual changes to existing APIs. This means that, in most
+cases, your applications written with earlier versions of the Android library
+should run properly on the Android 1.6 platform. </p>
+
+<p>However, here are some areas to pay attention to as you test forward-compatibility:</p>
+
+<ul>
+ <li><strong>Make sure your application doesn't use internal APIs</strong>. Your
+application should not use any APIs that are not officially supported and are
+not published in the Android reference documentation. Unofficial APIs can change
+at any time without notice and &mdash; if your application happens to be using
+them &mdash; such a change could cause the application to break.</li>
+
+ <li><strong>Watch for assumptions about available hardware</strong>. Remember
+that not all compatible devices offer the same hardware capabilities &mdash;
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them
+as hardware requirements in a
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code>.</a>
+element in the application's manifest file. Also see the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
+manifest element, which lets your application declare a requirement for
+specific features, such as an OpenGL ES version or a camera that has
+autofocus capability.
+</li>
+
+ <li><strong>Watch for assumptions about available features</strong>. Not all
+compatible devices offer equal support for embedded features. same hardware capabilities &mdash;
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them
+as hardware requirements in a
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code>.</a>
+element in the application's manifest file. </li>
+
+ <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different hardware configurations. For example, you can create
+an AVD that does not offer a physical keyboard or one that uses a dpad instead
+of a trackball. Running your application in different emulated hardware
+configurations will give you an idea of where its dependencies are and help you
+identify problems. </p>
+ </li>
+
+ <li><strong>Watch for assumptions about screen resolution and
+density</strong>. A device's screen resolution and density is likely to affect
+the way that your application's UI is rendered, especially if your app specifies
+dimensions or positions using pixels or absolute layouts. To ensure consistent
+UI across screens, your app should specify the dimensions and positions of
+layouts and drawables in relative units that can be scaled by the system as
+appropriate, according to the density of the device's screen. Alternatively, you
+can create custom sets of layout/drawable resources for specific screens, which
+the system can then load as appropriate, based on the current device screen.</p>
+
+ <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different screen resolutions and densities. Also note that,
+starting with Android 1.6, the platform provides a Compatibility Mode that
+automatically scales the UI of applications if they do not explicitly indicate
+support for the current screen in the
+<a href="{@docRoot}guide/topics/manifest/supports-screen-element.html"><code>&lt;supports-screen&gt;</code></a>
+element in their manifest files. As part of testing, you should evaluate how
+your application is displayed in Compatibility Mode on different screens. </p>
+ </li>
+
+ <li><strong>Avoid performing layout orientation changes based on the
+acceletometer (or via other sensors)</strong>. Some Android-powered devices will
+automatically rotate the orientation (and all devices have the option to turn on
+auto-rotation), so if your application also attempts to rotate the orientation,
+it can result in strange behavior. In addition, if your application uses the
+accelerometer to detect shaking and you do not want to rotate the orientation,
+then you should lock the current orientation with <a
+href="{@docRoot}guide/topics/manifest/activity-element.html#screen">android:screenOrientation</a>.
+ </li>
+
+</ul>
+
+<h2 id="MigrateYourApps">Migrate Your Applications</h2>
+
+<p>If you want to use any of the new Android 1.6 APIs in your existing
+applications, you must first migrate the applications to the new Android
+platform version. Generally, migrating an application includes: </p>
+
+<ul>
+<li>Referencing the proper API Level in the application's manifest file,
+and</li>
+<li>Resetting its project properties so that it is compiled against the Android
+1.6 build target.</li>
+</ul>
+
+<p>Additionally, to run your application in the emulator, you need to
+create an AVD that uses the Android 1.6 system image. </p>
+
+<p class="note"><strong>Note:</strong> You only need migrate your application as
+described in this section if the application will actually use APIs
+<em>introduced</em> in the Android 1.6 platform (which are not available on
+devices running older versions of the Android platform). If your application
+does not use any new APIs, you can compile and run it without modification and
+not migration is necessary.</p>
+
+<h3>Reference the Proper API Level</h3>
+
+<p>If your application is using APIs introduced in Android 1.6, you must
+reference that dependency in the application's manifest file so that it can be
+deployed to devices running the Android 1.6 platform. </p>
+
+<p>Open the manifest file and locate the <code>minSdkVersion</code> attribute
+in the <code>&lt;uses-sdk&gt;</code> manifest element. Set the value of
+<code>minSdkVersion</code> to <code>"4"</code> (the API Level
+identifier corresponding to Android 1.6). Here's an example:</p>
+
+<pre>
+&lt;manifest>
+ ...
+ &lt;uses-sdk android:minSdkVersion="4" />
+ ...
+&lt;/manifest>
+</pre>
+
+<h3>Compile Against the Proper Build Target</h3>
+
+<p>Once you've changed the <code>minSdkVersion</code> value in your
+application's manifest, you need to set the application's project properties so
+that the application will be compiled against the Android 1.6 library. To do so,
+follow the steps below for your respective development environment. </p>
+
+<h4 id="EclipseUsers">Eclipse Users</h4>
+
+<ol>
+ <li>Right-click on the individual project (in the Package Explorer)
+ and select <strong>Properties</strong>.</li>
+ <li>In the properties, open the Android panel and select a new Project Build Target.
+ Select "Android 1.6" to target the new platform (or "Google APIs" with the "4"
+ API Level, if your application uses the Google Maps APIs).</li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+<h4 id="AntUsers">Ant Users</h4>
+
+<p>Use the <code>android</code> tool (located in
+<code><em>your_sdk</em>/tools/</code>) to create a new <code>build.xml</code>
+that references the new platform target. To see a list of available targets,
+execute:</p>
+
+<pre>android list targets</pre>
+
+<p>Select the target <code>id</code> that corresponds to the "Android 1.6" platform
+and pass it with the <code>--target</code> parameter when updating your project.
+For example:</p>
+
+<pre>android update project --path /path/to/my-project --target 2</pre>
+
+<p>If your application uses the Google Maps APIs (i.e., MapView), be certain to
+select a Google APIs target.</p>
+
+<h3>Create an AVD that Uses the Android 1.6 Platform</h3>
+
+<p>Finally, you need to set up a new AVD that uses the Android 1.6 platform, so that
+you can run your application in the emulator.
+
+<p>To set up the new AVD, use the <code>android</code> tool, available in the
+<code>tools/</code> directory of the SDK. You can run the AVD manager by simply
+changing to the <code>tools/</code> directory and entering <code>android</code>
+at the command line. Click "New" to create the AVD and set its properties.</p>
+
+<p>When creating the AVD, make sure to select a target of "Android 1.6 - API
+Level 4". If your application uses the Google Maps APIs (MapView), select the
+target "Google APIs (Google Inc.) - API Level 4". </p>
+
+<p>For more information about running your application in an AVD, see <a
+href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Application (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running Your
+Application (other IDEs)</a>. </p>
+
+<p>For general information about AVDs, see the <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> document. </p>
+
+
+
+<div class="special">
+<p>If you have trouble migrating to the new version of the SDK, visit the
+<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
+to seek help from other Android developers.</p>
+</div>
+
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index 03eeb4bb8ddb..c2aa4541267a 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -5,6 +5,203 @@ page.title=SDK Release Notes
releases. For the latest known issues, please ensure that you're viewing this
page at <a href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.android.com/sdk/RELEASENOTES.html</a>.</p>
+<h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
+
+<p>This SDK provides updates to the development tools and Android system that
+you use to create applications for compliant Android-powered devices. </p>
+
+<h3>Release Overview</h3>
+
+<p>This SDK release includes several new features for developers. Highlights of the
+changes include: </p>
+
+ <ul>
+ <li>Emulator support for multiple screen sizes/densities, including new
+skins. </li>
+ <li>Android SDK and AVD Manager, a graphical UI to let you manage your
+SDK and AVD environments more easily. The tool lets you create and manage
+your <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> and download new SDK packages (such as platform versions and
+add-ons) into your environment.</li>
+ <li>Improved support for test packages in New Project Wizard</li>
+ <li>The reference documentation now offers a "Filter by API Level"
+capability that lets you display only the parts of the API that are actually
+available to your application, based on the <code>android:minSdkVersion</code>
+value the application declares in its manifest. For more information, see
+<a href="{@docRoot}guide/appendix/api-levels.html">Android API Levels</a></li>
+ </ul>
+
+<p>For details about the Android platforms included in the SDK &mdash; including
+bug fixes, features, and API changes &mdash; please read the Version Notes
+documents available at left. For a list of Android platforms included in this
+release, see the <a href="{@docRoot}sdk/1.6_r1/index.html">Download
+page</a>. Note that you can use the Android SDK and AVD Manager to download
+additional platforms.</p>
+
+<h3>Installation and Upgrade Notes</h3>
+
+<p>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.</p>
+
+<p>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. </p>
+
+<p>If you're installing the Android SDK for the first time, please see
+the instructions in <a
+href="{@docRoot}sdk/1.6_r1/installing.html">Installing the SDK</a>.
+
+<h3>ADT Plugin for Eclipse</h3>
+
+<p>An updated version of the ADT Plugin for Eclipse is available with the
+Android 1.6 SDK. The new version, ADT 0.9.3, provides several new
+features, including integrated support for the Android SDK and AVD Manager
+and zipalign tool. In addition, the New Project Wizard now
+lets you create a test package containing tests for your application. These
+features are described in the sections below. </p>
+
+<p>If you are developing in Eclipse with ADT and want to get started with the
+Android 1.6 SDK, you should download and install a compatible version of the ADT
+Plugin (0.9.3 or higher). </p>
+
+<p>The new version of ADT is downloadable from the usual remote update site or
+is separately downloadable as a .zip archive. For instructions on how to
+download the plugin, please see <a href="{@docRoot}sdk/1.6_r1/upgrading.html#UpdateAdt">Upgrading
+Your Eclipse Plugin</a>. </p>
+
+<h3>Android SDK and AVD Manager</h3>
+
+<p>The SDK offers a new tool called Android SDK and AVD Manager that lets you
+manage your SDK and AVD environments more efficiently. </p>
+
+<p>Using the tool, you can quickly check what Android platforms, add-ons,
+extras, and documentation packages are available in your SDK environment, what
+their versions are, and whether updated versions are available. You can then
+download one or more items from remote repositories and install them directly in
+your SDK environment. For example, the tool lets you obtain updates to SDK tools
+incrementally, as they are made available, without having to wait for the next
+SDK release. You can also download Android platform versions into your
+environment that were not included in the SDK package.</p>
+
+<p>The tool also lets you quickly create new AVDs, manage
+their properties, and run a target AVD from a single window. </p>
+
+<p>If you are developing in Eclipse with ADT, you can access the Android SDK
+and AVD Manager from the <strong>Window</strong> menu. </p>
+
+<p>If you are developing in another IDE, you can access the Android SDK and
+AVD Manager through the <code>android</code> command-line tool, located in the
+&lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by
+using the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+You can still use <code>android</code> commands to create and manage AVDs,
+including AVDs with custom hardware configurations.</p>
+
+<h3>Integration with zipalign</h3>
+
+<p>The Android system offers a performance optimization for installed
+application packages whose contained uncompressed files are all aligned on
+4-byte boundaries. For these .apks, the system can read the files by mmap'ing
+the zip file, rather than by copying all the data out of them. This reduces
+the amount of memory used by the application at run time. The SDK includes
+a tool called <code>zipalign</code> that you can run against your .apks, to
+align them properly and enable them to benefit from this optimization.</p>
+
+<p>The ADT Plugin and the Ant build tools both provide integrated support for
+aligning your application packages. After you build an .apk, the SDK tools can
+sign and then run <code>zipalign</code> against it. The SDK includes the
+standalone version of the <code>zipalign</code> tool, so you can run also run it
+manually from the command line if you choose. </p>
+
+<ul>
+ <li>If you are developing in Eclipse with ADT, support for
+<code>zipalign</code> is integrated into the Export Wizard. When you use the
+Wizard to export a signed application package, ADT signs and then automatically
+runs <code>zipalign</code> against the exported package. If you use the Wizard
+to export an unsigned application package, then it will not zipalign the
+package because zipalign must be performed only after the APK has been signed.
+You must manually sign and zipalign the package after export. </li>
+ <li>If you are developing using Ant and are compiling in release mode, the
+build tools will automatically sign and then <code>zipalign</code> the
+application package, provided that you have specified the location of a valid
+keystore in the build properties file. If you are compiling in debug mode, the
+build tools will sign the package with the debug key and then <code>zipalign</code>
+it.</li>
+ <li>To use <code>zipalign</code> manually, change to the SDK tools directory
+and use the command syntax <code>$ zipalign 4 &lt;infile&gt;
+&lt;outfile&gt;</code></li>
+</ul>
+
+<p>In general, note that you must <code>zipalign</code> an application only
+<em>after</em> it has been signed, as signing will disrupt the package
+alignment.</p>
+
+<h3>Support for Test Packages in New Project Wizard</h3>
+
+<p>The New Project Wizard available in the ADT 0.9.3 now lets you add a test
+package containing Instrumentation or other classes of tests while you are
+creating or importing a new Android application project. </p>
+
+<h3>New USB Driver for Windows</h3>
+
+<p>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.
+
+<p>The Windows version of the Android 1.6 SDK includes a new, WinUSB-based
+driver that you can install. The driver is compatible with both 32- and 64-bit
+versions of Windows XP and Vista. The driver represents an upgrade from the USB
+driver included in previous Android SDKs, although installing the new driver is
+not required. </p>
+
+<p>If you installed the USB driver from a previous SDK release and it is working
+properly, you do not need to upgrade to the new driver. However, we recommend
+upgrading if you have had any problems with the older driver or simply want
+to upgrade to the latest version.</p>
+
+<p>The USB driver files are located in the
+<code>&lt;SDK&gt;/usb_driver</code> directory. For driver installation or
+upgrade instructions, see <a
+href="{@docRoot}guide/developing/device.html#WinUsbDriver">Installing the WinUSB
+Driver</a>.</p>
+</p>
+
+<h3>Emulator Skins, Android 1.6 Platform</h3>
+
+<p>The Android 1.6 platform included in the SDK provides a new set of emulator
+skins, including: </p>
+
+<ul>
+ <li>QVGA &mdash; 240 x 320, low density (120 dpi)</li>
+ <li>HVGA &mdash; 320 x 480, medium density (160 dpi)</li>
+ <li>WVGA800 &mdash; 480 x 800, high density (240 dpi)</li>
+ <li>WVGA854 &mdash; 480 x 854, high density (240 dpi)</li>
+</ul>
+
+<p>Besides these defaults, You can also create an AVD that overrides the default
+density for each skin, to create any combination of resolution/density (WVGA
+with medium density, for instance). To do so, use the <code>android</code> tool
+command line to create a new AVD that uses a custom hardware configuration. See
+<a href="{@docRoot}guide/developing/tools/avd.html#createavd">Creating an
+AVD</a> for more information.</p>
+
+<h3>Other Notes and Resolved Issues</h3>
+
+<ul>
+ <li>This SDK release adds support for Eclipse 3.5 (Galileo) and deprecates
+support for Eclipse 3.3 (Europa). </li>
+ <li>We regret to inform developers that Android 1.6 will not include support
+for <a href="http://www.ietf.org/rfc/rfc2549">RFC 2549</a></li>
+ <li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK
+only) has been fixed.</li>
+</ul>
+
+
<h2 id="1.5_r3">Android 1.5 SDK, Release 3</h2>
<p>Provides an updated Android 1.5 system image that includes permissions
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index d7b9ac328082..3eb68316d103 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -26,24 +26,24 @@ page</a>.
</tr>
<tr>
- <td>0.9.2</td>
- <td><a href="http://dl-ssl.google.com/android/ADT-0.9.2.zip">ADT-0.9.2.zip</a></td>
+ <td>0.9.3</td>
+ <td><a href="http://dl-ssl.google.com/android/ADT-0.9.3.zip">ADT-0.9.3.zip</a></td>
<td><nobr>bytes</nobr></td>
<td><nobr></nobr></td>
- <td><nobr>Required for users of Android 1.6 SDK (and later releases). Updated from 0.9.1. <em><nobr>August 2009</nobr></em></td>
+ <td><nobr>Required for users of Android 1.6 SDK (and later releases). Updated from 0.9.1. <em><nobr>September 2009</nobr></em></td>
</tr>
<tr class="alt-color">
<td>0.9.1</td>
<td><a href="http://dl-ssl.google.com/android/ADT-0.9.1.zip">ADT-0.9.1.zip</a></td>
<td><nobr>2916093 bytes</nobr></td>
<td><nobr>e7b2ab40414ac98</nobr></td>
- <td><nobr>Required for users of Android 1.5 SDK (and later releases). Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
+ <td><nobr>Required for users of Android 1.5 SDK. Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
</tr>
<tr>
<td>0.8.0</td>
<td><a href="http://dl-ssl.google.com/android/ADT-0.8.0.zip">ADT-0.8.0.zip</a></td>
<td colspan="2"><nobr>&nbsp;</nobr></td>
- <td><nobr>Required for users of Android 1.1 SDK and Android 1.0 SDK. <em><nobr>23 Sep 2008</nobr></em></td>
+ <td><nobr>Required for users of Android 1.0/1.1 SDKs. <em><nobr>23 Sep 2008</nobr></em></td>
</tr>
</table>
@@ -63,20 +63,19 @@ Feature ID column and look at its version number.</p>
<tr>
<td>0.7.1</td>
- <td>Required for users of Android 0.9 SDK beta. As of this version, <b>Eclipse 3.2 is no longer supported.</b>
- Please upgrade to Eclipse Ganymede (3.4) or Europa (3.3) if you are still using 3.2. <em><nobr>18 Aug 2008</nobr></em></td>
+ <td>Required for users of the Android 0.9 SDK beta. <em><nobr>18 Aug 2008</nobr></em></td>
</tr>
<tr>
<td>0.4.0</td>
- <td>Required if you are using the M5 SDK. See the SDK Release Notes for details on changes and enhancements in this version. <em><nobr>12 Feb 2008</nobr></em></td>
+ <td>Required for users of the Android M5 Early Look SDK. <em><nobr>12 Feb 2008</nobr></em></td>
</tr>
<tr>
<td>0.3.3</td>
- <td>Some significant enhancements (see m3-rc37 SDK Release Notes). <em><nobr>14 Dec 2007</nobr></em></td>
+ <td>Required for users of the Android M3-RC37 Early Look SDK. <em><nobr>14 Dec 2007</nobr></em></td>
</tr>
<tr>
<td>0.3.1</td>
- <td>Initial Release. Required for Android m3-rc20 SDK and Android m3-rc22 SDK.<em><nobr>21 Nov 2007</nobr></em></td>
+ <td>Initial Release. Required for users of the Android M3-RC20/22 SDKs.<em><nobr>21 Nov 2007</nobr></em></td>
</tr>
</table>
</p>
diff --git a/docs/html/sdk/android-1.6-highlights.jd b/docs/html/sdk/android-1.6-highlights.jd
new file mode 100644
index 000000000000..b4a97d7e13e5
--- /dev/null
+++ b/docs/html/sdk/android-1.6-highlights.jd
@@ -0,0 +1,213 @@
+page.title=Android 1.6 Platform Highlights
+sdk.date=September 2009
+
+@jd:body
+
+
+<style type="text/css">
+#jd-content div.screenshot,
+#jd-content div.video {
+ float:right;
+ clear:right;
+ padding:15px 70px;
+ font-size:.9em;
+ font-weight:bold;
+ line-height:1.7em;
+}
+#jd-content div.video {
+ padding-top:0;
+ margin-top:-15px;
+}
+#jd-content div.screenshot img {
+ margin:0;
+}
+</style>
+
+<div class="video">
+<object width="293" height="180">
+<param name="movie" value="http://www.youtube.com/v/MBRFkLKRwFw&hl=en&fs=1&"></param>
+<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
+<embed src="http://www.youtube.com/v/MBRFkLKRwFw&hl=en&fs=1&" type="application/x-shockwave-flash"
+allowscriptaccess="always" allowfullscreen="true" width="293" height="180"></embed>
+</object>
+</div>
+
+
+<p>The Android 1.6 platform introduces new features for users and developers.
+This page provides an overview of some new features and technologies.</p>
+
+<ul>
+ <li><a href="#UserFeatures">New User Features</a></li>
+ <li><a href="#AndroidMarketUpdates">Android Market Updates</a></li>
+ <li><a href="#PlatformTechnologies">New Platform Technologies</a></li>
+</ul>
+
+
+
+<h2 id="UserFeatures" style="clear:right">New User Features</h2>
+
+<!-- screenshots float right -->
+
+<div class="screenshot">
+<img src="images/search.png" class="screenshot" alt="" /><br/>
+Quick Search Box
+</div>
+
+<div class="screenshot">
+<img src="images/camera.png" class="screenshot" alt="" /><br/>
+New Camera/Camcorder UI
+</div>
+
+<div class="screenshot">
+<img src="images/battery.png" class="screenshot" alt="" /><br/>
+Battery Usage Indicator
+</div>
+
+
+<h3 id="QuickSearchBox">Quick Search Box for Android</h3>
+
+<p>Android 1.6 includes a redesigned search framework that provides a quick,
+effective, and consistent way for users to search across multiple sources&mdash;such as
+browser bookmarks &amp; history, contacts, and the web&mdash;directly from
+the home screen.</p>
+
+<p>The system constantly learns which search results are more relevant based on what is
+clicked. So popular contacts or apps that have previously been picked will bubble up to
+the top when a user types the first few letters of a relevant query.</p>
+
+<p>The search framework also provides developers a way to easily expose relevant
+content from their applications in Quick Search Box.</p>
+
+<h3 id="Camera">Camera, Camcorder, and Gallery</h3>
+
+<p>An updated user interface provides an integrated camera, camcorder, and gallery experience.
+Users can quickly toggle between still and video capture modes. Additionally, the gallery
+enables users to select multiple photos for deletion.</p>
+
+<p>Android 1.6 also provides a much faster camera experience.
+Compared to the previous release, launching the camera is now 39% faster,
+and there is a 28% improvement in the time from completing one shot to the next.</p>
+
+
+<h3 id="VPN">VPN, 802.1x</h3>
+
+<p>A new Virtual Private Network (VPN) control panel in Settings allows users
+to configure and connect to the following types of VPNs:</p>
+
+<ul>
+ <li>L2TP/IPSEC pre-shared key based VPN</li>
+ <li>L2TP/IPsec certificate based VPN</li>
+ <li>L2TP only VPN</li>
+ <li>PPTP only VPN</li>
+</ul>
+
+
+<h3 id="Battery">Battery usage indicator</h3>
+
+<p>A new battery usage screen lets users see which apps and services are consuming
+battery power. If the user determines that a particular service or application is
+using too much power, they can take action to save the battery by
+adjusting settings, stopping the application, or uninstalling the application.</p>
+
+
+<h3 id="A11y">Accessibility</h3>
+
+<p>Users will be able to download new accessibility services built
+on the new accessibility framework and enable them in Settings.</p>
+
+
+
+
+<h2 id="AndroidMarketUpdates" style="clear:right">Android Market Updates</h2>
+
+<div class="screenshot" style="margin-top:-35px">
+<img src="images/market.png" class="screenshot" alt="" /><br/>
+New Android Market UI
+</div>
+
+<p>For devices with Android Market, the latest version improves the overall user experience and makes
+it easier for users to discover great apps and games from developers.</p>
+
+<ul>
+ <li>At the homescreen, users can choose among <em>Apps</em>, <em>Games</em>, and <em>Downloads</em>.</li>
+ <li>Inside a category, users can explore titles that are <em>Top paid</em>, <em>Top free</em>, and <em>Just in</em>.</li>
+ <li>For each title, users can now see screenshots submitted by developers in addition to
+ reviews from other users.</li>
+</ul>
+
+
+
+
+<h2 id="PlatformTechnologies" style="clear:right">New Platform Technologies</h2>
+
+<h3 id="SearchFramework">Expanded Search Framework</h3>
+
+<p>The Android search framework has been redesigned and expanded to provide
+third-party applications the opportunity to surface
+content from their applications in Quick Search Box, the global search tool.
+To do this, developers will need to make their app "searchable" and provide
+suggestions in response to user queries.
+To enable application search suggestions, users simply select each application from which
+they'd like to receive suggestions, under Searchable items in the Search settings.</p>
+
+
+<h3 id="TTS">Text-to-speech engine</h3>
+
+<p>Android 1.6 features a multi-lingual speech synthesis engine called Pico.
+It allows any Android application to "speak" a string of text with an accent that matches the language.
+The engine supports the following languages: English (American and British accents), French,
+Italian, German and Spanish. If you're using a T-Mobile G1 or Dream device, you'll need to download the
+SpeechSynthesis Data Installer from Android Market, which includes the "voices" needed by the
+text-to-speech engine.</p>
+
+
+<h3 id="Gestures">Gestures</h3>
+
+<p>A new gestures framework provides application developers with a framework for creating, storing,
+loading, and recognizing gestures and associating them with specific actions.</p>
+
+<p>Developers can use the new GestureBuilder tool included in the Android 1.6 SDK to generate libraries
+of gestures to include with their application.</p>
+
+
+<h3 id="A11y">Accessibility</h3>
+
+<p>Android 1.6 provides a new accessibility framework.
+With this framework, developers can create accessibility plugins that respond to user input,
+such as making a sound when a new window is shown, vibrating when navigating to the top of
+a list, and providing spoken feedback.</p>
+
+
+<h3 id="Screens">Expanded support for screen densities and resolutions</h3>
+
+<p>Android 1.6 adds screen support that enables applications to be rendered properly on different
+display resolutions and densities. Developers can also specify the types of screens supported by their
+application.</p>
+
+
+<h3 id="CDMA">Telephony support for CDMA</h3>
+
+<p>Android 1.6 includes support for CDMA in the telephony stack.</p>
+
+
+<h3 id="OpenCore">New version of OpenCore</h3>
+
+<p>Android 1.6 includes the updated OpenCore 2 media engine, which has:</p>
+
+<ul>
+ <li>Support for OpenMAX encoders</li>
+ <li>Support for additional audio codecs in AuthorEngine</li>
+ <li>Improved buffering model supports shared buffers allocated in the decoder</li>
+</ul>
+
+<h3 id="LinuxKernel">2.6.29 Linux kernel</h3>
+
+<p>Android 1.6 upgrades the Linux kernel from 2.6.27 to 2.6.29.</p>
+
+
+<h3 id="DeveloperAPIs">New Framework APIs</h3>
+
+<p>For a detailed overview of new APIs, see the
+<a href="{@docRoot}sdk/android-1.6.html#api-changes">Version Notes</a>.
+For a complete report of all API changes, see the
+<a href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
new file mode 100644
index 000000000000..5dd2d953cc90
--- /dev/null
+++ b/docs/html/sdk/android-1.6.jd
@@ -0,0 +1,324 @@
+page.title=Android 1.6 Version Notes
+
+@jd:body
+
+<p>
+<em>Date:</em> September 2009<br />
+<em>API Level:</em>&nbsp;<strong>4</strong></p>
+
+
+<p>This document provides version notes for the Android 1.6 system image included in the SDK. </p>
+
+<ul>
+<li><a href="#overview">Overview</a>
+<li><a href="#features">Release Highlights</a>
+<li><a href="#apps">Built-in Applications</a>
+<li><a href="#locs">Locales</a>
+<li><a href="#api-changes">API Changes</a>
+</ul>
+
+<h2 id="overview">Overview</h2>
+
+<p>The Android 1.6 system delivered in the SDK (as library and system image) is
+the development counterpart to the Android 1.6 production system image, which is
+deployable to Android-powered handsets starting October 2009. The system is
+fully compliant and includes no external libraries. </p>
+
+<p>The Android 1.6 system delivers an updated version of the framework
+API. As with previous versions, the Android 1.6 API
+is assigned an integer identifier &mdash; <strong>4</strong> &mdash; 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. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p>
+
+<h2 id="features">Highlights</h2>
+
+<p>For a list of new user features and platform highlights, see the <a
+href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform
+Highlights</a> document.</p>
+
+<h2 id="apps">Built-in Applications</h2>
+
+<p>The system image includes these built-in applications:</p>
+ <ul>
+ <li>Alarm Clock</li>
+ <li>Browser</li>
+ <li>Calculator</li>
+ <li>Camcorder</li>
+ <li>Camera</li>
+ <li>Contacts</li>
+ <li>Custom Locale (developer app)</li>
+ <li>Dev Tools (developer app)</li>
+ <li>Dialer</li>
+ <li>Email</li>
+ <li>Gallery</li>
+ <li>Gestures Builder</li>
+ <li>IME for Japanese text input</li>
+ <li>Messaging</li>
+ <li>Music</li>
+ <li>Settings</li>
+ <li>Spare Parts (developer app)</li>
+ </ul>
+
+<h2 id="locs">Locales</h2>
+
+<p>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.6 system image are listed below (with
+<em>language</em>_<em>country/region</em> locale descriptor).</p>
+
+<table style="border:0;">
+<tr>
+<td style="border:0">
+<ul style="margin-bottom:0;">
+<li>Arabic, Egypt (ar_EG)</li>
+<li>Arabic, Israel (ar_IL)</li>
+<li>Bulgarian, Bulgaria (bg_BG)</li>
+<li>Chinese, PRC (zh_CN)</li>
+<li>Chinese, Taiwan (zh_TW)</li>
+<li>Croatian, Croatia (hr_HR)</li>
+<li>Czech, Czech Republic (cs_CZ)</li>
+<li>Danish, Denmark (da_DK)</li>
+<li>Dutch, Netherlands (nl_NL)</li>
+<li>Dutch, Belgium (nl_BE)</li>
+<li>English, US (en_US)</li>
+<li>English, Britain (en_GB)</li>
+<li>English, Canada (en_CA)</li>
+<li>English, Australia (en_AU)</li>
+<li>English, India (en_IN)</li>
+<li>English, Ireland (en_IE)</li>
+<li>English, New Zealand (en_NZ)</li>
+<li>English, Singapore (en_SG)</li>
+<li>English, South Africa (en_ZA)</li>
+<li>Finnish, Finland (fi_FI)</li>
+<li>French, France (fr_FR)</li>
+<li>French, Belgium (fr_BE)</li>
+<li>French, Canada (fr_CA)</li>
+<li>French, Switzerland (fr_CH)</li>
+<li>German, Germany (de_DE)</li>
+<li>German, Austria (de_AT)</li>
+<li>German, Switzerland (de_CH)</li>
+<li>German, Liechtenstein (de_LI)</li>
+</ul>
+</td>
+<td style="border:0;padding-left:5em;">
+<ul style="margin-bottom:0;">
+<li>Greek, Greece (el_GR)</li>
+<li>Hindi, India (hi_IN)</li>
+<li>Hungarian, Hungary (hu_HU)</li>
+<li>Indonesian, Indonesia (id_ID)</li>
+<li>Italian, Italy (it_IT)</li>
+<li>Italian, Switzerland (it_CH)</li>
+<li>Japanese, Japan (ja_JP)</li>
+<li>Korean, Korea (ko_KR)</li>
+<li>Latvian, Latvia (lv_LV)</li>
+<li>Lithuanian, Lithuania (lt_LT)</li>
+<li>Norwegian Bokmål, Norway (nb_NO)</li>
+<li>Polish, Poland (pl_PL)</li>
+<li>Portuguese, Brazil (pt_BR)</li>
+<li>Portuguese, Portugal (pt_PT)</li>
+<li>Romanian, Romania (ro_RO)</li>
+<li>Russian, Russia (ru_RU)</li>
+<li>Serbian, Serbia (sr_RS)</li>
+<li>Slovak, Slovakia (sk_SK)</li>
+<li>Slovenian, Slovenia (sl_SI)</li>
+<li>Spanish, Spain (es_ES)</li>
+<li>Spanish, US (es_US)</li>
+<li>Swedish, Sweden (sv_SE)</li>
+<li>Thai, Thailand (th_TH)</li>
+<li>Tagalog, Philippines (tl_PH)</li>
+<li>Turkish, Turkey (tr_TR)</li>
+<li>Ukranian, Ukrania (uk_UA)</li>
+<li>Vietnamese, Vietnam (vi_VN)</li>
+</ul>
+</td>
+</tr>
+</table>
+
+<p>Localized UI strings match the locales that are accessible
+through Settings.</p>
+
+<h2 id="api-changes">API Changes</h2>
+
+<h4 id="UIFramework">UI framework</h4>
+ <ul>
+ <li>New classes in {@link android.view.animation}
+ to control the behavior of animations:
+ <ul>
+ <li><code>AnticipateInterpolator</code></li>
+ <li><code>AnticipateOvershootInterpolator</code></li>
+ <li><code>BounceInterpolator</code></li>
+ <li><code>OvershootInterpolator</code></li>
+ </ul>
+ </li>
+ <li>New XML attribute <code>android:onClick</code> to specify a View's
+<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a>
+from a layout file.
+ </li>
+ <li>New support for dealing with varying screen densities. Density
+information is associated with Bitmap and Canvas for performing the
+correct scaling. The framework will automatically scale bitmaps and
+nine-patches based on the density the resource was found under and the
+density of the screen, etc.
+ </li>
+ </ul>
+
+<h4>Search framework</h4>
+ <ul>
+ <li>Applications can now expose relevant content to users as search
+suggestions in the Quick Search Box, a new device-wide search capability that is
+accessible from the home screen. To support this, the search framework adds new
+attributes to the searchable metadata file. For complete information, see the
+{@link android.app.SearchManager SearchManager} documentation.
+ </li>
+ </ul>
+
+<h4>Accessibility framework</h4>
+ <ul>
+ <li>New {@link android.view.accessibility android.accessibility} package
+that includes classes for capturing accessibility events and forwarding them to
+an {@link android.accessibilityservice AccessibilityService} handler. </li>
+ <li>New {@link android.accessibilityservice AccessibilityService} package
+that lets your application track user events and provide visual, audible, or
+haptic feedback to the user. </li>
+ </ul>
+
+<h4>Gesture Input</h4>
+ <ul>
+ <li>New {@link android.gesture gesture} API for creating, recognizing,
+loading, and saving gestures.</li>
+ </ul>
+
+<h4>Text-to-speech</h4>
+ <ul>
+ <li>New {@link android.speech.tts android.speech.tts} package provides
+classes for synthesizing speech from text, for immediate playback or to create a
+sound file.</li>
+ </ul>
+
+<h4>Graphics</h4>
+ <ul>
+ <li>Classes in {@link android.graphics android.graphics} now support scaling
+for different screen densities.</li>
+ </ul>
+
+<h4>Telephony</h4>
+ <ul>
+ <li>New {@link android.telephony.SmsManager SmsManager} and other classes
+for sending and receiving SMS messages.</li>
+ </ul>
+
+<h4>Utilities</h4>
+ <ul>
+ <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
+determining the density of the current device screen.</li>
+ </ul>
+
+<h4 id="AndroidManifest">Android Manifest elements</h4>
+
+ <ul>
+ <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code
+ &lt;supports-screens>}</a> element lets you specify the device screen sizes that your
+ application is designed and tested to support, where "size" is a combination
+ of resolution and density. If your application is run on a device whose screen
+ size is not specified in the <code>&lt;supports-screen&gt;</code> element, the system
+ displays the application in <em>compatibility mode</em>, which performs best-effort scaling
+ of the application UI to match the resolution and density of the screen.
+
+ <p>The attributes available for defining an application's screen support are:
+
+ <ul>
+
+ <li><code>smallScreen</code>: Boolean value that indicates whether the
+ application is designed to run on devices with small screens.
+ Examples: QVGA low density; VGA high density.
+ </li>
+ <li><code>normalScreens</code>: Boolean value that indicates whether
+ the application is designed to run on devices with normal screens.
+ Examples: WQVGA low density; HVGA medium density; WVGA high density.
+ </li>
+ <li><code>largeScreens</code>: Boolean value that indicates whether
+ the application is designed to run on devices with significantly
+ larger screens, such that special care may be required on
+ the application's part to make proper use of the screen area.
+ Examples: VGA medium density; WVGA medium density.
+ </li>
+ <li><code>anyDensity</code>: Boolean value that indicates whether
+ the application can accommodate any screen density.
+ </li>
+ <li><code>resizable</code>: Boolean value that indicates whether
+ the application can expand its layout to fit slightly larger screens.
+ </li>
+ </ul>
+ </p>
+ </li>
+
+ <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}</a>
+ element lets an application specify hardware (or other)
+ features that it requires to function normally. When an application
+ specifies such features, the system allows the application to be installed only
+ on devices that offer the required features. The element supports these
+ attributes:
+ <ul>
+ <li><code>name</code>: The name of the feature required by the application. Currently accepts
+ "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a
+ camera and camera autofocus are required, respectively.</li>
+ <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li>
+ </ul>
+ </li>
+ <li>New attributes for the
+ <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code &lt;uses-sdk>}</a> element:
+ <ul>
+ <li><code>maxSdkVersion</code>: This indicates the maximum API Level on which an application is
+ designed to run. If an application declares this attribute, the Android system prevents the user
+ from installing the application if the system's API Level is higher than the value specified in
+ this attribute. </li>
+ <li><code>targetSdkVersion</code>: This indicates the API Level that the application is targeting.
+ It is able to run on older versions (down to minSdkVersion), but was explicitly tested to
+ work with the version specified here. Specifying this version allows the platform to
+ disable compatibility code that is not required or enable newer features that are not
+ available to older applications. </li>
+ </ul>
+ </li>
+
+ </li>
+ </ul>
+
+<h4>New Permissions</h4>
+
+ <ul>
+ <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE
+ CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi
+ Multicast mode.
+ </li>
+ <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the
+ global search system to access the data of a specified content provider.
+ </li>
+ <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}:
+ Allows an application to install a location provider into the Location Manager.
+ </li>
+ <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}:
+ Allows an application to read (but not write) the user's browsing history
+ and bookmarks.
+ </li>
+ <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}:
+ Allows an application to write (but not read) the user's browsing history
+ and bookmarks.
+ </li>
+ <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}:
+ Allows an application to write to external storage. Applications using API Level 3
+ and lower will be implicitly granted this permission (and this will be visible to
+ the user); Applications using API Level 4 or higher must explicitly request this
+ permission.
+ </li>
+ </ul>
+
+
+<h3 id="api-diff">API Change Details</h3>
+
+<p>For a detailed view of API changes in Android 1.6 (API Level 4), see the <a
+href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p>
diff --git a/docs/html/sdk/api_diff/4/changes.html b/docs/html/sdk/api_diff/4/changes.html
index da18ae66cfe8..c1b66a1ef24f 100644
--- a/docs/html/sdk/api_diff/4/changes.html
+++ b/docs/html/sdk/api_diff/4/changes.html
@@ -4,11 +4,11 @@
<meta name="generator" content="JDiff v1.1.0">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
-<!-- on Wed Aug 05 19:20:54 PDT 2009 -->
+<!-- on Wed Sep 02 18:26:54 PDT 2009 -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
-API Differences between 3 and Donut
+API Differences between 3 and 4
</TITLE>
<link href="../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
index 048f928c0c60..cb7b0f9b6907 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
@@ -69,6 +69,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ACCESSIBILITY_ENABLED" class="hiddenlink" target="rightframe">ACCESSIBILITY_ENABLED</A>
@@ -157,6 +158,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.backupAgent" class="hiddenlink" target="rightframe">backupAgent</A>
@@ -200,6 +202,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.CHANGE_WIFI_MULTICAST_STATE" class="hiddenlink" target="rightframe">CHANGE_WIFI_MULTICAST_STATE</A>
@@ -262,6 +265,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.graphics.BitmapFactory.html#android.graphics.BitmapFactory.decodeResourceStream_added(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, android.graphics.Rect, android.graphics.BitmapFactory.Options)" class="hiddenlink" target="rightframe"><b>decodeResourceStream</b>
@@ -316,952 +320,6 @@ body{overflow:auto;}
&nbsp;&nbsp;<nobr><A HREF="android.view.Window.Callback.html#android.view.Window.Callback.dispatchPopulateAccessibilityEvent_added(android.view.accessibility.AccessibilityEvent)" class="hiddenlink" target="rightframe">type&nbsp;<b>
(<code>AccessibilityEvent</code>)</b>&nbsp;in&nbsp;android.view.Window.Callback
</A></nobr><br>
-<!-- Field donut_resource_pad1 -->
-<i>donut_resource_pad1</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-<i>donut_resource_pad10</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-<i>donut_resource_pad11</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-<i>donut_resource_pad12</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-<i>donut_resource_pad13</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-<i>donut_resource_pad14</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-<i>donut_resource_pad15</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-<i>donut_resource_pad16</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-<i>donut_resource_pad17</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-<i>donut_resource_pad18</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-<i>donut_resource_pad19</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-<i>donut_resource_pad2</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-<i>donut_resource_pad20</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-<i>donut_resource_pad21</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-<i>donut_resource_pad22</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-<i>donut_resource_pad23</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-<i>donut_resource_pad24</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-<i>donut_resource_pad25</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-<i>donut_resource_pad26</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-<i>donut_resource_pad27</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-<i>donut_resource_pad28</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-<i>donut_resource_pad29</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-<i>donut_resource_pad3</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-<i>donut_resource_pad30</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-<i>donut_resource_pad31</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad32 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<!-- Field donut_resource_pad33 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<!-- Field donut_resource_pad34 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<!-- Field donut_resource_pad35 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<!-- Field donut_resource_pad36 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<!-- Field donut_resource_pad37 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<!-- Field donut_resource_pad38 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<!-- Field donut_resource_pad39 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-<i>donut_resource_pad4</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad40 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-<i>donut_resource_pad5</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-<i>donut_resource_pad6</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-<i>donut_resource_pad7</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-<i>donut_resource_pad8</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-<i>donut_resource_pad9</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<!-- Field dropDownHeight -->
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
@@ -1287,6 +345,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES" class="hiddenlink" target="rightframe">ENABLED_ACCESSIBILITY_SERVICES</A>
@@ -1322,6 +381,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.fadeDuration" class="hiddenlink" target="rightframe">fadeDuration</A>
@@ -1384,6 +444,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.gestureColor" class="hiddenlink" target="rightframe">gestureColor</A>
@@ -1557,6 +618,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>ImageSpan</i><br>
@@ -1638,6 +700,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.largeScreens" class="hiddenlink" target="rightframe">largeScreens</A>
@@ -1667,6 +730,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.os.Build.html#android.os.Build.MANUFACTURER" class="hiddenlink" target="rightframe">MANUFACTURER</A>
@@ -1696,6 +760,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>NinePatchDrawable</i><br>
@@ -1729,6 +794,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.onCallbackDied_added(E, java.lang.Object)" class="hiddenlink" target="rightframe"><b>onCallbackDied</b>
@@ -1763,6 +829,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.content.Intent.html#android.content.Intent.parseUri_added(java.lang.String, int)" class="hiddenlink" target="rightframe"><b>parseUri</b>
@@ -1806,6 +873,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.queryAfterZeroResults" class="hiddenlink" target="rightframe">queryAfterZeroResults</A>
@@ -1832,6 +900,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.READ_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">READ_HISTORY_BOOKMARKS</A>
@@ -1870,6 +939,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.screenLayout" class="hiddenlink" target="rightframe">screenLayout</A>
@@ -2055,6 +1125,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>targetSdkVersion</i><br>
@@ -2330,6 +1401,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.uncertainGestureColor" class="hiddenlink" target="rightframe">uncertainGestureColor</A>
@@ -2365,6 +1437,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#U"><font size="-2">U</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.view.html#ViewDebug.FlagToString" class="hiddenlink" target="rightframe"><b>ViewDebug.FlagToString</b></A><br>
@@ -2399,6 +1472,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.style.html#android.R.style.Widget_ProgressBar_Inverse" class="hiddenlink" target="rightframe">Widget_ProgressBar_Inverse</A>
@@ -2417,6 +1491,34 @@ body{overflow:auto;}
<!-- Field WRITE_HISTORY_BOOKMARKS -->
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.WRITE_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">WRITE_HISTORY_BOOKMARKS</A>
</nobr><br>
+<!-- Class ZoomButtonsController -->
+<A NAME="Z"></A>
+<br><font size="+2">Z</font>&nbsp;
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#Q"><font size="-2">Q</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<!-- Class ZoomButtonsController.OnZoomListener -->
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
index d20054b73053..4c52602cfe82 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
@@ -71,6 +71,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ACCESSIBILITY_ENABLED" class="hiddenlink" target="rightframe">ACCESSIBILITY_ENABLED</A>
@@ -228,6 +229,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.backupAgent" class="hiddenlink" target="rightframe">backupAgent</A>
@@ -291,6 +293,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>calculateLength</i><br>
@@ -385,6 +388,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>Date</i><br>
@@ -464,952 +468,6 @@ body{overflow:auto;}
<!-- Method divideMessage -->
<nobr><A HREF="android.telephony.gsm.SmsManager.html#android.telephony.gsm.SmsManager.divideMessage_changed(java.lang.String)" class="hiddenlink" target="rightframe">divideMessage
(<code>String</code>)</A></nobr><br>
-<!-- Field donut_resource_pad1 -->
-<i>donut_resource_pad1</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-<i>donut_resource_pad10</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-<i>donut_resource_pad11</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-<i>donut_resource_pad12</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-<i>donut_resource_pad13</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-<i>donut_resource_pad14</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-<i>donut_resource_pad15</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-<i>donut_resource_pad16</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-<i>donut_resource_pad17</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-<i>donut_resource_pad18</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-<i>donut_resource_pad19</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-<i>donut_resource_pad2</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-<i>donut_resource_pad20</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-<i>donut_resource_pad21</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-<i>donut_resource_pad22</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-<i>donut_resource_pad23</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-<i>donut_resource_pad24</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-<i>donut_resource_pad25</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-<i>donut_resource_pad26</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-<i>donut_resource_pad27</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-<i>donut_resource_pad28</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-<i>donut_resource_pad29</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-<i>donut_resource_pad3</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-<i>donut_resource_pad30</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-<i>donut_resource_pad31</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad32 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<!-- Field donut_resource_pad33 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<!-- Field donut_resource_pad34 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<!-- Field donut_resource_pad35 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<!-- Field donut_resource_pad36 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<!-- Field donut_resource_pad37 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<!-- Field donut_resource_pad38 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<!-- Field donut_resource_pad39 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-<i>donut_resource_pad4</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad40 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-<i>donut_resource_pad5</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-<i>donut_resource_pad6</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-<i>donut_resource_pad7</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-<i>donut_resource_pad8</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-<i>donut_resource_pad9</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<!-- Class Drawable -->
<A HREF="android.graphics.drawable.Drawable.html" class="hiddenlink" target="rightframe">Drawable</A><br>
<!-- Field dropDownHeight -->
@@ -1439,6 +497,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES" class="hiddenlink" target="rightframe">ENABLED_ACCESSIBILITY_SERVICES</A>
@@ -1494,6 +553,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.fadeDuration" class="hiddenlink" target="rightframe">fadeDuration</A>
@@ -1564,6 +624,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.gestureColor" class="hiddenlink" target="rightframe">gestureColor</A>
@@ -1817,6 +878,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>ImageSpan</i><br>
@@ -2030,6 +1092,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.inputmethodservice.KeyboardView.html" class="hiddenlink" target="rightframe">KeyboardView</A><br>
@@ -2057,6 +1120,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.largeScreens" class="hiddenlink" target="rightframe">largeScreens</A>
@@ -2103,6 +1167,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.Manifest.permission.html" class="hiddenlink" target="rightframe">Manifest.permission</A><br>
@@ -2159,6 +1224,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.NinePatch.html" class="hiddenlink" target="rightframe">NinePatch</A><br>
@@ -2204,6 +1270,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.onCallbackDied_added(E, java.lang.Object)" class="hiddenlink" target="rightframe"><b>onCallbackDied</b>
@@ -2246,6 +1313,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
@@ -2302,6 +1370,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.queryAfterZeroResults" class="hiddenlink" target="rightframe">queryAfterZeroResults</A>
@@ -2330,27 +1399,14 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<!-- Class R.array -->
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<!-- Class R.attr -->
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<!-- Class R.color -->
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<!-- Class R.dimen -->
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<!-- Class R.drawable -->
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<!-- Class R.id -->
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<!-- Class R.integer -->
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<!-- Class R.layout -->
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<!-- Class R.string -->
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<!-- Class R.style -->
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<!-- Field READ_HISTORY_BOOKMARKS -->
@@ -2412,6 +1468,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.screenLayout" class="hiddenlink" target="rightframe">screenLayout</A>
@@ -2699,6 +1756,7 @@ body{overflow:auto;}
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.widget.TabHost.TabSpec.html" class="hiddenlink" target="rightframe">TabHost.TabSpec</A><br>
@@ -2989,6 +2047,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.attr.html#android.R.attr.uncertainGestureColor" class="hiddenlink" target="rightframe">uncertainGestureColor</A>
@@ -3026,6 +2085,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#U"><font size="-2">U</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.view.VelocityTracker.html" class="hiddenlink" target="rightframe">VelocityTracker</A><br>
@@ -3068,6 +2128,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#U"><font size="-2">U</font></a>
<a href="#V"><font size="-2">V</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<nobr><A HREF="android.R.style.html#android.R.style.Widget_ProgressBar_Inverse" class="hiddenlink" target="rightframe">Widget_ProgressBar_Inverse</A>
@@ -3090,6 +2151,36 @@ body{overflow:auto;}
<!-- Field WRITE_HISTORY_BOOKMARKS -->
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.WRITE_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">WRITE_HISTORY_BOOKMARKS</A>
</nobr><br>
+<!-- Class ZoomButtonsController -->
+<A NAME="Z"></A>
+<br><font size="+2">Z</font>&nbsp;
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#Q"><font size="-2">Q</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<!-- Class ZoomButtonsController.OnZoomListener -->
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
index 8195523e9523..8b9e6972d5bb 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
@@ -705,24 +705,10 @@ body{overflow:auto;}
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<!-- Class R.array -->
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<!-- Class R.attr -->
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<!-- Class R.color -->
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<!-- Class R.dimen -->
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<!-- Class R.drawable -->
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<!-- Class R.id -->
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<!-- Class R.integer -->
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<!-- Class R.layout -->
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<!-- Class R.string -->
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<!-- Class R.style -->
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<!-- Field RELEASE -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
index b0389a165745..76a009536961 100644
--- a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
+++ b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
index 628ef0709619..10347eb22770 100644
--- a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
+++ b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.anim.html b/docs/html/sdk/api_diff/4/changes/android.R.anim.html
index cce8c29daf90..93459a581734 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.anim.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.anim.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -105,153 +105,6 @@ Class android.<A HREF="../../../../reference/android/R.anim.html" target="_top">
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad20"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad21"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.anim.linear_interpolator"></A>
<nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.anim.html#linear_interpolator" target="_top"><code>linear_interpolator</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.array.html b/docs/html/sdk/api_diff/4/changes/android.R.array.html
deleted file mode 100644
index 43bd0b1cfd73..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.array.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.array
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.array.html" target="_top"><font size="+2"><code>R.array</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.array.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.attr.html b/docs/html/sdk/api_diff/4/changes/android.R.attr.html
index a4b9adb84866..a1923f63b820 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.attr.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.attr.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -119,132 +119,6 @@ Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top">
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.attr.dropDownHeight"></A>
<nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#dropDownHeight" target="_top"><code>dropDownHeight</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.color.html b/docs/html/sdk/api_diff/4/changes/android.R.color.html
deleted file mode 100644
index 20ce475d4c4b..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.color.html
+++ /dev/null
@@ -1,332 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.color
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.color.html" target="_top"><font size="+2"><code>R.color</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad20"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad21"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad22"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad23"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad24"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad25"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad26"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad27"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad28"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad28" target="_top"><code>donut_resource_pad28</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad29"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad29" target="_top"><code>donut_resource_pad29</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad30"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad30" target="_top"><code>donut_resource_pad30</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad31"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad31" target="_top"><code>donut_resource_pad31</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.color.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.dimen.html b/docs/html/sdk/api_diff/4/changes/android.R.dimen.html
deleted file mode 100644
index d6736d741e42..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.dimen.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.dimen
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.dimen.html" target="_top"><font size="+2"><code>R.dimen</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.drawable.html b/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
index 25776a9d66d7..9ecf62872ba5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -84,286 +84,6 @@ Class android.<A HREF="../../../../reference/android/R.drawable.html" target="_t
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad20"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad21"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad22"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad23"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad24"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad25"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad26"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad27"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad28"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad28" target="_top"><code>donut_resource_pad28</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad29"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad29" target="_top"><code>donut_resource_pad29</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad30"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad30" target="_top"><code>donut_resource_pad30</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad31"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad31" target="_top"><code>donut_resource_pad31</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad32"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad32" target="_top"><code>donut_resource_pad32</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad33"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad33" target="_top"><code>donut_resource_pad33</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad34"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad34" target="_top"><code>donut_resource_pad34</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad35"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad35" target="_top"><code>donut_resource_pad35</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad36"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad36" target="_top"><code>donut_resource_pad36</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad37"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad37" target="_top"><code>donut_resource_pad37</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad38"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad38" target="_top"><code>donut_resource_pad38</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad39"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad39" target="_top"><code>donut_resource_pad39</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad40"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad40" target="_top"><code>donut_resource_pad40</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.drawable.stat_sys_vp_phone_call"></A>
<nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.drawable.html#stat_sys_vp_phone_call" target="_top"><code>stat_sys_vp_phone_call</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.id.html b/docs/html/sdk/api_diff/4/changes/android.R.id.html
deleted file mode 100644
index 4fb48947496b..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.id.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.id
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.id.html" target="_top"><font size="+2"><code>R.id</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad20"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad21"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad22"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.id.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.integer.html b/docs/html/sdk/api_diff/4/changes/android.R.integer.html
deleted file mode 100644
index 6b9e2c014009..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.integer.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.integer
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.integer.html" target="_top"><font size="+2"><code>R.integer</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.integer.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.layout.html b/docs/html/sdk/api_diff/4/changes/android.R.layout.html
deleted file mode 100644
index b8aeabd2b369..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.layout.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.layout
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.layout.html" target="_top"><font size="+2"><code>R.layout</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.layout.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.string.html b/docs/html/sdk/api_diff/4/changes/android.R.string.html
deleted file mode 100644
index 770be4ed77c9..000000000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.string.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<HTML style="overflow:auto;">
-<HEAD>
-<meta name="generator" content="JDiff v1.1.0">
-<!-- Generated by the JDiff Javadoc doclet -->
-<!-- (http://www.jdiff.org) -->
-<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
-<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
-<TITLE>
-android.R.string
-</TITLE>
-<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
-<noscript>
-<style type="text/css">
-body{overflow:auto;}
-#body-content{position:relative; top:0;}
-#doc-content{overflow:visible;border-left:3px solid #666;}
-#side-nav{padding:0;}
-#side-nav .toggle-list ul {display:block;}
-#resize-packages-nav{border-bottom:3px solid #666;}
-</style>
-</noscript>
-<style type="text/css">
-</style>
-</HEAD>
-<BODY>
-<!-- Start of nav bar -->
-<a name="top"></a>
-<div id="header" style="margin-bottom:0;padding-bottom:0;">
-<div id="headerLeft">
-<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
-</div>
- <div id="headerRight">
- <div id="headerLinks">
-<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
-<span class="text">
-<!-- &nbsp;<a href="#">English</a> | -->
-<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
-</span>
-</div>
- <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td colspan="2" class="diffspechead">API Diff Specification</td>
- </tr>
- <tr>
- <td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
- </tr>
- </table>
- </div><!-- End and-diff-id -->
- <div class="and-diff-id" style="margin-right:8px;">
- <table class="diffspectable">
- <tr>
- <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
- </tr>
- </table>
- </div> <!-- End and-diff-id -->
- </div> <!-- End headerRight -->
- </div> <!-- End header -->
-<div id="body-content" xstyle="padding:12px;padding-right:18px;">
-<div id="doc-content" style="position:relative;">
-<div id="mainBodyFluid">
-<H2>
-Class android.<A HREF="../../../../reference/android/R.string.html" target="_top"><font size="+2"><code>R.string</code></font></A>
-</H2>
-<a NAME="constructors"></a>
-<a NAME="methods"></a>
-<a NAME="fields"></a>
-<p>
-<a NAME="Added"></a>
-<TABLE summary="Added Fields" WIDTH="100%">
-<TR>
- <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
-</TH>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad20"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad21"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad22"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad23"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad24"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad25"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad26"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad27"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.string.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
- </div>
- <div id="footer">
- <div id="copyright">
- Except as noted, this content is licensed under
- <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
- For details and restrictions, see the <a href="/license.html">Content License</a>.
- </div>
- <div id="footerlinks">
- <p>
- <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
- <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
- <a href="http://www.android.com/branding.html">Brand Guidelines</a>
- </p>
- </div>
- </div> <!-- end footer -->
- </div><!-- end doc-content -->
- </div> <!-- end body-content -->
-<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
-</script>
-<script type="text/javascript">
- try {
- var pageTracker = _gat._getTracker("UA-5831155-1");
- pageTracker._setAllowAnchor(true);
- pageTracker._initData();
- pageTracker._trackPageview();
- } catch(e) {}
-</script>
-</BODY>
-</HTML>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.style.html b/docs/html/sdk/api_diff/4/changes/android.R.style.html
index 5dbe9a1938ad..6755e3db4de4 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.style.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.style.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -103,139 +103,6 @@ Class android.<A HREF="../../../../reference/android/R.style.html" target="_top"
</TD>
<TD>&nbsp;</TD>
</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad1"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad10"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad11"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad12"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad13"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad14"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad15"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad16"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad17"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad18"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad19"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad2"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad3"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad4"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad5"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad6"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad7"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad8"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad9"></A>
- <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.style.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
</TABLE>
&nbsp;
</div>
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.Activity.html b/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
index 633252d09113..69503554d666 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html b/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
index df5a13ccb5f2..a6ec38735caa 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
index f837ae5e7718..83070a19d10a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
index 2a21f3bdae78..ebfd0ae526a5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
index 032671bdd7ed..221ce6409f81 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html b/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
index 7cde296d34fa..99df03e9efd2 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html b/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
index 09b3892c94cd..6451a5ba2cad 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html b/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
index 387574cf6717..baeb713d8fe8 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.Context.html b/docs/html/sdk/api_diff/4/changes/android.content.Context.html
index 08ad9ad8b4e7..0d9020263b04 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.Context.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.Context.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html b/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
index 6f67f68ee8d0..b39cd4699c3e 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.Intent.html b/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
index 69995d620b1f..7274c556db5b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
index 369dd3fa6198..ffdccb8120f5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
index e218e8f7d1a5..20f9b6b9c571 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
index b44626b10c17..600a08f41509 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
index 86676116054c..921ba9f926f5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
index 059c7e056ddc..911419bb76d5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
index 947243f5d610..cc3f9674d938 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
index df2e105adccc..6e99e84420d2 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
index bc8cc7cc9576..6c812d0cb17b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
index 8549752d2cab..d730e09b0716 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
index 49128fae5e53..48ed8b60b3dc 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html b/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
index 1a3f94a8dfa8..0d78eb071874 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
index 6739f0522c0e..e6d27d41931f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
index c5c7670e20a1..d72281a45468 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
index 8dea6889397b..4971712444bf 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
index 7e52fc66a4c6..e1dc283d467f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
index 49245f16b4ba..5eafab032810 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html b/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
index 55ebacf3fc3f..87b1f347c365 100644
--- a/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html b/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
index 6e927b802fc2..bec08b0e3ba7 100644
--- a/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.location.Address.html b/docs/html/sdk/api_diff/4/changes/android.location.Address.html
index b32f4f38ed12..0aeec499973d 100644
--- a/docs/html/sdk/api_diff/4/changes/android.location.Address.html
+++ b/docs/html/sdk/api_diff/4/changes/android.location.Address.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
index 1ac2b9c0fd14..8d1224c5570d 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
index b371e46a0ae5..9321b597c9b1 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
index 8f7aa00b089c..c161466c8d50 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html b/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
index c1e1bb88360d..a8d55802cb43 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html b/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
index f1fcaad1365e..2e4f339b38a8 100644
--- a/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html b/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
index 941c554045a1..178adbbe0e5f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.Build.html b/docs/html/sdk/api_diff/4/changes/android.os.Build.html
index 075819af3049..89fcb4890c69 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.Build.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.Build.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html b/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
index de379ea26a5b..19918aa99f78 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
index af0b161a88a1..a5d47d63d82a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
index aa0744212274..ab8f20623bb5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
index be600e491122..f3494888081f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
index d979133fc1c9..47306024e6e1 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
index 35d07a4ba90b..555ec8ceb9a5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
index c84893946798..e60aada70545 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
index af3649684904..03d5b6abb348 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
index e480955a4e91..e9f749e0134a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html b/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
index 8e772ab6793d..b816a07acf90 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
index 317556adc202..fdc83cde1913 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
index 939b9e89f124..2e4fc37b43c6 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html b/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
index 729d9ef161f1..b4eb16154501 100644
--- a/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
+++ b/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.Config.html b/docs/html/sdk/api_diff/4/changes/android.util.Config.html
index e5d67d9cf9e8..d6d303ecf6d3 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.Config.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.Config.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html b/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
index 4ab0b381fffe..d1a482a2f0e9 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html b/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
index fd1517274237..bb74b65ff9b4 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.Surface.html b/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
index 723191330bc8..a323bee9f636 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html b/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
index 208ee0d99ac5..4d9666766c39 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.View.html b/docs/html/sdk/api_diff/4/changes/android.view.View.html
index 1696e1c5187f..45d735b112c0 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.View.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.View.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html b/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
index 30a66ab37133..aa8d02ae5cee 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
index 61626bd8c0f0..de1d3547524f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
index 2ad8c43c8531..bad2b22ced46 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
index 91675dc86577..79e40a8b60f3 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
index 37680eb262bd..487c69b337ea 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
index e97e296d6f16..6ce83af6e85a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
index 639b4665b137..8940867ba224 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
index beb40561236a..17b2a5edba2f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/changes-summary.html b/docs/html/sdk/api_diff/4/changes/changes-summary.html
index d4b794c1139e..a4850a52a193 100644
--- a/docs/html/sdk/api_diff/4/changes/changes-summary.html
+++ b/docs/html/sdk/api_diff/4/changes/changes-summary.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
index 8100cfc1418f..d59f6660d467 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
@@ -57,6 +57,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.graphics.drawable.html#Animatable" class="hiddenlink" target="rightframe"><b><i>Animatable</i></b></A><br>
@@ -72,6 +73,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.view.animation.html#BounceInterpolator" class="hiddenlink" target="rightframe"><b>BounceInterpolator</b></A><br>
@@ -86,6 +88,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.opengl.html#GLES10" class="hiddenlink" target="rightframe"><b>GLES10</b></A><br>
@@ -102,6 +105,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.content.html#IntentSender" class="hiddenlink" target="rightframe"><b>IntentSender</b></A><br>
@@ -117,6 +121,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.view.animation.html#OvershootInterpolator" class="hiddenlink" target="rightframe"><b>OvershootInterpolator</b></A><br>
@@ -130,6 +135,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.content.pm.html#PathPermission" class="hiddenlink" target="rightframe"><b>PathPermission</b></A><br>
@@ -143,6 +149,7 @@ body{overflow:auto;}
<a href="#P"><font size="-2">P</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.telephony.html#SmsManager" class="hiddenlink" target="rightframe"><b>SmsManager</b></A><br>
@@ -159,6 +166,7 @@ body{overflow:auto;}
<a href="#P"><font size="-2">P</font></a>
<a href="#S"><font size="-2">S</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.view.html#ViewDebug.FlagToString" class="hiddenlink" target="rightframe"><b>ViewDebug.FlagToString</b></A><br>
@@ -172,9 +180,25 @@ body{overflow:auto;}
<a href="#P"><font size="-2">P</font></a>
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.net.wifi.html#WifiManager.MulticastLock" class="hiddenlink" target="rightframe"><b>WifiManager.MulticastLock</b></A><br>
+<A NAME="Z"></A>
+<br><font size="+2">Z</font>&nbsp;
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_all.html b/docs/html/sdk/api_diff/4/changes/classes_index_all.html
index 667a433a0025..4af271601e26 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_all.html
@@ -65,6 +65,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
@@ -96,6 +97,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
@@ -124,6 +126,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.Canvas.html" class="hiddenlink" target="rightframe">Canvas</A><br>
@@ -153,6 +156,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="java.util.Date.html" class="hiddenlink" target="rightframe">Date</A><br>
@@ -177,6 +181,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.opengl.html#GLES10" class="hiddenlink" target="rightframe"><b>GLES10</b></A><br>
@@ -201,6 +206,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.text.style.ImageSpan.html" class="hiddenlink" target="rightframe">ImageSpan</A><br>
@@ -228,6 +234,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.inputmethodservice.KeyboardView.html" class="hiddenlink" target="rightframe">KeyboardView</A><br>
@@ -249,6 +256,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.LauncherActivity.html" class="hiddenlink" target="rightframe">LauncherActivity</A><br>
@@ -272,6 +280,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.Manifest.permission.html" class="hiddenlink" target="rightframe">Manifest.permission</A><br>
@@ -300,6 +309,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.NinePatch.html" class="hiddenlink" target="rightframe">NinePatch</A><br>
@@ -322,6 +332,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.view.animation.html#OvershootInterpolator" class="hiddenlink" target="rightframe"><b>OvershootInterpolator</b></A><br>
@@ -343,6 +354,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
@@ -368,18 +380,12 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
<A NAME="S"></A>
@@ -400,6 +406,7 @@ body{overflow:auto;}
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.SearchManager.html" class="hiddenlink" target="rightframe">SearchManager</A><br>
@@ -439,6 +446,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.widget.TabHost.TabSpec.html" class="hiddenlink" target="rightframe">TabHost.TabSpec</A><br>
@@ -464,6 +472,7 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#T"><font size="-2">T</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.view.VelocityTracker.html" class="hiddenlink" target="rightframe">VelocityTracker</A><br>
@@ -488,11 +497,35 @@ body{overflow:auto;}
<a href="#S"><font size="-2">S</font></a>
<a href="#T"><font size="-2">T</font></a>
<a href="#V"><font size="-2">V</font></a>
+<a href="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.net.wifi.WifiManager.html" class="hiddenlink" target="rightframe">WifiManager</A><br>
<A HREF="pkg_android.net.wifi.html#WifiManager.MulticastLock" class="hiddenlink" target="rightframe"><b>WifiManager.MulticastLock</b></A><br>
<A HREF="android.view.Window.Callback.html" class="hiddenlink" target="rightframe"><i>Window.Callback</i></A><br>
+<A NAME="Z"></A>
+<br><font size="+2">Z</font>&nbsp;
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
index 246e64ba0579..193e21cb5687 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
@@ -293,15 +293,8 @@ body{overflow:auto;}
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
<A NAME="S"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
index 6a500b451e9a..8ab19bae74aa 100644
--- a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
@@ -205,721 +205,6 @@ body{overflow:auto;}
</nobr><br>
<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
</nobr><br>
-<i>donut_resource_pad1</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad10</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad11</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad12</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad13</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad14</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad15</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad16</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad17</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad18</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad19</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad2</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad20</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad21</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad22</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad23</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad24</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad25</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad26</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad27</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad28</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad29</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad3</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad30</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad31</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<i>donut_resource_pad4</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<i>donut_resource_pad5</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad6</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad7</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad8</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad9</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
<A NAME="E"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_all.html b/docs/html/sdk/api_diff/4/changes/fields_index_all.html
index db767782fefc..3d155b7bfa7e 100644
--- a/docs/html/sdk/api_diff/4/changes/fields_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/fields_index_all.html
@@ -214,721 +214,6 @@ body{overflow:auto;}
</nobr><br>
<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
</nobr><br>
-<i>donut_resource_pad1</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad10</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad11</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad12</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad13</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad14</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad15</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad16</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad17</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad18</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad19</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad2</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad20</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad21</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad22</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad23</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad24</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad25</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad26</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad27</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad28</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad29</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad3</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad30</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad31</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<i>donut_resource_pad4</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<i>donut_resource_pad5</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad6</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad7</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad8</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad9</i><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-&nbsp;in&nbsp;
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
<A NAME="E"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/java.lang.String.html b/docs/html/sdk/api_diff/4/changes/java.lang.String.html
index 1e19474a97d3..61a6945f332b 100644
--- a/docs/html/sdk/api_diff/4/changes/java.lang.String.html
+++ b/docs/html/sdk/api_diff/4/changes/java.lang.String.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/java.net.Socket.html b/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
index 0d1cf765ff5a..bbeeab95f0ae 100644
--- a/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
+++ b/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/java.util.Date.html b/docs/html/sdk/api_diff/4/changes/java.util.Date.html
index 69caada0003c..13acc8dff19f 100644
--- a/docs/html/sdk/api_diff/4/changes/java.util.Date.html
+++ b/docs/html/sdk/api_diff/4/changes/java.util.Date.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/jdiff_help.html b/docs/html/sdk/api_diff/4/changes/jdiff_help.html
index b414f6281d4d..f4b996891fa9 100644
--- a/docs/html/sdk/api_diff/4/changes/jdiff_help.html
+++ b/docs/html/sdk/api_diff/4/changes/jdiff_help.html
@@ -31,7 +31,7 @@ body{overflow:auto;}
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<TABLE summary="Navigation bar" BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../reference/index.html" target="_top"><FONT CLASS="NavBarFont1"><B><code>Donut</code></B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../reference/index.html" target="_top"><FONT CLASS="NavBarFont1"><B><code>4</code></B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="changes-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> &nbsp;<FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> &nbsp;<FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
index 3fafb7a6a8ea..3244a173a4f8 100644
--- a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
+++ b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Version:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Version:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -105,10 +105,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica
<TD><A HREF="pkg_android.telephony.html">android.telephony</A></TD>
</TR>
<TR>
- <TD ALIGN="center">21</TD>
- <TD><A HREF="pkg_android.html">android</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">16</TD>
<TD><A HREF="pkg_android.opengl.html">android.opengl</A></TD>
</TR>
@@ -146,6 +142,14 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica
</TR>
<TR>
<TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.html">android</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.widget.html">android.widget</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
<TD><A HREF="pkg_android.app.html">android.app</A></TD>
</TR>
<TR>
@@ -178,10 +182,6 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica
</TR>
<TR>
<TD ALIGN="center">&lt;1</TD>
- <TD><A HREF="pkg_android.widget.html">android.widget</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">&lt;1</TD>
<TD><A HREF="pkg_android.provider.html">android.provider</A></TD>
</TR>
<TR>
@@ -214,32 +214,12 @@ added, the change will be 100%. Values are rounded here, so a value of 0% indica
<TH><b>Class or <i>Interface</i></b></TH>
</TR>
<TR>
- <TD ALIGN="center">63</TD>
- <TD><A HREF="android.R.dimen.html">
-android.R.dimen</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">63</TD>
- <TD><A HREF="android.R.integer.html">
-android.R.integer</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">61</TD>
- <TD><A HREF="android.R.anim.html">
-android.R.anim</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">55</TD>
<TD><A HREF="android.telephony.gsm.SmsMessage.html">
android.telephony.gsm.SmsMessage</A></TD>
</TR>
<TR>
<TD ALIGN="center">50</TD>
- <TD><A HREF="android.R.array.html">
-android.R.array</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">50</TD>
<TD><A HREF="android.media.ToneGenerator.html">
android.media.ToneGenerator</A></TD>
</TR>
@@ -259,21 +239,11 @@ android.telephony.gsm.SmsMessage.SubmitPdu</A></TD>
android.graphics.drawable.NinePatchDrawable</A></TD>
</TR>
<TR>
- <TD ALIGN="center">44</TD>
- <TD><A HREF="android.R.color.html">
-android.R.color</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">42</TD>
<TD><A HREF="android.media.MediaRecorder.AudioSource.html">
android.media.MediaRecorder.AudioSource</A></TD>
</TR>
<TR>
- <TD ALIGN="center">36</TD>
- <TD><A HREF="android.R.string.html">
-android.R.string</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">33</TD>
<TD><A HREF="android.util.Config.html">
android.util.Config</A></TD>
@@ -290,8 +260,8 @@ android.telephony.gsm.SmsMessage.MessageClass</A></TD>
</TR>
<TR>
<TD ALIGN="center">23</TD>
- <TD><A HREF="android.R.layout.html">
-android.R.layout</A></TD>
+ <TD><A HREF="android.R.anim.html">
+android.R.anim</A></TD>
</TR>
<TR>
<TD ALIGN="center">23</TD>
@@ -325,11 +295,6 @@ android.graphics.drawable.BitmapDrawable</A></TD>
</TR>
<TR>
<TD ALIGN="center">20</TD>
- <TD><A HREF="android.R.id.html">
-android.R.id</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">20</TD>
<TD><A HREF="android.test.AndroidTestCase.html">
android.test.AndroidTestCase</A></TD>
</TR>
@@ -365,21 +330,11 @@ android.content.pm.ConfigurationInfo</A></TD>
</TR>
<TR>
<TD ALIGN="center">11</TD>
- <TD><A HREF="android.R.drawable.html">
-android.R.drawable</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">11</TD>
<TD><A HREF="android.app.LauncherActivity.html">
android.app.LauncherActivity</A></TD>
</TR>
<TR>
<TD ALIGN="center">10</TD>
- <TD><A HREF="android.R.style.html">
-android.R.style</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">10</TD>
<TD><A HREF="android.content.res.Configuration.html">
android.content.res.Configuration</A></TD>
</TR>
@@ -475,11 +430,6 @@ android.Manifest.permission</A></TD>
</TR>
<TR>
<TD ALIGN="center">4</TD>
- <TD><A HREF="android.R.attr.html">
-android.R.attr</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">4</TD>
<TD><A HREF="android.content.pm.ProviderInfo.html">
android.content.pm.ProviderInfo</A></TD>
</TR>
@@ -510,6 +460,11 @@ android.widget.PopupWindow</A></TD>
</TR>
<TR>
<TD ALIGN="center">2</TD>
+ <TD><A HREF="android.R.attr.html">
+android.R.attr</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
<TD><A HREF="android.content.Intent.html">
android.content.Intent</A></TD>
</TR>
@@ -555,6 +510,11 @@ android.test.mock.MockPackageManager</A></TD>
</TR>
<TR>
<TD ALIGN="center">1</TD>
+ <TD><A HREF="android.R.style.html">
+android.R.style</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
<TD><A HREF="android.widget.ListView.html">
android.widget.ListView</A></TD>
</TR>
@@ -605,6 +565,11 @@ android.app.Dialog</A></TD>
</TR>
<TR>
<TD ALIGN="center">&lt;1</TD>
+ <TD><A HREF="android.R.drawable.html">
+android.R.drawable</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">&lt;1</TD>
<TD><A HREF="android.provider.Settings.System.html">
android.provider.Settings.System</A></TD>
</TR>
@@ -642,9 +607,9 @@ The table below lists the numbers of program elements (packages, classes, constr
<TR>
<TD>Classes and <i>Interfaces</i></TD>
<TD ALIGN="right">2</TD>
- <TD ALIGN="right">20</TD>
- <TD ALIGN="right">80</TD>
- <TD ALIGN="right">102</TD>
+ <TD ALIGN="right">22</TD>
+ <TD ALIGN="right">73</TD>
+ <TD ALIGN="right">97</TD>
</TR>
<TR>
<TD>Constructors</TD>
@@ -663,16 +628,16 @@ The table below lists the numbers of program elements (packages, classes, constr
<TR>
<TD>Fields</TD>
<TD ALIGN="right">29</TD>
- <TD ALIGN="right">433</TD>
+ <TD ALIGN="right">202</TD>
<TD ALIGN="right">27</TD>
- <TD ALIGN="right">489</TD>
+ <TD ALIGN="right">258</TD>
</TR>
<TR>
<TD><b>Total</b></TD>
<TD ALIGN="right">34</TD>
- <TD ALIGN="right">543</TD>
- <TD ALIGN="right">197</TD>
- <TD ALIGN="right">774</TD>
+ <TD ALIGN="right">314</TD>
+ <TD ALIGN="right">190</TD>
+ <TD ALIGN="right">538</TD>
</TR>
</TABLE>
</div>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.app.html b/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
index 212abba3ab51..acd66f31f071 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
index 6b07fc40740c..db3f8963cf5d 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
index c8f0d36b8e0a..7bfd1855ce1c 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
index 2b6d95a314dd..8a07bb270c1a 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
index e8033a31f7bb..3fa65de6cedb 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
index 3c69a1e75087..6d6caac573b6 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html b/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
index 5a51d124bb83..ddce23db4e0f 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.html b/docs/html/sdk/api_diff/4/changes/pkg_android.html
index 8ea8efecbe26..596b5c1d3cb3 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -102,13 +102,6 @@ Package <A HREF="../../../../reference/android/package-summary.html" target="_to
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.array"></A>
- <nobr><A HREF="android.R.array.html">R.array</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="R.attr"></A>
<nobr><A HREF="android.R.attr.html">R.attr</A></nobr>
</TD>
@@ -116,20 +109,6 @@ Package <A HREF="../../../../reference/android/package-summary.html" target="_to
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.color"></A>
- <nobr><A HREF="android.R.color.html">R.color</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.dimen"></A>
- <nobr><A HREF="android.R.dimen.html">R.dimen</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="R.drawable"></A>
<nobr><A HREF="android.R.drawable.html">R.drawable</A></nobr>
</TD>
@@ -137,34 +116,6 @@ Package <A HREF="../../../../reference/android/package-summary.html" target="_to
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.id"></A>
- <nobr><A HREF="android.R.id.html">R.id</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.integer"></A>
- <nobr><A HREF="android.R.integer.html">R.integer</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.layout"></A>
- <nobr><A HREF="android.R.layout.html">R.layout</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.string"></A>
- <nobr><A HREF="android.R.string.html">R.string</A></nobr>
- </TD>
- <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="R.style"></A>
<nobr><A HREF="android.R.style.html">R.style</A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html b/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
index 57913d963788..502727273848 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.location.html b/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
index 9c803b4e8524..344b11fd7aa5 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.media.html b/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
index 4017876ae8a6..19cf361205bd 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html b/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
index ad844fd3d2c9..50e527365179 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html b/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
index ceb4326ac699..d2483d418b8d 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.os.html b/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
index 175e36541851..dc22fd42fac1 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html b/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
index 44458da5fd6a..87aaaf2e2815 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
index 0c1fd78fa1e1..176a343ae251 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
index b6e7b9012d06..a40a526c96b9 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.test.html b/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
index ad91cd43279f..7fa10be303e6 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html b/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
index bea2724480c6..6d5a18388706 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html b/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
index d248546be6e0..ab5984826796 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.util.html b/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
index 1efbe7dfdadc..5a936ae45a2b 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html b/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
index ed53b79463d9..a88e7fc422d5 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.view.html b/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
index dc85219526fe..381a339a130a 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html b/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
index 8a1cb3b5bbb9..1388a0ced739 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -74,6 +74,28 @@ body{overflow:auto;}
Package <A HREF="../../../../reference/android/widget/package-summary.html" target="_top"><font size="+1"><code>android.widget</code></font></A>
</H2>
<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes and Interfaces" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes and Interfaces</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ZoomButtonsController"></A>
+ <nobr><A HREF="../../../../reference/android/widget/ZoomButtonsController.html" target="_top"><code>ZoomButtonsController</code></A></nobr>
+ </TD>
+ <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ZoomButtonsController.OnZoomListener"></A>
+ <nobr><A HREF="../../../../reference/android/widget/ZoomButtonsController.OnZoomListener.html" target="_top"><code><I>ZoomButtonsController.<br>OnZoomListener</I></code></A></nobr>
+ </TD>
+ <TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<p>
<a NAME="Changed"></a>
<TABLE summary="Changed Classes" WIDTH="100%">
<TR>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html b/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
index 995f66023e7b..4206681af490 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.net.html b/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
index 3bacffc3560d..9d981552661d 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.util.html b/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
index 70db301e2ad7..1702f222ba7d 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
@@ -46,7 +46,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@ body{overflow:auto;}
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/missingSinces.txt b/docs/html/sdk/api_diff/4/missingSinces.txt
index 4d35e0f4fe15..2cdddf955df6 100644
--- a/docs/html/sdk/api_diff/4/missingSinces.txt
+++ b/docs/html/sdk/api_diff/4/missingSinces.txt
@@ -18,6 +18,8 @@ NO DOC BLOCK: android.telephony.SmsMessage.MessageClass Class
NO DOC BLOCK: android.telephony.SmsMessage.SubmitPdu Class
NO DOC BLOCK: android.view.ViewDebug.FlagToString Class
NO DOC BLOCK: android.net.wifi.WifiManager.MulticastLock Class
+NO DOC BLOCK: android.widget.ZoomButtonsController Class
+NO DOC BLOCK: android.widget.ZoomButtonsController.OnZoomListener Interface
NO DOC BLOCK: android.graphics.drawable.BitmapDrawable Constructor (android.content.res.Resources)
NO DOC BLOCK: android.graphics.drawable.BitmapDrawable Constructor (android.content.res.Resources, android.graphics.Bitmap)
NO DOC BLOCK: android.text.style.ImageSpan Constructor (android.content.Context, android.graphics.Bitmap)
@@ -134,237 +136,6 @@ NO DOC BLOCK: android.util.DisplayMetrics Field DENSITY_MEDIUM
NO DOC BLOCK: android.graphics.Bitmap Field DENSITY_NONE
NO DOC BLOCK: android.util.TypedValue Field DENSITY_NONE
NO DOC BLOCK: android.util.DisplayMetrics Field densityDpi
-NO DOC BLOCK: android.R.anim Field donut_resource_pad1
-NO DOC BLOCK: android.R.array Field donut_resource_pad1
-NO DOC BLOCK: android.R.attr Field donut_resource_pad1
-NO DOC BLOCK: android.R.color Field donut_resource_pad1
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad1
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad1
-NO DOC BLOCK: android.R.id Field donut_resource_pad1
-NO DOC BLOCK: android.R.integer Field donut_resource_pad1
-NO DOC BLOCK: android.R.layout Field donut_resource_pad1
-NO DOC BLOCK: android.R.string Field donut_resource_pad1
-NO DOC BLOCK: android.R.style Field donut_resource_pad1
-NO DOC BLOCK: android.R.anim Field donut_resource_pad10
-NO DOC BLOCK: android.R.array Field donut_resource_pad10
-NO DOC BLOCK: android.R.attr Field donut_resource_pad10
-NO DOC BLOCK: android.R.color Field donut_resource_pad10
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad10
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad10
-NO DOC BLOCK: android.R.id Field donut_resource_pad10
-NO DOC BLOCK: android.R.integer Field donut_resource_pad10
-NO DOC BLOCK: android.R.layout Field donut_resource_pad10
-NO DOC BLOCK: android.R.string Field donut_resource_pad10
-NO DOC BLOCK: android.R.style Field donut_resource_pad10
-NO DOC BLOCK: android.R.anim Field donut_resource_pad11
-NO DOC BLOCK: android.R.array Field donut_resource_pad11
-NO DOC BLOCK: android.R.attr Field donut_resource_pad11
-NO DOC BLOCK: android.R.color Field donut_resource_pad11
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad11
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad11
-NO DOC BLOCK: android.R.id Field donut_resource_pad11
-NO DOC BLOCK: android.R.integer Field donut_resource_pad11
-NO DOC BLOCK: android.R.layout Field donut_resource_pad11
-NO DOC BLOCK: android.R.string Field donut_resource_pad11
-NO DOC BLOCK: android.R.style Field donut_resource_pad11
-NO DOC BLOCK: android.R.anim Field donut_resource_pad12
-NO DOC BLOCK: android.R.array Field donut_resource_pad12
-NO DOC BLOCK: android.R.attr Field donut_resource_pad12
-NO DOC BLOCK: android.R.color Field donut_resource_pad12
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad12
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad12
-NO DOC BLOCK: android.R.id Field donut_resource_pad12
-NO DOC BLOCK: android.R.integer Field donut_resource_pad12
-NO DOC BLOCK: android.R.layout Field donut_resource_pad12
-NO DOC BLOCK: android.R.string Field donut_resource_pad12
-NO DOC BLOCK: android.R.style Field donut_resource_pad12
-NO DOC BLOCK: android.R.anim Field donut_resource_pad13
-NO DOC BLOCK: android.R.attr Field donut_resource_pad13
-NO DOC BLOCK: android.R.color Field donut_resource_pad13
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad13
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad13
-NO DOC BLOCK: android.R.id Field donut_resource_pad13
-NO DOC BLOCK: android.R.integer Field donut_resource_pad13
-NO DOC BLOCK: android.R.layout Field donut_resource_pad13
-NO DOC BLOCK: android.R.string Field donut_resource_pad13
-NO DOC BLOCK: android.R.style Field donut_resource_pad13
-NO DOC BLOCK: android.R.anim Field donut_resource_pad14
-NO DOC BLOCK: android.R.attr Field donut_resource_pad14
-NO DOC BLOCK: android.R.color Field donut_resource_pad14
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad14
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad14
-NO DOC BLOCK: android.R.id Field donut_resource_pad14
-NO DOC BLOCK: android.R.integer Field donut_resource_pad14
-NO DOC BLOCK: android.R.string Field donut_resource_pad14
-NO DOC BLOCK: android.R.style Field donut_resource_pad14
-NO DOC BLOCK: android.R.anim Field donut_resource_pad15
-NO DOC BLOCK: android.R.attr Field donut_resource_pad15
-NO DOC BLOCK: android.R.color Field donut_resource_pad15
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad15
-NO DOC BLOCK: android.R.id Field donut_resource_pad15
-NO DOC BLOCK: android.R.string Field donut_resource_pad15
-NO DOC BLOCK: android.R.style Field donut_resource_pad15
-NO DOC BLOCK: android.R.anim Field donut_resource_pad16
-NO DOC BLOCK: android.R.attr Field donut_resource_pad16
-NO DOC BLOCK: android.R.color Field donut_resource_pad16
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad16
-NO DOC BLOCK: android.R.id Field donut_resource_pad16
-NO DOC BLOCK: android.R.string Field donut_resource_pad16
-NO DOC BLOCK: android.R.style Field donut_resource_pad16
-NO DOC BLOCK: android.R.anim Field donut_resource_pad17
-NO DOC BLOCK: android.R.attr Field donut_resource_pad17
-NO DOC BLOCK: android.R.color Field donut_resource_pad17
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad17
-NO DOC BLOCK: android.R.id Field donut_resource_pad17
-NO DOC BLOCK: android.R.string Field donut_resource_pad17
-NO DOC BLOCK: android.R.style Field donut_resource_pad17
-NO DOC BLOCK: android.R.anim Field donut_resource_pad18
-NO DOC BLOCK: android.R.attr Field donut_resource_pad18
-NO DOC BLOCK: android.R.color Field donut_resource_pad18
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad18
-NO DOC BLOCK: android.R.id Field donut_resource_pad18
-NO DOC BLOCK: android.R.string Field donut_resource_pad18
-NO DOC BLOCK: android.R.style Field donut_resource_pad18
-NO DOC BLOCK: android.R.anim Field donut_resource_pad19
-NO DOC BLOCK: android.R.color Field donut_resource_pad19
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad19
-NO DOC BLOCK: android.R.id Field donut_resource_pad19
-NO DOC BLOCK: android.R.string Field donut_resource_pad19
-NO DOC BLOCK: android.R.style Field donut_resource_pad19
-NO DOC BLOCK: android.R.anim Field donut_resource_pad2
-NO DOC BLOCK: android.R.array Field donut_resource_pad2
-NO DOC BLOCK: android.R.attr Field donut_resource_pad2
-NO DOC BLOCK: android.R.color Field donut_resource_pad2
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad2
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad2
-NO DOC BLOCK: android.R.id Field donut_resource_pad2
-NO DOC BLOCK: android.R.integer Field donut_resource_pad2
-NO DOC BLOCK: android.R.layout Field donut_resource_pad2
-NO DOC BLOCK: android.R.string Field donut_resource_pad2
-NO DOC BLOCK: android.R.style Field donut_resource_pad2
-NO DOC BLOCK: android.R.anim Field donut_resource_pad20
-NO DOC BLOCK: android.R.color Field donut_resource_pad20
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad20
-NO DOC BLOCK: android.R.id Field donut_resource_pad20
-NO DOC BLOCK: android.R.string Field donut_resource_pad20
-NO DOC BLOCK: android.R.anim Field donut_resource_pad21
-NO DOC BLOCK: android.R.color Field donut_resource_pad21
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad21
-NO DOC BLOCK: android.R.id Field donut_resource_pad21
-NO DOC BLOCK: android.R.string Field donut_resource_pad21
-NO DOC BLOCK: android.R.color Field donut_resource_pad22
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad22
-NO DOC BLOCK: android.R.id Field donut_resource_pad22
-NO DOC BLOCK: android.R.string Field donut_resource_pad22
-NO DOC BLOCK: android.R.color Field donut_resource_pad23
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad23
-NO DOC BLOCK: android.R.string Field donut_resource_pad23
-NO DOC BLOCK: android.R.color Field donut_resource_pad24
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad24
-NO DOC BLOCK: android.R.string Field donut_resource_pad24
-NO DOC BLOCK: android.R.color Field donut_resource_pad25
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad25
-NO DOC BLOCK: android.R.string Field donut_resource_pad25
-NO DOC BLOCK: android.R.color Field donut_resource_pad26
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad26
-NO DOC BLOCK: android.R.string Field donut_resource_pad26
-NO DOC BLOCK: android.R.color Field donut_resource_pad27
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad27
-NO DOC BLOCK: android.R.string Field donut_resource_pad27
-NO DOC BLOCK: android.R.color Field donut_resource_pad28
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad28
-NO DOC BLOCK: android.R.color Field donut_resource_pad29
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad29
-NO DOC BLOCK: android.R.anim Field donut_resource_pad3
-NO DOC BLOCK: android.R.array Field donut_resource_pad3
-NO DOC BLOCK: android.R.attr Field donut_resource_pad3
-NO DOC BLOCK: android.R.color Field donut_resource_pad3
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad3
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad3
-NO DOC BLOCK: android.R.id Field donut_resource_pad3
-NO DOC BLOCK: android.R.integer Field donut_resource_pad3
-NO DOC BLOCK: android.R.layout Field donut_resource_pad3
-NO DOC BLOCK: android.R.string Field donut_resource_pad3
-NO DOC BLOCK: android.R.style Field donut_resource_pad3
-NO DOC BLOCK: android.R.color Field donut_resource_pad30
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad30
-NO DOC BLOCK: android.R.color Field donut_resource_pad31
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad31
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad32
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad33
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad34
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad35
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad36
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad37
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad38
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad39
-NO DOC BLOCK: android.R.anim Field donut_resource_pad4
-NO DOC BLOCK: android.R.array Field donut_resource_pad4
-NO DOC BLOCK: android.R.attr Field donut_resource_pad4
-NO DOC BLOCK: android.R.color Field donut_resource_pad4
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad4
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad4
-NO DOC BLOCK: android.R.id Field donut_resource_pad4
-NO DOC BLOCK: android.R.integer Field donut_resource_pad4
-NO DOC BLOCK: android.R.layout Field donut_resource_pad4
-NO DOC BLOCK: android.R.string Field donut_resource_pad4
-NO DOC BLOCK: android.R.style Field donut_resource_pad4
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad40
-NO DOC BLOCK: android.R.anim Field donut_resource_pad5
-NO DOC BLOCK: android.R.array Field donut_resource_pad5
-NO DOC BLOCK: android.R.attr Field donut_resource_pad5
-NO DOC BLOCK: android.R.color Field donut_resource_pad5
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad5
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad5
-NO DOC BLOCK: android.R.id Field donut_resource_pad5
-NO DOC BLOCK: android.R.integer Field donut_resource_pad5
-NO DOC BLOCK: android.R.layout Field donut_resource_pad5
-NO DOC BLOCK: android.R.string Field donut_resource_pad5
-NO DOC BLOCK: android.R.style Field donut_resource_pad5
-NO DOC BLOCK: android.R.anim Field donut_resource_pad6
-NO DOC BLOCK: android.R.array Field donut_resource_pad6
-NO DOC BLOCK: android.R.attr Field donut_resource_pad6
-NO DOC BLOCK: android.R.color Field donut_resource_pad6
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad6
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad6
-NO DOC BLOCK: android.R.id Field donut_resource_pad6
-NO DOC BLOCK: android.R.integer Field donut_resource_pad6
-NO DOC BLOCK: android.R.layout Field donut_resource_pad6
-NO DOC BLOCK: android.R.string Field donut_resource_pad6
-NO DOC BLOCK: android.R.style Field donut_resource_pad6
-NO DOC BLOCK: android.R.anim Field donut_resource_pad7
-NO DOC BLOCK: android.R.array Field donut_resource_pad7
-NO DOC BLOCK: android.R.attr Field donut_resource_pad7
-NO DOC BLOCK: android.R.color Field donut_resource_pad7
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad7
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad7
-NO DOC BLOCK: android.R.id Field donut_resource_pad7
-NO DOC BLOCK: android.R.integer Field donut_resource_pad7
-NO DOC BLOCK: android.R.layout Field donut_resource_pad7
-NO DOC BLOCK: android.R.string Field donut_resource_pad7
-NO DOC BLOCK: android.R.style Field donut_resource_pad7
-NO DOC BLOCK: android.R.anim Field donut_resource_pad8
-NO DOC BLOCK: android.R.array Field donut_resource_pad8
-NO DOC BLOCK: android.R.attr Field donut_resource_pad8
-NO DOC BLOCK: android.R.color Field donut_resource_pad8
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad8
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad8
-NO DOC BLOCK: android.R.id Field donut_resource_pad8
-NO DOC BLOCK: android.R.integer Field donut_resource_pad8
-NO DOC BLOCK: android.R.layout Field donut_resource_pad8
-NO DOC BLOCK: android.R.string Field donut_resource_pad8
-NO DOC BLOCK: android.R.style Field donut_resource_pad8
-NO DOC BLOCK: android.R.anim Field donut_resource_pad9
-NO DOC BLOCK: android.R.array Field donut_resource_pad9
-NO DOC BLOCK: android.R.attr Field donut_resource_pad9
-NO DOC BLOCK: android.R.color Field donut_resource_pad9
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad9
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad9
-NO DOC BLOCK: android.R.id Field donut_resource_pad9
-NO DOC BLOCK: android.R.integer Field donut_resource_pad9
-NO DOC BLOCK: android.R.layout Field donut_resource_pad9
-NO DOC BLOCK: android.R.string Field donut_resource_pad9
-NO DOC BLOCK: android.R.style Field donut_resource_pad9
NO DOC BLOCK: android.R.attr Field dropDownHeight
NO DOC BLOCK: android.provider.Settings.Secure Field ENABLED_ACCESSIBILITY_SERVICES
NO DOC BLOCK: android.R.attr Field eventsInterceptionEnabled
diff --git a/docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml b/docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml
index 5bbe9459a5e2..b0aba964ec01 100644
--- a/docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml
+++ b/docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml
@@ -2,7 +2,7 @@
<comments
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='comments.xsd'
- name="3_to_Donut"
+ name="3_to_4"
jdversion="1.1.0">
<!-- Use this file to enter an API change description. For example, when you remove a class,
@@ -130,132 +130,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.anim.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.anim.linear_interpolator"/>
<text>
InsertCommentsHere
@@ -268,84 +142,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.array"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.attr"/>
<text>
InsertCommentsHere
@@ -382,114 +178,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.attr.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.attr.dropDownHeight"/>
<text>
InsertCommentsHere
@@ -676,534 +364,12 @@
</text>
</comment>
<comment>
- <identifier id="android.R.color"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad28"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad29"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad30"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad31"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.drawable"/>
<text>
InsertCommentsHere
</text>
</comment>
<comment>
- <identifier id="android.R.drawable.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad28"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad29"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad30"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad31"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad32"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad33"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad34"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad35"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad36"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad37"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad38"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad39"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad40"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.drawable.stat_sys_vp_phone_call"/>
<text>
InsertCommentsHere
@@ -1216,486 +382,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.id"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.style"/>
<text>
InsertCommentsHere
@@ -1720,120 +406,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.style.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.accessibilityservice"/>
<text>
InsertCommentsHere
@@ -4564,6 +3136,18 @@
</text>
</comment>
<comment>
+ <identifier id="android.widget.ZoomButtonsController"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.ZoomButtonsController.OnZoomListener"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
<identifier id="java.lang"/>
<text>
InsertCommentsHere
diff --git a/docs/html/sdk/images/battery.png b/docs/html/sdk/images/battery.png
new file mode 100644
index 000000000000..10fd16b16afe
--- /dev/null
+++ b/docs/html/sdk/images/battery.png
Binary files differ
diff --git a/docs/html/sdk/images/camera.png b/docs/html/sdk/images/camera.png
new file mode 100644
index 000000000000..6078388ea232
--- /dev/null
+++ b/docs/html/sdk/images/camera.png
Binary files differ
diff --git a/docs/html/sdk/images/donut_small_bg.png b/docs/html/sdk/images/donut_small_bg.png
new file mode 100644
index 000000000000..f514b504fd15
--- /dev/null
+++ b/docs/html/sdk/images/donut_small_bg.png
Binary files differ
diff --git a/docs/html/sdk/images/market.png b/docs/html/sdk/images/market.png
new file mode 100644
index 000000000000..8d11134c1c4a
--- /dev/null
+++ b/docs/html/sdk/images/market.png
Binary files differ
diff --git a/docs/html/sdk/images/search.png b/docs/html/sdk/images/search.png
new file mode 100644
index 000000000000..10ab910bab86
--- /dev/null
+++ b/docs/html/sdk/images/search.png
Binary files differ
diff --git a/docs/html/sdk/ndk/1.6_r1/index.jd b/docs/html/sdk/ndk/1.6_r1/index.jd
new file mode 100644
index 000000000000..e066f9589b86
--- /dev/null
+++ b/docs/html/sdk/ndk/1.6_r1/index.jd
@@ -0,0 +1,360 @@
+ndk=true
+ndk.version=1.6
+ndk.rel.id=1
+ndk.date=September 2009
+
+ndk.win_download=android-ndk-1.6_r1-windows.zip
+ndk.win_bytes=25896444
+ndk.win_checksum=a213c9592f24c61620755c6c43f85210
+
+ndk.mac_download=android-ndk-1.6_r1-darwin-x86.zip
+ndk.mac_bytes=20611080
+ndk.mac_checksum=93c5b8b92a1f7b1cdadf267cab8ec403
+
+ndk.linux_download=android-ndk-1.6_r1-linux-x86.zip
+ndk.linux_bytes=19421662
+ndk.linux_checksum=464d3dc02739b82917e6f0591e17edd1
+
+page.title=Android 1.6 NDK, Release 1
+@jd:body
+
+<h2 id="overview">What is the Android NDK?</h2>
+
+<p>The Android NDK provides tools that allow Android application developers
+to embed components that make use of native code in their Android applications.
+</p>
+
+<p>Android applications run in the Dalvik virtual machine. The NDK allows
+developers to implement parts of their applications using native-code languages
+such as C and C++. This can provide benefits to certain classes of applications,
+in the form of reuse of existing code and in some cases increased speed.</p>
+
+<p>The NDK provides:</p>
+
+<ul>
+<li>A set of tools and build files used to generate native code libraries from C
+and C++ sources</li>
+<li>A way to embed the corresponding native libraries into application package
+files (.apks) that can be deployed on Android devices</li>
+<li>A set of native system headers and libraries that will be supported in all
+future versions of the Android platform, starting from Android 1.5 </li>
+<li>Documentation, samples, and tutorials</li>
+</ul>
+
+<p>This release of the NDK supports the ARMv5TE machine instruction set
+and provides stable headers for libc (the C library), libm (the Math library),
+OpenGL ES 1.1 (3D graphics library), the JNI interface, and other libraries.</p>
+
+<p>The NDK will not benefit most applications. As a developer, you will need
+to balance its benefits against its drawbacks; notably, using native code does
+not result in an automatic performance increase, but does always increase
+application complexity. Typical good candidates for the NDK are self-contained,
+CPU-intensive operations that don't allocate much memory, such as signal processing,
+physics simulation, and so on. Simply re-coding a method to run in C usually does
+not result in a large performance increase. The NDK can, however, can be
+an effective way to reuse a large corpus of existing C/C++ code.</p>
+
+<p>Please note that the NDK <em>does not</em> enable you to develop native-only
+applications. Android's primary runtime remains the Dalvik virtual machine.</p>
+
+<h2 id="contents">Contents of the NDK</h2>
+
+<h4>Development tools</h4>
+
+<p>The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that
+can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin)
+platforms.</p>
+
+<p>It provides a set of system headers for stable native APIs that are
+guaranteed to be supported in all later releases of the platform:</p>
+
+<ul>
+<li>libc (C library) headers</li>
+<li>libm (math library) headers</li>
+<li>JNI interface headers</li>
+<li>libz (Zlib compression) headers</li>
+<li>liblog (Android logging) header</li>
+<li>OpenGL ES 1.1 (3D graphics library) headers</li>
+<li>A Minimal set of headers for C++ support</li>
+</ul>
+
+<p>The NDK also provides a build system that lets you work efficiently with your
+sources, without having to handle the toolchain/platform/CPU/ABI details. You
+create very short build files to describe which sources to compile and which
+Android application will use them &mdash; the build system compiles the sources
+and places the shared libraries directly in your application project. </p>
+
+<p class="caution"><strong>Important:</strong> With the exception of the
+libraries listed above, native system libraries in the Android platform are
+<em>not</em> stable and may change in future platform versions.
+Your applications should <em>only</em> make use of the stable native system
+libraries provided in this NDK. </p>
+
+<h4>Documentation</h4>
+
+<p>The NDK package includes a set of documentation that describes the
+capabilities of the NDK and how to use it to create shared libraries for your
+Android applications. In this release, the documentation is provided only in the
+downloadable NDK package. You can find the documentation in the
+<code>&lt;ndk&gt;/docs/</code> directory. Included are these files:</p>
+
+<ul>
+<li>INSTALL.TXT &mdash; describes how to install the NDK and configure it for
+your host system</li>
+<li>OVERVIEW.TXT &mdash; provides an overview of the NDK capabilities and
+usage</li>
+<li>ANDROID-MK.TXT &mdash; describes the use of the Android.mk file, which
+defines the native sources you want to compile</li>
+<li>APPLICATION-MK.TXT &mdash; describes the use of the Application.mk file,
+which describes the native sources required by your Android application</li>
+<li>HOWTO.TXT &mdash; information about common tasks associated with NDK
+development.</li>
+<li>SYSTEM-ISSUES.TXT &mdash; known issues in the Android system images
+that you should be aware of, if you are developing using the NDK. </li>
+<li>STABLE-APIS.TXT &mdash; a complete list of the stable APIs exposed
+by headers in the NDK.</li>
+<li>CHANGES.TXT &mdash; a complete list of changes to the NDK across all
+releases.</li>
+</ul>
+
+<p>Additionally, the package includes detailed information about the "bionic"
+C library provided with the Android platform that you should be aware of, if you
+are developing using the NDK. You can find the documentation in the
+<code>&lt;ndk&gt;/docs/system/libc/</code> directory:</p>
+
+<ul>
+<li>OVERVIEW.TXT &mdash; provides an overview of the "bionic" C library and the
+features it offers.</li>
+</ul>
+
+<h4>Sample applications</h4>
+
+<p>The NDK includes three sample Android applications that illustrate how to use
+native code in your Android applications:</p>
+
+<ul>
+<li><code>hello-jni</code> &mdash; A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. </li>
+<li><code>two-libs</code> &mdash; A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library that is imported by the
+shared library. </li>
+<li><code>san-angeles</code> &mdash; A simple application that renders 3D
+graphics through the native OpenGL ES APIs, while managing activity lifecycle
+with a {@link android.opengl.GLSurfaceView GLSurfaceView} object. </li>
+</ul>
+
+<p>For more information, see <a href="#samples">Using the Sample
+Applications</a>.</p>
+
+<h2 id="requirements">System and Software Requirements</h2>
+
+<p>The sections below describe the system and software requirements for using
+the Android NDK, as well as platform compatibility considerations that affect
+appplications using libraries produced with the NDK. </p>
+
+<h4>The Android SDK</h4>
+<ul>
+ <li>A complete Android SDK installation (including all dependencies) is
+required.</li>
+ <li>Android 1.5 SDK or later version is required.</li>
+</ul>
+
+<h4>Supported operating systems</h4>
+<ul>
+ <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
+ <li>Mac OS X 10.4.8 or later (x86 only)</li>
+ <li>Linux (32- or 64-bit, tested on Linux Ubuntu Dapper Drake)</li>
+</ul>
+
+<h4>Required development tools</h4>
+<ul>
+ <li>For all development platforms, GNU Make 3.81 or later is required. Earlier
+versions of GNU Make might work but have not been tested.</li>
+ <li>For Windows, a recent release of <a
+href="http://www.cygwin.com">Cygwin</a> is required. </li>
+</ul>
+
+<h4>Android platform compatibility</h4>
+<ul>
+ <li>The native libraries created by the Android NDK can only be used on
+devices running the Android 1.5 platform version or later. This is due to
+toolchain and ABI related changes that make the native libraries incompatible
+with 1.0 and 1.1 system images.</li>
+ <li>For this reason, you should use native libraries produced with the NDK in
+applications that are deployable to devices running the Android 1.5 platform
+version or later.
+ <li>To ensure compatibility, an application using a native library
+produced with the NDK <em>must</em> declare a <code>&lt;uses-library&gt;</code>
+element in its manifest file, with an <code>android:minSdkVersion</code> attribute
+value of "3" or higher. For example:
+
+<pre>&lt;manifest&gt;
+ ...
+ &lt;uses-sdk android:minSdkVersion="3" /&gt;
+ ...
+&lt;/manifest&gt;</pre>
+
+<p>Additionally, if you use this NDK to create a native library that uses the
+OpenGL ES APIs, the application containing the library can be deployed only to
+devices running Android 1.6 or later. To ensure compatibility in this case,
+the application <em>must</em> declare an <code>android:minSdkVersion</code>
+attribute value of "4" or higher. </p>
+
+<p>For more information about API Level and its relationship to Android
+platform versions, see <a href="{@docRoot}guide/appendix/api-levels.html">
+Android API Levels</a>.</p></li>
+</ul>
+
+<h2 id="installing">Installing the NDK</h2>
+
+<p>Installing the NDK on your development computer is straightforward and
+involves extracting the NDK from its download package and running a host-setup
+script. </p>
+
+<p>Before you get started make sure that you have downloaded the latest <a
+href="{@docRoot}sdk/index.html">Android SDK</a> and upgraded your applications
+and environment as needed. The NDK will not work with older versions of the
+Android SDK. Also, take a moment to review the <a href="#requirements">System
+and Software Requirements</a> for the NDK, if you haven't already. </p>
+
+<p>To install the NDK, follow these steps:</p>
+
+<ol>
+<li>From the table at the top of this page, select the NDK package that is
+appropriate for your development computer and download the package.</li>
+<li>Uncompress the NDK download package using tools available on your computer.
+When uncompressed, the NDK files are contained in a directory called
+<code>android-ndk-&lt;version&gt;</code>. You can rename the NDK directory if
+necessary and you can move it to any location on your computer. This
+documentation refers to the NDK directory as <code>&lt;ndk&gt;</code>. </li>
+<li>Open a terminal, change to the NDK directory, and run the host-setup script.
+The script sets up your environment and generates a host configuration file used
+later, when building your shared libraries. The path to the host-setup script
+is:
+
+<p><code>&lt;ndk&gt;/build/host-setup.sh</code></p>
+
+<p>If the script completes successfully, it prints a "Host setup complete."
+message. If it fails, it prints instructions that you can follow to correct any
+problems. </p>
+</li>
+</ol>
+
+<p>Once you have run the host-setup script, you are ready start working with the
+NDK. </p>
+
+<h2 id="gettingstarted">Getting Started with the NDK</h2>
+
+<p>Once you've installed the NDK successfully, take a few minutes to read the
+documentation included in the NDK. You can find the documentation in the
+<code>&lt;ndk&gt;/docs/</code> directory. In particular, please read the
+OVERVIEW.TXT document completely, so that you understand the intent of the NDK
+and how to use it.</p>
+
+<p>If you used a previous version of the NDK, take a moment to review the
+list of NDK changes in the CHANGES.TXT document. </p>
+
+<p>Here's the general outline of how you work with the NDK tools:</p>
+
+<ol>
+<li>Place your native sources under
+<code>&lt;project&gt;/jni/...</code></li>
+<li>Create <code>&lt;project&gt;/jni/Android.mk</code> to
+describe your native sources to the NDK build system</li>
+<li>Create <code>&lt;ndk&gt;/apps/&lt;my_app&gt;/Application.mk</code> to
+describe your Android application and native sources it needs to the NDK build
+system. This file sets up the link between an Android SDK application project
+and any number of shared libraries defined in the
+<code>&lt;project&gt;/jni/</code> folder and it specifies the path to the
+application project that will receive the shared library built from the
+sources.</li>
+<li>Build your native code by running this make command from the top-level NDK
+directory:
+
+<p><code>$ make APP=&lt;my_app&gt;</code></p>
+
+<p>The build tools copy the stripped, shared libraries needed by your
+application to the proper location in the application's project directory.</p>
+</li>
+
+<li>Finally, compile your application using the SDK tools in the usual way. The
+SDK build tools will package the shared libraries in the application's
+deployable .apk file. </p></li>
+
+</ol>
+
+<p>For complete information on all of the steps listed above, please see the
+documentation included with the NDK package. </p>
+
+
+<h2 id="samples">Using the Sample Applications</h2>
+
+<p>The NDK includes three sample applications that illustrate how to use native
+code in your Android applications:</p>
+
+<ul>
+<li><code>hello-jni</code> &mdash; A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. </li>
+<li><code>two-libs</code> &mdash; A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library imported by the shared
+library. </li>
+<li><code>san-angeles</code> &mdash; A simple application that renders 3D
+graphics through the native OpenGL ES APIs, while managing activity lifecycle
+with a {@link android.opengl.GLSurfaceView GLSurfaceView} object. </li>
+</ul>
+
+<p>For each sample, the NDK includes an Android application project, as well as
+the corresponding C source code and the necessary Android.mk and Application.mk
+files. The application projects are provided in
+<code>&lt;ndk&gt;/apps/&lt;app_name&gt;/project/</code> and the C source for
+each application is provided in
+<code>&lt;ndk&gt;/apps/&lt;app_name&gt;/project/jni/</code>.</p>
+
+<p>Once you have installed the NDK, you can build the shared libraries from the
+NDK by using these commands from the root of the NDK directory:</p>
+<ul>
+<li><code>$ make APP=hello-jni</code> &mdash; compiles
+<code>&lt;ndk&gt;/apps/hello-jni/project/jni/hello-jni.c</code> and outputs a
+shared library to
+<code>&lt;ndk&gt;/apps/hello-jni/project/libs/armeabi/libhello-jni.so</code>.
+</li>
+<li><code>$ make APP=two-libs</code> &mdash; compiles
+<code>&lt;ndk&gt;/apps/two-libs/project/jni/second.c</code> and
+<code>first.c</code> and outputs a shared library to
+<code>&lt;ndk&gt;/apps/two-libs/project/libs/armeabi/libtwolib-second.so</code>.
+</li>
+</ul>
+
+<p>Next, build the sample Android applications that use the shared
+libraries:</p>
+
+<ul>
+<li>If you are developing in Eclipse with ADT, use the New Project Wizard to
+create a new Android project for each sample, using the "Import from Existing
+Source" option and importing the source from
+<code>&lt;ndk&gt;/apps/&lt;app_name&gt;/project/</code>. Then, set up an AVD, if
+necessary, and build/run the application in the emulator. For more information
+about creating a new Android project in Eclipse, see <a
+href="{@docRoot}guide/developing/eclipse-adt.html">Developing in
+Eclipse</a>.</li>
+<li>If you are developing with Ant, use the <code>android</code> tool to create
+the build file for each of the sample projects at
+<code>&lt;ndk&gt;/apps/&lt;app_name&gt;/project/</code>. Then set up an AVD, if
+necessary, build your project in the usual way, and run it in the emulator.
+For more information, see <a
+href="{@docRoot}guide/developing/other-ide.html">Developing in Other
+IDEs</a>.</li>
+</ul>
+
+<h2>Discussion Forum and Mailing List</h2>
+
+<p>If you have questions about the NDK or would like to read or contribute to
+discussions about it, please visit the <a
+href="http://groups.google.com/group/android-ndk">android-ndk</a> group and
+mailing list.</p>
+
+
diff --git a/docs/html/sdk/preview/features.jd b/docs/html/sdk/preview/features.jd
new file mode 100644
index 000000000000..81b4ff63cb1f
--- /dev/null
+++ b/docs/html/sdk/preview/features.jd
@@ -0,0 +1,4 @@
+sdk.redirect=true
+
+@jd:body
+
diff --git a/docs/html/sdk/preview/index.jd b/docs/html/sdk/preview/index.jd
index a6a6ca278cf9..81b4ff63cb1f 100644
--- a/docs/html/sdk/preview/index.jd
+++ b/docs/html/sdk/preview/index.jd
@@ -1,194 +1,4 @@
-page.title=Android 1.6 Early Look SDK
-sdk.redirect=0
-sdk.version=1.6
-sdk.preview=true
-
-sdk.date=August 2009
-
-sdk.win_download=android-sdk-windows-1.5_r3.zip
-sdk.win_bytes=191477853
-sdk.win_checksum=1725fd6963ce69102ba7192568dfc711
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r3.zip
-sdk.mac_bytes=183024673
-sdk.mac_checksum=b1bafdaefdcec89a14b604b504e7daec
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r3.zip
-sdk.linux_bytes=178117561
-sdk.linux_checksum=350d0211678ced38da926b8c9ffa4fac
-
-adt.zip_download=ADT-0.9.2.zip
-adt.zip_version=0.9.2
-adt.zip_bytes=178117561
-adt.zip_checksum=350d0211678ced38da926b8c9ffa4fac
+sdk.redirect=true
@jd:body
-<h2 id="overview">SDK Overview</h2>
-
-<p>This Early Look SDK provides the tools, libraries, and system images that you need to start developing and testing applications on the next version of the Android platform &mdash; Android 1.6.</p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p>This Early Look SDK is provided for development and testing purposes only. You can use it to get familiar with the new Android 1.6 framework APIs and the UI and features of the Android 1.6 system, and you can use it to begin testing your existing applications with the new API and system. However, this SDK is not suitable for compiling applications for deployment to Android-powered devices running the Android 1.6 platform, when such devices are available. For more information, see <a href="#provisional">Framework API and Provisional API Level</a>. </p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p class="note"><strong>Note:</strong> This is an <em>early look SDK only</em>.
-The tools and documentation are not complete. The API reference documentation for the early look
-SDK is provided only in the downloadable SDK package &mdash; documentation for this early
-look release is <em>not</em> available at <a href="http://developer.android.com">http://developer.android.com</a>.
-To access the API reference for the early
-look SDK, see the documentation in your SDK's <em>docs/reference/</em> directory.
-<br/><br/>
-Additionally, note that the APIs provided in this SDK are subject to change until the final
-Android 1.6 SDK is released. You should not compile any applications for distribution using
-this version of the SDK. If you do so, your applications will not function properly when deployed
-to Android-powered devices running the final Android 1.6 platform. Please wait for the final
-Android 1.6 SDK before distributing applications built on the Android 1.6 system image.
-</p>
-
-<h3 id="provisional">Framework API and Provisional API Level</h3>
-
-<p>This SDK gives you early access to the framework API that will be offered in Android 1.6. However, at the time of this release, The API specification for Android 1.6 was not yet final, meaning that it is possible that the API could change before the final release of the Android 1.6 platform. </p>
-
-<p>To help distinguish the API offered in the Early Look SDK from that of the final Android 1.6 platform, this SDK assigns a provisional API Level identifier &mdash; <strong>Donut</strong> &mdash; to its Early Look framework API. When the Android 1.6 framework API specification is final, the API Level identifier will change to <strong>4</strong> and the "Donut" identifier will no longer be supported. </p>
-
-<p>The "Donut" framework API is for development only and is not supported as a platform for compiling applications for deployment or publishing. The API Level of "Donut" will not be supported by any Android-powered devices in the field, including those running the Android 1.6 platform. This means that when the final Android 1.6 platform is released, you will need to change your application's <code>android:minSdkVersion</code> manifest attribute to reference the API Level of "4", rather than "Donut", if your application is using Android 1.6 APIs. You would then need to recompile your application before publishing it. </p>
-
-<p>The use of a provisional API Level in this SDK is designed to protect developers and device users from inadvertently publishing or installing applications based on the Early Look framework API, which may not run properly on actual devices running Android 1.6.</p>
-
-<p>To develop using the Early Look framework API, you must reference an API Level of "Donut" in your application's manifest. </p>
-
-<p>Specifically, you must define a <code>android:minSdkVersion</code>
-attribute in a <code>&lt;uses-sdk&gt;</code> element as a child of
-<code>&lt;manifest&gt;</code> in the manifest file. When set, the
-attribute looks like this: </p>
-
-<pre>&lt;manifest&gt;
- ...
- &lt;uses-sdk android:minSdkVersion="Donut" /&gt;
- ...
-&lt;/manifest&gt;</pre>
-
-<p>If you are developing in Eclipse with ADT, please read the next section for information about the ADT upgrade that supports the Early Look SDK's provisional API Level. </p>
-
-
-<h3>ADT Plugin for Eclipse</h3>
-
-<p>An updated version of the ADT Plugin for Eclipse is available in connection with the Android 1.6 Early Look SDK. The new version, ADT 0.9.2, provides support for the provisional API Level "Donut" that is offered in the Early Look SDK and includes several new features and improvements. These changes mean that this Early Look SDK does not work with older Eclipse plugins (ADT 0.9.1).</li>
-
-<p>If you are developing in Eclipse with ADT and want to get started with Android 1.6 Early Look SDK, you <em>must</em> download and install the correct version of the ADT Plugin (0.9.2 or higher). </p>
-
-<p>The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to download the plugin, please see <a href="upgrading.html#UpdateAdt">Upgrading Your Eclipse Plugin</a>. </p>
-
-<h3>Android AVD Manager</h3>
-
-<p>The SDK offers a new tool called Android AVD Manager that lets you manage your AVDs more efficiently. For example, you can quickly create new AVDs, manage their properties, and run a target AVD from a single window.
-
-If you are developing in Eclipse with ADT, you can access the Android AVD Manager from the <strong>Window</strong> menu. </p>
-
-If you are developing in another IDE, you can access the AVD manager capabilities through the <code>android</code> command-line tool, located in the &lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by using the <code>android</code> command without specifying any options. The command-line version of the tool is also still available.</p>
-
-<h3>SDK Component Updater</h3>
-
-<p>This SDK includes a new SDK Component Updater tool that lets you download updated versions of SDK components individually into your environment, as soon as they become available. </p>
-
-<p>The Updater provides a graphical UI that lets you quickly check what Android platforms, add-ons, extras, and documentation packages are available in your SDK environment, what their versions are, and whether updated versions are available. Using the Updater, you can download one or more items from the remote repository and install them directly in your SDK environment. For example, the updater lets you receive updates to SDK tools incrementally, as they are made available, without having to wait for the next SDK release. </p>
-
-<p>To access the Updater, use the <code>android</code> command-line tool, located in the &lt;sdk&gt;/tools directory. You can launch the Updater by using the <code>android</code> command without specifying any options. </p>
-
-<p>In ADT, it you can also access the Updater through the Android AVD Manager tool. </p>
-
-<h3>Support for Test Packages in New Project Wizard</h3>
-
-<p>The New Project Wizard available in the ADT 0.9.2 now lets you add a test package containing JUnit or other classes of tests while you are creating or importing a new Android application project. </p>
-
-
-<h3>Other Notes and Resolved Issues</h3>
-
-<ul>
-<li>This SDK release adds support for Eclipse 3.5 (Galileo) and no longer formally supports Eclipse 3.3 (Europa). </li>
-<li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK only) has been fixed.</li>
-</ul>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>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
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code>&lt;sdk&gt;/tools/</code> directory.
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools use the same project structure as in the previous SDK (Android 1.5), but have been updated to support the the provisional API Level identifier "donut". If you have application projects developed in the Android 1.5 SDK, you can migrate them to the latest SDK without modification. For more information about how to migrate, see <a href="upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="#overview">SDK Overview</a> section above.
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you can 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 &mdash; features, applications included, localizations, API changes, and so on &mdash; see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.6 Early Look (Android Donut)</nobr></td>
-<td width="5%">Donut</td>
-<td width="5%"></td>
-<td>Includes an Early Look Android 1.6 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td width="5%">3</td>
-<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>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).</td>
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>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.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td width="5%">Donut</td>
-<td width="5%">&nbsp;</td>
-<td>Includes the com.google.android.maps external library, an Early Look
-Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td width="5%">3</td>
-<td width="5%">&nbsp;</td>
-<td>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. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code>&lt;sdk&gt;/platforms/&lt;platform&gt;/samples/</code> directory of the SDK package. Note the new location &mdash; the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<p>For example, to view or build the samples available for the Android
-1.6 Early Look platform (AVD target "Android Donut"), you will find the samples in the <code>&lt;sdk&gt;/platforms/android-Donut/samples/</code> directory of the SDK package. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code>&lt;sdk&gt;/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-
-<hr/>
-
-<div class="special">
-<p>Feedback on this preview SDK is welcome on the public Android Open Source forums:</p>
-<p style="margin-left:2em;"><a href="http://source.android.com/discuss">http://source.android.com/discuss</a></p>
-</div>
-
-
diff --git a/docs/html/sdk/preview/installing.jd b/docs/html/sdk/preview/installing.jd
index 05e7ab5e2a70..1e6b26b9077a 100644
--- a/docs/html/sdk/preview/installing.jd
+++ b/docs/html/sdk/preview/installing.jd
@@ -1,346 +1,5 @@
-page.title=Installing the Android SDK
-sdk.version=1.6
-sdk.preview=true
-sdk.date=August 2009
+sdk.redirect=true
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
-
- <h2>In this document</h2>
- <ol>
- <li><a href="#Preparing">Preparing for Installation</a></li>
- <li><a href="#Installing">Installing the SDK</a></li>
- <li><a href="#InstallingADT">Installing the ADT Plugin for Eclipse</a>
- <ol>
- <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
- </ol>
- </li>
- <li><a href="#NextSteps">Next Steps</a></li>
- <li><a href="#InstallationNotes">Installation Notes</a></li>
- </ol>
-
-</div>
-</div>
-
-<p>This page describes how to install the Android Early Look SDK and set up your
-development environment.</p>
-
-<p>If you encounter any problems during installation, see the
-<a href="#InstallationNotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
-</p>
-
-
-<h2 id="Preparing">Preparing for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine meets the
-<a href="requirements.html">System Requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin &mdash; the recommended path if you are new to
-Android &mdash; make sure that you have a suitable version of Eclipse
-installed on your computer (3.4 or newer is recommended). If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="Installing">Installing the SDK</h2>
-
-<p>Unpack the Android SDK .zip archive to a suitable location on your machine.
-By default, the SDK files are unpacked into a directory named
-<code>android_sdk_<em>&lt;platform</em>&gt;_<em>&lt;release&gt;</em></code>.
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system &mdash; you
-will need to refer to the SDK directory later, when setting up the Android plugin or when
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory
-to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without
-needing to supply the full path to the tools directory. </p>
-<ul>
- <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
- for a line that sets the PATH environment variable and add the
- full path to the <code>tools/</code> directory to it. If you don't
- see a line setting the path, you can add one:</li>
-
- <ul><code>export PATH=${PATH}:<em>&lt;your_sdk_dir&gt;</em>/tools</code></ul>
-
- <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
- proceed as for Linux. You can create the <code>.bash_profile</code> if
- you haven't already set one up on your machine. </li>
-
- <li>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
- <code>tools/</code> directory to the path. </li>
- </ul>
-
-<p>Note that, if you update your SDK in the future, you
-should remember to update your <code>PATH</code> settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools (ADT) 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 <a href="#NextSteps">Next Steps</a>).</p>
-
-
-<h2 id="InstallingADT">Installing the ADT Plugin for Eclipse</h2>
-
-<p>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.</p>
-
-<p>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&mdash;skip to <a href="#NextSteps">Next Steps</a>.)</p>
-
-<p>Once you have Eclipse installed, as described in <a href="#Preparing">Preparing for
-Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
- <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates</strong>
-&gt; <strong>Find and Install...</strong>. </li>
- <li>In the dialog that appears, select <strong>Search for new features to install</strong>
-and click <strong>Next</strong>. </li>
- <li>Click <strong>New Remote Site</strong>. </li>
- <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and
- enter the URL:
- <pre>https://dl-ssl.google.com/android/eclipse/</pre>
- <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
- instead of "https" (https is preferred for security reasons).</p>
- <p>Click <strong>OK</strong>.</p> </li>
- <li>You should now see the new site added to the search list (and checked).
- Click <strong>Finish</strong>. </li>
- <li>In the subsequent Search Results dialog box, select the checkbox for the
- "Android Plugin".
- This will select the nested tools: "Android DDMS" and "Android Development Tools".
- Click <strong>Next</strong>.</li>
- <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
- <li>On the following Installation window, click <strong>Finish</strong>. </li>
- <li>The ADT plugin is not digitally signed. Accept the installation anyway
- by clicking <strong>Install All</strong>. </li>
- <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
- <li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates...</strong>.</li>
- <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
- <li>Click <strong>Add Site...</strong> </li>
- <li>Enter the Location:
- <pre>https://dl-ssl.google.com/android/eclipse/</pre>
- <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
- instead of "https" (https is preferred for security reasons).</p>
- <p>Click <strong>OK</strong>.</p></li>
- <li>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 <strong>Install...</strong></li>
- <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
- should both be checked. Click <strong>Next</strong>. </li>
- <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
- <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
- <li>Select <strong>Window</strong> &gt; <strong>Preferences...</strong> to open the Preferences
- panel (Mac: <strong>Eclipse</strong> &gt; <strong>Preferences</strong>).</li>
- <li>Select <strong>Android</strong> from the left panel. </li>
- <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and
-locate your downloaded SDK directory. </li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the
-<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="Troubleshooting">Troubleshooting ADT Installation</h3>
-<p>
-If you are having trouble downloading the ADT plugin after following the steps above, here are
-some suggestions: </p>
-
-<ul>
- <li>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:
- <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
- <li>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 <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) &gt;
- <strong>Preferences</strong> &gt; <strong>General</strong> &gt;
- <strong>Network Connections</strong>.</li>
-</ul>
-<p>
-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:
-</p>
-<ol>
- <li><a href="http://developer.android.com/sdk/preview/index.html">Download the ADT Plugin zip file</a> (do not unpack it).</li>
- <li>Follow steps 1 and 2 in the default install instructions (above).</li>
- <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
- In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
- <li>Browse and select the downloaded zip file.</li>
- <li>Follow the remaining procedures, above, starting from steps 5.</li>
-</ol>
-<p>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.</p>
-
-<h4>Other install errors</h4>
-
-<p>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
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse:
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...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.</p>
-
-
-<h2 id="NextSteps">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
- <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
- Guide</a> and the types of information it provides</li>
- <li>Read an introduction to Android as a platform in <a
- href="{@docRoot}guide/basics/what-is-android.html">What is
- Android?</a></li>
- <li>Learn about the Android framework and how applications run on it in
- <a href="{@docRoot}guide/topics/fundamentals.html">Application
- Fundamentals</a></li>
- <li>Take a look at the Android framework API specification in the <a
- href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
- <li>Get an overview of the <a
- href="{@docRoot}guide/developing/tools/index.html">development
- tools</a> that are available to you</li>
- <li>Read how to develop <a
- href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
- <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
- </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
- <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
- World application</a> (highly recommended, especially for Eclipse users)</li>
- <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
- Notepad Tutorial</a> to build a full Android application </li>
- <li>Create a new project for one of the other sample applications
- included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platfrom&gt;</em>/samples</code>,
- then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
- <li>Take a look at the <a
- href="{@docRoot}community/index.html">Community</a> tab to see a list of
- Android developers groups. In particular, you might want to look at the
- <a href="http://groups.google.com/group/android-developers">Android
- Developers</a> group to get a sense for what the Android developer
- community is like.</li>
-</ul>
-
-
-<h2 id="InstallationNotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
- <li>If you need help installing and configuring Java on your
- development machine, you might find these resources helpful:
- <ul>
- <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
- <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
- </ul>
- </li>
- <li>Here are the steps to install Java and Eclipse, prior to installing
- the Android SDK and ADT Plugin.
- <ol>
- <li>If you are running a 64-bit distribution on your development
- machine, you need to install the <code>ia32-libs</code> package using
- <code>apt-get:</code>:
- <pre>apt-get install ia32-libs</pre>
- </li>
- <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
- <li>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 (<a
- href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
- downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
- <li>Follow the steps given in previous sections to install the SDK
- and the ADT plugin. </li>
- </ol>
- </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
- <li>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 <a href="{@docRoot}sdk/{@sdkCurrent}/requirements.html">System Requirements</a>.
- 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.</li>
-</ul>
-
-
-
diff --git a/docs/html/sdk/preview/requirements.jd b/docs/html/sdk/preview/requirements.jd
index 15731e0a48e3..1e6b26b9077a 100644
--- a/docs/html/sdk/preview/requirements.jd
+++ b/docs/html/sdk/preview/requirements.jd
@@ -1,45 +1,5 @@
-page.title=System Requirements
-sdk.version=1.6
-sdk.preview=true
-@jd:body
-
-<p>The sections below describe the system and software requirements for developing
-Android applications using the Android SDK tools included in Android
-<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
+sdk.redirect=true
-<h3>Supported Operating Systems</h3>
-<ul>
- <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
- <li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
-</ul>
+@jd:body
-<h3>Supported Development Environments</h3>
-<ul>
- <li>Eclipse IDE
- <ul>
- <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede), 3.5 (Galileo)
- <ul>
- <li><strong>Note:</strong> Eclipse 3.3 has not been fully tested with ADT 0.9.2 and support can no longer be guaranteed. We suggest you upgrade to
- Eclipse 3.4 or 3.5.</li>
- <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
- <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
- <li>Eclipse Classic IDE package is not supported.</li>
- </ul>
- </li>
- <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
- <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
- <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
- </ul>
- </li>
- <li>Other development environments or IDEs
- <ul>
- <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
- <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
- <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
- </ul>
- </li>
-</ul>
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. 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. </p> \ No newline at end of file
diff --git a/docs/html/sdk/preview/upgrading.jd b/docs/html/sdk/preview/upgrading.jd
index da2eb251f6a9..1e6b26b9077a 100644
--- a/docs/html/sdk/preview/upgrading.jd
+++ b/docs/html/sdk/preview/upgrading.jd
@@ -1,258 +1,5 @@
-page.title=Upgrading the SDK
-sdk.version=1.6
-sdk.preview=true
-@jd:body
-
-
-<div id="qv-wrapper">
-<div id="qv">
-
- <h2>Upgrading the SDK</h2>
- <ul>
- <li>ADT 0.9 / 0.9.1 is not compatible with the Android 1.6 Early Look SDK. You must upgrade
- ADT to 0.9.2.</li>
- <li>The Early Look SDK uses a special provisional API Level, "Donut", which is required
- to compile against the new Donut platform.</li>
- </ul>
-
- <h2>In this document</h2>
- <ol>
- <li><a href="#Install">Install the SDK</a></li>
- <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
- <li><a href="#RunYourApps">Run Your Applications</a></li>
- <li><a href="#ConvertYourApps">Convert Your Applications</a></li>
- </ol>
-
- <h2>Migrating references</h2>
- <ol>
- <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 Early Look API Differences</a></li>
- </ol>
-
-</div>
-</div>
-
-<p>This document describes how to move your development environment and existing
-Android applications from an Android 1.5 SDK to the Android 1.6 Early Look SDK.
-If you are migrating applications from an SDK older than 1.5, please also read the upgrading
-document available in the Android 1.5 SDK package.</p>
-
-<p>There are several compelling reasons to upgrade, such as new SDK tools
-that make developing more efficient and new APIs that allow you to expand the feature-set
-of your applications. However, even if you or your applications don't require these enhancements,
-it's important that you upgrade to ensure that your applications run properly on the upcoming
-Android platform.</p>
-
-<p>The Android 1.6 platform will soon be deployable to devices around the world.
-If you have already released Android applications to the public, you should
-test the forward-compatibility of your applications on the latest version of the platform
-as soon as possible. It's unlikely that you'll encounter breakage in your applications, but
-in the interest of maintaining the best user experience, you should take no risks.
-So, please install the new Android SDK and test your applications on the new platform.</p>
-
-<!-- NOT AVAILABLE FOR THE PREVIEW
-<p>For more information on new SDK features and system changes,
-see the <a href="{@docRoot}sdk/android-1.5.html">Android 1.5 Version Notes</a>.</p>
--->
-
-<h2 id="Install">Install the SDK</h2>
-
-<!--
-<p>If you haven't yet downloaded the SDK, <a href="index.html">download from here</a>
-and unpack it into a safe location.</p>
--->
-<p>Now that you have the Android 1.6 Early Look SDK,
-you need to perform some of the regular installation steps.</p>
-
-
-<p>If you had previously setup your <code>PATH</code> variable to point to the SDK tools directory,
-then you need to update it to point to the new SDK. For example, for a
-<code>.bashrc</code> or <code>.bash_profile</code> file:</p>
-<pre>export PATH=$PATH:<em>&lt;your_sdk_dir></em>/tools</pre>
-
-
-<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
-
-<p>If you don't use Eclipse for development,
-skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
-
-<!--
-<p><em>If you installed ADT 0.9.2 with the Android 1.6 Early Look SDK, there have been
-additional changes, so please continue with this guide and update ADT.</em></p>
--->
-
-<p>A new ADT plugin (version 0.9.2) is required for the Android 1.6 Early Look SDK.
-With ADT 0.9.2, you can still compile your applications against
-multiple platform versions, such as Android 1.5. However, previous versions
-of ADT will not work with the Android 1.6 Early Look SDK, so you must upgrade
-to ADT 0.9.2.</p>
-
-<p>If you're currently using a version of ADT <em>older</em> than version 0.9, then you must
-uninstall ADT before you proceed (read how to
-<a href="http://developer.android.com/sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall
-your previous ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't
-need to uninstall and can continue with the procedure below.</p>
-
-<h3 id="installAdt">Install the 0.9.2 ADT plugin</h3>
-
-<p>To install the new ADT plugin, follow the steps below for your respective version of Eclipse.</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="50%">
-<!-- 3.3 steps -->
-<ol>
- <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt;
- <strong>Find and Install</strong>. </li>
- <li>Select <strong>Search for new features to install</strong>.</li>
- <li>Select the Android plugin entry by checking the box next to it,
- then click <strong>Finish</strong>.
- <p>(Your original entry for the plugin should still be here. If not, see the guide
- to <a href="installing.html#installingplugin">Installing the ADT Plugin</a>.)
- </p></li>
- <li>In the results, expand the entry for the Android plugin and
- be sure that "Developer Tools" is checked, then click <strong>Next</strong>.
- (This will install "Android DDMS" and "Android Development Tools".)</li>
- <li>Read and accept the license agreement, then click <strong>Next</strong>.
- <li>In the next window, click <strong>Finish</strong> to start installation.</li>
- <li>The ADT plugin is not digitally signed. Accept the installation anyway by clicking
- <strong>Install All</strong>.</li>
- <li>Restart Eclipse.</li>
-</ol>
-</td>
-<td>
-<!-- 3.4 steps -->
-<ol>
- <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong>.</li>
- <li>Select the <strong>Available Software</strong> tab.</li>
- <li>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
- <strong>Install</strong>.</li>
- <li>On the next window, "Android DDMS" and "Android Development Tools"
- should both be checked. Click <strong>Finish</strong>.</li>
- <li>Restart Eclipse.</li>
-</ol>
-</td>
-</tr>
-</table>
-
-<p>If you encounter problems with this update procedure, try performing a fresh installation.
-Ensure your current ADT is fully uninstalled and then
-follow the guide to <a href="installing.html#InstallingADT">Installing the ADT Plugin
-for Eclipse</a>.</p>
-
-<h3 id="updateEclipsePrefs">Update your Eclipse SDK Preferences</h3>
-
-<p>The last step is to update your Eclipse preferences to point to the new SDK directory:</p>
-<ol>
- <li>Select <strong>Window</strong> > <strong>Preferences</strong> to open the Preferences
- panel (Mac: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li>
- <li>Select <strong>Android</strong> from the left panel.</li>
- <li>For the SDK Location, click <strong>Browse</strong>
- and locate your SDK directory.</li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-
-<h2 id="RunYourApps">Run Your Applications</h2>
-
-<p>Now that you have installed the Android 1.6 Early Look SDK, we encourage you
-to run each of your applications in an instance
-of the emulator that's running the new Android 1.6 system image. It's possible (however, unlikely)
-that you'll encounter unexpected behavior in your application when you run your applications on
-the new 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.</p>
-
-<p>To test forward-compatibility, simply run your application, as-is, on an instance of the Android
-Emulator that uses an AVD targeted to "Android Donut (Preview)":</p>
-
-<ol>
- <li>Make no changes to your application code.</li>
- <li>Create a new AVD that's targeted to the "Donut" platform.</li>
- <li>Launch your application in an emulator running the new AVD.</li>
- <li>Perform normal testing on your application to ensure everything works as expected.</li>
-</ol>
-
-<p>For more information on creating an AVD and launching your application refer to the
-<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to
-Running Your Application</a> or the
-<a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to
-Running Your Application</a>, depending on your development environment.</p>
-
-
-<h2 id="ConvertYourApps">Convert Your Applications</h2>
-
-<p>If you want to fully utilize new APIs introduced with the Android 1.6 Early Look SDK,
-then you'll need to convert your application to compile against the new "Donut" platform.</p>
-
-<p>First, you need to change the value of the <code>minSdkVersion</code> attribute in
-the <code>&lt;uses-sdk></code> manifest element. While
-running your application against the Donut platform included with the Early Look SDK, you
-<strong>must</strong> set the <code>minSdkVersion</code> value to "Donut". For example:</p>
-
-<pre>
-&lt;manifest>
- ...
- &lt;uses-sdk android:minSdkVersion="Donut" />
- ...
-&lt;/manifest>
-</pre>
-
-<p>This value is required only while compiling against the Donut platform included with
-the Android 1.6 Early Look SDK. Once the final SDK is made
-available for Android 1.6, you will need to change this value.
-For more information, read about the <a href="index.html#provisional">Framework API and
-Provisional API Level</a>.</p>
-
-<p>Once you've changed the <code>minSdkVersion</code> value in your application's manifest,
-continue with the procedures below to convert your applications.</p>
-
-<h3 id="EclipseUsers">Eclipse users</h3>
-
-<ol>
- <li>Right-click on the individual project (in the Package Explorer)
- and select <strong>Properties</strong>.</li>
- <li>In the properties, open the Android panel and select a new Project Build Target.
- Select "Android Donut (Preview)" to target the new
- platform (or "Google APIs" with the "Donut" platform if your application uses the Maps APIs).</li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
- <p>Remember that you must create an AVD that targets the same platform in order to run the emulator.
- Continue with the
- <a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to
- Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
- target" or the AVD that includes the "Donut" platform. If your application utilizes the Google Maps APIs (i.e.,
- MapView), be certain to select a target that includes the Google APIs.</p>
-
-
-<h3 id="AntUsers">Ant users</h3>
-
- <p>Use the <code>android</code> tool (located in <code><em>your_sdk</em>/tools/</code>)
- to create a new <code>build.xml</code> that references
- the new platform target. To see a list of available targets, execute:</p>
-
- <pre>android list targets</pre>
-
- <p>Select the target <code>id</code> that corresponds to the "Donut" platform and pass it with the
- <code>--target</code> parameter when updating your project. For example:</p>
-
- <pre>android update project --path /path/to/my-project --target 2</pre>
-
-<p>Remember that you must create an Android Virtual Device (AVD) that's targeted to the
- same platform before you can run the updated application an instance
- of the emulator. Please continue with the
- <a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to
- Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
- target" for the AVD that includes the "Donut" platform.
- If your application utilizes the Google Maps APIs (i.e.,
- MapView), be certain to select a target that includes the Google APIs.</p>
+sdk.redirect=true
+@jd:body
-<div class="special">
-<p>If you have additional trouble updating your code, visit the
-<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
-to seek help from other Android developers.</p>
-</div>
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index c08d75e46e66..7a21e4afebc8 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -74,6 +74,7 @@
<span class="zh-TW">系統影像版本資訊</span>
</h2>
<ul>
+ <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Version Notes</a></li>
<li><a href="<?cs var:toroot ?>sdk/android-1.5.html">Android 1.5 Version Notes</a></li>
<li><a href="<?cs var:toroot ?>sdk/android-1.1.html">Android 1.1 Version Notes</a></li>
</ul>
@@ -81,7 +82,7 @@
<li>
<h2>Native Development Tools</h2>
<ul>
- <li><a href="<?cs var:toroot ?>sdk/ndk/1.5_r1/index.html">Android 1.5 NDK, r1</a></li>
+ <li><a href="<?cs var:toroot ?>sdk/ndk/1.6_r1/index.html">Android 1.6 NDK, r1</a></li>
</ul>
</li>
<li>
@@ -96,6 +97,7 @@
<span class="zh-TW">較舊的 SDK 發行版本</span>
</h2>
<ul>
+ <li><a href="<?cs var:toroot ?>sdk/1.5_r3/index.html">Android 1.5 SDK, r3</a></li>
<li><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html">Android 1.1 SDK, r1</a></li>
<li><a href="<?cs var:toroot ?>sdk/1.0_r2/index.html">Android 1.0 SDK, r2</a></li>
<li><a href="<?cs var:toroot ?>sdk/older_releases.html">Other Releases</a></li>
diff --git a/docs/html/sdk/terms.jd b/docs/html/sdk/terms.jd
index ffc574acca85..614a438ef17c 100644
--- a/docs/html/sdk/terms.jd
+++ b/docs/html/sdk/terms.jd
@@ -1,6 +1,4 @@
page.title=Terms and Conditions
-sdk.version=1.6
-sdk.preview=true
hide_license_footer=true
@jd:body
diff --git a/docs/html/search.jd b/docs/html/search.jd
index defba3087af3..8032b2219167 100644
--- a/docs/html/search.jd
+++ b/docs/html/search.jd
@@ -1,99 +1,136 @@
page.title=Search Results
@jd:body
-<script src="http://www.google.com/jsapi" type="text/javascript"></script>
-<script src="{@docRoot}assets/jquery-history.js" type="text/javascript"></script>
-<script type="text/javascript">
- google.load('search', '1');
-
- function OnLoad() {
- document.getElementById("search_autocomplete").style.color = "#000";
-
- // create search control
- searchControl = new google.search.SearchControl();
-
- // use our existing search form and use tabs when multiple searchers are used
- drawOptions = new google.search.DrawOptions();
- drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
- drawOptions.setInput(document.getElementById("search_autocomplete"));
-
- // configure search result options
- searchOptions = new google.search.SearcherOptions();
- searchOptions.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
-
- // configure each of the searchers, for each tab
- devSiteSearcher = new google.search.WebSearch();
- devSiteSearcher.setUserDefinedLabel("All Developers Site");
- devSiteSearcher.setSiteRestriction("http://developer.android.com/");
-
- devGuideSearcher = new google.search.WebSearch();
- devGuideSearcher.setUserDefinedLabel("Dev Guide");
- devGuideSearcher.setSiteRestriction("http://developer.android.com/guide/");
-
- referenceSearcher = new google.search.WebSearch();
- referenceSearcher.setUserDefinedLabel("Reference");
- referenceSearcher.setSiteRestriction("http://developer.android.com/reference/");
-
- blogSearcher = new google.search.WebSearch();
- blogSearcher.setUserDefinedLabel("Blog");
- blogSearcher.setSiteRestriction("http://android-developers.blogspot.com");
-
- groupsSearcher = new google.search.WebSearch();
- groupsSearcher.setUserDefinedLabel("Developer Groups");
- groupsSearcher.setSiteRestriction("001283715400630100512:ggqrtvkztwm");
-
- sourceSiteSearcher = new google.search.WebSearch();
- sourceSiteSearcher.setUserDefinedLabel("Android Source");
- sourceSiteSearcher.setSiteRestriction("http://source.android.com");
-
- homeSiteSearcher = new google.search.WebSearch();
- homeSiteSearcher.setUserDefinedLabel("Android Home");
- homeSiteSearcher.setSiteRestriction("http://www.android.com");
-
- // add each searcher to the search control
- searchControl.addSearcher(devSiteSearcher, searchOptions);
- searchControl.addSearcher(devGuideSearcher, searchOptions);
- searchControl.addSearcher(referenceSearcher, searchOptions);
- searchControl.addSearcher(groupsSearcher, searchOptions);
- searchControl.addSearcher(sourceSiteSearcher, searchOptions);
- searchControl.addSearcher(blogSearcher, searchOptions);
-
- // configure result options
- searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
- searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
- searchControl.setTimeoutInterval(google.search.SearchControl.TIMEOUT_LONG);
- searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
-
- // upon ajax search, refresh the url and search title
- searchControl.setSearchStartingCallback(this, function(control, searcher, query) {
- $("#searchTitle").html("search results for <em>" + query + "</em>");
- $.history.add('q=' + query); // add the current query to the browser history
- });
-
- // draw the search results box
- searchControl.draw(document.getElementById("leftSearchControl"), drawOptions);
-
- // execute a search upon page load, from url hash query
- if (location.href.indexOf("#q=") != -1) {
- url = location.href.split("#q=");
- searchControl.execute(decodeURI(url[1]));
- }
- document.getElementById("search_autocomplete").focus();
- }
-
- google.setOnLoadCallback(OnLoad, true);
-
- // when an event on the browser history occurs (back, forward, load) perform a search
- $(window).history(function(e, hash) {
- hashParts = hash.split('=');
- searchControl.execute(decodeURI(hashParts[1]));
- $("#searchTitle").html("search results for <em>" + decodeURI(hashParts[1]) + "</em>");
- });
-
- // forcefully regain key-up event control (previously jacked by search api)
- $("#search_autocomplete").keyup(function(event) {
- return search_changed(event, false, '/');
- });
+<script src="http://www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/jquery-history.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var tabIndex = 0;
+
+ google.load('search', '1');
+
+ function OnLoad() {
+ document.getElementById("search_autocomplete").style.color = "#000";
+
+ // create search control
+ searchControl = new google.search.SearchControl();
+
+ // use our existing search form and use tabs when multiple searchers are used
+ drawOptions = new google.search.DrawOptions();
+ drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
+ drawOptions.setInput(document.getElementById("search_autocomplete"));
+
+ // configure search result options
+ searchOptions = new google.search.SearcherOptions();
+ searchOptions.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
+
+ // configure each of the searchers, for each tab
+ devSiteSearcher = new google.search.WebSearch();
+ devSiteSearcher.setUserDefinedLabel("All Developers Site");
+ devSiteSearcher.setSiteRestriction("http://developer.android.com/");
+
+ devGuideSearcher = new google.search.WebSearch();
+ devGuideSearcher.setUserDefinedLabel("Dev Guide");
+ devGuideSearcher.setSiteRestriction("http://developer.android.com/guide/");
+
+ referenceSearcher = new google.search.WebSearch();
+ referenceSearcher.setUserDefinedLabel("Reference");
+ referenceSearcher.setSiteRestriction("http://developer.android.com/reference/");
+
+ blogSearcher = new google.search.WebSearch();
+ blogSearcher.setUserDefinedLabel("Blog");
+ blogSearcher.setSiteRestriction("http://android-developers.blogspot.com");
+
+ groupsSearcher = new google.search.WebSearch();
+ groupsSearcher.setUserDefinedLabel("Developer Groups");
+ groupsSearcher.setSiteRestriction("001283715400630100512:ggqrtvkztwm");
+
+ sourceSiteSearcher = new google.search.WebSearch();
+ sourceSiteSearcher.setUserDefinedLabel("Android Source");
+ sourceSiteSearcher.setSiteRestriction("http://source.android.com");
+
+ homeSiteSearcher = new google.search.WebSearch();
+ homeSiteSearcher.setUserDefinedLabel("Android Home");
+ homeSiteSearcher.setSiteRestriction("http://www.android.com");
+
+ // add each searcher to the search control
+ searchControl.addSearcher(devSiteSearcher, searchOptions);
+ searchControl.addSearcher(devGuideSearcher, searchOptions);
+ searchControl.addSearcher(referenceSearcher, searchOptions);
+ searchControl.addSearcher(groupsSearcher, searchOptions);
+ searchControl.addSearcher(sourceSiteSearcher, searchOptions);
+ searchControl.addSearcher(blogSearcher, searchOptions);
+
+ // configure result options
+ searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
+ searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
+ searchControl.setTimeoutInterval(google.search.SearchControl.TIMEOUT_LONG);
+ searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
+
+ // upon ajax search, refresh the url and search title
+ searchControl.setSearchStartingCallback(this, function(control, searcher, query) {
+ // save the tab index from the hash
+ tabIndex = location.hash.split("&t=")[1];
+
+ $("#searchTitle").html("search results for <em>" + query + "</em>");
+ $.history.add('q=' + query + '&t=' + tabIndex);
+ openTab();
+ });
+
+ // draw the search results box
+ searchControl.draw(document.getElementById("leftSearchControl"), drawOptions);
+
+ // get query and execute the search
+ if (location.hash.indexOf("&t=") != -1) {
+ searchControl.execute(decodeURI(getQuery(location.hash)));
+ }
+
+ document.getElementById("search_autocomplete").focus();
+ addTabListeners();
+ }
+ // End of OnLoad
+
+
+ google.setOnLoadCallback(OnLoad, true);
+
+ // when an event on the browser history occurs (back, forward, load) perform a search
+ $(window).history(function(e, hash) {
+ var query = decodeURI(getQuery(hash));
+ searchControl.execute(query);
+ $("#searchTitle").html("search results for <em>" + query + "</em>");
+ });
+
+ // forcefully regain key-up event control (previously jacked by search api)
+ $("#search_autocomplete").keyup(function(event) {
+ return search_changed(event, false, '/');
+ });
+
+ // open a tab, specified by its array position
+ function openTab() {
+ tabIndex = location.hash.split("&t=")[1];
+
+ // show the appropriate tab
+ var tabHeaders = $(".gsc-tabHeader");
+ $(tabHeaders[tabIndex]).click();
+ }
+
+ // add event listeners to each tab so we can track the browser history
+ function addTabListeners() {
+ var tabHeaders = $(".gsc-tabHeader");
+ for (var i = 0; i < tabHeaders.length; i++) {
+ $(tabHeaders[i]).attr("id",i).click(function() {
+ var tabHeaders = $(".gsc-tabHeader");
+ var tabIndex = $(this).attr("id");
+ $.history.add('q=' + getQuery(location.hash) + '&t=' + tabIndex); // update the hash with the new tab
+ });
+ }
+ }
+
+ function getQuery(hash) {
+ var hashParts = hash.split('&t=');
+ var queryParts = hashParts[0].split('=');
+ return queryParts[1];
+ }
+
</script>
<div id="mainBodyFixed" style="width:auto; margin:20px">
diff --git a/docs/html/videos/index.jd b/docs/html/videos/index.jd
index c9c88cfa3d02..ddb9f861fae2 100644
--- a/docs/html/videos/index.jd
+++ b/docs/html/videos/index.jd
@@ -37,10 +37,12 @@ var playlistsWithTitleInDescription = "734A052F802C96B9";
* Each playlist ID is paired with a custom video description.
*/
var featured = {
+// Android 1.6 Release
+ 'MBRFkLKRwFw' : "The Android 1.6 release includes new features and improvements to the Android platform. Here's an introduction to what's new in Android 1.6.",
// How to Make your Android UI Fast..
'N6YdwzAvwOA' : "Make your user interface fast, with more efficient AdapterViews, better bitmap scaling, faster redrawing, ViewStub layouts, fewer Views, and more.",
// Coding for Life: Battery Life
- 'OUemfrKe65c' : "Learn what kinds of operations consume the most battery and how you can reduce your usage, with tips for parsing and zipping data, using wakelocks, and running a Service.",
+// 'OUemfrKe65c' : "Learn what kinds of operations consume the most battery and how you can reduce your usage, with tips for parsing and zipping data, using wakelocks, and running a Service.",
// How Do I Code Thee?
'GARMe7Km_gk' : "If you'd like to augment your Android applications with pieces written in JavaScript or native code, watch this video."
};
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index eef1096fb6c4..216dea007e6b 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -77,7 +77,8 @@ public final class Bitmap implements Parcelable {
This can be called from JNI code.
*/
- private Bitmap(int nativeBitmap, boolean isMutable, byte[] ninePatchChunk) {
+ private Bitmap(int nativeBitmap, boolean isMutable, byte[] ninePatchChunk,
+ int density) {
if (nativeBitmap == 0) {
throw new RuntimeException("internal error: native bitmap is 0");
}
@@ -86,6 +87,9 @@ public final class Bitmap implements Parcelable {
mNativeBitmap = nativeBitmap;
mIsMutable = isMutable;
mNinePatchChunk = ninePatchChunk;
+ if (density >= 0) {
+ mDensity = density;
+ }
}
/**
@@ -892,7 +896,7 @@ public final class Bitmap implements Parcelable {
*/
public void writeToParcel(Parcel p, int flags) {
checkRecycled("Can't parcel a recycled bitmap");
- if (!nativeWriteToParcel(mNativeBitmap, mIsMutable, p)) {
+ if (!nativeWriteToParcel(mNativeBitmap, mIsMutable, mDensity, p)) {
throw new RuntimeException("native writeToParcel failed");
}
}
@@ -1006,6 +1010,7 @@ public final class Bitmap implements Parcelable {
// returns true on success
private static native boolean nativeWriteToParcel(int nativeBitmap,
boolean isMutable,
+ int density,
Parcel p);
// returns a new bitmap built from the native bitmap's alpha, and the paint
private static native Bitmap nativeExtractAlpha(int nativeBitmap,
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index 862e82724fd4..3e3f87b570e5 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -36,6 +36,10 @@ public class Paint {
private Typeface mTypeface;
private Xfermode mXfermode;
+ private boolean mHasCompatScaling;
+ private float mCompatScaling;
+ private float mInvCompatScaling;
+
private static final Style[] sStyleArray = {
Style.FILL, Style.STROKE, Style.FILL_AND_STROKE
};
@@ -189,6 +193,7 @@ public class Paint {
public Paint(int flags) {
mNativePaint = native_init();
setFlags(flags | DEFAULT_PAINT_FLAGS);
+ mCompatScaling = mInvCompatScaling = 1;
}
/**
@@ -200,12 +205,17 @@ public class Paint {
*/
public Paint(Paint paint) {
mNativePaint = native_initWithPaint(paint.mNativePaint);
+ mHasCompatScaling = paint.mHasCompatScaling;
+ mCompatScaling = paint.mCompatScaling;
+ mInvCompatScaling = paint.mInvCompatScaling;
}
/** Restores the paint to its default settings. */
public void reset() {
native_reset(mNativePaint);
setFlags(DEFAULT_PAINT_FLAGS);
+ mHasCompatScaling = false;
+ mCompatScaling = mInvCompatScaling = 1;
}
/**
@@ -225,9 +235,24 @@ public class Paint {
mShader = src.mShader;
mTypeface = src.mTypeface;
mXfermode = src.mXfermode;
+ mHasCompatScaling = src.mHasCompatScaling;
+ mCompatScaling = src.mCompatScaling;
+ mInvCompatScaling = src.mInvCompatScaling;
}
}
+ /** @hide */
+ public void setCompatibilityScaling(float factor) {
+ if (factor == 1.0) {
+ mHasCompatScaling = false;
+ mCompatScaling = mInvCompatScaling = 1.0f;
+ } else {
+ mHasCompatScaling = true;
+ mCompatScaling = factor;
+ mInvCompatScaling = 1.0f/factor;
+ }
+ }
+
/**
* Return the paint's flags. Use the Flag enum to test flag values.
*
@@ -972,8 +997,17 @@ public class Paint {
* @param count THe number of characters to measure, beginning with start
* @return The width of the text
*/
- public native float measureText(char[] text, int index, int count);
+ public float measureText(char[] text, int index, int count) {
+ if (!mHasCompatScaling) return native_measureText(text, index, count);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text, index, count);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(char[] text, int index, int count);
+
/**
* Return the width of the text.
*
@@ -982,16 +1016,34 @@ public class Paint {
* @param end 1 beyond the index of the last character to measure
* @return The width of the text
*/
- public native float measureText(String text, int start, int end);
+ public float measureText(String text, int start, int end) {
+ if (!mHasCompatScaling) return native_measureText(text, start, end);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text, start, end);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(String text, int start, int end);
+
/**
* Return the width of the text.
*
* @param text The text to measure
* @return The width of the text
*/
- public native float measureText(String text);
+ public float measureText(String text) {
+ if (!mHasCompatScaling) return native_measureText(text);
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ float w = native_measureText(text);
+ setTextSize(oldSize);
+ return w*mInvCompatScaling;
+ }
+ private native float native_measureText(String text);
+
/**
* Return the width of the text.
*
@@ -1013,10 +1065,10 @@ public class Paint {
}
char[] buf = TemporaryBuffer.obtain(end - start);
- TextUtils.getChars(text, start, end, buf, 0);
- float result = measureText(buf, 0, end - start);
+ TextUtils.getChars(text, start, end, buf, 0);
+ float result = measureText(buf, 0, end - start);
TemporaryBuffer.recycle(buf);
- return result;
+ return result;
}
/**
@@ -1036,8 +1088,22 @@ public class Paint {
* @return The number of chars that were measured. Will always be <=
* abs(count).
*/
- public native int breakText(char[] text, int index, int count,
- float maxWidth, float[] measuredWidth);
+ public int breakText(char[] text, int index, int count,
+ float maxWidth, float[] measuredWidth) {
+ if (!mHasCompatScaling) {
+ return native_breakText(text, index, count, maxWidth, measuredWidth);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_breakText(text, index, count, maxWidth*mCompatScaling,
+ measuredWidth);
+ setTextSize(oldSize);
+ if (measuredWidth != null) measuredWidth[0] *= mInvCompatScaling;
+ return res;
+ }
+
+ private native int native_breakText(char[] text, int index, int count,
+ float maxWidth, float[] measuredWidth);
/**
* Measure the text, stopping early if the measured width exceeds maxWidth.
@@ -1094,8 +1160,22 @@ public class Paint {
* @return The number of chars that were measured. Will always be <=
* abs(count).
*/
- public native int breakText(String text, boolean measureForwards,
- float maxWidth, float[] measuredWidth);
+ public int breakText(String text, boolean measureForwards,
+ float maxWidth, float[] measuredWidth) {
+ if (!mHasCompatScaling) {
+ return native_breakText(text, measureForwards, maxWidth, measuredWidth);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_breakText(text, measureForwards, maxWidth*mCompatScaling,
+ measuredWidth);
+ setTextSize(oldSize);
+ if (measuredWidth != null) measuredWidth[0] *= mInvCompatScaling;
+ return res;
+ }
+
+ private native int native_breakText(String text, boolean measureForwards,
+ float maxWidth, float[] measuredWidth);
/**
* Return the advance widths for the characters in the string.
@@ -1113,7 +1193,18 @@ public class Paint {
|| count > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
- return native_getTextWidths(mNativePaint, text, index, count, widths);
+
+ if (!mHasCompatScaling) {
+ return native_getTextWidths(mNativePaint, text, index, count, widths);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_getTextWidths(mNativePaint, text, index, count, widths);
+ setTextSize(oldSize);
+ for (int i=0; i<res; i++) {
+ widths[i] *= mInvCompatScaling;
+ }
+ return res;
}
/**
@@ -1164,7 +1255,18 @@ public class Paint {
if (end - start > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
- return native_getTextWidths(mNativePaint, text, start, end, widths);
+
+ if (!mHasCompatScaling) {
+ return native_getTextWidths(mNativePaint, text, start, end, widths);
+ }
+ final float oldSize = getTextSize();
+ setTextSize(oldSize*mCompatScaling);
+ int res = native_getTextWidths(mNativePaint, text, start, end, widths);
+ setTextSize(oldSize);
+ for (int i=0; i<res; i++) {
+ widths[i] *= mInvCompatScaling;
+ }
+ return res;
}
/**
diff --git a/graphics/java/android/graphics/PixelFormat.java b/graphics/java/android/graphics/PixelFormat.java
index 159accc1496e..221c2f86768f 100644
--- a/graphics/java/android/graphics/PixelFormat.java
+++ b/graphics/java/android/graphics/PixelFormat.java
@@ -52,6 +52,12 @@ public class PixelFormat
* by the hardware.
*/
public static final int YCbCr_422_SP= 0x10;
+
+ /** YCbCr format used for images, which uses the NV21 encoding format.
+ * This is the default format for camera preview images, when not
+ * otherwise set with
+ * {@link android.hardware.Camera.Parameters#setPreviewFormat(int)}.
+ */
public static final int YCbCr_420_SP= 0x11;
/**
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index d5c8a089b5e0..e182c1c33974 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -152,10 +152,24 @@ public class NinePatchDrawable extends Drawable {
private void computeBitmapSize() {
final int sdensity = mNinePatch.getDensity();
final int tdensity = mTargetDensity;
- mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(),
- sdensity, tdensity);
- mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
- sdensity, tdensity);
+ if (sdensity == tdensity) {
+ mBitmapWidth = mNinePatch.getWidth();
+ mBitmapHeight = mNinePatch.getHeight();
+ } else {
+ mBitmapWidth = Bitmap.scaleFromDensity(mNinePatch.getWidth(),
+ sdensity, tdensity);
+ mBitmapHeight = Bitmap.scaleFromDensity(mNinePatch.getHeight(),
+ sdensity, tdensity);
+ Rect dest = mPadding;
+ Rect src = mNinePatchState.mPadding;
+ if (dest == src) {
+ mPadding = dest = new Rect(src);
+ }
+ dest.left = Bitmap.scaleFromDensity(src.left, sdensity, tdensity);
+ dest.top = Bitmap.scaleFromDensity(src.top, sdensity, tdensity);
+ dest.right = Bitmap.scaleFromDensity(src.right, sdensity, tdensity);
+ dest.bottom = Bitmap.scaleFromDensity(src.bottom, sdensity, tdensity);
+ }
}
// overrides
@@ -301,7 +315,6 @@ public class NinePatchDrawable extends Drawable {
if (!mMutated && super.mutate() == this) {
mNinePatchState = new NinePatchState(mNinePatchState);
mNinePatch = mNinePatchState.mNinePatch;
- mPadding = mNinePatchState.mPadding;
mMutated = true;
}
return this;
@@ -326,7 +339,8 @@ public class NinePatchDrawable extends Drawable {
NinePatchState(NinePatchState state) {
mNinePatch = new NinePatch(state.mNinePatch);
- mPadding = new Rect(state.mPadding);
+ // Note we don't copy the padding because it is immutable.
+ mPadding = state.mPadding;
mDither = state.mDither;
mChangingConfigurations = state.mChangingConfigurations;
mTargetDensity = state.mTargetDensity;
diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp
index 4624a187a875..ffa3df062de8 100644
--- a/media/jni/android_media_MediaMetadataRetriever.cpp
+++ b/media/jni/android_media_MediaMetadataRetriever.cpp
@@ -195,7 +195,7 @@ static jobject android_media_MediaMetadataRetriever_captureFrame(JNIEnv *env, jo
// Since internally SkBitmap uses reference count to manage the reference to
// its pixels, it is important that the pixels (along with SkBitmap) be
// available after creating the Bitmap is returned to Java app.
- return env->NewObject(fields.bitmapClazz, fields.bitmapConstructor, (int) bitmap, true, NULL);
+ return env->NewObject(fields.bitmapClazz, fields.bitmapConstructor, (int) bitmap, true, NULL, -1);
}
static jbyteArray android_media_MediaMetadataRetriever_extractAlbumArt(JNIEnv *env, jobject thiz)
@@ -316,7 +316,7 @@ int register_android_media_MediaMetadataRetriever(JNIEnv *env)
return -1;
}
- fields.bitmapConstructor = env->GetMethodID(fields.bitmapClazz, "<init>", "(IZ[B)V");
+ fields.bitmapConstructor = env->GetMethodID(fields.bitmapClazz, "<init>", "(IZ[BI)V");
if (fields.bitmapConstructor == NULL) {
LOGE("Bitmap constructor is not found");
return -1;
diff --git a/packages/SettingsProvider/res/values-da/strings.xml b/packages/SettingsProvider/res/values-da/strings.xml
new file mode 100644
index 000000000000..f0afc0bbccb1
--- /dev/null
+++ b/packages/SettingsProvider/res/values-da/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Indstillingslagring"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-el/strings.xml b/packages/SettingsProvider/res/values-el/strings.xml
new file mode 100644
index 000000000000..1cac86d3d0ed
--- /dev/null
+++ b/packages/SettingsProvider/res/values-el/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Αποθηκευτικός χώρος ρυθμίσεων"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-es-rUS/strings.xml b/packages/SettingsProvider/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000000..de3958b37485
--- /dev/null
+++ b/packages/SettingsProvider/res/values-es-rUS/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Almacenamiento de configuración"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-ko/strings.xml b/packages/SettingsProvider/res/values-ko/strings.xml
new file mode 100644
index 000000000000..aab51d6d8b7c
--- /dev/null
+++ b/packages/SettingsProvider/res/values-ko/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"설정 저장소"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-nb/strings.xml b/packages/SettingsProvider/res/values-nb/strings.xml
new file mode 100644
index 000000000000..c96b1eb56518
--- /dev/null
+++ b/packages/SettingsProvider/res/values-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Lagring av innstillinger"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-pt-rPT/strings.xml b/packages/SettingsProvider/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000000..1e1dccb602fe
--- /dev/null
+++ b/packages/SettingsProvider/res/values-pt-rPT/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Armazenamento de Definições"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-pt/strings.xml b/packages/SettingsProvider/res/values-pt/strings.xml
new file mode 100644
index 000000000000..c4af964a4496
--- /dev/null
+++ b/packages/SettingsProvider/res/values-pt/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Armazenamento de configurações"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-ru/strings.xml b/packages/SettingsProvider/res/values-ru/strings.xml
new file mode 100644
index 000000000000..bcf92fa8a28b
--- /dev/null
+++ b/packages/SettingsProvider/res/values-ru/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Хранилище настроек"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-sv/strings.xml b/packages/SettingsProvider/res/values-sv/strings.xml
new file mode 100644
index 000000000000..fa3f5cb3fab0
--- /dev/null
+++ b/packages/SettingsProvider/res/values-sv/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Lagring av inställningar"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-tr/strings.xml b/packages/SettingsProvider/res/values-tr/strings.xml
new file mode 100644
index 000000000000..dc36cdabcc9d
--- /dev/null
+++ b/packages/SettingsProvider/res/values-tr/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"Ayarlar Deposu"</string>
+</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rCN/strings.xml b/packages/SettingsProvider/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000000..daf12541a5af
--- /dev/null
+++ b/packages/SettingsProvider/res/values-zh-rCN/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4567566098528588863">"设置存储"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-da/strings.xml b/packages/SubscribedFeedsProvider/res/values-da/strings.xml
new file mode 100644
index 000000000000..6bc05578c180
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-da/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Synkroniser feeds"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-el/strings.xml b/packages/SubscribedFeedsProvider/res/values-el/strings.xml
new file mode 100644
index 000000000000..41134413544d
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-el/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Συγχρονισμός ροών δεδομένων"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-es-rUS/strings.xml b/packages/SubscribedFeedsProvider/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000000..272888534c76
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-es-rUS/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Canales de sincronización"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-ko/strings.xml b/packages/SubscribedFeedsProvider/res/values-ko/strings.xml
new file mode 100644
index 000000000000..acfb4f109a5f
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-ko/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"피드 동기화"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-nb/strings.xml b/packages/SubscribedFeedsProvider/res/values-nb/strings.xml
new file mode 100644
index 000000000000..ca096ebe6598
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-nb/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Strømsynkronisering"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-pt-rPT/strings.xml b/packages/SubscribedFeedsProvider/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000000..25e0ec6707b3
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-pt-rPT/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Sincronizar feeds"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-pt/strings.xml b/packages/SubscribedFeedsProvider/res/values-pt/strings.xml
new file mode 100644
index 000000000000..25e0ec6707b3
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-pt/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Sincronizar feeds"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-ru/strings.xml b/packages/SubscribedFeedsProvider/res/values-ru/strings.xml
new file mode 100644
index 000000000000..c8eea0bcc715
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-ru/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Фиды синхронизации"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-sv/strings.xml b/packages/SubscribedFeedsProvider/res/values-sv/strings.xml
new file mode 100644
index 000000000000..1c79a6f74491
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-sv/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Synkroniseringsflöden"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-tr/strings.xml b/packages/SubscribedFeedsProvider/res/values-tr/strings.xml
new file mode 100644
index 000000000000..800079226704
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-tr/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"Senkronizasyon Yayınları"</string>
+</resources>
diff --git a/packages/SubscribedFeedsProvider/res/values-zh-rCN/strings.xml b/packages/SubscribedFeedsProvider/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000000..34aa631493c0
--- /dev/null
+++ b/packages/SubscribedFeedsProvider/res/values-zh-rCN/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="5400580392303600842">"同步供稿"</string>
+</resources>
diff --git a/packages/VpnServices/res/values-da/strings.xml b/packages/VpnServices/res/values-da/strings.xml
new file mode 100644
index 000000000000..52c61a4ba1ee
--- /dev/null
+++ b/packages/VpnServices/res/values-da/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"VPN-tjenester"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"%s VPN forbundet"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"%s VPN afbrudt"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Tryk for at oprette forbindelse til et VPN igen."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-el/strings.xml b/packages/VpnServices/res/values-el/strings.xml
new file mode 100644
index 000000000000..4ca190f6a93b
--- /dev/null
+++ b/packages/VpnServices/res/values-el/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"Υπηρεσίες VPN"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"Το VPN %s συνδέθηκε"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"Αποσυνδέθηκε %s VPN"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Πατήστε για να επανασυνδεθείτε σε ένα VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-es-rUS/strings.xml b/packages/VpnServices/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000000..dfb91f200344
--- /dev/null
+++ b/packages/VpnServices/res/values-es-rUS/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"Servicios VPN"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"%s VPN conectados"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"%s VPN desconectada"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Tocar para volver a conectarse a una VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-ko/strings.xml b/packages/VpnServices/res/values-ko/strings.xml
new file mode 100644
index 000000000000..0c06840d88e3
--- /dev/null
+++ b/packages/VpnServices/res/values-ko/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"VPN 서비스"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"%s VPN 연결됨"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"%s VPN 연결 끊김"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"VPN에 다시 연결하려면 터치하세요."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-nb/strings.xml b/packages/VpnServices/res/values-nb/strings.xml
new file mode 100644
index 000000000000..768797af67a5
--- /dev/null
+++ b/packages/VpnServices/res/values-nb/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"VPN-tjenester"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"VPN %s tilkoblet"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"VPN %s frakoblet"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Trykk for å koble til et VPN på nytt"</string>
+</resources>
diff --git a/packages/VpnServices/res/values-pt-rPT/strings.xml b/packages/VpnServices/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000000..25144b013195
--- /dev/null
+++ b/packages/VpnServices/res/values-pt-rPT/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"Serviços VPN"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"VPN %s ligado"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"VPN %s desligado"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Toque para voltar a ligar a uma VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-pt/strings.xml b/packages/VpnServices/res/values-pt/strings.xml
new file mode 100644
index 000000000000..a7d48632a510
--- /dev/null
+++ b/packages/VpnServices/res/values-pt/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"Serviços de VPN"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"VPN %s conectada"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"VPN %s desconectada"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Toque para reconectar-se a uma VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-ru/strings.xml b/packages/VpnServices/res/values-ru/strings.xml
new file mode 100644
index 000000000000..6fe332b77a8d
--- /dev/null
+++ b/packages/VpnServices/res/values-ru/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"Службы VPN"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"VPN %s подключена"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"VPN %s отключена"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Нажмите, чтобы повторно подключиться к VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-sv/strings.xml b/packages/VpnServices/res/values-sv/strings.xml
new file mode 100644
index 000000000000..63374f300d2d
--- /dev/null
+++ b/packages/VpnServices/res/values-sv/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"VPN-tjänster"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"%s VPN anslutna"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"%s VPN frånkopplat"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Tryck här om du vill återansluta till ett VPN."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-tr/strings.xml b/packages/VpnServices/res/values-tr/strings.xml
new file mode 100644
index 000000000000..5e2ee02bad3f
--- /dev/null
+++ b/packages/VpnServices/res/values-tr/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"VPN Hizmetleri"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"%s VPN bağlandı"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"%s VPN bağlantısı kesildi"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"Bir VPN\'ye tekrar bağlanmak için dokunun."</string>
+</resources>
diff --git a/packages/VpnServices/res/values-zh-rCN/strings.xml b/packages/VpnServices/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000000..8772ebc50247
--- /dev/null
+++ b/packages/VpnServices/res/values-zh-rCN/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_label" msgid="4589592829302498102">"虚拟专用网服务"</string>
+ <string name="vpn_notification_title_connected" msgid="2567196609405266775">"已连接虚拟专用网%s"</string>
+ <string name="vpn_notification_title_disconnected" msgid="3564361788336568244">"已与虚拟专用网%s断开连接"</string>
+ <string name="vpn_notification_hint_disconnected" msgid="1952209867082269429">"轻触可重新连接到虚拟专用网。"</string>
+</resources>
diff --git a/services/java/com/android/server/DeviceStorageMonitorService.java b/services/java/com/android/server/DeviceStorageMonitorService.java
index 52e09ca260a5..57af02953415 100644
--- a/services/java/com/android/server/DeviceStorageMonitorService.java
+++ b/services/java/com/android/server/DeviceStorageMonitorService.java
@@ -43,8 +43,8 @@ import android.provider.Settings;
/**
* This class implements a service to monitor the amount of disk storage space
* on the device. If the free storage on device is less than a tunable threshold value
- * (default is 10%. this value is a gservices parameter) a low memory notification is
- * displayed to alert the user. If the user clicks on the low memory notification the
+ * (default is 10%. this value is a gservices parameter) a low memory notification is
+ * displayed to alert the user. If the user clicks on the low memory notification the
* Application Manager application gets launched to let the user free storage space.
* Event log events:
* A low memory event with the free storage on device in bytes is logged to the event log
@@ -68,32 +68,35 @@ class DeviceStorageMonitorService extends Binder {
private static final int EVENT_LOG_FREE_STORAGE_LEFT = 2746;
private static final long DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD = 2 * 1024 * 1024; // 2MB
private static final long DEFAULT_CHECK_INTERVAL = MONITOR_INTERVAL*60*1000;
- private long mFreeMem;
+ private long mFreeMem; // on /data
private long mLastReportedFreeMem;
private long mLastReportedFreeMemTime;
private boolean mLowMemFlag=false;
private Context mContext;
private ContentResolver mContentResolver;
- long mBlkSize;
- long mTotalMemory;
- StatFs mFileStats;
- private static final String DATA_PATH="/data";
- long mThreadStartTime = -1;
- boolean mClearSucceeded = false;
- boolean mClearingCache;
+ private long mTotalMemory; // on /data
+ private StatFs mDataFileStats;
+ private StatFs mSystemFileStats;
+ private StatFs mCacheFileStats;
+ private static final String DATA_PATH = "/data";
+ private static final String SYSTEM_PATH = "/system";
+ private static final String CACHE_PATH = "/cache";
+ private long mThreadStartTime = -1;
+ private boolean mClearSucceeded = false;
+ private boolean mClearingCache;
private Intent mStorageLowIntent;
private Intent mStorageOkIntent;
private CachePackageDataObserver mClearCacheObserver;
private static final int _TRUE = 1;
private static final int _FALSE = 0;
-
+
/**
* This string is used for ServiceManager access to this class.
*/
static final String SERVICE = "devicestoragemonitor";
-
+
/**
- * Handler that checks the amount of disk space on the device and sends a
+ * Handler that checks the amount of disk space on the device and sends a
* notification if the device runs low on disk space
*/
Handler mHandler = new Handler() {
@@ -107,7 +110,7 @@ class DeviceStorageMonitorService extends Binder {
checkMemory(msg.arg1 == _TRUE);
}
};
-
+
class CachePackageDataObserver extends IPackageDataObserver.Stub {
public void onRemoveCompleted(String packageName, boolean succeeded) {
mClearSucceeded = succeeded;
@@ -115,12 +118,17 @@ class DeviceStorageMonitorService extends Binder {
if(localLOGV) Log.i(TAG, " Clear succeeded:"+mClearSucceeded
+", mClearingCache:"+mClearingCache+" Forcing memory check");
postCheckMemoryMsg(false, 0);
- }
+ }
}
-
+
private final void restatDataDir() {
- mFileStats.restat(DATA_PATH);
- mFreeMem = mFileStats.getAvailableBlocks()*mBlkSize;
+ try {
+ mDataFileStats.restat(DATA_PATH);
+ mFreeMem = (long) mDataFileStats.getAvailableBlocks() *
+ mDataFileStats.getBlockSize();
+ } catch (IllegalArgumentException e) {
+ // use the old value of mFreeMem
+ }
// Allow freemem to be overridden by debug.freemem for testing
String debugFreeMem = SystemProperties.get("debug.freemem");
if (!"".equals(debugFreeMem)) {
@@ -132,10 +140,27 @@ class DeviceStorageMonitorService extends Binder {
DEFAULT_FREE_STORAGE_LOG_INTERVAL_IN_MINUTES)*60*1000;
//log the amount of free memory in event log
long currTime = SystemClock.elapsedRealtime();
- if((mLastReportedFreeMemTime == 0) ||
- (currTime-mLastReportedFreeMemTime) >= freeMemLogInterval) {
+ if((mLastReportedFreeMemTime == 0) ||
+ (currTime-mLastReportedFreeMemTime) >= freeMemLogInterval) {
mLastReportedFreeMemTime = currTime;
- EventLog.writeEvent(EVENT_LOG_FREE_STORAGE_LEFT, mFreeMem);
+ long mFreeSystem = -1, mFreeCache = -1;
+ try {
+ mSystemFileStats.restat(SYSTEM_PATH);
+ mFreeSystem = (long) mSystemFileStats.getAvailableBlocks() *
+ mSystemFileStats.getBlockSize();
+ } catch (IllegalArgumentException e) {
+ // ignore; report -1
+ }
+ try {
+ mCacheFileStats.restat(CACHE_PATH);
+ mFreeCache = (long) mCacheFileStats.getAvailableBlocks() *
+ mCacheFileStats.getBlockSize();
+ } catch (IllegalArgumentException e) {
+ // ignore; report -1
+ }
+ mCacheFileStats.restat(CACHE_PATH);
+ EventLog.writeEvent(EVENT_LOG_FREE_STORAGE_LEFT,
+ mFreeMem, mFreeSystem, mFreeCache);
}
// Read the reporting threshold from Gservices
long threshold = Gservices.getLong(mContentResolver,
@@ -148,7 +173,7 @@ class DeviceStorageMonitorService extends Binder {
EventLog.writeEvent(EVENT_LOG_STORAGE_BELOW_THRESHOLD, mFreeMem);
}
}
-
+
private final void clearCache() {
if (mClearCacheObserver == null) {
// Lazy instantiation
@@ -165,10 +190,10 @@ class DeviceStorageMonitorService extends Binder {
mClearSucceeded = false;
}
}
-
+
private final void checkMemory(boolean checkCache) {
- //if the thread that was started to clear cache is still running do nothing till its
- //finished clearing cache. Ideally this flag could be modified by clearCache
+ //if the thread that was started to clear cache is still running do nothing till its
+ //finished clearing cache. Ideally this flag could be modified by clearCache
// and should be accessed via a lock but even if it does this test will fail now and
//hopefully the next time this flag will be set to the correct value.
if(mClearingCache) {
@@ -177,11 +202,11 @@ class DeviceStorageMonitorService extends Binder {
long diffTime = System.currentTimeMillis() - mThreadStartTime;
if(diffTime > (10*60*1000)) {
Log.w(TAG, "Thread that clears cache file seems to run for ever");
- }
+ }
} else {
restatDataDir();
if (localLOGV) Log.v(TAG, "freeMemory="+mFreeMem);
-
+
//post intent to NotificationManager to display icon if necessary
long memThreshold = getMemThreshold();
if (mFreeMem < memThreshold) {
@@ -214,7 +239,7 @@ class DeviceStorageMonitorService extends Binder {
//keep posting messages to itself periodically
postCheckMemoryMsg(true, DEFAULT_CHECK_INTERVAL);
}
-
+
private void postCheckMemoryMsg(boolean clearCache, long delay) {
// Remove queued messages
mHandler.removeMessages(DEVICE_MEMORY_WHAT);
@@ -222,16 +247,16 @@ class DeviceStorageMonitorService extends Binder {
clearCache ?_TRUE : _FALSE, 0),
delay);
}
-
+
/*
- * just query settings to retrieve the memory threshold.
+ * just query settings to retrieve the memory threshold.
* Preferred this over using a ContentObserver since Settings.Gservices caches the value
* any way
*/
private long getMemThreshold() {
int value = Settings.Gservices.getInt(
- mContentResolver,
- Settings.Gservices.SYS_STORAGE_THRESHOLD_PERCENTAGE,
+ mContentResolver,
+ Settings.Gservices.SYS_STORAGE_THRESHOLD_PERCENTAGE,
DEFAULT_THRESHOLD_PERCENTAGE);
if(localLOGV) Log.v(TAG, "Threshold Percentage="+value);
//evaluate threshold value
@@ -247,16 +272,17 @@ class DeviceStorageMonitorService extends Binder {
mContext = context;
mContentResolver = mContext.getContentResolver();
//create StatFs object
- mFileStats = new StatFs(DATA_PATH);
- //initialize block size
- mBlkSize = mFileStats.getBlockSize();
+ mDataFileStats = new StatFs(DATA_PATH);
+ mSystemFileStats = new StatFs(SYSTEM_PATH);
+ mCacheFileStats = new StatFs(CACHE_PATH);
//initialize total storage on device
- mTotalMemory = ((long)mFileStats.getBlockCount()*mBlkSize)/100L;
+ mTotalMemory = ((long)mDataFileStats.getBlockCount() *
+ mDataFileStats.getBlockSize())/100L;
mStorageLowIntent = new Intent(Intent.ACTION_DEVICE_STORAGE_LOW);
mStorageOkIntent = new Intent(Intent.ACTION_DEVICE_STORAGE_OK);
checkMemory(true);
}
-
+
/**
* This method sends a notification to NotificationManager to display
@@ -271,7 +297,7 @@ class DeviceStorageMonitorService extends Binder {
Intent lowMemIntent = new Intent(Intent.ACTION_MANAGE_PACKAGE_STORAGE);
lowMemIntent.putExtra("memory", mFreeMem);
lowMemIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- NotificationManager mNotificationMgr =
+ NotificationManager mNotificationMgr =
(NotificationManager)mContext.getSystemService(
Context.NOTIFICATION_SERVICE);
CharSequence title = mContext.getText(
@@ -302,7 +328,7 @@ class DeviceStorageMonitorService extends Binder {
mContext.removeStickyBroadcast(mStorageLowIntent);
mContext.sendBroadcast(mStorageOkIntent);
}
-
+
public void updateMemory() {
int callingUid = getCallingUid();
if(callingUid != Process.SYSTEM_UID) {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index ed9af663c682..9326cf1abb27 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -265,7 +265,6 @@ public class TelephonyManager {
/**
* CDMA phone
- * @hide
*/
public static final int PHONE_TYPE_CDMA = RILConstants.CDMA_PHONE;
@@ -372,15 +371,12 @@ public class TelephonyManager {
/** Current network is UMTS */
public static final int NETWORK_TYPE_UMTS = 3;
/** Current network is CDMA: Either IS95A or IS95B*/
- /** @hide */
public static final int NETWORK_TYPE_CDMA = 4;
- /** Current network is EVDO revision 0 or revision A*/
- /** @hide */
+ /** Current network is EVDO revision 0*/
public static final int NETWORK_TYPE_EVDO_0 = 5;
- /** @hide */
+ /** Current network is EVDO revision A*/
public static final int NETWORK_TYPE_EVDO_A = 6;
/** Current network is 1xRTT*/
- /** @hide */
public static final int NETWORK_TYPE_1xRTT = 7;
/**
@@ -690,7 +686,6 @@ public class TelephonyManager {
public static final int DATA_ACTIVITY_INOUT = DATA_ACTIVITY_IN | DATA_ACTIVITY_OUT;
/**
* Data connection is active, but physical link is down
- * @hide
*/
public static final int DATA_ACTIVITY_DORMANT = 0x00000004;
diff --git a/telephony/java/com/android/internal/telephony/WapPushOverSms.java b/telephony/java/com/android/internal/telephony/WapPushOverSms.java
index 99709406b828..a636a4b3b702 100644
--- a/telephony/java/com/android/internal/telephony/WapPushOverSms.java
+++ b/telephony/java/com/android/internal/telephony/WapPushOverSms.java
@@ -109,6 +109,7 @@ public class WapPushOverSms {
String mimeType = pduDecoder.getValueString();
if (mimeType == null) {
binaryContentType = (int)pduDecoder.getValue32();
+ // TODO we should have more generic way to map binaryContentType code to mimeType.
switch (binaryContentType) {
case WspTypeDecoder.CONTENT_TYPE_B_DRM_RIGHTS_XML:
mimeType = WspTypeDecoder.CONTENT_MIME_TYPE_B_DRM_RIGHTS_XML;
@@ -128,6 +129,9 @@ public class WapPushOverSms {
case WspTypeDecoder.CONTENT_TYPE_B_MMS:
mimeType = WspTypeDecoder.CONTENT_MIME_TYPE_B_MMS;
break;
+ case WspTypeDecoder.CONTENT_TYPE_B_VND_DOCOMO_PF:
+ mimeType = WspTypeDecoder.CONTENT_MIME_TYPE_B_VND_DOCOMO_PF;
+ break;
default:
if (Config.LOGD) {
Log.w(LOG_TAG,
@@ -148,6 +152,8 @@ public class WapPushOverSms {
binaryContentType = WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO;
} else if (mimeType.equals(WspTypeDecoder.CONTENT_MIME_TYPE_B_MMS)) {
binaryContentType = WspTypeDecoder.CONTENT_TYPE_B_MMS;
+ } else if (mimeType.equals(WspTypeDecoder.CONTENT_MIME_TYPE_B_VND_DOCOMO_PF)) {
+ binaryContentType = WspTypeDecoder.CONTENT_TYPE_B_VND_DOCOMO_PF;
} else {
if (Config.LOGD) Log.w(LOG_TAG, "Received PDU. Unknown Content-Type = " + mimeType);
return Intents.RESULT_SMS_HANDLED;
@@ -155,28 +161,31 @@ public class WapPushOverSms {
}
index += pduDecoder.getDecodedDataLength();
- int dataIndex = headerStartIndex + headerLength;
boolean dispatchedByApplication = false;
switch (binaryContentType) {
case WspTypeDecoder.CONTENT_TYPE_B_PUSH_CO:
- dispatchWapPdu_PushCO(pdu, transactionId, pduType);
+ dispatchWapPdu_PushCO(pdu, transactionId, pduType, headerStartIndex, headerLength);
dispatchedByApplication = true;
break;
case WspTypeDecoder.CONTENT_TYPE_B_MMS:
- dispatchWapPdu_MMS(pdu, transactionId, pduType, dataIndex);
+ dispatchWapPdu_MMS(pdu, transactionId, pduType, headerStartIndex, headerLength);
dispatchedByApplication = true;
break;
default:
break;
}
if (dispatchedByApplication == false) {
- dispatchWapPdu_default(pdu, transactionId, pduType, mimeType, dataIndex);
+ dispatchWapPdu_default(pdu, transactionId, pduType, mimeType,
+ headerStartIndex, headerLength);
}
return Activity.RESULT_OK;
}
- private void dispatchWapPdu_default(
- byte[] pdu, int transactionId, int pduType, String mimeType, int dataIndex) {
+ private void dispatchWapPdu_default(byte[] pdu, int transactionId, int pduType,
+ String mimeType, int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+ int dataIndex = headerStartIndex + headerLength;
byte[] data;
data = new byte[pdu.length - dataIndex];
@@ -186,31 +195,40 @@ public class WapPushOverSms {
intent.setType(mimeType);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", data);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_WAP_PUSH");
}
- private void dispatchWapPdu_PushCO(byte[] pdu, int transactionId, int pduType) {
+ private void dispatchWapPdu_PushCO(byte[] pdu, int transactionId, int pduType,
+ int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+
Intent intent = new Intent(Intents.WAP_PUSH_RECEIVED_ACTION);
intent.setType(WspTypeDecoder.CONTENT_MIME_TYPE_B_PUSH_CO);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", pdu);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_WAP_PUSH");
}
- private void dispatchWapPdu_MMS(byte[] pdu, int transactionId, int pduType, int dataIndex) {
- byte[] data;
-
- data = new byte[pdu.length - dataIndex];
+ private void dispatchWapPdu_MMS(byte[] pdu, int transactionId, int pduType,
+ int headerStartIndex, int headerLength) {
+ byte[] header = new byte[headerLength];
+ System.arraycopy(pdu, headerStartIndex, header, 0, header.length);
+ int dataIndex = headerStartIndex + headerLength;
+ byte[] data = new byte[pdu.length - dataIndex];
System.arraycopy(pdu, dataIndex, data, 0, data.length);
Intent intent = new Intent(Intents.WAP_PUSH_RECEIVED_ACTION);
intent.setType(WspTypeDecoder.CONTENT_MIME_TYPE_B_MMS);
intent.putExtra("transactionId", transactionId);
intent.putExtra("pduType", pduType);
+ intent.putExtra("header", header);
intent.putExtra("data", data);
mSmsDispatcher.dispatch(intent, "android.permission.RECEIVE_MMS");
diff --git a/telephony/java/com/android/internal/telephony/WspTypeDecoder.java b/telephony/java/com/android/internal/telephony/WspTypeDecoder.java
index 3bbe0e17a86e..336bc82cacd0 100644
--- a/telephony/java/com/android/internal/telephony/WspTypeDecoder.java
+++ b/telephony/java/com/android/internal/telephony/WspTypeDecoder.java
@@ -30,12 +30,16 @@ public class WspTypeDecoder {
public static final int PDU_TYPE_PUSH = 0x06;
public static final int PDU_TYPE_CONFIRMED_PUSH = 0x07;
+ // TODO we should have mapping between those binary code and mime type string.
+ // see http://www.openmobilealliance.org/tech/omna/omna-wsp-content-type.aspx
+
public static final int CONTENT_TYPE_B_DRM_RIGHTS_XML = 0x4a;
public static final int CONTENT_TYPE_B_DRM_RIGHTS_WBXML = 0x4b;
public static final int CONTENT_TYPE_B_PUSH_SI = 0x2e;
public static final int CONTENT_TYPE_B_PUSH_SL = 0x30;
public static final int CONTENT_TYPE_B_PUSH_CO = 0x32;
public static final int CONTENT_TYPE_B_MMS = 0x3e;
+ public static final int CONTENT_TYPE_B_VND_DOCOMO_PF = 0x0310;
public static final String CONTENT_MIME_TYPE_B_DRM_RIGHTS_XML =
"application/vnd.oma.drm.rights+xml";
@@ -45,6 +49,7 @@ public class WspTypeDecoder {
public static final String CONTENT_MIME_TYPE_B_PUSH_SL = "application/vnd.wap.slc";
public static final String CONTENT_MIME_TYPE_B_PUSH_CO = "application/vnd.wap.coc";
public static final String CONTENT_MIME_TYPE_B_MMS = "application/vnd.wap.mms-message";
+ public static final String CONTENT_MIME_TYPE_B_VND_DOCOMO_PF = "application/vnd.docomo.pf";
public static final int PARAMETER_ID_X_WAP_APPLICATION_ID = 0x2f;
diff --git a/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java b/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
new file mode 100644
index 000000000000..7128032e9523
--- /dev/null
+++ b/tools/layoutlib/api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.layoutlib.api;
+
+/**
+ * Represents an Android Resources that has a density info attached to it.
+ */
+public interface IDensityBasedResourceValue extends IResourceValue {
+ public static enum Density {
+ HIGH(240),
+ MEDIUM(160),
+ LOW(120),
+ NODPI(0);
+
+ private final int mValue;
+
+ Density(int value) {
+ mValue = value;
+ }
+
+ public int getValue() {
+ return mValue;
+ }
+ }
+
+ /**
+ * Returns the density associated to the resource.
+ */
+ Density getDensity();
+}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap.java
index 7dde63446e08..ff1b295fc06d 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Bitmap.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap.java
@@ -28,13 +28,13 @@ public final class Bitmap extends _Original_Bitmap {
private BufferedImage mImage;
public Bitmap(File input) throws IOException {
- super(1, true, null);
+ super(1, true, null, -1);
mImage = ImageIO.read(input);
}
Bitmap(BufferedImage image) {
- super(1, true, null);
+ super(1, true, null, -1);
mImage = image;
}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas.java b/tools/layoutlib/bridge/src/android/graphics/Canvas.java
index 3fa1d1d6cf0c..4986c77b2795 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Canvas.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Canvas.java
@@ -26,6 +26,7 @@ import android.graphics.RectF;
import android.graphics.Region;
import android.graphics.Xfermode;
import android.graphics.Paint.Align;
+import android.graphics.Paint.FontInfo;
import android.graphics.Paint.Style;
import android.graphics.Region.Op;
@@ -37,6 +38,7 @@ import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
+import java.util.List;
import java.util.Stack;
import javax.microedition.khronos.opengles.GL;
@@ -620,19 +622,21 @@ public class Canvas extends _Original_Canvas {
*/
@Override
public void drawText(char[] text, int index, int count, float x, float y, Paint paint) {
+ // WARNING: the logic in this method is similar to Paint.measureText.
+ // Any change to this method should be reflected in Paint.measureText
Graphics2D g = getGraphics2d();
g = (Graphics2D)g.create();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- g.setFont(paint.getFont());
-
- // set the color. because this only handles RGB we have to handle the alpha separately
+ // set the color. because this only handles RGB, the alpha channel is handled
+ // as a composite.
g.setColor(new Color(paint.getColor()));
int alpha = paint.getAlpha();
float falpha = alpha / 255.f;
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, falpha));
+
// Paint.TextAlign indicates how the text is positioned relative to X.
// LEFT is the default and there's nothing to do.
if (paint.getTextAlign() != Align.LEFT) {
@@ -644,9 +648,83 @@ public class Canvas extends _Original_Canvas {
}
}
- g.drawChars(text, index, count, (int)x, (int)y);
-
- g.dispose();
+ List<FontInfo> fonts = paint.getFonts();
+ try {
+ if (fonts.size() > 0) {
+ FontInfo mainFont = fonts.get(0);
+ int i = index;
+ int lastIndex = index + count;
+ while (i < lastIndex) {
+ // always start with the main font.
+ int upTo = mainFont.mFont.canDisplayUpTo(text, i, lastIndex);
+ if (upTo == -1) {
+ // draw all the rest and exit.
+ g.setFont(mainFont.mFont);
+ g.drawChars(text, i, lastIndex - i, (int)x, (int)y);
+ return;
+ } else if (upTo > 0) {
+ // draw what's possible
+ g.setFont(mainFont.mFont);
+ g.drawChars(text, i, upTo - i, (int)x, (int)y);
+
+ // compute the width that was drawn to increase x
+ x += mainFont.mMetrics.charsWidth(text, i, upTo - i);
+
+ // move index to the first non displayed char.
+ i = upTo;
+
+ // don't call continue at this point. Since it is certain the main font
+ // cannot display the font a index upTo (now ==i), we move on to the
+ // fallback fonts directly.
+ }
+
+ // no char supported, attempt to read the next char(s) with the
+ // fallback font. In this case we only test the first character
+ // and then go back to test with the main font.
+ // Special test for 2-char characters.
+ boolean foundFont = false;
+ for (int f = 1 ; f < fonts.size() ; f++) {
+ FontInfo fontInfo = fonts.get(f);
+
+ // need to check that the font can display the character. We test
+ // differently if the char is a high surrogate.
+ int charCount = Character.isHighSurrogate(text[i]) ? 2 : 1;
+ upTo = fontInfo.mFont.canDisplayUpTo(text, i, i + charCount);
+ if (upTo == -1) {
+ // draw that char
+ g.setFont(fontInfo.mFont);
+ g.drawChars(text, i, charCount, (int)x, (int)y);
+
+ // update x
+ x += fontInfo.mMetrics.charsWidth(text, i, charCount);
+
+ // update the index in the text, and move on
+ i += charCount;
+ foundFont = true;
+ break;
+
+ }
+ }
+
+ // in case no font can display the char, display it with the main font.
+ // (it'll put a square probably)
+ if (foundFont == false) {
+ int charCount = Character.isHighSurrogate(text[i]) ? 2 : 1;
+
+ g.setFont(mainFont.mFont);
+ g.drawChars(text, i, charCount, (int)x, (int)y);
+
+ // measure it to advance x
+ x += mainFont.mMetrics.charsWidth(text, i, charCount);
+
+ // and move to the next chars.
+ i += charCount;
+ }
+ }
+ }
+ } finally {
+ g.dispose();
+ }
}
/* (non-Javadoc)
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint.java b/tools/layoutlib/bridge/src/android/graphics/Paint.java
index ade07d603402..fe69df374a03 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint.java
@@ -26,6 +26,9 @@ import java.awt.Toolkit;
import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
/**
* A paint implementation overridden by the LayoutLib bridge.
@@ -39,11 +42,18 @@ public class Paint extends _Original_Paint {
private Align mAlign = Align.LEFT;
private Style mStyle = Style.FILL;
private int mFlags = 0;
-
- private Font mFont;
+
+ /**
+ * Class associating a {@link Font} and it's {@link java.awt.FontMetrics}.
+ */
+ public static final class FontInfo {
+ Font mFont;
+ java.awt.FontMetrics mMetrics;
+ }
+
+ private List<FontInfo> mFonts;
private final FontRenderContext mFontContext = new FontRenderContext(
new AffineTransform(), true, true);
- private java.awt.FontMetrics mMetrics;
@SuppressWarnings("hiding")
public static final int ANTI_ALIAS_FLAG = _Original_Paint.ANTI_ALIAS_FLAG;
@@ -192,10 +202,11 @@ public class Paint extends _Original_Paint {
}
/**
- * Returns the {@link Font} object.
+ * Returns the list of {@link Font} objects. The first item is the main font, the rest
+ * are fall backs for characters not present in the main font.
*/
- public Font getFont() {
- return mFont;
+ public List<FontInfo> getFonts() {
+ return mFonts;
}
private void initFont() {
@@ -206,17 +217,29 @@ public class Paint extends _Original_Paint {
/**
* Update the {@link Font} object from the typeface, text size and scaling
*/
+ @SuppressWarnings("deprecation")
private void updateFontObject() {
if (mTypeface != null) {
- // get the typeface font object, and get our font object from it, based on the current size
- mFont = mTypeface.getFont().deriveFont(mTextSize);
- if (mScaleX != 1.0 || mSkewX != 0) {
- // TODO: support skew
- mFont = mFont.deriveFont(new AffineTransform(
- mScaleX, mSkewX, 0, 0, 1, 0));
+ // Get the fonts from the TypeFace object.
+ List<Font> fonts = mTypeface.getFonts();
+
+ // create new font objects as well as FontMetrics, based on the current text size
+ // and skew info.
+ ArrayList<FontInfo> infoList = new ArrayList<FontInfo>(fonts.size());
+ for (Font font : fonts) {
+ FontInfo info = new FontInfo();
+ info.mFont = font.deriveFont(mTextSize);
+ if (mScaleX != 1.0 || mSkewX != 0) {
+ // TODO: support skew
+ info.mFont = info.mFont.deriveFont(new AffineTransform(
+ mScaleX, mSkewX, 0, 0, 1, 0));
+ }
+ info.mMetrics = Toolkit.getDefaultToolkit().getFontMetrics(info.mFont);
+
+ infoList.add(info);
}
-
- mMetrics = Toolkit.getDefaultToolkit().getFontMetrics(mFont);
+
+ mFonts = Collections.unmodifiableList(infoList);
}
}
@@ -256,34 +279,36 @@ public class Paint extends _Original_Paint {
* @return the font's recommended interline spacing.
*/
public float getFontMetrics(FontMetrics metrics) {
- if (mMetrics != null) {
+ if (mFonts.size() > 0) {
+ java.awt.FontMetrics javaMetrics = mFonts.get(0).mMetrics;
if (metrics != null) {
- // ascent stuff should be negatif, but awt returns them as positive.
- metrics.top = - mMetrics.getMaxAscent();
- metrics.ascent = - mMetrics.getAscent();
- metrics.descent = mMetrics.getDescent();
- metrics.bottom = mMetrics.getMaxDescent();
- metrics.leading = mMetrics.getLeading();
+ // Android expects negative ascent so we invert the value from Java.
+ metrics.top = - javaMetrics.getMaxAscent();
+ metrics.ascent = - javaMetrics.getAscent();
+ metrics.descent = javaMetrics.getDescent();
+ metrics.bottom = javaMetrics.getMaxDescent();
+ metrics.leading = javaMetrics.getLeading();
}
-
- return mMetrics.getHeight();
+
+ return javaMetrics.getHeight();
}
return 0;
}
public int getFontMetricsInt(FontMetricsInt metrics) {
- if (mMetrics != null) {
+ if (mFonts.size() > 0) {
+ java.awt.FontMetrics javaMetrics = mFonts.get(0).mMetrics;
if (metrics != null) {
- // ascent stuff should be negatif, but awt returns them as positive.
- metrics.top = - mMetrics.getMaxAscent();
- metrics.ascent = - mMetrics.getAscent();
- metrics.descent = mMetrics.getDescent();
- metrics.bottom = mMetrics.getMaxDescent();
- metrics.leading = mMetrics.getLeading();
+ // Android expects negative ascent so we invert the value from Java.
+ metrics.top = - javaMetrics.getMaxAscent();
+ metrics.ascent = - javaMetrics.getAscent();
+ metrics.descent = javaMetrics.getDescent();
+ metrics.bottom = javaMetrics.getMaxDescent();
+ metrics.leading = javaMetrics.getLeading();
}
-
- return mMetrics.getHeight();
+
+ return javaMetrics.getHeight();
}
return 0;
@@ -521,9 +546,10 @@ public class Paint extends _Original_Paint {
*/
@Override
public float ascent() {
- if (mMetrics != null) {
- // ascent stuff should be negatif, but awt returns them as positive.
- return - mMetrics.getAscent();
+ if (mFonts.size() > 0) {
+ java.awt.FontMetrics javaMetrics = mFonts.get(0).mMetrics;
+ // Android expects negative ascent so we invert the value from Java.
+ return - javaMetrics.getAscent();
}
return 0;
@@ -538,8 +564,9 @@ public class Paint extends _Original_Paint {
*/
@Override
public float descent() {
- if (mMetrics != null) {
- return mMetrics.getDescent();
+ if (mFonts.size() > 0) {
+ java.awt.FontMetrics javaMetrics = mFonts.get(0).mMetrics;
+ return javaMetrics.getDescent();
}
return 0;
@@ -555,10 +582,55 @@ public class Paint extends _Original_Paint {
*/
@Override
public float measureText(char[] text, int index, int count) {
- if (mFont != null && text != null && text.length > 0) {
- Rectangle2D bounds = mFont.getStringBounds(text, index, index + count, mFontContext);
-
- return (float)bounds.getWidth();
+ // WARNING: the logic in this method is similar to Canvas.drawText.
+ // Any change to this method should be reflected in Canvas.drawText
+ if (mFonts.size() > 0) {
+ FontInfo mainFont = mFonts.get(0);
+ int i = index;
+ int lastIndex = index + count;
+ float total = 0f;
+ while (i < lastIndex) {
+ // always start with the main font.
+ int upTo = mainFont.mFont.canDisplayUpTo(text, i, lastIndex);
+ if (upTo == -1) {
+ // shortcut to exit
+ return total + mainFont.mMetrics.charsWidth(text, i, lastIndex - i);
+ } else if (upTo > 0) {
+ total += mainFont.mMetrics.charsWidth(text, i, upTo - i);
+ i = upTo;
+ // don't call continue at this point. Since it is certain the main font
+ // cannot display the font a index upTo (now ==i), we move on to the
+ // fallback fonts directly.
+ }
+
+ // no char supported, attempt to read the next char(s) with the
+ // fallback font. In this case we only test the first character
+ // and then go back to test with the main font.
+ // Special test for 2-char characters.
+ boolean foundFont = false;
+ for (int f = 1 ; f < mFonts.size() ; f++) {
+ FontInfo fontInfo = mFonts.get(f);
+
+ // need to check that the font can display the character. We test
+ // differently if the char is a high surrogate.
+ int charCount = Character.isHighSurrogate(text[i]) ? 2 : 1;
+ upTo = fontInfo.mFont.canDisplayUpTo(text, i, i + charCount);
+ if (upTo == -1) {
+ total += fontInfo.mMetrics.charsWidth(text, i, charCount);
+ i += charCount;
+ foundFont = true;
+ break;
+
+ }
+ }
+
+ // in case no font can display the char, measure it with the main font.
+ if (foundFont == false) {
+ int size = Character.isHighSurrogate(text[i]) ? 2 : 1;
+ total += mainFont.mMetrics.charsWidth(text, i, size);
+ i += size;
+ }
+ }
}
return 0;
@@ -683,13 +755,45 @@ public class Paint extends _Original_Paint {
@Override
public int breakText(String text, boolean measureForwards,
float maxWidth, float[] measuredWidth) {
- // NOTE: javadoc doesn't match. Just a guess.
return breakText(text,
0 /* start */, text.length() /* end */,
measureForwards, maxWidth, measuredWidth);
}
/**
+ * Measure the text, stopping early if the measured width exceeds maxWidth.
+ * Return the number of chars that were measured, and if measuredWidth is
+ * not null, return in it the actual width measured.
+ *
+ * @param text The text to measure
+ * @param start The offset into text to begin measuring at
+ * @param end The end of the text slice to measure.
+ * @param measureForwards If true, measure forwards, starting at start.
+ * Otherwise, measure backwards, starting with end.
+ * @param maxWidth The maximum width to accumulate.
+ * @param measuredWidth Optional. If not null, returns the actual width
+ * measured.
+ * @return The number of chars that were measured. Will always be <=
+ * abs(end - start).
+ */
+ @Override
+ public int breakText(CharSequence text, int start, int end, boolean measureForwards,
+ float maxWidth, float[] measuredWidth) {
+ char[] buf = new char[end - start];
+ int result;
+
+ TextUtils.getChars(text, start, end, buf, 0);
+
+ if (measureForwards) {
+ result = breakText(buf, 0, end - start, maxWidth, measuredWidth);
+ } else {
+ result = breakText(buf, 0, -(end - start), maxWidth, measuredWidth);
+ }
+
+ return result;
+ }
+
+ /**
* Return the advance widths for the characters in the string.
*
* @param text The text to measure
@@ -702,14 +806,30 @@ public class Paint extends _Original_Paint {
@Override
public int getTextWidths(char[] text, int index, int count,
float[] widths) {
- if (mMetrics != null) {
+ if (mFonts.size() > 0) {
if ((index | count) < 0 || index + count > text.length
|| count > widths.length) {
throw new ArrayIndexOutOfBoundsException();
}
-
+
+ // FIXME: handle multi-char characters.
+ // Need to figure out if the lengths of the width array takes into account
+ // multi-char characters.
for (int i = 0; i < count; i++) {
- widths[i] = mMetrics.charWidth(text[i + index]);
+ char c = text[i + index];
+ boolean found = false;
+ for (FontInfo info : mFonts) {
+ if (info.mFont.canDisplay(c)) {
+ widths[i] = info.mMetrics.charWidth(c);
+ found = true;
+ break;
+ }
+ }
+
+ if (found == false) {
+ // we stop there.
+ return i;
+ }
}
return count;
@@ -849,15 +969,18 @@ public class Paint extends _Original_Paint {
*/
@Override
public void getTextBounds(char[] text, int index, int count, Rect bounds) {
- if (mFont != null) {
+ // FIXME
+ if (mFonts.size() > 0) {
if ((index | count) < 0 || index + count > text.length) {
throw new ArrayIndexOutOfBoundsException();
}
if (bounds == null) {
throw new NullPointerException("need bounds Rect");
}
-
- Rectangle2D rect = mFont.getStringBounds(text, index, index + count, mFontContext);
+
+ FontInfo mainInfo = mFonts.get(0);
+
+ Rectangle2D rect = mainInfo.mFont.getStringBounds(text, index, index + count, mFontContext);
bounds.set(0, 0, (int)rect.getWidth(), (int)rect.getHeight());
}
}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Typeface.java b/tools/layoutlib/bridge/src/android/graphics/Typeface.java
index e878b047841c..af3adb510d3b 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Typeface.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Typeface.java
@@ -21,9 +21,12 @@ import com.android.layoutlib.bridge.FontLoader;
import android.content.res.AssetManager;
import java.awt.Font;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
/**
- * Re-implementation of Typeface over java.awt
+ * Re-implementation of Typeface over java.awt
*/
public class Typeface {
private static final String DEFAULT_FAMILY = "sans-serif";
@@ -46,11 +49,11 @@ public class Typeface {
private static Typeface[] sDefaults;
private static FontLoader mFontLoader;
-
+
private final int mStyle;
- private final Font mFont;
+ private final List<Font> mFonts;
private final String mFamily;
-
+
// Style
public static final int NORMAL = _Original_Typeface.NORMAL;
public static final int BOLD = _Original_Typeface.BOLD;
@@ -58,12 +61,13 @@ public class Typeface {
public static final int BOLD_ITALIC = _Original_Typeface.BOLD_ITALIC;
/**
- * Returns the underlying {@link Font} object.
+ * Returns the underlying {@link Font} objects. The first item in the list is the real
+ * font. Any other items are fallback fonts for characters not found in the first one.
*/
- public Font getFont() {
- return mFont;
+ public List<Font> getFonts() {
+ return mFonts;
}
-
+
/** Returns the typeface's intrinsic style attributes */
public int getStyle() {
return mStyle;
@@ -94,9 +98,12 @@ public class Typeface {
styleBuffer[0] = style;
Font font = mFontLoader.getFont(familyName, styleBuffer);
if (font != null) {
- return new Typeface(familyName, styleBuffer[0], font);
+ ArrayList<Font> list = new ArrayList<Font>();
+ list.add(font);
+ list.addAll(mFontLoader.getFallBackFonts());
+ return new Typeface(familyName, styleBuffer[0], list);
}
-
+
return null;
}
@@ -115,7 +122,10 @@ public class Typeface {
styleBuffer[0] = style;
Font font = mFontLoader.getFont(family.mFamily, styleBuffer);
if (font != null) {
- return new Typeface(family.mFamily, styleBuffer[0], font);
+ ArrayList<Font> list = new ArrayList<Font>();
+ list.add(font);
+ list.addAll(mFontLoader.getFallBackFonts());
+ return new Typeface(family.mFamily, styleBuffer[0], list);
}
return null;
@@ -129,7 +139,7 @@ public class Typeface {
public static Typeface defaultFromStyle(int style) {
return sDefaults[style];
}
-
+
/**
* Create a new typeface from the specified font data.
* @param mgr The application's asset manager
@@ -140,17 +150,17 @@ public class Typeface {
return null;
//return new Typeface(nativeCreateFromAsset(mgr, path));
}
-
+
// don't allow clients to call this directly
- private Typeface(String family, int style, Font f) {
+ private Typeface(String family, int style, List<Font> fonts) {
mFamily = family;
- mFont = f;
+ mFonts = Collections.unmodifiableList(fonts);
mStyle = style;
}
-
+
public static void init(FontLoader fontLoader) {
mFontLoader = fontLoader;
-
+
DEFAULT = create(DEFAULT_FAMILY, NORMAL);
DEFAULT_BOLD = create(DEFAULT_FAMILY, BOLD);
SANS_SERIF = create("sans-serif", NORMAL);
@@ -162,14 +172,14 @@ public class Typeface {
create(DEFAULT_FAMILY, ITALIC),
create(DEFAULT_FAMILY, BOLD_ITALIC),
};
-
+
/*
DEFAULT = create((String)null, 0);
DEFAULT_BOLD = create((String)null, Typeface.BOLD);
SANS_SERIF = create("sans-serif", 0);
SERIF = create("serif", 0);
MONOSPACE = create("monospace", 0);
-
+
sDefaults = new Typeface[] {
DEFAULT,
DEFAULT_BOLD,
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
index 145a045e5165..61908b571a8d 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/Bridge.java
@@ -341,6 +341,7 @@ public final class Bridge implements ILayoutBridge {
try {
// setup the display Metrics.
DisplayMetrics metrics = new DisplayMetrics();
+ metrics.densityDpi = density;
metrics.density = density / (float) DisplayMetrics.DENSITY_DEFAULT;
metrics.scaledDensity = metrics.density;
metrics.widthPixels = screenWidth;
@@ -388,7 +389,7 @@ public final class Bridge implements ILayoutBridge {
// get the background drawable
if (windowBackground != null) {
- Drawable d = ResourceHelper.getDrawable(windowBackground.getValue(),
+ Drawable d = ResourceHelper.getDrawable(windowBackground,
context, true /* isFramework */);
root.setBackgroundDrawable(d);
}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeResources.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeResources.java
index 2b0100b72418..1fafef48d9ef 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeResources.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeResources.java
@@ -124,7 +124,7 @@ public final class BridgeResources extends Resources {
IResourceValue value = getResourceValue(id, mPlatformResourceFlag);
if (value != null) {
- return ResourceHelper.getDrawable(value.getValue(), mContext, value.isFramework());
+ return ResourceHelper.getDrawable(value, mContext, value.isFramework());
}
// id was not found or not resolved. Throw a NotFoundException.
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
index 10421de9a0cf..daba8cfdc9e9 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/BridgeTypedArray.java
@@ -659,8 +659,9 @@ public final class BridgeTypedArray extends TypedArray {
return null;
}
- String value = mData[index].getValue();
- if (value == null || BridgeConstants.REFERENCE_NULL.equals(value)) {
+ IResourceValue value = mData[index];
+ String stringValue = value.getValue();
+ if (stringValue == null || BridgeConstants.REFERENCE_NULL.equals(stringValue)) {
return null;
}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/FontLoader.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/FontLoader.java
index 1bdd1ccead0e..801503b89e0d 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/FontLoader.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/FontLoader.java
@@ -29,6 +29,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -47,14 +48,13 @@ import javax.xml.parsers.SAXParserFactory;
*/
public final class FontLoader {
private static final String FONTS_DEFINITIONS = "fonts.xml";
-
+
private static final String NODE_FONTS = "fonts";
private static final String NODE_FONT = "font";
private static final String NODE_NAME = "name";
-
- private static final String ATTR_TTF = "ttf";
+ private static final String NODE_FALLBACK = "fallback";
- private static final String[] NODE_LEVEL = { NODE_FONTS, NODE_FONT, NODE_NAME };
+ private static final String ATTR_TTF = "ttf";
private static final String FONT_EXT = ".ttf";
@@ -62,7 +62,7 @@ public final class FontLoader {
private static final String[] FONT_STYLE_BOLD = { "-Bold" };
private static final String[] FONT_STYLE_ITALIC = { "-Italic" };
private static final String[] FONT_STYLE_BOLDITALIC = { "-BoldItalic" };
-
+
// list of font style, in the order matching the Typeface Font style
private static final String[][] FONT_STYLES = {
FONT_STYLE_DEFAULT,
@@ -70,23 +70,25 @@ public final class FontLoader {
FONT_STYLE_ITALIC,
FONT_STYLE_BOLDITALIC
};
-
+
private final Map<String, String> mFamilyToTtf = new HashMap<String, String>();
private final Map<String, Map<Integer, Font>> mTtfToFontMap =
new HashMap<String, Map<Integer, Font>>();
-
+
+ private List<Font> mFallBackFonts = null;
+
public static FontLoader create(String fontOsLocation) {
try {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
-
+
SAXParser parser = parserFactory.newSAXParser();
File f = new File(fontOsLocation + File.separator + FONTS_DEFINITIONS);
-
+
FontDefinitionParser definitionParser = new FontDefinitionParser(
fontOsLocation + File.separator);
parser.parse(new FileInputStream(f), definitionParser);
-
+
return definitionParser.getFontLoader();
} catch (ParserConfigurationException e) {
// return null below
@@ -101,12 +103,35 @@ public final class FontLoader {
return null;
}
- private FontLoader(List<FontInfo> fontList) {
+ private FontLoader(List<FontInfo> fontList, List<String> fallBackList) {
for (FontInfo info : fontList) {
for (String family : info.families) {
mFamilyToTtf.put(family, info.ttf);
}
}
+
+ ArrayList<Font> list = new ArrayList<Font>();
+ for (String path : fallBackList) {
+ File f = new File(path + FONT_EXT);
+ if (f.isFile()) {
+ try {
+ Font font = Font.createFont(Font.TRUETYPE_FONT, f);
+ if (font != null) {
+ list.add(font);
+ }
+ } catch (FontFormatException e) {
+ // skip this font name
+ } catch (IOException e) {
+ // skip this font name
+ }
+ }
+ }
+
+ mFallBackFonts = Collections.unmodifiableList(list);
+ }
+
+ public List<Font> getFallBackFonts() {
+ return mFallBackFonts;
}
public synchronized Font getFont(String family, int[] style) {
@@ -116,25 +141,25 @@ public final class FontLoader {
// get the ttf name from the family
String ttf = mFamilyToTtf.get(family);
-
+
if (ttf == null) {
return null;
}
-
+
// get the font from the ttf
Map<Integer, Font> styleMap = mTtfToFontMap.get(ttf);
-
+
if (styleMap == null) {
styleMap = new HashMap<Integer, Font>();
mTtfToFontMap.put(ttf, styleMap);
}
-
+
Font f = styleMap.get(style);
-
+
if (f != null) {
return f;
}
-
+
// if it doesn't exist, we create it, and we can't, we try with a simpler style
switch (style[0]) {
case Typeface.NORMAL:
@@ -178,7 +203,7 @@ public final class FontLoader {
private Font getFont(String ttf, String[] fontFileSuffix) {
for (String suffix : fontFileSuffix) {
String name = ttf + suffix + FONT_EXT;
-
+
File f = new File(name);
if (f.isFile()) {
try {
@@ -193,14 +218,14 @@ public final class FontLoader {
}
}
}
-
+
return null;
}
private final static class FontInfo {
String ttf;
final Set<String> families;
-
+
FontInfo() {
families = new HashSet<String>();
}
@@ -208,19 +233,19 @@ public final class FontLoader {
private final static class FontDefinitionParser extends DefaultHandler {
private final String mOsFontsLocation;
-
- private int mDepth = 0;
+
private FontInfo mFontInfo = null;
private final StringBuilder mBuilder = new StringBuilder();
- private final List<FontInfo> mFontList = new ArrayList<FontInfo>();
-
+ private List<FontInfo> mFontList;
+ private List<String> mFallBackList;
+
private FontDefinitionParser(String osFontsLocation) {
super();
mOsFontsLocation = osFontsLocation;
}
-
+
FontLoader getFontLoader() {
- return new FontLoader(mFontList);
+ return new FontLoader(mFontList, mFallBackList);
}
/* (non-Javadoc)
@@ -229,10 +254,11 @@ public final class FontLoader {
@Override
public void startElement(String uri, String localName, String name, Attributes attributes)
throws SAXException {
- if (localName.equals(NODE_LEVEL[mDepth])) {
- mDepth++;
-
- if (mDepth == 2) { // font level.
+ if (NODE_FONTS.equals(localName)) {
+ mFontList = new ArrayList<FontInfo>();
+ mFallBackList = new ArrayList<String>();
+ } else if (NODE_FONT.equals(localName)) {
+ if (mFontList != null) {
String ttf = attributes.getValue(ATTR_TTF);
if (ttf != null) {
mFontInfo = new FontInfo();
@@ -240,42 +266,50 @@ public final class FontLoader {
mFontList.add(mFontInfo);
}
}
+ } else if (NODE_NAME.equals(localName)) {
+ // do nothing, we'll handle the name in the endElement
+ } else if (NODE_FALLBACK.equals(localName)) {
+ if (mFallBackList != null) {
+ String ttf = attributes.getValue(ATTR_TTF);
+ if (ttf != null) {
+ mFallBackList.add(mOsFontsLocation + ttf);
+ }
+ }
}
+ mBuilder.setLength(0);
+
super.startElement(uri, localName, name, attributes);
}
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
*/
- @SuppressWarnings("unused")
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
- if (mFontInfo != null) {
- mBuilder.append(ch, start, length);
- }
+ mBuilder.append(ch, start, length);
}
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
*/
- @SuppressWarnings("unused")
@Override
public void endElement(String uri, String localName, String name) throws SAXException {
- if (localName.equals(NODE_LEVEL[mDepth-1])) {
- mDepth--;
- if (mDepth == 2) { // end of a <name> node
- if (mFontInfo != null) {
- String family = trimXmlWhitespaces(mBuilder.toString());
- mFontInfo.families.add(family);
- mBuilder.setLength(0);
- }
- } else if (mDepth == 1) { // end of a <font> node
- mFontInfo = null;
+ if (NODE_FONTS.equals(localName)) {
+ // top level, do nothing
+ } else if (NODE_FONT.equals(localName)) {
+ mFontInfo = null;
+ } else if (NODE_NAME.equals(localName)) {
+ // handle a new name for an existing Font Info
+ if (mFontInfo != null) {
+ String family = trimXmlWhitespaces(mBuilder.toString());
+ mFontInfo.families.add(family);
}
+ } else if (NODE_FALLBACK.equals(localName)) {
+ // nothing to do here.
}
}
-
+
private String trimXmlWhitespaces(String value) {
if (value == null) {
return null;
@@ -283,7 +317,7 @@ public final class FontLoader {
// look for carriage return and replace all whitespace around it by just 1 space.
int index;
-
+
while ((index = value.indexOf('\n')) != -1) {
// look for whitespace on each side
int left = index - 1;
@@ -294,7 +328,7 @@ public final class FontLoader {
break;
}
}
-
+
int right = index + 1;
int count = value.length();
while (right < count) {
@@ -304,7 +338,7 @@ public final class FontLoader {
break;
}
}
-
+
// remove all between left and right (non inclusive) and replace by a single space.
String leftString = null;
if (left >= 0) {
@@ -314,7 +348,7 @@ public final class FontLoader {
if (right < count) {
rightString = value.substring(right);
}
-
+
if (leftString != null) {
value = leftString;
if (rightString != null) {
@@ -324,24 +358,24 @@ public final class FontLoader {
value = rightString != null ? rightString : "";
}
}
-
+
// now we un-escape the string
int length = value.length();
char[] buffer = value.toCharArray();
-
+
for (int i = 0 ; i < length ; i++) {
if (buffer[i] == '\\') {
if (buffer[i+1] == 'n') {
// replace the char with \n
buffer[i+1] = '\n';
}
-
+
// offset the rest of the buffer since we go from 2 to 1 char
System.arraycopy(buffer, i+1, buffer, i, length - i - 1);
length--;
}
}
-
+
return new String(buffer, 0, length);
}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/ResourceHelper.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/ResourceHelper.java
index fbdf8dc5c242..3d0dd7387ddc 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/ResourceHelper.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/ResourceHelper.java
@@ -16,6 +16,9 @@
package com.android.layoutlib.bridge;
+import com.android.layoutlib.api.IDensityBasedResourceValue;
+import com.android.layoutlib.api.IResourceValue;
+import com.android.layoutlib.api.IDensityBasedResourceValue.Density;
import com.android.ninepatch.NinePatch;
import org.kxml2.io.KXmlParser;
@@ -40,7 +43,7 @@ import java.util.regex.Pattern;
* Helper class to provide various convertion method used in handling android resources.
*/
public final class ResourceHelper {
-
+
private final static Pattern sFloatPattern = Pattern.compile("(-?[0-9]+(?:\\.[0-9]+)?)(.*)");
private final static float[] sFloatOut = new float[1];
@@ -59,12 +62,12 @@ public final class ResourceHelper {
}
value = value.substring(1);
-
+
// make sure it's not longer than 32bit
if (value.length() > 8) {
throw new NumberFormatException();
}
-
+
if (value.length() == 3) { // RGB format
char[] color = new char[8];
color[0] = color[1] = 'F';
@@ -84,7 +87,7 @@ public final class ResourceHelper {
}
// this is a RRGGBB or AARRGGBB value
-
+
// Integer.parseInt will fail to parse strings like "ff191919", so we use
// a Long, but cast the result back into an int, since we know that we're only
// dealing with 32 bit values.
@@ -96,28 +99,30 @@ public final class ResourceHelper {
/**
* Returns a drawable from the given value.
- * @param value The value. A path to a 9 patch, a bitmap or a xml based drawable,
+ * @param value The value that contains a path to a 9 patch, a bitmap or a xml based drawable,
* or an hexadecimal color
- * @param context
+ * @param context
* @param isFramework indicates whether the resource is a framework resources.
* Framework resources are cached, and loaded only once.
*/
- public static Drawable getDrawable(String value, BridgeContext context, boolean isFramework) {
+ public static Drawable getDrawable(IResourceValue value, BridgeContext context, boolean isFramework) {
Drawable d = null;
-
- String lowerCaseValue = value.toLowerCase();
+
+ String stringValue = value.getValue();
+
+ String lowerCaseValue = stringValue.toLowerCase();
if (lowerCaseValue.endsWith(NinePatch.EXTENSION_9PATCH)) {
- File f = new File(value);
- if (f.isFile()) {
- NinePatch ninePatch = Bridge.getCached9Patch(value,
+ File file = new File(stringValue);
+ if (file.isFile()) {
+ NinePatch ninePatch = Bridge.getCached9Patch(stringValue,
isFramework ? null : context.getProjectKey());
-
+
if (ninePatch == null) {
try {
- ninePatch = NinePatch.load(new File(value).toURL(), false /* convert */);
-
- Bridge.setCached9Patch(value, ninePatch,
+ ninePatch = NinePatch.load(file.toURL(), false /* convert */);
+
+ Bridge.setCached9Patch(stringValue, ninePatch,
isFramework ? null : context.getProjectKey());
} catch (MalformedURLException e) {
// URL is wrong, we'll return null below
@@ -125,23 +130,23 @@ public final class ResourceHelper {
// failed to read the file, we'll return null below.
}
}
-
+
if (ninePatch != null) {
return new NinePatchDrawable(ninePatch);
}
}
-
+
return null;
} else if (lowerCaseValue.endsWith(".xml")) {
// create a blockparser for the file
- File f = new File(value);
+ File f = new File(stringValue);
if (f.isFile()) {
try {
// let the framework inflate the Drawable from the XML file.
KXmlParser parser = new KXmlParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
parser.setInput(new FileReader(f));
-
+
d = Drawable.createFromXml(context.getResources(),
// FIXME: we need to know if this resource is platform or not
new BridgeXmlBlockParser(parser, context, false));
@@ -157,19 +162,43 @@ public final class ResourceHelper {
return null;
} else {
- File bmpFile = new File(value);
+ File bmpFile = new File(stringValue);
if (bmpFile.isFile()) {
try {
- Bitmap bitmap = Bridge.getCachedBitmap(value,
+ Bitmap bitmap = Bridge.getCachedBitmap(stringValue,
isFramework ? null : context.getProjectKey());
-
+
if (bitmap == null) {
bitmap = new Bitmap(bmpFile);
- Bridge.setCachedBitmap(value, bitmap,
+ try {
+ bitmap.setDensity(Density.MEDIUM.getValue());
+ } catch (NoClassDefFoundError error) {
+ // look like we're running in an older version of ADT that doesn't
+ // include the new layoutlib_api. Let's just ignore this, the drawing
+ // will just be wrong.
+ }
+ Bridge.setCachedBitmap(stringValue, bitmap,
isFramework ? null : context.getProjectKey());
}
-
- return new BitmapDrawable(bitmap);
+
+ try {
+ if (value instanceof IDensityBasedResourceValue) {
+ Density density = ((IDensityBasedResourceValue)value).getDensity();
+ if (density != Density.MEDIUM) {
+ // create a copy of the bitmap
+ bitmap = Bitmap.createBitmap(bitmap);
+
+ // apply the density
+ bitmap.setDensity(density.getValue());
+ }
+ }
+ } catch (NoClassDefFoundError error) {
+ // look like we're running in an older version of ADT that doesn't include
+ // the new layoutlib_api. Let's just ignore this, the drawing will just be
+ // wrong.
+ }
+
+ return new BitmapDrawable(context.getResources(), bitmap);
} catch (IOException e) {
// we'll return null below
// TODO: log the error.
@@ -177,7 +206,7 @@ public final class ResourceHelper {
} else {
// attempt to get a color from the value
try {
- int color = getColor(value);
+ int color = getColor(stringValue);
return new ColorDrawable(color);
} catch (NumberFormatException e) {
// we'll return null below.
@@ -185,20 +214,20 @@ public final class ResourceHelper {
}
}
}
-
+
return null;
}
-
+
// ------- TypedValue stuff
// This is taken from //device/libs/utils/ResourceTypes.cpp
-
+
private static final class UnitEntry {
String name;
int type;
int unit;
float scale;
-
+
UnitEntry(String name, int type, int unit, float scale) {
this.name = name;
this.type = type;
@@ -218,7 +247,7 @@ public final class ResourceHelper {
new UnitEntry("%", TypedValue.TYPE_FRACTION, TypedValue.COMPLEX_UNIT_FRACTION, 1.0f/100),
new UnitEntry("%p", TypedValue.TYPE_FRACTION, TypedValue.COMPLEX_UNIT_FRACTION_PARENT, 1.0f/100),
};
-
+
/**
* Returns the raw value from the given string.
* This object is only valid until the next call on to {@link ResourceHelper}.
@@ -227,10 +256,10 @@ public final class ResourceHelper {
if (stringToFloat(s, mValue)) {
return mValue;
}
-
+
return null;
}
-
+
/**
* Convert the string into a {@link TypedValue}.
* @param s
@@ -258,7 +287,7 @@ public final class ResourceHelper {
if (buf[0] < '0' && buf[0] > '9' && buf[0] != '.') {
return false;
}
-
+
// now look for the string that is after the float...
Matcher m = sFloatPattern.matcher(s);
if (m.matches()) {
@@ -272,11 +301,11 @@ public final class ResourceHelper {
// this shouldn't happen with the regexp above.
return false;
}
-
+
if (end.length() > 0 && end.charAt(0) != ' ') {
// Might be a unit...
if (parseUnit(end, outValue, sFloatOut)) {
-
+
f *= sFloatOut[0];
boolean neg = f < 0;
if (neg) {
@@ -312,17 +341,17 @@ public final class ResourceHelper {
if (neg) {
mantissa = (-mantissa) & TypedValue.COMPLEX_MANTISSA_MASK;
}
- outValue.data |=
+ outValue.data |=
(radix<<TypedValue.COMPLEX_RADIX_SHIFT)
| (mantissa<<TypedValue.COMPLEX_MANTISSA_SHIFT);
return true;
}
return false;
}
-
+
// make sure it's only spaces at the end.
end = end.trim();
-
+
if (end.length() == 0) {
if (outValue != null) {
outValue.type = TypedValue.TYPE_FLOAT;
@@ -334,7 +363,7 @@ public final class ResourceHelper {
return false;
}
-
+
private static boolean parseUnit(String str, TypedValue outValue, float[] outScale) {
str = str.trim();
@@ -343,7 +372,7 @@ public final class ResourceHelper {
outValue.type = unit.type;
outValue.data = unit.unit << TypedValue.COMPLEX_UNIT_SHIFT;
outScale[0] = unit.scale;
-
+
return true;
}
}