Getting Started with Android Programming

What you will learn in this page ;

  • What is android ?
  • Android versions and its feature set
  • The  Android architecture
  • The various android devices on the market
  • the android market application store
  • How to obtain the tool and SDK for developing android application
  • How to develop your first android application
    What is Android ?

Android is a mobile operating system that is based on a modified version of Linux. It was originally developed by a startup of the same name. Android , Inc. In 2005, as part of its strategy to enter mobile space, Google purchased Android , Inc. and took over its development work (as well as its development team).

Google wanted the Android OS to be open and free, so most of the android code was released under the open source Apache License. That means anyone who wants to use Android can do so by 
downloading the full Android source code. Moreover, vendors (typically hardware manufacturers) 
can add their own proprietary extensions to Android and customize Android to differentiate their 
products from others. This development model makes Android very attractive to vendors, especially 
those companies affected by the phenomenon of Apple’s iPhone, which was a hugely successful 
product that revolutionized the smartphone industry. When the iPhone was launched, many smartphone manufacturers had to scramble to find new ways of revitalizing their products. These manufacturers saw Android as a solution, meaning they will continue to design their own hardware and 
use Android as the operating system that powers it. Some companies that have taken advantage of 
Android’s open source policy include Motorola and Sony Ericsson, which have been developing their 
own mobile operating systems for many years. 
The main advantage to adopting Android is that it offers a unified approach to application development. Developers need only develop for Android in general, and their applications should be able to 
run on numerous different devices, as long as the devices are powered using Android. In the world 
of smartphones, applications are the most important part of the success chain.
 
Android Versions
Android has gone through quite a number of updates since its first release. Table 1-1 shows the  various of Android and their codenames.

 A Brief  History of Android Versions :

ANDROID VERSION RELEASE DATE CODENAME
1.1 February 9, 2009
1.5 April 30, 2009  Cupcake
1.6 September 15, 2009   Donut
2.0/2.1 October 26, 2009 Éclair
2.2 May 20, 2010 Froyo
2.3 December 6, 2010 Gingerbread
3.0/3.1/3.2 February 22, 2011 Honeycomb
4.0 October 18, 2011 Ice Cream Sandwich
4.1 July 9, 2012 Jelly Bean
4.4 October 31, 2013 KitKat
5.0 November 12,2014 Lollipop
6.0 October 5, 2015 Marshmallow
7.0 TBD Nougat

In 2016, Google released Android 7.0; the following are the changes in Android 7.0:
  •  Split-screen multi-window mode
  •  Redesigned notification shade
  •  Refined "Doze" feature
  • Switch from JRE (Java Runtime Environment) to open JDK
One important thing to keep in mind as you are looking at Android versions is that each version has 
its own features and APIs (application programming interfaces). Therefore, if your application is written for the newest version of Android, and it uses an API that was not present in an older version of 
Android, then only devices running that newer version of Android will be able to use your application. 
Features of Android
Because Android is open source and freely available to manufacturers for customization, there 
are no fixed hardware or software configurations. However, the base Android OS supports many 
features, including
  • Storage—SQLite, a lightweight relational database, for data storage. Chapter 7 discusses data  storage in more detail.
  • Connectivity—GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (includes A2DP and AVRCP), Wi-Fi, LTE, and WiMAX.  
  • Messaging—Both SMS and MMS.
  • Media support H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB  (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, 
    WAV, JPEG, PNG, GIF, and BMP.
  • Hardware support—Accelerometer sensor, camera, digital compass, proximity sensor, and GPS.
  • Multi-touch—Multi-touch screens.
  • Multi-tasking—Multi-tasking applications.
  • Tethering—Sharing of Internet connections as a wired/wireless hotspot.
Android’s web browser is based on the open source WebKit and Chrome’s V8 JavaScript engine.

Architecture of Android

To understand how Android works, take a look at Figure 1-1, which shows the various layers that 
make up the Android operating system (OS). 
The Android OS is roughly divided into five sections in four main layers:
  • Linux kernel—This is the kernel on which Android is based. This layer contains all the ow-level device drivers for the various hardware components of an Android device. 
  • Libraries—These contain the code that provides the main features of an Android OS. For example, the SQLite library provides database support so that an application can use it for 
    data storage. The WebKit library provides functionalities for web browsing. 
  • Android runtime—The Android runtime is located in the same layer with the libraries and provides a set of core libraries that enable developers to write Android apps using the Java 
    programming language. The Android runtime also includes the Dalvin virtual machine, 
    which enables every Android application to run in its own process, with its own instance 
    of the Dalvin virtual machine. (Android applications are compiled into Dalvin executables). 
    Dalvin is a specialized virtual machine designed specifically for Android and optimized for 
    battery-powered mobile devices with limited memory and CPU power.
  • Application framework—The application framework exposes the various capabilities of the Android OS to application developers so that they can make use of them in their 
    applications. 
  • Applications—At this top layer are the applications that ship with the Android device (such as Phone, Contacts, Browser, and so on), as well as applications that you download and 
    install from the Android Market. Any applications that you write are located at this layer.
Android Devices in the Market

Android devices come in all shapes and sizes including, but not limited to, the following types 
of devices :
  • Smartphones
          
  • Tablets

  • E-reader devices

  • Internet TVs

  • Automobiles

  • Smartwatches