Share your knowledge

Thursday 29 December 2016

Android Architecture

Knowing about Android Architecture is the first step to get into Android Applications development.

The following diagram shows major components of an Android platform.



Linux Kernel: The foundation of Android Platform is the Linux kernel which means others will relies on it to provide functionalities. It takes the responsibility to manage memory, resources, power with the help of different drivers( display, camera, blue tooth, wifi, audio, usb, keypad, display). Using Linux kernel allows device manufacturers to develop hardware drivers for a well-know kernel.

Libraries: On top of Linux kernel there is a set of libraries including Surface Manger, FreeType, well known library libc, SQLite database, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.

Android Runtime: It contains two sections - Core libraries and DVM

Core Libraries: This contains java libraries that are specific to Android development such as java.io.*, java.net.* etc which will be useful for small scale applications. To work with Graphics, 2d drawings and other large scale applications we use native libraries like OpenGLES, Media Framework etc.

Dalvik Virtual Machine(DVM): As a Java developer we know that JVM( Java Virtual Machine) will generate .exe (executable) file by taking .class file generated by compiler as an input. Similarly in android DVM(specially designed for android) will take all the .class files and convert them in to a single light weight file named .dex (dalvik executable).

Why can't we use JVM: .exe files generated by JVM are heavy weight and the machine needs more memory, ram and power to run these files. So, DVM was specially designed for android as Android mobiles doesn't have that much memory capacity, power capacity and RAM.

Application Framework: Application Framework is the heart for Android Application Developers as it provides several high-level services to applications in the form of special Java classes. Developers are allowed to make use of these services in their applications.

use-case: It will be a 5 lines of code to get a list of wifi connections available around us using Wifi Manger available in Application Framework . But if we dont' use Wifi-Manger it may take more than 100 lines of code.

System Applications: The System applications include contacts, messaging, camera etc. These will function both as applications for users and to developers to access from their own apps. For example, if your app would like to share some data, you don't need to build that functionality yourself-you can instead invoke the apps capable to share data.



Advantages of Android

1 comment:

  1. This information is impressive; I am inspired by your post writing style & how continuously you describe this topic.... Android Training in Bangalore

    ReplyDelete