SlideShare a Scribd company logo
1 of 81
Download to read offline
Climbing Mount Android

    Dr. Rajesh Vasa, 2011
        Twitter: @rvasa
    http://www.rvasa.com



              1
Mobile Eco-System


                      Content Providers
                     (Music/Video/Books)


 Ad Networks                                       App.
                                               Distribution

                        Platform
                                                Billing




         Telephone          Handset            Cloud
         Networks            OEMs          Infrastructure


                            2                   R. Vasa, 2011
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
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
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
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
Android Device User Interaction




                       Android devices have
                       three key buttons
Menu


Back                    Home


                   7               R. Vasa, 2011
Vendors can add additional buttons




                   8            R. Vasa, 2011
There are variations in physical form




  But all phones have Home, Menu, & Back Buttons
                        9               R. Vasa, 2011
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
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
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 due




Menu (as open)



                        12              R. Vasa, 2011
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
Tablet Menu Icon Visibility is contextual
                      Menu




    Sadly, menu position is not mandated (yuk?)
                         14               R. Vasa, 2011
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
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
Android
  Programming languages: Java, C/C++




          Image Source: http://developer.android.com
                              17                       R. Vasa, 2011
Android is a bi-lingual platform
       C/C++                                 Java




             Image Source: http://www.tbray.org
                             18                     R. Vasa, 2011
Most Android Code is in Java (but...)




                 ≠
   Android Java is not 100% Sun Java
                    19            R. Vasa, 2011
Android Java is different



No RMI
 No Bytecode

 No AWT / Swing UI

 Different 2D/3D libs

 Different Class Load Mechanism


                        20        R. Vasa, 2011
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
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
Eclipse IDE




              23   R. Vasa, 2011
Eclipse IDE - Graphical UI Editor




                     24             R. Vasa, 2011
Android Emulator




                        Permits checking Portrait
                          and Landscape views

                   25                  R. Vasa, 2011
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
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
If your Java is rusty




       Free e-Book: http://www.mindview.net/Books/TIJ/

                             28                     R. Vasa, 2011
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
The Android Way


  Convention


 Configuration

Development is organised around a few conventions
                       30               R. Vasa, 2011
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
Needs Resources @Multiple Resolutions
                       Convention

                                      High



                                      Low



                                  Medium

                  32          R. Vasa, 2011
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
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
  • Display Image to take up all space




                         35              R. Vasa, 2011
Each Screen is an Activity
 •   Android app. is made up of Activities




Activity




                         36             R. Vasa, 2011
Views are Android’s Key UI Building Block
  •   We need two views on the Activity



TextView



ImageView




                         37               R. Vasa, 2011
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
Android App. - Building Blocks


  Activity       Layout          Views
                (View Group)




                     39           R. Vasa, 2011
Separation of Concerns in Android

     Presentation            Functionality




   Layout Definition          Activity Class
      (main.xml)
                           Event Handling, I/O ...

                      40               R. Vasa, 2011
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
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
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
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
Resources




                  Resources in “res”




            Convention
             45              R. Vasa, 2011
Resources are given a unique ID




                        A unique reference id
                          to resources is
                         generated by the
                        Android SDK tools


                 Convention
                   46               R. Vasa, 2011
Resources and Generated IDs


                        Generated Code




                static final int australia=0x7f020000;


                   47                   R. Vasa, 2011
A Reference to Layout also Generated

                  All References are Integers




                   48               R. Vasa, 2011
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
Layout is Referred to from Java Code
 Activity       Activity Class (Java)




View Group
  (Layout)




                Layout Definition
                   (main.xml)


                       50               R. Vasa, 2011
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
Activity Creation




     Method called (by Application Launcher)
          when App is first launched

                        52              R. Vasa, 2011
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
What is the “root” Activity?
 •   How does Android know which Activity to
     create first?

        Answer: Application Manifest File




                        54              R. Vasa, 2011
Application Manifest File
                         Application Icon Reference




   Activity Name                  Category
                    55                  R. Vasa, 2011
Application Manifest File




    Category indicates that it can be launched
                        56               R. Vasa, 2011
Application Manifest File




Main action indicates that it is the starting point
                            57                 R. Vasa, 2011
Layouts and String Information
 •   How did we set the text to “Australia”



                                    String constant




                         58              R. Vasa, 2011
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
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
@ Tag and Multiple Screen Resolutions
  •   Dealing with multiple screen resolutions




                                 @drawable/icon




Android Runtime decides best resource to use based on
                hardware capabilities
                                          R. Vasa, 2011
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
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
Building an App with Simple Interaction
 •   Temperature Conversion (C -> F)




                        64             R. Vasa, 2011
Views

TextView

 EditText
  Button


 TextView



    4 Views (UI components) using a Linear Layout
                          65                R. Vasa, 2011
Linear Layout (View Group)




                             main.xml
                             (Layout)

                   66           R. Vasa, 2011
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
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
UI Interaction Handling Pattern
The View identifiers
are 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 Application

 • An Interactive Android Application

 • Dealing with Multiple Screens (Activities)

 • Life Cycle & interesting design choices
                      70             R. Vasa, 2011
Wiring up Multiple Activities
  Contact List Activity            Contact Details



                          Select




                            Back

                             71              R. Vasa, 2011
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
                                           Paused
activity from stack    Contact List


                           72            R. Vasa, 2011
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
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
Async. messaging called “Intents”

        Activity-X                  Photo Viewer
                      view photo
                         intent


  You can send a general purpose message (intent), all
applications capable of handling that Intent will respond



   Framework prescribes conventions for common intents
                           75                 R. Vasa, 2011
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
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
Android Activity Life Cycle


 Activity is re-started when
   orientation changes




Developers have to save
 and retrieve state if
 orientation changes

  No, I am not kidding
                               78   R. Vasa, 2011
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
A Short Plug!!!




       80         R. Vasa, 2011
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

More Related Content

What's hot

Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
TasicoPaolo
 
Іван Дульнявка “Розробка UI для мобільних платформ”
Іван Дульнявка “Розробка UI для мобільних платформ”Іван Дульнявка “Розробка UI для мобільних платформ”
Іван Дульнявка “Розробка UI для мобільних платформ”
Lviv Startup Club
 

What's hot (10)

Biz model for LEAP
Biz model for LEAPBiz model for LEAP
Biz model for LEAP
 
The Hot Tablet Landscape by Platform, Summer 2011 Version
The Hot Tablet Landscape by Platform, Summer 2011 VersionThe Hot Tablet Landscape by Platform, Summer 2011 Version
The Hot Tablet Landscape by Platform, Summer 2011 Version
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
ComparingTwo major mobile operating system
ComparingTwo major mobile operating systemComparingTwo major mobile operating system
ComparingTwo major mobile operating system
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
Layar introduction for developers
Layar introduction for developersLayar introduction for developers
Layar introduction for developers
 
iOS Human Interface Guidelines (HCI)
iOS Human Interface Guidelines (HCI)iOS Human Interface Guidelines (HCI)
iOS Human Interface Guidelines (HCI)
 
Іван Дульнявка “Розробка UI для мобільних платформ”
Іван Дульнявка “Розробка UI для мобільних платформ”Іван Дульнявка “Розробка UI для мобільних платформ”
Іван Дульнявка “Розробка UI для мобільних платформ”
 
Android mp3 player
Android mp3 playerAndroid mp3 player
Android mp3 player
 
Managing the Android Supply Chain and the Role of SPDX
Managing the Android Supply Chain and the Role of SPDXManaging the Android Supply Chain and the Role of SPDX
Managing the Android Supply Chain and the Role of SPDX
 

Similar to Climbing Mount Android

HIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and ToolsHIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and Tools
Yhal Htet Aung
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop Presentation
NAILBITER
 
Pharma times mobile[2]
Pharma times mobile[2]Pharma times mobile[2]
Pharma times mobile[2]
Doctors.net.uk
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
Dennise Layague
 
Android
AndroidAndroid
Android
davs7
 

Similar to Climbing Mount Android (20)

HIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and ToolsHIT3328 - Chapter02 - Foundation and Tools
HIT3328 - Chapter02 - Foundation and Tools
 
Saminar ppt of
Saminar ppt ofSaminar ppt of
Saminar ppt of
 
Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012Jan Kroon's talk @mdevcon 2012
Jan Kroon's talk @mdevcon 2012
 
Android the future
Android  the futureAndroid  the future
Android the future
 
All about android
All about androidAll about android
All about android
 
Mobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market ShareMobile and Tablet App Development and Market Share
Mobile and Tablet App Development and Market Share
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Android overview
Android overviewAndroid overview
Android overview
 
Android Architecture and Working
Android Architecture and WorkingAndroid Architecture and Working
Android Architecture and Working
 
Android ! BATRA COMPUTER CENTRE
Android ! BATRA COMPUTER CENTREAndroid ! BATRA COMPUTER CENTRE
Android ! BATRA COMPUTER CENTRE
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop Presentation
 
Pharma times mobile[2]
Pharma times mobile[2]Pharma times mobile[2]
Pharma times mobile[2]
 
Android platform
Android platform Android platform
Android platform
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
Android and android versions
Android and android versionsAndroid and android versions
Android and android versions
 
Android PPT Presentation 2018
Android PPT Presentation 2018Android PPT Presentation 2018
Android PPT Presentation 2018
 
Introduction To android
Introduction To androidIntroduction To android
Introduction To android
 
Android system
Android systemAndroid system
Android system
 
Android
AndroidAndroid
Android
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Climbing Mount Android

  • 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 buttons Menu Back 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 due Menu (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 different No 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 Configuration Development 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 Activities Activity 36 R. Vasa, 2011
  • 37. Views are Android’s Key UI Building Block • We need two views on the Activity TextView ImageView 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 File Main 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/icon Android 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. Views TextView 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 Pattern The View identifiers are 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 Paused activity 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), all applications 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 changes Developers 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