Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 1 | page.title=Android 1.6 Version Notes |
| 2 | |
| 3 | @jd:body |
| 4 | |
| 5 | <p> |
| 6 | <em>Date:</em> September 2009<br /> |
| 7 | <em>API Level:</em> <strong>4</strong></p> |
| 8 | |
| 9 | |
| 10 | <p>This document provides version notes for the Android 1.6 system image included in the SDK. </p> |
| 11 | |
| 12 | <ul> |
| 13 | <li><a href="#overview">Overview</a> |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 14 | <li><a href="#features">Release Highlights</a> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 15 | <li><a href="#apps">Built-in Applications</a> |
| 16 | <li><a href="#locs">Locales</a> |
| 17 | <li><a href="#api-changes">API Changes</a> |
| 18 | </ul> |
| 19 | |
| 20 | <h2 id="overview">Overview</h2> |
| 21 | |
| 22 | <p>The Android 1.6 system delivered in the SDK (as library and system image) is |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 23 | the development counterpart to the Android 1.6 production system image, which is |
| 24 | deployable to Android-powered handsets starting October 2009. The system is |
| 25 | fully compliant and includes no external libraries. </p> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 26 | |
| 27 | <p>The Android 1.6 system delivers an updated version of the framework |
| 28 | API. As with previous versions, the Android 1.6 API |
| 29 | is assigned an integer identifier — <strong>4</strong> — that is |
| 30 | stored in the system itself. This identifier, called the "API Level", allows the |
| 31 | system to correctly determine whether an application is compatible with |
| 32 | the system, prior to installing the application. </p> |
| 33 | |
| 34 | <p>For more information about how to use API Level, see the <a |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 35 | href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 36 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 37 | <h2 id="features">Highlights</h2> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 38 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 39 | <p>For a list of new user features and platform highlights, see the <a |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 40 | href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform |
| 41 | Highlights</a> document.</p> |
| 42 | |
| 43 | <h2 id="apps">Built-in Applications</h2> |
| 44 | |
| 45 | <p>The system image includes these built-in applications:</p> |
| 46 | <ul> |
| 47 | <li>Alarm Clock</li> |
| 48 | <li>Browser</li> |
| 49 | <li>Calculator</li> |
| 50 | <li>Camcorder</li> |
| 51 | <li>Camera</li> |
| 52 | <li>Contacts</li> |
| 53 | <li>Custom Locale (developer app)</li> |
| 54 | <li>Dev Tools (developer app)</li> |
| 55 | <li>Dialer</li> |
| 56 | <li>Email</li> |
| 57 | <li>Gallery</li> |
| 58 | <li>Gestures Builder</li> |
| 59 | <li>IME for Japanese text input</li> |
| 60 | <li>Messaging</li> |
| 61 | <li>Music</li> |
| 62 | <li>Settings</li> |
| 63 | <li>Spare Parts (developer app)</li> |
| 64 | </ul> |
| 65 | |
| 66 | <h2 id="locs">Locales</h2> |
| 67 | |
| 68 | <p>The system image provides a variety of built-in locales. In some cases, |
| 69 | region-specific strings are available for the locales. In other cases, |
| 70 | a default version of the language is used. The languages that will be |
| 71 | available in the Android 1.6 system image are listed below (with |
| 72 | <em>language</em>_<em>country/region</em> locale descriptor).</p> |
| 73 | |
| 74 | <table style="border:0;"> |
| 75 | <tr> |
| 76 | <td style="border:0"> |
| 77 | <ul style="margin-bottom:0;"> |
| 78 | <li>Arabic, Egypt (ar_EG)</li> |
| 79 | <li>Arabic, Israel (ar_IL)</li> |
| 80 | <li>Bulgarian, Bulgaria (bg_BG)</li> |
| 81 | <li>Chinese, PRC (zh_CN)</li> |
| 82 | <li>Chinese, Taiwan (zh_TW)</li> |
| 83 | <li>Croatian, Croatia (hr_HR)</li> |
| 84 | <li>Czech, Czech Republic (cs_CZ)</li> |
| 85 | <li>Danish, Denmark (da_DK)</li> |
| 86 | <li>Dutch, Netherlands (nl_NL)</li> |
| 87 | <li>Dutch, Belgium (nl_BE)</li> |
| 88 | <li>English, US (en_US)</li> |
| 89 | <li>English, Britain (en_GB)</li> |
| 90 | <li>English, Canada (en_CA)</li> |
| 91 | <li>English, Australia (en_AU)</li> |
| 92 | <li>English, India (en_IN)</li> |
| 93 | <li>English, Ireland (en_IE)</li> |
| 94 | <li>English, New Zealand (en_NZ)</li> |
| 95 | <li>English, Singapore (en_SG)</li> |
| 96 | <li>English, South Africa (en_ZA)</li> |
| 97 | <li>Finnish, Finland (fi_FI)</li> |
| 98 | <li>French, France (fr_FR)</li> |
| 99 | <li>French, Belgium (fr_BE)</li> |
| 100 | <li>French, Canada (fr_CA)</li> |
| 101 | <li>French, Switzerland (fr_CH)</li> |
| 102 | <li>German, Germany (de_DE)</li> |
| 103 | <li>German, Austria (de_AT)</li> |
| 104 | <li>German, Switzerland (de_CH)</li> |
| 105 | <li>German, Liechtenstein (de_LI)</li> |
| 106 | </ul> |
| 107 | </td> |
| 108 | <td style="border:0;padding-left:5em;"> |
| 109 | <ul style="margin-bottom:0;"> |
| 110 | <li>Greek, Greece (el_GR)</li> |
| 111 | <li>Hindi, India (hi_IN)</li> |
| 112 | <li>Hungarian, Hungary (hu_HU)</li> |
| 113 | <li>Indonesian, Indonesia (id_ID)</li> |
| 114 | <li>Italian, Italy (it_IT)</li> |
| 115 | <li>Italian, Switzerland (it_CH)</li> |
| 116 | <li>Japanese, Japan (ja_JP)</li> |
| 117 | <li>Korean, Korea (ko_KR)</li> |
| 118 | <li>Latvian, Latvia (lv_LV)</li> |
| 119 | <li>Lithuanian, Lithuania (lt_LT)</li> |
| 120 | <li>Norwegian Bokmål, Norway (nb_NO)</li> |
| 121 | <li>Polish, Poland (pl_PL)</li> |
| 122 | <li>Portuguese, Brazil (pt_BR)</li> |
| 123 | <li>Portuguese, Portugal (pt_PT)</li> |
| 124 | <li>Romanian, Romania (ro_RO)</li> |
| 125 | <li>Russian, Russia (ru_RU)</li> |
| 126 | <li>Serbian, Serbia (sr_RS)</li> |
| 127 | <li>Slovak, Slovakia (sk_SK)</li> |
| 128 | <li>Slovenian, Slovenia (sl_SI)</li> |
| 129 | <li>Spanish, Spain (es_ES)</li> |
| 130 | <li>Spanish, US (es_US)</li> |
| 131 | <li>Swedish, Sweden (sv_SE)</li> |
| 132 | <li>Thai, Thailand (th_TH)</li> |
| 133 | <li>Tagalog, Philippines (tl_PH)</li> |
| 134 | <li>Turkish, Turkey (tr_TR)</li> |
| 135 | <li>Ukranian, Ukrania (uk_UA)</li> |
| 136 | <li>Vietnamese, Vietnam (vi_VN)</li> |
| 137 | </ul> |
| 138 | </td> |
| 139 | </tr> |
| 140 | </table> |
| 141 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 142 | <p>Localized UI strings match the locales that are accessible |
| 143 | through Settings.</p> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 144 | |
| 145 | <h2 id="api-changes">API Changes</h2> |
| 146 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 147 | <h4 id="UIFramework">UI framework</h4> |
| 148 | <ul> |
| 149 | <li>New classes in {@link android.view.animation} |
| 150 | to control the behavior of animations: |
| 151 | <ul> |
| 152 | <li><code>AnticipateInterpolator</code></li> |
| 153 | <li><code>AnticipateOvershootInterpolator</code></li> |
| 154 | <li><code>BounceInterpolator</code></li> |
| 155 | <li><code>OvershootInterpolator</code></li> |
| 156 | </ul> |
| 157 | </li> |
| 158 | <li>New XML attribute <code>android:onClick</code> to specify a View's |
| 159 | <a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> |
| 160 | from a layout file. |
| 161 | </li> |
| 162 | <li>New support for dealing with varying screen densities. Density |
| 163 | information is associated with Bitmap and Canvas for performing the |
| 164 | correct scaling. The framework will automatically scale bitmaps and |
| 165 | nine-patches based on the density the resource was found under and the |
| 166 | density of the screen, etc. |
| 167 | </li> |
| 168 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 169 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 170 | <h4>Search framework</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 171 | <ul> |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 172 | <li>Applications can now expose relevant content to users as search |
| 173 | suggestions in the Quick Search Box, a new device-wide search capability that is |
| 174 | accessible from the home screen. To support this, the search framework adds new |
| 175 | attributes to the searchable metadata file. For complete information, see the |
| 176 | {@link android.app.SearchManager SearchManager} documentation. |
| 177 | </li> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 178 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 179 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 180 | <h4>Accessibility framework</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 181 | <ul> |
| 182 | <li>New {@link android.view.accessibility android.accessibility} package |
| 183 | that includes classes for capturing accessibility events and forwarding them to |
| 184 | an {@link android.accessibilityservice AccessibilityService} handler. </li> |
| 185 | <li>New {@link android.accessibilityservice AccessibilityService} package |
| 186 | that lets your application track user events and provide visual, audible, or |
| 187 | haptic feedback to the user. </li> |
| 188 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 189 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 190 | <h4>Gesture Input</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 191 | <ul> |
| 192 | <li>New {@link android.gesture gesture} API for creating, recognizing, |
| 193 | loading, and saving gestures.</li> |
| 194 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 195 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 196 | <h4>Text-to-speech</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 197 | <ul> |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 198 | <li>New {@link android.speech.tts android.speech.tts} package provides |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 199 | classes for synthesizing speech from text, for immediate playback or to create a |
| 200 | sound file.</li> |
| 201 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 202 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 203 | <h4>Graphics</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 204 | <ul> |
| 205 | <li>Classes in {@link android.graphics android.graphics} now support scaling |
| 206 | for different screen densities.</li> |
| 207 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 208 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 209 | <h4>Telephony</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 210 | <ul> |
| 211 | <li>New {@link android.telephony.SmsManager SmsManager} and other classes |
| 212 | for sending and receiving SMS messages.</li> |
| 213 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 214 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 215 | <h4>Utilities</h4> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 216 | <ul> |
| 217 | <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for |
| 218 | determining the density of the current device screen.</li> |
| 219 | </ul> |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 220 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 221 | <h4 id="AndroidManifest">Android Manifest elements</h4> |
| 222 | |
| 223 | <ul> |
| 224 | <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code |
| 225 | <supports-screens>}</a> element lets you specify the device screen sizes that your |
| 226 | application is designed and tested to support, where "size" is a combination |
| 227 | of resolution and density. If your application is run on a device whose screen |
| 228 | size is not specified in the <code><supports-screen></code> element, the system |
| 229 | displays the application in <em>compatibility mode</em>, which performs best-effort scaling |
| 230 | of the application UI to match the resolution and density of the screen. |
| 231 | |
| 232 | <p>The attributes available for defining an application's screen support are: |
| 233 | |
| 234 | <ul> |
| 235 | |
| 236 | <li><code>smallScreen</code>: Boolean value that indicates whether the |
| 237 | application is designed to run on devices with small screens. |
| 238 | Examples: QVGA low density; VGA high density. |
| 239 | </li> |
| 240 | <li><code>normalScreens</code>: Boolean value that indicates whether |
| 241 | the application is designed to run on devices with normal screens. |
| 242 | Examples: WQVGA low density; HVGA medium density; WVGA high density. |
| 243 | </li> |
| 244 | <li><code>largeScreens</code>: Boolean value that indicates whether |
| 245 | the application is designed to run on devices with significantly |
| 246 | larger screens, such that special care may be required on |
| 247 | the application's part to make proper use of the screen area. |
| 248 | Examples: VGA medium density; WVGA medium density. |
| 249 | </li> |
| 250 | <li><code>anyDensity</code>: Boolean value that indicates whether |
| 251 | the application can accommodate any screen density. |
| 252 | </li> |
| 253 | <li><code>resizable</code>: Boolean value that indicates whether |
| 254 | the application can expand its layout to fit slightly larger screens. |
| 255 | </li> |
| 256 | </ul> |
| 257 | </p> |
| 258 | </li> |
| 259 | |
| 260 | <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> |
| 261 | element lets an application specify hardware (or other) |
| 262 | features that it requires to function normally. When an application |
| 263 | specifies such features, the system allows the application to be installed only |
| 264 | on devices that offer the required features. The element supports these |
| 265 | attributes: |
| 266 | <ul> |
| 267 | <li><code>name</code>: The name of the feature required by the application. Currently accepts |
| 268 | "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a |
| 269 | camera and camera autofocus are required, respectively.</li> |
| 270 | <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li> |
| 271 | </ul> |
| 272 | </li> |
| 273 | <li>New attributes for the |
| 274 | <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element: |
| 275 | <ul> |
| 276 | <li><code>maxSdkVersion</code>: This indicates the maximum API Level on which an application is |
| 277 | designed to run. If an application declares this attribute, the Android system prevents the user |
| 278 | from installing the application if the system's API Level is higher than the value specified in |
| 279 | this attribute. </li> |
| 280 | <li><code>targetSdkVersion</code>: This indicates the API Level that the application is targeting. |
| 281 | It is able to run on older versions (down to minSdkVersion), but was explicitly tested to |
| 282 | work with the version specified here. Specifying this version allows the platform to |
| 283 | disable compatibility code that is not required or enable newer features that are not |
| 284 | available to older applications. </li> |
| 285 | </ul> |
| 286 | </li> |
| 287 | |
| 288 | </li> |
| 289 | </ul> |
| 290 | |
| 291 | <h4>New Permissions</h4> |
| 292 | |
| 293 | <ul> |
| 294 | <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE |
| 295 | CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi |
| 296 | Multicast mode. |
| 297 | </li> |
| 298 | <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the |
| 299 | global search system to access the data of a specified content provider. |
| 300 | </li> |
| 301 | <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: |
| 302 | Allows an application to install a location provider into the Location Manager. |
| 303 | </li> |
| 304 | <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: |
| 305 | Allows an application to read (but not write) the user's browsing history |
| 306 | and bookmarks. |
| 307 | </li> |
| 308 | <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: |
| 309 | Allows an application to write (but not read) the user's browsing history |
| 310 | and bookmarks. |
| 311 | </li> |
| 312 | <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: |
| 313 | Allows an application to write to external storage. Applications using API Level 3 |
| 314 | and lower will be implicitly granted this permission (and this will be visible to |
| 315 | the user); Applications using API Level 4 or higher must explicitly request this |
| 316 | permission. |
| 317 | </li> |
| 318 | </ul> |
| 319 | |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 320 | |
| 321 | <h3 id="api-diff">API Change Details</h3> |
| 322 | |
Dirk Dougherty | 24db03a | 2009-09-09 13:33:45 -0700 | [diff] [blame] | 323 | <p>For a detailed view of API changes in Android 1.6 (API Level 4), see the <a |
Dirk Dougherty | a6602f1 | 2009-08-27 16:26:43 -0700 | [diff] [blame] | 324 | href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p> |