You are on page 1of 11

Android Notes

Chapter 1st – Android & its tools

What is Android ?
Android is an open source and Linux-based Operating System for mobile
devices such as smartphones 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.

Categories of Android applications

There are many android applications in the market. The top categories are:

o Entertainment
o Tools
o Communication
o Productivity
o Personalization
o Music and Audio
o Social
o Media and Video
o Travel and Local etc

Open Handset Alliance

The Open Handset Alliance (OHA) is a business alliance that was created for
the purpose of developing open mobile device standards. The OHA has
approximately 80 member companies, including HTC, Dell, Intel, Motorola,
Qualcomm and Google. The OHA's main product is the Android platform - the
world's most popular smartphone platform.

OHA members are primarily mobile operators, handset manufacturers, software


development firms, semiconductor companies and commercialization
companies. Members share a commitment to expanding the commercial
viability of open platform development.

OHA member companies back the open platform concept for a number of
reasons, as follows:

 Lower overall handset costs: Opens up resources, which facilitates the


focus on creating innovative applications, solutions and services.
 Developer-friendly environment: In the open-source community,
developers share notes to expedite application development.
 Post-development: Provides an ideal channel for application marketing
and distribution.
Android Ecosystem

Android ecosystem is nothing but the relationship between Users,


Developers/Programmers, and Hardware equipment makers, the Android
ecosystem is nothing but the mutual dependence between Users, Developers,
and equipment makers. they are independent of each other so one cannot exist
without the other.

The main block of the android ecosystem is:

1. Android User
2. Developer
3. Equipment Maker

1. Android User (Users buy handsets and software Application):


Android users have more space for customizability for their android devices.
Android users are smarter than other users and they are perceived to have
greater levels of support. Android users are also more likely to prefer saving
their cost and love the openness of the platform also they like to customize their
device. Android users are fancier to prefer saving money and also android user
like customizing their android handset/device

2. Developers (sell Application):


Android Developers are the professional software developer in designing
applications as well as developing applications for Android. Some of the
following tasks where an android developer can play his role in the
development of android apps:
3. Equipment Maker:
Android equipments are available in the market in a huge amount.

Smartwatches: A smartwatch is a handheld, wearable device that closely


relates a wristwatch or other time device. In addition to telling time, many
smartwatches are wireless connectivity oriented such as Bluetooth capable. The
traditional watch becomes, in effect, a wireless Bluetooth technology extending
the capabilities of the wearer's smartphone to the watch.

Smart TV: An Android TV box is a small computer that plugs into any TV and
gives the user the ability to stream content, locally and online. Apps can be
downloaded from the Google Play Store, installed, and do most anything a
standard computer can do from streaming videos to writing an email.

Smart Speakers: Smark speakers are booming in the market now, Smark
speakers like Google Home, Alexa, We can control our android device via voice
using these smart speakers.

Android Features

Android is a powerful operating system competing with Apple 4GS and


supports great features. Few of them are listed below –
Features Description
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, 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 are resizable, so users can expand them to show more
widgets 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
Android Beam A popular NFC-based technology that lets users instantly
share, just by touching two NFC-enabled phones together

Multi- Android supports multiple languages, also supports the single


Language direction and bi-directional text

Android Architecture

Android architecture contains different number of components to support any


android device needs. Android software contains an open-source Linux Kernel
having collection of number of C/C++ libraries which are exposed through an
application framework services.

Among all the components Linux Kernel provides main functionality of


operating system functions to smartphones and Dalvik Virtual Machine
(DVM) provide platform for running an android application.

The main components of android architecture are following:-

 Applications
 Application Framework
 Android Runtime
 Platform Libraries
 Linux Kernel
Applications –

Applications is the top layer of android architecture. The pre-installed


applications like home, contacts, camera, gallery etc and third party
applications downloaded from the play store like chat applications, games etc.
will be installed on this layer only.
It runs within the Android run time with the help of the classes and services
provided by the application framework.
Application framework –

Application Framework provides several important classes which are used to


create an Android application. It provides a generic abstraction for hardware
access and also helps in managing the user interface with application
resources. Generally, it provides the services with the help of which we can
create a particular class and make that class helpful for the Applications
creation.

It includes different types of services activity manager, notification manager,


view system, package manager etc. which are helpful for the development of
our application according to the prerequisite.

Application runtime –

Android Runtime environment is one of the most important part of Android. It


contains components like core libraries and the Dalvik virtual machine(DVM).
Mainly, it provides the base for the application framework and powers our
application with the help of the core libraries.

Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a


register-based virtual machine and specially designed and optimized for
android to ensure that a device can run multiple instances efficiently. It
depends on the layer Linux kernel for threading and low-level memory
management. The core libraries enable us to implement android applications
using the standard JAVA or Kotlin programming languages.
Platform libraries –

The Platform Libraries includes various C/C++ core libraries and Java based
libraries such as Media, Graphics, Surface Manager, OpenGL etc. to provide a
support for android development.

 Media library provides support to play and record an audio and video
formats.
 Surface manager responsible for managing access to the display subsystem.
 SGL and OpenGL both cross-language, cross-platform application program
interface (API) are used for 2D and 3D computer graphics.
 SQLite provides database support and FreeType provides font support.
 Web-Kit This open source web browser engine provides all the
functionality to display web content and to simplify page loading.
 SSL (Secure Sockets Layer) is security technology to establish an
encrypted link between a web server and a web browser.
Linux Kernel –
Linux Kernel is heart of the android architecture. It manages all the available
drivers such as display drivers, camera drivers, Bluetooth drivers, audio
drivers, memory drivers, etc. which are required during the runtime.

The Linux Kernel will provide an abstraction layer between the device
hardware and the other components of android architecture. It is responsible
for management of memory, power, devices etc.

The features of Linux kernel are:

 Security: The Linux kernel handles the security between the application and
the system.
 Memory Management: It efficiently handles the memory management
thereby providing the freedom to develop our apps.
 Process Management: It manages the process well, allocates resources to
processes whenever they need them.
 Network Stack: It effectively handles the network communication.
 Driver Model: It ensures that the application works properly on the device
and hardware manufacturers responsible for building their drivers into the
Linux build.

You might also like