Getting started with Android Introduction to android application development session by By @AlSayedGamal #GMansoura
Getting started with AndroidIntroduction to android application development
session byBy @AlSayedGamal
#GMansoura
Agenda
What’s Android. [Business]
No really, what’s android.[Technology]
Android internals.
Hello, Android.
1.What’s Android
Android is software stack for mobile devices that includes an operating system, middleware and kep applications.
HistoryAug 2005
Google acquired Android.
Nov 2007
OHA* announced that Android SDK is available.
Sept 2008
HTC and T-Mobile announced G1
Oct 2008
Android SDK 1.0
Android Market goes live
G1 is available in the retail store.
*OHA is (Open Handset Alliance) including top OEM and operators {Motorolla, intel, htc, T-Mobile, Samsung, LG, Google, etc..
OHAOpen Handset Alliance
Mobile Operators
SemiconductorCommercialization
Software
Handset Manufacturers
Mobile Operators
SemiconductorCommercialization
Software
Handset Manufacturers
Mobile Operators
SemiconductorCommercialization
Software
Handset Manufacturers
Mobile Operators
SemiconductorCommercialization
Software
Handset Manufacturers
OEM
Semi-conductors
Commercialization
Software
Mobile Operators
SemiconductorCommercialization
Software
Handset Manufacturers
operator
Dec 2011
OS Shares worldwide*
52%
17%
15%
11%
2%1%1%
Android SymbianiOS RIMBada MicrosoftOthers
*According to Gartner Nov 2011
Devices (not telephones)
Cellphones
Tablets
TV
more
2.No really, what’s android
Android is based on the almighty linux kernel.
Android comes with great libraries and APIs for your special hardware to make full use of you device.
Android has rich development tool set including emulator, debugging tools, GUI composer,etc..
Android is ready for i18n.
Technical prerequisites for Android development.
Java* = Java SE - Swing - AWT - reflection + some API(s).
HTML5 is an option (nice option if you are going cross platform).
Others (nice for RAD and cross platform).
*We are interested in that option today
Android the platform
Android the OS is the largest part but it’s not everything.
Android emulator and AVD.
DVM (Dalvik Virtual Machine).
ADB (Android Debug Bridge).
3.Android Internals
Android internals
Linux Kernel
DisplayDriver Camera Driver Bluetooth
DriverFlash Memory
DriverBinder (IPC)
Driver
Power ManagementUSB Driver Keypad Driver WiFi Driver Audio
Drivers
Linux Kernel
Libraries
FreeType
SGL SSL
SQLite
WebKit
libc
Surface Manager
OpenGL | ES
MediaFramework
Android Runtime
Dalvik Virtual Machine
Core Libraries
Linux Kernel
Libraries Android Runtime
Application Framework
ViewSystem
Content Providers
Resource Manager GTalk ServiceLocation
Manager
Activity Manager
Package Manager
WindowManager
TelephonyManager
NotificationManager
Linux Kernel
Libraries Android Runtime
Application Framework
Linux Kernel
Libraries
Applications
Home PhoneContacts Browser ...
Everything is an application
Your app is first class citizen
Android development tools
Eclipse ADT plugin
DDMS
AVD
more..
Application building blocks
Activity: Can be considered a screen of your app.
Intent / IntentReciever: set and respond to notifications ot status and can pass messages between activities.
Service: background tasks
ContentProvider: Enable applications to share data
Application Directory Structure
src : your code lives here.
res : your layout and resource files are here.
gen: by name it’s generated content mostly it maps to layouts and resources.
bin : output files and APK (Android Package) executable file.
manifest.xml: general configuration file.
The Android Package
APKmeet the
The APK|--AndroidManifest.xml |-- META-INF | |-- CERT.RSA | |-- CERT.SF | `-- MANIFEST.MF |-- classes.dex |-- res | |-- drawable | | `-- icon.png | `-- layout | `-- main.xml `-- resources.arsc
file.apk
4.Hello, Android Application(s)
5. What next?Giving layout types and drawables more focus.
Developing application as basic as moving data between activities and accessing service or two.
Background services and dealing with system intents.
Using contacts, dictionary and other content providers.
Using database and generally persistence data layer.
Dealing with internet application.
Practice, practice, practice, practice ..!
SummaryAndroid is now and future.
It’s opensource and fun.
Android stack and rich development tools.
Everything is an application and your application is 1st class citizen.
Android application development terminology.
Android development road map.
Questions & Answers
Thank you!