KEMBAR78
Google Io Introduction To Android | PDF
An Introduction to Android




   Jason Chen
Developer Advocate
 Google I/O 2008
•Background
•What is Android?
•Latest News
Internet and Mobile Phone Users, Worldwide
4,000,000,000




3,000,000,000




2,000,000,000




1,000,000,000




           0
            2000     2001       2002   2003    2004     2005              2006               2007
    Internet users (PC-based)                            Source: International Telecommunication Union
    Mobile phone users
Mobile Operators
Handset Manufacturers



Mobile Operators
Handset Manufacturers


                                           Software
Mobile Operators
Handset Manufacturers


                                           Software
Mobile Operators




      Semiconductor
Handset Manufacturers


                                           Software
Mobile Operators




      Semiconductor
                            Commercialization
•Background
•What is Android?
•Latest News
Linux Kernel
 Display     Camera Driver      Bluetooth     Flash Memory   Binder (IPC)
 Driver                           Driver          Driver        Driver

USB Driver   Keypad Driver      WiFi Driver     Audio          Power
                                                Drivers      Management
Libraries
Surface Manager       Media            SQLite
                   Framework

 OpenGL | ES        FreeType          WebKit


     SGL               SSL              libc


                                  Linux Kernel
    Display       Camera Driver      Bluetooth     Flash Memory   Binder (IPC)
    Driver                             Driver          Driver        Driver

  USB Driver      Keypad Driver      WiFi Driver     Audio          Power
                                                     Drivers      Management
Libraries                            Android Runtime
Surface Manager       Media            SQLite                  Core Libraries
                   Framework

 OpenGL | ES        FreeType          WebKit                   Dalvik Virtual
                                                                 Machine

     SGL               SSL              libc


                                  Linux Kernel
    Display       Camera Driver      Bluetooth     Flash Memory                 Binder (IPC)
    Driver                             Driver          Driver                      Driver

  USB Driver      Keypad Driver      WiFi Driver     Audio                        Power
                                                     Drivers                    Management
Application Framework

Activity Manager     Window            Content         View                       Notification
                     Manager           Providers      System                       Manager

Package Manager      Telephony         Resource       Location                    GTalk Service
                      Manager          Manager        Manager


                   Libraries                            Android Runtime
Surface Manager        Media            SQLite                   Core Libraries
                    Framework

 OpenGL | ES         FreeType          WebKit                    Dalvik Virtual
                                                                   Machine

      SGL               SSL              libc


                                   Linux Kernel
    Display        Camera Driver      Bluetooth     Flash Memory                  Binder (IPC)
    Driver                              Driver          Driver                       Driver

  USB Driver       Keypad Driver      WiFi Driver     Audio                         Power
                                                      Drivers                     Management
Applications

    Home             Contacts           Phone         Browser                         ...

                              Application Framework

Activity Manager     Window            Content         View                       Notification
                     Manager           Providers      System                       Manager

Package Manager      Telephony         Resource       Location                    GTalk Service
                      Manager          Manager        Manager


                   Libraries                            Android Runtime
Surface Manager        Media            SQLite                   Core Libraries
                    Framework

 OpenGL | ES         FreeType          WebKit                    Dalvik Virtual
                                                                   Machine

      SGL               SSL              libc


                                   Linux Kernel
    Display        Camera Driver      Bluetooth     Flash Memory                  Binder (IPC)
    Driver                              Driver          Driver                       Driver

  USB Driver       Keypad Driver      WiFi Driver     Audio                         Power
                                                      Drivers                     Management
Application Building Blocks
                  UI component typically corresponding to
    Activity
                  one screen.

                  Set and respond to notifications or status
 IntentReceiver
                  changes. Can wake up your app.

    Service       Faceless task that runs in the background.

ContentProvider   Enable applications to share data.
Developer Toolchain
Emulator

           • QEMU-based ARM emulator
             runs same system image as
             a device

           • Use same toolchain to work
             with devices or emulator
Eclipse Plugin
Project template
Debugging

 Call stack



                                Examine variables




 Breakpoints, single stepping
What does open mean?




                Photo by: http://flickr.com/photos/virtualsugar/316200555/
Industry
•Software stack open-
           sourced under Apache 2.0
           license
Industry   •Source available after first
           handsets ship
           •Anyone will be able to
           build a system image
Industry
Industry   Users
•Users have control of
           their experience
Industry   •They control what gets     Users
           installed
           •They choose the defaults
Industry   Users
Developers



Industry                Users
Developers

           •Don’t need permission to
           ship an application
           •No hidden or privileged
Industry   framework APIs              Users
           •Can integrate,
           extend, and replace
           existing components
Integrate
Integrate
Integrate
Integrate   Extend
Integrate   Extend
Replace
Replace
Replace
Replace
Replace
What about security?
What does this mean
 for developers?
•Background
•What is Android?
•Latest News
Latest News
•   5 Nov 2007: Android announced

•   12 Nov 2007: early look of the SDK released

•   14 Dec 2007: bug-fix SDK released

•   3 Jan 2008: Android Developer Challenge I starts accepting
    submissions

•   13 Feb 2008: m5-rc15 SDK released

•   14 Apr 2008: 1788 total submissions for Challenge I

•   12 May 2008: Top 50 Application in Challenge I announced
Android Developer Challenge



•   Goal: help developers turn great ideas into great code

•   Challenge I & II each have a $5MM USD purse

•   Challenge II will begin after devices go on sale
Q &A

Google Io Introduction To Android

  • 1.
    An Introduction toAndroid Jason Chen Developer Advocate Google I/O 2008
  • 2.
  • 4.
    Internet and MobilePhone Users, Worldwide 4,000,000,000 3,000,000,000 2,000,000,000 1,000,000,000 0 2000 2001 2002 2003 2004 2005 2006 2007 Internet users (PC-based) Source: International Telecommunication Union Mobile phone users
  • 6.
  • 7.
  • 8.
    Handset Manufacturers Software Mobile Operators
  • 9.
    Handset Manufacturers Software Mobile Operators Semiconductor
  • 10.
    Handset Manufacturers Software Mobile Operators Semiconductor Commercialization
  • 11.
  • 12.
    Linux Kernel Display Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
  • 13.
    Libraries Surface Manager Media SQLite Framework OpenGL | ES FreeType WebKit SGL SSL libc Linux Kernel Display Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
  • 14.
    Libraries Android Runtime Surface Manager Media SQLite Core Libraries Framework OpenGL | ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc Linux Kernel Display Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
  • 15.
    Application Framework Activity Manager Window Content View Notification Manager Providers System Manager Package Manager Telephony Resource Location GTalk Service Manager Manager Manager Libraries Android Runtime Surface Manager Media SQLite Core Libraries Framework OpenGL | ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc Linux Kernel Display Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
  • 16.
    Applications Home Contacts Phone Browser ... Application Framework Activity Manager Window Content View Notification Manager Providers System Manager Package Manager Telephony Resource Location GTalk Service Manager Manager Manager Libraries Android Runtime Surface Manager Media SQLite Core Libraries Framework OpenGL | ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc Linux Kernel Display Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
  • 17.
    Application Building Blocks UI component typically corresponding to Activity one screen. Set and respond to notifications or status IntentReceiver changes. Can wake up your app. Service Faceless task that runs in the background. ContentProvider Enable applications to share data.
  • 18.
  • 19.
    Emulator • QEMU-based ARM emulator runs same system image as a device • Use same toolchain to work with devices or emulator
  • 20.
  • 21.
    Debugging Call stack Examine variables Breakpoints, single stepping
  • 22.
    What does openmean? Photo by: http://flickr.com/photos/virtualsugar/316200555/
  • 24.
  • 25.
    •Software stack open- sourced under Apache 2.0 license Industry •Source available after first handsets ship •Anyone will be able to build a system image
  • 26.
  • 27.
    Industry Users
  • 28.
    •Users have controlof their experience Industry •They control what gets Users installed •They choose the defaults
  • 29.
    Industry Users
  • 30.
  • 31.
    Developers •Don’t need permission to ship an application •No hidden or privileged Industry framework APIs Users •Can integrate, extend, and replace existing components
  • 33.
  • 34.
  • 35.
  • 36.
    Integrate Extend
  • 37.
    Integrate Extend
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 44.
  • 45.
    What does thismean for developers?
  • 46.
  • 47.
    Latest News • 5 Nov 2007: Android announced • 12 Nov 2007: early look of the SDK released • 14 Dec 2007: bug-fix SDK released • 3 Jan 2008: Android Developer Challenge I starts accepting submissions • 13 Feb 2008: m5-rc15 SDK released • 14 Apr 2008: 1788 total submissions for Challenge I • 12 May 2008: Top 50 Application in Challenge I announced
  • 48.
    Android Developer Challenge • Goal: help developers turn great ideas into great code • Challenge I & II each have a $5MM USD purse • Challenge II will begin after devices go on sale
  • 49.