Thursday, 6 September 2012

DAY 2 - Features and Architecture

Features :
    Storage - Uses SQLite, a lightweight relational database, for data storage.
    Connectivity - Supports GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth          
         (includes  A2DP and AVRCP), Wi-Fi, LTE, and WiMAX.
    Messaging - Supports both SMS and MMS.
    Web browser  -Based on the open source WebKit, together with Chrome’s V8 JavaScript   
         engine.
    Media support - Includes support for the following media: H.263, H.264 (in 3GP or MP4
        container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP     
        container), MP3, MIDI, Ogg Vorbis,WAV,JPEG,PNG,GIF, and BMP.
    Hardware support - Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor and   
         GPS.
    Multi-touch - Supports multi-touch screens.
    Multitasking - Supports multi-tasking applications.
    Flash support - Android 2.3 supports Flash 10.1.
    Tethering  - Supports sharing of Internet connections as a wired/wireless hotspot.

    (courtesy -Beginning Android 4 Application Development by Wei-Meng-Lee)

    Architecture:


     
        (courtesy - http://elinux.org/Android_Architecture)

    Linux Kernal - This is the base Kernal.The whole android is built out of Linux 2.6 Kernal with some architectural modifications by Google.As shown in the diagram the Linux contains all the drivers to run the hardware associated.  Linux layer also handles all Android core functionality which includes Memory management, process management, networking, security settings etc. 

     Libraries - These are the set of  reusable codes which has been written already to provide the  basic features of an Android OS.This makes android application development easier and less time consuming.Eg: SQLite which is the database engine used in android and WebKit which is the web browser.


     Android RunTime - It includes   the Core libraries that enable developers to write Android apps using Java Programming language. It also includes the Dalvik Virtual machine.

    Dalvik Machine is a flavour of JVM developed by Dan Bornstein of Google.Unlike JVM , Dalvik VM  runs .dex files which are processed out of .class files at the time of compilation. This has been specially designed  for Android and optimized  for battery- powered mobile devices with limited memory and CPU.Dalvik machine enables every Android application to run in its own process, with its own instance of the Dalvik VM.

     Application Framework - These are the blocks which interacts with our applications.These programs manages the basic functions of the phone. In short, this exposes the various capabilities of Android OS for the developers so that they can  make use of them  in their applications.

     Applications - That is  the top most layer of Android. An android application is written in Java programming language. An android SDK compiles the data and resource files into an Android package with suffix .apk thus forming an application. Users interacts with the applications. Some applications that comes with the android device are Phone, Contacts, Browser etc. Any application that you write or download from android market will come in this layer.

    Thats all about the architecture. Lets set up the environment tomorrow.


    No comments:

    Post a Comment