Android Introduction

What is Android ?

Android is an open-source framework and is based on Linux.

Android is a mobile operating system.

The Android applications can be built using Java, Kotlin and Flutter.

The Android framework helps us to develop advanced and user-friendly applications.

History of an Android

It is an operating system developed by Android Inc.

Android Inc. was developed in Palo Alto California, in October 2003 by Andy Rubin

In 2005, Google acquired Android Inc, in 2007. The first version was released by Google and the commercial version was released in 2008 known as Android 1.0.

Google acquired Android Inc and later the OHA (Open Handset Alliance).

The OHA was established on 5 November 2007, led by Google, including mobile handset makers, application developers, some mobile carriers and chip makers.

The OHA's main product is the Android platform - the world's most popular smartphone platform.

Why Learn Android Technology?

It is leading the global market.

As Android is open-source anyone can learn and build Android applications.

Android technology is not constrained to only cell phones it also uses in Television, watch etc.

Android applications are compatible with a variety of devices.

Android Features

Voice-search

Screen-capture

Multiple Language Support

Gestures

Tethering

Media Support

Storage

Auto-correct

Sensors

Multi Touch

Android Framework

Middle-ware applications

Google Services like youtube api,cloud storage,google map etc.

Android Architecture

Android Architecture is a software stack of components that are required to build an Android Application.

Following are main components of android architecture those are:

  • System Application
  • Middle Ware Application
  • Hardware Abstract Layer
  • Linux Kernel

System Application

Android comes with a set of core apps or predefine apps for email, SMS messaging, calendars, internet browsing, contacts, and more.

The top layer of the android architecture is Applications.

Whatever apps we will build those will be installed on this layer only.

The system apps function both as apps for users and to provide key capabilities that developers can access from their own app.

Middle Ware Application

Middle Ware contains three layer:
1. Application Framework
2. Native Libraries
3. Android Runtime

1. Application Framework

The Application Framework provides the classes used to create Android applications.

It provides a lot of classes and interfaces for android application development.

These APIs written in the Java language.

Android Frameworks includes Android API like WifiManager, SensorManager, WallpaperManager, BluetoothAdapter, TelephonyManager, NotificationManager, PackageManager etc.

2. Native Libraries

The Android platform provides Java framework APIs to expose the functionality of some of these native libraries to apps.

Android system components and services, such as ART and HAL, are built from native code that require native libraries written in C and C++.

For Example : OpenGLES API to add support for drawing and manipulating 2D and 3D graphics in your app.

3. Android Runtime

Android version 5.0 (API level 21) or higher, each app runs in its own process and with its own instance of the Android Runtime (ART).

Prior to Android version 5.0 (API level 21), Dalvik was the Android runtime.

Java sources into DEX(Dalvik Executable File) bytecode, which can run on the Android platform.

ART include the following:
Ahead-of-time (AOT) and just-in-time (JIT) compilation
Better debugging support, including a dedicated sampling profiler, detailed diagnostic exceptions and crash reporting etc.
Optimized garbage collection (GC)

Hardware Abstract Layer

The hardware abstraction layer (HAL) provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework.

When a framework API makes a call to access device hardware, the Android system loads the library module for that hardware component like WiFi, Camera, Bluetooth etc.

Linux Kernel

Linux Kernel is a bottom layer and heart of the android architecture.

It manages all the drivers such as display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are mainly required for the android device during the runtime.

It is responsible for memory management, power management, device management, resource access, etc.

No comments: