Objective of Day
1) Architecture of Android
Applications
Application Framework
DVM(Core Libraries) - C/C++ Libraries
Linux Kernel
Device Drivers
Hardware
2) Comparing the C, Java, Android
C application --> OS
Java application --> JVM --> OS(any)
Android application --> Application Framework --> DVM --> OS(Linux)
3) History of Android - 2003 - Andy Rubin
Google purchased Android - 2005
OHA(Open Handset Alliance) - group of Companies - 2007
4) Android - a Gift to Mobile World
1) Hardware Manufacturers
2) Application Developers
3) Mobile Users
5) Versions of Android
Day 2 Notes :
Architecture of Android :
Explaination of each Layer from top to bottom
1) Applications :
This is the top most layer of Android Stack. The application which you developed and installed sits in this layer along with the existing predefined applications like calculator, dialer, Sms application etc.
Your application is written using Java programming language syntax which is finally translated to .dex(dalvik executable) format. All the dex code with data and manifest file are packed into .apk(application package) file. Hence a .apk file is nothing but an application in Android. Our application then interacts with its neighbouring layer i.e Application Framework layer.
2) Application Framework :
This layer provides services at runtime to your application. This layer contains a set of Managers which are service providers to your application. The following are the Managers that exist in this layer.
1) Activity Manager
2) Window Manager
3) View System
4) Resource Manager
5) Package Manager
6) Location Manager
7) Notification Manager etc.
For example : Your application can be displayed on the Screen by getting Service from Window Manager. Similarly your application resources are managed by Resource Manager. your Activity's Lifecycle is managed by Activity Manager etc.
NOTE : your application can access these Managers directly in your code by using getSystemService() method as follows :
Ex : WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
3a) DVM :
DVM stands for Dalvik Virtual Machine. DVM runs the application code which is in dex format and finally translates it into Linux format. DVM provides the Runtime environment for your application along with Java APIs.
3b) Java APIs :
These APIs are essential for the interpretation of our Application by DVM. Here we have Core Java libraries and also Android libraries that are required for proper functioning of DVM.
NOTE : DVM and Java APIs together is called Runtime.
3c) C/C++ libraries :
These Libraries are used by DVM to talk with LINUX kernel as LINUX is designed in C/C++ so we use C/C++ libraries as LINUX can understand only C/C++ code. These libraries are invoked by the Application Framework Managers at runtime implicitly.
4) LINUX Kernel :
This is the bottom most layer which does Process management, Memory management, File management etc. Kernel interacts with the Drivers by taking the calls from DVM which inturn communicates with the appropriate Hardware device. Hence Android relies on the modified version of LINUX 2.6 for all OS services.
2) Comparing the C, Java, Android
1) Architecture of Android
Applications
Application Framework
DVM(Core Libraries) - C/C++ Libraries
Linux Kernel
Device Drivers
Hardware
C application --> OS
Java application --> JVM --> OS(any)
Android application --> Application Framework --> DVM --> OS(Linux)
Google purchased Android - 2005
OHA(Open Handset Alliance) - group of Companies - 2007
1) Hardware Manufacturers
2) Application Developers
3) Mobile Users
Day 2 Notes :
Architecture of Android :
Explaination of each Layer from top to bottom
1) Applications :
This is the top most layer of Android Stack. The application which you developed and installed sits in this layer along with the existing predefined applications like calculator, dialer, Sms application etc.
Your application is written using Java programming language syntax which is finally translated to .dex(dalvik executable) format. All the dex code with data and manifest file are packed into .apk(application package) file. Hence a .apk file is nothing but an application in Android. Our application then interacts with its neighbouring layer i.e Application Framework layer.
2) Application Framework :
This layer provides services at runtime to your application. This layer contains a set of Managers which are service providers to your application. The following are the Managers that exist in this layer.
1) Activity Manager
2) Window Manager
3) View System
4) Resource Manager
5) Package Manager
6) Location Manager
7) Notification Manager etc.
For example : Your application can be displayed on the Screen by getting Service from Window Manager. Similarly your application resources are managed by Resource Manager. your Activity's Lifecycle is managed by Activity Manager etc.
NOTE : your application can access these Managers directly in your code by using getSystemService() method as follows :
Ex : WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
3a) DVM :
DVM stands for Dalvik Virtual Machine. DVM runs the application code which is in dex format and finally translates it into Linux format. DVM provides the Runtime environment for your application along with Java APIs.
3b) Java APIs :
These APIs are essential for the interpretation of our Application by DVM. Here we have Core Java libraries and also Android libraries that are required for proper functioning of DVM.
NOTE : DVM and Java APIs together is called Runtime.
3c) C/C++ libraries :
These Libraries are used by DVM to talk with LINUX kernel as LINUX is designed in C/C++ so we use C/C++ libraries as LINUX can understand only C/C++ code. These libraries are invoked by the Application Framework Managers at runtime implicitly.
4) LINUX Kernel :
This is the bottom most layer which does Process management, Memory management, File management etc. Kernel interacts with the Drivers by taking the calls from DVM which inturn communicates with the appropriate Hardware device. Hence Android relies on the modified version of LINUX 2.6 for all OS services.
2) Comparing the C, Java, Android
No comments:
Post a Comment