Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Getting Started With Android Development for Embedded Systems

Getting Started With Android Development for Embedded Systems



|Views: 292 |Likes:
Published by nqdinh
OS, Android, embedded system, know how
OS, Android, embedded system, know how

More info:

Published by: nqdinh on Dec 02, 2009
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





Embedded Systems White Paper 
September 2009ABSTRACT
Android is an open source platform built by Google that includes an operating system, middleware,and applications for the development of devices employing wireless communications. This paper takesa look at the design of Android, how it works, and how it may be deployed to accelerate the developmentof a connected device.Along with basic guidelines to getting started with Android, the Android SDK, its available tools andresources are reviewed and some consideration is given to applications for Android beyondconventional mobile handsets such as medical devices, consumer electronics and military/aerospace systems.
Colin WallsEmbedded Software TechnologistEmbedded Systems Divisioncolin_walls@mentor.comMentor Graphics Corporation8005 SW Boeckman RoadWilsonville, OR 97070 USA
www.mentor.com/embeddedWHAT IS ANDROID?
It is easy to think of Android as being yet another operating system for high-end mobile phones. It is reallya software platform, rather than just an OS, that has the potential to be utilized in a much wider rangeof devices. In practical terms, Android is an application framework on top of Linux, which facilitatesits rapid deployment in many domains.A key to its likely success is licensing. Android is open source and a majority of the source is licensedunder Apache2, allowing adopters to add additional proprietary value in the Android source without sourcedistribution requirements.Another way to appreciate the significance of Android is to take a historical perspective. In the early daysof PCs, the operating system was DOS. This presented some interesting challenges to application developers,as DOS provided a minimal number of services. The result was that every application needed a completeframework to provide the full functionality that was required. For example, a word processing programwould need to have a driver for every imaginable printer. This was a major headache for developers and aserious ongoing maintenance problem. The solution came in the early 1990s with the release of Windows.Or, rather, the development of Windows 3.0. Although we think of Windows as being primarily a GUI, itreally is much more than that. Nowadays, a word processor just talks to a logical printer. The manufacturer of the printer hardware simply needs to provide a Windows driver and everything works together properly.In some respects, a similar situation exists today when developers want to deploy Linux for embeddedapplications. Android is the enabler for a broad application developer base, a complete stack on top of theLinux kernel.
Although Android is quite new technology, it does have a history. It really began in 2005 when Google acquiredAndroid Inc., which started rumors that Google had interests in mobile telephony. The Android product wasannounced, along with the formation of the Open Handset Alliance in 2007. The following year saw the firstAndroid phone launched and the declaration of Android code as being open source.Even though Android was created for handsets, many developers began to see a great opportunity to developother kinds of innovative devices on the Android platform. Significant optimizations and additions would be required, however, to optimize Android for other connected devices.Late in 2008, a company called Embedded Alley Solutions of San Jose, California, took on the challengeof moving Android beyond phones.In July 2009, Mentor Graphics Corporation acquired Embedded Alley. Another significant step along theAndroid history timeline.
www.mentor.com/embeddedANDROID ARCHITECTURE
An Android system is a stack of software components. At the bottom of the stack is Linux – Linux 2.6 withapproximately 115 patches. This provides basic system functionality like process and memory management andsecurity. Also, the kernel handles all the things that Linux is really good at such as networking and a vast arrayof device drivers, which take the pain out of interfacing to peripheral hardware.On top of Linux is a set of libraries including
(the Google
), media support for audioand video, graphics and a lightweight database, which is a useful repository for storage andsharing of application data.A key component of an Android system is the runtime – the Dalvik VM. This is not strictly a Java virtualmachine. It was designed specifically for Android and is optimized in two key ways. It is designed to be instantiated multiple times – each application has its own private copy running in a Linux process. It isalso designed to be very memory efficient, being register based (instead of being stack based like mostJava VMs) and using its own bytecode implementation. The Dalvik VM makes full use of Linux for memory management and multi-threading, which is intrinsic in the Java language.It is important to appreciate that Android is not a Java virtual machine, but does use the Java language.The Application Framework provides many higher-level services to applications in the form of Java classes.This will vary in its facilities from one implementation to another.
 Figure 1: High-level look at the Android system architecture.

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
usunom liked this
Obaid Ul Ahad liked this
Aaz Tua Render liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->