Developing for Android

Updated: December 28, 2007

"There are 3 billion handsets in the world, and in many places, those handsets are the primary means of accessing the Internet," said Dan Morrill, developer advocate of Google Developer Programs. "As those handsets become increasingly sophisticated, we want users to have the same excellent experience they have on the Web."

For users, Android means that they can freely download applications, install them on the device of their choice and use them on the network of their choice. For developers, Android greatly lowers the barriers to entry because they won't have to jump through hoops to develop, market and sell applications to users.

Like similar efforts such as OpenMoko Inc., Sun Microsystems Inc.'s JavaFX and LiMo Foundation, Android is a complete software stack that includes an operating system, middleware, and the key applications needed to provide mobile-phone and Internet functionality. Apple Inc.'s iPhone has significantly raised the bar for what capabilities people expect from their mobile phones, and to succeed, Android will need to provide similar functionality, albeit in an a more open manner.

Apple says that it will release an SDK for the iPhone in February 2008, but the company is expected to retain tight control over the device's voice telephony functionality, though it will allow developers to build other kinds of applications for the device. Android developers can replace any function — including voice telephony — with one they've built themselves.

Although it is based on Linux, Android is also a separate (and Google says complementary) effort from the LiPS (Linux Phone Standards Forum) specification that was first announced in 2005 and was released in December 2007. While that effort includes APIs for telephony, messaging, calendar, instant-messaging presence and user-interface components, it is not intended as a complete phone stack, while Android is. Another difference stems from Android's reliance on a particular Linux implementation, while LiPS supports multiple, interoperable implementations.
What's in Android?

Key features found in Android include:

  • An application framework that enables reuse and replacement of components.
  • A Java development and run-time environment based on the Dalvik virtual machine (which Google says has been optimized for mobile devices). Somewhat unusually, every Android application runs in its own process, with its own Dalvik instance.
  • An integrated browser based on the open-source WebKit (the same engine that is used in Apple's Safari). The use of WebKit is significant because it allows users to browse the entire Internet, not just mobile-specific sites. Web designers won't have to change what they are doing to support mobile devices since the browser itself can (with a few exceptions) render any Web page in exactly the same way it would appear on the desktop, zooming and panning as necessary to accommodate a smaller screen.
  • A custom 2D graphics library and 3D graphics based on OpenGL.
  • SQLite for structured data storage.
  • Media support for common audio, video and still-image formats (including MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG and GIF).
  • GSM ( Global System for Mobile communications) but not CDMA (Code Division Multiple Access) telephony.
  • Support for camera, GPS, compass and accelerometer hardware.

The SDK provides the necessary APIs and programming tools for developing applications in Java to run on the platform, including a device emulator, debugging tools, memory and performance profiling, and a plug-in for the Eclipse IDE

Applications for Android are written in Java and run on Google's Dalvik virtual machine rather than on the more well-known Java framework. Google says that the choice to go in-house was necessary in order to achieve the performance characteristics and level of openness that the company was looking for. But Google has already been accused of fragmenting the Java standard.

Android will ship with a number of core applications including an email client, an SMS (Short Message Service) program, a calendar, maps, a browser and contacts.

These applications will sit on top of the application framework, which provides a set of system services and libraries for building and interoperating with Android applications. The framework exposes applications to a set of core C/C++ libraries for such things as media playback and recording, Web browsing, 2D and 3D graphics, bitmap and vector font rendering, and the SQLite relational database. You could forget that Android has anything to do with Google were it not for such features as a MapView API (which integrates Google Maps into Android) and support for location-based services (GPS). This first release of Android is missing native APIs for Bluetooth and wifi, but Google says that they are coming.

At the bottom of the stack is Linux version 2.6, which handles core system services such as security, memory management, network stack and driver model, while acting as an abstraction layer between the hardware and the rest of the software stack.
Nailing the Interface

Coming up with a good user interface for a mobile device is tough, as is evidenced by how long it took Microsoft to produce a usable version of Windows Mobile. Since every phone has a different design, screen, keypad (numeric versus QWERTY) and control layout (to name just a few things), it is almost impossible to define a general-purpose platform like you can with the PC. Partly because of that, the Android interface (which Morrill said is a work in progress) is not as radical of a departure from the kinds of interfaces seen on Nokia and Motorola Inc. devices as that of the iPhone, where Apple retains the luxury of designing both hardware and software. The actual UI elements provided are what would be expected — standard check boxes, radio buttons and pull-down menus — but Google has innovated in other areas.

"One of the key notions that informed the design of the interface is the recognition that programs come and go much more than they do on the desktop," said Morrill. "And since the screen is small, you can only see one app at a time."

Because of this, Android provides an "activity class" that manages the application life cycle, ensuring that applications can coexist without clashing. In addition, a Web-browser-like history aids navigation by allowing you to go back to what you were doing before, for example, an SMS message popped up on the screen.

Android's layout classes allow developers to arrange the user interface in such a way that it will behave properly — regardless of whether it is in portrait or landscape orientation.

In its first release, Android supports touch-screen phones but not the multitouch technology seen in the iPhone. Digging around in the SDK also only reveals support for 320x240-pixel resolution (standard on many smartphones), but Morrill said that other resolutions will be supported in the future.

Related Categories
Featured Research
  • On-Demand Webinar - Smarter@Sales Operations: Automation to Maximize the Buyer’s...

    This on-demand webinar looks at what best-in-class companies are doing in terms of sales enablement to ensure that the buyer’s journey through the sales operations process is efficient and more satisfying for the buyer, so that the seller can in turn close deals more often and more efficiently. Download the on-demand webinar to learn how you can help your sales operations function perform more effectively in 2013 and beyond. more

  • Texting. Smartphones. Tablets. Oh my! Business Communications in a Mobile World

    Today, people communicate for work anywhere, anytime, and on any device. Even with undeniable business behavior changes, the vast majority of companies haven’t optimized their communications infrastructure for mobile workforces or BYOD. Join this webinar on June 20, 2013 at 1:00 PM Pacific Daylight Time to get ahead of the pack and learn the benefits of a cloud communications solution that supports the new world of work. more

  • Mobile Workforce Management: 7 Key Benefits for Growing Companies

    This white paper from ClickSoftware will take a brief look at current trends and the real business benefits behind adopting a software solution for the automation and management of the mobile workforce. more

  • The New Mobile World: Changing the Way You’ll Service Your Customers

    On-Demand Webinar Join us for this no-cost web event where you’ll get an extensive look at how companies can take advantage of the mobile revolution to deliver improved and expanded service experiences for their customers, both inside and outside the contact center. more