Introduction
This is a first article in a series of articles that will help new user to learn what Android is, what kinds of tools to use when developing, and how to develop with Android.
This article will provide a brief summary of what Android is and why people may be interested in learning to develop Android. It will also give a high-level overview of the different layers of the Android Architecture Stack and components that make up the essential building blocks of an Android App.
What is Android?
Android is an open source freely available platform from Google. It is Javea based on the Linux Kernal and allows for developing and publishing apps for moble devices. It is compatable with many types and sizes of devices from many different hardware companies with a wide range of price points. Just some examples are phone, tablets, e-readers and GPS systems, Google TV and wearable devices just to name a few.
The code is developed using the Android Software Development kit (SDK) and it comes with many API's that can support Wi-fi, GPS, Bluetooth, Camera, and Accelerometer.
How does it compare to Other mobile platforms?
The majority of Android is open source unlike Apple and Microsoft mobile platforms. It also can be deveopled on whatever hardware you are using so you don't have to purchase a special machine to do develop unlike Apple where you need a Mac or other compatability software packages.
Why should developers want to learn Android
Android has the largest number (hundereds or millions) and variety of devices on the market and the most users from all around the world. It offers tech companies a low-cost flexible OS for use on various devices. Android also has a large community for open projects. It looks like they have positioned themselves to be the "Windows" of the mobile future.
Layers of the Android Architecture Stack
A great illustration of the Android Architecture Stack can be found at: http://www.android-app-market.com/android-architecture.html
The Linux Kernal
The Linux kernal provides the drivers for the various hardware of your Android device.
Libraries
The next layer contains the libraries thatimplement different Android features. WebKit for example is for browser support and FreeType is responsible for fonts.
It also contains the Android core libraries and the Dalvik Virtual Machine. The Dalvik Virtual Machine is a Java Virtual Machine(JVM) used in android devices to run applications. It is optimized for low processing power and low memory environments. It provides memory management and threading support.
Application Framework
This layer provides the class for developers to use. It includes managing the User Interface, the app resources and the hardware abstraction.
Applications
Where the Device applications and user applications are run.
Components of an Android App
The following are the building blocks of an Android application. Each type has a different purpose and lifecycle.
Activities
An activity is defined as a single screen with a user interface. It is implemented as a subclass of Activity.
Services
A service is a process that runs in the background. It is implemented as a subclass of Service.
Content Providers
Content managers manage the application data. This is how apps can access and modify data. It is implemented as a subclass of Content Provider.
Broadcast Receivers
This component responds to system-wide broadcast announcements. It announces when something happens with the device such as the screen going off. They may create a status bar notification for the user. It is implemented as a subclass of BroadcastReceiver.
Points of Interest
For much more information visit the site developer.android.com. It is the site with documentation for Android development.
History
Keep a running update of any changes or improvements you've made here.