Android: a quick overview

Google Android is an open and free mobile platform. Android has been developed by over 30 companies (the union of them is called Open Handset Alliance) belonging to different fields such as telecommunications, semiconductors, software companies etc. The objective of those companies is to develop open standards for mobile devices. Some of them are (The complete list can be found at http://www.openhandsetalliance.com/oha_members.html):

HTC

Google

Samsung

LG

Ebay

Intel

Nvidia

Android is a complete stack that includes operative system, middle-ware and applications. Some interesting features are:

Optimized graphics powered by a custom 2D graphics library 3D graphics based on the OpenGL ES 1.0 specification

Media support for common audio, video, and still image formats (MPEG4, H264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM Telephony

Bluetooth, EDGE, 3G, and WiFi

Camera, GPS, compass, and accelerometer

A bottom-up, shallow overview of the Architecture

Bottom layer. Linux 2.6 kernel. Why?

(a) The Linux kernel is used as an hardware abstraction layer. Want to bring up Android on a new device? First, bring Linux kernel on it.

(b) Linux has already a proven driver model, process management, networking, security model etc. Sometimes, drivers are already available.

(c) Linux is improved over time by a huge community. Android will benefit of this.

Middle layer: Libraries (C++) . At this level we have some libraries that constitute the core of Android. Libraries for Surface management based on SGL and OpenGLjES. Possibility to mix 2D and 3D within the same application. Then libraries for Media management, FreeType library for font management, SQLLite as a data storage, WebKit (a browser engine - the same engine that is at the basis of Safari). WebKit is modified in order to render well on small screens.

Middle layer: Runtime. At the basis of the runtime there is the “Dalvik virtual machine,” a special JVM that is developed for devices running with limited CPU power, battery and amount of memory. This virtual machine runs .Dex files that are the result (bytecode) of compiling .class files through a specific (for mobile devices) compilation process (e.g. data structures are designed to be shared among processes).

Middle layer: Java Core Libraries (On top of runtime). Here we find I/O libraries, collections, utilities and everything that is expected to be provided to the layer above.

Application layer framework (SDK). Here we find all the API provided by Google in order to build new applications. Some components of the Application layer framework are:

(a) The Window manager which is built on top of libraries for Surface management.

(b) The package manager (package installation, handling,etc).

(c) Content providers: the framework that allows to share contacts among different applications.

(d) Extensible Messaging and Presence Protocol (XMPP) service.

(e) An Activity Manager that manages the life cycle of applications and provides a common navigation backstack

3 Strenghts and weaknesses

Pros:

Potentially, a big market because it runs on different hardware devices (Devices running Google Android expected in the second half of 2008).

First big attempt to provide mobile phones with an innovative UI (alternative to the IPhone).

Low-tier handset manufacturers could make cheap touchscreen phones using Android.

Tight integration with Google products (huge customer base), tracking systems (GPS) and hardware in general.

Cons:

Android only reuses the Java language syntax but does not provide the full class libraries and APIs bundled with Java SE or ME.

Some parts of the SDK are still proprietary and closed source, and some believe it is a conscious decision to control the platform by Google.

Android is, by default, an open system: good for end-users, bad for mobile network providers?

Google Android vs OpenMoko (http://en.wikipedia.org/wiki/OpenMoko) . Which is the best open source solution?

1 Réponse vers “Android: a quick overview”


  1. 1 Jason Rakowski mai 21, 2008 à 10:05

    Good Layout and design. I like your blog. I just added your RSS feed to my Google News Reader. .

    Jason Rakowski

Ecrire un commentaire