3. What is Android?
Android is a software
stack for mobile devices
that includes an operating
system, middleware and
key applications.
Monday, March 7, 20163
10. Android S/W Stack - Application
Android provides a set of core applications:
Email Client
SMS Program
Calendar
Maps
Browser
Contacts
Entertainment
All applications are written using the Java language.
Monday, March 7, 201610
11. Android S/W Stack – App Framework
Enabling and simplifying the reuse of
components
Developers have full access to the same
framework APIs used by the core applications.
Users are allowed to replace components.
Monday, March 7, 201611
12. Android S/W Stack – App Framework (Cont.)
Features
Feature Role
View
System
Used to build an application, including lists, grids, text
boxes, buttons, and embedded web browser
Content
Provider
Enabling applications to access data from other
applications or to share their own data
Resource
Manager
Providing access to non-code resources (localized strings,
graphics, and layout files)
Notification
Manager
Enabling all applications to display customer alerts in the
status bar
Activity
Manager
Managing the lifecycle of applications and providing
a common navigation back stack
Monday, March 7, 201612
13. Android S/W Stack - Libraries
Including a set of C/C++ libraries used by
components of the Android system
Exposed to developers through the Android
application framework
Monday, March 7, 201613
14. Android S/W Stack - Runtime
Core Libraries
Providing most of the functionality available in the core
libraries of the Java language
APIs
Data Structures
Utilities
File Access
Network Access
Graphics
Etc.
Monday, March 7, 201614
15. Android S/W Stack – Runtime (Cont.)
Dalvik Virtual Machine
Providing environment on which every Android
application runs
Each Android application runs in its own process, with its own
instance of the Dalvik VM.
Dalvik has been written such that a device can run multiple VMs
efficiently.
Register-based virtual machine
Monday, March 7, 201615
16. Android S/W Stack – Runtime (Cont.)
Dalvik Virtual Machine (Cont.)
Executing the Dalvik Executable (.dex) format
.dex format is optimized for minimal memory footprint.
Compilation
Relying on the Linux Kernel for:
Threading
Low-level memory management
Monday, March 7, 201616
17. Android S/W Stack – Linux Kernel
Relying on Linux Kernel 2.6 for core system services
Memory and Process Management
Network Stack
Driver Model
Security
Providing an abstraction layer between the H/W and the rest of the S/W
stack
Monday, March 7, 201617
18. Monday, March 7, 201618
Android
Versions
Name API Level Kernel
Version
1.5 Cupcake 3 2.6.27
1.6 Donut 4 2.6.29
2.0/1 Eclair 5-7 2.6.29
2.2 X Froyo 8 2.6.32
2.3 X Gingerbread 9, 10 2.6.35
3.0 Honeycomb 11-13 2.6.36
4.0 Ice Cream Sandwich 14, 15 3.0.1
4.1 X Jelly Bean 16 3.0.31
4.2 X Jelly Bean 17 3.4.0
4.3 Jelly Bean 18 3.4.39
4.4 Kit Kat 19, 20 3.10
5.0 Lollipop 21, 22 3.16.1
6.0 Marshmallow 23 3.18.10
20. Security and privacy
Android applications run in a sandbox, an isolated area of the system that
does not have access to the rest of the system's resources, unless
access permissions are explicitly granted by the user when the
application is installed.
Before installing an application, Play Store displays all required
permissions: a game may need to enable vibration or save data to an SD
card, for example, but should not need to read SMS messages or access
the phonebook.
After reviewing these permissions, the user can choose to accept or
refuse them, installing the application only if they accept.
He sandboxing and permissions system lessens the impact of
vulnerabilities and bugs in applications, but developer confusion and
limited documentation has resulted in applications routinely requesting
unnecessary permissions, reducing its effectiveness.
Monday, March 7, 201620
21. Google has now pushed an update to Android Verify Apps feature, which
will now run in background to detect malicious processes and crack them
down.
Access to the App Ops was later restricted by Google starting with Android
4.4.2 with an explanation that the feature was accidentally enabled and
not intended for end-users; for such a decision, Google received criticism
from the Electronic Frontier Foundation. I
individual application permissions management, through the App Ops or
third-party tools, is currently only possible with root access to the device.
Monday, March 7, 201621
23. “Android is an most efficient,
powerful and popular operating
system in the mobile phone and
other electronics components
which we use in daily routine
life”
Monday, March 7, 201623