Dec 17

Print this Post

Android: Introduction

On October 22, 2008 the first Android capable handset was released, the T-Mobile G1.

You may now ask yourself "What is Android?". Android is an open source  framework designed for handsets and developed by Google, similar to Apples iPhone. It includes an operating system, middleware and key applications.

Android consists of 4 layers:

  1. Linux Kernel
    This is the lowest layer and there are drivers for Display, Keypad, Camera, Audio, Flash Memory and Power Management. They are written in C++/Assembler and directly communicates with the handset hardware
  2. Libraries
    There are several Libraries written in C/C++ which are used by the android components. There are
    1. System C Library: a BSD-implementation of the standard C library (libc), optimized for mobile/embedded devices
    2. Media Library: it supports playback and recording of many popular audio and video formats as well as image files, including MPEG4, H.264, AAC, MP3, AMR, PNG and JPEG
    3. Surface Manager: manages access to the display subsystem and composites 2D and 3D graphics layers from multiple applications
    4. LibWebCore: a web browser engine which renders webpages for the android browser as well as for embedded webviews
    5. SGL: a 2D graphic engine
    6. 3D libraries: a 3D graphic engine based on OpenGL ES 1.0 API. It also supports 3D acceleration if available
    7. FreeType: a Font rendering engine
    8. SQLite: a lightweight relational database engine optimized for mobile devices

    On top of this sits the Dalvik Virtual Machine, a special designed VM for mobile phones. It interprets the compiled (Java) Code to native code which can be executed by the operating system/mobile phone. It utilize the libraries, which in turn communicate with the drivers.

  3. Application Framework
    The application framework contains all the API functions used by the core applications. It contains components which can be reused, replaced or extended.This includes a rich set of Views (can be compared to Forms/Controls in C#/MFC), Resource, Notification and Activity Manager
  4. Applications
    The highest layer. This is where all your application runs

What makes Android different to other mobile OS’ and SDKs?

First off, Android is completely open source and free, unlike Windows Mobile for example. This helps to keep the price of Android capable handsets quite low. Another point is, that Android SDK/Framework is shipped with a many built in features. For example, it has built in support for GoogleMaps. Android also allows you to access pretty much every function on your Android Phone, like direct access to the camera (where iPhone has some restrictions there).

Android is licensed under the Apache Software License (ASL v2). This means, the complete Android Core will be open source. The huge advantage of the ASL license is that it gives the carriers, OEMs and application developer the freedom to use whatever license they want or their application for their own software (also open/closed source). While the Android Core will be open source, some of it’s application won’t. Some of the Google applications will not be open source, like the Gmail application. But Gmail is not a part of the Android Core.

Maybe in near future we will see different distributions of the Android OS/Framework like we have in the Linux/Unix world.

Where to get Android SDK/Framework?

The Android SDK is available on Google’s source hosting "Google Code" and is free to download for everyone.

Permanent link to this article: http://tseng-blog.nge-web.net/blog/2008/12/17/android-introduction/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>