Android is an operating system based on the Linux
Its source code is written in c++,C(CORE) and JAVA.
Android devices boot to the homescreen, the primary
navigation and information point on the device, which is
similar to the desktop found on PCs.
Its an open source operating system and in most devices
with proprietary rights Android's source code is released
by Google under the Apache License 2.0 which allows
everyone to freely modify and distribute Android under
various names except by reusing the "Android"
It is designed primarily for touch screens mobile
devices such as smart phones and tablet
Android's user interface is based on direct
manipulation ,using touch inputs that loosely
correspond to real-world actions, like
swiping, tapping, pinching, and reverse pinching to
manipulate on-screen objects.
Android is popular with technology companies which
require a ready-made, low-cost and customizable
operating system for high-tech devices
The version history of the Android mobile
operating system began with the release of
the Android beta in November 2007.
The first commercial version, Android 1.0,
was released in September 2008. Android is
under ongoing development by Google and
the Open Handset Alliance (OHA), and has
seen a number of updates to its base
operating system since its initial release.
Since April 2009, Android versions have been
developed under a confectionery-themed code
name and released in alphabetical order:
Cupcake (1.5), Donut (1.6), Eclair (2.0–2.1),
Froyo (2.2–2.2.3), Gingerbread (2.3–2.3.7),
Honeycomb (3.0–3.2.6), Ice Cream Sandwich
(4.0–4.0.4), Jelly Bean (4.1–4.3), and KitKat
The most recent major Android update was
KitKat 4.4, which was released to commercial
devices on 22 November 2013
Android OS versions
1.0 September 2008
•1.1 February 2009
•1.5 (Cupcake) April 2009
•1.6 (Donut) September 2009
•2.0/2.1 (Éclair) October 2009
•2.2 (Froyo) May 2010
•2.3 (Gingerbread) December 2010
•3.0/1 (Honeycomb) February/May 2011
•3.2.x July/Sept/Aug/Dec 2011, 3.2.6 Feb 2012
•4.0.x (Ice Cream Sandwich) Oct, Nov, Dec 2011, March 2012
•4.4 (KitKat) September 2013
SMS and MMS are available forms of messaging,
including threaded text messaging and Android
Cloud To Device Messaging (C2DM).
The web browser available in Android is based on
the open-source Blink (previously WebKit) layout
Android has native support for multi-touch
Multitasking of applications, with unique handling of
memory allocation, is available.
Android devices can include still/video cameras,
touchscreens, GPS, accelerometers, gyroscopes,
barometers, magnetometers, dedicated gaming controls,
proximity and pressure sensors, thermometers, accelerated
2D bit blits (with hardware orientation, scaling, pixel
format conversion) and accelerated 3D graphics
Java classes are compiled into Dalvik executables
and run on Dalvik, a specialized virtual machine
designed specifically for Android and optimized for
battery-powered mobile devices with limited
memory and CPU.
What is Concurrency Control?
Concurrency Control ensures that correct
results for concurrent operations are
generated, while getting those results as quickly
What’s the need of concurrency control
To obey or to meet certain consistency rules. When
components that operate concurrently interact by
messaging or by sharing accessed data
(in memory or storage), a certain component's
consistency may be violated by another component.
And to control that violation concurrency control
mechanism is needed.
• Each and every operating systems has their own
concurrency control mechanism to prevent violation.
• Here we will discuss about the concurrency control
mechanism in ANDROID operating system.
• For Android Developer, thread can help to increase
the performance of application.
• Thread is a Concurrent unit of execution.
• Each application has at least one thread running
when it’s started, that thread is called as the main
• Each Thread has their own priority level so the
Android OS can create a schedule when the thread
will be executed. The priority can be set using
How to create?
• There are two ways to execute code in a thread.
• First you can subclass thread class and override the
• Second you can construct a new Thread and then
pass a Runnable to the constructor.
• In either case, the start() method must be called to
actually execute the new thread.
• Nowadays Android phone usually equipped with
multicore processors like HTC one, Xperia Z,
Samsung Galaxy S4, etc.
• To maximize the potential of the phone we can use
multithreading to increase the performance of our
Looping is a class that turns a thread into a pipeline
The Looper is named so because it implements the
loop – takes the next task, execute it,then takes the
next one and so on.
• A Handler allows you to send and
process Message and Runnable objects associated
with a thread's MessageQueue.
• There are two main uses for a Handler:
• (1) to schedule messages and runables to be
executed as some point in the future; and
• (2) to enqueue an action to be performed on a
different thread than your own.
• AsyncTask allows to perform background operations
and publish results on the UI thread without having
to manipulate threads and/or handlers.
• AsyncTask is designed to be a helper class around
Thread and Handler.
How to use
• Asynctask must be subclassed to be used.
• The subclass will have to override at least one
method -> doInBackground(Params…)
• To execute Asynctask you can create a new object
from the class that subclassing asynctask and then
call execute(Params…) method.