Introduction and Architecture of Android

Hello friends, Today I will tell you what Android is. Many of my friends asked me what actually Android is, either it is an Operating System or a Programming Language.

In fact, Android is a Mobile Platform which consists of 3 things:

  • Operating System
  • Middle Ware
  • Key Applications.

Any electronic device consist of 2 things:

  • Hardware
  • Software

The Software Components can not directly communicate with the Hardware Components; they require a middle layer to interact with them. So Operating System is the abstraction between the hardware and software components. Here the operating system in Android Devices is Linux Kernel.

 

Android_Architecture

The are many responsibilities of an operating system. These are:

  1. Memory Management: The operating system manages the memory allocated to the application when it is installed in the device and deallocates the memory when it is uninstalled.
  2. Resource  Management: When a user runs multiple applications at one time, the operating system will provide resources to each and every application currently running on the device.
  3. Driver Management: If you take the example of PC’s, a user has installed a pen drive, the computer automatically detects the device and install the required software for running that device. The user need not to install separate software for that.
  4. Power Management: The operating system will provide power to each and every application.

The first Component in Android Architecture is the Android Applications. Many people have doubts that using which programming language we can develop Android applications. We can develop Android Applications using 3 Languages:

  1. Java
  2. C/C++
  3. .Net

If we are developing an application using Java, we have to take the support of Java Virtual Machine (JVM)., if we are developing applications using C/C++, we have to take the support of Native Development Kit (NDK) and for .Net we have to use a framework called Mono Android.

Initial versions of Android will support for developing applications in Java, C/C++ and .Net languages. But the latest versions of Android will support only Java programming language for developing Android applications.

If you are developing the Android applications in Java Language, you will need to import some Java libraries. For Eg. if you are writing any file reading and writing operations you will need to import the package or libraries called

java.io.*

 

By using Java language, we can not interact with any low-level media components. For Eg. Displaying Graphics is not possible with Java, even though if you write the code in Java programming language, it has some Native Methods. With the help of native methods, the Java code will interact with some other programming languages, that programming languages are called Native Libraries.

For Example: If you want to display some graphics in Android, you have to import a native library for displaying graphics called

OpenGLES

 

The Java code will interact with the OpenGLES code to display graphics.

Next component comes to the Application Framework. Now many people think that developing applications in Android is easier as compared to Java and .Net. To print a Hello World message in android, if we are to write a heck lot of code, that doesn’t make any sense.

But in fact, Android application development is easy because of Application Framework. There is a ready-made library for performing almost any task. For Eg. if you want to get your Current Location, then you need not write any huge amount of code, you have just to use the class called Location Manager. By using this class you want to call a method called

LocationManager.getposition();

 

And you will get the current position. So everything has a ready-made libraries, which is provided by Application Framework.

Now the next important thing comes the DVM, which means Dalvik Virtual Machine. Most people  know about Java Virtual Machine, which is used to execute the Java byte code. Now in Android, we write the code using Java, the JDK compiles our Java code and produces a file called .class file, known as Java Byte Code. In Android DVM takes Java byte code as input and will produce a light weight format called .dex .

The DVM converts java byte code in .dex file because java byte code is suitable for heavy weight applications like in our PC’s but in case of mobile devices, we don’t have enough power capacity, memory capacity, ram capacity, that’s why we need a light weight format than java byte code, that is why the DVM takes java byte code as input and it follows some compression techniques and reduces redundant information in the classe and produces a single file called .dex file. Like if your code has thousand classes, the DVM will make it as a single file called .dex file.

2 Comments

  1. Rahesh dhakad April 26, 2016