Monday, 1 June 2015

Introduction to Android

Android is the most popular Operating System for Mobile Phone and Tablets. It is an open source and Linux-based operating system . Android was developed by the Open Handset Alliance, which was led by Google. The term open Source mean the source available for modification and bound to open source license agreement more about open source.
Study more about Android Introduction Here!.

 It is important for every developer to know about the architecture of android even if he want to develop app at Application level.

Android Architecture:
   Android is a Linux based OS. Hence, deep inside, Android is  similar to Linux. To begin our journey toward Android development, let's have a look at the diagram.                                                  




The diagram shows the major components of the Android operating system. It is a software stack above the hardware that is provided by the OEMs.

Applications: There can be multiple application, on the top of android, These apps are like any user interface you use on Android,  for example,  sending an email, the email application has an edit text for typing email, and some buttons to send or save the email, etc. All these apps are not necessary to be developed by Google.
Anyone can develop an app and they are available to everyone through Play Store. They are developed using JAVA.

Applications Framework:  The framework offers a huge set of APIs used by developers for various standard purposes, so we do not require to code every  task. The framework has of several entities.
      i. Activity Manager: The Activity Manager controls all aspects of the application life cycle and activity stack.
      ii. Notification Manager: This manager enables the applications to create customized alerts (Notification).
      iii. Views: They are used to create User Interface.
      iv. Content Provider: Content Provider allow application to share data, any time an application may need data from another application, Content Provider enable developer to share data among application, like an app need to use contact (phone book), etc.
      v. Resource Managers: Resource manager provide access to non-code embedded resources such as strings, color settings, graphics, and user interface layouts.

Libraries:  Android includes a set of C/C++ libraries used by various components of the Android system. have a look at Some of the core libraries:
      i. Surface Manager: Manages the display and compositing windowing manager. - Media framework: Supports various audio and video formats and codecs including their playback and recording.
     ii. System C Libraries: Standard C library like libc (targeted for ARM).                   
    iii. OpenGL ES Libraries: These are the graphics libraries for rendering graphics(2D/3D).        
    iv. SQLite: A database engine for Android.

Run Time: The Android run-time consists of the Dalvik Virtual Machine. It is a virtual machine for embedded devices, which is a byte-code interpreter like any other virtual machine . By embedded devices, we means has low memory, comparatively slower and runs on battery power. Run Time also consists of the core Java libraries, available for all devices.

Linux kernel: At the bottom of the layers is Linux - Linux 3.6 with about 115 patches. It provides a level of abstraction between the device hardware and it contains all the essential hardware drivers e.g( camera, keypad, display etc). The kernel handles all the things that Linux is really good at, such as networking etc.

5 comments: