3. Android is a mobile operating system developed by
Google. It is based on a modified version of the
Linux kernel and other open source software, and
is designed primarily for touchscreen mobile
devices such as smartphones and tablets. In
addition, Google has further developed Android
TV for televisions, Android Auto for cars, and
Wear OS for wrist watches, each with a
specialized user interface. Variants of Android
are also used on game consoles, digital cameras,
PCs and other electronics.
4. • Founder : Andy Rubin,Rich Miner,Nick Sears,Chris White
• Current Developer : Google, Open Handset Alliance
• Written in : Java (UI), C (core), C++ and others
• OS family : Unix-like (Modified Linux kernel)
• Initial release : 23rd September 2008
• Lateset release : 6th August 2018 [Android 9 Pie]
• Kernel type : Monolithic
• Source model : Open Source
• Default UI : Garphical (multi-touch)
• License : Apache License 2.0, GNU GPL v2
• Official Website : www.android.com
5. History
• Android Inc. was founded in Palo Alto, California, in October 2003 by
Andy Rubin, Rich Miner, Nick Sears, and Chris White.
• The early intentions of the company were to develop an advanced
operating system for digital cameras, and this was the basis of its pitch
to investors in April 2004.
• Rubin had difficulty attracting investors early on, and Android was
facing eviction from its office space. Steve Perlman, a close friend of
Rubin, brought him $10,000 in cash in an envelope, and shortly
thereafter wired an undisclosed amount as seed funding. Perlman
refused a stake in the company, and has stated "I did it because I
believed in the thing, and I wanted to help Andy.”
• In July 2005, Google acquired Android Inc. for at least $50 million. Its
key employees, including Rubin, Miner and White, joined Google as part
of the acquisition.
• At Google, the team led by Rubin developed a mobile device platform
powered by the Linux kernel. Google marketed the platform to handset
makers and carriers on the promise of providing a flexible, upgradeable
system.
6. First Release
• The first commercially available smartphone running Android was the HTC
Dream, also known as T-Mobile G1, announced on September 23, 2008.
• On November 5, 2007, the Open Handset Alliance, a consortium of
technology companies including Google, device manufacturers such as HTC,
Motorola and Samsung, wireless carriers such as Sprint and T-Mobile, and
chipset makers such as Qualcomm and Texas Instruments, unveiled itself,
with a goal to develop "the first truly open and comprehensive platform
for mobile devices”.
• In 2010, Google launched its Nexus series of devices, a lineup in which
Google partnered with different device manufacturers to produce new
devices and introduce new Android versions. The series was described as
having "played a pivotal role in Android's history by introducing new
software iterations and hardware standards across the board", and
became known for its "bloat-free" software with "timely ... updates".
• Google introduced the Pixel and Pixel XL smartphones in October 2016,
marketed as being the first phones made by Google
7. Features
• General Features
Messaging, Auto Correction and Dictionary, Web Browser, Voice-based
features, Multi-touch, Multitasking, Screen capture, TV recording,
Video calling, Multiple language support, Accessibility, etc..
• Connectivity
GSM/EDGE, Wi-Fi, Bluetooth, LTE, CDMA, EV-DO, UMTS, NFC, IDEN,
WiMAX, Tethering, etc..
• Media
Streaming media support, Media support, External storage, etc..
• Hardware Support
Cameras, touchscreens, GPS, accelerometers, gyroscopes, barometers,
magnetometers, proximity and pressure sensors, thermometers, GPU,
etc..
• Other
Java support, Handset layouts, Storage, Native Apps,Instant Apps,
etc..
8. Inferface
• Android's default user interface is mainly 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, along with a virtual keyboard.
• Game controllers and full-size physical keyboards are supported via
Bluetooth or USB.
• The response to user input is designed to be immediate and provides a fluid
touch interface, often using the vibration capabilities of the device to
provide haptic feedback to the user.
• Internal hardware, such as accelerometers, gyroscopes and proximity
sensors are used by some applications to respond to additional user actions,
for example adjusting the screen from portrait to landscape depending on
how the device is oriented, or allowing the user to steer a vehicle in a racing
game by rotating the device, simulating control of a steering wheel.
• Along the top of the screen is a status bar, showing information about the
device and its connectivity. This status bar can be "pulled" down to reveal a
notification screen where apps display important information or updates
9. Hardware
• The main hardware platform for Android is ARM (the ARMv7 and
ARMv8-A architectures), with x86 and x86-64 architectures also
officially supported in later versions of Android.
• Requirements for the minimum amount of RAM for devices
running Android 7.1 range from in practice 2 GB for best
hardware, down to 1 GB for the most common screen, to absolute
minimum 512 MB for the lowest spec 32-bit smartphone.
• Android devices incorporate many optional hardware components,
including cameras, GPS, orientation sensors, dedicated gaming
controls, accelerometers, gyroscopes, barometers,
magnetometers, proximity sensors, pressure sensors,
thermometers, and touchscreens.
• In addition to running on smartphones and tablets, several
vendors run Android natively on regular PC hardware with a
keyboard and mouse
10. Development
• Android is developed by Google until the
latest changes and updates are ready to
be released, at which point the source
code is made available to the Android
Open Source Project (AOSP), an open
source initiative led by Google.
• Android's source code does not contain
the often proprietary device drivers that
are needed for certain hardware
components. The source code is, in turn,
customized and adapted by original
equipment manufacturers (OEMs) to run
on their hardware.
• The AOSP code can be found without
modification on select devices, mainly the
Nexus and Pixel series of devices. The stack of Android Open
Source Project
11. Updates
• Google announces major incremental upgrades to Android on a yearly
basis. The updates can be installed on devices over-the-air. The latest
major release is 9 "Pie".
• The extensive variation of hardware in Android devices causes significant
delays for software upgrades, with new versions of the operating system
and security patches typically taking months before reaching consumers,
or sometimes not at all.
• In 2012, Google began decoupling certain aspects of the operating system
(particularly its core applications) so they could be updated through the
Google Play store independently of the OS. One of those components,
Google Play Services, is a closed-source system-level process providing
APIs for Google services, installed automatically on nearly all devices
running Android 2.2 "Froyo" and higher.
• In May 2017, with the announcement of Android 8.0, Google introduced
Project Treble, a major re-architect of the Android OS framework
designed to make it easier, faster, and less costly for manufacturers to
update devices to newer versions of Android.
12. ANDROID Versions
There were at least two internal releases of the software inside Google.
o Alpha
o Beta
Version 1.0 (no code name)
Linux kernel version : _
Initial release date : September 23, 2008
API level : 1
Version 1.1 (Petit Four)
Linux kernel version : 2.6
Initial release date : February 9, 2009
API level : 2
13. ANDROID 1.5 Cupcake
o Support for 3rd-party virtual keyboards
o Text prediction
o Widgets were enabled
o Video recording and playback
o Copy and paste feature added
Linux kernel version : 2.6.27
Initial release date : April 27, 2009
API level : 3
14. ANDROID 1.6 Donut
o Quick Search Box
o Screen Size Diversity
o Google Play
Linux kernel version : 2.6.29
Initial release date : September 15, 2009
API level : 4
15. ANDROID 2.1 Eclair
o Google maps Navigation
o Home Screen Customisation
o Speech-to-text
Linux kernel version : 2.6.29
Initial release date : October 26, 2009
API level : 5 - 7
16. ANDROID 2.2 Froyo
o Voice Actions
o Portable Hotspot
o Performance
Linux kernel version : 2.6.32
Initial release date : May 20, 2010
API level : 8
17. ANDROID 2.3
Gingerbread
o Gaming APIs
o NFC
o Battery Management
Linux kernel version : 2.6.35
Initial release date : December 6, 2010
API level : 9 - 10
18. ANDROID 3.0 Honeycomb
o Tablet-Friendly Design
o System Bar
o Quick Settings
Linux kernel version : 2.6.36
Initial release date : February 22, 2011
API level : 11 - 13
19. ANDROID 4.0
Ice Cream Sandwich
o Customise Home Screen
o Data usage Control
o Android Beam
Linux kernel version : 3.0.1
Initial release date : October 18, 2011
API level : 14 - 15
20. ANDROID 4.1 Jelly Bean
o Google Now
o Actionable Notifications
o Account Switching
Linux kernel version : 3.0.31 – 3.4.39
Initial release date : July 9, 2012
API level : 16 - 18
21. ANDROID 4.4 KitKat
o Voice : OK Google
o Immersive Design
o Smart Dialler
Linux kernel version : 3.10
Initial release date : October 31, 2013
API level : 19 - 20
22. ANDROID 5.1
Lollipop
o Material Design
o Multiscreen
o Notifications
Linux kernel version : 3.16
Initial release date : November 12, 2014
API level : 21 - 22
23. ANDROID 6.0
Marshmallow
o Now on Tap
o Permission
o Battery
Linux kernel version : 3.18
Initial release date : October 5, 2015
API level : 23
24. ANDROID 7.0 Nougat
o Speaks your languages
o Multi-window view
o Quick switch between apps
o Enjoy simple, high quality VR
o Smarter battery
o Security
Linux kernel version : 4.4
Initial release date : August 22, 2016
API level : 24 - 25
25. ANDROID 8.0
Oreo
o 2x faster moves
o Background limits
o AutoFill
o Picture-in-picture
o Dive into more apps
Linux kernel version : 4.10
Initial release date : August 21, 2017
API level : 26 - 27
26. ANDROID 9.0 Pie
o Adaptive Battery
o Adaptive Brightness
o App Actions
o Slices
o Intuitive Navigation
o Digital Wellbeing
o Dashboard
o App Timers
o Wind Down and Do not Disturb
Linux kernel version : 4.4.107, 4.9.84 & 4.14.42
Initial release date : August 6, 2018
API level : 28
28. A kernel in an operating system—in this
case Android—is the component
responsible for helping your applications
communicate with your hardware.
It manages the system resources,
communicates with external devices
when needed, and so on. Android uses a
variation of the Linux kernel.
A kernel is not the same as a ROM, even
though you install them in mostly the
same way.
A ROM is a bit more all-encompassing.
It's the operating system you use on
your phone, the software your phone
uses to get things done, the kernel is
the bridge between that ROM and
your hardware. All ROMs come with a
kernel installed, but you can install a
third-party one if you like—.
29. • Android's kernel is based on the Linux kernel's long-term support (LTS)
branches. (The actual kernel depends on the individual device.)
• Android's variant of the Linux kernel has further architectural changes
that are implemented by Google outside the typical Linux kernel
development cycle, such as the inclusion of components like device
trees, ashmem, ION, and different out of memory (OOM) handling..
• Google engineer Patrick Brady once stated in the company's developer
conference that,
"Android is not Linux“
"Let me make it simple for you, without Linux, there is no Android".
• “Although Android is built on top of the Linux kernel, the platform has
very little in common with the conventional desktop Linux stack"
Understanding the facts
30. Android File System Structure
• Android uses the Linux file system structure which has a single root
• The flash storage on Android devices is split into several partitions,
such as /system for the operating system itself, and /data for user
data and application installations
• In contrast to desktop Linux distributions, Android device owners
are not given root access to the operating system and sensitive
partitions such as /system are read-only.
• However, root access can be obtained by exploiting security flaws in
Android, which is used frequently by the open-source community to
enhance the capabilities of their devices, but also by malicious
parties to install viruses and malware.
31. Android Partitions
Standard internal memory partitions on Android phones
and tablets are,
• /boot
• /system
• /recovery
• /data
• /cache
• /misc
In addition, there are the SD card partitions.
• /sdcard
• /sd-ext
32. /boot
• This is the partition that enables the phone to boot, as
the name suggests. It includes the kernel and the ramdisk.
• Without this partition, the device will simply not be able
to boot.
• Wiping this partition from recovery should only be done if
absolutely required and once done, the device must NOT
be rebooted before installing a new one, which can be done
by installing a ROM that includes a /boot partition.
33. /recovery
• The recovery partition can be considered as an alternative
boot partition that lets you boot the device into a
recovery console for performing advanced recovery and
maintenance operations on it.
• All Android devices ship with a recovery console that is
basically a partition on the device’s internal memory and
can be booted into.
• The stock recovery of almost all Android devices provides
a few basic yet handy options that allow you to factory
reset your device, clear its cache partition, and recover its
operating system using an official ROM in zip format, but
that’s all you can do with it.
34. /data
• Also called userdata, the data partition contains the user’s
data – this is where your contacts, messages, settings and
apps that you have installed go.
• Wiping this partition essentially performs a factory reset
on your device, restoring it to the way it was when you
first booted it, or the way it was after the last official or
custom ROM installation.
• When you perform a wipe data/factory reset from
recovery, it is this partition that you are wiping.
35. /cache
• This is the partition where Android stores frequently
accessed data and app components.
• Wiping the cache doesn’t effect your personal data but
simply gets rid of the existing data there, which gets
automatically rebuilt as you continue using the device.
36. /misc
• This partition contains miscellaneous system settings in
form of on/off switches.
• These settings may include CID (Carrier or Region ID),
USB configuration and certain hardware settings etc.
• This is an important partition and if it is corrupt or
missing, several of the device’s features will will not
function normally.
37. /sdcard
• This is not a partition on the internal memory of the device but rather
the SD card. In terms of usage, this is your storage space to use as
you see fit, to store your media, documents, ROMs etc. on it.
• Wiping it is perfectly safe as long as you backup all the data you
require from it, to your computer first.
• Though several user-installed apps save their data and settings on the
SD card and wiping this partition will make you lose all that data.
/sd-ext
• This is not a standard Android partition, but has become popular in the
custom ROM scene.
• It is basically an additional partition on your SD card that acts as the
/data partition when used with certain ROMs that have special
features called APP2SD+ or data2ext enabled.
• It is especially useful on devices with little internal memory allotted to
the /data partition.
40. Software stack
• On top of the Linux kernel, there are the middleware, libraries and
APIs written in C, and application software running on an application
framework which includes Java-compatible libraries. Development of
the Linux kernel continues independently of Android's other source
code projects.
• Android uses Android Runtime (ART) as its runtime environment
(introduced in version 4.4), which uses ahead-of-time (AOT) compilation
to entirely compile the application bytecode into machine code upon the
installation of an application.
• In Android 4.4, ART was an experimental feature and not enabled by
default; it became the only runtime option in the next major version of
Android, 5.0.
• Until version 5.0 when ART took over, Android previously used Dalvik as
a process virtual machine with trace-based just-in-time (JIT)
compilation to run Dalvik "dex-code" (Dalvik Executable), which is
usually translated from the Java bytecode.
41. • For its Java library, the Android platform uses a subset of the now
discontinued Apache Harmony project.[179] In December 2015, Google
announced that the next version of Android would switch to a Java
implementation based on the OpenJDK project.
• Android's standard C library, Bionic, was developed by Google
specifically for Android, as a derivation of the BSD's standard C library
code. Bionic itself has been designed with several major features
specific to the Linux kernel. The main benefits of using Bionic instead
of the GNU C Library (glibc) or uClibc are its smaller runtime footprint,
and optimization for low-frequency CPUs.
Software stack
42. Open-source community
• Android's source code is released by Google under an open source
license.
• Its open nature has encouraged a large community of developers and
enthusiasts to use the open-source code as a foundation for community-
driven projects, which deliver updates to older devices, add new
features for advanced users or bring Android to devices originally
shipped with other operating systems.
• These community-developed releases often bring new features and
updates to devices faster than through the official
manufacturer/carrier channels, with a comparable level of quality.
• Community releases often come pre-rooted and contain modifications
not provided by the original vendor, such as the ability to overclock or
over/undervolt the device's processor.
• Example for Community releases of Android are LineageOS, etc..
43. Technical Security Features
• 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, however this may not be possible for pre-installed apps.
• Since February 2012, Google has used its Google Bouncer malware scanner
to watch over and scan apps available in the Google Play store. A "Verify
Apps" feature was introduced in November 2012, as part of the Android 4.2
"Jelly Bean" operating system version, to scan all apps, both from Google
Play and from third-party sources, for malicious behavior.
• Before installing an application, the Google Play store displays a list of the
requirements an app needs to function. After reviewing these permissions,
the user can choose to accept or refuse them, installing the application only
if they accept. In Android 6.0 "Marshmallow", the permissions system was
changed; apps are no longer automatically granted all of their specified
permissions at installation time.
• In August 2013, Google announced Android Device Manager (renamed Find
My Device in May 2017), a service that allows users to remotely track,
locate, and wipe their Android device, with an Android app for the service
released in December.
44.
45. The "Sooner" prototype phone,
running a pre-release version of
Android
HTC Dream or T-Mobile G1,
the first commercially
released device running
Android (2008)