Drupal Consultant
Started my career as a drupal8 developer in EM Solutions . I love learning Web technologies like HTML, CSS, PHP, Jquery Ajax and Drupal backend . Currently working as a drupal backend developer.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
The following diagram shows the major components of the Android operating system.
android architecture
The main components of the Android architecture:
1. Applications: These are applications written in Java. Some of basic applications includes an calendar, email client, SMS program, maps, making phone calls, accessing the Web browser, accessing your contacts list and others.
If you are an average user, this is the layer you will us most, rest all layers are used by Google programmers, developers and hardware manufacturers.
2. Application Framework: This is the skeleton or framework which all android developers has to follow. The developers can access all framework APIs an manage phone’s basic functions like resource allocation, switching between processes or programs, telephone applications, and keeping track of the phone’s physical location.
The architecture is well designed to simplify the reuse of components. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.
3. Libraries: This layer consists of Android libraries written in C, C++, and used by various system. These libraries tells the device how to handle different kinds of data and are exposed to Android developers via Android Application framework. Some of these libraries includes media , graphics, 3d,SQLite,web browser library etc.
The Android runtime layer which includes set of core java libraries and DVM (Dalvik Virtual Machine) is also located in same layer.
4. Runtime Android: This layer includes set of base libraries that are required for java libraries. Every Android application gets its own instance of Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently and it executes files in executable (.Dex) optimized for minimum memory.
5. Kernel – Linux: This layer includes Android’s memory management programs, security settings, power management software and several drivers for hardware , file system access, networking and inter-process-communication. The kernel also acts as an abstraction layer between hardware and the rest of the software stack.
Android GUI Architecture
Android GUI is single-threaded, event-driven and built on a library of nestable components.
The Android UI framework is organized around the common Model-View-Controller pattern.
The Model : The model represents data or data container. You can see it as a database of pictures on your device. Say, any user wants to hear an audio file, he clicks play button and it triggers an event in your app, now the app will get data from data store or database and as per input and creates data to be sent back to the user. You can refer this data as Model.
The View: The View is the portion of the application responsible for rendering the display, sending audio to speakers, generating tactile feedback, and so on.
Now as per above example, the view in a hypothetical audio player might contain a component that shows the album cover for the currently playing tune. User will always interact with this layer. User action’s on this layer will trigger events that will go to the application functions.
The Controller: The Controller is the portion of an application that responds to external actions: a keystroke, a screen tap, an incoming call, etc. It is implemented as an event queue. On User’s action, the control is passed over to controller and this will take care of all logic that needs to be done and prepare Model that need to be sent to view layer.
Mobile companies that are using Android :
Right now the major players in mobile world using Android technology are: