Introduction
Putting
Android on an embedded device is a complex task involving an intricate
understanding of its internals and a clever mix of modifications to the Android
Open Source Project (AOSP) and the kernel on which it runs, Linux. Before we
get into the details of embedding Android, however, let’s start by covering
some essential background that embedded developers should factor in when dealing
with Android, such as Android’s hardware requirements, as well as the legal
framework surrounding Android and its implications within an embedded setting.
First, let’s look at where Android comes from and how it was developed.
History
The
story goes that back in early 2002, Google’s Larry Page and Sergey Brin
attended a talk at Stanford about the development of the then-new Sidekick phone
by Danger Inc. The speaker was Andy Rubin, Danger’s CEO at the time, and the
Sidekick was one of the first multifunction, Internet-enabled devices. After
the talk, Larry went up to look at the device and was happy to see that Google
was the default search engine. Soon after, both Larry and Sergey became
Sidekick users.
Despite
its novelty and enthusiastic users, however, the Sidekick didn’t achieve
commercial success. By 2003, Rubin and Danger’s board agreed it was time for
him to leave. After trying out a few things, Rubin decided he wanted to get
back into the phone OS business. Using a domain name he owned, android.com, he
set out to create an open OS for phone manufacturers. After investing most of
his savings in the project and having received some additional seed money, he
set out to get the company funded. Soon after, in August 2005, Google acquired
Android Inc. with little fanfare.
Between
its acquisition and its announcement to the world in November 2007, Google
released little to no information about Android. Instead, the development team
worked furiously on the OS while deals and prototypes were being worked on
behind the scenes. The initial announcement was made by the Open Handset
Alliance (OHA), a group of companies unveiled for the occasion with its stated
mission being the development of open standards for mobile devices and Android
being its first product. A year later, in September 2008, the first open source
version of Android, 1.0, was made available.
Several
Android versions have been released since then, and the OS’s progression and
development is obviously more public. As we will see later, though, much of the
work on Android continues to be done behind closed doors. Table 1-1 provides a
summary of the various Android releases and the most notable features found in
the corresponding AOSP.
Embedded Systems
An
embedded system can be thought of as the brains of a larger mechanical or
electrical system. A combination of computer equipment will be used to create
an always-on logic center which is responsible for controlling the greater
device functionality. What that functionality is depends on the machine or
device. It could be responsible for anything from activating a drawbridge to
triggering your ice machine.
The
full set of electrical components (microprocessors, signal processors, RAM,
resistors,capacitors, COM ports, etc.) are controlled by an embedded software
operating system. These operating systems have traditionally been highly
specialized and unfamiliar to even the technical community (see ITRON). The
result is that embedded system technology has lagged the computer industry in
feature advancements. After all, a classic embedded device has a fixed
function. It’s not meant to be a platform for any purpose other than the one it
was originally designed for.
Embedded Android
More
recently however, a new breed of embedded technology is emerging using
customized versions of the Android operating system. At first blush, Android
may sound like an odd choice as an embedded OS, but in fact Android is already
an embedded OS, its roots stemming from Embedded Linux. Where Android becomes
appropriate as an embedded operating system outside of mobile devices is in
devices which require a user interface or multimedia capabilities. Android
offers several advantages over proprietary embedded operating systems, not the
least of which is global familiarity in developing for the platform. Other
advantages include a stable kernel, no royalties or licensing fees, and a vast
library of open source code and device drivers. All of these things combine to
make creating an embedded system more accessible to developers and
manufacturers.
Embedded
Android OS is not without its shortcomings however. Like all general purpose
embedded operating systems, the code base carries significant processing
overhead and a larger memory footprint when compared to proprietary embedded
OS’s. There is substantial functionality that is either irrelevant or not
suited toward embedded systems outside of mobile devices. The beauty of an open
source operating system like Android however, is that individuals and companies
alike are free to strip down, modify, and add to the source code to suit their
business needs.
Three
embedded Android devices that are worth your consideration
Embedded
Android devices are multifunctional and can be adapted to a wide variety of
potential applications. Here are three embedded Android devices currently on
the market.
Sanoxy MK808
The
MK808 is a very affordable option, and seems to be actually fairly generic: the
apparent creator, Sanoxy, lists the device at $99.99 (USD), though it can be
found through third parties on Amazon for under half that. As embedded Android
devices go, this appears to be the most ubiquitous. The connectivity options
are somewhat limited: it has one microSDHC slot, one USB 2.0 host, one USB-OTG
(Micro) port, and as one would expect, HDMI out. The specs are certainly
reasonable, with a Rockchip RK3066 Dual-Core ARM CPU at 1.6 GHz, paired with a
Mali-400 GPU, 1 GB RAM, and 8 GB NAND onboard.
The
lack of available ports can be somewhat limiting, but that can be corrected
with a USB hub. The current version of Android for the MK808 is 4.2.
Pivos XIOS DS
One
of the more expensive, yet more versatile options, is the Pivos XIOS, at a MSRP
of $109.99 (USD). Unlike other embedded
Android solutions, the XIOS offers a great deal more in terms of connectivity.
In addition to the standard microSDHC slot and HDMI out, it has 3 USB 2.0
ports, a 10/100 Ethernet port (in addition to 802.11 b/g/n Wi-Fi) and a
front-facing IR port for the included remote control. It has a slightly larger
footprint to accommodate those extra options. At 3.93" x 3.93" x
0.66", it's somewhat larger than the gum stick form factor common to other
embedded Android devices. Under the hood is an ARM Cortex-A9 CPU at 800 MHz,
with a Mali-400 GPU, 512 MB of DDR2 RAM, and 2 GB NAND.
Somewhat
secondary to being an embedded Android device, Pivos is marketing it primarily
as a video player, with a custom distribution of XBMC, which is optimized to
use hardware decoding, though they insist that XBMC support is presently in
beta. Additionally, the XIOS DS is still on Android 4.0 (Ice Cream Sandwich),
not Jelly Bean.
HardKernel ODROID-XU
The
ODROID-XU, at an MSRP of $169.00 (USD), is one of the more expensive devices of
its type, but it packs a great deal more power for the price. This device is
quite clearly somewhere between industrial and enthusiast level and is much
more open for those who want to get to the circuit board and do interesting
things with the hardware. The first indication of this is that the case on the
ODROID-XU is a polypropylene shell that snaps shut: no screws, no mess — just
pop it open.
The
ODROID-XU has a Samsung Exynos 5 CPU, which is one of the first commercially
available ARM "big.LITTLE" CPUs: It contains a quad-core ARM
Cortex-A15 at 1.6 GHz, and a quad-core Cortex-A7 1.2 GHz in one package.
Alongside that is a PowerVR SGX544MP3 GPU, 2GB LPDDR3 RAM, 10/100 Ethernet, 4
USB 2.0 host ports, 1 USB 3.0 host port, 1 USB OTG port, microHDMI output, and
for storage, microSDHC or eMMC 4.5. It also has 30 I/O pins for various uses.
Of note, 802.11 b/g/n Wi-Fi is available only as a USB module, though there's
clearly no real shortage of those.
The
ODROID-XU currently runs Android 4.2.2 and Ubuntu Server 13.04 with only
console output. Older ODROID devices have support for Ubuntu but in a way that
isn't quite hardware-optimized, and according to HardKernel, the major
impediment in Linux support now is the HDML/LCD driver for X.Org. Further
updates will occur in Q4 2013.
Quick comparison: Raspberry Pi
The
Raspberry Pi is a very neat device and great educational tool, but in fairness,
it isn't that great at running Android. The Pi has a single-core 700 MHz ARM
processor and 512 MB of RAM. It's quite capable of running minimal Linux
distributions, RISC OS, and even the open-source BeOS offshoot Haiku, but
Android may well be a bit too resource-intensive for it. The Raspberry Pi
definitely has cost working in its favor — at $25 or $35 (USD) depending on the
model. So, if you're not tied to Android, it's definitely worth a look.
Conclusion
Buy
according to your need. If you need to be pushing a lot of pixels or crunching
a bunch of numbers on a small board running Android, the ODROID-XU is the
product for you. If you want to watch Netflix on your TV or run a video
streaming app in a public place, the MK808 can accomplish that for you with
ease and within budget.
Sign up here with your email
ConversionConversion EmoticonEmoticon