Android: Android is a mobile operating system based on a modified version of the Linux kernel and other open source software, designed primarily for touch screen mobile devices such as smart phones and tablets.

Android is an open source and Linux-based Operating System for mobile devices such as smart phones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008.

On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance.

The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2.

Features of Android

There are numerous features of android. Some of them are listed below:

Connectivity

Android supports multiple connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC, and WiMAX

Storage

SQLite, a lightweight relational database, is used for data storage purposes

Media support

Android supports various types of audio/video/still media formats like H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, BMP and WebP

Web browser

The web browser available in Android is based on the open-source Blink (previously WebKit) layout engine, coupled with Chrome’s V8 JavaScript engine supporting HTML5 and CSS3

Messaging

SMS and MMS are available forms of messaging, it also includes threaded text messaging and Android Cloud to Device Messaging (C2DM) and now supports the enhanced version of C2DM, and Android Google Cloud Messaging (GCM) is also a part of Android Push Messaging services

Multi-tasking

Multitasking of applications, with unique handling of memory allocation, is available, using this users can jump from one task to another and at the same time various applications can run simultaneously

Resizable widgets

Widgets are resizable, so users can expand them to show more content or shrink them to save space

Multi-touch

Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero

Wi-Fi

A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection.

Screen capture

Android supports capturing a screenshot by pressing the power and home-screen buttons at the same time. This feature supports after Android 4.0

Multi-Language

Android supports multiple languages, also supports the single direction and bi-directional text.


Android Versions

The development of the Android operating system was started in 2003 by Android, Inc. Later on, it was purchased by Google in 2005. The beta version of Android OS was released on November 5, 2007, while the software development kit (SDK) was released on November 12, 2007.

The first Android mobile was publicly released with Android 1.0 of the T-Mobile G1 (aka HTC Dream) in October 2008.

Google announced in August 2019 that they were ending the confectionery scheme, and they use numerical ordering for future Android versions.

The first Android version which was released under the numerical order format was Android 10.

Android versions, name, and API level

Code nameVersion numbersAPI levelRelease date
No codename1.01September 23, 2008
No codename1.12February 9, 2009
Cupcake1.53April 27, 2009
Donut1.64September 15, 2009
Eclair2.0 – 2.15 – 7October 26, 2009
Froyo2.2 – 2.2.38May 20, 2010
Gingerbread2.3 – 2.3.79 – 10December 6, 2010
Honeycomb3.0 – 3.2.611 – 13February 22, 2011
Ice Cream Sandwich4.0 – 4.0.414 – 15October 18, 2011
Jelly Bean4.1 – 4.3.116 – 18July 9, 2012
KitKat4.4 – 4.4.419 – 20October 31, 2013
Lollipop5.0 – 5.1.121- 22November 12, 2014
Marshmallow6.0 – 6.0.123October 5, 2015
Nougat7.024August 22, 2016
Nougat7.1.0 – 7.1.225October 4, 2016
Oreo8.026August 21, 2017
Oreo8.127December 5, 2017
Pie9.028August 6, 2018
Android 1010.029September 3, 2019
Android 111130September 8, 2020

Android Version 1.0 to 1.1: No codename

Android officially publish its Android version 1.0 in September 2008. It is the initial version of Android operating system. It supports Web browser to show HTML and XHTML web pages, camera, access web email server (POP3, IMAP4, and SMTP). This version contains Google Calendar, Google Maps, Google Sync, Google Search, Google Talk, Instant messaging, Media player, Notifications appear in the status bar, wallpaper, YouTube video player, Alarm Clock, Calculator, Dialer, Pictures (Gallery), Wi-Fi and Bluetooth support.

Android version 1.5: Cupcake

On April 27, 2009, the Android updated to 1.5 with the codename of the dessert item (Cupcake). It has Linux kernel 2.6.27. It supports third-party virtual keyboard, Video recording and playback in MPEG-4, Copy and paste feature, animated screen translations, auto-rotation option, ability to upload a video to YouTube, upload photos to Picasa, check phone usage history.

Android version 2.0 to 2.1: Eclair

On October 26, 2009, Android 2.0 was released, whose codename was Eclair. It was based on Linux kernel 2.6.29. It contains the several new features as expanded account sync, Microsoft Exchange email support, Bluetooth 2.1, ability to tap a Contact photo and select to call, SMS, ability to search all saved SMS, MMS messages, delete the oldest message automatically when the defined limit is reached, Minor API, bug fixes.

Android version 2.2 to 2.2.3: Froyo

On May 20, 2010, Android 2.2 (Froyo) was released based on Linux kernel 2.6.32. It contains several features as speed, memory, performance optimization. JIT compilation, Integration of Chrome’s V8, JavaScript engine into the Browser application, support Android Cloud to Device Messaging service, Adobe Flash support, security updates, and performance improvement.

Android version 2.3 to 2.3.7: Gingerbread

On December 6, 2010, the Android 2.3 (Gingerbread) was released based on Linux kernel 2.6.35. It includes the following changes: support for extra-large screen size and resolutions, updated user interface design with increased simplicity and speed, enhanced copy/paste functionality, select a word by press-holding, support Near Field Communication (NFC), headphone virtualization, new Download Manager.

It has improved bug fixes for Nexus S, voice or video chat using Google Talk, network performance for Nexus S 4G, Gmail application, battery efficiency, fixed a voice search bug, Google Wallet support for Nexus S 4G.

Android version 3.0 to 3.2.6: Honeycomb

On February 22, 2011, Android 3.0 (Honeycomb) was launched for the first tablet for Android-based on Linux kernel 2.6.36. It contains the features like “holographic” user interface for tablet, added system Bar, simplified multitasking tapping Recent Application in system Bar, redesign the keyboard making fast typing, quick access to camera exposure, hardware acceleration, support for multi-core processor, UI refinements, connectivity for USB accessories, support for joysticks and gamepads, high-performance Wi-Fi lock, improved hardware support, Google Books, fixed data connectivity issues when coming out of Airplane mode.

Android version 4.0 to 4.0.4: Ice Cream Sandwich

On October 19, 2011, Android 4.0.1 (Ice Cream Sandwich) was launched, which was based on Linux kernel 3.0.1. It was the last version of officially support Adobe System Flash player. It introduces the numerous new features: refinements to “Holo” interface with new Roboto font family, separation of widgets in a new tab, integrated screenshot capture, improved error correction on the keyboard, improved copy and paste functionality, build-in photo editor, fixed minor bugs, improvement to graphics, spell-checking, better camera performance.

Android version 4.1 to 4.3.1: Jelly Bean

On June 27, 2012, Google announced Android 4.1(Jelly Bean) in the Google I/O conference. It is based on Linux kernel 3.0.31. It updates to following features: smoother user interface, enhance accessibility, expandable notification, fixed bug on Nexus 7, one-finger gestures to expand/collapse notifications, lock screen improvement, multiple user accounts (tablets only), new clock application, Bluetooth low energy support, volume for incoming call, 4K resolution support, native emoji support, bug fixes for the Nexus 7 LTE.

Android version 4.4 to 4.4.4: KitKat

On September 3, 2013, Google announced Android 4.4 (KitKat) . Initially, its code name was “Key Lime Pie”. Google started on Google’s Nexus 5 on October 31, 2013. The minimum required amount of RAM should available to Android is 340 MB. The other devices with less than 512 MB of RAM must report themselves as “low RAM” devices. It includes several new features as clock no longer display bold hours, wireless printing capability, WebViews are based on Chromium engine, sensor batching, built-in screen recording feature, better application compatibility, camera application loads Google+ Photo instead of Gallery.

Android version 5.0 to 5.1.1: Lollipop

Android 5.0 “Lollipop” was initially named “Android L” on June 25, 2014. It was officially introduced on November 12, 2014. Lollipop provides several features like redesigned user interface, support for 64-bit CPUs, support for print previews, material design, Project Volta for battery life improvement, multiple user accounts, audio input, and output through USB devices, join Wi-Fi networks, support for multiple SIM cards, device protection, high-definition voice calls, native Wi-Fi calling support.

Android version 6.0 – 6.0.1: Marshmallow

Android 6.0 “Marshmallow” was disclosed under the codename “Android M” on May 28, 2015, for Nexus 5 and Nexus 6 phones, Nexus 9 tablet.

On October 5, 2015, Android lunches “Marshmallow” for all android devices. It contains the various new features as App Standby feature, introduce the Doze mode to save battery life, native fingerprint reader support, run-time permission requests, USB-C support, Unicode 7.0 & 8.0 emoji support.

Android version 7.0 to 7.1.2: Nougat

Android 7.0 “Nougat” was the major release for the Android operating system. Its initial codename was “Android N”. It was first released as a developer preview on March 9, 2016, with factory images for the Nexus device.

On August 22, 2016, the final preview built was released with following features: file-based encryption, zoom in the screen, multi-window support, new Data Saver mode, JIT compiler makes 75 percent faster app installation, picture-in-picture support, support manager APIs, circular app icons support, send GIFs directly from the default keyboard, battery usage alerts.

Android version 8.0 to 8.1: Oreo

Android 8.0 “Oreo” was the 8th major release of the Android operating system. It was first released for developer preview on March 21, 2017. The final developer preview was released on July 24, 2017.

On August 21, 2017, its stable version was released with several features: picture-in-picture support, support for Unicode 10.0 emoji (5.0), restructured settings, adoptive icons, notification channels, notification dots, 2 times faster boot time, Google Play Protect, Integrated printing support, Neural network API, shared memory API, Android Oreo Go Edition, autofill framework, automatic light, and dark themes.

Android version 9.0:

Pie Android 9.0 “Pie” was the ninth major version of the Android operating system. It was first announced and preview launched by Google on March 7, 2018. It was officially released on August 6, 2018. It has the following features: the clock has moved to the left of the notification bar, the “screenshot” button has been added, battery percentage always shown on display.

Android version 10:

Android 10 is the tenth extensive version of the Android operating system. Android 10 has developed under the codename “Android Q”. It was initially announced by Google on March 13, 2019 and its first beta version was released on same day and its second beta was released on April 3, 2019.

The stable version of Android 10 was released on September 3, 2019. It contains features like new permissions to access location in the background, floating setting panel, support for an AV1 video codec, support for biometric authentication, support the WPA3 Wi-Fi security.

Android  version 11:

Android 11 operating system is the eleventh big release of Android. It is the 18th version of Android mobile OS, which was released on 8 September 2020. The alphabetic naming system of Android, based on deserts, was stopped since Android 10. So, therefore, this operating system has branded with “Android 11”.


WORKING MECHANISM OF ANDROID

Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram.

Android
Working Mechanism of Android

Linux kernel

At the bottom of the layers is Linux – Linux 3.6 with approximately 115 patches. This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.

Libraries

On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.

Android Libraries

This category encompasses those Java-based libraries that are specific to Android development. Examples of libraries in this category include the application framework libraries in addition to those that facilitate user interface building, graphics drawing and database access. A summary of some key core Android libraries available to the Android developer is as follows −

  • app− Provides access to the application model and is the cornerstone of all Android applications.
  • content− Facilitates content access, publishing and messaging between applications and application components.
  • database− Used to access data published by content providers and includes SQLite database management classes.
  • opengl− A Java interface to the OpenGL ES 3D graphics rendering API.
  • os− Provides applications with access to standard operating system services including messages, system services and inter-process communication.
  • text− Used to render and manipulate text on a device display.
  • view− The fundamental building blocks of application user interfaces.
  • widget− A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
  • webkit− A set of classes intended to allow web-browsing capabilities to be built into applications.

Having covered the Java-based core libraries in the Android runtime, it is now time to turn our attention to the C/C++ based libraries contained in this layer of the Android software stack.

Android Runtime

This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.

The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.

The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.

Application Framework

The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.

The Android framework includes the following key services −

  • Activity Manager− Controls all aspects of the application lifecycle and activity stack.
  • Content Providers− Allows applications to publish and share data with other applications.
  • Resource Manager− Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
  • Notifications Manager− Allows applications to display alerts and notifications to the user.
  • View System− An extensible set of views used to create application user interfaces.

Applications

You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc.


ANDROID  DEVELOPMENTS TOOLKIT.

Android continues to be the most used operating system worldwide. And that means Android apps are extremely popular. Most companies who build mobile apps, create apps for multiple devices – both Android devices and iOS devices. To build an excellent Android app you need to use the best tools. Here’s out top picks when it comes to Android development tools:

1)  Android Studio

There’s no talking about android app development without the Android Studio. It’s the most basic tool for Android developers. Created by Google in 2013, it has pretty much become the standard software for Android Developers. It’s a great tool because it has the support of Google as well as a large community of developers.

2) Android Debug Bridge (ADB)

Android Debug Bridge is included in Android Studio and it’s basically a line of communication between Android devices and other computers that developers use for QA and testing purposes. Android Developers can connect their Android device to their computer and make necessary changes to both devices at the same time.

3) Android Virtual Device (AVD) Manager

Another great feature of Android Studio is the AVD. This is an emulator that will run your Android app on your computer so that you have a better inside into what your code looks like. It’s great for actually seeing the work you’ve done and making any adjustments as needed.

4) Eclipse

Next up on the list we have Eclipse. Before Android Studio came around, Eclipse was the main tool for Android development. As of right now, Google doesn’t support this software but some developers still use it to build Android apps as well as other apps. Eclipse is still a pretty useful tool, especially for developing cross-platform applications, and it supports a variety of programming languages.

5) Fabric

Up next we have Fabric. Many big companies have used it while developing their mobile apps, for example Twitter, Uber and Spotify. That in of itself is a big test for a tool like this. Google actually purchased Fabric from Twitter in January 2017. The platform offers several kits for developers to use during testing as well as kits for marketing and advertising. Those components make it really easy to ensure your application is user-friendly and fits into the target market

6) FlowUp

When working on any web or mobile project, performance is always key. And FlowUp is a perfect tool for developers to check the performance of their Android app or any other app as well. It’s a SaaS (Software as a Service) solution that you can use based on a monthly subscription. The system shows you a nice, organized dashboard of all the key metrics for your application like CPU, bandwidth, disk usage etc.

7)GameMaker: Studio

GameMaker: Studio is a great option for people coding their first Android game. If you’re just starting out with Java and Android and want to learn how to create a game, this is the perfect option. The platform provides you with everything you need to create a 2D game with very little programming and code. It also has a drag-and-drop interface that makes it very easy for beginner developers to start their Android development journey.

8) Genymotion

Genymotion is an emulator that lets you view more than 3000 different device scenarios so that you can test your app in many different environments. Besides Android and Java, this tool also supports other programming languages and operating systems.

9) Instabug

The next tool on the list is a great testing and bug reporting system. Companies like Yahoo, BuzzFeed, Lyft and PayPal use it in their development process. It enables each developer to document bugs, add screen shots and share this with other developers on the team to keep a log of all the bugs.

10) Visual Studio With Xamarin

To end this list we have another classic tool, already known to most people. Visual Studio is Microsoft’s original development environment. You can use almost any programming language with it and use it to make native Android, iOS and Windows apps when you combine it with Xamarin.

 

Scroll to Top