On TechRepublic: 10 email scams to watch out for
BNET Business Network:
BNET
TechRepublic
ZDNet

January 28th, 2008

How Android works: The big picture

Posted by Ed Burnette @ 5:17 am

Categories: Android, General, Google, Java, Linux, Programming

Tags: Google Inc., Layer, Android, Programming Languages, Linux, Java, Open Source, Software Development, Software/Web Development, Operating Systems

[This article is part of a continuing series on Android, Google's new mobile phone platform. It is excerpted from an upcoming book. --Ed]

Some parts of Android will be familiar, such as the Linux Kernel, OpenGL, and the SQL database. Others may be completely foreign, such as Android’s idea of the application life cycle. You’ll need a good understanding of these key concepts in order to write well-behaved Android applications.

[ READ: More articles on Android ]

Let’s start off by taking a look at the overall system architecture–the key layers and components that make up the Android stack. The following diagram (courtesy of Google) shows the “20,000 foot” view of Android:

How Android works: The big picture

Starting at the bottom is the Linux Kernel. Android uses Linux for its device drivers, memory management, process management, and networking. However you will never be programming to this layer directly.

The next level up contains the Android native libraries. They are all written in C/C++ internally, but you’ll be calling them through Java interfaces. In this layer you can find the Surface Manager (for compositing windows), 2D and 3D graphics, Media codecs (MPEG-4, H.264, MP3, etc.), the SQL database (SQLite), and a native web browser engine (WebKit).

Next is the Android runtime, including the Dalvik Virtual Machine. Dalvik runs dex files, which are coverted at compile time from standard class and jar files. Dex files are more compact and efficient than class files, an important consideration for the limited memory and battery powered devices that Android targets.

The core Java libraries are also part of the Android runtime. They are written in Java, as is everything above this layer. Here, Android provides a substantial subset of the Java 5 Standard Edition packages, including Collections, I/O, and so forth.

The next level up is the Application Framework layer. Parts of this toolkit are provided by Google, and parts are extensions or services that you write. The most important component of the framework is the Activity Manager, which manages the life cycle of applications and a common “back-stack” for user navigation.

Finally, the top layer is the Applications layer. Most of your code will live here, along side built-in applications such as the Phone and Web Browser.

One of the unique and powerful qualities of Android is that all applications have a level playing field. What I mean is that the applications Google writes have to go through the same public API that you use. You can even tell Android to make your application replace the standard applications if you like.

In the next installment we’ll take take a closer look at the components in the Android Application Framework.

Related articles:

Did you find this article helpful? Have a suggestion? Leave a comment and let me know.

Ed BurnetteEd Burnette is a professional developer and author of several articles and books about computing including Hello, Android: Introducing Google's Mobile Development Platform, 2nd Edition. For disclosure of Ed's industry affiliations, click here or to view his full profile click here.

Email Ed Burnette

Subscribe to Dev Connection via Email alerts or RSS.

Related Discussions on TechRepublic

Did you know you can take part in these discussions with your ZDNet membership?

  • Talkback
  • Most Recent of 16 Talkback(s)
I listed a few here...
I listed a few here:
http://talkback.zdnet.com/5208-12353-... (Read the rest)
Posted by: Ed Burnette Posted on: 02/12/08 You are currently: a Guest | | Terms of Use
So what's new and special about it?  croberts | 01/28/08
I agree...  GeiselS@... | 01/28/08
Here are some things that are special  Ed BurnetteZDNet Moderator | 01/28/08
lifecycle  croberts | 01/29/08
It will be interesting to see...  D-T-Schmitz | 01/28/08
so why....  zydeco100@... | 01/29/08
Both  Ed BurnetteZDNet Moderator | 01/30/08
Interesting  whisperycat | 01/28/08
Amusing  croberts | 01/29/08
Can you say: Qt/Embedded?  D-T-Schmitz | 01/28/08
Can you say: Qtopia is a pain?  zydeco100@... | 01/29/08
If...  D-T-Schmitz | 01/29/08
wikipedia  vorname44@... | 02/02/08
To contact me directly click on Bio  Ed BurnetteZDNet Moderator | 02/05/08
RE: How Android works: The big picture  saigeethamn@... | 02/12/08
I listed a few here...  Ed BurnetteZDNet Moderator | 02/12/08

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

Archives

Favorite Links

ZDNet Blogs

White Papers, Webcasts, and Downloads

SmartPlanet

Click Here