| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 1 | page.title=Ice Cream Sandwich |
| 2 | |
| 3 | @jd:body |
| 4 | |
| 5 | |
| 6 | <style type="text/css"> |
| 7 | #jd-content { |
| 8 | max-width:1024px; |
| 9 | } |
| 10 | #jd-content div.screenshot { |
| 11 | float:left; |
| 12 | clear:left; |
| 13 | padding:15px 30px 15px 0; |
| 14 | } |
| 15 | #jd-content div.video { |
| 16 | float:right; |
| 17 | padding:0 0 40px 60px; |
| 18 | } |
| 19 | #jd-content table.columns { |
| 20 | margin:0 0 1em 0; |
| 21 | } |
| 22 | #jd-content table.columns td { |
| 23 | padding:0; |
| 24 | } |
| 25 | #jd-content table.columns td+td { |
| 26 | padding:0 2em; |
| 27 | } |
| 28 | #jd-content table.columns td img { |
| 29 | margin:0; |
| 30 | } |
| 31 | #jd-content table.columns td+td>*:first-child { |
| 32 | margin-top:-2em; |
| 33 | } |
| 34 | .green { |
| 35 | color:#8db529; |
| 36 | font-weight:bold; |
| 37 | } |
| 38 | </style> |
| 39 | |
| 40 | <p>Welcome to Android 4.0!</p> |
| 41 | |
| 42 | <p>Android 4.0 delivers a refined, unified UI for phones and tablets and |
| 43 | introduces innovative features for users and developers. This document provides |
| 44 | a glimpse of the many new features and technologies that make Android 4.0 |
| 45 | simple, beautiful, and beyond smart. <!--For technical details about |
| 46 | new developer APIs described below, see the <a |
| 47 | href="{@docRoot}about/versions/android-4.0.html">Android 4.0 API Overview</a> |
| 48 | document.--></p> |
| 49 | |
| 50 | <ul> |
| 51 | <li><a href="#UserFeatures">Android 4.0 for Users</a></li> |
| 52 | <li><a href="#DeveloperApis">Android 4.0 for Developers</a></li> |
| 53 | </ul> |
| 54 | |
| 55 | <h2 id="UserFeatures" style="clear:right">Android 4.0 for Users</h2> |
| 56 | |
| 57 | <div style="padding-bottom:0em;"> |
| 58 | <a href="{@docRoot}sdk/images/4.0/home-lg.png" target="_android"><img |
| 59 | style="margin-left:10px;float:right;xborder:1px solid #ddd;border-radius: 5px;" |
| 60 | src="{@docRoot}sdk/images/4.0/home.png" alt="" height="300" width="180" /></a> |
| 61 | <a href="{@docRoot}sdk/images/4.0/lock-lg.png" target="_android"><img |
| 62 | style="margin-left:20px;float:right;border:1px solid #ddd;border-radius: 5px;" |
| 63 | src="{@docRoot}sdk/images/4.0/lock.png" alt="" height="300" width="180" /></a> |
| 64 | </div> |
| 65 | |
| 66 | |
| 67 | <h3 id="simple" style="color:#258AAF">Simple, beautiful, beyond smart</h3> |
| 68 | |
| 69 | <p>Android 4.0 builds on the things people love most about Android — easy |
| 70 | multitasking, rich notifications, customizable home screens, resizable widgets, |
| 71 | and deep interactivity — and adds powerful new ways of communicating and |
| 72 | sharing.</p> |
| 73 | |
| 74 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Refined, evolved UI</strong></p> |
| 75 | |
| 76 | <p>Focused on bringing the power of Android to the surface, Android 4.0 makes |
| 77 | <strong>common actions more visible</strong> and lets users navigate with |
| 78 | simple, intuitive gestures. Refined <strong>animations</strong> and feedback |
| 79 | throughout the system make interactions engaging and interesting. An entirely |
| 80 | <strong>new typeface</strong> optimized for high-resolution screens improves |
| 81 | readability and brings a polished, modern feel to the user interface.</p> |
| 82 | |
| 83 | <p>Virtual buttons in the System Bar let users navigate instantly to Back, Home, |
| 84 | and Recent Apps. The <strong>System Bar</strong> and virtual buttons are present |
| 85 | across all apps, but can be dimmed by applications for full-screen viewing. |
| 86 | Users can access each application's contextual options in the <strong>Action |
| 87 | Bar</strong>, displayed at the top (and sometimes also at the bottom) of the |
| 88 | screen.</p> |
| 89 | |
| 90 | <p><strong>Multitasking</strong> is a key strength of Android and it's made even |
| 91 | easier and more visual on Android 4.0. The Recent Apps button lets users jump |
| 92 | instantly from one task to another using the list in the System Bar. The list |
| 93 | pops up to show thumbnail images of apps used recently — tapping a |
| 94 | thumbnail switches to the app.</p> |
| 95 | |
| 96 | <div style="padding-top:0em;"> |
| 97 | <div style="margin-right:.5em;float:left;width:182px;padding-top:.5em;"> |
| 98 | <a href="{@docRoot}sdk/images/4.0/tasks-lg.png" target="_android"> |
| 99 | <img src="{@docRoot}sdk/images/4.0/tasks.png" alt="" height="240" width="144" style="border:1px |
| 100 | solid #ddd;border-radius: 6px;" /></a> |
| 101 | <div style="padding-bottom:1em;font-size:.9em;padding-right:1em;">The Recent Apps list makes |
| 102 | multitasking simple.</div> |
| 103 | <a href="{@docRoot}sdk/images/4.0/lock-camera-lg.png" target="_android"> |
| 104 | <img src="{@docRoot}sdk/images/4.0/lock-camera.png" alt="" height="240" width="144" |
| 105 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 106 | <div style="padding-bottom:1em;font-size:.9em;padding-right:1.75em;">Jump to the camera or see |
| 107 | notifications without unlocking.</div> |
| 108 | <a href="{@docRoot}sdk/images/4.0/contact-call-lg.png" target="_android"> |
| 109 | <img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" |
| 110 | style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> |
| 111 | <!--<a href="{@docRoot}sdk/images/4.0/quick-response-lg.png" target="_android"> |
| 112 | <img src="{@docRoot}sdk/images/4.0/quick-responses-new.png" alt="" height="240" width="144" |
| 113 | style="border:1px solid #ddd;border-radius: 6px;" /></a>--> |
| 114 | <div style="padding-bottom:.5em;font-size:.9em;padding-right:1.75em;">For incoming calls, you can |
| 115 | respond instantly by text.</div> |
| 116 | </div> |
| 117 | </div> |
| 118 | |
| 119 | <p>Rich and interactive <strong>notifications</strong> let users keep in |
| 120 | constant touch with incoming messages, play music tracks, see real-time updates |
| 121 | from apps, and much more. On smaller-screen devices, notifications appear at the |
| 122 | top of the screen, while on larger-screen devices they appear in the System |
| 123 | Bar.</p> |
| 124 | |
| 125 | <div style="padding-top:0em;"> |
| 126 | <div |
| 127 | style="float:right;margin-left:20px;margin-top:.5em;margin-bottom:0;padding-bottom: |
| 128 | 0 ; width:326px"> |
| 129 | <a href="{@docRoot}sdk/images/4.0/allapps-lg.png" target="_android"> |
| 130 | <img src="{@docRoot}sdk/images/4.0/allapps.png" alt="" height="240" width="144" style="border:1px |
| 131 | solid #ddd;border-radius: 6px;" /></a> |
| 132 | <a href="{@docRoot}sdk/images/4.0/calendar-widget-lg.png" target="_android"> |
| 133 | <img src="{@docRoot}sdk/images/4.0/calendar-widget.png" alt="" height="240" width="144" |
| 134 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 135 | <div style="padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure |
| 136 | 3.</strong>-->The All Apps launcher (left) and resizable widgets (right) give you apps and rich |
| 137 | content from the home screen.</div> |
| 138 | </div> |
| 139 | </div> |
| 140 | |
| 141 | |
| 142 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Home screen folders and |
| 143 | favorites tray</strong></p> |
| 144 | |
| 145 | <p>New home screen <strong>folders</strong> offer a new way for users to group |
| 146 | their apps and shortcuts logically, just by dragging one onto another. Also, |
| 147 | in All Apps launcher, users can now simply <strong>drag an app</strong> to get |
| 148 | information about it or immediately uninstall it, or disable a pre-installed app.</p> |
| 149 | |
| 150 | <p>On smaller-screen devices, the home screen now includes a customizable |
| 151 | <strong>favorites tray</strong> visible from all home screens. Users can drag |
| 152 | apps, shortcuts, folders, and other priority items in or out of the favorites |
| 153 | tray for instant access from any home screen.</p> |
| 154 | |
| 155 | |
| 156 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Resizable |
| 157 | widgets</strong></p> |
| 158 | |
| 159 | <p>Home screens in Android 4.0 are designed to be content-rich and customizable. |
| 160 | Users can do much more than add shortcuts — they can embed live |
| 161 | application content directly through interactive <strong>widgets</strong>. |
| 162 | Widgets let users check email, flip through a calendar, play music, check social |
| 163 | streams, and more — right from the home screen, without having to launch |
| 164 | apps. Widgets are resizable, so users can expand them to show more content or |
| 165 | shrink them to save space.</p> |
| 166 | |
| 167 | |
| 168 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>New lock screen |
| 169 | actions</strong></p> |
| 170 | |
| 171 | <p>The lock screens now let users do more without unlocking. From the slide lock |
| 172 | screen, users can <strong>jump directly to the camera</strong> for a picture or |
| 173 | <strong>pull down the notifications window</strong> to check for messages. When |
| 174 | listening to music, users can even manage music tracks and see album art. </p> |
| 175 | |
| 176 | |
| 177 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Quick responses for |
| 178 | incoming calls</strong></p> |
| 179 | |
| 180 | <p>When an incoming call arrives, users can now quickly <strong>respond by text |
| 181 | message</strong>, without needing to pick up the call or unlock the device. On |
| 182 | the incoming call screen, users simply slide a control to see a list of text |
| 183 | responses and then tap to send and end the call. Users can add their own |
| 184 | responses and manage the list from the Settings app.</p> |
| 185 | |
| 186 | |
| 187 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Swipe to dismiss |
| 188 | notifications, tasks, and browser tabs</strong></p> |
| 189 | |
| 190 | <p>Android 4.0 makes managing notifications, recent apps, and browser tabs even |
| 191 | easier. Users can now dismiss individual notifications, apps from the Recent |
| 192 | Apps list, and browser tabs with a simple swipe of a finger. </p> |
| 193 | |
| 194 | <div style="padding-top:0em;"> |
| 195 | <div |
| 196 | style="float:right;margin-left:20px;margin-top:1.5em;margin-bottom:0;padding-bottom |
| 197 | : 0 ; width:200px"> |
| 198 | <a href="{@docRoot}sdk/images/4.0/text-replace-lg.png" target="_android"> |
| 199 | <img src="{@docRoot}sdk/images/4.0/text-replace.png" alt="" width="190" style="border:1px solid |
| 200 | #ddd;border-radius: 6px;" /></a> |
| 201 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure |
| 202 | 3.</strong>-->A spell-checker lets you find errors and fix them faster. </div> |
| 203 | <a href="{@docRoot}sdk/images/4.0/tts-lg.png" target="_android"> |
| 204 | <img src="{@docRoot}sdk/images/4.0/tts.png" alt="" width="190" style="border:1px solid |
| 205 | #ddd;border-radius: 6px;" /></a> |
| 206 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A powerful voice input |
| 207 | engine lets you dictate continously.</div> |
| 208 | </div> |
| 209 | </div> |
| 210 | |
| 211 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved text input and |
| 212 | spell-checking</strong></p> |
| 213 | |
| 214 | <p>The soft keyboard in Android 4.0 makes text input even faster and more |
| 215 | accurate. Error correction and word suggestion are improved through a new set of |
| 216 | default dictionaries and more accurate heuristics for handling cases such as |
| 217 | double-typed characters, skipped letters, and omitted spaces. Word suggestion |
| 218 | is also improved and the suggestion strip is simplified to show only three |
| 219 | words at a time.</p> |
| 220 | |
| 221 | <p>To fix misspelled words more easily, Android 4.0 adds a |
| 222 | <strong>spell-checker</strong> that locates and underlines errors and suggests |
| 223 | replacement words. With one tap, users can choose from multiple spelling |
| 224 | suggestions, delete a word, or add it to the dictionary. Users can even tap to |
| 225 | see replacement suggestions for words that are spelled correctly. For |
| 226 | specialized features or additional languages, users can now download and install |
| 227 | third-party dictionaries, spell-checkers, and other text services.</p> |
| 228 | |
| 229 | |
| 230 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful voice input |
| 231 | engine</strong></p> |
| 232 | |
| 233 | <p>Android 4.0 introduces a powerful new voice input engine that offers a |
| 234 | continuous "open microphone" experience and streaming voice recognition. The new |
| 235 | voice input engine lets users dictate the text they want, for as long as they |
| 236 | want, using the language they want. Users can <strong>speak continously</strong> for a prolonged |
| 237 | time, even pausing for intervals if needed, and dictate punctuation to create |
| 238 | correct sentences. As the voice input engine enters text, it underlines possible |
| 239 | dictation errors in gray. After dictating, users can tap the underlined words to |
| 240 | quickly replace them from a list of suggestions.</p> |
| 241 | |
| 242 | <div style="padding-top:0em;"> |
| 243 | <div style="margsin-right:.8em;float:left;width:350px;padding-top:1em;"> |
| 244 | <a href="{@docRoot}sdk/images/4.0/usage-all-lg.png" target="_android"> |
| 245 | <img src="{@docRoot}sdk/images/4.0/usage-all.png" alt="" height="240" width="144" style="border:1px |
| 246 | solid #ddd;border-radius: 6px;" /></a> |
| 247 | <a href="{@docRoot}sdk/images/4.0/usage-maps-lg.png" target="_android"> |
| 248 | <img src="{@docRoot}sdk/images/4.0/usage-maps.png" alt="" height="240" width="144" style="border:1px |
| 249 | solid #ddd;border-radius: 6px;" /></a> |
| 250 | <div style="padding-bottom:1em;font-size:.9em;padding-right:1.75em;"><!--<strong>Figure |
| 251 | 3.</strong>--> Data usage controls let you monitor total usage by network type and application and |
| 252 | then set limits if needed.</div> |
| 253 | </div> |
| 254 | </div> |
| 255 | |
| 256 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Control over network |
| 257 | data</strong></p> |
| 258 | |
| 259 | <p>Mobile devices can make extensive use of network data for streaming content, |
| 260 | synchronizing data, downloading apps, and more. To meet the needs of users with |
| 261 | <strong>tiered or metered data plans</strong>, Android 4.0 adds new controls for |
| 262 | managing network data usage.</p> |
| 263 | |
| 264 | <p>In the Settings app, colorful charts show the total data usage on each |
| 265 | network type (mobile or Wi-Fi), as well as amount of data used by each running |
| 266 | application. Based on their data plans, users can optionally set warning levels |
| 267 | or hard limits on data usage or disable mobile data altogether. Users can also |
| 268 | manage the background data used by individual applications as needed.</p> |
| 269 | |
| 270 | |
| 271 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Designed for |
| 272 | accessibility</strong></p> |
| 273 | |
| 274 | <p>A variety of new features greatly enhance the accessibility of Android 4.0 |
| 275 | for blind or visually impaired users. Most important is a new |
| 276 | <strong>explore-by-touch mode</strong> that lets users navigate without having |
| 277 | to see the screen. Touching the screen once triggers audible feedback that |
| 278 | identifies the UI component below; a second touch in the same component |
| 279 | activates it with a full touch event. The new mode is especially important to |
| 280 | support users on new devices that use virtual buttons in the System Bar, rather |
| 281 | than dedicated hardware buttons or trackballs. Also, standard apps are updated |
| 282 | to offer an improved accessibility experience. The <strong>Browser</strong> |
| 283 | supports a script-based screen reader for reading favorite web content and |
| 284 | navigating sites. For improved readability, users can also increase the default |
| 285 | font size used across the system.</p> |
| 286 | |
| 287 | <p>The accessibility experience begins at first setup — a simple |
| 288 | <strong>touch gesture</strong> during setup (clockwise square from upper left) |
| 289 | activates all accessibility features and loads a setup tutorial. Once |
| 290 | accessibility features are active, everything visible on the screen can be |
| 291 | spoken aloud by the standard screen reader.</p> |
| 292 | |
| 293 | |
| 294 | <h3 id="comms" style="color:#258AAF">Communication and sharing</h3> |
| 295 | |
| 296 | <div style="padding-top:0em;"> |
| 297 | <div |
| 298 | style="float:right;margin-left:20px;margin-top:1.5em;margin-bottom:0;padding-bottom |
| 299 | : 0 ; width:490px"> |
| 300 | <!--<img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" |
| 301 | style="border:1px solid #ddd;border-radius: 6px;" />--> |
| 302 | <a href="{@docRoot}sdk/images/4.0/contact-faves-lg.png" target="_android"> |
| 303 | <img src="{@docRoot}sdk/images/4.0/contact-faves.png" alt="" height="240" width="144" |
| 304 | style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> |
| 305 | <a href="{@docRoot}sdk/images/4.0/contact-connect-lg.png" target="_android"> |
| 306 | <img src="{@docRoot}sdk/images/4.0/contact-connect.png" alt="" height="240" width="144" |
| 307 | style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> |
| 308 | <a href="{@docRoot}sdk/images/4.0/contact-email-lg.png" target="_android"> |
| 309 | <img src="{@docRoot}sdk/images/4.0/contact-email.png" alt="" height="240" width="144" |
| 310 | style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> |
| 311 | |
| 312 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure |
| 313 | 3.</strong>-->Contacts and profiles are integrated across apps and social networks, for a |
| 314 | consistent, personal experience everywhere — from incoming calls to emails.</div> |
| 315 | </div> |
| 316 | </div> |
| 317 | |
| 318 | <p>Designed for the way people live, Android 4.0 integrates rich social |
| 319 | communication and sharing touchpoints across the system, making it easy to talk, |
| 320 | email, text, and share.</p> |
| 321 | |
| 322 | |
| 323 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>People and |
| 324 | profiles</strong></p> |
| 325 | |
| 326 | <p>Throughout the system, a user’s social groups, profiles, and contacts are |
| 327 | linked together and integrated for easy accessibility. At the center is a new |
| 328 | <strong>People app</strong> that offers richer profile information, including a |
| 329 | large profile picture, phone numbers, addresses and accounts, status updates, |
| 330 | events, stream items, and a new button for connecting on integrated social networks. </p> |
| 331 | |
| 332 | <p>The user's own contact information is stored in a new <strong>"Me" |
| 333 | profile</strong>, allowing easier sharing with apps and people. All of the |
| 334 | user's integrated contacts are displayed in an easy to manage list, including |
| 335 | controls over which contacts are shown from any integrated account or social |
| 336 | network. Wherever the user navigates across the system, tapping a profile photo |
| 337 | displays Quick Contacts, with large profile pictures, shortcuts to phone numbers, |
| 338 | text messaging, and more. </p> |
| 339 | |
| 340 | |
| 341 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Unified calendar, visual |
| 342 | voicemail</strong></p> |
| 343 | |
| 344 | <p>To help organize appointments and events, an updated <strong>Calendar |
| 345 | app</strong> brings together personal, work, school, and social agendas. With |
| 346 | user permission, other applications can contribute events to the calendar and |
| 347 | manage reminders, for an integrated view across multiple calendar providers. The |
| 348 | app is redesigned to let users manage events more easily. Calendars are |
| 349 | color-coded and users can <strong>swipe left or right</strong> to change dates |
| 350 | and pinch to zoom in or out agendas. </p> |
| 351 | |
| 352 | <p>In the phone app, a new <strong>visual voicemail</strong> features integrates |
| 353 | incoming messages, voice transcriptions, and audio files from one or more |
| 354 | providers. Third-party applications can integrate with the Phone app to add |
| 355 | their own voice messages, transcriptions, and more to the visual voicemail |
| 356 | inbox. </p> |
| 357 | |
| 358 | <div style="padding-top:0em;"> |
| 359 | <div style="margin-right:0em;float:left;width:282px;padding-top:1em;"> |
| 360 | <a href="{@docRoot}sdk/images/4.0/camera-lg.png" target="_android"> |
| 361 | <img src="{@docRoot}sdk/images/4.0/camera.png" alt="" width="240" height="144" style="border:1px |
| 362 | solid #ddd;border-radius: 6px;" /></a> |
| 363 | <a href="{@docRoot}sdk/images/4.0/gallery-edit-lg.png" target="_android"> |
| 364 | <img src="{@docRoot}sdk/images/4.0/gallery-edit.png" alt="" width="240" height="144" |
| 365 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 366 | <a href="{@docRoot}sdk/images/4.0/gallery-share-lg.png" target="_android"> |
| 367 | <img src="{@docRoot}sdk/images/4.0/gallery-share.png" alt="" width="240" height="144" |
| 368 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 369 | <div style="padding-bottom:1em;font-size:.9em;padding-right:2.75em;">Capture the picture you want, |
| 370 | edit, and share instantly. </div> |
| 371 | </div> |
| 372 | </div> |
| 373 | |
| 374 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Rich and versatile camera |
| 375 | capabilities</strong></p> |
| 376 | |
| 377 | <p>The Camera app includes many new features that let users capture special moments |
| 378 | with great photos and videos. After capturing images, they can edit and share |
| 379 | them easily with friends. </p> |
| 380 | |
| 381 | <p>When taking pictures, <strong>continuous focus</strong>, <strong>zero shutter |
| 382 | lag exposure</strong>, and decreased shot-to-shot speed help capture clear, |
| 383 | precise images. <strong>Stabilized image zoom</strong> lets users compose photos |
| 384 | and video in the way they want, including while video is recording. For new |
| 385 | flexibility and convenience while shooting video, users can now take |
| 386 | <strong>snapshots at full video resolution</strong> just by tapping the screen |
| 387 | as video continues to record.</p> |
| 388 | |
| 389 | <p>To make it easier to take great pictures of people, built-in <strong>face |
| 390 | detection</strong> locates faces in the frame and automatically sets focus. For |
| 391 | more control, users can <strong>tap to focus</strong> anywhere in the preview |
| 392 | image. </p> |
| 393 | |
| 394 | <p>For capturing larger scenes, the Camera introduces a <strong>single-motion |
| 395 | panorama</strong> mode. In this mode, the user starts an exposure and then |
| 396 | slowly turns the Camera to encompass as wide a perspective as needed. The Camera |
| 397 | assembles the full range of continuous imagery into a single panoramic |
| 398 | photo.</p> |
| 399 | |
| 400 | <p>After taking a picture or video, users can quickly share it by email, text |
| 401 | message, bluetooth, social networks, and more, just by tapping the thumbnail in |
| 402 | the camera controls. </p> |
| 403 | |
| 404 | |
| 405 | <div style="padding-top:0em;"> |
| 406 | <div |
| 407 | style="float:right;margin-left:20px;padding-top:1em;margin-bottom:1em;padding- |
| 408 | bottom : 0 ;width:160px"> |
| 409 | <img src="{@docRoot}sdk/images/4.0/gallery-widget.png" alt="" width="144" style="border:1px solid |
| 410 | #ddd;border-radius: 6px;" /> |
| 411 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A Photo Gallery widget |
| 412 | on the home screen.</div> |
| 413 | </div> |
| 414 | |
| 415 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Redesigned Gallery app |
| 416 | with photo editor</strong></p> |
| 417 | |
| 418 | <p>The Gallery app now makes it easier to manage, show, and share photos and |
| 419 | videos. For managing collections, a <strong>redesigned album layout</strong> |
| 420 | shows many more albums and offers larger thumbnails. There are many ways to sort |
| 421 | albums, including by time, location, people, and tags. To help pictures look |
| 422 | their best, the Gallery now includes a powerful <strong>photo editor</strong>. |
| 423 | Users can crop and rotate pictures, set levels, remove red eyes, add effects, |
| 424 | and much more. After retouching, users can select one or multiple pictures or |
| 425 | videos to share instantly over email, text messaging, bluetooth, social |
| 426 | networks, or other apps.</p> |
| 427 | |
| 428 | <p>An improved <strong>Picture Gallery widget</strong> lets users look at |
| 429 | pictures directly on their home screen. The widget can display pictures from a |
| 430 | selected album, shuffle pictures from all albums, or show a single image. After |
| 431 | adding the widget to the home screen, users can flick through the photo stacks |
| 432 | to locate the image they want, then tap to load it in Gallery. </p> |
| 433 | |
| 434 | <div style="padding-top:0em;clear:right;"> |
| 435 | <div |
| 436 | style="float:right;margin-left:20px;padding-top:1em;margin-bottom:1em;padding- |
| 437 | bottom : 0 ;width:320px"> |
| 438 | <img src="{@docRoot}sdk/images/4.0/live-effects.png" alt="" width="297" style="border:1px solid |
| 439 | #ddd;border-radius: 6px;" /> |
| 440 | <div style="padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Live Effects let you |
| 441 | change backgrounds and use Silly Faces during video.</div> |
| 442 | </div> |
| 443 | </div> |
| 444 | |
| 445 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Live Effects for transforming |
| 446 | video</strong></p> |
| 447 | |
| 448 | <p>Live Effects is a collection of graphical transformations that add interest |
| 449 | and fun to videos captured in the Camera app. For example, users can |
| 450 | <strong>change the background</strong> behind them to any stock or custom image, |
| 451 | for just the right setting when shooting videeo. Also available for video is |
| 452 | Silly Faces, a set of morphing effects that use state-of-the-art face |
| 453 | recognition and GPU filters to transform facial features. For example, you can |
| 454 | use effects such as small eyes, big mouth, big nose, face squeeze, and more. |
| 455 | Outside of the Camera app, Live Effects is available during video chat in the |
| 456 | Google Talk app.</p> |
| 457 | |
| 458 | <div style="padding-top:0em;"> |
| 459 | <div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;"> |
| 460 | <a href="{@docRoot}sdk/images/4.0/screenshot-lg.png" target="_android"> |
| 461 | <img src="{@docRoot}sdk/images/4.0/screenshot.png" alt="" height="240" width="144" |
| 462 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 463 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"> Snapping a |
| 464 | screenshot.</div> |
| 465 | </div> |
| 466 | </div> |
| 467 | </div> |
| 468 | |
| 469 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Sharing with screenshots</strong></p> |
| 470 | |
| 471 | <p>Users can now share what's on their screens more easily by taking |
| 472 | screenshots. Hardware buttons let them snap a <strong>screenshot</strong> and |
| 473 | store it locally. Afterward, they can view, edit, and share the screen shot in |
| 474 | Gallery or a similar app.</p> |
| 475 | |
| 476 | |
| 477 | <h3 id="cloud" style="color:#258AAF">Cloud-connected experience</h3> |
| 478 | |
| 479 | <div style="padding-top:0em;"> |
| 480 | <div |
| 481 | style="float:right;margin-left:20px;padding-top:1em;margin-bottom:0;padding-bottom: |
| 482 | 0 ; width:326px"> |
| 483 | <a href="{@docRoot}sdk/images/4.0/browser-tabs-lg.png" target="_android"> |
| 484 | <img src="{@docRoot}sdk/images/4.0/browser-tabs.png" alt="" height="240" width="144" |
| 485 | style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 486 | <a href="{@docRoot}sdk/images/4.0/browser-lg.png" target="_android"> |
| 487 | <img src="{@docRoot}sdk/images/4.0/browser.png" alt="" height="240" width="144" style="border:1px |
| 488 | solid #ddd;border-radius: 6px;" /></a> |
| 489 | <div style="padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure |
| 490 | 3.</strong>-->The Browser tabs menu <em>(left)</em> lets you quickly switch browser tabs. The |
| 491 | options menu <em>(right)</em> gives you new ways to manage your browsing experience.</div> |
| 492 | <img src="{@docRoot}sdk/images/4.0/bbench.png" alt="" width="310" /> |
| 493 | <div style="padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Benchmark comparisons of |
| 494 | Android Browser.</div> |
| 495 | </div> |
| 496 | </div> |
| 497 | |
| 498 | <p>Android has always been cloud-connected, letting users browse the web and |
| 499 | sync photos, apps, games, email, and contacts — wherever they are and |
| 500 | across all of their devices. Android 4.0 adds new browsing and email |
| 501 | capabilities to let users take even more with them and keep communication |
| 502 | organized.</p> |
| 503 | |
| 504 | |
| 505 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful web |
| 506 | browsing</strong></p> |
| 507 | |
| 508 | <p>The Android Browser offers an experience that’s as rich and convenient as a |
| 509 | desktop browser. It lets users instantly sync and manage <strong>Google Chrome |
| 510 | bookmarks</strong> from all of their accounts, jump to their favorite content |
| 511 | faster, and even save it for reading later in case there's no network |
| 512 | available.</p> |
| 513 | |
| 514 | <p>To get the most out of web content, users can now request full |
| 515 | <strong>desktop versions</strong> of web sites, rather than their mobile |
| 516 | versions. Users can set their preference for web sites separately for each |
| 517 | <strong>browser tab</strong>. For longer content, users can save a copy for |
| 518 | <strong>offline reading</strong>. To find and open saved pages, users can browse |
| 519 | a visual list that’s included with browser bookmarks and history. For better |
| 520 | readability and accessibility, users can increase the browser’s <strong>zoom |
| 521 | levels</strong> and override the system default <strong>text sizes</strong>.</p> |
| 522 | |
| 523 | <p>Across all types of content, the Android Browser offers dramatically improved |
| 524 | <strong>page rendering performance</strong> through updated versions of the |
| 525 | WebKit core and the V8 Crankshaft compilation engine for JavaScript. In |
| 526 | benchmarks run on a Nexus S device, the Android 4.0 browser showed an |
| 527 | improvement of nearly 220% over the Android 2.3 browser in the V8 Benchmark |
| 528 | Suite and more than 35% in the SunSpider 9.1 JavaScript Benchmark. When run on a |
| 529 | Galaxy Nexus device, the Android 4.0 browser showed improvement of nearly 550% |
| 530 | in the V8 benchmark and nearly 70% in the SunSpider benchmark.</p> |
| 531 | |
| 532 | |
| 533 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved |
| 534 | email</strong></p> |
| 535 | |
| 536 | <p>In Android 4.0, email is easier to send, read, and manage. For composing |
| 537 | email, <strong>improved auto-completion</strong> of recipients helps with |
| 538 | finding and adding frequent contacts more quickly. For easier input of frequent |
| 539 | text, users can now create <strong>quick responses</strong> and store them in |
| 540 | the app, then enter them from a convenient menu when composing. When replying to |
| 541 | a message, users can now toggle the message to Reply All and Forward without |
| 542 | changing screens.</p> |
| 543 | |
| 544 | <p>For easier browsing across accounts and labels, the app adds an |
| 545 | <strong>integrated menu</strong> of accounts and recent labels. To help users |
| 546 | locate and organize IMAP and Exchange email, the Email app now supports |
| 547 | <strong>nested mail subfolders</strong>, each with synchronization rules. Users |
| 548 | can also search across folders on the server, for faster results. </p> |
| 549 | |
| 550 | <p>For <strong>enterprises</strong>, the Email app supports EAS v14. It supports |
| 551 | EAS certificate authentication, provides ABQ strings for device type and mode, |
| 552 | and allows automatic sync to be disabled while roaming. Administrators can also |
| 553 | limit attachment size or disable attachments.</p> |
| 554 | |
| 555 | <p>For keeping track of incoming email more easily, a <strong>resizable Email |
| 556 | widget</strong> lets users flick through recent email right from the home |
| 557 | screen, then jump into the Email app to compose or reply.</p> |
| 558 | |
| 559 | |
| 560 | <div style="padding-top:0em;"> |
| 561 | <div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;"> |
| 562 | <a href="{@docRoot}sdk/images/4.0/beam-lg.png" target="_android"> |
| 563 | <img src="{@docRoot}sdk/images/4.0/beam.png" alt="" height="240" width="144" style="border:1px solid |
| 564 | #ddd;border-radius: 6px;" /></a> |
| 565 | <div |
| 566 | style="padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em;padding-right:1.5em;">Android |
| 567 | Beam lets users share what they are using with a single tap.</div> |
| 568 | </div> |
| 569 | </div> |
| 570 | |
| 571 | <h3 id="innovation" style="color:#258AAF">Innovation</h3> |
| 572 | |
| 573 | <p>Android is continously driving innovation forward, pushing the boundaries of |
| 574 | communication and sharing with new capabilities and interactions.</p> |
| 575 | |
| 576 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam for |
| 577 | NFC-based sharing</strong></p> |
| 578 | |
| 579 | <p>Android Beam is an innovative, convenient feature for sharing across two |
| 580 | NFC-enabled devices, It lets people instantly exchange favorite apps, contacts, |
| 581 | music, videos — almost anything. It’s incredibly simple and convenient to |
| 582 | use — there’s no menu to open, application to launch, or pairing needed. |
| 583 | Just touch one Android-powered phone to another, then tap to send.</p> |
| 584 | |
| 585 | <p>For sharing apps, Android Beam pushes a link to the app's details page in |
| 586 | Google Play. On the other device, the Google Play client app launches and loads the |
| 587 | details page, for easy downloading of the app. Individual apps can build on |
| 588 | Android Beam to add other types of interactions, such as passing game scores, |
| 589 | initiating a multiplayer game or chat, and more.</p> |
| 590 | |
| 591 | <div style="padding-top:0em;"> |
| 592 | <div |
| 593 | style="float:right;margin-left:20px;margin-top:.5em;margin-bottom:0;padding-bottom: |
| 594 | 0 ; width:160px"> |
| 595 | <a href="{@docRoot}sdk/images/4.0/face-unlock-lg.png" target="_android"> |
| 596 | <img src="{@docRoot}sdk/images/4.0/face-unlock.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> |
| 597 | <div style="padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Face recognition lets you |
| 598 | unlock your phone with your face.</div> |
| 599 | </div> |
| 600 | </div> |
| 601 | |
| 602 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Face Unlock</strong></p> |
| 603 | |
| 604 | <p>Android 4.0 introduces a completely new approach to securing a device, making |
| 605 | each person's device even more personal — Face Unlock is a new screen-lock |
| 606 | option that lets users unlock their devices with their faces. It takes advantage |
| 607 | of the device front-facing camera and state-of-the-art facial recognition |
| 608 | technology to register a face during setup and then to recognize it again when |
| 609 | unlocking the device. Users just hold their devices in front of their faces to |
| 610 | unlock, or use a backup PIN or pattern. </p> |
| 611 | |
| 612 | |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 613 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi P2P and Bluetooth HDP</strong></p> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 614 | |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 615 | <p>Support for <strong>Wi-Fi peer-to-peer (P2P)</strong> lets users connect directly to nearby peer |
| 616 | devices over Wi-Fi, for more reliable, higher-speed communication (in compliance with the Wi-Fi |
| 617 | Alliance's <a href="http://www.wi-fi.org/discover-and-learn/wi-fi-direct" |
| 618 | class="external-link">Wi-Fi Direct™</a> |
| 619 | certification program). No internet connection or tethering is needed. Through third-party apps, |
| 620 | users can connect to compatible devices to take advantage of new features such as instant sharing |
| 621 | of files, photos, or other media; streaming video or audio from another device; or connecting to |
| 622 | compatible printers or other devices.</p> |
| 623 | |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 624 | |
| 625 | <p>Android 4.0 also introduces built-in support for connecting to <strong>Bluetooth Health Device Profile (HDP)</strong> devices. With support from third-party apps, users can connect to wireless medical devices and sensors in hospitals, fitness centers, homes, and elsewhere.</p> |
| 626 | |
| 627 | |
| 628 | <h2 id="DeveloperApis" style="clear:right">New Developer Features</h2> |
| 629 | |
| 630 | <!-- <ul> |
| 631 | <li><a href="#ui-dev">Unified UI framework for phones, tablets, and more</a></li> |
| 632 | <li><a href="#communication-dev">Communication and sharing</a></li> |
| 633 | <li><a href="#media-dev">New media capabilities</a></li> |
| 634 | <li><a href="#connectivity-dev">New types of connectivity</a></li> |
| 635 | <li><a href="#uicomp-dev">New UI components and capabilities</a></li> |
| 636 | <li><a href="input-dev">New input types and text services</a></li> |
| 637 | <li><a href="#accessibility-dev">Enhanced accessibility APIs</a></li> |
| 638 | <li><a href="#data-dev">Efficient network usage</a></li> |
| 639 | <li><a href="#security-dev">Security for apps and content</a></li> |
| 640 | <li><a href="#enterprise-dev">Enhancements for Enterprise</a></li> |
| 641 | </ul>--> |
| 642 | |
| 643 | <h3 id="ui-dev">Unified UI framework for phones, tablets, and more</h3> |
| 644 | |
| 645 | <p>Android 4.0 brings a unified UI framework that lets developers create |
| 646 | elegant, innovative apps for phones, tablets, and more. It includes all of the |
| 647 | familiar Android 3.x interface elements and APIs — fragments, content |
| 648 | loaders, Action Bar, rich notifications, resizable home screen widgets, and more |
| 649 | — as well as new elements and APIs.</p> |
| 650 | |
| 651 | <p>For developers, the unified UI framework in Android 4.0 means new UI tools, |
| 652 | consistent design practices, simplified code and resources, and streamlined |
| 653 | development across the range of Android-powered devices.</p> |
| 654 | |
| 655 | <div class="sidebox-wrapper"> |
| 656 | <div class="sidebox"> |
| 657 | <h3>Key Honeycomb developer features, <br>now for phones too</h3> |
| 658 | |
| 659 | <p>Core UI</p> |
| 660 | <ul> |
| 661 | <li>Fragments and content loaders</li> |
| 662 | <li>Resizeable home screen widgets</li> |
| 663 | <li>Rich notifications</li> |
| 664 | <li>Multi-selection, drag-drop, clipboard</li> |
| 665 | <li>Improved screen-support API</li> |
| 666 | <li>Hardware-accelerated 2D graphics</li> |
| 667 | </ul> |
| 668 | |
| 669 | <p>Graphics and animation</p> |
| 670 | <ul> |
| 671 | <li>Property-based animation</li> |
| 672 | <li>Renderscript 3D graphics</li> |
| 673 | </ul> |
| 674 | |
| 675 | <p>Media and connectivity</p> |
| 676 | <ul> |
| 677 | <li>HTTP Live streaming</li> |
| 678 | <li>Bluetooth A2DP and HSP devices</li> |
| 679 | <li>Support for RTP</li> |
| 680 | <li>MTP/PTP file transfer</li> |
| 681 | <li>DRM framework</li> |
| 682 | <li>Input from keyboard, mouse, gamepad, joystick</li> |
| 683 | </ul> |
| 684 | |
| 685 | <p>Enterprise</p> |
| 686 | <ul> |
| 687 | <li>Full device encryption</li> |
| 688 | <li>DPM policies for encrypted storage and passwords</li> |
| 689 | </ul> |
| 690 | </div> |
| 691 | </div> |
| 692 | |
| 693 | <h3 id="communication-dev">Communication and sharing</h3> |
| 694 | |
| 695 | <p>Android 4.0 extends social and sharing features to any application on the |
| 696 | device. Applications can integrate contacts, profile data, stream items, |
| 697 | and calendar events from any of the user’s activities or social networks.</p> |
| 698 | |
| 699 | |
| 700 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Social API</strong></p> |
| 701 | |
| 702 | <p>A shared social provider and API provide a new unified store for contacts, |
| 703 | profile data, stream items, and photos. Any app or social network with user |
| 704 | permission can contribute raw contacts and make them accessible to other apps |
| 705 | and networks. Applications with user permission can also read profile data from |
| 706 | the provider and display it in their applications.</p> |
| 707 | |
| 708 | <p>The social API lets applications store standard contact data as well as new |
| 709 | types of content for any given contact, including large profile photos, stream |
| 710 | items, and recent activity feedback. Recent activity feedback is a standard way for |
| 711 | applications to “tag” a contact with common activity, such as when the user |
| 712 | calls the contact or sends an email or SMS message. The social provider uses the |
| 713 | recent activity feedback as a new signal in ranking, such as for name |
| 714 | auto-complete, to keep the most relevant contacts ranked closest to the top.</p> |
| 715 | |
| 716 | <p>Applications can also let users set up a social connection to a contact from |
| 717 | the People app. When the user touches Add Connection in a contact, the app |
| 718 | sends a public intent that other apps can handle, displaying any UI needed |
| 719 | to create the social connection.</p> |
| 720 | |
| 721 | <p>Building on the social API, developers can add powerful new interactions that |
| 722 | span multiple social networks and contacts sources.</p> |
| 723 | |
| 724 | |
| 725 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Calendar API</strong></p> |
| 726 | |
| 727 | <p>A shared calendar content provider and framework API make it easier for |
| 728 | developers to add calendar services to their apps.</p> |
| 729 | |
| 730 | <p>With user permission, any application can add events to the shared database |
| 731 | and manage dates, attendees, alerts, and reminders. Applications can also read |
| 732 | entries from the database, including events contributed by other applications, |
| 733 | and handle the display of event alerts and reminders. Using the calendar |
| 734 | provider, applications can take advantage of event data sourced from a variety |
| 735 | of apps and protocols, to offer innovative ways of viewing and managing a user’s |
| 736 | events. Apps can also use calendar data to improve the relevance of their |
| 737 | other content.</p> |
| 738 | |
| 739 | <p>For lighter-weight access to calendar services, the Calendar app defines a |
| 740 | set of public Intents for creating, viewing, and editing events. Rather than |
| 741 | needing to implement a calendar UI and integrate directly with the calendar |
| 742 | provider, applications can simply broadcast calendar Intents. When the Calendar |
| 743 | app receives the Intents, it launches the appropriate UI and stores any event |
| 744 | data entered. Using calendar Intents, for example, apps can let users add events |
| 745 | directly from lists, dialogs, or home screen widgets, such as for making |
| 746 | restaurant reservations or booking time with friends.</p> |
| 747 | |
| 748 | |
| 749 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Visual voicemail |
| 750 | API</strong></p> |
| 751 | |
| 752 | <p>A shared Voicemail provider and API allow developers to build applications |
| 753 | that contribute to a unified voicemail store. Voicemails are displayed and |
| 754 | played in the call log tab of the platform’s Phone app.</p> |
| 755 | |
| 756 | |
| 757 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam</strong></p> |
| 758 | |
| 759 | <p>Android Beam is an NFC-based feature that lets users instantly share |
| 760 | information about the apps they are using, just by touching two NFC-enabled |
| 761 | phones together. When the devices are in range — within a few centimeters |
| 762 | — the system sets up an NFC connection and displays a sharing UI. To share |
| 763 | whatever they are viewing with the other device, users just touch the screen. |
| 764 | </p> |
| 765 | |
| 766 | <p>For developers, Android Beam is a new way of triggering almost any type of |
| 767 | proximity-based interaction. For example, it can let users instantly exchange |
| 768 | contacts, set up multiplayer gaming, join a chat or video call, share a photo or |
| 769 | video, and more. The system provides the low-level NFC support and the sharing |
| 770 | UI, while the foreground app provides lightweight data to transfer to the other |
| 771 | device. Developers have complete control over the data that is shared and how it |
| 772 | is handled, so almost any interaction is possible. For larger payloads, |
| 773 | developers can even use Android Beam to initiate a connection and transfer the |
| 774 | data over Bluetooth, without the need for user-visible pairing.</p> |
| 775 | |
| 776 | <p>Even if developers do not add custom interactions based on Android Beam they |
| 777 | can still benefit from it being deeply integrated into Android. By default the |
| 778 | system shares the app’s Google Play URL, so it’s easy for the user to |
| 779 | download or purchase the app right away.</p> |
| 780 | |
| 781 | |
| 782 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Modular sharing |
| 783 | widget</strong></p> |
| 784 | |
| 785 | <p>The UI framework includes a new widget, ShareActionProvider, that lets |
| 786 | developers quickly embed standard share functionality and UI in the Action Bar |
| 787 | of their applications. Developers simply add ShareActionProvider to the menu and |
| 788 | set an intent that describes the desired sharing action. The system handles the |
| 789 | rest, building up the list of applications that can handle the share intent and |
| 790 | dispatching the intent when the user chooses from the menu.</p> |
| 791 | |
| 792 | |
| 793 | <h3 id="media-dev">New media capabilities</h3> |
| 794 | |
| 795 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Low-level streaming |
| 796 | multimedia</strong></p> |
| 797 | |
| 798 | <p>Android 4.0 provides a direct, efficient path for low-level streaming |
| 799 | multimedia. The new path is ideal for applications that need to maintain |
| 800 | complete control over media data before passing it to the platform for |
| 801 | presentation. For example, media applications can now retrieve data from any |
| 802 | source, apply proprietary encryption/decryption, and then send the data to the |
| 803 | platform for display.</p> |
| 804 | |
| 805 | <p>Applications can now send processed data to the platform as a multiplexed |
| 806 | stream of audio/video content in MPEG-2 transport stream format. The platform |
| 807 | de-muxes, decodes, and renders the content. The audio track is rendered to the |
| 808 | active audio device, while the video track is rendered to either a Surface or a |
| 809 | SurfaceTexture. When rendering to a SurfaceTexture, the application can apply |
| 810 | subsequent graphics effects to each frame using OpenGL.</p> |
| 811 | |
| 812 | <p>To support this low-level streaming, the platform introduces a new native API |
| 813 | based on <a href="http://www.khronos.org/openmax/al/" target="_top">Khronos |
| 814 | OpenMAX AL 1.0.1</a>. The API is implemented on the same underlying services as |
| 815 | the platform’s existing OpenSL ES API, so developers can make use of both APIs |
| 816 | together if needed. Tools support for low-level streaming multimedia will be |
| 817 | available in an upcoming release of the Android NDK.</p> |
| 818 | |
| 819 | |
| 820 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>New camera |
| 821 | capabilities</strong></p> |
| 822 | |
| 823 | <p>Developers can take advantage of a variety of new camera features in Android |
| 824 | 4.0. ZSL exposure, continuous focus, and image zoom let apps capture better |
| 825 | still and video images, including during video capture. Apps can even capture |
| 826 | full-resolution snapshots while shooting video. Apps can now set custom metering |
| 827 | regions in a camera preview, then manage white balance and exposure dynamically |
| 828 | for those regions. For easier focusing and image processing, a face-detection |
| 829 | service identifies and tracks faces in a preview and returns their screen |
| 830 | coordinates.</p> |
| 831 | |
| 832 | |
| 833 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Media effects for |
| 834 | transforming images and video</strong></p> |
| 835 | |
| 836 | <p>A set of high-performance transformation filters let developers apply rich |
| 837 | effects to any image passed as an OpenGL ES 2.0 texture. Developers can adjust |
| 838 | color levels and brightness, change backgrounds, sharpen, crop, rotate, add lens |
| 839 | distortion, and apply other effects. The transformations are processed by the |
| 840 | GPU, so they are fast enough for processing image frames loaded from disk, |
| 841 | camera, or video stream.</p> |
| 842 | |
| 843 | |
| 844 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Audio remote |
| 845 | controls</strong></p> |
| 846 | |
| 847 | <p>Android 4.0 adds a new audio remote control API that lets media applications |
| 848 | integrate with playback controls that are displayed in a remote view. Media |
| 849 | applications can integrate with a remote music playback control that’s built |
| 850 | into in the platform’s lock screen, allowing users to control song selection and |
| 851 | playback without having to unlock and navigate to the music app.</p> |
| 852 | |
| 853 | <p>Using the audio remote control API, any music or media app can register to |
| 854 | receive media button events from the remote control and then manage play state |
| 855 | accordingly. The application can also supply metadata to the remote control, |
| 856 | such as album art or image, play state, track number and description, duration, |
| 857 | genre, and more.</p> |
| 858 | |
| 859 | |
| 860 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>New media codecs and |
| 861 | containers</strong></p> |
| 862 | |
| 863 | <p>Android 4.0 adds support for additional media types and containers to give |
| 864 | developers access to the formats they need. For high-quality compressed images, |
| 865 | the media framework adds support for WebP content. For video, the framework now |
| 866 | supports streaming VP8 content. For streaming multimedia, the framework supports |
| 867 | HTTP Live streaming protocol version 3 and encoding of ADTS-contained AAC |
| 868 | content. Additionally, developers can now use Matroska containers for Vorbis and |
| 869 | VP8 content.</p> |
| 870 | |
| 871 | |
| 872 | <h3 id="connectivity-dev">New types of connectivity</h3> |
| 873 | |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 874 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi P2P</strong></p> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 875 | |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 876 | <p>Developers can use a framework API to discover and connect directly to nearby devices over a |
| 877 | high-performance, secure Wi-Fi peer-to-peer (P2P) connection. No internet connection or hotspot is |
| 878 | needed. Android's Wi-Fi P2P framework complies with the Wi-Fi Alliance's <a href= |
| 879 | "http://www.wi-fi.org/discover-and-learn/wi-fi-direct" class="external-link">Wi-Fi Direct™</a> |
| 880 | certification program.</p> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 881 | |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 882 | |
| 883 | <p>Wi-Fi peer-to-peer (P2P) opens new opportunities for developers to add innovative |
| 884 | features to their applications. Applications can use Wi-Fi P2P to share |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 885 | files, photos, or other media between devices or between a desktop computer and |
| Scott Main | 2d006d2 | 2013-09-16 13:11:07 -0700 | [diff] [blame] | 886 | an Android-powered device. Applications could also use Wi-Fi P2P to stream |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 887 | media content from a peer device such as a digital television or audio player, |
| 888 | connect a group of users for gaming, print files, and more.</p> |
| 889 | |
| 890 | |
| 891 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Bluetooth Health Device |
| 892 | Profile (HDP)</strong></p> |
| 893 | |
| 894 | <p>Developers can now build powerful medical applications that use Bluetooth to |
| 895 | communicate with wireless devices and sensors in hospitals, fitness centers, |
| 896 | homes, and elsewhere. Applications can collect and manage data from HDP source |
| 897 | devices and transmit it to backend medical applications such as records systems, |
| 898 | data analysis services, and others.</p> |
| 899 | |
| 900 | <p>Using a framework API, applications can use Bluetooth to discover nearby |
| 901 | devices, establish reliable or streaming data channels, and manage data |
| 902 | transmission. Applications can supply any IEEE 11073 Manager to retrieve and |
| 903 | interpret health data from Continua-certified devices such as heart-rate |
| 904 | monitors, blood meters, thermometers, and scales. </p> |
| 905 | |
| 906 | |
| 907 | <h3 id="uicomp-dev">New UI components and capabilities</h3> |
| 908 | |
| 909 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Layout |
| 910 | enhancements</strong></p> |
| 911 | |
| 912 | <p>A new layout, GridLayout, improves the performance of Android applications by |
| 913 | supporting flatter view hierarchies that are faster to layout and render. |
| 914 | Because hierarchies are flatter, developers can also manage alignments between |
| 915 | components that are visually related to each other even when they are not |
| 916 | logically related, for precise control over application UI. GridLayout is also |
| 917 | specifically designed to be configured by drag-and-drop design tools such as the |
| 918 | ADT Plug-in for Eclipse.</p> |
| 919 | |
| 920 | |
| 921 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>OpenGL ES texture |
| 922 | views</strong></p> |
| 923 | |
| 924 | <p>A new TextureView object lets developers directly integrate OpenGL ES |
| 925 | textures as rendering targets in a UI hierarchy. The object lets developers |
| 926 | display and manipulate OpenGL ES rendering just as they would a normal view |
| 927 | object in the hierarchy, including moving, transforming, and animating the view |
| 928 | as needed. The TextureView object makes it easy for developers to embed camera |
| 929 | preview, decoded video, OpenGL game scenes, and more. TextureView can be viewed |
| 930 | as a more powerful version of the existing SurfaceView object, since it offers |
| 931 | the same benefits of access to a GL rendering surface, with the added advantage |
| 932 | of having that surface participate fully in the normal view hierarchy.</p> |
| 933 | |
| 934 | |
| 935 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Hardware-accelerated 2D |
| 936 | drawing</strong></p> |
| 937 | |
| 938 | <p>All Android-powered devices running Android 4.0 are required to support |
| 939 | hardware-accelerated 2D drawing. Developers can take advantage of this to add |
| 940 | great UI effects while maintaining optimal performance on high-resolution |
| 941 | screens, even on phones. For example, developers can rely on accelerated |
| 942 | scaling, rotation, and other 2D operations, as well as accelerated UI components |
| 943 | such as TextureView and compositing modes such as filtering, blending, and |
| 944 | opacity.</p> |
| 945 | |
| 946 | |
| 947 | <h3 id="input-dev">New input types and text services</h3> |
| 948 | |
| 949 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Stylus input, button |
| 950 | support, hover events</strong></p> |
| 951 | |
| 952 | <p>Android 4.0 includes full support for stylus input events, including tilt and |
| 953 | distance axes, pressure, and related motion event properties. To help |
| 954 | applications distinguish motion events from different sources, the platform adds |
| 955 | distinct tool types for stylus, finger, mouse, and eraser. For improved input |
| 956 | from multi-button pointing devices, the platform now provides distinct primary, |
| 957 | secondary, and tertiary buttons, as well as back and forward buttons. |
| 958 | Hover-enter and hover-exit events are also added, for improved navigation and |
| 959 | accessibility. Developers can build on these new input features to add powerful |
| 960 | interactions to their apps, such as precise drawing and gesturing, handwriting |
| 961 | and shape recognition, improved mouse input, and others.</p> |
| 962 | |
| 963 | |
| 964 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Text services API for |
| 965 | integrating spelling checkers</strong></p> |
| 966 | |
| 967 | <p>Android 4.0 lets applications query available text services such as |
| 968 | dictionaries and spell checkers for word suggestions, corrections, and similar |
| 969 | data. The text services are external to the active IME, so developers can create |
| 970 | and distribute dictionaries and suggestion engines that plug into the platform. |
| 971 | When an application receives results from a text service — for example, |
| 972 | word suggestions — it can display them in a dedicated suggestion popup |
| 973 | window directly inside the text view, rather than relying on the IME to display |
| 974 | them. </p> |
| 975 | |
| 976 | |
| 977 | <h3 id="accessibility-dev">Enhanced accessibility APIs</h3> |
| 978 | |
| 979 | <p>Android 4.0 adds new accessibility features and an enhanced API to let |
| 980 | developers improve the user experience in their apps, especially on devices that |
| 981 | don’t have hardware buttons. For accessibility services such as screen readers |
| 982 | in particular, the platform offers new APIs to query window content, for easier |
| 983 | navigation, better feedback, and richer user interfaces.</p> |
| 984 | |
| 985 | |
| 986 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Accessibility |
| 987 | API</strong></p> |
| 988 | |
| 989 | <p>To let applications manage interactions more effectively when accessibility |
| 990 | features are enabled, the platform adds accessibility events for |
| 991 | explore-by-touch mode, scrolling, and text selection. For these and other |
| 992 | events, the platform can attach a new object called an accessibility record that |
| 993 | provides extra information about the event context.</p> |
| 994 | |
| 995 | <p>Using the accessibility record and related APIs, applications can now access |
| 996 | the view hierarchy associated with an event. Applications can query for key |
| 997 | properties such as parent and child nodes, available states, supported actions, |
| 998 | screen position, and more. Applications can also request changes to certain |
| 999 | properties to help manage focus and selected state. For example, an |
| 1000 | accessibility service could use these new capabilities to add convenient |
| 1001 | features such as screen-search by text. </p> |
| 1002 | |
| 1003 | |
| 1004 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Text-to-speech |
| 1005 | API</strong></p> |
| 1006 | |
| 1007 | <p>A new framework API lets developers write text-to-speech engines and make |
| 1008 | them available to any app requesting TTS capabilities.</p> |
| 1009 | |
| 1010 | |
| 1011 | <h3 id="data-dev">Efficient network usage</h3> |
| 1012 | |
| 1013 | <p>In Android 4.0, users can see how much network data their running apps are |
| 1014 | using. They can also set limits on data usage by network type and disable |
| 1015 | background data usage for specific applications. In this context, developers |
| 1016 | need to design their apps to run efficiently and follow best practices for |
| 1017 | checking the network connection. Android 4.0 provides network APIs to let |
| 1018 | applications meet those goals.</p> |
| 1019 | |
| 1020 | <p>As users move between networks or set limits on network data, the platform |
| 1021 | lets applications query for connection type and availability. Developers can use |
| 1022 | this information to dynamically manage network requests to ensure the best |
| 1023 | experience for users. Developers can also build custom network and data-usage |
| 1024 | options into their apps, then expose them to users directly from Settings by |
| 1025 | means of a new system Intent.</p> |
| 1026 | |
| 1027 | |
| 1028 | <h3 id="security-dev">Security for apps and content</h3> |
| 1029 | |
| 1030 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Secure management of |
| 1031 | credentials</strong></p> |
| 1032 | |
| 1033 | <p>Android 4.0 makes it easier for applications to manage authentication and |
| 1034 | secure sessions. A new keychain API and underlying encrypted storage let |
| 1035 | applications store and retrieve private keys and their corresponding certificate |
| 1036 | chains. Any application can use the keychain API to install and store user |
| 1037 | certificates and CAs securely.</p> |
| 1038 | |
| 1039 | |
| 1040 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Address Space Layout |
| 1041 | Randomization</strong></p> |
| 1042 | |
| 1043 | <p>Android 4.0 now provides address space layout randomization (ASLR) to help |
| 1044 | protect system and third party applications from exploitation due to |
| 1045 | memory-management issues.</p> |
| 1046 | |
| 1047 | |
| 1048 | <h3 id="enterprise-dev">Enhancements for Enterprise</h3> |
| 1049 | |
| 1050 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>VPN client |
| 1051 | API</strong></p> |
| 1052 | |
| 1053 | <p>Developers can now build or extend their own VPN solutions on the platform |
| 1054 | using a new VPN API and underlying secure credential storage. With user |
| 1055 | permission, applications can configure addresses and routing rules, process |
| 1056 | outgoing and incoming packets, and establish secure tunnels to a remote server. |
| 1057 | Enterprises can also take advantage of a standard VPN client built into the |
| 1058 | platform that provides access to L2TP and IPSec protocols.</p> |
| 1059 | |
| 1060 | |
| 1061 | <p style="margin-top:1em;margin-bottom:.75em;"><strong>Device policy management |
| 1062 | for camera</strong></p> |
| 1063 | |
| 1064 | <p>The platform adds a new policy control for administrators who manage devices |
| 1065 | using an installed Device Policy Manager. Administrators can now remotely |
| 1066 | disable the camera on a managed device for users working in sensitive |
| 1067 | environments.</p> |
| 1068 | |
| 1069 | |
| 1070 | |
| 1071 | |
| 1072 | |