THE ANDROID OPERATING
SYSTEM
WHAT IS ANDROID?
Android is a mobile operating system (OS) based
on the Linux kernel and currently developed by
Google.
Android is designed primarily for touch screen
mobile devices such as smart phones and
tablet.
Android is the most widely used mobile OS and,
as of 2013, the highest selling OS overall.
Android devices sell more than Microsoft
Windows, Mac OS X devices
WHY ANDROID?
A simple and powerful SDK.
No licensing, distribution, or development fees
Development over many platform Linux, Mac
OS, windows
Excellent documentation
Java-based, easy to import 3rdparty Java library
MOBILE FORM FACTORS
Form factor refers to a mobile phone's size,
shape, and style, as well as the layout and
position of the phone's major components.
There are three major form factors seen in
mobile phones:
Bar phones
Brick
Touch Screen
Phablet
Flipphones
Sliders.
VERSIONS OF ANDROID
Alpha (1.0)
Beta (1.1)
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.1)
KitKat (4.4–4.4.4)
KitKat with wearable extensions (4.4W.1-4.4W.2)
Lollipop (5.0–5.0.2)
APPLICATIONS AND .APK FILES
Applications ("apps"), that extend the
functionality of devices, are written primarily
in the Java programming language using the
Android software development kit (SDK).
The SDK includes a comprehensive set of
development tools, including a debugger,
software libraries, a handset emulator,
documentation, sample code, and tutorials.
APPLICATIONS AND .APK FILES
Android application package (APK) is the
package file format used to distribute and
install application software into Android
devices.
To make an APK file, a program for Android is
first compiled, and then all of its parts are
packaged into one file. An APK file contains
all of that program's code (such as .dex files),
resources, assets, certificates, and manifest
file.
PROCESS ARCHITECTURE
THE ROLE OF JAVA
Java is used to develop Android apps through
Android SDK.
Java is a known language, developers know it
and don't have to learn it.
Large number of development tools for Java.
Several mobile phones already used Java ME,
so Java was known in the industry.
On the byte-code level, Android doesn't use
Java. The source is Java, but it doesn't use a
JVM.
HELLO, DALVIK
Dalvik is the virtual machine that is used by
Android. It is generally thought of as a java
virtual machine.
Dalvik VM is a register based VM, as opposed
to Java VM, which are stack based.
Accordingly, it uses a completely different
bytecode than java. However, the Android
SDK includes the dx tool to translate java
bytecode to dalvik bytecode, that is why you
are able to write Android applications in java.
HELLO, DALVIK
WHAT'S IN, WHAT'S OUT
Alpha (1.0)
Beta (1.1) [Android Browser, Google map
with Phone’s GPS, Sync our contacts.]
Cupcake (1.5) [Shortcuts, Widgets, Video
recording, Bluetooth, Web Browser gets
speed boost.]
Donut (1.6) [Support for different screens
resolution and Google Map Navigation.]
Eclair (2.0–2.1) [Support for multiple Google
Accounts, Camera suppport like zoom, flash,
color effects etc.]
WHAT'S IN, WHAT'S OUT
Froyo (2.2–2.2.3) [Portable WiFi Hotspot,
Speedier Web surfing, Better Bluetooth
compatibility with devices.]
Gingerbread (2.3–2.3.7) [Front facing
Camera, Download Manager, UI elements
such as Notification Bar.]
Honeycomb (3.0–3.2.6) [Home Screen
Animations, Bigger Widgets, Tabbed
Browsing, Multi-touch keyboard etc.]
Ice Cream Sandwich (4.0–4.0.4) [Faster
Browser, Data Traffic Monitor, Face
recognition, Action Bar etc.]
WHAT'S IN, WHAT'S OUT
Jelly Bean (4.1–4.3.1) [View photos in Film
Strip view, More information added in
Notification, Politely movement of Widgets
and Apps if newly installed etc.]
KitKat (4.4–4.4.4) [Better memory
management, Printing, Improved lock screen if
audio/video is getting played etc.]
KitKat with wearable extensions (4.4W.1-
4.4W.2) [Smart Watches, GPS support in same
etc.]
Lollipop (5.0–5.0.2) [Apps security through
PIN, app backup through NFC, Updated
notification screen etc.]
SERVICES
Service is a key component in developing
Android app.
Service in Android runs in background, they
don’t have an interface and have a life cycle
very different from Activities.
A typical example of the first case is an app
that required to download data from a
remote server, in this case we can have
Activity that interact with a user and starts a
service that accomplishes the work in
background while the user can use the app
and may be when the service finishes sends
a message to the user.
SERVICES
There are some pros and cons of services,
that would be described later.
It takes 2 forms.
A Service is started when a application
component such as an activity invokes it by
calling startService(). Once started, a service can
run in the background indefinitely.
A service is "bound" when an application
component binds to it by calling bindService().
USER INTERFACE
Android applications user interfaces are
defined using layouts.
There are a number of different types of layout
types tat can be used to organize controls on a
screen, or portions of a screen.
Layout can be defined using XML resources, or
programmatically at run time in Java.
Alternative layouts can be loaded under
special circumstances, such as to provide an
alternative user interface in portrait versus
landscape mode.
Finally, designing good layouts is important for
application performance.
MEMORY AND STORAGE
RAM: volatile, run-time memory for app
execution.
Internal Memory: It is the memory that is
installed by the manufacturer. Used for
phone capabilities, app installations and their
data, not available to the device user. wont
be visible even in the file explorer, [unless
your device is rooted]. This memory is always
available but if it is full some important
phone features may have problems to work
(for example on Android 2.2 Devices you
won’t receive Text Messages if memory is
below 20MB).
MEMORY AND STORAGE
Internal SD Card: Used to save all types of
files and media. Accessible to the user as
well as apps. Visible in the file explorer.
External SD Card: memory that is supplied by
an SD-Card. If you save an App on the SD-
Card this app won't work if anymore if the
SD-Card is removed or accessed on another
device via USB. Therefore if your app has
alarm features or a desktop widget those
won't work while the external memory is not
available, so if those are important features
forbid saving to external memory in your
manifest.
MEMORY AND STORAGE
If you save data from your app you can also
write to external storage. This way you can
leave data on the phone that is not deleted
once the app is deleted, but external
memory has no right management, every
app can read, or delete your data.
OPERATING SYSTEM FEATURES
Android comes with Google Play which is an
online software store.
It was developed by Google, it allows Android
users to select and download applications
developed by third party developers and use
them. There are around 2.0 lack+ games,
application and widgets.
Messaging [SMS + MMS]
Web Browser
Voice based features
Multi-touch
Multitasking
OPERATING SYSTEM FEATURES
Screen Capture
Video calling
Multiple language support
Bluetooth
Tethering
Streaming media support
Media support