SlideShare a Scribd company logo
1 of 55
Download to read offline
Introduction to
    Android
    Sean Sullivan
   October 27, 2008
What is Android?

 “Android is a software stack for mobile devices
 that includes an operating system, middleware
 and key applications”




source: Google
Android

• Google
• G1 and the Android Market
• Android platform
• Developer tools
• Android programming
Google’s master plan

  • make the cloud more accessible
  • keep connectivity pervasive
  • make the client more powerful

source: Google I/O keynote, May 2008
Google’s master plan




source: Google I/O keynote, May 2008
Google

         “We want the next killer application to be
         written for cell phones”


                                   (Andy Rubin, Google)




source: businessweek.com
Google buys Android




                           August 2005

source: businessweek.com
Open Handset Alliance




       November 2007
Open Handset Alliance
Android SDK




  November 2007
T-Mobile G1




 September 2008
Retail launch




                           October 22, 2008
photo credit: Don Park
G1 technical specs
         •   Qualcomm MSM7201A, 528 MHz

         •   ROM 256 MB

         •   RAM 192 MB

         •   4.60 in x 2.16 in x 0.62 in

         •   158 grams

         •   Lithium Ion battery,1150 mAh
G1 technical specs
         •   3G (HSDPA)

         •   touch screen, HVGA 320x480

         •   QWERTY keyboard

         •   3.2 megapixel camera

         •   microSD expansion slot

         •   GPS, compass, accelerometer
Third party applications




 lifeaware.net   Maverick   Android Locale
Android applications

• multiple applications, running simultaneously
• user may switch between running applications
• background services
• copy and paste
Distributing Android apps


• Android Market
• self-publish on your own web site
• use a 3rd party application store
Android Market
Android Market

• $25 registration fee for developers
• developer receives 70% of each sale
• remaining amount goes to carriers
• Google does not take a percentage
• http://www.android.com/market/
Market got you down?

•   self-publish!

•   upload APK to your own web server
    http://icecondor.com/download/icecondor-2008-10-26.apk

•   use correct MIME type
    application/vnd.android.package-archive
Data Synchronization

• How do I sync my calendar data?
• How do I sync my contacts?
• Does Google offer anything like MobileMe?
Data Synchronization

  “the best way to synchronize these various pieces of
  information is to let the device do it on its own while
  you're not looking, so you never have to think about it.
  Once you've logged into your Google account on an
  Android-powered phone it automatically synchronizes all
  your contacts and Gmail information so everything is
  always available”



source: googlemobile.blogspot.com
System Architecture
Open source project

• http://source.android.com
• Apache 2.0 and GPL v2
• Git repository
Android applications


• are written in the Java language
• run on the Dalvik virtual machine
Dalvik VM

• not a Java VM
• design constraints: slow CPU, little RAM
• will run on OS without swap space
•   http://sites.google.com/site/io/dalvik-vm-internals
Application API’s
                        java.util.*
                         java.io.*
  J2SE
                       java.lang.*
                            etc

                    android.widget.*
   UI                android.view.*
                   android.graphics.*

Telephony       android.telephony.IPhone

  SMS       android.telephony.gsm.SmsManager
Application API’s
    Web              android.webkit.WebView

   Camera        android.hardware.CameraDevice
Local database          android.database.*
    Maps         com.google.android.maps.MapView
  Location       android.location.LocationManager
 Multimedia         android.media.MediaPlayer
   HTTP               org.apache.http.client.*
Demo

                                             • Android 1.0
                                             • GPS
                                             • Yahoo Fire Eagle
                                             • OAuth

http://code.google.com/p/jfireeagle/source/browse/#svn/trunk/jfireeagle-android-app
Getting started




   http://code.google.com/android
Development tools


• Android SDK
• Eclipse plugin
Android SDK

• Android emulator
• command line tools
• documentation
• example applications
Command line tools

• aapt - Android asset packaging tool
• adb - Android debug bridge
• aidl - Android IDL compiler
• emulator - Android emulator
Android emulator
Android emulator
Emulator limitations
•   No support for placing or receiving actual phone
    calls

•   No support for camera/video capture (input)

•   No support for audio input

•   No support for determining connected state

•   No support for determining battery charge level

•   No support for Bluetooth
Eclipse plugin




https://dl-ssl.google.com/android/eclipse/
Android applications


• application package file: myapp.apk
• an application is composed of one or more
  activities
Activity

• an activity is usually a single screen in your
  application
• however, activities can also be faceless
• one activity is designated as the entry point
  for your application
android.app.Activity
import android.app.Activity;

public class MyActivity extends Activity
{
    public void onCreate(Bundle savedValues)
    {

        super.onCreate(savedValues);

        setContentView(R.layout.main);

    }

}
Application
            building blocks
•   AndroidManifest.xml   •   Intents &
                              IntentReceivers
•   Activities
                          •   Services
•   Views
                          •   Notifications
•   Layouts
                          •   ContentProviders
Manifest file
<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>

<manifest xmlns:android=quot;http://schemas.android.com/apk/res/androidquot;
        package=quot;com.my_domain.app.helloactivityquot;>

    <application android:label=quot;@string/app_namequot;>

       <activity android:name=quot;.HelloActivityquot;>
           <intent-filter>
               <action android:name=quot;android.intent.action.MAINquot;/>
               <category android:name=quot;android.intent.category.LAUNCHERquot;/>
           </intent-filter>
       </activity>

    </application>

</manifest>



                         AndroidManifest.xml
Implementing your
     application UI

• Java code
• XML
Android UI: XML

<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
<LinearLayout xmlns:android=quot;http://schemas.android.com/apk/res/androidquot;
    android:orientation=quot;verticalquot;
    android:layout_width=quot;fill_parentquot;
    android:layout_height=quot;fill_parentquot;
    >
<TextView
    android:layout_width=quot;fill_parentquot;
    android:layout_height=quot;wrap_contentquot;
    android:text=quot;Hello Worldquot;
    />
</LinearLayout>
Android UI: Views
• an object that knows how to draw itself on
  the screen
• examples:
 •   android.widget.ListView

 •   android.widget.DatePicker

 •   android.widget.Button

 •   android.widget.ImageView
Intents

• “an Intent is a simple message object that
  represents an ‘intention’ to do something”
• “an intent is an abstract description of an
  operation to be performed”
android.content.Intent
• VIEW_ACTION
• EDIT_ACTION
• PICK_ACTION
• WEB_SEARCH_ACTION
• SYNC_ACTION
• ...
Application Context
android.app.ApplicationContext

 •   startActivity(Intent)

 •   getSystemService

 •   createDatabase

 •   openDatabase

 •   deleteDatabase

 •   ...
Additional topics
•   Threading              •   AIDL - Android IDL

•   Security model         •   Data synchronization

•   Internationalization   •   WiFi API

•   Power management       •   Bluetooth API
What’s Next

• more phones (Motorola, ...)
• multi-touch?
• virtual keyboard
• Bluetooth A2DP
• enterprise features (Exchange support?)
Android resources
• http://code.google.com/android/
• http://android-developers.blogspot.com
• http://code.google.com/p/apps-for-android/
• http://sites.google.com/site/io/
• http://www.openhandsetalliance.com/
• http://source.android.com
The End

More Related Content

What's hot

Seminar Report on Android OS
Seminar Report on Android OSSeminar Report on Android OS
Seminar Report on Android OSBilal Mirza
 
Android os: presentaion by Prerak
Android os: presentaion by PrerakAndroid os: presentaion by Prerak
Android os: presentaion by PrerakPrerak Rathore
 
Short notes of android
Short notes of androidShort notes of android
Short notes of androidMohamed Fathy
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Osganesh mate
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & ComponentsVijay Rastogi
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming SeminarNhat Nguyen
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
Android Overview
Android OverviewAndroid Overview
Android OverviewRaju Kadam
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 
Android Training Report
Android Training ReportAndroid Training Report
Android Training ReportAchal kumari
 
Android Technology Presentation
Android Technology PresentationAndroid Technology Presentation
Android Technology PresentationVijay Shinde
 
Android technology and Information with Presentation Project.
Android technology and Information with Presentation Project.Android technology and Information with Presentation Project.
Android technology and Information with Presentation Project.TG Rajesh
 
Knowledge about android operating system
Knowledge about android operating systemKnowledge about android operating system
Knowledge about android operating systemRachna Beegun
 

What's hot (20)

Seminar Report on Android OS
Seminar Report on Android OSSeminar Report on Android OS
Seminar Report on Android OS
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Android os: presentaion by Prerak
Android os: presentaion by PrerakAndroid os: presentaion by Prerak
Android os: presentaion by Prerak
 
Short notes of android
Short notes of androidShort notes of android
Short notes of android
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Os
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & Components
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming Seminar
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Android Training Report
Android Training ReportAndroid Training Report
Android Training Report
 
Android Technology Presentation
Android Technology PresentationAndroid Technology Presentation
Android Technology Presentation
 
Android Report
Android ReportAndroid Report
Android Report
 
Android technology and Information with Presentation Project.
Android technology and Information with Presentation Project.Android technology and Information with Presentation Project.
Android technology and Information with Presentation Project.
 
Android report.
Android report.Android report.
Android report.
 
Knowledge about android operating system
Knowledge about android operating systemKnowledge about android operating system
Knowledge about android operating system
 
Slideshare android
Slideshare androidSlideshare android
Slideshare android
 

Viewers also liked

Home automation using android mobiles
Home automation using android mobilesHome automation using android mobiles
Home automation using android mobilesDurairaja
 
mobile hardware
mobile hardwaremobile hardware
mobile hardwareRahul S
 
Antediluvian Unix: A Guide to Unix Fundamentals
Antediluvian Unix: A Guide to Unix FundamentalsAntediluvian Unix: A Guide to Unix Fundamentals
Antediluvian Unix: A Guide to Unix FundamentalsRicardo Signes
 
Twitter For Lawyers
Twitter For LawyersTwitter For Lawyers
Twitter For LawyersShaun Dakin
 
.Net Overview -- Training (Lesson 1)
.Net Overview -- Training (Lesson 1).Net Overview -- Training (Lesson 1)
.Net Overview -- Training (Lesson 1)Rishi Kothari
 
What is a smartphone-R1
What is a smartphone-R1What is a smartphone-R1
What is a smartphone-R1Yong Heui Cho
 
Android programming introduction
Android programming introductionAndroid programming introduction
Android programming introductionYi-Lung Tsai
 
Seminar on mobile application development with android
Seminar on mobile application development with androidSeminar on mobile application development with android
Seminar on mobile application development with androidNoor Mohammed Anik
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programmingPERKYTORIALS
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminarJoemarie Amparo
 
Smartphone Hardware Architecture
Smartphone Hardware ArchitectureSmartphone Hardware Architecture
Smartphone Hardware ArchitectureYong Heui Cho
 
[Android] Introduction to Android Programming
[Android] Introduction to Android Programming[Android] Introduction to Android Programming
[Android] Introduction to Android ProgrammingNikmesoft Ltd
 

Viewers also liked (20)

Home automation using android mobiles
Home automation using android mobilesHome automation using android mobiles
Home automation using android mobiles
 
mobile hardware
mobile hardwaremobile hardware
mobile hardware
 
Mobile Hardware
Mobile HardwareMobile Hardware
Mobile Hardware
 
Icuautomation
IcuautomationIcuautomation
Icuautomation
 
Antediluvian Unix: A Guide to Unix Fundamentals
Antediluvian Unix: A Guide to Unix FundamentalsAntediluvian Unix: A Guide to Unix Fundamentals
Antediluvian Unix: A Guide to Unix Fundamentals
 
Twitter For Lawyers
Twitter For LawyersTwitter For Lawyers
Twitter For Lawyers
 
.Net Overview -- Training (Lesson 1)
.Net Overview -- Training (Lesson 1).Net Overview -- Training (Lesson 1)
.Net Overview -- Training (Lesson 1)
 
What is a smartphone-R1
What is a smartphone-R1What is a smartphone-R1
What is a smartphone-R1
 
Android basics
Android basicsAndroid basics
Android basics
 
Android
AndroidAndroid
Android
 
Android programming introduction
Android programming introductionAndroid programming introduction
Android programming introduction
 
Seminar on mobile application development with android
Seminar on mobile application development with androidSeminar on mobile application development with android
Seminar on mobile application development with android
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
 
Smartphone Hardware Architecture
Smartphone Hardware ArchitectureSmartphone Hardware Architecture
Smartphone Hardware Architecture
 
Great Apps for Great Librarians
Great Apps for Great LibrariansGreat Apps for Great Librarians
Great Apps for Great Librarians
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
 
[Android] Introduction to Android Programming
[Android] Introduction to Android Programming[Android] Introduction to Android Programming
[Android] Introduction to Android Programming
 

Similar to Introduction to Android - Mobile Portland

Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009sullis
 
Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009sullis
 
Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Gustavo Fuentes Zurita
 
Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Gustavo Fuentes Zurita
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008Vando Batista
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phonesjeannmaglasang
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a NutshellAleix Solé
 
Mobile & android apps presentation
Mobile & android apps  presentationMobile & android apps  presentation
Mobile & android apps presentationAya Taleb
 
Getting Started With Android
Getting Started With AndroidGetting Started With Android
Getting Started With AndroidQasim Khawaja
 
Mobile Software Engineering Crash Course - C03 Android
Mobile Software Engineering Crash Course - C03 AndroidMobile Software Engineering Crash Course - C03 Android
Mobile Software Engineering Crash Course - C03 AndroidMohammad Shaker
 
Getting started with Google Android - OSCON 2008
Getting started with Google Android - OSCON 2008Getting started with Google Android - OSCON 2008
Getting started with Google Android - OSCON 2008sullis
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android DevelopmentHayi Nukman
 

Similar to Introduction to Android - Mobile Portland (20)

Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 
Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009
 
Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9
 
Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9Androidoscon20080721 1216843094441821-9
Androidoscon20080721 1216843094441821-9
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Android Stsucture
Android StsuctureAndroid Stsucture
Android Stsucture
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
Android Intro
Android IntroAndroid Intro
Android Intro
 
Android a brief intro
Android a brief introAndroid a brief intro
Android a brief intro
 
Android Development in a Nutshell
Android Development in a NutshellAndroid Development in a Nutshell
Android Development in a Nutshell
 
Mobile & android apps presentation
Mobile & android apps  presentationMobile & android apps  presentation
Mobile & android apps presentation
 
Android development beginners faq
Android development  beginners faqAndroid development  beginners faq
Android development beginners faq
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Getting Started With Android
Getting Started With AndroidGetting Started With Android
Getting Started With Android
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
Mobile Software Engineering Crash Course - C03 Android
Mobile Software Engineering Crash Course - C03 AndroidMobile Software Engineering Crash Course - C03 Android
Mobile Software Engineering Crash Course - C03 Android
 
Getting started with Google Android - OSCON 2008
Getting started with Google Android - OSCON 2008Getting started with Google Android - OSCON 2008
Getting started with Google Android - OSCON 2008
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
 

More from sullis

Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012sullis
 
Production Ready Web Services with Dropwizard
Production Ready Web Services with DropwizardProduction Ready Web Services with Dropwizard
Production Ready Web Services with Dropwizardsullis
 
Incremental deployment of new features
Incremental deployment of new featuresIncremental deployment of new features
Incremental deployment of new featuressullis
 
Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011sullis
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011sullis
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011sullis
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15sullis
 
GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010sullis
 
Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010sullis
 
Connecting to Web Services on Android June 2 2010
Connecting to Web Services on Android June 2 2010Connecting to Web Services on Android June 2 2010
Connecting to Web Services on Android June 2 2010sullis
 
Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010sullis
 
WebDAV - April 15 2008
WebDAV - April 15 2008WebDAV - April 15 2008
WebDAV - April 15 2008sullis
 
GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009sullis
 
Google App Engine - September 17 2009
Google App Engine - September 17 2009Google App Engine - September 17 2009
Google App Engine - September 17 2009sullis
 
Google App Engine - Portland Java User Group - August 18 2009
Google App Engine - Portland Java User Group - August 18 2009Google App Engine - Portland Java User Group - August 18 2009
Google App Engine - Portland Java User Group - August 18 2009sullis
 
Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009sullis
 
OAuth and REST web services
OAuth and REST web servicesOAuth and REST web services
OAuth and REST web servicessullis
 
Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009sullis
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Androidsullis
 

More from sullis (19)

Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012
 
Production Ready Web Services with Dropwizard
Production Ready Web Services with DropwizardProduction Ready Web Services with Dropwizard
Production Ready Web Services with Dropwizard
 
Incremental deployment of new features
Incremental deployment of new featuresIncremental deployment of new features
Incremental deployment of new features
 
Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15
 
GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010
 
Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010
 
Connecting to Web Services on Android June 2 2010
Connecting to Web Services on Android June 2 2010Connecting to Web Services on Android June 2 2010
Connecting to Web Services on Android June 2 2010
 
Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010Programming WebSockets - April 20 2010
Programming WebSockets - April 20 2010
 
WebDAV - April 15 2008
WebDAV - April 15 2008WebDAV - April 15 2008
WebDAV - April 15 2008
 
GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009
 
Google App Engine - September 17 2009
Google App Engine - September 17 2009Google App Engine - September 17 2009
Google App Engine - September 17 2009
 
Google App Engine - Portland Java User Group - August 18 2009
Google App Engine - Portland Java User Group - August 18 2009Google App Engine - Portland Java User Group - August 18 2009
Google App Engine - Portland Java User Group - August 18 2009
 
Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009Java and JSON - UJUG - March 19 2009
Java and JSON - UJUG - March 19 2009
 
OAuth and REST web services
OAuth and REST web servicesOAuth and REST web services
OAuth and REST web services
 
Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Android
 

Recently uploaded

The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfalexjohnson7307
 

Recently uploaded (20)

The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 

Introduction to Android - Mobile Portland

  • 1. Introduction to Android Sean Sullivan October 27, 2008
  • 2.
  • 3.
  • 4.
  • 5. What is Android? “Android is a software stack for mobile devices that includes an operating system, middleware and key applications” source: Google
  • 6. Android • Google • G1 and the Android Market • Android platform • Developer tools • Android programming
  • 7. Google’s master plan • make the cloud more accessible • keep connectivity pervasive • make the client more powerful source: Google I/O keynote, May 2008
  • 8. Google’s master plan source: Google I/O keynote, May 2008
  • 9. Google “We want the next killer application to be written for cell phones” (Andy Rubin, Google) source: businessweek.com
  • 10. Google buys Android August 2005 source: businessweek.com
  • 11. Open Handset Alliance November 2007
  • 13. Android SDK November 2007
  • 15. Retail launch October 22, 2008 photo credit: Don Park
  • 16. G1 technical specs • Qualcomm MSM7201A, 528 MHz • ROM 256 MB • RAM 192 MB • 4.60 in x 2.16 in x 0.62 in • 158 grams • Lithium Ion battery,1150 mAh
  • 17. G1 technical specs • 3G (HSDPA) • touch screen, HVGA 320x480 • QWERTY keyboard • 3.2 megapixel camera • microSD expansion slot • GPS, compass, accelerometer
  • 18. Third party applications lifeaware.net Maverick Android Locale
  • 19. Android applications • multiple applications, running simultaneously • user may switch between running applications • background services • copy and paste
  • 20. Distributing Android apps • Android Market • self-publish on your own web site • use a 3rd party application store
  • 22. Android Market • $25 registration fee for developers • developer receives 70% of each sale • remaining amount goes to carriers • Google does not take a percentage • http://www.android.com/market/
  • 23. Market got you down? • self-publish! • upload APK to your own web server http://icecondor.com/download/icecondor-2008-10-26.apk • use correct MIME type application/vnd.android.package-archive
  • 24. Data Synchronization • How do I sync my calendar data? • How do I sync my contacts? • Does Google offer anything like MobileMe?
  • 25. Data Synchronization “the best way to synchronize these various pieces of information is to let the device do it on its own while you're not looking, so you never have to think about it. Once you've logged into your Google account on an Android-powered phone it automatically synchronizes all your contacts and Gmail information so everything is always available” source: googlemobile.blogspot.com
  • 27. Open source project • http://source.android.com • Apache 2.0 and GPL v2 • Git repository
  • 28. Android applications • are written in the Java language • run on the Dalvik virtual machine
  • 29. Dalvik VM • not a Java VM • design constraints: slow CPU, little RAM • will run on OS without swap space • http://sites.google.com/site/io/dalvik-vm-internals
  • 30. Application API’s java.util.* java.io.* J2SE java.lang.* etc android.widget.* UI android.view.* android.graphics.* Telephony android.telephony.IPhone SMS android.telephony.gsm.SmsManager
  • 31. Application API’s Web android.webkit.WebView Camera android.hardware.CameraDevice Local database android.database.* Maps com.google.android.maps.MapView Location android.location.LocationManager Multimedia android.media.MediaPlayer HTTP org.apache.http.client.*
  • 32. Demo • Android 1.0 • GPS • Yahoo Fire Eagle • OAuth http://code.google.com/p/jfireeagle/source/browse/#svn/trunk/jfireeagle-android-app
  • 33. Getting started http://code.google.com/android
  • 34. Development tools • Android SDK • Eclipse plugin
  • 35. Android SDK • Android emulator • command line tools • documentation • example applications
  • 36. Command line tools • aapt - Android asset packaging tool • adb - Android debug bridge • aidl - Android IDL compiler • emulator - Android emulator
  • 39. Emulator limitations • No support for placing or receiving actual phone calls • No support for camera/video capture (input) • No support for audio input • No support for determining connected state • No support for determining battery charge level • No support for Bluetooth
  • 41. Android applications • application package file: myapp.apk • an application is composed of one or more activities
  • 42. Activity • an activity is usually a single screen in your application • however, activities can also be faceless • one activity is designated as the entry point for your application
  • 43. android.app.Activity import android.app.Activity; public class MyActivity extends Activity { public void onCreate(Bundle savedValues) { super.onCreate(savedValues); setContentView(R.layout.main); } }
  • 44. Application building blocks • AndroidManifest.xml • Intents & IntentReceivers • Activities • Services • Views • Notifications • Layouts • ContentProviders
  • 45. Manifest file <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <manifest xmlns:android=quot;http://schemas.android.com/apk/res/androidquot; package=quot;com.my_domain.app.helloactivityquot;> <application android:label=quot;@string/app_namequot;> <activity android:name=quot;.HelloActivityquot;> <intent-filter> <action android:name=quot;android.intent.action.MAINquot;/> <category android:name=quot;android.intent.category.LAUNCHERquot;/> </intent-filter> </activity> </application> </manifest> AndroidManifest.xml
  • 46. Implementing your application UI • Java code • XML
  • 47. Android UI: XML <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <LinearLayout xmlns:android=quot;http://schemas.android.com/apk/res/androidquot; android:orientation=quot;verticalquot; android:layout_width=quot;fill_parentquot; android:layout_height=quot;fill_parentquot; > <TextView android:layout_width=quot;fill_parentquot; android:layout_height=quot;wrap_contentquot; android:text=quot;Hello Worldquot; /> </LinearLayout>
  • 48. Android UI: Views • an object that knows how to draw itself on the screen • examples: • android.widget.ListView • android.widget.DatePicker • android.widget.Button • android.widget.ImageView
  • 49. Intents • “an Intent is a simple message object that represents an ‘intention’ to do something” • “an intent is an abstract description of an operation to be performed”
  • 50. android.content.Intent • VIEW_ACTION • EDIT_ACTION • PICK_ACTION • WEB_SEARCH_ACTION • SYNC_ACTION • ...
  • 51. Application Context android.app.ApplicationContext • startActivity(Intent) • getSystemService • createDatabase • openDatabase • deleteDatabase • ...
  • 52. Additional topics • Threading • AIDL - Android IDL • Security model • Data synchronization • Internationalization • WiFi API • Power management • Bluetooth API
  • 53. What’s Next • more phones (Motorola, ...) • multi-touch? • virtual keyboard • Bluetooth A2DP • enterprise features (Exchange support?)
  • 54. Android resources • http://code.google.com/android/ • http://android-developers.blogspot.com • http://code.google.com/p/apps-for-android/ • http://sites.google.com/site/io/ • http://www.openhandsetalliance.com/ • http://source.android.com