It's here! Android 4.0, code named Ice Cream Sandwich, was announced Tuesday night by Google and Samsung at a press gathering in Hong Kong. The first phone to run Android 4 is the Samsung Galaxy Nexus, which will be available next month. But the good news is that the SDK is available right now at the Android Developer web site. Let's take a look at the top features in the new operating system.
As usual we'll break this up into user-oriented features and developer-oriented features. First, the top user features:
- New consistent look and feel. Designer Matias Duarte (former designer of WebOS) says "While people like and need Android, they didn't love Android". So he gave the user interface a top to bottom overhaul to make it "enchanting, easy, and powerful". New widgets, new gestures, context sensitive action bars, more discoverable commands - these are just the tip of the iceberg. Anybody who had complained about Android not having the level of polish or usability as other mobile OS's should give Android 4 fresh look.
- New system font. Android 4 sports a new type face called "Roboto" which was designed especially for high resolution screens like the one found on the Galaxy Nexus. By putting a new emphasis on typography, Duarte is taking a page from Steve Jobs who credited a college calligraphy class he audited for the great looking text on the Mac and iPhone. Roboto is part of a magazine-like revamp to many of the redesigned Android apps, which now have "big bold pictures with giant headlines".
- Screen shots. Hold down the power and volume down buttons to capture a screenshot of the currently running application. The picture will appear in your Gallery. I know this sounds like a minor thing, but it was sorely missed in stock Android.
- Home screen improvements. The Android home screen got a lot of love in Android 4. New features for phones include resizable widgets with stacks and scrolling for richer information at your fingertips. Other new features include the ability to create a folder by dragging one icon on top of another, and a customizable quick action bar at the bottom of the screen. You can press a button in any screen to see recent apps and swipe them to the side to close them. There's nothing really revolutionary here, and influences from TouchWiz and iOS and other systems are obvious, but the combination of all the features and little refinements will make Android much more approachable to new users.
- Instant voice. In Android 2.x, 3.x, and iOS 5, you press a button to start recording, say what you have to say, and when you stop talking the phone sends the entire recording to the cloud. Servers in the cloud chew on it for a little while and then send the text or commands back to your phone. Android 4 gets rid of most of those delays with a cool feature called Instant Voice. Now you press the button and start talking and the text starts appearing while you are still talking.
There are dozens of other great features in Android 4 but those are my favorites. Others include improved notifications, better soft keyboard, face recognition to unlock (although that didn't work so well during the demo), reading notifications from the lock screen, and more.
Next let's take a look at the features and new APIs for Android developers>
Android 4 is a huge, huge release for developers. According to the API difference reports, Android 4.0 has 1219 total changes from Android 3.2, or a whopping 3262 total changes since the last major phone release, Android 2.3.3. Here are some of the most important improvements:
- Unified API for Tablets and Phones. Android 3 was just for tablets, so most developers took a pass on it. Android 4 is for both phones and tablets. This means it will be running on 10's or 100's of millions of devices by this time next year, unlike Android 3 which can be found on under 5 million. The first phone with Ice Cream Sandwich is the Samsung Galaxy Nexus. Although it wasn't announced, I wouldn't be surprised if the first tablet to get Android 4 was the Samsung Galaxy Tab 10.1 or 8.9.
- Social API. Instead of picking the winners and building in support for one or two social media providers, Google decided not to take sides. They provide an open API so the providers can plug themselves in, and developers can share content with or invite members to those social platforms without having to know them by name.
- Android Beam. Based on an NFC (near field communication) technology called NDEF Push, two Android phones in close proximity (about 4cm) can securely exchange contacts, web pages, videos, or any other application defined information you can imagine.
- Accessibility. Finally, Android is getting some real Accessibility features. The big one is an explore-by-touch mode that lets users with vision loss explore the screen by touching and dragging a finger across the screen to hear voice descriptions of the content. Handshakes between your app and the Accessibility framework provide additional information for screen readers.
- VPN client API. One of my pet peeves with Android has been the inability to access my work VPN from my Android tablets and phones. Support for proprietary VPN protocols such as Cisco IPsec was missing from the open source Android builds, and you couldn't add them yourself unless you rooted the device and changed the kernel configuration. Well, now vendors like Cisco can make pluggable VPN providers that install just like regular apps without requiring root access or special agreements with the manufacturers.
I could list tons of other major features such as a Calendar API, Visual voicemail API, OpenMAX AL, camera features, new codecs for WebP and streaming VP8, peer to peer WiFi, GridLayout, texture views, hover events, pluggable spell checking, a KeyChain API, and more but I won't. Ok, I guess I just did.
And don't forget, Android 4 includes all the features that were first introduced for tablets in Android 3 such as Fragments, rich notifications, Renderscript, device encryption, 3D acceleration of the 2D pipeline, and so forth. But enough talk! Go get the SDK and see for yourself.
One last word of advice: If you're going to use the Android 4 emulator, I recommend you use a skin that has a small screen. The Android 4 emulator, like the Android 3 emulator before it, is pretty slow, and the bigger the emulated screen the slower it gets. So instead of picking the WXGA720 skin (1280x720), you might want to use the traditional WVGA800 one (480x800) most of the time. Also note that if you use a skin that doesn't have hardware buttons, press Home for the Home button, ESC for the Back button, and F2 or Page-Up for the Menu button. All right, that was 98 more words of advice, but who's counting.
For more information, including at least 98 more user and developer features, see:
- Android 4.0 highlights
- Android 4.0 SDK
- API differences report
- API change statistics
- Support package, r4 (previously called the Compatibility Library)
- Updated user interface docs and tools (G+ post by Roman Nurik)