Android Hardware: Developing for the Nexus S
Developed jointly by Google and Samsung, the Nexus S was the flagship launch device for the Android 2.3 (Gingerbread) platform. Strangely, after several months, it's still the only shipping Gingerbread device. Other Android devices have received upgrades to Android 2.3, but newly shipping devices are generally still based on the older Android 2.2 (FroYo) release.
As a flagship device, and for months, the sole Gingerbread device, it has been received well by reviewers and developers alike. As such, developers who target the special features of this device are more likely to be noticed than with other devices.
The Android Software
The Nexus S software is the pure, unaltered Android experience. This makes the device an ideal target device for developers. Similarly, users get a consistent, familiar experience from the platform, without the bells, whistles, and optional features than sometimes enhance, but ofttimes clutter the Android user experience. Developers don't have to be worried about users doing things in a different way, being familiar with different standards, and being accustomed to different features. The application documentation doesn't have to deal with interface differences and quirks. The testing on such devices is also straightforward and about as close to the emulator experience as a device gets.
The Nexus S runs, as of this writing, Android 2.3.3, or Gingerbread, and is one of the few commercial devices to run this version of Android. We've previously talked about some of the benefits and drawbacks to using the latest SDK versions. These benefits and drawbacks apply very strongly to the Nexus S.
That being said, some Nexus S features are being promoted far more than others. For example, it's the first Android device to have software support for Near Field Communication (NFC) tags. It's also the first device to have Android SDK support for the front facing camera. Finally, the Android 2.3.3 SDK allows developers to directly take advantage of VoIP/SIP support from within their applications. Developers can take advantage of these compelling new features to raise application visibility amongst users.
The Nexus S Hardware
The Nexus S hardware is a mix of unique, fast, and familiar components. The most unique aspect of the Nexus S is it's NFC hardware. Although the platform has good SDK support for this hardware, the adoption level for finding NFC tags in the field is, for most practical purposes, non-existent. Sure, there are some trials. But that's about it.
So who should consider using the NFC support? If your application might benefit from NFC features, then by all means, use it. The user that gains a unique benefit from these features will likely become a loyal user -- as they have nowhere else to go, so far. Developers of vertical market applications that leverage NFC hardware would also benefit in a similar fashion. With all aspects of the product controlled, the use of NFC would be reliable and documented.
The Nexus S is the first Android device with a forward facing camera with built-in Android SDK support. Forward facing cameras are not new; nearly a year ago the old HTC Evo 4G contained a forward facing camera. But, at the time, the Android SDK didn't have support for it. As a result, few applications took advantage of it.
Outside of these two hardware pieces, the rest of the device is relatively normal. The Nexus S processor is speedy, as is its graphics subsystem, but it's just a single core device. Although it doesn't have an external SD card slot, the internal memory behaves as if it had a 16GB SD card in addition to a small amount internal storage. With a screen resolution of 800x480, your graphics department (or when wearing your "art designer hat") won't need to make any changes for this standard resolution (HDPI, normal screen size).
Emulating the Nexus S
Although the emulator is a poor substitute for testing on the actual device, it's a good start. When creating the AVD (Android Virtual Device), here are a few configuration settings to closely emulate the Nexus S:
- Android 2.3.3, API Level 10 with Google
- No direction pad
- No trackball
- Actual LCD density of 235dpi very close to the abstracted HDPI value of 240
- RAM size of 512MB
Figure 2 shows these AVD settings, and a few other miscellaneous settings. When launching the AVD, choose a screen size of 4" to simulate the physical screen size on your screen.
From a user point of view, the Nexus S is a fantastic device. It's fast and the UI is generally very smooth and responsive. The Nexus S contains exciting new software and hardware features that power users especially are clamoring to use. Applications written for this device should live up to these user expectations and provide the same, high quality experience. By targeting the Nexus S and its state-of-the-art hardware, you'll not only be able to create better applications, you'll be preparing for other devices that will eventually run this version of the platform, whether by firmware upgrades or new device hardware .
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.|