Dispelling the Mystery of Android
Despite the open nature of the Android framework, developing a complete mobile system solution with customized, differentiated features continues to be quite technically challenging. It requires considerable expertise, time, effort and resources -- a barrier and reach beyond the scope of many handset vendors. Though a system stack has only a few software layers, each layer comprises many different, individual components.
To long-time promoters of mobile Linux, Google's announcement of Android marked a critical market inflection point. At long last, mobile Linux is emerging from a niche to quickly gaining broad acceptable in the mobile world alongside Symbian and Microsoft's Windows Mobile.
While Android's entrance has generated a great deal of interests throughout the industry, there is also much misunderstanding about what Android is, and what it is not.
The goal of this article is to dispel some of the confusion, mystery and "magic" surrounding Android.
Not an Operating System
Let us be clear on this: Android is an open Linux application platform -- a good one at that -- which provides a framework for third-party developers to create applications based on a 'unified' application programming environment.
Let us also be clear on this: Android is NOT a mobile Linux operating system (even though it has often been mistakenly labeled as such). It does NOT include all components required to operate a functioning mobile device.
To put it simply, here is the process to produce an Android-based mobile device:
- Develop and/or source all the required software components; and
- Integrate, customize, test and certify the completed stack.
One Integrated Stack, Several Layers, Many Components
A mobile Linux operating system is a complete system stack integrated with all the software components needed to operate a mobile device.
It includes device drivers, Linux kernel, system utilities, mobile middleware (such as security, device management, provisioning, etc.), and an application framework (in this case Android) that supports applications for the end device such as browser, address book, mail, messaging, audio/video players, etc. (Figure 1)
Open Equals Easy, Right?
Despite the open nature of the Android framework, developing a complete mobile system solution with customized, differentiated features continues to be quite technically challenging. It requires considerable expertise, time, effort, and resources -- a barrier and reach beyond the scope of many handset vendors.
Though a system stack has only a few software layers, each layer comprises many different, individual components. (Figure 2)
Let us start with the lower layers of the stack, namely the device drivers and Linux kernel. Since each end device has a unique hardware design, drivers are required for each of the specific components used in the device. The Linux kernel then needs to be ported, customized if necessary, tested and tuned for the device.
Facilitated by a collection of system utilities, mobile middleware refers to the software components or enabling services that allow multiple processes to run on the device and to interact with other devices across a wireless network.
Finally, to complete a fully functioning mobile device software stack, a suite of applications, together with the Android itself on which these applications are based, must be integrated.
The Challenge of Flexibility
The virtues of Linux and an open application framework like Android are particularly appealing to mobile operators and handset vendors. Unlike Windows Mobile's "one size fits all" approach, mobile Linux offers a high degree of flexibility for specifying the exact features and functions -- no more and no less -- for a particular end device. As well, it allows customization of unique user experience and services for branding and differentiation.
However, the challenge of flexibility is that it requires deep understanding of the complex inner machinations of a complete mobile Linux software stack.
A high-level overview of the interactions and interdependencies among the software component layers (Figure 3) offers a glimpse of the challenges involved in the testing, debugging and tuning of a "customized" mobile Linux stack.
Don't Worry, Be Ready
Founded in 2005, a la Mobile's mission is to be the leader in mobile Linux operating systems. Our value proposition is to remove the complexity of developing and delivering mobile Linux solutions, from system components and applications to provide a complete "off the shelf" Linux system stack for handset vendors and mobile operators, to accelerate their device time-to-market, ensure high quality while reducing total development and device costs, while supporting a device from cradle to grave through enhancements and generational road maps.
At a la Mobile, we view Google's announcement of Android as an opportune playing-field leveling event.
Due to our years of being immersed in mobile Linux, and despite the lack of available information and support, our worldwide development teams were able to demo an Android prototype within 30 days, running a complete suite of applications, many of which we developed in-house and several others which were developed by Android and the open source community.
With our early prototyping of the Android framework, not only have we gained invaluable "head start" insights and experience concerning Android, we have become a strong believer of its potential success as a de facto application development platform standard -- a critical enabler toward mobile Linux ubiquity.
Pauline Lo Alker is president and CEO of a la Mobile, an open Linux system platform and open source technology provider to the mobile industry. a la Mobile, headquartered in San Ramon, Calif., has operations in the U.S., China and Taiwan.