• Like
Climbing Mount Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Climbing Mount Android

  • 472 views
Published

Android 101 - Getting to know the basics of Android for developers.

Android 101 - Getting to know the basics of Android for developers.

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
472
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Climbing Mount Android Dr. Rajesh Vasa, 2011 Twitter: @rvasa http://www.rvasa.com 1
  • 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. 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. 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. 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. 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. Android Device User Interaction Android devices have three key buttonsMenuBack Home 7 R. Vasa, 2011
  • 8. Vendors can add additional buttons 8 R. Vasa, 2011
  • 9. There are variations in physical form But all phones have Home, Menu, & Back Buttons 9 R. Vasa, 2011
  • 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. 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. Menu Button • Shows a contextual menu (if one is available) • Developers can write their own menus • to low discoverability) Quite handy (but, causes Usability issues dueMenu (as open) 12 R. Vasa, 2011
  • 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. Tablet Menu Icon Visibility is contextual Menu Sadly, menu position is not mandated (yuk?) 14 R. Vasa, 2011
  • 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. 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. Android Programming languages: Java, C/C++ Image Source: http://developer.android.com 17 R. Vasa, 2011
  • 18. Android is a bi-lingual platform C/C++ Java Image Source: http://www.tbray.org 18 R. Vasa, 2011
  • 19. Most Android Code is in Java (but...) ≠ Android Java is not 100% Sun Java 19 R. Vasa, 2011
  • 20. Android Java is differentNo RMI No Bytecode No AWT / Swing UI Different 2D/3D libs Different Class Load Mechanism 20 R. Vasa, 2011
  • 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. 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. Eclipse IDE 23 R. Vasa, 2011
  • 24. Eclipse IDE - Graphical UI Editor 24 R. Vasa, 2011
  • 25. Android Emulator Permits checking Portrait and Landscape views 25 R. Vasa, 2011
  • 26. Emulator is nice .. but phone is better • The emulator runs the Android O/S (you can run any version: 1.6 upwards -- incl. tablet) • Emulates the phone hardware (like VM Ware) • Emulator does not have sensors (e.g. GPS, Gyro, Accelerometer, Cell phone etc.) • It offersevents methods to simulate some sensor primitive • Interesting factoid: Youphonesend an it to the emulator or make a can call to SMS 26 R. Vasa, 2011
  • 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. 2.1 • Emulators and Simulators cannot mimic real CPU speed, disk speed, network speed etc. (yet?) 27 R. Vasa, 2011
  • 28. If your Java is rusty Free e-Book: http://www.mindview.net/Books/TIJ/ 28 R. Vasa, 2011
  • 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. The Android Way Convention ConfigurationDevelopment is organised around a few conventions 30 R. Vasa, 2011
  • 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. Needs Resources @Multiple Resolutions Convention High Low Medium 32 R. Vasa, 2011
  • 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. A Simple Android App. 34 R. Vasa, 2011
  • 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. Each Screen is an Activity • Android app. is made up of ActivitiesActivity 36 R. Vasa, 2011
  • 37. Views are Android’s Key UI Building Block • We need two views on the ActivityTextViewImageView 37 R. Vasa, 2011
  • 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. Android App. - Building Blocks Activity Layout Views (View Group) 39 R. Vasa, 2011
  • 40. Separation of Concerns in Android Presentation Functionality Layout Definition Activity Class (main.xml) Event Handling, I/O ... 40 R. Vasa, 2011
  • 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. 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. View Groups (Layouts for us mortals) • 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. 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. Resources Resources in “res” Convention 45 R. Vasa, 2011
  • 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. Resources and Generated IDs Generated Code static final int australia=0x7f020000; 47 R. Vasa, 2011
  • 48. A Reference to Layout also Generated All References are Integers 48 R. Vasa, 2011
  • 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. Layout is Referred to from Java Code Activity Activity Class (Java)View Group (Layout) Layout Definition (main.xml) 50 R. Vasa, 2011
  • 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. Activity Creation Method called (by Application Launcher) when App is first launched 52 R. Vasa, 2011
  • 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. What is the “root” Activity? • How does Android know which Activity to create first? Answer: Application Manifest File 54 R. Vasa, 2011
  • 55. Application Manifest File Application Icon Reference Activity Name Category 55 R. Vasa, 2011
  • 56. Application Manifest File Category indicates that it can be launched 56 R. Vasa, 2011
  • 57. Application Manifest FileMain action indicates that it is the starting point 57 R. Vasa, 2011
  • 58. Layouts and String Information • How did we set the text to “Australia” String constant 58 R. Vasa, 2011
  • 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. 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. @ 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. 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. 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. Building an App with Simple Interaction • Temperature Conversion (C -> F) 64 R. Vasa, 2011
  • 65. ViewsTextView EditText Button TextView 4 Views (UI components) using a Linear Layout 65 R. Vasa, 2011
  • 66. Linear Layout (View Group) main.xml (Layout) 66 R. Vasa, 2011
  • 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. 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. UI Interaction Handling PatternThe View identifiersare defined in XML 69 R. Vasa, 2011
  • 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. Wiring up Multiple Activities Contact List Activity Contact Details Select Back 71 R. Vasa, 2011
  • 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. Activities are like mini-processes • Android activities have their own life cycle • Asynchronous Messaging -- called “Intents” Communication between Activities is done by message Contact List Contact Details 73 R. Vasa, 2011
  • 74. Async. messaging called “Intents” intent Contact List Contact Details Activities communicate with each other via Intents Think of an Intent as a message -- like email! 74 R. Vasa, 2011
  • 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. 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. 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. Android Activity Life Cycle Activity is re-started when orientation changesDevelopers have to save and retrieve state if orientation changes No, I am not kidding 78 R. Vasa, 2011
  • 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. A Short Plug!!! 80 R. Vasa, 2011
  • 81. Mobile Development @ Swinburne • HIT8328(Lab work inDevelopment for Mobile Devices - Software Android platform) • HIT8329 - Creating Data Driven Mobile Applications (iOS focused) • Portfolio Based Assessment (no EXAM!) • We do not focus only on API -- there is tostrong conceptual foundation (preparing you a learn) • Can study both subjects as single units Follow @rvasa for updates Swinburne University of Technology is in Melbourne, Australia 81 R. Vasa, 2011