Android 4.0 (API Level 14), often referred to as Ice Cream Sandwich or simply ICS, is the highly anticipated upgrade to the Android platform that has recently become available for review by developers and will reach user's hands later this year on new Android devices, most notable the announced Samsung Galaxy Nexus phone.
Figure 1. Ice Cream Sandwich (Android 4.0)
In this article, we give a high-level overview of what's important in this new release and what it means for Android application developers.
New Features for Users of Ice Cream Sandwich Devices
Android's competitors and loyal, vocal followers of the other platforms have claimed that Android is a challenging platform for users, some going so far as to say you need to be a geek to use the platform well. While we feel this is a bit of an overstatement, there's nothing wrong with refining and improving the usability of the Android platform--in fact, we're all for it. The good news is that the Ice Cream Sandwich release aims to directly address this kind of criticism. It is a major platform update, packed with user-oriented features designed to make the platform even easier and more pleasant to use.
The Android development team did a thorough self-review of where Android stood. They found that users already liked and needed Android, but they didn't love it. The thrill, the addictive magic just wasn't there yet… Apple iPhone users are notoriously loyal, and the BlackBerry didn't get its nickname (Crackberry) for nothing. The team also found that while Android users know that Android is a powerful platform, they do sometimes find it frustrating to access that power. As a result, the team put together a list of goals for improving the platform. These guidelines dictate each and every design decision they make. Android application developers should take the new Android goals into consideration for their own apps as well:
- Android (apps) should enchant the user.
- Android (apps) should simplify the user's life.
- Android (apps) should make the user feel powerful, smart, and generally awesome.
In other words, users should be looking at every opportunity to boast about their phones to their friends by showing off Android's cool and intuitive features. Using an Android device should be a transformational, frustration-free experience. No problem, right? The long list of platform refinements that Ice Cream Sandwich packs, both large and small, will help reach these goals, and should come as good news for the Android app developer. Slicker devices sell better and slicker features like deeply integrated social networking and awesome camera updates make these devices even more indispensible to users. Happy users buy more apps. On the flip side, Android developers must roll with a new set of platform modifications that may affect how their applications look and behave. The bar has just gotten higher yet again.
New SDK Features of Ice Cream Sandwich
There was a lot of hype and speculation leading up to the Ice Cream Sandwich release. We think most Android application developers will be pleased with what's been delivered, both from an SDK perspective and from a tools perspective.
As expected, Ice Cream Sandwich combines the smartphone features of Gingerbread with the smart-device (tablets, etc.) features of Honeycomb. There is now a single platform version that supports all manner of devices. This is perhaps the best news for app developers, especially in terms of application configuration management.
The exciting and sleek features that were only available to Honeycomb devices have now been revised such that they are smartphone compatible, so features like the action bar will behave in a reasonable fashion, no matter the device type. There are also a number of additional and updated APIs in the Android SDK, including:
- Improved social networking features in the Contacts content provider (android.provider.ContactsContract).
- A new Voicemail API and content provider (android.provider.VoicemailContract), which enables developers to work with playable voicemail messages as well as other call information. See or details.
- A new Calendar content provider (android.provider.CalendarContract) for adding and updating events in the user's personal calendar.
- Updated near-field communication (NFC, android.nfc) APIs, now called Android Beam technology. Hopefully, this means we'll see more NFC-capable Android devices on the market.
- Many new camera features and upgrades (android.hardware.Camera), including face detection (Camera.Face, not identification, like on the lock screen) and the ability to apply visual effects to photos and video (e.g. red-eye reduction) is now part of the SDK in the android.media.effect package.
- Two new sensor types (android.hardware.Sensor) are now supported: ambient temperature and relative humidity.
- Users can now monitor and control network usage on an application by application basis. Developers can enable controls to allow users to fine-tune how the application uses data.
- There is a new layout called GridLayout which is like an enhanced TableLayout with better performance and more flexible child control placement.
- There are also several new View controls including a Switch button and a Space view for making distinct space between other View controls.
- 2D hardware acceleration is a requirement for Android devices running ICS. Note: This will likely be a good indicator as to which legacy Android devices are capable of updating their firmware to Ice Cream Sandwich from earlier platform versions.
- The more device diversity that the platform supports, the more likely we need to support various new types of input methods. ICS delivers enhanced input method support appropriate for devices like tablets and televisions, including stylus and mouse events like hover.
- A new text service API (android.service.textservice) for spelling and autocorrect support.
- Updated accessibility (android.accessibilityservice) and text-to-speech (android.speech.tts) APIs.
- New enterprise features, including device policies for camera usage and a new VPN client API (android.net.VpnService).
For more information on the Ice Cream Sandwich release, see the Android Developer website.