SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Android ā€“ Quick Talk
Apps on the Device 
In the past: 
Today: 
Entertainment purpose 
Substantial purchase criteria
Agenda 
ā€¢ Mobile Application Development (MAD) 
ā€¢ Intro to Android platform 
ā€¢ Platform architecture 
ā€¢ Application building blocks 
ā€¢ Development tools 
ā€¢ Hello Android
Why MAD? (Mobile App Development) 
ā€¢ The fact that we can! 
ā€¢ Mobile platform is the platform of the future 
ā–« Double-digit growth in world-wide smartphone ownership3 
ā€¢ Smart Phones 
ā€¢ Internet access anywhere 
ā€¢ Social networking 
ā€¢ Millions of mobile users 
ā€¢ Open standards 
ā€¢ Job market is hot 
ā–« Market for mobile software surges from $4.1 billion in 2009 to 
$17.5 billion by 20121 
ā–« 2010 Dice.com survey: 72% of recruiters looking for iPhone 
app developers, 60% for Android 
ā€¢ Students (and faculty!) are naturally interested!
Why Android? 
ā€¢ A lot of students have them 
ā–« 2010 survey: 22% of college students have Android phone (26% 
Blackberry, 40% iPhone) 
ā–« Gartner survey: Android used on 22.7% of smartphones sold world-wide 
in 2010 (37.6% Symbian, 15.7% iOS) 
ā€¢ Students already know Java and Eclipse 
ā–« Low learning curve 
ā–« Students can use App Inventor for Android 
ā€¢ Transferring app to phone is trivial 
ā–« Can distribute by putting it on the web 
ā–« Android Market for wider distribution 
ā€¢ Itā€™s not 1984
Android Phonesā€¦
Android Tabletsā€¦ 
Android Devices
Android-Powered TV
Android-Powered Microwave
Brief History 
ā€¢ 1996 
ā–« The WWW already had websites with color and images, but, the best 
phones displayed a couple of lines of monochrome text! 
ā–« Enter: Wireless Application Protocol and Markup Language 
WAP : Stripped down bandwidth reduction 
WML : Stripped down HTML for content 
Many issues (WAP = ā€œWait And Payā€) 
Few developers to produce content (it wasnā€™t fun!) 
ā–« Really hard to type in URLs using the small keyboards 
ā–« Data fees frightfully expensive 
ā–« No billing mechanism ā€“ content difficult to monetize 
ā€¢ Other platforms emerged 
ā–« Palm OS, Blackberry OS, J2ME, Symbian (Nokia), BREW, OS X 
iPhone, Windows Mobile
Brief History - Android 
ā€¢ 2005 
ā–« Google acquires startup 
Android Inc. to start Android 
platform 
ā–« Work on Dalvik VM begins 
ā€¢ 2007 
ā–« Open Handset Alliance 
formed to develop open 
standards for mobile devices 
ā–« Early look at SDK 
ā€¢ 2008 
ā–« Google sponsors 1st Android 
Developer Challenge 
ā–« T-Mobile G1 announced 
ā–« SDK 1.0 released 
ā–« Android released open source 
(Apache License) 
ā–« Android Dev Phone 1 released 
ā–« Android Source code 
Published 
ā€¢ 2009 
ā–« SDK 1.5 (Cupcake) 
New soft keyboard with 
ā€œautocompleteā€ feature 
ā–« SDK 1.6 (Donut) 
Support Wide VGA 
ā–« SDK 2.0/2.0.1/2.1 (Eclair) 
Revamped UI, Browser 
ā€¢ 2010 
ā–« Nexus One released to the 
public 
ā–« SDK 2.2 (Froyo) 
Flash support, Tethering 
ā–« SDK 2.3 (Gingerbread) 
UI update, system-wide 
copy-paste
Brief History - Android 
Honeycomb 
Android 3.0-3.2 
ā€¢ 2011 
ā–« SDK 3.0/3.1/3.2 (Honeycomb) for tablets only 
Ice cream Sandwich 
New UI for tablets, support multi-core processors 
SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich) 
Changes to the UI, Voice input, NFC 
Android 4.0+
Distribution of Devices 
Data collected during a 14-day period ending on January 3, 2012 
http://developer.android.com/resources/dashboard/platform-versions.html
The Android Developer Website 
ā€¢ http://developer.android.com 
ā€¢ This could be your homepage from now onā€¦
What is Android? 
ā€¢ A software stack for mobile devices that includes 
ā–« An operating system 
ā–« Middleware 
ā–« Key Applications 
ā€¢ Uses Linux to provide core system services 
ā–« Security 
ā–« Memory management 
ā–« Process management 
ā–« Power management 
ā–« Hardware drivers 
ā€¢ Android Apps are written in Java 
ā€¢ Open Source with an Apache License 
ā€¢ An Open Handset Alliance Project
Open Handset Alliance- a consortium of several companies
Open Handset Alliance - Many more joined 
A business alliance consisting of 
47 companies to develop 
open standards for mobile 
devices
Android Features 
Reuse and replacement of components 
Dalvik virtual machine 
Integrated browser 
Optimized graphics 
SQLite 
Media support 
GSM Telephony 
Bluetooth, EDGE, 3G, and WiFi 
Camera, GPS, compass, and accelerometer 
Rich development environment
Android makes mobile Java easier!! 
Well, sort ofā€¦ 
http://code.google.com/android/goodies/index.html
Android System Architecture
Linux Kernel 
ā€¢ Relying on Linux Kernel 2.6 for core system services 
ā–« Memory and Process Management 
ā–« Network Stack 
ā–« Driver Model 
ā–« Security 
ā–« And other operating system services 
ā€¢ Providing an abstraction layer between the H/W and 
the rest of the S/W stack
Libraries 
ā€¢ C/C++ libraries 
ā€¢ Interface through Java 
ā€¢ Surface manager ā€“ Handling UI Windows 
ā€¢ 2D and 3D graphics 
ā€¢ Media codecs, SQLite, Browser engine, etc 
ā€¢ Only to be called by higher level programs
Android Runtime 
ā€¢ Dalvik VM (Executes .dex) 
ā€¢ Providing environment on which 
every Android application runs 
ā€¢ Each Android application runs in 
its own process, with its own 
instance of the Dalvik VM. 
ā€¢ Device can run multiple VMs 
efficiently. 
ā€¢ Register-based virtual machine Dex 
files 
ā€¢ Compact and efficient than 
class files 
ā€¢ Limited memory and battery 
power 
ā€¢ .dex format is optimized for 
minimal memory footprint. 
ā€¢ Not J2SE/J2ME 
ā€¢ Core Libraries 
ā€“ Providing most of the 
functionality available in the core 
libraries of the Java language 
ā€“ APIs 
ā€“ Data Structures 
ā€“ Utilities 
ā€“ File Access 
ā€“ Network Access 
ā€“ Graphics, Etc
Application Framework 
ā€¢ API interface 
ā€¢ View System - Used to build an application, including lists, grids, text 
boxes, buttons, and embedded web browser 
ā€¢ Content Provider - Enabling applications to access data from other 
applications or to share their own data 
ā€¢ Resource Manager - Providing access to non-code resources (localized strings, 
graphics, and layout files) 
ā€¢ Notification Manager - Enabling all applications to display customer alerts in the 
status bar 
ā€¢ Activity Manager - Managing the lifecycle of applications and providing a common 
navigation backstack 
ā€¢ Enabling and simplifying the reuse of components 
ā–« Developers have full access to the same framework APIs used by the core applications. 
ā–« Users are allowed to replace components.
Applications 
ā€¢ Applications and Widgets: the real programs display 
information and interact with users. 
ā€¢ Built in and user apps 
ā€¢ Can replace built in apps
Application Building Blocks 
ā€¢ Activity 
ā€¢ IntentReceiver 
ā€¢ Service 
ā€¢ ContentProvider
Activities 
ā€¢ Typically correspond to one UI screen 
ā€¢ But, they can: 
ā–« Be faceless 
ā–« Be in a floating window 
ā–« Return a value 
ā€¢ Each user interface screen is represented by an 
Activity class. 
ā€¢ Each activity has its own life cycle. 
ā€¢ Activity uses Intent object to jump between them.
Life cycle of an Activity Application run in their own 
processes (VM, PID) 
Processes are started and 
stopped as needed to run an 
application's components 
Processes may be killed to 
reclaim resources
Intent Receivers 
ā€¢ Components that respond to broadcast ā€˜Intentsā€™ 
ā€¢ Way to respond to external notification or alarms 
ā€¢ Apps can invent and broadcast their own Intent
Intents 
ā€¢ Think of Intents as a verb and object; a description of 
what you want done 
ā–« E.g. VIEW, CALL, PLAY etc.. 
ā€¢ Intent provides late running binding to other apps 
ā€¢ Intent activates activities, services, and broadcast 
receivers. 
ā€¢ Intent can be used in explicit way or implicit way. 
ā€¢ System matches Intent with Activity that can best 
provide the service 
ā€¢ Activities and IntentReceivers describe what Intents they 
can service 
ā€¢ When launch a intent object, framework will match and 
find the qualified components and leave them for users 
to choose which to run.
Intents 
Home 
Contacts 
GMail 
Chat 
Blogger 
ā€œPick photoā€ 
Picasa 
Photo 
Gallery 
Client component makes a 
request for a specific action 
System picks best 
Ncoemw pconmepnot nfoern ttsh acat na cutisoen 
existing functionality Blogger
Services 
ā€¢ Faceless components that run in the background 
ā–« E.g. music player, network download etcā€¦
ContentProviders 
ā€¢ Enables sharing of data across applications 
ā–« E.g. address book, photo gallery 
ā€¢ Client+server architecture 
ā€¢ Provides uniform APIs for: 
ā–« querying 
ā–« delete, update and insert. 
ā€¢ Content is represented by URI and MIME type 
ā€¢ Content Resolver provides API interface for 
applications. 
ā€¢ Content Providers is the server managing the DB 
tables and database content with different 
application.
Security and permissions 
ā€¢ Security in Android follows standard Linux 
guidelines 
ā€¢ Each application runs in its own process 
ā€¢ Application can't disrupt other applications, except 
by explicitly declaring the permissions it 
ā€¢ Finer grained permissions are then granted (revoked) 
per operations 
ā€¢ Each Android package is given its own unique Linux 
user ID
Developing apps 
ā€¢ What are they? 
ā–« Any application that runs on a mobile device 
ā€¢ Types 
ā–« Web apps: run in a web browser 
ā–« HTML, JavaScript, Flash, server-side components, etc. 
ā€¢ Native - Compiled binaries for the device 
ā€¢ Often make use of web services 
ā€¢ Because of the apps, Smartphone(s) become smart!
Development process for an Android app
Android Apps 
ā€¢ Built using Java and new SDK libraries 
ā–« No support for some Java libraries like Swing & AWT 
ā–« Oracle currently suing Google over use 
ā€¢ Java code compiled into Dalvik byte code (.dex) 
ā–« Optimized for mobile devices (better memory management, battery 
utilization, etc.) 
ā€¢ Dalvik VM runs .dex files
Applications Are Boxed 
ā€¢ By default, each app is run in its own 
Linux process 
ā–« Process started when appā€™s code needs to 
be executed 
ā–« Threads can be started to handle time-consuming 
operations 
ā€¢ Each process has its own Dalvik VM 
ā€¢ By default, each app is assigned unique 
Linux ID 
ā–« Permissions are set so appā€™s files are only 
visible to that app
Android Design Philosophy 
ā€¢ Applications should be: 
ā–« Fast 
Resource constraints: <200MB RAM, slow processor 
ā–« Responsive 
Apps must respond to user actions within 5 seconds 
ā–« Secure 
Apps declare permissions in manifest 
ā–« Seamless 
Usability is key, persist data, suspend services 
Android kills processes in background as needed
Leveraging the web 
ā€¢ To keep your apps fast and responsive, consider how 
you can leverage the web 
ā–« What ____________ can be ________ on a server 
or in the cloud? 
Tasks/performed 
Data/persisted 
Data/retrieved 
ā–« Beware, data transfer is also expensive and can be slow
Challenges 
ā€¢ CPU typically runs 500-600 Mhz 
ā€¢ RAM available to an App may only 
be a few megabytes 
ā€¢ Disk (flash) access is very slow 
ā€¢ Lifecycle - apps must pause/quit 
often, and restore to give the 
illusion that they are always 
running 
ā€¢ UI design 
ā€¢ typical screen may be HVGA 
(320x480) 
ā€¢ may be in portrait or landscape 
ā€¢ very high DPI - small text may not 
be readable 
ā€¢ touch resolution is very low (~25 
pixel) 
ā€¢ Network access may be slow and 
(very) intermittent 
ā€¢ Fragmentation of Hardware 
ā–« Different screen resolutions 
ā–« Different screen sizes 
ā–« Different hardware keys 
ā–« Different input methods 
ā€¢ Some have a phone, some not... 
ā–« Some have GPS, some not... 
ā–« Some have 3G, some not... 
ā–« Some have a cam, some not... 
ā–« Some are good, some not... 
ā–« Some are not even phonesā€¦ 
ā€¢ Hardware diversification will 
continue to be harder and harder.
Opportunities 
ā€¢ 100s of millions of mobile phone users 
ā€¢ Very high growth, esp. in Asia 
ā€¢ "Wild wild west" of application development 
ā€¢ think 1985 on the desktop (if you were born by then) 
ā€¢ no dominant 3rd party developers.... yet 
ā€¢ what will the killer app categories be? 
ā€¢ what does it mean to have any app + the internet in 
your pocket? 
ā€¢ You can develop for it today!
Learning 
ā€¢ Reinforce the basics: OOP, decomposition, etc. 
ā€¢ Separation of UI design and functionality 
ā€¢ XML and resource files 
ā€¢ Events and Listeners 
ā€¢ Callback methods 
ā€¢ Threads 
ā€¢ Application of already learnt 
ā–« Java! 
Inheritance, method overriding 
Interfaces, Casting 
Exceptions 
Debugging 
Reading API documentation 
ā–« Eclipse 
Easy to pick up quickly, though
ā€œHello, Androidā€
Creating Your First(?) Android App 
ā€¢ Set up your development environment 
ā€¢ Create a new Android project in Eclipse 
ā€¢ Run it in the emulator 
ā€¢ Debug ensues 
ā€¢ http://developer.android.com/guide/tutorials/hello-world. 
html
1. Set Up Your Android Environment 
ā€¢ http://developer.android.com/sdk 
ā€¢ Install Eclipse 
ā€¢ Install Android SDK (Android libraries) 
ā€¢ Install ADT plugin (Android development tools) 
ā€¢ Create AVD (Android virtual device)
2. Create an Android Project in Eclipse 
ļ¬ File ā†’ New ā†’ Project 
ļ¬ Select ā€œAndroid Projectā€ 
ļ¬ Fill in Project details...
Name that appears 
on device 
Directory 
name 
Class to 
automatically 
create 
Java package 
Android 
version
3. Run the Android Application 
ļ¬ Run ā†’ Run (or click the ā€œRunā€ button) 
ļ¬ Select ā€œAndroid Applicationā€ 
ļ¬ The emulator may take a few minutes to start, so be 
patient! 
ļ¬ You don't need to restart the emulator when you 
have a new version of your application
Hello Worldā€¦
Source 
code 
Auto-generated 
code 
UI 
layout 
String 
constants 
Configuration
HelloAndroid.java 
1 public class HelloAndroid extends Activity { 
2 /** Called when the activity is first created. */ 
3 @Override 
4 public void onCreate(Bundle savedInstanceState) 
5 { 
6 super.onCreate(savedInstanceState); 
7 setContentView(R.layout.main); 
8 } 
9 }
main.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <LinearLayout 
3 xmlns:android="http://schemas.android.com/apk/res/android" 
4 android:orientation="vertical" 
5 android:layout_width="fill_parent" 
6 android:layout_height="fill_parent" 
7 > 
8 <TextView 
9 android:layout_width="fill_parent" 
10 android:layout_height="wrap_content" 
11 android:text="@string/hello " 
12 /> 
13 </LinearLayout>
strings.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <resources> 
3 <string name="hello">Hello World, HelloAndroid! 
4 </string> 
5 <string name="app_name">Hello, Android</string> 
6 </resources>
AndroidManifest.xml 
1 <?xml version="1.0" encoding="utf-8"?> 
2 <manifest 
3 xmlns:android="http://schemas.android.com/apk/res/android" 
4 package="edu.upenn.cis542" 
5 android:versionCode="1" 
6 android:versionName="1.0"> 
7 <application android:icon="@drawable/icon" 
8 android:label="@string/app_name"> 
9 <activity android:name=".HelloAndroid" 
10 android:label="@string/app_name"> 
11 <intent-filter> 
12 <action 
13 android:name="android.intent.action.MAIN" /> 
14 <category 
15 
android:name="android.intent.category.LAUNCHER"/> 
16 </intent-filter> 
17 </activity> 
18 </application> 
19 </manifest>
New Mobile Industry! 
ā€¢ Mobile Payment 
ā€¢ Mobile Advertisement 
ā€¢ Location Based Service 
ā€¢ And the usual Mobileā€¦Voice, Text and Data
Easy to use 
Design 
All-in-one-solutions 
Appstore 
Additional 
software 
No bugs High-class products 
Good performance
Summary 
ā€¢ New world of Possibilitiesā€¦ 
ā€¢ Android seems to be the future of 
mobile OS's and mobile software 
development. 
ā€¢ Android just add fun in making 
phones cooler and development easier. 
ā€¢ Android could easily move its way into 
the market from phones to 
notebooks and desktops 
ā€¢ After 2013, Android will dominate the 
app market
Backup Slides
Mobile Devices: Advantages 
(as compared to fixed devices) 
ā€¢ Always with the user 
ā€¢ Typically have Internet access 
ā€¢ Typically GPS enabled 
ā€¢ Typically have accelerometer & compass 
ā€¢ Most have cameras & microphones 
ā€¢ Many apps are free or low-cost
Mobile Devices: Disadvantages 
ā€¢ Limited screen size 
ā€¢ Limited battery life 
ā€¢ Limited processor speed 
ā€¢ Limited and sometimes slow network access 
ā€¢ Limited or awkward input: soft keyboard, phone 
keypad, touch screen, or stylus 
ā€¢ Limited web browser functionality 
ā€¢ Range of platforms & configurations across devices
Mobile Applications 
ā€¢ What are they? 
ā–« Any application that runs on a mobile device 
ā€¢ Types 
ā–« Web apps: run in a web browser 
HTML, JavaScript, Flash, server-side components, etc. 
ā–« Native: compiled binaries for the device 
Often make use of web services
Platform Highlights 
ā€¢ The Android platform introduces many features for 
users and developers ā€“ Making Android even better 
ā€¢ Performance Improvements 
ā€¢ Faster Camera start-up and image capture 
ā€¢ Much faster acquisition of GPS location (powered by 
SUPL AGPS) 
ā€¢ Smoother page scrolling in Browser 
ā€¢ Speedier GMail conversation list scrolling
Platform Highlights 
ā€¢ On-screen soft keyboard 
ā–« Works in both portrait and landscape orientation 
ā–« Support for user installation of 3rd party keyboards 
ā–« User dictionary for custom words 
ā€¢ Home screen 
ā–« Widgets 
Bundled home screen widgets include: analog clock, calendar, music 
player, picture frame, and search 
ā–« Live folders 
ā€¢ Camera & Gallery 
ā€¢ Video recording 
ā€¢ Video playback (MPEG-4 & 3GP formats) 
ā€¢ Bluetooth 
ā–« Stereo Bluetooth support (A2DP and AVCRP profiles) 
ā–« Auto-pairing 
ā–« Improved hands free experience
Platform Highlights 
ā€¢ Browser 
ā–« Updated with latest Webkit browser 
JavaScript engines 
ā–« Copy 'n paste in browser 
ā–« Search within a page 
ā–« User-selectable text-encoding 
ā€¢ UI changes include: 
ā–« Unified Go and Search box 
ā–« Tabbed bookmarks/history/most-visited 
screen 
ā€¢ Contacts 
ā–« Shows user picture for Favorites 
ā–« Specific date/time stamp for events in call 
log 
ā–« One-touch access to a contact card 
from call log event 
ā€¢ System 
ā–« New Linux kernel 
ā–« SD card file system auto-checking and 
repair 
ā€¢ SIM Application Toolkit 1.0 
ā€¢ Google applications (Android SDK) 
ā–« View Google Talk friends' status in Contacts, 
SMS, MMS, GMail, and Email applications 
ā–« Batch actions such as archive, delete, and 
label on Gmail messages 
ā–« Upload videos to YouTube 
ā–« Upload photos on Picasa
Building and Running Android Apps

Weitere Ƥhnliche Inhalte

Was ist angesagt?

. Design Decisions: Developing for Mobile - The Template Experience Project
. Design Decisions: Developing for Mobile - The Template Experience Project. Design Decisions: Developing for Mobile - The Template Experience Project
. Design Decisions: Developing for Mobile - The Template Experience ProjectGabriella Davis
Ā 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentGokhan Arik
Ā 
Android for Java Developers
Android for Java DevelopersAndroid for Java Developers
Android for Java DevelopersMarko Gargenta
Ā 
Introduction to android basics
Introduction to android basicsIntroduction to android basics
Introduction to android basicsHasam Panezai
Ā 
Android Application Fundamentals
Android Application FundamentalsAndroid Application Fundamentals
Android Application FundamentalsVikalp Jain
Ā 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App DevelopmentAbhijeet Gupta
Ā 
Gl android platform
Gl android platformGl android platform
Gl android platformPragya Rastogi
Ā 
Become a Bluemix Architect in 45 Minutes
Become a Bluemix Architect in 45 MinutesBecome a Bluemix Architect in 45 Minutes
Become a Bluemix Architect in 45 MinutesAndrew Ferrier
Ā 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java DevelopersMike Wolfson
Ā 
Android Introduction
Android IntroductionAndroid Introduction
Android Introductionaswapnal
Ā 
Variations on Video: The Avalon Media System
Variations on Video: The Avalon Media SystemVariations on Video: The Avalon Media System
Variations on Video: The Avalon Media SystemJon W. Dunn
Ā 
Understanding Docker and IBM Bluemix Container Service
Understanding Docker and IBM Bluemix Container ServiceUnderstanding Docker and IBM Bluemix Container Service
Understanding Docker and IBM Bluemix Container ServiceAndrew Ferrier
Ā 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Viswanath J
Ā 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidkrishnastudent88
Ā 
Windows 8 Introduction
Windows 8 IntroductionWindows 8 Introduction
Windows 8 IntroductionAjesh Issac
Ā 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...mfrancis
Ā 

Was ist angesagt? (20)

. Design Decisions: Developing for Mobile - The Template Experience Project
. Design Decisions: Developing for Mobile - The Template Experience Project. Design Decisions: Developing for Mobile - The Template Experience Project
. Design Decisions: Developing for Mobile - The Template Experience Project
Ā 
Android
AndroidAndroid
Android
Ā 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
Ā 
Android
Android Android
Android
Ā 
Bluestacks ANDROID
Bluestacks ANDROIDBluestacks ANDROID
Bluestacks ANDROID
Ā 
Android for Java Developers
Android for Java DevelopersAndroid for Java Developers
Android for Java Developers
Ā 
Introduction to android basics
Introduction to android basicsIntroduction to android basics
Introduction to android basics
Ā 
Android Application Fundamentals
Android Application FundamentalsAndroid Application Fundamentals
Android Application Fundamentals
Ā 
Basic of Android App Development
Basic of Android App DevelopmentBasic of Android App Development
Basic of Android App Development
Ā 
Gl android platform
Gl android platformGl android platform
Gl android platform
Ā 
Become a Bluemix Architect in 45 Minutes
Become a Bluemix Architect in 45 MinutesBecome a Bluemix Architect in 45 Minutes
Become a Bluemix Architect in 45 Minutes
Ā 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
Ā 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
Ā 
Variations on Video: The Avalon Media System
Variations on Video: The Avalon Media SystemVariations on Video: The Avalon Media System
Variations on Video: The Avalon Media System
Ā 
Understanding Docker and IBM Bluemix Container Service
Understanding Docker and IBM Bluemix Container ServiceUnderstanding Docker and IBM Bluemix Container Service
Understanding Docker and IBM Bluemix Container Service
Ā 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009
Ā 
Lick my Lollipop
Lick my LollipopLick my Lollipop
Lick my Lollipop
Ā 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
Ā 
Windows 8 Introduction
Windows 8 IntroductionWindows 8 Introduction
Windows 8 Introduction
Ā 
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Your last mile to SOA and Web 2.0- Lotus Expeditor for Devices - Eric MF Hsu,...
Ā 

Ƅhnlich wie Android quick talk

Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to AndroidNitinMehra2205
Ā 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application developmentSynapseindiappsdevelopment
Ā 
Android Application Development.pdf
Android Application Development.pdfAndroid Application Development.pdf
Android Application Development.pdfMohammedMuzammil99
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptSumanKumarDey5
Ā 
Android Application Development (2).ppt
Android Application Development (2).pptAndroid Application Development (2).ppt
Android Application Development (2).pptRKRahulKhatri
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptSumanKumarDey5
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptSarikaDontha1
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptSHUBHAMKENDRE5
Ā 
Android application development
Android application developmentAndroid application development
Android application developmentMadhuprakashR1
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptTarunSharma506177
Ā 
Android application development
Android application developmentAndroid application development
Android application developmentshanmukhashannu3
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.pptAyushThakur97
Ā 
Synapse india reviews on android application
Synapse india reviews on android applicationSynapse india reviews on android application
Synapse india reviews on android applicationsaritasingh19866
Ā 
Android Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptxAndroid Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptxDCETechnicalClub
Ā 
Android application development
Android application developmentAndroid application development
Android application developmentDewan Razib
Ā 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaOsama Ghandour Geris
Ā 
Android app development
Android app developmentAndroid app development
Android app developmentTechizzaa
Ā 
Google android os
Google android osGoogle android os
Google android osFaiq Ali Sayed
Ā 
Android Training
Android TrainingAndroid Training
Android TrainingTbldevelopment
Ā 

Ƅhnlich wie Android quick talk (20)

Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
Ā 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application development
Ā 
Android Application Development.pdf
Android Application Development.pdfAndroid Application Development.pdf
Android Application Development.pdf
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android Application Development (2).ppt
Android Application Development (2).pptAndroid Application Development (2).ppt
Android Application Development (2).ppt
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android application development
Android application developmentAndroid application development
Android application development
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android application development
Android application developmentAndroid application development
Android application development
Ā 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
Ā 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
Ā 
Synapse india reviews on android application
Synapse india reviews on android applicationSynapse india reviews on android application
Synapse india reviews on android application
Ā 
Android Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptxAndroid Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptx
Ā 
Android application development
Android application developmentAndroid application development
Android application development
Ā 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osama
Ā 
Android app development
Android app developmentAndroid app development
Android app development
Ā 
Google android os
Google android osGoogle android os
Google android os
Ā 
Android Training
Android TrainingAndroid Training
Android Training
Ā 

Mehr von SenthilKumar Selvaraj

Mehr von SenthilKumar Selvaraj (12)

Debugging Modern C++ Application with Gdb
Debugging Modern C++ Application with GdbDebugging Modern C++ Application with Gdb
Debugging Modern C++ Application with Gdb
Ā 
Amma kalviyagam-free-formula-hand-book
Amma kalviyagam-free-formula-hand-bookAmma kalviyagam-free-formula-hand-book
Amma kalviyagam-free-formula-hand-book
Ā 
F5500 k 30hk_50hk_xs_20130304
F5500 k 30hk_50hk_xs_20130304F5500 k 30hk_50hk_xs_20130304
F5500 k 30hk_50hk_xs_20130304
Ā 
Sjx40 fb 9xaf
Sjx40 fb 9xafSjx40 fb 9xaf
Sjx40 fb 9xaf
Ā 
NLP Workbook
NLP WorkbookNLP Workbook
NLP Workbook
Ā 
Think again how to reason and argue (recovered)
Think again  how to reason and argue (recovered)Think again  how to reason and argue (recovered)
Think again how to reason and argue (recovered)
Ā 
Empowering engineers empowering_india
Empowering engineers empowering_indiaEmpowering engineers empowering_india
Empowering engineers empowering_india
Ā 
Green scale
Green scaleGreen scale
Green scale
Ā 
Project points-to-ponder
Project points-to-ponderProject points-to-ponder
Project points-to-ponder
Ā 
Introduction to IPv6
Introduction to IPv6Introduction to IPv6
Introduction to IPv6
Ā 
Interview
InterviewInterview
Interview
Ā 
Effective Project Execution
Effective Project ExecutionEffective Project Execution
Effective Project Execution
Ā 

KĆ¼rzlich hochgeladen

Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)
Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)
Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)jennyeacort
Ā 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
Ā 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
Ā 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
Ā 
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...OnePlan Solutions
Ā 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
Ā 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
Ā 
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdfGOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdfAlina Yurenko
Ā 
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1åˆ¶ä½œč‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作qr0udbr0
Ā 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy LĆ³pez
Ā 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessEnvertis Software Solutions
Ā 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
Ā 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
Ā 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
Ā 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
Ā 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
Ā 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
Ā 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
Ā 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
Ā 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
Ā 

KĆ¼rzlich hochgeladen (20)

Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)
Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)
Call UsšŸ”>ą¼’+91-9711147426ā‡›Call In girls karol bagh (Delhi)
Ā 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
Ā 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Ā 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
Ā 
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...
Maximizing Efficiency and Profitability with OnePlanā€™s Professional Service A...
Ā 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Ā 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Ā 
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdfGOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM ā€“ DEVOXX GREECE.pdf
Ā 
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1åˆ¶ä½œč‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作
č‹±å›½UN学位čƁ,åŒ—å®‰ę™®é”æ大学ęƕäøščƁ书1:1制作
Ā 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Ā 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
Ā 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
Ā 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Ā 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Ā 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
Ā 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Ā 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Ā 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Ā 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
Ā 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
Ā 

Android quick talk

  • 2. Apps on the Device In the past: Today: Entertainment purpose Substantial purchase criteria
  • 3. Agenda ā€¢ Mobile Application Development (MAD) ā€¢ Intro to Android platform ā€¢ Platform architecture ā€¢ Application building blocks ā€¢ Development tools ā€¢ Hello Android
  • 4. Why MAD? (Mobile App Development) ā€¢ The fact that we can! ā€¢ Mobile platform is the platform of the future ā–« Double-digit growth in world-wide smartphone ownership3 ā€¢ Smart Phones ā€¢ Internet access anywhere ā€¢ Social networking ā€¢ Millions of mobile users ā€¢ Open standards ā€¢ Job market is hot ā–« Market for mobile software surges from $4.1 billion in 2009 to $17.5 billion by 20121 ā–« 2010 Dice.com survey: 72% of recruiters looking for iPhone app developers, 60% for Android ā€¢ Students (and faculty!) are naturally interested!
  • 5. Why Android? ā€¢ A lot of students have them ā–« 2010 survey: 22% of college students have Android phone (26% Blackberry, 40% iPhone) ā–« Gartner survey: Android used on 22.7% of smartphones sold world-wide in 2010 (37.6% Symbian, 15.7% iOS) ā€¢ Students already know Java and Eclipse ā–« Low learning curve ā–« Students can use App Inventor for Android ā€¢ Transferring app to phone is trivial ā–« Can distribute by putting it on the web ā–« Android Market for wider distribution ā€¢ Itā€™s not 1984
  • 10. Brief History ā€¢ 1996 ā–« The WWW already had websites with color and images, but, the best phones displayed a couple of lines of monochrome text! ā–« Enter: Wireless Application Protocol and Markup Language WAP : Stripped down bandwidth reduction WML : Stripped down HTML for content Many issues (WAP = ā€œWait And Payā€) Few developers to produce content (it wasnā€™t fun!) ā–« Really hard to type in URLs using the small keyboards ā–« Data fees frightfully expensive ā–« No billing mechanism ā€“ content difficult to monetize ā€¢ Other platforms emerged ā–« Palm OS, Blackberry OS, J2ME, Symbian (Nokia), BREW, OS X iPhone, Windows Mobile
  • 11. Brief History - Android ā€¢ 2005 ā–« Google acquires startup Android Inc. to start Android platform ā–« Work on Dalvik VM begins ā€¢ 2007 ā–« Open Handset Alliance formed to develop open standards for mobile devices ā–« Early look at SDK ā€¢ 2008 ā–« Google sponsors 1st Android Developer Challenge ā–« T-Mobile G1 announced ā–« SDK 1.0 released ā–« Android released open source (Apache License) ā–« Android Dev Phone 1 released ā–« Android Source code Published ā€¢ 2009 ā–« SDK 1.5 (Cupcake) New soft keyboard with ā€œautocompleteā€ feature ā–« SDK 1.6 (Donut) Support Wide VGA ā–« SDK 2.0/2.0.1/2.1 (Eclair) Revamped UI, Browser ā€¢ 2010 ā–« Nexus One released to the public ā–« SDK 2.2 (Froyo) Flash support, Tethering ā–« SDK 2.3 (Gingerbread) UI update, system-wide copy-paste
  • 12. Brief History - Android Honeycomb Android 3.0-3.2 ā€¢ 2011 ā–« SDK 3.0/3.1/3.2 (Honeycomb) for tablets only Ice cream Sandwich New UI for tablets, support multi-core processors SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich) Changes to the UI, Voice input, NFC Android 4.0+
  • 13. Distribution of Devices Data collected during a 14-day period ending on January 3, 2012 http://developer.android.com/resources/dashboard/platform-versions.html
  • 14. The Android Developer Website ā€¢ http://developer.android.com ā€¢ This could be your homepage from now onā€¦
  • 15. What is Android? ā€¢ A software stack for mobile devices that includes ā–« An operating system ā–« Middleware ā–« Key Applications ā€¢ Uses Linux to provide core system services ā–« Security ā–« Memory management ā–« Process management ā–« Power management ā–« Hardware drivers ā€¢ Android Apps are written in Java ā€¢ Open Source with an Apache License ā€¢ An Open Handset Alliance Project
  • 16. Open Handset Alliance- a consortium of several companies
  • 17. Open Handset Alliance - Many more joined A business alliance consisting of 47 companies to develop open standards for mobile devices
  • 18. Android Features Reuse and replacement of components Dalvik virtual machine Integrated browser Optimized graphics SQLite Media support GSM Telephony Bluetooth, EDGE, 3G, and WiFi Camera, GPS, compass, and accelerometer Rich development environment
  • 19. Android makes mobile Java easier!! Well, sort ofā€¦ http://code.google.com/android/goodies/index.html
  • 21. Linux Kernel ā€¢ Relying on Linux Kernel 2.6 for core system services ā–« Memory and Process Management ā–« Network Stack ā–« Driver Model ā–« Security ā–« And other operating system services ā€¢ Providing an abstraction layer between the H/W and the rest of the S/W stack
  • 22. Libraries ā€¢ C/C++ libraries ā€¢ Interface through Java ā€¢ Surface manager ā€“ Handling UI Windows ā€¢ 2D and 3D graphics ā€¢ Media codecs, SQLite, Browser engine, etc ā€¢ Only to be called by higher level programs
  • 23. Android Runtime ā€¢ Dalvik VM (Executes .dex) ā€¢ Providing environment on which every Android application runs ā€¢ Each Android application runs in its own process, with its own instance of the Dalvik VM. ā€¢ Device can run multiple VMs efficiently. ā€¢ Register-based virtual machine Dex files ā€¢ Compact and efficient than class files ā€¢ Limited memory and battery power ā€¢ .dex format is optimized for minimal memory footprint. ā€¢ Not J2SE/J2ME ā€¢ Core Libraries ā€“ Providing most of the functionality available in the core libraries of the Java language ā€“ APIs ā€“ Data Structures ā€“ Utilities ā€“ File Access ā€“ Network Access ā€“ Graphics, Etc
  • 24. Application Framework ā€¢ API interface ā€¢ View System - Used to build an application, including lists, grids, text boxes, buttons, and embedded web browser ā€¢ Content Provider - Enabling applications to access data from other applications or to share their own data ā€¢ Resource Manager - Providing access to non-code resources (localized strings, graphics, and layout files) ā€¢ Notification Manager - Enabling all applications to display customer alerts in the status bar ā€¢ Activity Manager - Managing the lifecycle of applications and providing a common navigation backstack ā€¢ Enabling and simplifying the reuse of components ā–« Developers have full access to the same framework APIs used by the core applications. ā–« Users are allowed to replace components.
  • 25. Applications ā€¢ Applications and Widgets: the real programs display information and interact with users. ā€¢ Built in and user apps ā€¢ Can replace built in apps
  • 26. Application Building Blocks ā€¢ Activity ā€¢ IntentReceiver ā€¢ Service ā€¢ ContentProvider
  • 27. Activities ā€¢ Typically correspond to one UI screen ā€¢ But, they can: ā–« Be faceless ā–« Be in a floating window ā–« Return a value ā€¢ Each user interface screen is represented by an Activity class. ā€¢ Each activity has its own life cycle. ā€¢ Activity uses Intent object to jump between them.
  • 28. Life cycle of an Activity Application run in their own processes (VM, PID) Processes are started and stopped as needed to run an application's components Processes may be killed to reclaim resources
  • 29. Intent Receivers ā€¢ Components that respond to broadcast ā€˜Intentsā€™ ā€¢ Way to respond to external notification or alarms ā€¢ Apps can invent and broadcast their own Intent
  • 30. Intents ā€¢ Think of Intents as a verb and object; a description of what you want done ā–« E.g. VIEW, CALL, PLAY etc.. ā€¢ Intent provides late running binding to other apps ā€¢ Intent activates activities, services, and broadcast receivers. ā€¢ Intent can be used in explicit way or implicit way. ā€¢ System matches Intent with Activity that can best provide the service ā€¢ Activities and IntentReceivers describe what Intents they can service ā€¢ When launch a intent object, framework will match and find the qualified components and leave them for users to choose which to run.
  • 31. Intents Home Contacts GMail Chat Blogger ā€œPick photoā€ Picasa Photo Gallery Client component makes a request for a specific action System picks best Ncoemw pconmepnot nfoern ttsh acat na cutisoen existing functionality Blogger
  • 32. Services ā€¢ Faceless components that run in the background ā–« E.g. music player, network download etcā€¦
  • 33. ContentProviders ā€¢ Enables sharing of data across applications ā–« E.g. address book, photo gallery ā€¢ Client+server architecture ā€¢ Provides uniform APIs for: ā–« querying ā–« delete, update and insert. ā€¢ Content is represented by URI and MIME type ā€¢ Content Resolver provides API interface for applications. ā€¢ Content Providers is the server managing the DB tables and database content with different application.
  • 34. Security and permissions ā€¢ Security in Android follows standard Linux guidelines ā€¢ Each application runs in its own process ā€¢ Application can't disrupt other applications, except by explicitly declaring the permissions it ā€¢ Finer grained permissions are then granted (revoked) per operations ā€¢ Each Android package is given its own unique Linux user ID
  • 35. Developing apps ā€¢ What are they? ā–« Any application that runs on a mobile device ā€¢ Types ā–« Web apps: run in a web browser ā–« HTML, JavaScript, Flash, server-side components, etc. ā€¢ Native - Compiled binaries for the device ā€¢ Often make use of web services ā€¢ Because of the apps, Smartphone(s) become smart!
  • 36. Development process for an Android app
  • 37. Android Apps ā€¢ Built using Java and new SDK libraries ā–« No support for some Java libraries like Swing & AWT ā–« Oracle currently suing Google over use ā€¢ Java code compiled into Dalvik byte code (.dex) ā–« Optimized for mobile devices (better memory management, battery utilization, etc.) ā€¢ Dalvik VM runs .dex files
  • 38. Applications Are Boxed ā€¢ By default, each app is run in its own Linux process ā–« Process started when appā€™s code needs to be executed ā–« Threads can be started to handle time-consuming operations ā€¢ Each process has its own Dalvik VM ā€¢ By default, each app is assigned unique Linux ID ā–« Permissions are set so appā€™s files are only visible to that app
  • 39. Android Design Philosophy ā€¢ Applications should be: ā–« Fast Resource constraints: <200MB RAM, slow processor ā–« Responsive Apps must respond to user actions within 5 seconds ā–« Secure Apps declare permissions in manifest ā–« Seamless Usability is key, persist data, suspend services Android kills processes in background as needed
  • 40. Leveraging the web ā€¢ To keep your apps fast and responsive, consider how you can leverage the web ā–« What ____________ can be ________ on a server or in the cloud? Tasks/performed Data/persisted Data/retrieved ā–« Beware, data transfer is also expensive and can be slow
  • 41. Challenges ā€¢ CPU typically runs 500-600 Mhz ā€¢ RAM available to an App may only be a few megabytes ā€¢ Disk (flash) access is very slow ā€¢ Lifecycle - apps must pause/quit often, and restore to give the illusion that they are always running ā€¢ UI design ā€¢ typical screen may be HVGA (320x480) ā€¢ may be in portrait or landscape ā€¢ very high DPI - small text may not be readable ā€¢ touch resolution is very low (~25 pixel) ā€¢ Network access may be slow and (very) intermittent ā€¢ Fragmentation of Hardware ā–« Different screen resolutions ā–« Different screen sizes ā–« Different hardware keys ā–« Different input methods ā€¢ Some have a phone, some not... ā–« Some have GPS, some not... ā–« Some have 3G, some not... ā–« Some have a cam, some not... ā–« Some are good, some not... ā–« Some are not even phonesā€¦ ā€¢ Hardware diversification will continue to be harder and harder.
  • 42. Opportunities ā€¢ 100s of millions of mobile phone users ā€¢ Very high growth, esp. in Asia ā€¢ "Wild wild west" of application development ā€¢ think 1985 on the desktop (if you were born by then) ā€¢ no dominant 3rd party developers.... yet ā€¢ what will the killer app categories be? ā€¢ what does it mean to have any app + the internet in your pocket? ā€¢ You can develop for it today!
  • 43. Learning ā€¢ Reinforce the basics: OOP, decomposition, etc. ā€¢ Separation of UI design and functionality ā€¢ XML and resource files ā€¢ Events and Listeners ā€¢ Callback methods ā€¢ Threads ā€¢ Application of already learnt ā–« Java! Inheritance, method overriding Interfaces, Casting Exceptions Debugging Reading API documentation ā–« Eclipse Easy to pick up quickly, though
  • 45. Creating Your First(?) Android App ā€¢ Set up your development environment ā€¢ Create a new Android project in Eclipse ā€¢ Run it in the emulator ā€¢ Debug ensues ā€¢ http://developer.android.com/guide/tutorials/hello-world. html
  • 46. 1. Set Up Your Android Environment ā€¢ http://developer.android.com/sdk ā€¢ Install Eclipse ā€¢ Install Android SDK (Android libraries) ā€¢ Install ADT plugin (Android development tools) ā€¢ Create AVD (Android virtual device)
  • 47. 2. Create an Android Project in Eclipse ļ¬ File ā†’ New ā†’ Project ļ¬ Select ā€œAndroid Projectā€ ļ¬ Fill in Project details...
  • 48. Name that appears on device Directory name Class to automatically create Java package Android version
  • 49. 3. Run the Android Application ļ¬ Run ā†’ Run (or click the ā€œRunā€ button) ļ¬ Select ā€œAndroid Applicationā€ ļ¬ The emulator may take a few minutes to start, so be patient! ļ¬ You don't need to restart the emulator when you have a new version of your application
  • 51. Source code Auto-generated code UI layout String constants Configuration
  • 52. HelloAndroid.java 1 public class HelloAndroid extends Activity { 2 /** Called when the activity is first created. */ 3 @Override 4 public void onCreate(Bundle savedInstanceState) 5 { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.main); 8 } 9 }
  • 53. main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" 5 android:layout_width="fill_parent" 6 android:layout_height="fill_parent" 7 > 8 <TextView 9 android:layout_width="fill_parent" 10 android:layout_height="wrap_content" 11 android:text="@string/hello " 12 /> 13 </LinearLayout>
  • 54. strings.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <string name="hello">Hello World, HelloAndroid! 4 </string> 5 <string name="app_name">Hello, Android</string> 6 </resources>
  • 55. AndroidManifest.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 package="edu.upenn.cis542" 5 android:versionCode="1" 6 android:versionName="1.0"> 7 <application android:icon="@drawable/icon" 8 android:label="@string/app_name"> 9 <activity android:name=".HelloAndroid" 10 android:label="@string/app_name"> 11 <intent-filter> 12 <action 13 android:name="android.intent.action.MAIN" /> 14 <category 15 android:name="android.intent.category.LAUNCHER"/> 16 </intent-filter> 17 </activity> 18 </application> 19 </manifest>
  • 56. New Mobile Industry! ā€¢ Mobile Payment ā€¢ Mobile Advertisement ā€¢ Location Based Service ā€¢ And the usual Mobileā€¦Voice, Text and Data
  • 57. Easy to use Design All-in-one-solutions Appstore Additional software No bugs High-class products Good performance
  • 58. Summary ā€¢ New world of Possibilitiesā€¦ ā€¢ Android seems to be the future of mobile OS's and mobile software development. ā€¢ Android just add fun in making phones cooler and development easier. ā€¢ Android could easily move its way into the market from phones to notebooks and desktops ā€¢ After 2013, Android will dominate the app market
  • 60. Mobile Devices: Advantages (as compared to fixed devices) ā€¢ Always with the user ā€¢ Typically have Internet access ā€¢ Typically GPS enabled ā€¢ Typically have accelerometer & compass ā€¢ Most have cameras & microphones ā€¢ Many apps are free or low-cost
  • 61. Mobile Devices: Disadvantages ā€¢ Limited screen size ā€¢ Limited battery life ā€¢ Limited processor speed ā€¢ Limited and sometimes slow network access ā€¢ Limited or awkward input: soft keyboard, phone keypad, touch screen, or stylus ā€¢ Limited web browser functionality ā€¢ Range of platforms & configurations across devices
  • 62. Mobile Applications ā€¢ What are they? ā–« Any application that runs on a mobile device ā€¢ Types ā–« Web apps: run in a web browser HTML, JavaScript, Flash, server-side components, etc. ā–« Native: compiled binaries for the device Often make use of web services
  • 63. Platform Highlights ā€¢ The Android platform introduces many features for users and developers ā€“ Making Android even better ā€¢ Performance Improvements ā€¢ Faster Camera start-up and image capture ā€¢ Much faster acquisition of GPS location (powered by SUPL AGPS) ā€¢ Smoother page scrolling in Browser ā€¢ Speedier GMail conversation list scrolling
  • 64. Platform Highlights ā€¢ On-screen soft keyboard ā–« Works in both portrait and landscape orientation ā–« Support for user installation of 3rd party keyboards ā–« User dictionary for custom words ā€¢ Home screen ā–« Widgets Bundled home screen widgets include: analog clock, calendar, music player, picture frame, and search ā–« Live folders ā€¢ Camera & Gallery ā€¢ Video recording ā€¢ Video playback (MPEG-4 & 3GP formats) ā€¢ Bluetooth ā–« Stereo Bluetooth support (A2DP and AVCRP profiles) ā–« Auto-pairing ā–« Improved hands free experience
  • 65. Platform Highlights ā€¢ Browser ā–« Updated with latest Webkit browser JavaScript engines ā–« Copy 'n paste in browser ā–« Search within a page ā–« User-selectable text-encoding ā€¢ UI changes include: ā–« Unified Go and Search box ā–« Tabbed bookmarks/history/most-visited screen ā€¢ Contacts ā–« Shows user picture for Favorites ā–« Specific date/time stamp for events in call log ā–« One-touch access to a contact card from call log event ā€¢ System ā–« New Linux kernel ā–« SD card file system auto-checking and repair ā€¢ SIM Application Toolkit 1.0 ā€¢ Google applications (Android SDK) ā–« View Google Talk friends' status in Contacts, SMS, MMS, GMail, and Email applications ā–« Batch actions such as archive, delete, and label on Gmail messages ā–« Upload videos to YouTube ā–« Upload photos on Picasa
  • 66. Building and Running Android Apps