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
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
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
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
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
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 DeďŹnition 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 DeďŹnition 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 DeďŹnition
(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 ďŹrst 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
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
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 identiďŹers
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
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
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