Android
   Application
  Development
____________________________

- A guide for the Intermediate Developer
What is Android?
Versions of Android
Android Market
   April 12
Android Market
    June 1
Android Market
  in 7 weeks


      >>>
Developer?

• Keep Track of the Android Market
  Downloads!
• Target lowest version - 1.5 today
• Target important versions (1.5, 1.6 & 2.1)
Who owns Android?




http://www.openhandsetalliance.com/
Who is OHA?
 Mobile
Operators
Who is OHA?
 Mobile     Semiconductor
Operators     Companies
Who is OHA?
 Mobile     Semiconductor     Handset
Operators     Companies     Manufacturers
Who is OHA?
 Mobile     Semiconductor     Handset        Software
Operators     Companies     Manufacturers   Companies
Who is OHA?
 Mobile     Semiconductor     Handset        Software   Commercialization
Operators     Companies     Manufacturers   Companies     Companies
Not just...
Android SDK +
Android SDK +

• Java Android Library (~Java SE)
Android SDK +

• Java Android Library (~Java SE)
• Java version 1.5 (1.6)
Android SDK +

• Java Android Library (~Java SE)
• Java version 1.5 (1.6)
• Eclipse IDE + Android Development Tool
Android SDK +

• Java Android Library (~Java SE)
• Java version 1.5 (1.6)
• Eclipse IDE + Android Development Tool
• Android Virtual Device
Android SDK +

• Java Android Library (~Java SE)
• Java version 1.5 (1.6)
• Eclipse IDE + Android Development Tool
• Android Virtual Device
• SD-Card Size > 8 MiB (16 MiB)
Android Virtual Device
How Android Works
Your first Android App


         ?
Your first Android App


         ?
   “Hello World!”
AndroidManifest.xml
AndroidManifest.xml




 android:label=“@string/app_name”
main.xml
main.xml




android:text=“@string/hello”
strings.xml
strings.xml
           android:text=“@string/hello”




<string name=“hello”>Hello World!</string>
strings.xml
           android:label=“@string/app_name”
           android:text=“@string/hello”




<string name=“hello”>Hello World!</string>
<string name=“app_name”>First App</string>
FirstApp.java
FirstApp.java




setContentView(R.layout.main);
    = res/layout/main.xml
Hello World!
Hello World!
<string name=“app_name”>First App</string>




<string name=“hello”>Hello World!</string>
Multitasking
Multitasking



public void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
     ...
}
Dalvik Virtual Machine
Dalvik Virtual Machine
     Instance               InstanceInstance
                    Instance
                           Instance Instance
                  Instance        Instance
Instance    Instance     Instance
OS Terminator
     Instance               InstanceInstance
                    Instance
                           Instance Instance
                  Instance        Instance
Instance    Instance     Instance




                Memory
OS Terminator
                             InstanceInstance
                     Instance
                            Instance Instance
                   Instance        Instance
Instance     Instance     Instance




  Instance
                 Memory
OS Terminator
                                       InstanceInstance
                               Instance
                                      Instance Instance
                             Instance        Instance
Instance               Instance     Instance




  savedInstanceState
                           Memory
OS Terminator
                                 InstanceInstance
                         Instance
                                Instance Instance
                       Instance        Instance
Instance                      Instance




  savedInstanceState                Instance
                       Memory
OS Terminator
                                 InstanceInstance
                         Instance
                                Instance Instance
                       Instance        Instance
Instance                      Instance




  savedInstanceState                savedInstanceState
                       Memory
User Re-activate App
                                 InstanceInstance
                         Instance
                                Instance Instance
                       Instance        Instance
Instance                      Instance




  savedInstanceState                savedInstanceState
                       Memory
User Re-activate App

                       Instance
Instance                      Instance




  savedInstanceState                 savedInstanceState
                       Memory
User Re-activate App
       Instance
                  Instance
Instance                 Instance




                                savedInstanceState
                  Memory
User Re-activate App
       Instance
                  Instance       Instance
                                 savedInstanceState
Instance                 Instance




                  Memory
Test Application
1. Connect to Network server
                                                 Quick
2. Login with Facebook connect      Value        Win
3. Login with user/password    2.      1.
                                            3.
                                                  Easy
Test Application
1. Connect to Network server
                                                 Quick
2. Login with Facebook connect      Value        Win
3. Login with user/password    2.      1.
                                            3.
                        High Value &
                                                  Easy
                          Difficult
Connect
 Android
  phone




 Network
  server
Connect
 Android
  phone




 Network
  server
Facebook Connect
http://apps.facebook.com/myfbdevapp/
             Facebook
             Developer




                Your
               server
Your Server...
Google Analytics!
Android FB Connect


   • FBRocket
   • iPhone clone


http://wiki.developers.facebook.com/index.php/User:Android
Networking


• HTTP + SSL = HTTPS
• Use threads to increase User Experience
Reference
Reference
Now what?
This summer: Develop mobile app for...
Now what?
This summer: Develop mobile app for...
Opposition

Android Application Development