SlideShare a Scribd company logo
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 OS
Bilal Mirza
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
Naresh Chintalcheru
 
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 android
Mohamed Fathy
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Os
ganesh mate
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & Components
Vijay Rastogi
 
Android architecture
Android architectureAndroid architecture
Android architecture
Kartik Kalpande Patil
 
Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming Seminar
Nhat Nguyen
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
saitej15
 
Android Overview
Android OverviewAndroid Overview
Android Overview
Raju Kadam
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
zeelpatel0504
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 
Android Training Report
Android Training ReportAndroid Training Report
Android Training Report
Achal kumari
 
Android Technology Presentation
Android Technology PresentationAndroid Technology Presentation
Android Technology Presentation
Vijay 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
 
Android report.
Android report.Android report.
Android report.
Shivananda Rai
 
Knowledge about android operating system
Knowledge about android operating systemKnowledge about android operating system
Knowledge about android operating system
Rachna 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 mobiles
Durairaja
 
mobile hardware
mobile hardwaremobile hardware
mobile hardware
Rahul S
 
Mobile Hardware
Mobile HardwareMobile Hardware
Mobile Hardware
Mohab El-Shishtawy
 
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 Lawyers
Shaun 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 basics
Android basicsAndroid basics
Android
AndroidAndroid
Android programming introduction
Android programming introductionAndroid programming introduction
Android programming introduction
Yi-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 android
Noor Mohammed Anik
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
Prawesh Shrestha
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Collaboration Technologies
 
Getting started with android programming
Getting started with android programmingGetting started with android programming
Getting started with android programming
PERKYTORIALS
 
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
Joemarie Amparo
 
Smartphone Hardware Architecture
Smartphone Hardware ArchitectureSmartphone Hardware Architecture
Smartphone Hardware ArchitectureYong Heui Cho
 
Intro to Android Programming
Intro to Android ProgrammingIntro to Android Programming
Intro to Android Programming
Peter van der Linden
 
[Android] Introduction to Android Programming
[Android] Introduction to Android Programming[Android] Introduction to Android Programming
[Android] Introduction to Android Programming
Nikmesoft 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 2009
sullis
 
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
sullis
 
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 Android
natdefreitas
 
Android Stsucture
Android StsuctureAndroid Stsucture
Android Stsucture
Kartik Kalpande Patil
 
"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
Vando 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 perspective
Gunjan Kumar
 
Android Intro
Android IntroAndroid Intro
Android Intro
Justin Grammens
 
Android a brief intro
Android a brief introAndroid a brief intro
Android a brief intro
Kieran Gutteridge
 
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 presentation
Aya Taleb
 
Android development beginners faq
Android development  beginners faqAndroid development  beginners faq
Android development beginners faq
Khirulnizam Abd Rahman
 
Android ppt
Android pptAndroid ppt
Getting Started With Android
Getting Started With AndroidGetting Started With Android
Getting Started With AndroidQasim Khawaja
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
MUFIX Community
 
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 2008
sullis
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
Hayi 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 2012
sullis
 
Production Ready Web Services with Dropwizard
Production Ready Web Services with DropwizardProduction Ready Web Services with Dropwizard
Production Ready Web Services with Dropwizard
sullis
 
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 2011
sullis
 
Android - Open Source Bridge 2011
Android - Open Source Bridge 2011Android - Open Source Bridge 2011
Android - Open Source Bridge 2011
sullis
 
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
sullis
 
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
sullis
 
GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010GWT 2.0 - OSCON 2010
GWT 2.0 - OSCON 2010
sullis
 
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 2010
sullis
 
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 2008
sullis
 
GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009GWT 2.0 - December 15 2009
GWT 2.0 - December 15 2009
sullis
 
Google App Engine - September 17 2009
Google App Engine - September 17 2009Google App Engine - September 17 2009
Google App Engine - September 17 2009
sullis
 
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
sullis
 
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
sullis
 
OAuth and REST web services
OAuth and REST web servicesOAuth and REST web services
OAuth and REST web services
sullis
 
Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009Web Services and Android - OSSPAC 2009
Web Services and Android - OSSPAC 2009
sullis
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Android
sullis
 

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

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Ransomware Mallox [EN].pdf
Ransomware         Mallox       [EN].pdfRansomware         Mallox       [EN].pdf
Ransomware Mallox [EN].pdf
Overkill Security
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 

Recently uploaded (20)

State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Ransomware Mallox [EN].pdf
Ransomware         Mallox       [EN].pdfRansomware         Mallox       [EN].pdf
Ransomware Mallox [EN].pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 

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