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.
Getting Started with Android 4.0 Now
You can get started right away! The Ice Cream Sandwich SDK and updated development tools are now available for download at the Android Developer website. However, the flagship ICS device, the Samsung Galaxy Nexus, is not slated to hit the shelves until November, according to this joint announcement made by Google and Samsung in Hong Kong. Until then, developers will need to use the Android emulator with appropriately configured AVDs that target Android 4.0 (API Level 14) to test their applications.
Preparing for New Android 4.0 Devices
The launch device for Ice Cream Sandwich, the Samsung Galaxy Nexus, has a 1280×720 screen. This resolution is close to the standard Honeycomb, Android 3.x, tablet resolution of 1280×800. However, instead of being a medium density (mdpi) display, it’s an extra-high density (xhdpi) display. Either way, though, your graphic art and design departments will likely have some work to do in creating appropriately-sized graphics and layouts for this 4.65 inch display. Optimizing graphics, layouts, and views is as important as ever — the device is now pushing nearly twice as many pixels as previous qHD (quarter full HD, or 960×540) displays — now 921k pixels, as opposed to 518k pixels.
Aside from the relatively major screen resolution change for a phone, the rest of the hardware is pretty standard affair, but if your application references hardware buttons, you might consider some text changes when targeting ICS (and even Honeycomb). For more information about the Galaxy Nexus, see the launch site and Samsung’s information in the announcement video linked above.
The Ice Cream Sandwich SDK and updated development tools are available now for developers to review and evaluate, but devices will not be available for a few more weeks. Android application developers should consider using this time to take the Ice Cream Sandwich design goals into consideration and to update their existing applications to the new SDK target. Over the coming weeks and months, we’ll also share more details on the specific new opportunities that ICS offers in terms of application opportunities.
What new ICS features are you most looking forward to incorporating into your Android applications? Let us know!
About the Authors
|Shane Conder and Lauren Darcey—Contributing Editors, Mobile Development–have coauthored two books on Android development: an in-depth programming book entitled Android Wireless Application Development (ISBN-13: 978-0-321-62709-4) and Sams Teach Yourself Android Application Development in 24 Hours (ISBN-13: 978-0-321-67335-0). When not writing, they spend their time developing mobile software at their company and providing consulting services.|