Android

flosssnailsMobile - Wireless

Dec 10, 2013 (3 years and 10 months ago)

90 views

VINOTH GEORGE.C

B.Tech (IT)

1. Introduction


What is Android?


A software platform and open source operating system for
mobile devices




Based on the Linux kernel(2.6)




Developed by Google and later the Open Handset
Alliance (OHA)




Allows writing managed code in the Java language




Possibility to write applications in other languages and
compiling it to ARM native code




Unveiling of the Android platform was announced on 5
November 2007 with the founding of OHA



2. Smart Phone OS


Symbian


Windows Mobile


RIM Blackberry OS


Apple
iOS


Google Android


Palm
WebOS


Windows Phone 7



What is the Open Handset Alliance (OHA)?






It's a consortium of several companies. Comprises
handset manufacturers, software firms, mobile operators,
and other manufactures and funding companies



Devoted to advancing open standards for mobile devices




Develop technologies that will significantly lower the cost
of developing and distributing mobile devices and services



Android Software Updates


Android 1.0


G1


1.5


Cupcake


1.6


Donuts (CDMA support)


2.0


Éclair (Droid introduced with Éclair)


2.2


Froyo


2.3 Gingerbread (SDK released 2 weeks ago and source
will follow soon)


API Levels used by apps to identify software version on
the device


Android apps are generally forward compatible with
newer version, but not necessarily backwards
compatible

3. Features


software stack for mobile devices


incl. OS, middleware and key applications


Open source


source code is open and contributions are
welcome


application framework enabling reuse/replacement of apps


Dalvik

virtual machine optimized for mobile


integrated browser based on
webkit


Optimized graphics


2D graphics library, 3D based on OPEN
GL ES


SQLite

for data storage(RDBMS)


Media support (MPEG4, H.264, MP3, AAC, JPG, PNG,…)


Support for radio interfaces, Bluetooth,
WiFi
, 3G, 4G, EDGE,
GPRS Camera, GPS, accelerometer


Software Development Kit (SDK)


Preinstalled applications from Google (GMS)


Gmail, Maps, Search, Voice Search,
Youtube



User interface controls and widgets


User interface layout


Secure networking and web browsing


Structured storage and relational databases (SQLite RDBMS)


2D and 3D Graphics SGL and OpenGL


Audio and visual media support


Access to optional hardware (GPS)

4. Packages

Android makes mobile Java easier

Well, sort of…





2.1 Hardware





Android is not a single piece of hardware; it's a complete, end
-
to
-
end
software platform that can be adapted to work on any number of hardware
configurations. Everything is there, from the
bootloader

all the way up to the
applications.



2.2 Operating System(s)





Android uses Linux for its device drivers, memory management, process
management, and networking.




The next level up contains the Android native libraries. They are all
written in C/C++ internally, but you’ll be calling them through Java
interfaces. In this layer you can find the Surface Manager, 2D and 3D
graphics, Media
codecs
, the SQL database (
SQLite
), and a native web
browser engine (
WebKit
).




Dalvik

Virtual Machine.
Dalvik

runs
dex

files, which are
coverted

at
compile time from standard class and jar files.




All applications written in Java and converted to the
dalvik

executable .
dex


Every android app runs its own process, with its own instance
of the
dalvik

virtual machine


Not a traditional JVM, but a custom VM designed to run
multiple instances efficiently on a single device


VM uses
linux

kernel to handle low
-
level functionality incl.
security, threading, process and memory management



Dalvik

VM

Android is growing

Does not include iTouch or iPad, as not smartphones

Uneven distribution of OS by regions

Bruce Scharlau, University of Aberdeen, 2010

Android applications are
compiled to
Dalvik

bytecode

Write app in Java

Compiled in Java

Transformed to Dalvik bytecode

Linux OS


Loaded into Dalvik VM

Software Stack


Linux kernel


Libraries


Android run time


core libraries


Dalvik virtual machine


application layer


application protocol

Android Architecture

Android Application
Development

Eclipse IDE

Android

SDK

Android

Emulator

Android

Mobile

Device

Android development

Android
Manifest

Resource
XML

Java Source

Generated
Class

Java
Compiler

Android
Libraries

.dex

File

Dalvik

VM

2.3 Security



Android is a multi
-
process system, in which each application (and
parts of the system) runs in its own process. Most security between
applications and the system is enforced at the process level through
standard Linux facilities, such as user and group IDs that are
assigned to applications.


Additional finer
-
grained security features are provided through a
"permission" mechanism that enforces restrictions on the specific
operations that a particular process can perform, and per
-
URI
permissions for granting ad
-
hoc access to specific pieces of data.








2.4 Performance




3.1 Development requirements




Java




Android SDK




Eclipse IDE (optional)





Software Development

artesis

2008 |
20


3.2 IDE and Tools



Android SDK



Class Library


Developer Tools


dx


Dalvik Cross
-
Assembler


aapt


Android Asset Packaging Tool


adb


Android Debug Bridge


ddms


Dalvik Debug Monitor Service


Emulator and System Images


Documentation and Sample Code



Eclipse IDE + ADT (Android Development Tools)



Reduces Development and Testing Time


Makes User Interface
-
Creation easier


Makes Application Description Easier





3.3 Programming Language(s)



Java


officially supported




C/C++


also possible but not supported



Application Framework


Rich, extensible set of Views


apps can inclused lists, grids, text boxes, buttons, web browser


Content Providers


allows data access from other applications or share own data


Resource Manager


access to localized strings, graphics, layout files


Notification Manager


enables custom alerts to be displayed in status bar


Activity Manager


Manages lifecycle of applications and provides navigation backstack

Application Fundamentals


Activities


application presentation layer


Services


invisible components, update data sources, visible activities, trigger notifications


perform regular processing even when app is not active or invisible


Content Providers


shareable data store


Intents


message passing framework


broadcase messages system wide, for an action to be performed


Broadcast receivers


consume intent broadcasts


lets app listen for intents matching a specific criteria like location


Notifications


Toast notification


Status Bar Notification


Dialog notification



Client apps


Developed using the Android SDK and installed on user devices


Compiled Java code, with data and resource


bundled by Android
Asset Packaging tool (AAPT) into Android package or .apk


All applications have Android Manifest file in its root directory


provides essential information about app


Could be installed directly on phone, but necessary to be distributed
thru Market

Web Apps


An alternative to standalone apps


Developed using web standards and accessed through browser


nothing to install on devices


Mixing client and web apps is also possible


Client apps can
embed web pages using “Webview” in Android app


SDK


Android APIs, Full Documentation and Sample code


Development tools


Dalvik Debug Monitor Service (DDMS)


Android Debug Bridge (ADB)


Android Emulator


Online support and blog


Native Development Kit also available


allows developers to implement parts of apps in native
-
code
languages like C/C++


Plug in available to use Eclipse integrated development
environment


Developer forums and developer phones from Google, MOTO Dev
studio from Motorola





4.1 Advantages




There are a host of advantages that Google’s Android will derive from being an
open source software
. Some of the advantages include:



The ability for anyone to customize the Google Android platform


The consumer will benefit from having a wide range of mobile applications to
choose from since the monopoly will be broken by Google Android


Men will be able to customize a mobile phones using Google Android platform
like never before


Features like weather details, opening screen, live RSS feeds and even the
icons on the opening screen will be able to be customized


As a result of many mobile phones carrying Google Android, companies will
come up with such innovative products like the location


In addition the entertainment functionalities will be taken a notch higher by
Google Android being able to offer online real time multiplayer games



©
artesis

2008 |
28

4.2 Limitations



Bluetooth limitations

o
Android doesn't support:


Bluetooth stereo


Contacts exchange


Modem pairing


Wireless keyboards



But it'll work with Bluetooth headsets, but that's about it



Firefox Mobile isn't coming to Android


Apps in Android Market need to be programmed with a custom form of Java


→ Mozilla and the Fennec won't have that




4.3 Future possibilities



Google Android Sales to Overtake iPhone in 2012


The OHA is committed to make their vision a reality: to deploy the Android
platform for every mobile operator, handset manufacturers and developers to
build innovative devices


Intel doesn’t want to lose ownership of the netbook market, so they need to
prepare for anything, including Android


Fujitsu launched an initiative to offer consulting and engineering expertise to
help run Android on embedded hardware, which aside from cellphones, mobile
internet devices, and portable media players, could include GPS devices, thin
-
client computers and set
-
top boxes.


More Android devices are coming and some will push the envelope even further