Android Overview

Android Into


                                                  What is Android ?

                  Android is an open source platform designed for mobile devices, it is developed by Google. The goal of Android is "increased creativity on mobile devices, gives users a richer, more attractive and less expensive than using mobile".
                
                           Android is a mobile operating system developed by Google, based on a modified version of the Linux kernel and other open source software and designed primarily for touchscreen mobile devices such as smartphones and tablets. In addition, Google has further developed Android TV for televisions, Android Auto for cars, and Wear OS for wrist watches, each with a specialized user interface. Variants of Android are also used on game consoles, digital cameras, PCs and other electronics.

                                           History Of Android :

First Android Device: Source wikipedia


                                     Initially developed by Android Inc., which Google bought in 2005, Android was unveiled in 2007, with the first commercial Android device launched in September 2008. The operating system has since gone through multiple major releases, with the current version being 9.0 "Pie", released in August 2018. The core Android source code is known as Android Open Source Project (AOSP), and is primarily licensed under the Apache License.

                                          Chronological Events :


Date
Event
October 2003

July, 2005

December, 2006

September, 2007

          
           2013
Android Inc. was founded in Palo Alto, California

Google acquired Android Inc. for at least $50 million

An early prototype had a close resemblance to a BlackBerry phone, with no touchscreen and a physical QWERTY keyboard

InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony.

Google explained that "Since these devices make our lives so sweet, each Android version is named after a dessert"

                            List Of Available and released Versions :

Android Versions.

Version
Code name
Release date
API level
Runtime
Distribution
8.1
December 5, 2017
Older version, yet still supported: 27
ART
3.2%
7.1
October 4, 2016
Older version, yet still supported: 25
ART
10.5%
2.3
February 9, 2011
Old version, no longer supported: 10
Dalvik 1.4.0
0.3%
4.3
July 24, 2013
Old version, no longer supported: 18
0.5%
4.1
July 9, 2012
Old version, no longer supported: 16
1.2%
5.0
November 3, 2014
Old version, no longer supported: 21
ART 2.1.0
3.8%
6.0
October 5, 2015
Older version, yet still supported: 23
ART
22.7%
7.0
August 22, 2016
Older version, yet still supported: 24
ART
20.3%
4.4
October 31, 2013
Old version, no longer supported: 19
Dalvik (and ART 1.6.0)
8.6%
4.2
November 13, 2012
Old version, no longer supported: 17
1.8%
8.0
August 21, 2017
Older version, yet still supported: 26
ART
11.4%
4.0
October 19, 2011
Old version, no longer supported: 15
0.3%
9.0
Pie
August 6, 2018
Current stable version:28
ART
N/A
5.1
March 9, 2015
Old version, no longer supported: 22
ART
15.4% 















                                             Android Architecture :

Android Architecture pictorial representation.

        It includes :
  1.  Linux Kernel
  2. Libraries
  3. Android Runtime
  4. Application Framework
  5. Application
A screenshot of mySamsung device with Android Version and Kernel Version with device name

                                                    Linux Kernel :

  •              Kernel is the heart of Android.
  •              Contains all low-level devices for the various hardware components of an Android device
                                                               Libraries:
  •     Contains code that provides the main features of an Android

  •                     Key core Android Libraries are:
  • android.app – Provides access to the application model and is the cornerstone of all Android applications.
  • android.content – Facilitates content access, publishing and messaging between applications and application components.
  • android.database – Used to access data published by content providers and includes SQLite database management classes.
  • android.graphics – A low-level 2D graphics drawing API including colors, points, filters, rectangles and canvases.
  • android.hardware – Presents an API providing access to hardware such as the accelerometer and light sensor.
  • android.opengl – A Java interface to the OpenGL ES 3D graphics rendering API.
  • android.os – Provides applications with access to standard operating system services including messages, system services and inter-process communication.
  • android.media – Provides classes to enable playback of audio and video.
  • android.net – A set of APIs providing access to the network stack. Includes android.net.wifi, which provides access to the device’s wireless stack.
  • android.provider – A set of convenience classes that provide access to standard Android content provider databases such as those maintained by the calendar and contact applications.
  • android.text – Used to render and manipulate text on a device display.
  • android.util – A set of utility classes for performing tasks such as string and number conversion, XML handling and date and time manipulation.
  • android.view – The fundamental building blocks of application user interfaces.
  • android.widget - A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
  • android.webkit – A set of classes intended to allow web-browsing capabilities to be built into applications

      Dalvik VM Specific Libraries :- This is a set of libraries used predominantly for interacting directly with an instance of the Dalvik VM and is unlikely to be used by most Android application developers. 

     Java Interoperability Library :- 


             Android applications are predominantly developed using the Java programming language. The Standard Java development environment includes a vast array of classes that are contained in the core Java runtime libraries. These libraries provide support for tasks such as string handling, networking and file manipulation (to name but a few) and are both familiar to, and widely used by Java developers regardless of platform.


                The Java Interoperability Libraries are an open source implementation (based on the Apache Harmony project) of a subset of the Standard Java core libraries that have been adapted and transformed for use by applications running within a Dalvik VM.




                              Android Runtime


      - A.K.A  Dalvik Virtual Machine.         

                       Running applications in virtual machines provides a number of advantages. Firstly, applications are essentially sandboxed, in that they cannot detrimentally interfere (intentionally or otherwise) with the operating system or other applications, nor can they directly access the device hardware.

               Secondly, this enforced level of abstraction makes applications platform neutral in that they are never tied to any specific hardware.

            The Dalvik virtual machine was developed by Google and relies on the underlying Linux kernel for low-level functionality. It is more efficient than the standard Java VM in terms of memory usage, and specifically designed to allow multiple instances to run efficiently within the resource constraints of a mobile device. 


                                            Application Framework


Android Application Framework supports the features that made us use and enjoy the wide range of applications for variety of uses.

The Android framework includes the following key services:

·         Activity Manager – Controls all aspects of the application lifecycle and activity stack.

       Content ProvidersAllows 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.

·         Package Manager – The system by which applications are able to find out information about other applications currently installed on the device.

·         Telephony Manager – Provides information to the application about the telephony services available on the device such as status and subscriber information.

·         Location Manager – Provides access to the location services allowing an application to receive updates about location changes.

                                Application

Different Application to interact with Android Device


    Top Layer of Android Architecture is Application which we work on.These comprise both the native applications provided with the particular Android implementation (for example web browser and email applications) and the third party applications installed by the user after purchasing the device.

That's all about Android Intro for every new user to it.

Let's ascend and try to learn  How to create Android Application ?

Keep Smiling and waiting for easy friendly tutorials :



      










Comments

Popular posts from this blog

Introduction To Pointers

Introduction To C