What is Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key application.
It is based on Linux with Java programming Interface.
It provides all tools like Compiler, Debugger, Emulator, & it has Own Java Virtual Machine (Dalvik Virtual M/C).
It is created by Open Handset Alliance which is led by Google.
Now tell us focus on what is Software Stack?
A set of programs that work together to produce a result, for example, an operating system and its applications.
Features of Android:
Views are used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
Notification Manager that enables all applications to display custom alerts in the status bar.
Activity Manager that manages the lifecycle of applications and provides a common navigation backstack.
Components of Android:
The Major feature of Android is that one application can make use of the elements of other application.
In order to implement the above feature, Android does not have Single Entry point in the Application.
Android provide four types of Components which may act as an Entry Point to the Application. They are
Activity:
A screen in the Android application. It provides the User Interface. An Application may contain one or more activity. Each Activity is independent of other activity.
Note: All Activities are implemented as a Subclass of Activity Base Class.
Services:
It does not have User Interface. It runs in Background to carry out a Task.
Board Cast Receivers:
It Receives as well as react to the Broad Cast Announcements. There is no restriction for the application to have any desired number of Broad Cast Receivers.
All receivers must extend the BoardCastReceiver Base Class.
It does not have User Interface. It may start with Activity or may invoke Notification Manager to alert some messages to the User.
Content Providers:
Android contains a SQLLite DB which can serve as data provider.
It makes the Data of One Application to Another Application.
Content Providers must extend the Base class Content Provider.
Content Resolvers are the Objects which activates the Content Providers.