COMP 5047 Pervasive Computing:
    Week 4: Smartphones & the Android OS

         Dr.-Ing. Rainer Wasinger
      School of...
Background:
• A good book: Multimodal Interaction with Mobile
  Devices




                                              ...
Background:
• Mobile Device Projects at the DFKI




                                       3
Background:
• Smart Services CRC




                       4
Background:
• Multi-Channel Content Repurposing & Mobile
  Personalisation




                                           ...
Part 1: Phone Statistics




                           6
Statistics: Mobile phone growth
• 4.1 billion mobile subscriptions in the world, representing a
  global penetration rate ...
Statistics: Top 5 handsets in the US, Q1 2009

• 1Q2009 US consumer sales of smartphone
  handsets:
     •   1. RIM BlackB...
Statistics: Mobile terminal, smartphone, and operating
system market share




 Worldwide mobile terminal        Worldwide...
Statistics: Specific to Android
Android: Seven Months, By The Numbers
• 10 carriers in 12 countries
• 4,900+ applications ...
Statistics Specific to the G1 Handset
• Approximately 1.5 million G1s were ordered since October 2008
• Customers purchasi...
Statistics: Android Forecast for 2009
• “We forecast global Android smartphone
  shipments to grow an impressive 900% annu...
Android Smartphone Device Characteristics




           HTC Dream               HTC Magic



                            ...
Android Smartphone Device Characteristics
Mobile Device   HTC Dream                           HTC Magic
Release date    Oc...
Other Smartphones on the Market
                                  Blackberry Storm
     HTC Hero
                         ...
Competing mobile Operating Systems
• Competing mobile Operating Systems include:
   • Windows Mobile OS:
       • Closed s...
Part 2: Smartphone Evolution




                               17
History: 1st Mobile Phone
• 1st mobile phone: The Motorola DynaTac,
  released in 1978, providing telephony services for
 ...
History: 1st PDA
• 1st PDA: The Apple/Sharp Newton MessagePad, released
  in 1993, providing personal information manageme...
History: The Universal Mobile Terminal
• The UMT refers to the fictional digital convergence device
  of the future, and i...
History: Limitations of convergence
• In many cases, simple and easy-to-use single-function devices are
  preferred by use...
Definition of a Smartphone
• Smartphone: A mobile device that exhibits converged PDA and phone
  functionality.
   – Typic...
Part 3: Android OS




                     23
Android OS
• Android OS:
  – An open source mobile platform based on the Linux operating
    system.
  – Applications are ...
Android OS
• Android, License:
   – Most of the Android code has been released under the Apache License.
       • Although...
The Android Stack
• The Android platform is a software stack for mobile devices
  including:
   – An operating
     system...
Android OS Features




                      27
Android Development
• Required software for developing for the Android
  platform (for Windows XP/Vista, Mac OS X 10.4.8
 ...
Android Developer Resources
• URL: http://developer.android.com/




                                       29
Android Developer Resources
• Dev Guide:




                              30
Android Developer Resources
• Reference:




                              31
Some quick questions
• Who hasn‟t used the Eclipse IDE before?

• Who isn‟t familiar with the Java programming
  language?...
Part 4: Anatomy of an Android Application
• Android applications don‟t have a single entry point for
  everything in the a...
Android Components
• Services:
   • Services run in the background, often without a visual user
     interface.
   • E.g. ...
Android Components (cont.)
• Activities:
   – Activities represent the building block of the user
     interface.
   – An ...
Tasks and the Activity Stack
• A „task‟ is what the user experiences as an „application‟. It is a
  group of related activ...
The Lifecycle of an Activity
                 • Four essential states:
                    – Active: i.e. the Activity is ...
The Lifecycle of an Activity (cont.)
• onCreate() and onDestroy():
   – The entire lifetime of an Activity happens between...
The AndroidManifest.xml File
• Before Android can start an application, it must learn that
  the component exists. Applica...
Intents
• While one Activity will be special in that it is used
  to start an application, the other activities also
  nee...
Intent Filters
• An Intent object can explicitly name a target component. If
  it does, Android finds that component and a...
Designing the User Interface
• User interfaces are built using View and ViewGroup objects.
• The View class serves as the ...
Designing the User Interface (cont.)
• The most common way to define a layout and express the
  view hierarchy is with an ...
Part 5: The Code




                   44
Notepadv3 in the Eclipse IDE




                               45
Notepadv3 Example – The Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.co...
Notepadv3 Example – An Activity Class
public class Notepadv3 extends ListActivity {
...
    /** Called when the activity i...
Notepadv3 Example – An Intent
@Override
   protected void onListItemClick(ListView l, View v, int position,
  long id) {
 ...
Notepadv3 Example – notes_list.xml GUI
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schem...
Part 6: Eclipse – Using the IDE




                                  50
Using the Eclipse IDE
• Editing code




                        51
Using the Eclipse IDE
• Designing a GUI




                        52
Using the Eclipse IDE
• Using the Debugger




                        53
Using the Eclipse IDE
• LogCat




                        54
COMP5047 Property App Week 5 Lab Task
• Screen shots




                                        55
Upcoming SlideShare
Loading in …5
×

COMP5047 Week 4 Lecture handouts (Rainer Wasinger)

1,148 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,148
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

COMP5047 Week 4 Lecture handouts (Rainer Wasinger)

  1. 1. COMP 5047 Pervasive Computing: Week 4: Smartphones & the Android OS Dr.-Ing. Rainer Wasinger School of Information Technologies
  2. 2. Background: • A good book: Multimodal Interaction with Mobile Devices 2
  3. 3. Background: • Mobile Device Projects at the DFKI 3
  4. 4. Background: • Smart Services CRC 4
  5. 5. Background: • Multi-Channel Content Repurposing & Mobile Personalisation 5
  6. 6. Part 1: Phone Statistics 6
  7. 7. Statistics: Mobile phone growth • 4.1 billion mobile subscriptions in the world, representing a global penetration rate of 61.1% • 1.27 billion fixed line subscribers, representing a global penetration rate of 18.9%. Source: International Telecommunication Union’s ICT Development Index (IDI) for 2008. 7
  8. 8. Statistics: Top 5 handsets in the US, Q1 2009 • 1Q2009 US consumer sales of smartphone handsets: • 1. RIM BlackBerry Curve (all 83XX models). • 2. Apple iPhone 3G (all models). • 3. RIM BlackBerry Storm • 4. RIM BlackBerry Pearl (all models, except flip). • 5. T-Mobile G1. Source: “RIM Unseats Apple in The NPD Group‟s Latest Smartphone Ranking”, Port Washington, New York, May 4, 2009. 8
  9. 9. Statistics: Mobile terminal, smartphone, and operating system market share Worldwide mobile terminal Worldwide smartphone Smartphone OS market sales to end users in 1Q2009 sales to end users in 1Q2009 share in 4Q2008 (source: Gartner). (source: Gartner). (source: Gartner). 9
  10. 10. Statistics: Specific to Android Android: Seven Months, By The Numbers • 10 carriers in 12 countries • 4,900+ applications in the Android Market • 40+ app downloads per user • #2 in U.S. mobile web browsing • 3 platform releases, and counting… Source: Google I/O Conference 2009, 28.May.2009. 10
  11. 11. Statistics Specific to the G1 Handset • Approximately 1.5 million G1s were ordered since October 2008 • Customers purchasing a G1 from T-Mobile were trading up from a basic handset 50% of the time. • 50% of the G1 customers access Wi-Fi daily. • 80% of G1 owners browse the web at least once a day • 80% of the people owning a G1 download an Android application at least once a week • The vast majority of T-Mobile G1 owners use Facebook and YouTube at least once a week • The average G1 T-Mobile customers consumers 50 times the data vs. the average voice-centric phone user. Source: Robert Dotson, CEO of T-Mobile USA, 04.April 2009 11
  12. 12. Statistics: Android Forecast for 2009 • “We forecast global Android smartphone shipments to grow an impressive 900% annually during 2009…Android is expanding from a low base and it is consequently outgrowing the iPhone OS from Apple, which we estimate will grow at a relatively lower 79% annually in 2009.” Source: Tom Kang, Senior Analyst at Strategy Analytics, 12.May.2009. 12
  13. 13. Android Smartphone Device Characteristics HTC Dream HTC Magic 13
  14. 14. Android Smartphone Device Characteristics Mobile Device HTC Dream HTC Magic Release date Oct 2008 May 2009 OS Android Android Display 3.2”, 320x480 (HVGA), capacitive “” Dimensions 117.7mm x 55.7mm x 17.1mm 113mm x 55m x 13.65mm Weight 158g 118.5g Processor Qualcomm MSM7201A 528MHz “” Memory 256MB ROM, 192MB RAM 512MB ROM, 192MB RAM Battery 1150mAh 1340mAh Network HSDPA/WCDMA (1700, 2100MHz), HSDPA/WCDMA (900, 2100MHz), Quad-band GSM/GPRS/EDGE (850, Quad-band GSM/GPRS/EDGE 900, 1800, 1900MHz) (850, 900, 1800, 1900MHz) Camera 3.2MP with auto focus “” WiFi WiFi 802.11b/g “” Bluetooth Bluetooth 2.0 with EDR “” Sensors GPS, digital compass, accelerometer “” 14
  15. 15. Other Smartphones on the Market Blackberry Storm HTC Hero Palm Pre HTC Touch Pro 2 iPhone 3GS 15
  16. 16. Competing mobile Operating Systems • Competing mobile Operating Systems include: • Windows Mobile OS: • Closed source. • Apple iPhone OS: • Closed source. • BlackBerry OS: • Closed source. • Palm webOS (released June.2009). • Closed-source, with open-source components. • Nokia Symbian OS. • Currently closed-source, though the recently established Symbian Foundation are working on publishing the Symbian platform (slated for mid 2010) royalty-free under the open source Eclipse Public License (EPL). 16
  17. 17. Part 2: Smartphone Evolution 17
  18. 18. History: 1st Mobile Phone • 1st mobile phone: The Motorola DynaTac, released in 1978, providing telephony services for people on the go. 18
  19. 19. History: 1st PDA • 1st PDA: The Apple/Sharp Newton MessagePad, released in 1993, providing personal information management services, like a personal organiser and an address book. • By 2002, and after 10 years growth, PDA shipments began experiencing a decline (also due to a world-wide economic down-turn, and the smart phone emerged. 19
  20. 20. History: The Universal Mobile Terminal • The UMT refers to the fictional digital convergence device of the future, and is based on the convergence of the 3C‟s, i.e. computing, communication, and consumer electronics. – Convergence of computing and communication has already taken place, resulting in the smart phone. – The 3rd C, consumer electronics, refers to electronic consumer devices. It is still anyone‟s guess as to how consumer electronics will influence the design of the future UMT. • E.g.: Mobile entertainment devices such as music players (e.g. Apple iPod, Sony Walkman), video players, handheld televisions, and gaming devices (e.g. the Nokia N-Gage). 20
  21. 21. History: Limitations of convergence • In many cases, simple and easy-to-use single-function devices are preferred by users over multifunctional combos. Design tradeoffs arising as a result of device convergence are inevitable. • Some mobile device types that are resisting convergence (and even newly emerging): – Mobile Internet Devices (MIDs) like the Apple iTouch – E-books like the Amazon Kindle – In-car navigation consoles like the Tom Tom Go – Gaming consoles like the Nintendo DS – So-called „social phones‟ like the INQ1/Hutchison 3 Facebook phone. • These devices are all hoping to have found niches in the market, based on device convergence design tradeoffs. 21
  22. 22. Definition of a Smartphone • Smartphone: A mobile device that exhibits converged PDA and phone functionality. – Typically support, in addition to voice communication, PIM (e.g. applications like a calendar, address book, clock, and notepad). – Modern smartphones also typically provide the ability to: • send/receive emails and instant messages, • access the Internet and related web-based services, including but not limited to social networking sites like Facebook, MySpace, and Twitter. • install rich 3rd party applications that have access to much of a system‟s underlying resources. • Note however that there is no industry agreement as to what precisely constitutes a „smart‟ phone. 22
  23. 23. Part 3: Android OS 23
  24. 24. Android OS • Android OS: – An open source mobile platform based on the Linux operating system. – Applications are developed using the Java programming language. – Applications run on Dalvik, a custom virtual machine designed for embedded use, which runs on top of a Linux kernel. – Although Android reuses the Java language syntax, it does not provide the full-class libraries and APIs bundled with Java SE or Java ME, using the Harmony Java implementation instead (due to Apache‟s license allowing for closed source derived works). – The latest Android OS release is 1.5, released on 30.April.2009. 24
  25. 25. Android OS • Android, License: – Most of the Android code has been released under the Apache License. • Although Android is an open-source product, some development has been continuing in a private development branch. – Apache License allows vendors to add proprietary extensions without submitting those back to the open source community. • Android, Origins: – Developed originally by Google, and later/now by the Open Handset Alliance. – Announced on 05.November.2007, together with the founding of the Open Handset Alliance (OHA). • The OHA: – A consortium of 50 firms (hardware, software, and telecoms) devoted to advancing open standards for mobile devices • Companies include: Google, HTC, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile. 25
  26. 26. The Android Stack • The Android platform is a software stack for mobile devices including: – An operating system – Middleware – Key applications 26
  27. 27. Android OS Features 27
  28. 28. Android Development • Required software for developing for the Android platform (for Windows XP/Vista, Mac OS X 10.4.8 and later, and Linux): – Android v1.5 SDK: android-sdk-windows-1.5_r2.zip [172MB] • http://developer.android.com/ – Eclipse v3.4.2 (Ganymede): eclipse-jee-ganymede-SR2- win32.zip [167MB] • http://www.eclipse.org/downloads/ – Android Development Tools (ADT) v0.9 plug-in for Eclipse • http://developer.android.com/sdk/1.5_r2/installing.html 28
  29. 29. Android Developer Resources • URL: http://developer.android.com/ 29
  30. 30. Android Developer Resources • Dev Guide: 30
  31. 31. Android Developer Resources • Reference: 31
  32. 32. Some quick questions • Who hasn‟t used the Eclipse IDE before? • Who isn‟t familiar with the Java programming language? • Who isn‟t familiar with XML? 32
  33. 33. Part 4: Anatomy of an Android Application • Android applications don‟t have a single entry point for everything in the application (i.e. not main() function). Instead, they have essential components that the system can instantiate and run as needed. – This is partly to make the applications more crash-resistant. • There are 4 types of components: – Activities – Services – Broadcast receivers – Content providers. • We will focus on the Activity component. 33
  34. 34. Android Components • Services: • Services run in the background, often without a visual user interface. • E.g. a service might play background music, or might fetch data over the network. • Broadcast receivers: • These are components that do nothing but receive and react to broadcast announcements. • E.g. an announcement might be that the time zone has changed, that the battery is low, or that a picture has been taken. • Content providers: • Make a specific set of the application‟s data available to other applications. Such data can for example be stored in the file system, in an SQLite database. 34
  35. 35. Android Components (cont.) • Activities: – Activities represent the building block of the user interface. – An activity presents a visual user interface for one focused endeavour that the user can undertake. – E.g. an activity might present a list of contacts to send messages to, while other activities might deal with the writing of messages, the viewing of old messages, and the changing of settings. – Each activity is independent of the others, and each one is implemented as a subclass of the Activity base class. 35
  36. 36. Tasks and the Activity Stack • A „task‟ is what the user experiences as an „application‟. It is a group of related activities, arranged in a stack. • The root activity in the stack is the one that began the task, e.g. the activity the user selected in the application launcher. • One activity can start another activity. When this happens, the new activity is pushed onto the stack and it becomes the running activity. • When the user presses the back key, the current activity is popped from the stack, and the previous one resumes as the running activity. • Starting a task: An activity is set up as the entry point for a task by giving it an intent filter with “android.intent.action.MAIN” as the specified action and “android.intent.category.LAUNCHER” as the specified category. 36
  37. 37. The Lifecycle of an Activity • Four essential states: – Active: i.e. the Activity is running and is in the foreground of the screen. – Paused: i.e. the Activity is running, and is visible, but a notification (or other) is overlaying part of the screen. The user may not be able to interact with the Activity during this time. – Stopped: The Activity is running, but it is hidden by other activities that have been launched. – Dead: When for e.g. an Activity is terminated, perhaps due to lack of available memory. 37
  38. 38. The Lifecycle of an Activity (cont.) • onCreate() and onDestroy(): – The entire lifetime of an Activity happens between the first call to onCreate() through to a single final call to onDestroy(). – An Activity does all of its initial setup in onCreate() and releases all remaining resources in onDestroy(). • onStart(), onRestart(), and onStop(): • The visible lifetime of an Activity happens between a call to onStart() until a corresponding call to onStop(). • onStart() is called when an activity is first launched. • onRestart() is called when an activity is brought back to the foreground after having been hidden. • onStop is called when the activity is about to be stopped. 38
  39. 39. The AndroidManifest.xml File • Before Android can start an application, it must learn that the component exists. Applications declare their components in a manifest file that is bundled into the Android package, i.e. the .apk file that holds the application‟s code, files, and resources. • The manifest is a structured XML file and is always named AndroidManifest.xml for all applications. • In addition to declaring the application‟s components, it also identifys any permissions the application expects to be granted. 39
  40. 40. Intents • While one Activity will be special in that it is used to start an application, the other activities also need to be reached. This is done through the use of asynchronous messages called Intents. • An Intent is an object that holds the content of a message. Intents can be very specific (e.g. requesting a specific Activity to be launched) or can be more generic (e.g. when multiple criteria is needed for selecting an Activity to launch). • Activities are launched by passing an Intent object to the Context.startActivity() method. 40
  41. 41. Intent Filters • An Intent object can explicitly name a target component. If it does, Android finds that component and activates it. If a target is not explicitly named, Android must locate the best component to respond to the intent. • A component can have any number of intent filters, each one declaring a different set of capabilities. • If a component doesn‟t have any filters, it can be activated only by intents that explicitly name the component as the target. 41
  42. 42. Designing the User Interface • User interfaces are built using View and ViewGroup objects. • The View class serves as the base for subclasses called “widgets”, which offer fully implemented UI objects, like text fields and buttons. • The ViewGroup class serves as the base for subclasses called “layouts”, which offer different kinds of layout architecture, like linear, tabular, and relative. • To attach a view hierarchy tree to the screen for rendering, an Activity must call the setContentView() method and pass a reference to the root node object. View Hierarchy 42
  43. 43. Designing the User Interface (cont.) • The most common way to define a layout and express the view hierarchy is with an XML layout file. • Each element in XML is either a View or ViewGroup object. • View objects are the leaves in the tree. • ViewGroup objects are the branches in the tree. • Combining different Views in a nested XML structure is the basis for GUI creation. 43
  44. 44. Part 5: The Code 44
  45. 45. Notepadv3 in the Eclipse IDE 45
  46. 46. Notepadv3 Example – The Manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.demo.notepad3"> <application android:icon="@drawable/icon"> <activity android:name=".Notepadv3" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NoteEdit"/> </application> </manifest> 46
  47. 47. Notepadv3 Example – An Activity Class public class Notepadv3 extends ListActivity { ... /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.notes_list); mDbHelper = new NotesDbAdapter(this); mDbHelper.open(); fillData(); registerForContextMenu(getListView()); } //onCreate ... 47
  48. 48. Notepadv3 Example – An Intent @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Intent i = new Intent(this, NoteEdit.class); i.putExtra(NotesDbAdapter.KEY_ROWID, id); startActivityForResult(i, ACTIVITY_EDIT); } 48
  49. 49. Notepadv3 Example – notes_list.xml GUI <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@+id/android:list" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/android:empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="No Notes!"/> </LinearLayout> 49
  50. 50. Part 6: Eclipse – Using the IDE 50
  51. 51. Using the Eclipse IDE • Editing code 51
  52. 52. Using the Eclipse IDE • Designing a GUI 52
  53. 53. Using the Eclipse IDE • Using the Debugger 53
  54. 54. Using the Eclipse IDE • LogCat 54
  55. 55. COMP5047 Property App Week 5 Lab Task • Screen shots 55

×