History OF Android Versions 2008-2018

1.2 Android version history

Android has two release versions listed as:
1. Android non-commercial release.
2. Android commercial release.

1.2.1. Non commercial Releases

  • Android alpha: These versions were internally released. Fancy robot names were given to these versions like Astro Boy, R2-D2, etc. Irina Blok designed current logo. Naming scheme was introduced by Ryan Gibson after Android 1.5.
  • Android beta: This was released in November, 2007. Android’s birthday is celebrated on 5th Nov, 2007.

1.2.2. Commercial Version Releases

Different Android commercial versions were released and each release had a particular Application Programming Interface (API) level. API is the middleman between operating system and developers. They are a set of tools and resources which developer should know how to use. Need not worry about why and what it is. (Images are snapshots of emulators drawn from various sources)
TABLE - COMMERCIAL RELEASES OF ANDROID
Version
API Level
Name
Analysis
Snapshot
Release Date
1.0
Level 1
---------
Web browser, camera support, Google contacts, Google calendar, Gmail synchronization, Media Player, YouTube video player, Google search, Voice Dialer, Wi-Fi and Bluetooth support, Google Maps, etc
23/09/2008
1.1
Level 2
Petit Four
Ability to show/hide dialer pad, attachments can be attached with text messages, tc.
09/02/2009
1.5
Level 3
Cup cake
Copy-paste features in web browsers, auto rotation, uploading videos on You Tube,etc.
30/04/2009
1.6
Level 4
Donut
Speedy search and camera applications, more than one photo can be deleted, text-to-speech engine i.e. device can speak what to type it to say, speedier web search,  bookmarks can be added,  CDMA/EVDO technology were supported, VPN support was added, gallery was integrated, etc.
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQy4NFHyuR9FSjYD3GXq1zD_jiteeRN3p26mGPyxNaO_a5wOH6oRQ
15/09/2009
2.0,
2.0.1
2.1
Level 5
Level 6
Level 7
Eclair
Enhanced Camera support like Flash support, zoom etc were added, Browser with user interface and HTML5 was integrated, Google maps was improved,  live wallpaper was supported, hardware was optimized and user interface was more sophisticated and more beautiful, saved SMS and MMS could be browsed, after a defined limit older messages were automatically deleted, multiple e-mail accounts could be automatically synchronized, etc.

In later releases bugs were fixed, small changes were done in API etc.
http://androidandme.wpengine.netdna-cdn.com/wp-content/uploads/2009/10/androidemu.png
26/10/2009
03/10/2009
12/01/2010
2.2


2.2.1
2.2.2
2.2.3
Level 8
Frozen Yoghurt (Froyo)
Push notifications were supported, Wi-Fi hotspot functionality was added, Bluetooth enhancements like car speaker was added, chrome’s V 8 engine was integrated, alpha numeric passwords were supported, shortcuts for launching applications were improved, speed of other applications were improved, USB synchronization, etc.

Bugs were fixed in later releases, etc.
20/05/2010
18/01/2011
22/01/2011
21/09/2011
2.3

2.3.1
2.3.2
Level 9
Gingerbread
User interface was updated,  User interface was more simple and support for larger screen resolutions were added, multiple cameras on device were supported, new download manager was added, power management was better, internet calls were supported, etc

Bugs were fixed with small improvements, etc.
06/10/2010

2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
Level 10
Gingerbread
Software of camera was enhanced, Gmail was improved, video and voice chat was supported and improved, Google wallet support was added, encryption was default to SSL (Secure Socket layer) network performance was enhanced, battery power efficiency was improved,  bugs were fixed with each release, etc.

https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQWrlnyIs9uuw7sE6yZ7JVWpzDqS6qr5yQ565tk1KMJyBkb8J0pUGOG0DTS
09/02/2011
28/04/2011
25/07/2011
02/09/2011
21/09/2011
3.0
Level 11
Honeycomb
Multiple tabs for browser were supported, action bar was added, clipped data like url or text can be copied and pasted with ease, user interface supported drag-drop feature, hardware for graphics was accelerated, Status bar notification was added,
22/02/2011
3.1
Level 12
Honeycomb
It included USB API(S) i.e., connected peripherals can be managed more easily, widgets can be resized easily, User interface was improved, Wi-Fi became more manageable, etc.
10/05/2011
3.2

3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
Level 13
Honeycomb
Display support was improved, hardware features were strengthened like optimization of platform for different tablet computers,  synchronization was better, etc.

Later releases included soe features like Flash support, bugs were fixed, security was enhanced, data connectivity was improved etc



15/07/2011
20/09/2011
30/08/2011
10/2011
01/2012
02/2012


4.0

4.0.1
4.0,2
Level 14
Ice Cream Sandwich
Applications were accessible from home screen, copy and paste functionality was improved, real time voice dictation was added, better near field communication feature was supported, built –in photo editor was provided,  possible to zoom while recording video , face unlock support,  “Holo ” interface with roboto font family,  launcher was customizable, etc .

Later releases fixed bugs,
19/10/2011
21/10/2011
28/11/2011
4.0.3

4.0.4
Level 15
Ice Cream Sandwich
Bluetooth, graphics, spell checking and databases were improved, many bugs were fixed, camera with QVGA resolution was added, content readers were provided with fast access, etc.

Screen rotation was smoothened, stability was improved, performance of camera was improved, etc.
16/12/2011
29/03/2012
4.1

4.1.1
4.1.2
Level 16
Jelly Bean
Notifications were expandable,  Google + photos support,  camera application was improved, voice search was improved, notifications could be managed specific to application, etc.

Later releases fixed bugs with performance enhancements, one touch gesture was improved for widening and collapsing notifications, etc.
09/07/2012
23/07/2012
09/10/2012
4.2

4.2.1
4.2.2
Level 17
Jelly Bean
Wireless display was supported,  new clock application was introduced which included a stop watch, timer and world clock, group messaging support, lock screen improved, etc,

Bugs were fixed, wireless charging and low battery were given new sound alerts, download notifications were improved, etc.
13/11/2012
27/11/2012
11/02/2013
4.3

4.3.1
Level 18
Jelly Bean
Performance of Bluetooth enhancements were improved,  OpenGL ES 3.0 improved the gaming experience, right – to – left languages were supported now, different natural languages added, camera user interface was polished again, etc.

Later releases fixed bugs, etc.
24/07/2013
03/10/2013
4.4

4.4.1
4.4.2
Level 19
Kit Kat
Latest release while writing this article. Wireless print support, devices can emulate NFC now,  screen recording is built-in capability now, third-party apps are not allowed to check battery status,  Bluetooth message access profile (MAP) is supported, user interface is refreshed again with improved looks, etc.

Bugs were fixed with few security enhancements, etc.

1.3 Architecture of android

Android Layered Architecture

Android has a layered architecture. Hence android is known as software stack or pile of software. It has five layers:
  • Android Applications Layer: All the native and third party Android apps are built using same API libraries. They run within the android runtime. All the classes and services are provided by Android Application Framework Layer.
  • Android Application Framework Layer:  This layer manages the android user interface. It avails the classes required for creating apps. It provides an abstraction layer between the hardware and system resources.
  • Android Runtime Layer: It is the basis of application framework layer. It provides power to our  Android apps. It contains Core libraries and Dalvik virtual machine. Both of these components together make android phone an android device and not just any Linux implementation.
  1. Core Libraries:  These libraries provide the functionality from android specific libraries and core java functionality.
  2. Dalvik Virtual Machine:DVM uses register-based architecture. Dalvik is open source software. It is designed in a way that each application runs on its own instance of DVM. So that crash of one application doesn’t affect the execution of any other application running in device.
  • Libraries: These libraries are written in C/C++. It includes :
  1. SSL (Secure Socket Layer) :It provides security to the system as there is frequent use of internet.
  2. Media Framework: A media library to support audio and video.
  3. Surface Manager: It manages the display.
  4. SQLite: Supports native databases.
  5. Webkit: Integrated Browser to support browsing over internet.
  6. Libc: Libraries in C.
  • Kernel: It provides an abstraction layer between hardware and rest of software stack. It is a Linux 2.6 kernel. It manages device drivers, power, network, resources, etc.
Now, what is a virtual machine?  Let’s try to find some simple words for these technical terms:
1. Virtual Machine: It is a virtual implementation of a machine which executes like actual machine. The need for this is security and portability.
2. Portability: It is the ability of a program to run anywhere despite of different physical architecture or implementation. Code once and run anywhere.
3. Compilation: The process of converting the program written in your language to the language which your machine understands. In short, program is converted into machine code or low level language in which it can be executed.
4. Program: A sequence of instructions, which can be stored, interpreted and executed by computer.
5. Instruction: It is a basic command. In other words, it is the order given to the processor of computer by your program.

Make sure of one point, android is not extended java, nor java. Both are different.  We will use javaas language so that we can make use of java compatible libraries for Android  app development. Middleware, APIs and libraries are written in C. Application Software running on application framework are written in java-compatible libraries. Android runs Dalvik executable “dex-code” or”.dex” which is generated from java bytecode. Dalvik virtual machine uses JIT (Just-in-time) compilation.

Android Architecture.
Figure Android Architecture.

1.4 Basic Parts of Android Application

The basic components of any android application are the following:
  • Activities
  • Intent and broadcast receivers
  • Services
  • Content Providers
  • Widgets and Notifications

Basic components of android application
Figure Main parts of  android application
Let us go through a brief introduction of these components. We shall deal with them in details in next chapters.

1.4.1 Activity

An activity is the first stepping stone is building an Android user application. It provides the space to the user for doing anything and everything. For example, opening a contact, dialing a caller, etc. everything is done by interacting with a window and that very window is provided by an activity. A window is provided to each activity where user interfacing is done. Generally, every Android application has more than one activity. There is one “main” activity. All other activities are child activities. There is a stack called back stack. Whenever, there is a new window is started, previous activity is pushed to the back stack and it is stopped until the new activity is done. As soon as the back key of your device is pressed, new activity is popped out of stack and destroyed. Now previous activity resumes.
For example, when you send SMS, you open the messenger and send message. Assume this to be your current activity. When you press back key, it should resume the previous activity right!! Previous activity was your own home screen. Let us understand it diagrammatically.
Android Activity and back stack
                                                                Figure Android Activity and back stack
If you are a novice or don’t have computer’s background, you might be thinking what the heck is this stack, push and pop kind of things. A stack is data structure in which computer organizes its data in the memory. Adding an item to this is called push operation. Deleting an item is called pop. A stack has a structure like a book shelf where you arrange your books but unlike a book shelf, only one item can be inserted and deleted from stack respectively.

1.4.2. Service

Another important component of an android application is service. It does not provide user interface. It does long running operations in background. Service doesn’t terminate even if the component which initiated it got terminated or switched to another application. A service can be connected to a component which can even do inter process communication (IPC). For example, when you receive your email updates in inbox it is a service. You get the notification of new e-mail even if you are not using the e-mail app or doing something else. Amazing isn’t it. A service can take two forms:
· Started: After a service starts, it can run indefinitely and usually performs single operation. No result is returned to user. For example, uploading a file. After the task is completed, it should terminate itself.
· Bound: In this case, a component is bound to a service so that a particular task can be completed. This type of service provides a client-server like interface. Requests can be send, receive requests, and return result to the user. Inter process communication is achieved through this service. App component can bind to a service. Multiple components can be bound to this type of service. After the destruction of component, service terminates.
     Figure Android Service can take two forms
           

1.4.3. Content Providers

These Android components bring the object oriented functionality to the system. Content Providers encapsulate data. Content providers as the name indicates provides content of one process to another hence it acts as an interface. It provides gateway to access data from a structured set. For accessing data in a content provider an object has to be created and this object acts as a client whereas content provider act as a server. It is this object which is going to receive the requests retrieves the results and returns the result. Android has content providers which manages video, audio, etc. These content providers are internal to android applications. For example, custom searches on device require content providers.

1.4.4. Android Intents and Broadcast Receivers

Android Intents are the communication medium .i.e., app components send messages to one another like you do with your friends. It is a messaging object. It can be used to query an action from another app component. Android Intent can be used to instantiate a new activity or get result from another activity. A service can be started by passing intent to perform a single operation. A broadcast can be sent to other apps by passing intents. Intents are of two types:
· Implicit Intents: These are used to declare general actions to be performed so that part of another app can handle it.
· Explicit intents: These are generally used to start a new element of your own application. These elements are started by their name i.e. fully qualified class name. For example, if you want to call your best friend you would do it by name and if he/she is not with you then you would definitely know the residential address. Now this is residential address is what we refer to be as fully qualified name.
     Type of Android intents

We know little bit about activity, service but what this broadcast chap is all about??? Let’s find out this in next few lines. Android Broadcast is a message which spreads out when any event occurs. They are received by apps. Android Intents can be used to deliver broadcasts to other apps. For example, when your device boots up or switched on system generates a broadcast to all apps. There should be a procedure or should be something which can receive these broadcasts. These receptors are called broadcast receivers. For this you need to register a receiver in the activity which we shall deal while programming for the same. There are two types of broadcasts:
· Normal Broadcasts: These are asynchronous in nature. Many receivers can be activated at the same time which doesn’t have any defined order. But they are very efficient.
· Ordered Broadcasts: They are synchronous in nature. Broadcast received by one receiver passes it to other receivers. Broadcasts are delivered to receiver on one-to-one and sequential basis. Either receiver will pass result to another receiver or it may completely destroy the broadcast.
      Android Broadcast are of two types

1.4.5. Android Widgets and Notifications

Android App widgets are the small application views. These views can be embedded into other applications. They can receive updates on periodic basis. Now what is a widget first of all? A widget is a quick view of your app’s functionality and data. This view is accessible from home screen of your device. Now widgets are of following types:
Figure Types of widgets

Let us find out what these four types o widgets have to say
· Informational Widget: These Android widgets are going to display only that information to user which is important and dynamic in nature. Example the information displayed on your home screen saying time and weather condition is a widget of this type.
· Collection Widgets: These Android widgets scroll in top-to-down direction. Collection of information of same type and then enabling user to open any one of them to full detail. Example is your e-mail app which will display all the mails in your inbox and then allow you to open any one o them.
· Control Widgets: Displays the most frequently used functionalities which user might want to control from home screen. For example in a video app, you can pause, play, stop, go to previous track, move to next track is an example of control widget.
· Hybrid Widgets: These Android widgets combine features of all of the above three.
Notification, as the name says keeps the user aware of events going on. User is kept informed like any news channel. For e.g, everyone of us know about facebook or whatsapp, now notification system of app is responsible for informing you about any new friend request, chat request, or a new message from say, dvs or xyz, etc.

1.5 Android versus other platforms

A smart-phone programmer can choose other platforms also but developing for Android is lot easier and worthy. As a developer, anyone can develop apps for Android market. Point is:
  • No certification is required.
  • Software Development Kit (SDK) is free of cost and is smart enough to update itself with few clicks.
  • Development environment can be Windows, Linux or Mac OS.
  • Android market is there for distribution of your apps.
  • No third party approval is required for distribution of apps in market.
  • You need a working internet connection and urge to learn, that’s it!!!
  • Start learning from anywhere and wherever, doesn’t matter.
Any other mobile SDK can also be used for learning and earning, why to choose android? Here are some of the unique features which make android more appealing and they are:
  • The apps downloaded from market and the ones with which the device was shipped are given equal importance.
  • Windows can be created into your applications from your own phone’s home screen by using live wallpapers, widgets, etc.
  • Different apps can share data.
  • With the help of background services you let your device work silently .It responds when the threshold event occurs like when pre-determined location arrives, device notifies the user.
  • Google Maps is the biggest hit in this scenario.
  • Open source platform with lots of samples which makes learning curve small.
Let’s find out few differences between Android and other renowned platforms namely, ios, Blackberry and Windows.

1.5.I. Android versus IOS

Both Android and iOS are leading players in the market of smartphones. Let’s pen down few differences between them.
  • Android is the most extensively used smartphone platform in the world and it is used by different device manufacturers like LG, Samsung, HTC , etc.
      iOS is used only on Apple devices like iPad, iTouch, Apple TV etc.
  • Android allows the use of widgets, which display the automatic updated information such as weather, e-mail.
      iOS has a row of apps on the home screen.
  • Varieties of Android devices are available with differing sizes and hardware capabilities. User can choose any one of them according to his/her requirement and budget.
      iOS is available only on Apple devices and they tend to be expensive.
  • Users can chat with non-android devices via GTalk.
      iOS does’t provide the native chat application for non-apple users.
  • Google chrome is available on Android devices. They can be integrated with IOS devices.
      iOS has Safari as web browser which is not available for an Android device.
  • Android allows wireless payments with Near field communication, which is possible by Google wallet.
      iOS provides a Passbook app, which plays around debit/ card cards, but doesn’t allow wireless mobile payments.              
  • Android apps can be programmed in C, C++ and JAVA. Anyone can download SDK and start developing for free. Users can download enormous number of apps for free. There is a one time registration fee of $25  for publishing apps on Google Play.
      iOS developers need to pay $99 every year for their access to iOS SDK and right to publish on app store.
  • Android SDK is available for all platforms: PC, Mac and Linux. It is an open and free platform.
       iOS SDK is available for Mac only. It is a closed platform.
  • Android device’s battery can easily be replaced.
       IOS battery cannot be replaced, hence one has to keep the charger ready to plug-in.
  • Android has the second largest app store. Apps need regular update which again differs among different flavors of Android.
       iOS has the largest app store. Same update is required for all devices.
As android id tied up with Google’s environment it is the driving force behind most prominent people changing from iPhone to Android.

1.5.2. Android versus Blackberry

Both Android and Blackberry are tough competitors but they serve different requirements. Let’s pen down some differences
  • A full touch screen experience can be enjoyed with Android. Different device manufacturers placed their own interface on top of basic android layer for e.g. Samsung has its TouchWiz, Motorola has MotoBlur, etc.
     Most Blackberries don’t have touch interface except Storm and Torch when this article was written.
  • In case of customization of home screen, Android is a winner in market. It allows multiple home screens.
     Blackberry is very poor in customization. There are no widgets.
  • Android is a touch based system and hence navigation is handled by swapping, tapping and pressing. They also have home screen, back key, etc., which varies from manufacturer to manufacturer. 
     Blackberry provides a track pad for navigation. Older Blackberries had trackball for navigation.
  • Android is a dedicated player in game apps and other cool to-do-things apps. Except Gmail, most  e-mails have to be checked periodically. 
     Blackberry is dedicated towards a strong communication network. Whenever a e-mail drops in inbox, user is notified.
  • Android’s market is huge as compared to Blackberry store.
  • Android apps require regular update.
     Blackberry is stable.
  • Android is a open source platform so it can be changed or hacked easily. This is why regular updates are released so that bugs can be fixed.
    Blackberry uses its on server and hence it is much secured. But if server fails, the problem is widespread and it may take days to fix the error.
    Blackberries are most suitable for those who are in certain business and need constant communication. Android gives immense user experience.

1.5.3. Android versus Windows

Windows have partnership with Nokia. As we all know now Nokia is empowered by Microsoft and it overtook the Symbian OS and placed itself in market. Let’s pen down certain points about both of them.
  • An Android device uses Android Operating System and it is an open source.
     Windows phone uses Windows operating system which is a mix of open and closed system.
  • Android users are free to choose any app from market and developers don’t target a particular set of end user’s interest. Say, a Google Map can be used by a student or a farmer to know his/her location.
      Windows target apps with end user in mind.
  • Android device boots itself within few seconds.
       Windows phone must be fully booted in 30 seconds, otherwise the set spec shall not be met.
  • SD card of an android device is replaceable.
       SD card can’t be replaced. With SkyDrive you can have cloud storage.
  • Android apps can register themselves and share data or supports inter-process communication.
        Window’s phone allows every app to open in a sandbox so that other parts of operating system are left undisturbed. It increases security.
  • Android’s apps store is very large.
       They have the smallest but fastest growing apps store.
       Windows phone can be used if security is the main concern and Android can be used if you really want your phone to act smart enough like a Smartphone should do.

Table. Different smartphones
Android

iOS
Blackberry
Windows
Android mobile Devices
IOS mobile Devices
Blackberry mobile Devices
Windows mobile devices
31/10/2013
05/10/2013
09/10/2013

Comments