|
Our lives are being surrounded by a growing number of digital gadgets. Mobile
phones, set-top boxes, e-book readers, netbooks digital photo frames (DPF), and
a host of other devices are getting connected to Internet for content such as
photos, weather, maps, traffic, music, videos, news, etc. As many of these
devices are portable; low power consumption, small form factor, intuitive UI and
time-to-market become major differentiators. simplicity and
user-friendliness are the keywords for these gadgets.
The challenge for the device manufacturer is to provide increasingly more
featured, low power, robust user-friendly devices at low price point. Developing
interesting applications on top of proprietary systems across a range of
hardware platforms and architecture is an expensive proposition and requires
significant time for an increasingly small window of market opportunity.
Currently, due to the nature of fragmented platforms, applications are usually
device-specific and only large companies can afford to port applications across
multiple devices.
Moving Beyond
Android presents a compelling value proposition in bringing Internet
connectivity and a broad range of applications to consumer devices. It helps
device manufacturers to build innovative products faster. Since Android was
designed for low CPU usage and memory constrained mobile phones, it is well
suited for consumer devices.
The Android application framework and SDK now extend beyond the handset
assumptions for which it was initially developed.
Android provides an open source, unified software stack which is fully
customizable platform for product vendors/OEMs. The well defined application
framework and application lifecycle management on top of Linux allows developers
to write applications easily on various devices. Device manufacturers get a
license and royalty-free platform to create simple user-intuitive interfaces for
various consumer devices.
Google has made several critical enhancements for the Linux Kernel subsystems
and libraries for embedded usage. Some of the enhancements include:
Bionic: a compact and fast C run-time library with fast thread
implementation
Power management: Aggressive power management policy on top of Linux
power management. Application components can request to keep partial power on.
This is very important for power sensitive consumer devices
AshMem: Ashmem is an anonymous shared memory system that adds
interfaces so that processes can share named blocks of memory across various
processes. It provides a means for the kernel to reclaim these shared memory
blocks if they are not in use
Binder IPC: A shared memory based IPC system providing higher level
APIs that allows processes to provide services to other processes
Eclipse based graphical IDE for application development and tools for
debugging reduce development time. Consumer device vendors can now readily
leverage these features and up-to-date kernel and run-time libraries using well
defined application framework.
Android provides a flexible, powerful OpenCore based multimedia subsystem.
This allows developers to build applications supporting audio/video capture,
playback, streaming, special effects and multiple data formats faster. Pluggable
OpenMax based framework allows platform providers to easily integrate multimedia
codecs implemented in hardware and software. The Skia graphics engine in Android
is capable of rendering high quality visual effects even on constrained devices.
| Android on
Non-mobile Devices |
- Android has been used by companies in building various products. Some
of the examples are listed below:
- Android has been to ported to non-ARM architectures including MIPS and
Intel x86
- Android has been demonstrated to run on MIPS based reference set-top
boxes and VoIP phones
- Android based Archos 5 Internet tablet provides loads of multimedia
features
- Vendors have demonstrated Android powered netbooks
- E-Ink based e-book readers running on Android have been demonstrated
by some vendors
- MindTree has ported Android on Nokia N810, Sharp Zaurus and Beagle
board
|
Thus for consumer devices like cameras, music/video players, camcorders which
require rich multimedia features, Android platform can accelerate time-to-market
with its multimedia subsystem.
All these features make Android a well suited platform for embedded devices
like set-top boxes, tablets, e-book readers, digital media devices, digital
dashboards, MIDs. It creates a level playing ground where small consumer device
vendors with innovative applications and features can compete against the
largest OEMs.
By providing a single platform for various devices, Android provides an
opportunity for application developers to re-use application across devices thus
enabling wider market reach and cost reduction. However, effort would be needed
to integrate Android seamlessly to take advantage of various hardware specific
features for different type of consumer devices.
For long, original OEMs have been searching for a platform on which a product
can be developed quickly at lower costs (without the hassles of licensing
costs), and that which consumes low power and can be customized easily. Android
meets most of these requirements of the OEMs.
Android offers a full platform stack which consists of an operating system
(OS), middleware, application framework, rich set of APIs, and key applications.
Ease of application development, open source licensing, good tooling, broad
industry support backed by Google, well-designed application framework and
middleware have helped create a large developer base. These attributes have
contributed in wider acceptance of Android as a popular mobile platform with
players like HTC, Motorola, Samsung, LG, and Acer.
Overview and Architecture
- The Android platform consists of the following components:
- Linux Kernel
- Native Libraries + Android Runtime (Dalvik Virtual Machine + Core
Libraries)
- Application Framework
- Applications
Android uses an enhanced Linux 2.6.x for core OS services like memory
management, process management, network services, power management, driver
model, and hardware drivers. There is no native windowing support. Android
includes a rich set of C/C++ libraries including an compact and fast C run-time
library (Bionic), media framework based on PacketVideo OpenCore platform,
surface manager, LibWebCore, SGL (2D graphics engine), OpenGLes based 3D
graphics, FreeType and SQLite library. Android HAL is a user space C/C++ library
that defines the interface that hardware drivers need to implement.
Android provides a well defined application framework and services for user
application. Android provides core platform services like window manager,
activity manager, resource manager, view manager, etc.
It also provides hardware services to access to low level services like
telephony service, location service, sensor service, Wi-Fi service, USB and
Bluetooth service. Android applications are written in the Java language on top
of the application framework. The Java syntax provides the developers with a
simple familiar environment with great tooling and library support. Parts of the
applications can be developed using native-code languages such as C and C++. The
native code can be called using JNI. Google provides native development kit (NDK)
to provide tooling support to develop native libraries.
Android includes a set of core applications including a browser, email
client, contacts, SMS program, calendar, maps, and others, all written in Java.
Most of the Android code are released under the Apache free-software and open
source license. Some of the Android applications however are not open source.
Android also comes with a comprehensive set of development tools which include a
SDK QEMU based emulator, eclipse plug-ins, debugger, and libraries.
Amit Modak
The author is project lead at MindTree
maildqindia@cybermedia.co.in
Page(s) 1
|