Date post: | 14-Jul-2015 |
Category: |
Engineering |
Upload: | rajesh-jambukia |
View: | 139 times |
Download: | 0 times |
An Introduction to Android
AgendaWhy Mobile App Development?Different Operating SystemsAndroid Devices in the marketAndroid HistoryAndroid VersionsWhat is Android?Android PlatformOpen Handset AllianceOpen Handset MembersAndroid ArchitectureAndroid Development ProcessAndroid Build Process
Why Mobile App Development?Mobile platform is the platform of the future
Double-digit growth in world-wide smart phone ownership
Job market is hotMarket for mobile software rises day by day
Different Operating SystemsSymbian – Nokia – Microsoft
BlackBerry – Research In Motion (RIM)
iOS (known as iPhone OS) – Apple
WebOS – Hewlett Packard (HP)
Bada – Samsung
Windows Mobile - Microsoft
Android Devices in the market
Smart PhonesTabletsE-Reader DevicesNetBooksMP4 PlayersInternet TVs
Android History
Android Inc.founded in Palo Alto,california ,united states in October 2003 by Andy Rubin.
It was developed by Google and later the Open Handset Alliance (OHA).
Android Versions
Version Code name Release date API level
Android 1.0 Apple pie 2008 1
Android 1.1 Banana bread February 9, 2009 2
Android 1.5 Cupcake April 30, 2009 3
Android 1.6 Donut Sept 15, 2009 4
Android 2.0/2.1 Eclair Oct 26, 2009 7
Android 2.2 Froyo May 20, 2010 8
Android 2.3.3–2.3.7 Gingerbread February 9, 2011 10
Android 3.0-3.2.6 Honeycomb February 22, 2011 13
Android 4.0.3–4.0.4 Ice Cream Sandwich December 16, 2011 15
Android 4.1.x Jelly Bean July 9, 2012 16
Android 4.2.x Jelly Bean November 13, 2012 17
Android 4.3 Jelly Bean July 24, 2013 18
Android 4.4 KitKat October 31, 2013 19
Android 5.0 Lollipop October 17, 2014 20
What is Android? It is a open source software platform and operating system
for mobile devices
Android is a software environment built for mobile devices
It is based on the Linux kernel
Developed by Google and later Open Handset Alliance (OHA)
Android application are built in Java language
Android has its own virtual machine called DVM(Dalvik Virtual Machine),which is used for executing the android application
Android platform isComplete:
The android application development began with secure operating system and robust framework for rich application development
Open: The platform is provided through open source licensing,
also we have access to handset features while developing applications
Free: Android applications are free to develop, as Andriod SDK,
ADT, etc required plugins are free
What is Open Handset Alliance? Open Handset Alliance is a consortium of
47 hardware, software, and telecom companies devoted to advancing open standards for mobile devices.
i.e. to deliver the consumer a richer, less expensive and better mobile experience.
OHA’s aim is to Develop technologies that will significantly lower the cost of developing and distributing mobile devices and services.
Open Handset Members Operators
T-Mobile, Telecom Italia, Telefonica, NTT DoCoMo, KDDI, Sprint, China Mobile
Handset Manufacturers HTC, LG, Motorola, Samsung
Semiconductor Companies Audience, Broadcom, Intel, Marvell, NVIDIA, Qualcomm, SiRF,
Synaptics, Texas Instruments Software Companies(Applications)
Ascender, eBay, Esmertec, Google, LivingImage, NMS communications, Packet Video, SkyPop
Commercialization Companies Aplix, TAT, Wind River, Noser
Android ArchitectureBefore starting with Android ArchitectureWhy we are using Linux?
Because Linux kernel is proven core platformIt is reliableIt provides securityHardware driversProcess managementMemory managementPower management
Android ArchitectureFour main Layers of Android architecture are
1. Applications2. Application Framework3. Libraries and Android Runtime4. Linux Kernel
• Linux 2.6 Kernel• Hardware Abstraction Layer (HAL) between
hardware and android software stack• Provides memory management/ Process
management/ Power management• It provides security• Different Driver software's to manage Display,
Camera, Wi-Fi, etc…• IPC – Inter Process Communication
• Android Libraries are develped in C/C++• We cannot access these libraries directly, to access these
libraries we need application framework
Surface Manager – used for display management
Open GL/ES(Open Graphics Library/Extended system)
and SGL(Scalable Graphics Library) – used for 2D/3D Graphics mainly for game development
Media Framework – (PacketVideo)Audio/Video codes(mp3, mpg4)
FreeType – Font rendering
SSL(Secured Socket Layer) – to have secure internet connection
SQLite – Datastore i.e. Database
WebKit – Browser Engine to display webpages
libc – System C libraries
Core Libraries – It is written in Java language. It contains all of the collection classes, utilities, IO.
Dalvik Virtual Machine(DVM)• Register based Virtual Machine• Optimized for Low memory requirements, limited
battery and limited CPU• Designed to allow multiple VM instances to run at once• Every program runs in its own VM instance• Operates on DEX files• Android byte codes are interpreted at runtime by DVM
• This is written in Java language and using Application Framework we develop our Android applications.
Activity Manager – launcher, building block of application, whatever is displayed on the screen
Window manager – It is use to create views and layouts.Content Providers – used to share data of one application
to another. e.g. contacts, call log detailsNotification manger – whenever you get emails, sms,
missed call we get notification i.e. alertsView System – Button, textbox, checkbox, etc whatever
we see is nothing but View system
Resource Manager – We use View, images, audio/video files, xml files, layout files all these additional things we are using are handled by Resource Manger
Location Manger – It helps user to trace through geographical location
Package Manager – It is use to retrieve the data about installed packages on device. Telephony manager – It is use to handle settings of
network connection and all information about services on device.
• Top most layer of android architecture• By default some applications are already available
like calculator, some browser, contacts that is what application layer
Development process of an Android appAndroid apps are built using Java and Android SDK
librariesThe Java code is compiled into Dalvik byte code i.e. .dexThe Dalvik Virtual Machine runs the .dex files
Development process of an Android app
Development process of an Android app
Android application Build ProcessAndroid application are built in Java so first of all we
have Application Source Code that is our own Java programs
If written in other language then using aidl(android interface definition language) tools, will generate Java interfaces
We have images, audio/video files, xml files all these resources in our android application, which are converted into the file called R.java
Who created this R.java then it is aapt (android asset packing tool)
All these Java programs are given to Java compilerJava compiler will create .class files
Android application Build ProcessThese .class files are given to dex(delvik executable tool)
toolsSome other additional class files like Google map class
files are i.e. 3rd Party Libraries and Class Files are also given to Dex tool
Now this Dex tool will create a single dex file.This dex file along with the compiled resources from AAPT
and other additional resources is given to APK BuilderThis APK Builder creates our android application i.e. .apk
file
Android application Build ProcessNow to deploy it we need to follow two more steps
Referenceshttp://developer.android.com/index.htmlhttp://www.android.com
Thank you
- Rajesh Jambukia