Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Article 1 - Very Basic Introduction to Android

4.00/5 (2 votes)
3 Aug 2014CPOL3 min read 7.9K  
This is a very basic introduction to Android for those who are new

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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)