Sunday, 9 December 2012

DVM(Dalvik Virtual Machine)

As we are familiar with the two major problems in mobiles,given as:-
i) Less Memory
i) Limited Battery Backup

Keeping these tow limitations in mind, we use Register Based Process Virtual Machine in Mobiles.
DVM is also an Register Based  Process Virtual Machine whereas JVM is an Stack Based Process Virtual Machine.

As in JVM, after compilation it gives BYTE Code which is platform-independant Intermidiate Code.

 Java File
(Compiled by java Compiler)
↓ 
Byte Code
(.class File)
↓ 
Dalvik Executable Code
(.dex File)

Just Like JVM, after compilation it generates DEX code i.e. Dalvik Executable Code which is also an platform independant Intermediate Code.

DVM Uses less memory for the execution of an instruction so that it is efficient in case of less memory as in mobiles.

Process Virtual Machine

Process Virtual Machine Continued.....

As you know, Process Virtual Machines are used to support an O.S. in the execution of an application.
e.g.
     JVM(Java Virtual Machine), CLR, DVM(Dalvik Virtual Machine), etc.
On the basis of its architecture, we have two types of Process Virtual Machine:-
  1.  Stack Based Process Virtual Machine
  2. Register Based Process Virtual Machine
 1) Stack Based VM :-  Stack based Process Virtual machines are faster and use Reduced Instruction Set (RISC Architecture).
e.g.
       JVM (Java Virtual Machine)
Main disvantage of this type of machines is that they require more memory.

2) Register Based VM :-  Register based process virtual machines are little bit slower than Stack Based Virtual Machine but take less memory to execute instruction.in comparison to Stack Based Virtual Machine.
e.g.
      DVM( Dalvik Virtual Machine)
 

Wednesday, 14 November 2012

Virtual Machine

VM ( Virtual Machine)

Dalvik Virtual Machine(DVM)Virtual Machine(VM):- 

VM is an  software implementation of a machine or computer which is used to execute our program like on a physical machine. VM is a set of instructions which will be followed to execute our program. On the basis of use, we have two types of Virtual Machine:-


  1. System Virtual Machine
  2. Process Virtual Machine
System VM are used to simulate complete working of an operating system or hardware.
e.g.
     Virtual PC, VMWare, etc.


Process VM are used to support an operating system in the execution of an application.

e.g.
      JVM, CLR(Common Language Runtime used in Dot Net), DVM, etc.

Process VM To Be Continued.........

Monday, 12 November 2012

Android Vs. J2ME

Android Vs. J2ME(Java 2 Micro Edition) 

 

In Conventional model  of mobile application or say J2ME, we have two major problems:-

  1. Third Party Apps were treated as second class citizen i.e. all the system resources were not available to them and in case of processor/memory request, they were killed first.
  2. To develop an app in a native technology native API's and hardware specification must be learned by the developer which were all available to them at large. To develop an application which has complete access to resources, the  application development require native libraries which are propriated.

Android vs. J2ME using FLOW Diagram 

Android vs. J2ME
Click on the pic to view the complete diagram

Thursday, 1 November 2012

Android Architecture

Architecture of Android


Application
Native App                   3rd Party App             Developer App


Application Framework
(Set of API's written in java to provide productive app developement)

↕                                                                     ↕

                            Native Library                                           Dalvik Virtual Machine 

↕                                                                    ↕

 Linux Kernel
Device Drivers          Power Mgt.          Memory Mgt.           Process Mgt.