Android is a complete OS. It is not just a framework. Android is to introduce the Storage Access Framework (SAF). The SAF makes it modest for the users to browse and open documents, files and other images across all of their preferred document storage providers. Its perfect easy-to-use UI lets users browse the files and access recent in a consistent way across apps and providers. Basically this framework is coming from the view of template system. Template is like a predefined body to us. Cloud or local storage services can participate in this ecosystem by implementing a new Documents Provider that encapsulates their own services. Client applications that need access to a provider's documents can integrate with the SAF with just a few lines of code and also some few concepts.
The SAF (Storage Access Framework) includes the following process that helps us:
Document Provider: A content provider that allows a storage service such as Google Drive to expose the records it manages. A document provider is implemented as a subclass of the Documents Provider class. The document-provider schema is based on a old-style file hierarchy though how our document provider physically stores data is up to us. The Android platform which is includes to the several built-in document providers such as Downloads, Images, and Videos.
Client app: It is a basically a traditional app that invokes the ACTION_OPEN_DOCUMENT and/or ACTION_CREATE_DOCUMENT intent. It also receives the files returned by document providers.
Picker: The system UI that lets user’s admission documents from all document providers which are content for client app's search criteria.
An Android APK is a collection of components. These components share a set of resources. Databases, preferences, files pace etc. Android component which have capability to managed lifecycle.
Some of the features offered by the SAF (Storage Access Framework) are as given below:
- Users browse the content from all document providers, not just a single application.
- Makes it possible for our application to have long term and persistent access to documents maintained by a document provider. Through this access the users can easily add, edit and delete files on the provider.
- Supports multiple user accounts and transient roots such as USB storage providers, it only appears if the USB device is plugged in.
Framework Activities and Tasks:
- The Process is started for a given user ID when is needed or require.
- It is for Binding to a Service.
- It is also use for Binding to a Content Provider
- Starting an Activity
- Firing an Intent Receiver
Concept of Development Framework:
Now it is the time to look at how we can start developing applications for Android OS. The Android applications are written using Java as a programming language but it is executed using a custom virtual machine that is called Dalvik rather than a traditional Java VM.
We will introduce the framework for starting with a technical explanation of the Android software stack and a look at what is included in the SDK (Software Development Kit) which is to introduction to the Android libraries and also a look at the Dalvik virtual machine system. Every individual Android application runs in the detached process within its own Dalvik instance surrendering all charge for memory and process management to the Android run time. This stops and kills processes as required to manage resources. Dalvik and the Android run time sits on top of a Linux kernel that handles low-level hardware interaction including drivers and memory monitoring and management, while other set of APIs provides access to all of the underlying features, services and hardware.
The Android software development kit (SDK) includes everything you need to initiate development, testing and debugging of android applications.
Following are included in the SDK
The Android APIs: The core of the SDK (Software Development Kit) is the Android API libraries that provide developer to access to the Android stack. These are the same libraries used at Google to create native Android applications.
Development Tools: To turn Android source code into executable Android applications and the SDK includes several development tools that let us of the compile and debug our Android applications.
The Android Emulator: The Android Emulator is a fully communicating Android device emulator featuring several alternative skins. Using the emulator that we can see how can our applications will look and behave on a real Android device (That is not a virtual concept). All Android applications run within the Dalvik Virtual Machine so that the software emulator is a brilliant situation. It is very vital point that devices are hardware-neutral. This devices are also provides a better independent test environment than any single hardware implementation.
Full Documentation: The SDK (Software Development Kit) includes extensive code-level reference information detailing from exactly which we included in each package and class and also know that the using procedure them. In addition to the code documentation and Android’s reference certification explicates process to get started and gives the detailed explanations of the fundamentals behind Android development System.
Sample Code: The Android SDK (Software Development Kit) includes a selection of sample applications that prove some of the possibilities available using Android the process also as simple programs that highlight how to use individual API(Application Programming Interfaces) features.
Online Support: Online support is no doubt very vital point that despite it’s relative to youth. Android has generated a vibrant developer community. The Google Groups at groups are active forums for the Android developers with regular input from the Android development team at Google.
In that purpose we are using the popular Eclipse IDE. The Android has released a special plug-in that simplifies project creation and tightly integrates Eclipse with the Android Emulator and debugging tools.
Concept of the Android Software Stack:
The Android software stack is composed of the elements shown in Figure which is given below and we also described about it in detail below it. A Linux kernel and a collection of C/C++ libraries are exposed through an application framework that provides services to manage the run time and applications of our development area.
Linux Kernel is Core services which includes hardware drivers, process and memory management, network, security and power management which are handled by a Linux kernel. The kernel (Heart of the Linux System) also provides an abstraction layer between the hardware and the remainder of the stack.
Libraries Running on top of the kernel here Android includes various C/C++ core libraries such as libc and SSL, as well as:
- Media library for playback of audio and video media
- Surface manager to provide display management
- Graphics libraries that include SGL and OpenGL for 2D(Two Dimension) and 3D(Three Dimension) graphics.
- SQLite for native database support.
- SSL and WebKit for integrated web browser and Internet security model.
Android Run Time that makes an Android phone an Android phone rather than a mobile.
Linux implementation is the Android run time System which is including the core libraries and the Dalvik virtual machine, the Android run time is the engine that powers your applications and, along with the libraries, forms the basis for the application framework.
Core Libraries Next of them core libraries where Android development is done in Java, Dalvik is not a Java VM. The core Android libraries provide most of the functionality available in the core Java libraries as well as the Android-specific libraries.
Dalvik Virtual Machine Dalvik is a register-based virtual machine that is been optimized to ensure that a device can run multiple instances efficiently. It trusts on the Linux kernel for threading and low-level memory management.
Application Framework The application framework offers the classes used to create Android applications. It also provides a generic abstraction for hardware access and manages the user interface and application resources.
Application Layer All applications layer both native and third party layer also are built on the application layer using the same API(Application Programing Interface) libraries. The application layer runs within the Android run time using the classes and services made available from the application framework.
Figure 1: Concept of the Android Software Stack
It is sure that android framework is the large development platform that is implementation of template concept. Using the concept of the framework we can develop our system management tools and also our programming language phase. It is sure that in the current year software development is totally based on the platform of framework. Though Android programming concept is written and coming up the logic from Java programming model and using the Eclipse IDE (Integrated Development Environment) model. But contribution of framework is always preferable for all programming model as well as Android system.
Hope you liked the article, see you next time.