Android Operating System
Android is an open source operating
system, initially developed by
Android, Inc which Google later
bought in 2005.
Linux based (3.4.10 kernel) OS.
Can be programmed in C/C++ but
most app development is done in Java
(Java access to C Libraries via JNI
(Java Native Interface))
In last Quarter of 2013, Android
account for 81.3 % of global
Open Handset Alliance
The Open Handset Alliance (OHA) is
a consortium of 84 firms to develop open
standards for mobile devices.
include Google, HTC, Sony, Dell, Intel, Motorola, Q
ualcomm, Samsung Electronics, LG Electronics
, Texas Instruments.
Competes against Apple, Microsoft, Nokia (Symbian), HP (formerly Pa
Electronics/ Intel (Tizen, bada), and Blackberry.
What made Android so popular?
(From developers point of view)
Global partnerships and large installed base
Powerful development framework
Open marketplace for distributing your apps
Free Apps & Advertisements.
Features – Open Source
device manufacturers were not
supporting third party firmware.
After the US government declared “Jailbreaking”
as legal, manufacturers and carriers have
softened their position regarding 3rd party
Cyanogen Mod, is the most popular custom
Features – Security & Privacy
Android applications run in a
Permissions are provided to the
application by the user while
installing them from Play Store
Google uses “Google Bouncer”
Only 0.5 % of malware had
come from Google Play Store.
Features – Memory Management
manages RAM to keep power
consumption in minimum level.
Though it supports multitasking, when memory is
low, the system will kill apps that have been
inactive for a while, in reverse order of usage.
Features - Hardware Support
Main Hardware is 32 bit ARM v7 Architecture.
Graphics Processing Unit (GPU)
Connectivity Options (3G ,4G LTE, WiFi, Bluetooth)
Ambient light sensor
Touch / Pressure Sensor
Finger Print Scanner and so on…
Demo on Sample Android App
Dalvik virtual Machine
• Application virtual Machine or Managed Runtime
Environment currently used in Android for running
• The compact Dalvik Executable format is designed
to be suitable for systems that are constrained in
terms of memory and processor speed.
Android's ART virtual machine
• Introduced with Android 4.4
• It uses Ahead-of-time (AOT) process in which the
bytecode is pre-compiled into machine language at
the time of installation
Google Android Open Accessory
• Accessories use the (AOA) protocol to
communicate with Android devices, over a
USB cable or through a Bluetooth
• Accessory Development Kit (Arduino)
• Arduino based boards.
How Application development is made
easier and keeps in par in with latest
3G & 4G Connectivity (Gobi)
•It provides a common software interface (API) for developers to
connect, locate, and manage the broadest range of 3G/4G devices in the
•Tap into the location functionality within Gobi to include services such as driving
directions, asset tracking, anti-theft, and enhanced commerce within your mobile
Computer Vision (FastCV)
•FastCV is a mobile-optimized computer vision (CV) library for developers of
sophisticated CV apps, CV middleware developers and CV app framework
•FastCV will enable you to add new user experiences into your camera-based
•Face detection, tracking and recognition
•Text recognition and tracking
Context Aware (Gimbal)
•Gimbal is a context aware and proximity platform utilizing geofencing, microlocation, beacons enabled with Bluetooth Smart technology, interest sensing
and consumer privacy controls.
•A user’s mobile app can be enabled to look for the beacon’s transmission.
When it’s within physical proximity to the beacon and detects it, the app can
notify the customer of location-relevant content, promotions, and offers.
Mobile Gaming & Graphics
•An SDK to optimize for faster frame
rates, smoother rendering and longer
•Designed for everything from 3D rendering
to high-end effects.
tools, libraries, samples, documentation, an
d tutorials for working with the OpenGL
ES, DirectX, OpenCL, and OpenSL API’s.
•Create unique apps and services by including the ability for devices to connect
via ad-hoc, peer networks using P2P technology. Nearby devices can
communicate directly with one another over Wi-Fi or Bluetooth without the need
to connect to cellular networks
•Samsung’s Chord (All Share)
Augmented Reality - Vuforia SDK
• Faster local detection of targets
• Cloud recognition of up to 1 million targets
• User-defined targets for run-time target
• Cylinder targets – Detection and tracking of
images on a cylindrical surface
• Text recognition – Recognition and tracking of
printed text (words)
• Robust tracking – Augmentations stick to the
target and are not easily lost as the device
• Optimizations that ensure better and more
Open CV – Computer Vision
OpenCV (Open Source Computer Vision library )
It’s a open-source BSD-licensed library
Includes several hundreds of computer vision
It has easy to use Android port called
OpenCV4Android getting very popular nowadays
OpenCV has a modular structure,
It has OpenCV Manager as an Android service
targeted to manage OpenCV library binaries on end
Main modules of OpenCV
core – Defines basic data structures, like
array Mat and basic
functions used by all other modules.
imgproc - Image processing module that(linear and non-linear
image filtering, geometrical image transformations (resize, affine and
perspective warping, generic table-based remapping), color space
conversion, histograms, and so on.)
video - Video analysis module (motion estimation, background
subtraction, and object tracking algorithms.)
calib3d - basic multiple-view geometry algorithms, single and stereo
camera calibration, object pose estimation, stereo correspondence
algorithms, and elements of 3D reconstruction.
features2d - salient feature detectors, descriptors, and descriptor
objdetect - detection of objects and instances of the predefined
classes (for example, faces, eyes, mugs, people, cars, and so on).
highgui - Interface to video capturing, image and video codecs, as
well as simple UI capabilities.
gpu - GPU-accelerated algorithms from different OpenCV modules.
Also like ml(machine learning), objdetect(object detection). etc
Color space conversion
Imgproc.cvtColor(Mat src, Mat dst, int code)
Highgui.imread(String filename, int flags)
Imgproc.equalizeHist(Mat src, Mat dst)
Imgproc.HoughLinesP(Mat image, Mat lines, double
rho, double theta, int threshold)
Imgproc.findContours(Mat image, List<MatOfPoint>
contours, Mat hierarchy, int mode, int method)