Climbing Mount Android     Rajesh Vasa, 2011        Twitter: @rvasa    http://www.rvasa.com             1
Mobile Eco-System                      Content Providers                     (Music/Video/Books) Ad Networks              ...
Android Eco-System                           Content Providers                          (Music/Video/Books)          Googl...
Focus of this talk...                          Content Providers                         (Music/Video/Books)          Goog...
Talk Overview • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application...
Roadmap - Where are we? • Devices • What is Android? • The Android Way • Anatomy of a Simple Android Application • An Inte...
Android Device User Interaction                       Android devices have                       three key buttonsMenuBack...
Vendors can add additional buttons                   8            R. Vasa, 2011
There are variations in physical form  But all phones have Home, Menu, & Back Buttons                        9            ...
Home Button... •  Typically, this will take you back to the Home    Screen of the phone • Default behaviour ~ iPhone / iPa...
Back Button •  This will take you back to the previous screen • If app. has only one screen, this will exit app.          ...
Menu Button •  Shows a contextual menu (if one is available) • Developers can write their own menus • Quite handy (but, ca...
Android for tablets is slightly different...                                                   Action Bar                 ...
Tablet Menu Icon Visibility is contextual                      Menu    Sadly, menu position is not mandated (yuk?)        ...
Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android A...
What is Android? •   Android is a platform  • Operating System (with primitive API)  • Frameworks (incl. components and li...
Android  Programming languages: Java, C/C++          Image Source: http://developer.android.com                           ...
Android is a bi-lingual platform       C/C++                                 Java             Image Source: http://www.tbr...
Most Android Code is in Java (but...)                 ≠   Android Java is not 100% Sun Java                    19         ...
Android Java is different (in many ways)No RMINo BytecodeNo AWT / Swing UIDifferent 2D/3D libsDifferent Class Load Mechani...
Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android A...
Development Tools •   Android SDK (Compiler and Emulator) • Eclipse IDE + Android Plug-in  • Powerful debugger  • Visual U...
Eclipse IDE              23   R. Vasa, 2011
Eclipse IDE - Graphical UI Editor                     24             R. Vasa, 2011
Android Emulator                        Permits checking Portrait                          and Landscape views            ...
Emulator is nice .. but phone is better •  The emulator runs the Android O/S (you can    run any version: 1.6 to 3.0) • Em...
Emulators Vs Simulator •   iOS offers a simulator • Android has gone down the emulator path • Trade-offs (pros and cons), ...
If your Java is rusty       Free e-Book: http://www.mindview.net/Books/TIJ/                             28                ...
Roadmap - Where are we? • Devices • What is Android? • Development Tools •The Android Way • Anatomy of a Simple Android Ap...
The Android Way  Convention ConfigurationDevelopment is organised around a few conventions                       30       ...
Android Project Structure (convention)              •Source code (src)              •Generated code (gen)              •Re...
Needs Resources @Multiple Resolutions                        Convention                                      High         ...
Roadmap - Where are we? •  Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android ...
A Simple Android App.                   34   R. Vasa, 2011
What is involved? •  Place UI controls (Text and Image) • Layout the controls  • Centre text  • Make text large font  • Di...
Each Screen is an Activity •   Android app. is made up of ActivitiesActivity                         36             R. Vas...
Views are Android’s Key UI Building Block  •   We need two views on the ActivityTextViewImageView                         ...
Views are Placed inside a View Group  •   Different types of pre-defined layouts   • Linear, Relative, Table, Frame etc..V...
Android App. - Building Blocks  Activity       Layout          Views                (View Group)                     39   ...
Separation of Concerns in Android     Presentation            Functionality   Layout Definition          Activity Class    ...
UI (Layout) Definition •   Layout definition is generally in an XML file  • Hand coded or Visual Editor •   Can be also be...
Android Offers a number of UI Controls •   Offers all standard controls and lot more...                   Progress        ...
View Groups and Layouts •   Android offers the following View Groups,  • Linear Layout (Horizontal or Vertical)  • Absolut...
Generated Code, Layout & Resources •  How did Australia image get into the App.? • How did we set the text to “Australia”?...
Resources                  Resources in “res”            Convention             45              R. Vasa, 2011
Resources are given a unique ID                        A unique reference id                          to resources is     ...
Resources and Generated IDs                        Generated Code                static final int australia=0x7f020000;   ...
A Reference to Layout also Generated                  All References are Integers                   48               R. Va...
Identifiers are used to access resources        This is the Activity Class          Reference to the layout     (Android R...
Layout is Referred to from Java Code Activity       Activity Class (Java)View Group  (Layout)                Layout Definit...
Who writes the Activity code?    This block of code is created by IDE/SDK      when we create new Android project         ...
Activity Creation     Method called (by Application Launcher)          when App is first launched                        52...
Activity Creation - Layout Rendering  Method call will pass the reference to the layout     that needs to be rendered on t...
What is the “root” Activity? •   How does Android know which Activity to     create first?        Answer: Application Mani...
Application Manifest File                         Application Icon Reference   Activity Name                  Category    ...
Application Manifest File    Category indicates that it can be launched                        56               R. Vasa, 2...
Application Manifest FileMain action indicates that it is the starting point                            57                ...
Layouts and String Information •   How did we set the text to “Australia”                                    String consta...
Using Graphical Resources •   How did the Australia image get into layout?                      Layout can refer to resour...
What is it with the @ tag? •  Constant Resources in Android can be    referred using the “@” tag in XML layout • Example: ...
@ Tag and Multiple Screen Resolutions  •   Dealing with multiple screen resolutions                                 @drawa...
Significance of hdpi/ldpi/mdpi                    Different resolution images                  High-Res, 240 dpi screen   ...
Roadmap - Where are we? •  Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android ...
Building an App with Simple Interaction •   Temperature Conversion (C -> F)                        64             R. Vasa,...
ViewsTextView EditText  Button TextView    4 Views (UI components) using a Linear Layout                          65      ...
Linear Layout (View Group)                             main.xml                             (Layout)                   66 ...
View Identifiers •   We need a way to identify components that     we created in the layout  • E.g. To read input data fro...
UI Interaction Handling Pattern •   Component.setOn......Listener ( handler )  • E.g. button.setOnClickListener •   Handle...
UI Interaction Handling PatternThe View identifiersare defined in XML                      69          R. Vasa, 2011
Roadmap - Where are we? •  Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android ...
Wiring up Multiple Activities  Contact List Activity            Contact Details                          Select           ...
Activities are Stacked in Android • All current activities are placed on a Stack • Newly started activities come into fore...
Activities are like mini-processes •  Android activities have their own life cycle • Asynchronous Messaging   Communicatio...
Async. messaging called “Intents”                      intent     Contact List               Contact Details Activities co...
Async. messaging called “Intents”        Activity-X                  Photo Viewer                      view photo         ...
Roadmap - Where are we? •  Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android ...
Android Activities are Managed by O/S                               Application                                           ...
Android Activity Life Cycle Activity is re-started when   orientation changesDevelopers have to save and retrieve state if...
Security -- Android Devices                   has       User                    UID (User ID)                  also has   ...
A Short Plug!!!       80         R. Vasa, 2011
Mobile Development @ Swinburne •   HIT8328 - Software Development for     Mobile Devices   • Android focused •   HIT8329 -...
Mobile Development @ Swinburne • HIT8328 - Software Development for   Mobile Devices •Applications   HIT8329 - Creating Da...
Upcoming SlideShare
Loading in...5
×

Climbing Mount Android (June 2011)

1,751

Published on

A pre-101 level talk on the Android platform. Great for people that want to get started on Android (or) just curious about it.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,751
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Climbing Mount Android (June 2011)

  1. 1. Climbing Mount Android Rajesh Vasa, 2011 Twitter: @rvasa http://www.rvasa.com 1
  2. 2. Mobile Eco-System Content Providers (Music/Video/Books) Ad Networks App. Distribution Platform Billing Telephone Handset Cloud Networks OEMs Infrastructure 2 R. Vasa, 2011
  3. 3. Android Eco-System Content Providers (Music/Video/Books) Google, Amazon App. Ad Networks ** Distribution Google, Double Click Platform Google Checkout Android Billing Google, Amazon Telephone Handset Cloud Networks (OEMs) Infrastructure Samsung, HTC, Motorola, Sony ... 3 R. Vasa, 2011
  4. 4. Focus of this talk... Content Providers (Music/Video/Books) Google, Amazon App.Ad Networks ** Distribution Google, Double Click Android Google Checkout Platform Billing Google, Amazon Telephone Handset Cloud ThisNetworks talk will present a(OEMs) development perspective Infrastructure Samsung, HTC, Motorola, Sony ... 4 R. Vasa, 2011
  5. 5. Talk Overview • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Activities • Activity Life Cycle (the odd thing) 5 R. Vasa, 2011
  6. 6. Roadmap - Where are we? • Devices • What is Android? • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Activities • Activity Life Cycle (the odd thing) 6 R. Vasa, 2011
  7. 7. Android Device User Interaction Android devices have three key buttonsMenuBack Home 7 R. Vasa, 2011
  8. 8. Vendors can add additional buttons 8 R. Vasa, 2011
  9. 9. There are variations in physical form But all phones have Home, Menu, & Back Buttons 9 R. Vasa, 2011
  10. 10. Home Button... • Typically, this will take you back to the Home Screen of the phone • Default behaviour ~ iPhone / iPad button Home 10 R. Vasa, 2011
  11. 11. Back Button • This will take you back to the previous screen • If app. has only one screen, this will exit app. Personal Opinion: Back iPhone / iPad should borrow this button 11 R. Vasa, 2011
  12. 12. Menu Button • Shows a contextual menu (if one is available) • Developers can write their own menus • Quite handy (but, causes Usability issues) • Low DiscoverabilityMenu (as open) 12 R. Vasa, 2011
  13. 13. Android for tablets is slightly different... Action Bar Where is the menu button?Back, Home(Buttons need not be physical in Android) 13 R. Vasa, 2011
  14. 14. Tablet Menu Icon Visibility is contextual Menu Sadly, menu position is not mandated (yuk?) 14 R. Vasa, 2011
  15. 15. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Activities • Activity Life Cycle (the odd thing) 15 R. Vasa, 2011
  16. 16. What is Android? • Android is a platform • Operating System (with primitive API) • Frameworks (incl. components and libraries) Applications Frameworks Android API Operating System (Customised Linux Kernel) 16 R. Vasa, 2011
  17. 17. Android Programming languages: Java, C/C++ Image Source: http://developer.android.com 17 R. Vasa, 2011
  18. 18. Android is a bi-lingual platform C/C++ Java Image Source: http://www.tbray.org 18 R. Vasa, 2011
  19. 19. Most Android Code is in Java (but...) ≠ Android Java is not 100% Sun Java 19 R. Vasa, 2011
  20. 20. Android Java is different (in many ways)No RMINo BytecodeNo AWT / Swing UIDifferent 2D/3D libsDifferent Class Load Mechanism 20 R. Vasa, 2011
  21. 21. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Activities • Activity Life Cycle (the odd thing) 21 R. Vasa, 2011
  22. 22. Development Tools • Android SDK (Compiler and Emulator) • Eclipse IDE + Android Plug-in • Powerful debugger • Visual UI Builder • Ant (Build System) Download from http://developer.android.com 22 R. Vasa, 2011
  23. 23. Eclipse IDE 23 R. Vasa, 2011
  24. 24. Eclipse IDE - Graphical UI Editor 24 R. Vasa, 2011
  25. 25. Android Emulator Permits checking Portrait and Landscape views 25 R. Vasa, 2011
  26. 26. Emulator is nice .. but phone is better • The emulator runs the Android O/S (you can run any version: 1.6 to 3.0) • Emulates the phone hardware (like VM Ware) • Emulator does not have sensors (e.g. GPS, Gyro, Accelerometer, Cell phone etc.) • It however offers ways to simulate these events • make a phone call to it So, I can send an SMS to the emulator or 26 R. Vasa, 2011
  27. 27. Emulators Vs Simulator • iOS offers a simulator • Android has gone down the emulator path • Trade-offs (pros and cons), • Simulators start-up faster, good enough • Emulators allow closer to phone hardwareof the O/S easily + checking against rel. 1.6 • Emulators and Simulators cannot mimic real CPU speed, disk speed, network speed etc. (yet!) 27 R. Vasa, 2011
  28. 28. If your Java is rusty Free e-Book: http://www.mindview.net/Books/TIJ/ 28 R. Vasa, 2011
  29. 29. Roadmap - Where are we? • Devices • What is Android? • Development Tools •The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Activities • Activity Life Cycle (the odd thing) 29 R. Vasa, 2011
  30. 30. The Android Way Convention ConfigurationDevelopment is organised around a few conventions 30 R. Vasa, 2011
  31. 31. Android Project Structure (convention) •Source code (src) •Generated code (gen) •Resources (res) •Images (drawable) •Layout of app (layout) •Constants/Strings (values) 31 R. Vasa, 2011
  32. 32. Needs Resources @Multiple Resolutions Convention High Low Medium 32 R. Vasa, 2011
  33. 33. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Screens (Activities) • Activity Life Cycle (interesting design choice) 33 R. Vasa, 2011
  34. 34. A Simple Android App. 34 R. Vasa, 2011
  35. 35. What is involved? • Place UI controls (Text and Image) • Layout the controls • Centre text • Make text large font • Display Image to take up all space 35 R. Vasa, 2011
  36. 36. Each Screen is an Activity • Android app. is made up of ActivitiesActivity 36 R. Vasa, 2011
  37. 37. Views are Android’s Key UI Building Block • We need two views on the ActivityTextViewImageView 37 R. Vasa, 2011
  38. 38. Views are Placed inside a View Group • Different types of pre-defined layouts • Linear, Relative, Table, Frame etc..View Group a.k.a Layout 38 R. Vasa, 2011
  39. 39. Android App. - Building Blocks Activity Layout Views (View Group) 39 R. Vasa, 2011
  40. 40. Separation of Concerns in Android Presentation Functionality Layout Definition Activity Class (main.xml) Event Handling, I/O ... 40 R. Vasa, 2011
  41. 41. UI (Layout) Definition • Layout definition is generally in an XML file • Hand coded or Visual Editor • Can be also be done in Java Code (yuk!) Layout Definition XML File 41 R. Vasa, 2011
  42. 42. Android Offers a number of UI Controls • Offers all standard controls and lot more... Progress These are a small subset of available controls 42 R. Vasa, 2011
  43. 43. View Groups and Layouts • Android offers the following View Groups, • Linear Layout (Horizontal or Vertical) • Absolute Layout (You set X, Y for each View) • Table Layout (Rows and Columns) • Relative Layout ( ) Position relative to other Views • Frame Layout (Show only one view at a time) • Scroll View (Permits scrolling of the screen) •View Groups can be nested 43 R. Vasa, 2011
  44. 44. Generated Code, Layout & Resources • How did Australia image get into the App.? • How did we set the text to “Australia”? • Conventions • Layout Defined in /layout/main.xml • Resources Placed in /res/drawable-* • String values defined in/values/strings.xml 44 R. Vasa, 2011
  45. 45. Resources Resources in “res” Convention 45 R. Vasa, 2011
  46. 46. Resources are given a unique ID A unique reference id to resources is generated by the Android SDK tools Convention 46 R. Vasa, 2011
  47. 47. Resources and Generated IDs Generated Code static final int australia=0x7f020000; 47 R. Vasa, 2011
  48. 48. A Reference to Layout also Generated All References are Integers 48 R. Vasa, 2011
  49. 49. Identifiers are used to access resources This is the Activity Class Reference to the layout (Android Runtime will Render this Layout) 49 R. Vasa, 2011
  50. 50. Layout is Referred to from Java Code Activity Activity Class (Java)View Group (Layout) Layout Definition (main.xml) 50 R. Vasa, 2011
  51. 51. Who writes the Activity code? This block of code is created by IDE/SDK when we create new Android project You can also write you own 51 R. Vasa, 2011
  52. 52. Activity Creation Method called (by Application Launcher) when App is first launched 52 R. Vasa, 2011
  53. 53. Activity Creation - Layout Rendering Method call will pass the reference to the layout that needs to be rendered on the screen (“Rendering” is a two-pass process: measure and draw) 53 R. Vasa, 2011
  54. 54. What is the “root” Activity? • How does Android know which Activity to create first? Answer: Application Manifest File 54 R. Vasa, 2011
  55. 55. Application Manifest File Application Icon Reference Activity Name Category 55 R. Vasa, 2011
  56. 56. Application Manifest File Category indicates that it can be launched 56 R. Vasa, 2011
  57. 57. Application Manifest FileMain action indicates that it is the starting point 57 R. Vasa, 2011
  58. 58. Layouts and String Information • How did we set the text to “Australia” String constant 58 R. Vasa, 2011
  59. 59. Using Graphical Resources • How did the Australia image get into layout? Layout can refer to resources @drawable is a special tag 59 R. Vasa, 2011
  60. 60. What is it with the @ tag? • Constant Resources in Android can be referred using the “@” tag in XML layout • Example: @drawable, @string ... @drawable/australia @drawable/bots 60 R. Vasa, 2011
  61. 61. @ Tag and Multiple Screen Resolutions • Dealing with multiple screen resolutions @drawable/iconAndroid Runtime decides best resource to use based on hardware capabilities R. Vasa, 2011
  62. 62. Significance of hdpi/ldpi/mdpi Different resolution images High-Res, 240 dpi screen Low-Res, 120 dpi screen Med-Res, 160 dpi screen 62 R. Vasa, 2011
  63. 63. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Screens (Activities) • Life Cycle & interesting design choices 63 R. Vasa, 2011
  64. 64. Building an App with Simple Interaction • Temperature Conversion (C -> F) 64 R. Vasa, 2011
  65. 65. ViewsTextView EditText Button TextView 4 Views (UI components) using a Linear Layout 65 R. Vasa, 2011
  66. 66. Linear Layout (View Group) main.xml (Layout) 66 R. Vasa, 2011
  67. 67. View Identifiers • We need a way to identify components that we created in the layout • E.g. To read input data from the field @+id TAG creates new identifiers 67 R. Vasa, 2011
  68. 68. UI Interaction Handling Pattern • Component.setOn......Listener ( handler ) • E.g. button.setOnClickListener • Handler is an anonymous inner class • On...Listener handler = new On....Listener() {} 68 R. Vasa, 2011
  69. 69. UI Interaction Handling PatternThe View identifiersare defined in XML 69 R. Vasa, 2011
  70. 70. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Screens (Activities) • Life Cycle & interesting design choices 70 R. Vasa, 2011
  71. 71. Wiring up Multiple Activities Contact List Activity Contact Details Select Back 71 R. Vasa, 2011
  72. 72. Activities are Stacked in Android • All current activities are placed on a Stack • Newly started activities come into foreground Foreground/Active Contact Details Back button will Background/ pop top most starts Pausedactivity from stack Contact List 72 R. Vasa, 2011
  73. 73. Activities are like mini-processes • Android activities have their own life cycle • Asynchronous Messaging Communication between Activities is done by message Contact List Contact Details 73 R. Vasa, 2011
  74. 74. Async. messaging called “Intents” intent Contact List Contact Details Activities communicate with each other via Intents 74 R. Vasa, 2011
  75. 75. Async. messaging called “Intents” Activity-X Photo Viewer view photo intent You can send a general purpose message (intent), allapplications capable of handling that Intent will respond Framework prescribes conventions for common intents 75 R. Vasa, 2011
  76. 76. Roadmap - Where are we? • Devices • What is Android? • Development Tools • The Android Way • Anatomy of a Simple Android Application • An Interactive Android Application • Dealing with Multiple Screens (Activities) •Life Cycle (& interesting design choices) 76 R. Vasa, 2011
  77. 77. Android Activities are Managed by O/S Application Activities have a parent application Activity-A Activity-B Activity-C Activity has Life Cycle Application is NOT managed directly by the O/S Life Cycle is Managed by Android Framework 77 R. Vasa, 2011
  78. 78. Android Activity Life Cycle Activity is re-started when orientation changesDevelopers have to save and retrieve state if orientation changes 78 R. Vasa, 2011
  79. 79. Security -- Android Devices has User UID (User ID) also has determines Android File System Access Application Permissions The UID is generated at install time based on the signature and package name 79 R. Vasa, 2011
  80. 80. A Short Plug!!! 80 R. Vasa, 2011
  81. 81. Mobile Development @ Swinburne • HIT8328 - Software Development for Mobile Devices • Android focused • HIT8329 - Creating Data Driven Mobile Applications We Offer • iOS focused Options to Study • Portfolio Based Assessments Just One Subject • We do not just cover API -- thereyoua to learn) conceptual foundation (prepare is strong Teaching material will be available openly shortly 81 R. Vasa, 2011
  82. 82. Mobile Development @ Swinburne • HIT8328 - Software Development for Mobile Devices •Applications HIT8329 - Creating Data Driven Mobile Teaching material will be available under an open license shortlyFollow @rvasa or @swinfict for update 82 R. Vasa, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×