Android beyond the handset
Google’s Android platform was originally developed for the mobile communications device market, but in recent months has also generated growing interest in other sectors. The most notable of these include embedded systems and consumer electronics. The article provides an overview of what is contained in Android and how its various options as well as its delivery of a standardized Linux build open up new opportunities for simplified product development.
There is a new wave of interest in the opportunities offered by open source software. It is coming especially from the consumer electronics market, which is seeing the first steps toward the use of ‘free’ software components on devices other than mobile handsets.
In this environment, a popular choice for the operating system is Linux, partly because it provides access to a vast range of middleware. But working with Linux is easier said than done. Device manufacturers will often struggle to build and customize Linux components to make them suitable for their devices, introducing costly delays that hit time-to-market and can mean that the end product misses its window of opportunity. Linux’s open source nature means that its ecosystem is very fragmented. Applications often prove to be device-specific and only nominally free for anyone to exploit.
In this context, only the bigger players with well-resourced in-house development teams can afford to port applications across multiple architectures and devices. So, a standardized platform that uses the Linux kernel as its foundation, but still offers a wide range of applications, features, and compatibility, will have obvious attractions.
Google’s Android platform may fit this description. It was originally designed for cellular handsets, but today is being driven as a standardized platform for use beyond mobile devices.
Android is a software platform, rather than just an operating system (OS). This helps give it the potential for deployment across a much wider range of devices than those for the mobile market.
At the same time, it is a technology surrounded by high expectations. A recent analyst’s report from comScore judged that Android-based devices enjoyed the largest growth in U.S. market share during the fourth quarter of 2009—from 2.5% to 5.2%. What makes it even more interesting is that according to research reports, Android will also have a significant footprint in all major vertical markets.
The platform is essentially a stack of software components (Figure 1). At the bottom is the Linux kernel. This provides the essential system functionality, such as process and memory management and security. The kernel handles all the tasks that Linux excels at such as networking, security and data processing while offering a vast array of device drivers.
Android system architecture
A set of libraries sits on top of Linux. It includes support for audio, video and graphics as well as a lightweight database (which is a useful repository for the storage and sharing of application data).
A key component of the Android platform is the runtime, the Dalvik Virtual Machine (DVM). It makes full use of Linux for memory management and multi-threading, which is intrinsic in the Java language. It is important to realize that Android is not a Java virtual machine, but does use the Java language.
The Application Framework then provides higher-level services to the applications in the form of Java classes. These services will vary from one implementation to another.
At the top of the Android software stack are applications. A key Android attribute is the sharing of functionality. Every application can export functionality for use by other applications in the system, thus promoting straightforward software reuse and making the user experience more consistent. Taking the example of an e-book, the system will download the content from the Internet, and then distribute it across appropriate applications running on the device.
Through this combination of layers, Android goes well beyond standard Linux setups toward the provision of everything you need in one integrated and highly flexible distribution.
When a company considers which architecture to use for its embedded products, a fundamental question must be asked in terms of Android as an option. Does it make sense to bring in a platform that was originally designed for mobile phones? In many situations the answer is, “Yes.”
Open source technologies have notable benefits. For example, consumer products such as digital TVs, set-top boxes (STBs) and Blu-ray Disc players have so far tended to be based on proprietary systems that allowed for the addition of only a few applications beyond their core functionality. With Android, far richer and more varied media experiences can be brought to these types of device.
In addition to addressing the proprietary software issue, there are other reasons why Android is a natural fit for so many embedded devices.
Linux made easy
There are lots of Linux distributions and different setups to address. In some cases, a device manufacturer will end up creating its own distribution, requiring a substantial engineering investment to get the software up and running, and then to maintain. In most cases, lots of integration work must be performed before the manufacturer can begin development of the most important part of system—the applications. Linux is a full time job and it can easily end up being a nightmare to support and continually develop.
Android solves this problem by providing a Linux-based platform where all the necessary pieces are fully pre-integrated. This is extremely important for semiconductor companies because many have ported Android to their devices and thus provide a standard base on which the ODM/OEM can build a product. The ODM/OEMs need to be sure that the device drivers work properly, and having an open source approach also means there is easy access to the Android software.
Commodity software quickly
As mentioned earlier, during the software build for an embedded device, Android and its compatible middleware provide high-level functionality that can be easily utilized by applications. Let’s consider an example based around OpenGL ES, the popular API for embedded graphics.
OpenGL ES allows applications to access the 3D graphics power of a processor in a silicon-independent way no matter what the processor is being used for, particularly as more and more semiconductor parts incorporate graphics acceleration. Such software components are provided within Android in one consistent distribution. Developers do not have to build or even integrate these software pieces by hand. Why should they reinvent the wheel? All they need already sits on top of a deployed architecture.
By acquiring an Android platform ready-ported for a specific target architecture (e.g., ARM, MIPS, PowerPC, etc.), ODM/OEMs can concentrate on the most important aspects of differentiation of their device: the applications and the user interface. In addition, the rich Android applications are also more portable than their embedded Linux equivalents because they are written in Java—they work with defined and conventional sets of APIs that are independent of the source code beneath. Such applications can easily be reused across multiple products.
Much to exploit, little to invest
Android makes it easy for software developers to build their own applications, customize existing applications, and even distribute these applications to other users via Google’s Android Market. This model has worked well for Apple’s App Store and there is good reason to forecast that the Android market will prove equally popular. Simply put, the availability of a wide range of applications for a large number of different platforms leads to broader industry adoption.
The established Android architecture has ready answers for questions related to the compatibility of third-party content and service providers. This means companies do not have to build everything themselves. The open source community constantly produces new content and better concepts for usability along with other new services around the established Android platform.
Android brings wireless connectivity to any device that it is running on. This may not appear to be of immediate significance, but as an increasing number of smart devices enter the home and we see cars offering more sophisticated navigation and infotainment options, developers will want to see such connectivity already built in. Think also of the possibilities in industrial controls, and even in more mission-critical industries, such as medical, where wireless connectivity is already a fast-growing requirement. The Android platform has out-of-the-box implications for all of these areas.
Wireless connectivity was one of the top priorities when the platform was developed and ratified by the Open Handset Alliance (OHA). By giving any device access to Internet content, Android allows for it to incorporate and exploit a rich mixture of capabilities for media applications quickly, efficiently and cost-effectively.
Smart screens and user interfaces
Today, a good user experience is essential to any device or software application. It is closely related for obvious reasons to the quality of a device’s GUI. Android provides a sophisticated GUI framework and user interfaces that product designers can customize with personalized wallpapers, widgets, boot animations and by other means. While the Android platform offers basic UI functionality, it can easily be extended with external tools and more advanced UI solutions to creating GUIs that include 3D effects and animations (Figure 2).
Intelligent GUI technology for an e-book
Source: Mentor Graphics
There is, however, a downside here. Because Android has proliferated so quickly, there is a risk that the GUIs will begin to look identical, regardless of the device. However, with sophisticated technology available from third-party vendors, rapid creation and customization is easily achievable, providing GUIs that should be elegant, effective and differentiated.
A solid, standardized development environment
Android provides a solid and consistent development platform that is easy to adopt. The SDK, SPIs, APIs, documentation and other forms of bedrock support foster confidence in the developer. In addition, OEM/ODMs (or content providers for that matter) can create ecosystems around their own Android-based applications.
Case study – e-book
The e-book is quickly gaining momentum in the consumer marketplace, and already some notable competitors in this space have committed to the Android platform. It is essentially an electronic version of a printed book that can be read on a device specifically designed for this purpose. Typical hardware requirements include a large display with easy-to-use touch screen capabilities, audio speakers, Internet connectivity and end-user controls (e.g., keyboard).
There is no question that Android can significantly ease problems during development of an e-book. It solves the complexity issues surrounding Linux by providing a platform in which all the necessary pieces have been fully pre-integrated. This can serve as a very real advantage as e-books are expected to become media-rich devices.
As applications begin to take on a more significant role in the e-book sector, the application marketplace will fuel the supply of the latest and greatest feature-rich functionality. The whole concept of an e-book is about enabling the user to download content to the device, and in the future, this may not only consist of applications or content, but services (e.g., an audio reader with specific language capabilities), or better concepts for usability such as advanced or intuitive zooming.
Because the purpose of an e-book is to improve the user’s reading experience, it must have a compelling and sophisticated user interface. For example, old fashion paper books are missing things that e-books can introduce very easily, such as 3D effects and associated video clips.
The benefits of Android in embedded systems are profound. By offering a rich platform for application development and easy portability across devices, Android eliminates the concerns that developers have had in the past about open source software. Android hides the complexity of Linux while adding tremendous functionality and long-expected Internet connectivity to any device. There will be a few design hiccups along the way, but the Android platform is here to stay—and ready to flourish on embedded systems beyond the mobile handset.
8005 SW Boeckman Rd
T: +1 800 547 3000