monitoring of user experience and interactions for mobile video streaming services-master thesis at...

154
i Monitoring of user experience and interactions for mobile video streaming services The first step to explore existing infrastructure more effectively Jiahao Liu Master’s thesis at Communication Systems School of ICT Stockholm, Sweden June 2011 Supervisor: Pietro Lungaro Examiner: Zary Segall

Upload: cucdeseda

Post on 28-Jul-2015

1.853 views

Category:

Documents


2 download

DESCRIPTION

My master thesis at Communication System, KTH.With the growth of Mobile Internet traffic, specially the video traffic, the mobile operator need to invest more CAPEX and OPEX. But the actual pricing plans are dominated by flat rates, which tends to decrease the ARPU. In order to make the situation more sustainable, one possible solution is utilize the existence infrastructure more effectively, by knowing their usage and the behavior of the users.This master thesis focus on this last point. The author has implemented a monitor program for YouTube on Android that shows it is possible to monitor the user behavior in the mobile devices in background.Furthermore, all the data is saved in RDF format, which make it simple and very easy to be shared.In order to demonstrate the usage of the information obtained, 5 different scenarios are created. They are only few example of possible usage of data.Finally, in this master thesis, details of implementation such as the keyword used or the context information are described in the Appendixes.

TRANSCRIPT

Page 1: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

i

Monitoring of user experience and interactions for mobile video

streaming services

The first step to explore existing infrastructure more effectively

Jiahao Liu

Master’s thesis at Communication Systems

School of ICT

Stockholm, Sweden June 2011

Supervisor: Pietro Lungaro

Examiner: Zary Segall

Page 2: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

ii

Page 3: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

iii

Abstract

Mobile data traffic is expected to continue growing at an almost exponential rate in the next

five to ten years. Contributing to this trend are video streaming services, e.g. YouTube and

Netflix, which are currently consuming significant portions of the available bandwidth and are

likely to remain very popular services.

In order to meet future traffic demands, mobile operators can either continue with the current

approach consisting of proportionally increasing the infrastructure deployment, or adopting

some alternative and opportunistic paradigms for content delivery, capable of exploiting the

temporal and geographical traffic variations while optimizing the amount of resources invested

in content delivery.

While the former approach is likely to have only very limited economic feasibility, due to

substantial increases in OPEX and CAPEX, the latter is instead very promising but require

experimental validation and new software tools for performing more informed resource

allocation decisions. A series of initial experimental investigations have been performed within

the COSEM project to assess the feasibility of context-aware content pre-fetching in mobile

networks. The initial results showed that an unprecedented increase in user experience,

together with terminal energy cost reduction and increased network resource utilization can be

achieved with pre-fetching, provided that future content requests can be predicted with some

certain degrees of reliability.

In order to understand to what extent content can be predicted and how to utilize user context

information for increasing the reliability of the predictions, this project proposes an innovative

monitoring approach, in which a software application, running "on the background" of mobile

devices, is designed for collecting information on both the user context and her interactions

with the mobile device and the various running services."

The results show, with one of the methods chosen, for the YouTube application running in

Android System and without any direct interaction, 90.51% of the transition between states

and 95% of the internal states can be monitored. The 9.49% of the transition between states

that cannot be monitored corresponds to showing the keyboard on the screen, which has

minimal importance; the 5% of the non-monitored internal states corresponds to the change on

the settings of the application, which can be monitor with other methods.

Furthermore, in order to improve the universality of the information obtained, making it easily

shared between companies, all the data are saved in RDF format, which contains a uniform

resource identifier (URI) to make each resource unique in the world.

Keywords: Mobile data traffic, Mobile operator, video traffic on Internet, COSEM, YouTube,

Android, Monitor process, Resource Description Framework

Page 4: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

iv

Page 5: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

v

Acknowledgements

First of all, I want to thanks to my supervisor Pietro Lungaro, who has guided me during all the

process. Without him, this project won’t be possible. Secondly, I want to tanks to my examiner,

who has been reviewing this project in very important moments.

After them, I am very graceful with Cristobal Viedma, my friend and college of office for these 6

months. Thanks to his review, important issues of this project have been fixed.

I want to thanks to my friend Luis Martinez also, who has introduced me into the Communication

System and who has helped me to establish the first contact with my supervisor and my examiner.

For the part of RDF, I want to thanks especially to Wu Dan, who has reviewed the structure of RDF

database and who has given me her point of view.

My friends Paolo Pettinato, Urko Serrano and Thinh Lee, whom are also producing very good

project at the same time with me, were very helpful for very important moment.

Finally, I want to thanks to my family, my parents, my sister and specially my wife LiLiang Cheng

for their understanding and support.

Stockholm, June 2011

Jiahao Liu

Page 6: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

vi

Table of contents

Abstract ii

Acknowledgment v

Table of contents vi

List of figures ix

List of tables xi

Glossary xii

1. Introduction 1

1.1 Background ..................................................................................................................... 1

1.1.1 The future tendency of Internet ............................................................................. 1

1.1.2 Main sources of video traffic on Internet ............................................................... 1

1.1.3 Internet video dissection ........................................................................................ 3

1.2 Problem description ......................................................................................................... 4

1.2.1 The actual mobile operator’s situation and future prediction .................................. 4

1.2.2 Possible solutions .................................................................................................. 5

1.3 Aims and goals ................................................................................................................ 6

1.4 Methodology ................................................................................................................... 6

1.5 Limitations ...................................................................................................................... 6

1.6 Project outline ................................................................................................................. 7

2. Problems description 9

3. Market study 11

3.1 Smart phone market ....................................................................................................... 11

3.2 Video sharing services ................................................................................................... 11

4. Software environment 13

4.1 Android System ............................................................................................................. 13

4.1.1 General view ....................................................................................................... 13

4.1.2 Components ........................................................................................................ 14

4.1.2.1 Activity .................................................................................................. 14

4.1.2.2 Service ................................................................................................... 14

4.1.2.3 Intents .................................................................................................... 15

4.1.2.4 Broadcast receiver .................................................................................. 15

4.1.2.5 Content providers ................................................................................... 15

4.1.3 Shared preferences .............................................................................................. 16

4.1.4 Android Manifest file .......................................................................................... 16

4.1.5 LogCats .............................................................................................................. 16

4.1.6 Sending and receiving messages in Android ........................................................ 16

4.2 Analysis of the YouTube application ............................................................................. 17

4.2.1 YouTube application s use cases ......................................................................... 17

4.2.2 YouTube application in detail ............................................................................. 19

4.2.2.1 Overview ............................................................................................... 19

4.2.2.2 Transition between states, general statuses, modes and invocation of

parallel actions........................................................................................ 20

4.2.2.2.1 General rules .............................................................................. 20

4.2.2.2.2 Transition between states............................................................ 20

4.2.2.2.3 Switch general statuses ............................................................... 24

4.2.2.2.4 Choose a mode ........................................................................... 24

Page 7: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

vii

4.2.2.2.5 Invocation of parallel actions ...................................................... 24

4.3 Resource Description Framework .................................................................................. 25

5. Software Implementation 27

5.1 Tool utilized for the implementation .............................................................................. 27

5.2 Implementation .............................................................................................................. 27

5.2.1 Interface .............................................................................................................. 27

5.2.2 Application installed in the Android device ......................................................... 28

5.2.3 General overview ................................................................................................ 28

5.2.4 Running the program........................................................................................... 30

5.2.4.1 Starting the monitor process ................................................................... 30

5.2.4.2 On location changed ............................................................................... 30

5.2.4.3 Monitoring the user actions .................................................................... 31

5.2.4.4 Stopping the monitor process ................................................................. 31

5.2.5 The RDF database ............................................................................................... 32

6. Evaluation and analysis 33

6.1 Settings .......................................................................................................................... 33

6.2 Single state evaluation ................................................................................................... 33

6.2.1 Test implementation ............................................................................................ 33

6.2.2 Results and analysis ............................................................................................ 33

6.3 Complex states evaluation ............................................................................................. 34

6.3.1 Introduction ........................................................................................................ 34

6.3.2 Evaluation 1 – Play a video ................................................................................. 35

6.3.3 Evaluation 2 – Play a video extended .................................................................. 35

6.3.4 Evaluation 3 – Record and upload a video ........................................................... 36

6.3.5 Evaluation 4 – Search a video ............................................................................. 36

6.3.6 Evaluation 5 – Upload a video............................................................................. 37

6.3.7 Evaluation 6 – See the information about the user account .................................. 37

6.3.8 Evaluation 7 – See information about a video ...................................................... 38

6.3.9 Evaluation 8 – Rate a video ................................................................................. 38

6.3.10 Evaluation 9 – Read comments about a video .................................................... 39

6.3.11 Evaluation 10 – Set a video as favorite .............................................................. 39

6.3.12 Evaluation 11 – Set a video as “unfavorite” ....................................................... 40

6.3.13 Evaluation 12 – Share a video ........................................................................... 40

6.3.14 Evaluation 13 – Flag a video ............................................................................. 41

6.3.15 Evaluation 14 – Delete a video .......................................................................... 42

6.3.16 Evaluation 15 – Subscribe a channel ................................................................. 42

6.3.17 Evaluation 16 – Unsubscribe a channel ............................................................. 43

6.3.18 Evaluation 17 – Play more than one videos per time .......................................... 43

6.3.19 Evaluation 18 – Change the settings .................................................................. 44

6.3.20 General analysis of all complex evaluations ...................................................... 45

6.3 Conclusion .................................................................................................................... 45

7. Example of usage of the application 47

7.1 Introduction ................................................................................................................... 47

7.2 Scenario 1 - The relation between the data rate and the Quality of Experience ............... 47

7.3 Scenario 2 - Geographical usage and access to a concrete category ................................ 48

7.4 Scenario 3 – Better QoS for a concrete user ................................................................... 49

7.5 Scenario 4 – Probability of usage of YouTube through the day ...................................... 50

7.6 Scenario 5 – Prediction of the favorite videos of the user ............................................... 51

7.7 Conclusion .................................................................................................................... 53

Page 8: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

viii

8. Conclusions and discussions 55

8.1 Goals and goals dissection ............................................................................................. 55

8.1.1 Video sharing program’s description and analysis ............................................... 55

8.1.2 User interaction monitoring ................................................................................. 55

8.1.3 Description of possible scenarios ........................................................................ 55

8.2 Contributions ................................................................................................................. 55

8.3 Discussions .................................................................................................................... 56

8.4 Conclusion .................................................................................................................... 56

8.5 Future works .................................................................................................................. 56

8.5.1 New version of YouTube .................................................................................... 56

8.5.2 Other video sharing programs ............................................................................. 56

8.5.3 RDF data analysis ............................................................................................... 57

Bibliography 59

Appendices 63

A Description of the YouTube Application s information 63

B Device information obtained 69

B.1 Device information obtained when the application starts monitoring process................. 69

B.1.1 Software information .......................................................................................... 69

B.1.2 Hardware information......................................................................................... 70

B.1.3 Language and country ........................................................................................ 71

B.1.4 Cell connected information ................................................................................. 71

B.1.5 Data connection .................................................................................................. 71

B.1.6 Mobile network information ............................................................................... 71

B.1.7 SIM – Subscriber Identity Module ...................................................................... 72

B.1.8 Screen information ............................................................................................. 73

B.1.9 General Network information ............................................................................. 74

B.1.10 Wireless network information ........................................................................... 74

B.2 Device state change monitor ......................................................................................... 76

B.2.1 Cell information ................................................................................................. 76

B.3 Additional information related with the device information obtained ............................. 76

B.3.1 Android system API Level Table ........................................................................ 76

C Keywords used to monitor logs 79

C.1. Keywords used to detect the states, general status, modes and parallel actions.............. 79

C.1.1 States .................................................................................................................. 79

C.1.2 General Statuses ................................................................................................. 92

C.1.3 Modes ................................................................................................................ 92

C.1.4 Parallel actions ................................................................................................... 93

C.2 Keywords used to detect internal states ......................................................................... 94

D Specific information obtained through logs 115

E Specification of the device utilized for the evaluation 140

Page 9: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

ix

List of figures

1.1.1 Global consumer Internet Traffic. 2010 – 2015 ............................................................... 1

1.1.2.1 Peak period aggregate traffic composition – North America: fixed access ....................... 2

1.1.2.2 North America, fixed access, peak period, top applications in Downstream by Bytes ...... 3

1.1.3 Consumer Internet video. 2010 – 2015 ............................................................................ 3

1.2.1.1 Pricing models in US, UK, Singapore and Australia ........................................................ 4

1.2.1.2 The root challenge for the traditional telecommunication companies ............................... 5

3.1 Smart phone analysis. Quarterly shipment data. Q4 2010 .............................................. 11

4.1.1 Android software stack .................................................................................................. 13

4.2.1 Use cases of YouTube 1.6.20 (E) on Android System ................................................... 18

4.2.2.2.2 General state diagram for YouTube 1.6.20(E) on Android System ...........................22-23

4.3 Semantic web layer cake ............................................................................................... 25

5.2.1 The interface of YouTube monitor ................................................................................ 27

5.2.2 YouTube monitor application installed in Android System ............................................ 28

5.2.3 YouTube monitor program’s general overview ............................................................. 29

5.2.4.1 Starting the monitor process sequence diagram ............................................................. 30

5.2.4.2 On location changed sequence diagram ......................................................................... 30

5.2.4.3 Monitoring the user actions sequence diagram .............................................................. 31

5.2.4.4 Stopping the monitor process sequence diagram ............................................................ 31

6.2.2 Single state evaluation ................................................................................................... 33

6.3.2 Evaluation 1 – Play a video ........................................................................................... 35

6.3.3 Evaluation 2 – Play a video extended ............................................................................ 35

6.3.4 Evaluation 3 – Record and upload a video ..................................................................... 36

6.3.5 Evaluation 4 – Search a video ....................................................................................... 36

6.3.6 Evaluation 5 – Upload a video ....................................................................................... 37

6.3.7 Evaluation 6 – See the information about a user account ............................................... 38

6.3.8 Evaluation 7 – See information about a video ................................................................ 38

6.3.9 Evaluation 8 – Rate a video ........................................................................................... 39

6.3.10 Evaluation 9 – Read comments about a video ................................................................ 39

6.3.11 Evaluation 10 – Set a video as favorite .......................................................................... 40

6.3.12 Evaluation 11 – Set a favorite video as “unfavorite” ...................................................... 40

6.3.13 Evaluation 12 – Share a video ....................................................................................... 41

6.3.14 Evaluation 13 – Flag a video ......................................................................................... 41

6.3.15 Evaluation 14 – Delete a video ...................................................................................... 42

6.3.16 Evaluation 15 – Subscribe a channel ............................................................................. 43

6.3.17 Evaluation 16 – Unsubscribe a channel ......................................................................... 43

6.3.18 Evaluation 17 – Play more than one video per time ....................................................... 44

6.3.19 Evaluation 18 – Change the settings .............................................................................. 45

6.3.20 General analysis of all complex evaluations .................................................................. 45

7.2 Relation between data rate and QoE .............................................................................. 47

7.3 Video played in Kista since 2011.06.23.12.49 to 2011.06.23.12.50 ............................... 48

7.4 Video traffic of a concrete user from 2011.06.23.10.30 to 2011.06.23.11.30 ................. 50

7.5.1 Number of sessions per hour for a concrete user in one month....................................... 51

7.5.2 Probability of starts a session per hour for a specific user .............................................. 51

7.6.1 States where the video played comes from .................................................................... 52

Page 10: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

x

7.6.2 States where the video played comes from – Percentages .............................................. 52

Page 11: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

xi

List of tables

1.1.3 Consumer Internet video. 2010 – 2015 ............................................................................ 4

7.3 Video played in Kista since 2011.06.23.12.49 to 2011.06.23.12.50 ............................... 48

7.4 Video traffic of a concrete user from 2011.06.23.10.30 to 2011.06.23.11.30 ................. 50

Page 12: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

xii

Glossary

Base station In wireless communication system, a base station is a wireless station installed in a

fixed location to communicate with the mobile devices such as mobile phones.

OPEX It stands for Operational Expenditure and it is the ongoing cost of running a product. In the

context of this project, OPEX is the cost for the mobile operators to maintain the existence

infrastructure.

CAPEX It stands for Capital Expenditure and it is the counterpart of OPEX. It is the expenditures

to create future benefits. In the context of this project, CAPEX is the inversion needed to create

infrastructure necessary to maintain the QoS and the QoE.

QoS The Quality of Service measures the capacity of the vendors to offer a concrete service. In the

context of video streaming service, it could be the level of acceptable defects on a service.

QoE The Quality of Experience used in this project refers mainly to the perception of the users

about the experience received with the mobile devices. In contrast with QoS, it is subject to the user

and different user can experiment different QoE in the same situation.

Exabytes It is a unit to measure the computer storage and it is equal to 1.000.000.000.000.000.000

Bytes.

Petabytes It is a unit to measure the computer storage and it is equal to 1.000.000.000.000.000

Bytes

CARG It stands for Compound annual growth rate and it measures the smoothed annualized gain of

an investment over a given time period.

Internet PVR It is one of the categories that Cisco has grouped the Internet video. It is the recorded

live TV content for late view.

Ambient video It is used to group one of the types of videos in Cisco predictions. It contains all the

persistent video streams such as pet cams, home security cams and nanny cams.

Average Revenue per User (ARPU) It is a term used for companies who offers subscriptions to

the users and it measures the revenue generated by one customer over the time, typically each

month or each year.

OMS It is a variant of Android system created for the Chinese market. It stands for Open Mobile

System and it is supported by the Chinese company China Mobile Ltd.

Tapas It is an OS derived by Android system launched by the ex-president of Google in China. It is

modified to support Chinese social networks, Chinese e-books and other services that are not

related with Google.

Device ID (IMEI for GSM phones and MEID for CDMA phones) IMEI stands for International

Mobile Equipment Identify and MEID stands for Mobile Equipment Identifier. Both of them are

usually unique to identify the mobile devices, but not subscribers. For example, IMEI is used to

reduce the effect of mobile phone theft, by stopping the mobile device with a stolen IMEI to access

to network.

Page 13: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

xiii

Software fingerprint Generally, a device fingerprint contains compact information about the

hardware and the software. In the case of Android, it collects the software fingerprint which

uniquely identifies the software build.

Android ID It is a 64-bit number randomly generated when the Android devices is booted for the

first time. It should remain constant for the lifetime of the device.

URI Uniform Resource Identifier is a string of characters that enables the unique identification of a

resource on Internet. It could act as URL (Uniform Resource Locator), URN (Uniform Resource

Name) or as both. The URI is frequently used in markup languages such as HTML, XML or XLST

to point to other resources.

URL Uniform Resource Locator is a Uniform Resource Identifier that specifies the location of a

well-known resources and the mechanism to retrieve it. This is possible because the syntax specifies

a schema which could be used to identify the process method of the URL.

Page 14: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

xiv

Page 15: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

1

Chapter 1 Introduction

In this chapter, first of all, the future tendency of Internet and the main sources of video traffic on

Internet are presented, along with the actual situation of the mobile operators and the problems

that they are facing and possible solutions. Secondly, the aim and goals of this project will be

introduced. In order to achieve those aim and goals, a specific methodology is described. Finally,

the limitation of this project and its structure could be finding.

1.1 Background

1.1.1 The future tendency of Internet

Since Sir Tim Berners-lee invented the web on 1989, the traffic on internet has been growing.

Recently, the forecast published by Cisco shows the future tendency of traffic on Internet [22]. It

predicts that the global IP traffic will continue growing, reaching 966 Exabytes by the end of 2015.

Figure 1.1.1 Global consumer Internet traffic. 2010 – 2015. Source [22]

As the graph shown, the type of data which increase most is Internet video. The study of Cisco

point out that on 2010, the Global Internet video traffic has surpassed global file sharing. It wills

growth from 40 percent of consumer internet traffic in 2010 to reach approximately 62 percent of

global consumer traffic by 2015. That is, on 2015, the video traffic on internet will reach 33,620

PetaBytes per month, which means that the among of video that will across global IP networks

every second in 2015 would need 5 years to be watched.

Due to this huge growth, the following sections are going to focus on the video traffic on Internet.

First of all the main sources of video traffic on Internet is going to be analyzed.

1.1.2 Main sources of video traffic on Internet

Nowadays, with such big amount of data traffic on Internet, it could be hard to know the rank of

most accessed web pages on Internet with accuracy. Thanks to Alexa, a subsidiary company of

Amazon, this information is easily obtained and daily updated.

According to this global rank, YouTube is the thirst most popular web page globally, only behind

Google and Facebook. [19]

Created on February 2005 and acquired by Google Inc. on November 2006 [14], YouTube is a

worldwide service portal where the user can upload, share and watch videos.

Page 16: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

2

Based on the official information on the web of YouTube, it is localized in 23 countries across 24

different languages, which make it receives 2 Billions of views a day and 24 hours of videos to be

uploaded to it every minute [32].

With such amount of traffic and such good position in Alexa rank, it seems YouTube is the most

important source of the video traffic on Internet. But Internet is a place where the things can change

very fast, looking at the best one at the present could not be enough, the potential to grow of its

competitors is also important.

In this sense, the “Global internet Phenomena Report: Spring 2011” provided by Sandvine advice

the reader to the rapid growth of Netflix. [26]

Netflix is an American provider of Video-on-demand Company in United States and Canada. It

provides both physical rental service (United States) and internet-based streaming service (United

States and Canada). By the year 2010, it has 19.7 millions of subscribed and a revenue of 2.16

billion. [24]

Figure 1.1.2.1 – Peak period aggregate traffic composition – North America: fixed access. Source

[26]

This graph of Peak period aggregate traffic composition in North America regarding the fixed

access shows the increase of the Real-time entertainment between 2009 (29.5%) and March 2011

(49.2%), which is almost 60%. Furthermore, Sandvine forecasts the Real-Time entertainment

category will represent 55-60% of peak aggregate traffic by the end of 2011.

Page 17: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

3

Figure 1.1.2.2 – North America, fixed access, peak period, top applications in Downstream by

Bytes. Source [15]

The reason behind this heavy growth is the domination of Netflix in the video traffic market, which

represents 29.7% of peak downstream traffic in North America, as the figure 1.1.2.2 shows. This

peak downstream traffic makes possible Netflix becomes the largest source of Internet traffic

overall in North America. [26]

Once the two main sources of the actual video traffic on Internet are presented, the future tendency

of Internet video and its components will be analyzed.

1.1.3 Internet video dissection

In the same study provided by Cisco, the forecast of the Internet video between 2010 and 2015 is

also provided, which is extracted to build the graph and the table below [22]

Figure 1.1.3 – Consumer Internet video. 2010 – 2015. Source [22]

Page 18: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

4

Consumer

Internet Video

2010 2011 2012 2013 2014 2015 CARG

2010-2015

Short form 697 931 1254 1665 2208 2978 34%

Long form 2936 4984 6932 9255 11980 15879 40%

Internet video

on TV

342 838 1626 2786 4165 5911 77%

Live internet TV 480 777 1185 1754 2477 3417 48%

Ambient video 93 258 521 860 1207 1523 75%

Internet PVR 40 78 134 237 387 581 71%

Mobile video 85 213 493 1028 1933 3333 108%

Total 4672 8079 12146 17583 24357 33620 48%

Table 1.1.3 – Consumer Internet video. 2010 – 2015. Source [22]

Based on such study, the Internet video traffic will have a compound annual growth rate (CAGR) of

48% since 2010 to 2015, which will growth from 4672 PetaBytes on 2010 to 33620 PetaBytes on

2015 (719%). Among them, the one which has the highest CAGR value is the mobile video, which

wills growth from 85 PetaBytes on 2010 to 3333 PetaBytes on 2015. By the end of 2015, the Cisco

study predicts that the mobile video traffic will surpass Internet PVR, Ambient video, short form

and it will be almost the same as live internet to TV.

With such among of traffic within 5 years, are the mobile operators prepared for it? The next

section will analyze the actual situation of the mobile operators and the problems that they are

facing.

1.2 Problem description

1.2.1 The actual mobile operator’s situation and future prediction

Figure 1.2.1.1 - Pricing models in US, UK, Singapore and Australia. Source [18]

The graph above shows the actual pricing models (March 2011) in US, UK, Singapore and

Australia. [18] It groups the price model of those four country in “Per MB”, which means the final

price depending on the traffic used; “< 5GB”(per month), a flat fee with a limitation less than 5GB

of data traffic per month, and “>5GB” (per month), a flat fee with limitation more than 5GB of data

traffic per month.

It is very clear that in all those countries, the flat fee with a limitation more than 5GB is the price

model which dominates the market. This is especially clear in US, where 84% of the user has a

relatively unrestricted price model.

Page 19: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

5

The flat fee was introduced to make the mobile data prices more attractive for the users, who can

easily translate their behavior from the computer to mobile devices. It has advantages and

disadvantages. At the same time that the mobile operators are gaining more users, the flat rate could

become a problem because it decreases the Average Revenue per User (ARPU) and increase the

data traffic. This is, by one hand, the incoming of the mobile operators will be decreased and by

another hand, the mobile operators are forced to make more investment in CAPEX and OPEX if

they want to maintain the actual level of QoE and QoS.

Figure 1.2.1.2 – The root challenge for the traditional telecommunication companies. Source [17]

The graph above shows that, once the data traffic exceeds the voice traffic, the actual situation can

greatly influence the revenue of the mobile operators, making the traffic growth not anymore

correlated with revenue growth.

With such big problems, the mobile operators should find solutions to make the situation more

sustainable.

1.2.2 Possible solutions

The easiest solution could be the end of the flat rates.

In June of 2010, AT&T signaled the end of flat-rate data tariffs for iPhone users in United States.

Instead, a model where owners could be up to 2 gigabytes of data per month on standard contracts

will be used. [2]

Also in United States, Verizon Wireless is going to charge new users by how much data they

consume in July 2011, finalizing the end of all-you-can-eat mobile Internet plans. [3]

However, because the contract that the final users have signed has a concrete duration of services,

until it get expires, this solution won’t be effective. Meanwhile better solution should be proposed.

A good solution could act both preventing the rapid growth of traffic cost and increasing the value

or the revenue of the mobile operators [17].

For the first part of the solution, prevent the rapid growth of traffic cost, the mobile operators could

try to manage the resources more efficiently, share infrastructures and making more efficient

deployment. To reach the aim of increase the revenues, the mobile operators could try to exploit

existing infrastructure more effectively and improve the user experience, for example by extending

the battery life of mobile devices [17].

Page 20: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

6

1.3 Aims and goals

Because the long time required and wide knowledge needed to finish all the smaller solutions, this

project is going to focus one of them: exploit existing infrastructure more effectively.

Mainly, this solution requires two types of information at the same time: The utilization level of the

existing infrastructures and how they are going to be explored (User behavior)

From the point of view of the mobile operators, the first type of information is not so hard to know

because the infrastructure is under their control. The hardest part to more efficiently exploit the

existing infrastructure is to know the user behavior, which represents a constant destination of data

that is always moving.

Because the preferences and the needs of each person are not equal, this movement could be viewed

as a constant challenge for the mobile operators to drive correctly the traffic to the right

infrastructure when it is needed.

Fortunately, the human behavior is predictable, by knowing the previous actions of a specific user,

her future behavior could be determined with a certain level of probability.

Driven by this idea, the aim of this project is to build a program to explore the possibility to monitor

the user behavior with a video sharing program through a mobile device already on the market. In

order to fulfill this aim, several goals are set:

Describe and analyze the behavior of a video sharing program running in a mobile device

already on the market.

Utilize the tools available to monitor the interaction of the user with the program.

Describe different scenarios where the data obtained could be useful.

1.4 Methodology

In order to fulfill the aims and the goals described in the previous section, this project has been

developed following a specific methodology.

First of all, because the large number of types of platforms and video sharing programs, a market

study should be done. In this market study, a concrete mobile device platform and a concrete video

sharing program should be chosen.

Once it is done, in order to make the results of monitor available for most of the customers and

make it easy sharable, a lecture review has been carried to choose the best data representation

format. After it, the device platform and the video sharing program are analyzed in detail to explore

all the monitoring possibilities and capture as much action as possible.

All those knowledge are utilized in the next step, where a prototype which runs in the chosen

platform has been implemented. Finally, an extent evaluation has been done running the prototype

in order to test the accuracy.

1.5 Limitations

The time constraint (20 weeks) has determined most part of the limitations of this project.

First of all, as the section 3.1 has demonstrated, there are several platforms in the market.

Developing an application on all them could be possible but it requires time. Thus, only the best of

them will be used. Through the study done by Canalys [20], It seems Google based platforms

Page 21: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

7

(Android, OMS, and Tapas) dominate the market. Among them, a specific version of Android (2.1)

has been chosen.

In the section 3.2 of the same chapter, YouTube application has been chosen to be monitored. In

this sense, because different version of YouTube application could behave differently, only the

version 1.6.20 (E) has been analyzed and monitored.

There is also a limitation of the monitor process utilized. There could be several ways to monitor an

application on Android. The one utilized is based on Logs generated by the application, which

cannot monitor all the user actions. Other methods could be utilized in combination with this

methods in order to achieve 100% of user actions monitored, but it will requires more time.

Finally, more extend evaluation could be done. At time of writing this project, hundred mobile

devices compatible with Android has been released. [23, 29] Testing the monitor application on all

them by utilizing tools as TestDroid could prove that the monitor application work for all the

Android devices, but it will take long time and a lot of resources.

1.6 Project outline

In the following sections, the author is going to explain the possible problems that this project could

help to answer in the section 2. After it, the first step of the methodology which is market study will

be presented in the section 3. The software environment, both YouTube application and Android

system will be introduced in section 4. Lately, in section 5, the author is going to explain the

functions of YouTube Monitor program implemented, its interface, the general overview, the design

of the database and the internal actions when the user runs the program.

In the section 6, the author has designed a single test and 18 sets of more complex test in order to

evaluate the monitor capacity of the program. The potential and the scenario where this program

can be used are shown as example in section 7. Finally, in section 8, the author is going to do a

review of the goals and objectives proposed, a discussion about the actual state of the program, as

well as the future works. The conclusion, which summarizes the entire project, is also shown in this

section.

Page 22: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

8

Page 23: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

9

Chapter 2 Problems description

This chapter is going to introduce several set of questions describing the problems that the

researchers could have and this project could help to solve.

In section 1.2.2 the author has point out that the efficiently use of the actual infrastructure could be

part of the solution for the mobile operators to gain more revenue. By knowing the resources

available and the user s behavior, the data traffic could be driven to be present in the right moment

and right place, because the context is shifted on time and place. [4, 5, 6, 7, 8, 9, 10, 13]

However there are still questions that should be answered:

The first and the most general set of questions could be related with how to monitor user

interactions with video. Currently there are several platforms which allow users to watch videos via

streaming, and there are several applications that allow user access to videos on Internet which can

behave in very different ways. The problems are, with such number of different platforms and

applications, how to monitor them? Is there a way to do it which is completely transparent to the

users? In such case, are all the interactions of the user monitored?

The second set of questions is about how to map QoS and QoE. Because video streaming on

Internet represents a long duration and time sensitive traffic, at what data rate the user will watch

completely most of the videos? At what data rate the user will watch less than half of the videos?

The thirst set of questions are about the habits of the users. Regarding the place, the question could

be what percentages of user watch the videos while they are traveling and what percentage of they

watch the video while they stay in the same place for long time. And regarding the time, the

question could be what percentage of they watch the videos always at the same time and what

percentage of they watch the videos at different times.

Once we know the habits of the users, the next set are about the level of prediction of the users. Is it

possible to predict the user behavior in the future? Are the predictions reliable? For a given user, Is

there any place or/and any time this user is more likely to request the videos? What is the possibility

to predict the place and the time of request of next video?

If the set of the questions above are answered, the mobile operators could start pre-fetching the

videos in the base stations where the user usually connects, in the user mobile devices or in both of

them. Then, the next set of questions is for an individual user or for a group of users, what are the

gains? Is she/they experimenting better quality of service and quality of experience? Are the quality

of service and the quality of experience good enough for her/them?

Page 24: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

10

Page 25: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

11

Chapter 3 Market study

This chapter describes the first step of the methodology utilized, which is market study. It has two

parts: The first one is about the analysis of the smart phone market and the second one is about the

logic behind when a specific application is chosen.

3.1 Smart phone market

Since the introduction of the concept of smart phone with IBM Simon on 1992 [30], the market of

smart phones has been growing with platforms such as Symbian, Palm, Windows, Blackberry,

Apple’s iPhone or Android.

Based on the market study published by Canalys on January of 2011, Google dominates the market

of smart phone shipment on the fourth quarter of 2010 with 32.9% of market share, while the

market share of Nokia and Apple are 30.6% and 16.0% respectively. [21] This study highlights the

shipment of Google phones (Android, OMS and Tapas) in the fourth quarter of 2010 are 33.3

millions, which represents a growth of 615.1% regarding the same period on 2009.

Figure 3.1 – Smart phone analysis. Quarterly shipment data. Q4 2010. Source [21]

For this reason Google based platform has been chosen to implement the video sharing monitor

program and among them, Android system.

3.2 Video sharing services

By the video-sharing services side, the section 1.1.2 has shown that YouTube is the biggest video

traffic source worldwide and Netflix has very good potential to compete with it, both options could

be valid.

When the author started the project, on January 2011, there was not program that enable the

possibility to access the film database of Netflix through Android System. The actual program was

launched on 12th of May, 2011 [25]. This means there were no better options than YouTube. So,

YouTube application for Android system was chosen to be monitored.

Page 26: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

12

Page 27: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

13

Chapter 4 Software environment

In this chapter the software environment is presented. First, the description of platform chosen and

most part of the components utilized in the implementation are introduced. Lately, the YouTube

application which should be monitored is analyzed, both with use cases and with detailed state

charts. Finally, RDF, the data representation format which the result will be presented is analyzed.

4.1 Android system

4.1.1 General view

Android is a software stack for mobile service that includes an operation system, middleware and

key applications [28]. The development and the release are supported by the Open Handset Alliance,

which is composed by 81 technology and mobile companies, from semiconductor companies,

handset manufacturers to software companies, mobile operators and commercialization companies.

The follow picture shows the Android architecture:

Figure 4.1.1 – Android software stack. Source [20]

The applications which run in Android use Java as main language and XML (eXtensible Markup

Language) to build the user interface. With proper user permission and by using the application

framework, any application running in Android can take advantage of the device hardware, access

location information, run backgrounds services, set notification status bar, etc.

Other important features of Android is every Android application runs in its own process, which

guarantee the isolation from other applications. This is possible using the Android’s own virtual

machine called Dalvik Virtual Machine, which unlike the Java Virtual Machine, is register-based.

Page 28: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

14

This feature makes the Android’s Virtual Machine more efficient [16], enable the possibility to run

several Virtual Machines at the same time in the mobile phone.

4.1.2 Components

The android applications are building basically by components; each one represents an entry point

through which the system can enter the application. Each one of them exists by its own and plays an

essential role.

There are four different types of application component: Activities, which is what the user see in the

screen; Services, which runs in the background; Broadcast receivers, which receive the intents and

Content provide, which provide data for the applications. The application built for this thesis is

based on the first three components.

4.1.2.1 Activity

The activity is one of the most important components in Android. It is prepared to be shown to the

user and normally it is related with a user interface file written in XML. The user can specify the

interface using the XML files and show it with the proper Java code.

In the program made for this project, there is only one activity which the user can decide to start the

monitor process, stop it or finish the actual activity.

4.1.2.2 Service

Unlike activities in Android, services run silently in background.

The priority set in Android regarding the services is the services have lower priority than an active

activity but higher than an inactive activity. Because this, it is perfect bind them to the application's

component and make the application continue runs and responses the user's action in the

background.

There are two types of the services: Bounded service and Started service. The main characteristics

of a bounded service are:

• This service will be created when some component bind it.

• Multiple components can bind the service at once.

• When no component is binding a service, this service will be destroyed automatically.

• It is possible to provide a client-server interface.

The main characteristics of a started service are:

• This service will be created when some component start it explicitly.

• The service will run almost indefinitely, even when the component which has started it has

been destroyed. So, it is useful when not result is required.

• To stop this service, a component could use the stop method or the service itself could stop

itself when it considers the goal for which the service has been created has been reached.

It is important to clarify all the started service could be also bound. This is, the combination of both

type is possible: A service can be started first and then bind it or it can be bind first and later be

started.

In the extremely low memory case, the service could be killed. But the system will try to restart it

again as soon as it has enough memory.

Page 29: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

15

There are two services running in the code made for this thesis: DeviceStateServices which monitor

the general state of the device and GeneralService, which is responsible of monitor the YouTube

application user’s actions. Both services are started service.

4.1.2.3 Intents

Before explain the broadcast receiver, the intents should be described because basically broadcast

receiver is a class which receive the intents and process it.

The Intents is an abstraction description of operations which are used in Android to perform a

concrete one. [11] It contains two primary attributes: action and data. The action attributes contains

information about the general operation to be performed. There is several actions existence in

Android such as ACTION_VIEW to obtain information or ACTION_DIAL to display the phone

dialer. The coder can also set her own actions. The data attributes contains data which is used to

operate in the operation, which is expressed in URI format.

In addition to the primary field, several secondary attributes such as category or type can be used.

The most practical part of the Intents is they have a secondary field called “extras”. With the

method putExtra(), any basic data type such as Boolean or String could be added to intent and being

exchanged between processes.

In the monitor application, the author has created intents with a unique action in Android System,

which are utilized to send the RDF data to the broadcast receiver to be lately saved in the database.

4.1.2.4 Broadcast receiver

From the point of view of the order of intent processing, there are two types of the broadcast

receivers in Android: Normal broadcast receivers, which run in an undefined order, and ordered

broadcasts, which the order of processing could be controlled with the android:priority attribute of

the matching intent filter.

The broadcast receiver only contains a method called onReceive() and it is only alive when this

method is called. When this method finished, the system considers the receiver to be finished.

The broadcast received is used in the monitor program made for this thesis in order to receive

intents that contain the RDF data to be saved in the database. This makes the code more flexible

because as long as any java class has the variable “context”, which contains the context of the

program, it can send the intent with the RDF data to save it in the database.

4.1.2.5 Content providers

In Android, the persistent data is saved using three types of resources: Shared preferences, SQLite

database and Content Provider.

Shared preference is explained in the section 4.1.3.

SQLite database is the default relational database that comes with Android. By default, the database

is a sandbox. This means its content is only available for the application which has created it. [11]

This can be changed using the Content provider, which enable the content available to be shared.

Once the default SQLite database is turned to Content provider, any application which has proper

permission can add, modify and remove the contents.

Because there is no need to share the content of the monitor program’s data, the SQLite database

where the information is saved, hasn’t been turned into the Content provider.

Page 30: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

16

4.1.3 Shared preferences

Shared preference is the way recommended to save the UI state, user preferences and application

settings in Android System.[11] It utilizes the key/value system to save/retrieve data. This is, every

single data will have a key which is unique in the shared preferences. By using this key, the value

saved previously, even the application has been killed and restarted again, will be restored. In case

the value required is not set yet, a default value will be returned.

In the YouTube monitor application, the shared preference is used mainly to save the unique id of

the mobile device and the previous state reached.

4.1.4 Android Manifest file

The Android Manifest file is an XML file presented in the root directory of any Android program

which contains all the essential information about the application. Those information could be the

java package name which serves as a unique identifier for the application, the description of the

components of the application (Activities, Services, Broadcast receivers, contents providers), the

permission required to run the application, the minimum level of API that the application requires,

(See appendix B.3.1) etc. It is unique in the application and it should be present since the beginning

because it indicates the activity of the application which should be run when the application starts.

4.1.5 LogCats

LogCats is the method used on Android based devices to show messages or logs which is similar to

the sentence System.out.print() of Java. To invoke it, the coders can write the print code in any

place of the existence code. It is important to mention that those messages or logs can be captured

and handled by any program running in Android, because it is the base of the program implemented

for this project.

There are 7 types of logs: Verbose, Debug, Information, Warning, Error, Fatal and Silent.

All they have different order of importance and they are sorted by it. The Verbose is the less

important one, and Silent is the most important one. In fact, Silent is so restrictive that nothing will

be displayed.

The general pattern to invoke the logs is using the function Log and then the first character of the

type of the log. It requires at least two arguments: Tag and Message. Tag is used to classified the

log and message is the information which the coder what to display.

In Android, there are three buffers where the logs are stored: Main, which is the default buffer and

where most of the logs are; Events, where all the events-related logs are stored and radio, where all

the radio/telephony related logs are stored.

4.1.6 Sending and receiving messages in Android

Beside the broadcast receiver, the other way to communicate in Android is using Messages and

Handlers. The main difference between the broadcast receiver method and the sending and

receiving message method is, in the second method, the receiver is known forehand, which is set

when the message is sent.

This receiver has to implement the method called handler. The handler is the process which

repeatedly checks the content of the message queue and filters the message which has itself as

receiver. Because of this loop, when the handler is not implemented in the activity, it should be

implemented in another thread.

Page 31: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

17

In the program implemented for this thesis, the messages are used to evaluate the transition between

states. Although the main log buffer used for it is the Events, sometime it is not enough. In order to

monitor also the logs from the Main log buffer, expecting some specific log to appears, a special

class WatchDogPack is implemented. Basically, with this class, the application can add and remove

Watchdogs dynamically, when the application is running. If a Watchdog found a log which match

with the characteristics set, it will send a message to the handler then the application could act

depending on the message.

Once the main characteristics of Android System are presented, the author is going to explain how

the specific version of YouTube application in Android System works.

4.2 Analysis of the YouTube application

In this section, first the author is going to show all the case studies and then, explain all the states,

statuses, modes and parallel actions.

The version of YouTube application analyzed is 1.6.20 (E) which runs from the version 2.1 of

Android O.S. or later.

4.2.1. YouTube application use cases

The follow chart shows the use cases of the YouTube application:

Page 32: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

18

Figure 4.2.1 – Use cases of YouTube 1.6.20(E) on Android System

The main functions of YouTube application on Android are manage videos, handler a video while it

is playing, manage a channel, manage the user account, get information and change settings.

Page 33: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

19

To manage an application, the user can record and upload a video, or upload a video already exists

in the Android device, search for a video, play a video, share a video, set a video as favorite, set a

video as unfavorite, flag a video as inappropriate, rate a video from 1 start to 5 starts or delete a

video which has been uploaded by the user.

While a video is playing, the user can pause the video, play the video, backward/forward a video,

set the quality of the video (HD on/off), change the scroll of the video or see the captions of a video,

if any.

In the YouTube application, any user is at the same time a channel that other users can subscribe. A

user can also decide to stop subscribing a channel in any moment.

YouTube application works with two modes: logged in and logged out. When the user is logged in,

she can perform all the actions that are possible when the user is logged out, and she has also

opportunities to perform other specific actions.

Another function that the YouTube application has is to obtain information. They could be

information about a video, about the user account, about the channel or about a playlist. Other

information that are possible to obtain are the comment from other users about a specific video, the

list of the favorite videos of the user, the list of subscribed channels, the videos of a specific playlist,

the list of the videos uploaded by the user and the list of the categories set by YouTube.

Finally, the user is allowed to change several settings for the YouTube program.

4.2.2. YouTube application in detail

4.2.2.1 Overview

In total, YouTube application has 44 states, 2 general statuses, 2 modes and 2 parallel actions.

The states are composed by each one of the screens shown in the application and the moment when

the application is looking for a video in the server except the state 6, Start searching, which doesn’t

have any screen representation.

The general statuses are Launched and Finished, which indicates if the YouTube application has

been launched or it has been killed by Android System.

At the same time, YouTube application can works in both logged in mode or logged out mode. The

logged out mode are contained inside the logged in mode in sense that all the states of logged out

mode are also reachable from the logged in mode.

Finally, there are two parallels actions. They are actions that the YouTube application creates when

it has to upload a video to the YouTube server. They are necessary because they are running in

background, which enable the possibility for YouTube application to be running at the foreground,

being responsive for the actions of the users.

The first one corresponds to the action when the YouTube application is uploading a video recently

recorded and the second one corresponds to the action when the YouTube application is uploading a

video existence in the mobile device.

In appendix A there is a short description of each one of the states, general statuses, modes, as well

as the parallel actions.

Page 34: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

20

4.2.2.2 Transition between states, general statuses, modes and the invocation of parallel

actions

4.2.2.2.1 General rules

In any Android device, the requirement states that the manufacturers must implement at least four

buttons: Home, menu, back and search [12]. The behavior of them should be the same for all the

applications. Basically the home button makes the device shows the home screen, the menu buttons

make appears the menu and it is context dependent, the back buttons make the application go to the

last state and the search buttons open a keyboard where the user can enter any keyword and look for

any information related to that keyword.

If the user presses the buttons and hold down them 1 or 2 seconds, a new action could be performed:

with the home button, the recently used applications (at most 6) will appear; with the menu button,

a keyboard will appears where the user can enter any keyword and make search within the phone.

Finally, with the search button, the voice search will be launched.

The existence of those buttons enables the possibility to the users to come back to the previous state

in any moment (Except the state 6. Start searching) by pressing the physical back button or go to the

home screen (exiting any application) in any moment by using the physical home button.

All the Android system supports the utilization of the touch screen. [28]. This enable the possibility

to implement the virtual buttons or buttons which will appears on the screen according the user

interface implemented. If the user press on the screen where the buttons are, her action will be

captured and the system will act as if the user has press on a physical button.

With the use of touch screen, the user also has the possibility to hold down the finger pressed on the

screen. This could enable the context menu, which displays a list of possible actions. As the

physical buttons, in YouTube application, the virtual buttons are also used both to make the

transition between the states and to trigger an internal state.

4.2.2.2.2 Transition between states

Page 35: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

21

[White page left intentionally]

Page 36: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

22

Page 37: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

23

Page 38: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

24

Figure 4.2.2.2.2 – General state diagram for YouTube 1.6.20(E) on Android System. Figure

available on http://www.jiahaoliuliu.com/2011/06/master-thesis-youtube-state-chart.html

In the State chart above, all the possible transition between the states are captured, as well as all the

internal states possible. In order to simplify the chart, some transition between the states is shown

inside the source state.

Also for simplification, the state 1, Main screen, is shown as also final state. This is, when the user

has finished the actions to perform, she can come back to the first state to perform other actions.

The other possibility while the user is performing an action is decided to not continue with such

action planned and come back to the final state. In this sense, the user can both come back to the

first state and press repeatedly on the physical back button, which the user can do in any state or

press on the virtual home button which will appear if the user presses on the physical menu button.

Because the existence of the physical home button, the user can exists the application in any

moment by press on it. In order to make the state chart more understandable, this transition is not

shown in the state diagram.

Another thing to take account is there are two groups of states which are context dependent. The

first group is because they invoke a call to other application, which depending on the applications

installed in the system and the system configuration, could trigger an external application. Because

the existence of the applications for Android is constantly changing, there is no way to know which

application will be triggered when a call is made. This makes impossible to monitor the behavior of

them.

They states of this first group are:

• 2. Start recording video

• 3. Video recording finished

• 17. Upload video

• 43. Share a video

• 44. Flag a video No internal state can be described for them.

The second group is because they are depending on the system configuration. In this group there is

only one state: 5 Showing keyboard. This state depends on the locale configuration of each machine

(The language and the region set on the phone) and also the preference of the manufacturers,

because they have the right to modify it to adapt Android System to their preferences. Due this

flexibility, this state cannot be monitored easily and it is considered as context dependent.

4.2.2.2.3 Switch General statuses

For the generation between the general statuses, because there are only two statuses, launched and

finished, a cycle is used. The YouTube application only can go to the status Launched when it is in

the status Finished, and vice versa.

4.2.2.2.4 Choose a mode

The transition between the two modes, logged in and Logged out, are also cyclic. The user only can

go to the mode Logged in when she is logged out and vice versa.

4.2.2.2.5 Invocation of parallel actions

Finally, to invoke the parallel actions, specific state of YouTube application should be reached. To

invoke the parallel action “Start uploading video recorded”, the state “4. Fill information about a

Page 39: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

25

video recorded” should be reached first. Then if the user fulfill all the compulsory data and press on

the “Upload” button, this action will be invoked, running in background, while the YouTube

application goes to the state 1, Main screen.

The invocation of the parallel action “Start uploading video” is almost the same as the action “Start

uploading video recorded”; the unique difference is it should be invoked in the state “18. Fill

information about a video uploaded”.

4.3 Resource Description Framework

Resource Description Framework (RDF) is a simple data model for writing down relations, which

forms part of the semantic web layer cake.

Figure 4.3 - Semantic web layer cake. Source [27]

Designed for knowledge representation, it is the standard model indicated by W3C consortium for

data interchange on the Web [31].

There are two main characteristics which make RDF a good standard model: its simplicity and its

universality.

The first characteristic is because all the knowledge is discomposed into triples: subject, predicate

and object. The subject is the one which do the action, the predicate is the action itself and the

object is the one which receive the action. For example, a simple knowledge could be “John has

mother Susan”. In this case, “John” is the subject, “hasMother” is the predicate and “Susan” is the

object.

This simplicity doesn’t mean RDF is incomplete. One of the advantages of RDF lies on the

invisible links that put the RDF together. Because the RDF data components could be any word, the

object in a RDF data could be also the subject of another RDF data. Thus, one by one, all the RDF

data could be interconnected if there is any relation between them, creating a more complex

structure.

The second characteristic, the universality, is possible by using URIs as global name, which

guarantees no name collision will be produced between RDF knowledge. Because URI is only a

string of characters, infinite URIs could be created based on any URI. This means, by having the

Page 40: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

26

control of a URI such as URL, anyone can create an infinite number of URIs for her purpose

without worry about the existence of the same URI created by others.

For example, in this project, all the RDF data contains the URL of the project COSEM which this

project forms part. This is, by knowing that the URL

http://www.wireless.kth.se/research/projects/69-cosem is unique in the world and it is controlled by

COSEM project, concatenating information after this URL and use them as part of RDF data saved

in the database, the universality of the data will be guaranteed.

As directly consequence of the universality, if the same URI is found in the components of different

RDF data, they are considering the same. This consequence is very important because it allows

different parties create different RDF knowledge about the same object without interference

between them and making sure that their data will be easily merged only by according on the URI

utilized. This is the reason of why RDF is highly scalable.

Because of this, RDF is very useful for this project. When the database is created, the monitor

program will create a URI with the information of the mobile device where the program is running

as the root of the RDF structure. This URI is unique in the world and each time this URI is created

on the same mobile device, they will be the same.

Lately, this database could be extracted to be merged into a bigger database. By having this unique

URI, in this bigger database, the monitoring information obtained from different mobile devices can

be merged easily, creating historical monitor information of each mobile device separately by

grouping them by the root of the RDF structure.

Page 41: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

27

Chapter 5 Software implementation

The thirst step of the methodology will be presented in this chapter. It starts describing the tools

utilized for the implementation, followed by the description in detail of the implementation. In this

description, the interface and description of the application installed on Android will be presented

first. Secondly a general overview of the flow of the data will be introduced. After it, the internal

data flow will be described supported by several sequence diagrams. Finally, the RDF database

utilized will be described.

5.1 Tool utilized for the implementation

For the implementation of the program, several tools are utilized.

First of all, eclipse was a utilized as the IDE (Integrated development environment) because it is the

unique IDE that works with the plug-in provided by Google to develop Android applications. The

version utilized is 3.6 (Helios). Secondly, the Android SDK was necessary to code for any program

for Android system.

The debug and evaluation process was possible utilizing a read device (HTC Hero, see specification

sin Appendix E) and LogCat viewer in eclipse that comes with Android SDK.

Finally, the use of ADB (Android Debug Bridge) makes possible direct communication with the

device through the terminal.

5.2 Implementation

5.2.1 Interface

Figure 5.2.1 – The interface of YouTube Monitor

The interface of the program has been designed as simple as possible. It contains three buttons:

“Start monitoring”, “Stop monitoring” and “Exit”.

As the names could suggest, the button “Start monitoring” is used to start the monitoring process,

the button “Stop monitoring” is used to stop the monitoring process and the button “Exit” is used to

exit the application.

There are several concepts for the interface that should be clarified:

The monitoring process is a simple process. It only has two states: Started or stopped. This means if

the user has already started the monitoring process, it cannot start it again. Not two monitoring

Page 42: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

28

processes will be running in parallel. By other side, if the monitoring process has been stopped,

there is no way to stopped it again.

Because the monitoring process runs in background, even when the user has exited the application,

it will continue running until the user press the “Stop monitoring” button or the background process

has been killed by Android by other reasons.

5.2.2 Application installed in the Android device

Figure 5.2.2 – YouTube monitor application installed in Android 2.1

The Android device has a default application manager, which could be used to check the

application’s status, or uninstall them. The figures below show the YouTube Monitor application

information in the application manager:

As the figure shown, the application uses 292 KB of the space. Notices this is the space used when

no data has been generated. This means the application has recently installed and it hasn’t started

collecting information yet.

The figure also shows the permissions required by the application. It requires the user location

permission, the phone state and identity permission, the network communication permission and the

system log files permission.

The first three permissions are used by the Device state service to obtain the device information and

monitor the user location. The last permission is used by the General Service to monitor the

YouTube user actions.

5.2.3 General Overview

Page 43: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

29

Here is the general schema about how the monitor application works:

Figure 5.2.3 – YouTube monitor program’s general overview

Basically the monitor application has one Activity and two services. The activity is used to start and

stop the services, which is shown as interface in the previous section, while the services are used to

obtain the information in background.

There are two different services: the device state service and the general service.

The device state service obtains most of the information about the device at the beginning of the

YouTube monitor program, when the user starts all the services. There is specific information, Cell

id and Cell latitude, which shows the base station that the mobile device is connected, which is

updated when any change of them occurs.

All the possible information that can be obtained is shown in the appendix B. Among them, the

most important information is:

• The phone number

• The software fingerprint

• The android ID

• The device ID They are unique data for any device. In the database they are utilized to make an entrance of RDF

data unique in the world.

The second service is called General Service and it is used to monitor the user actions. It utilizes the

logs generated by the events buffer to identify the actual state of the YouTube Applications. That is,

each time a new event log is generated, the Event Log Handler thread created by General Service

will analyze the event log to see if it contains any keyword that matches with a new state, mode,

general status or parallel action. If the answer is affirmative, the Event Log Handler will notify it to

the YouTube Log handler and the Background log handler, then all they will analyze the logs

corresponding to a specific buffer in order to get and save useful data. All the keywords are shown

in the appendix C.

Page 44: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

30

The process of saving database utilizes first a broadcast receiver which receive the intent that could

come from any part of the program and which contains the RDF data to be saved. Then the

broadcast receiver will interacts with the RDF Database adapter in order to save those data.

Because the Intents have a unique identification and it can be sending from any part of the code, it

makes the application very flexible. The code doesn’t have to worry about where to send or any

interactions with the database, it just has to create intent with proper identification and attach the

RDF data on it, then finally sends the intent.

5.2.4 Running the program

5.2.4.1 Starting the monitor process

Figure 5.2.4.1 – Starting the monitor process sequence diagram

As shown in the figure of interface, the monitoring starts when the user press on the button “Start

monitoring”. Then, the YouTube Monitor Activity, which is the interface screen, will create two

services: General Service and device state service.

Once the services are created, they will create several objects and interact with them. General

Service will create the RDF database adapter, the Event log handler filer, the RDF Broadcast

receiver, the YouTube log handler and the Background log handler. After the RDF Broadcast

receiver has been created, the device state service will try to obtain all the information regarding the

actual state of the mobile device and save them in the database by sending RDF intent to the RDF

Broadcast receiver. All the information obtained is shown in the appendix B.

Once the RDF Broadcast receiver receives the Intent, it will extract the information that it contains

and save them in the RDF database by interacting with the RDF Database adapter.

5.2.4.2 On location changed

Figure 5.2.4.2 – on location changed sequence diagram

The figure above shows the sequence diagram when the user location has changed. The device state

service will be always aware about the base station where the Android device is connected. When

Page 45: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

31

the user’s device has changed the base station, the Device state service will notice it and then it will

try to obtain the information about the new Base station. Once they are done, this information will

be send to the RDF Broadcast receiver as intent, which will be updated in the RDF database

including the information about when it has been changed.

5.2.4.3 Monitoring the user actions

Figure 5.2.4.3 – Monitoring the user actions sequence diagram

The most important function of the program is monitoring the user actions. Once the Event log

handler is created by the General server, it will starts to capture all the logs from the event buffer

and match each one of them with the keywords.

If the Event Log handler detects that the state, the status or the mode of the YouTube application

has been changed, it will first save the new state, states or mode in the database. Then it will invoke

the methods stateChanged() present both in YouTube Log handler and Background Log handler to

notify them the change made. Once they have noticed the change, all them will start to monitor the

relevant data and the possible internal states.

5.2.4.4 Stopping the monitor process

Figure 5.2.4.4 – Stopping the monitor process sequence diagram

As shown in the figure above, if the user wishes to stop the monitor program, she can press on the

“Stop monitoring” button and stop the processes. This button will call first the General Service to

start stopping processes running in background and then call the Device state service to stop such

service.

Once the General Service received the command to stop the service, it will stop all the processes

that it has started: Event Log handler, YouTube log handler, Background log handler, RDF

Broadcast receiver and the RDF database adapter. Finally, it will stop itself.

Page 46: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

32

5.2.5 The RDF Database

The design of the database is one of the most important tasks for the software engineer. Because it

means the interaction with a physical support, it is the part of the program which consume more

time. Due to the YouTube monitor program runs in background, it should be transparent to the user.

With this idea on mind, the author has designed a very simple database.

The monitor program uses the default SQLite database which comes with Android. It has just one

table with four columns, which correspond to Id, Subject, Predicate and Object of RDF data

representation. The data type of id is a number, and the rest are String.

It is important to clarify that all the RDF data saved in any database is unique in the world because

it concatenate several information. First of all, the URL of COSEM project which this project forms

part, secondly a unique ID generated by several information unique about the mobile devices,

which are the device ID, the phone number if any, the software fingerprint and the Android ID and

finally, the time stamp when the user action is performed to differentiate the same actions

performed on different time.

In order to have the data well organized, the concept of configuration and session has been

introduced.

When the YouTube Monitor application starts, the device state service creates an extra RDF data

which contains a unique timestamp. The mission of this RDF data is creating a new configuration

and links it with the mobile object. All the configuration of the device will be directly or indirectly

under this RDF data.

The concept of session is utilized by the service which monitors the user actions. The aim of it is to

classify better the data generated by grouping all the monitor data under a session.

A session is considered started when the YouTube application has reached the status Launched.

And it is considered closed when the YouTube application has reached the status Finished, in other

words, when the YouTube application has been killed by Android.

In order to make the RDF database more understandable, an example of it has been generated.

Because it is a huge image, it cannot be shown correctly in this project. Rather, it is hosted in

www.jiahaoliuliu.com (http://www.jiahaoliuliu.com/2011/07/master-thesis-example-of-rdf-

database_9279.html)

Page 47: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

33

Chapter 6 Evaluation and analysis

This chapter presents the evaluation and its later analysis. It starts describing the general settings

utilized, followed by the single state evaluation. After it, 18 sets of evaluation will be described

along with their respective results and a general analysis. Finally, this chapter will end with a

conclusion about the results obtained.

6.1 Settings

The follow tests have done in a mobile phone (HTC Hero) which runs Android 2.1 and YouTube

1.6.20(E) for Android. The specification of the mobile phone is presented in appendix E.

All the evaluations generate a huge database which contains all the information. Because of this, the

results won t be shown in details. Instead, the results will be grouped by: Transition between States,

transition between general statuses, transition between modes, invocation of parallel actions,

Internal states and Information obtained. Notice is an evaluation doesn’t generate any group of

results, it will be shown as 0%.

6.2 Single state evaluation

6.2.1 Test implementation

In this single state evaluation, the YouTube application will be consider as a simple program which

independently of the previous states, the log generated by the new state / general status/ modes /

parallel actions only depends on the new state reached.

By knowing all the states, general status, modes and parallel actions, internal states and possible

information that the logs generated could contain, and knowing all the states where this state /

general status / modes / parallel actions can come from, this evaluation try to split all the actions

that a user can perform into small and single transitions between two states, general status, modes

and parallel actions and test them.

In other words, this evaluation has been done examining every one of the states, general status,

modes and parallel actions. For each one of them, the author has made the mobile phone reaches it

from all the possible states, general status, modes and then examine if the monitoring of this

transition is possible for the YouTube monitor program.

6.2.2 Results and analysis

Figure 6.2.2 – Single state evaluation

As the result shows, almost all the user actions can be monitor examining the logs. There are two

groups of states that the monitor application cannot know. The first group is the external states,

which only has as member the state 5, Showing keyboard, which shows a keyboard on the screen.

Page 48: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

34

There are two reasons why this state is not monitored. The first one is because the logs generated

are too generic, leading a big confusion. For example, in any moment the user can hold the menu

button to invoke the keyboard, which look for the information for the whole device, not only in

YouTube. In this case, there is no difference between the logs generated by both states, so, from the

point of view of the logs, they are the same.

The second reason is because this state is highly region configuration dependent. Different regions

can have implemented different keyboard to adapt to the type of character to enter. Because the

time constraint of this project, it is much better focus on the more important features than look for

the keyboard of all the regions of the world.

The second groups of states that cannot be monitor belong to all the internal states that the YouTube

application reaches in the Setting screen, which represents 5 percent of the Internal states. This is

because the YouTube application saves the user preferences directly to the internal memory of the

device and not generates any log. Then, it is impossible to detect those internal states watching only

the logs.

6.3 Complex states evaluation

6.3.1 Introduction

Once the single states evaluation is done, more complex evaluations should be done. Due to the

nature of the applications, it is impossible to evaluate all the possibilities because for each cycle in

the state chart, new actions of the user could be performed. In order to have finite number of

evaluations, the author has design a set of 18 tests by consulting the use case chart, which evaluates

most of the actions performed by the user.

The use cases which are not evaluated belong to the type “Get information” which is:

See all the categories

See the videos belong to a category

See the subscriptions updates

See all the videos recommended

See all the most viewed videos

See all the most discussed videos

See all the top rated videos

Because all they have been tested in the single state evaluation, there is no need to do it again.

There are also several things to take into account:

The author assumes that the YouTube application is not working in “Logged in” mode. That

is, when the user starts the tests, the user hasn t logged in previously or, if she has logged in

previously, she has logged out before finish the application.

At the end of all the evaluations, the user will go back to the main screen because it is

considered as the final state. After it the user will finish the YouTube application by click on the

physical home button

The set of evaluation are done by following each one of the actions in the description, one after

another. For each one of the actions, the author examines if the action and its corresponding data

generated are captured or not by the YouTube monitor program.

Once all the actions are done, the author groups the results obtained (detected or not detected) by

Transition between states, General statuses, modes, parallel actions, internal states and information

Page 49: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

35

obtained. All in the transition between states, general statuses, modes, the invocation of parallel

actions and the internal states are shown in the graph 4.2.2.2. All the possible information that could

be obtained is shown in the Appendix D.

6.3.2 Evaluation 1 - Play a video

This is the first of several tests done. In this test, the user is going to do the follow actions:

1. Launch the YouTube application

2. Select one of the video shown in the main screen to play it

3. Once the video has finished, she will come back to the main screen

4. Finish the YouTube application

Figure 6.3.2 – Evaluation 1 – Play a video

In this evaluation, there are 5 transitions between states, 2 switches between general statuses and 18

types of information are obtained. All they detected correctly.

6.3.3 Evaluation 2 - Play a video extended

This is an extension of the evaluation1. In this evaluation, when the user is playing the video, she

will perform several actions while the video is playing. The actions are:

1. Launch the YouTube application

2. Select one of the video shown in the main screen to play it

3. When the video has been played 10 seconds, the user forwards the video.

4. After 10 seconds, the user pause the video

5. The user plays the video again.

6. After 10 seconds, the user backwards the video

7. After 10 seconds, the user changes the quality of the video (HD off)

8. After 10 seconds, the user change restores the original quality of the video (HD on)

9. After 10 seconds, the user scrolls the video to the second 10.

10. After 10 seconds, the user enables the captions for the video

11. Once the video has finished, she will come back to the main screen

12. Finish the YouTube application

Page 50: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

36

Figure 6.3.3 – Evaluation 2 – Play a video extended

In this evaluation, there are 5 transitions between states, 2 switches between general statuses, 8

internal states and 18 types of information. All they detected correctly.

6.3.4 Evaluation 3 – Record and upload a video

In this evaluation the user is going to record a video with camera and upload the video recorded.

Note the process of record video (step 3) is device dependent. It depends on the application of video

recording that each device has. Because of this, this process is not described. The actions are:

1. Launch the YouTube application

2. Click on the “Camera” button in the top-right corner

3. Record a video and click on “Done”

4. Fulfill all the information

5. Click on the button “Upload”. The YouTube application will go to the main screen automatically

6. Finish the YouTube application

Figure 6.3.4 – Evaluation 3 – Record and upload a video

In this evaluation, there are 4 transitions between states, 2 switch between general statuses, 1

parallel action and 3 types of information. All they detected correctly.

6.3.5 Evaluation 4 – Search a video

In this evaluation the user is going to search the videos by keyword. The result could be empty or

not depending on the keyword chosen and the videos in the YouTube server

1. Launch the YouTube application

2. Click on the “Search” button in the top-right corner

3. Enter a keyword or select one used for previous search. The YouTube application will show the

result screen

4. Come back to the main screen by clicking on the “Back” button

5. Finish the YouTube application

Page 51: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

37

Figure 6.3.5 – Evaluation 4 – Search a video

In this evaluation, there are 4 transitions between states, 2 switches between general statuses and 9

types of information. Except the state 5, Showing keyboard, the rest could be detected. This is

because the state 5, Showing keyboard is context dependent and the logs that it generates are the

same as if the user holds down the physical menu button, which could lead confusion. Then it is not

detected in the monitor program.

6.3.6 Evaluation 5 – Upload a video

The user is allowed to upload any video existence in her device. Note the process of chose a video

(Step 4) is context dependent. As the evaluation 3, it depends on the application of video browser

that each device has. Because of this, this step is not described. The actions are:

1. Launch the YouTube application

2. Click on the menu button

3. Choose the option “Upload”

4. Pick any program and choose a video to upload.

5. Fulfill all the information

6. Click on the button “Upload”. The YouTube application will go to the main screen automatically

7. Finish the YouTube application

Figure 6.3.6 – Evaluation 5 – Upload a video

In this evaluation, there are 3 transitions between states, 2 switch between general statuses, 1

parallel action and 2 types of information. All they detected correctly.

6.3.7 Evaluation 6 – See the information about the user account

In this evaluation, the user is going logged in into her account and then logged out.

1. Launch the YouTube application

2. Click on the menu button and select “My account”

3. Enter the YouTube user name and the password

4. Once the user has enter her account, scroll down to see all the information

5. Click on the menu button and select “Logout”. The YouTube application will go directly to the

Main screen

6. Finish the YouTube application

Page 52: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

38

Figure 6.2.7 – Evaluation 6 – See the information about the user account

In this evaluation, there are 2 transitions between states, 2 switches between general statuses, 2

modes and 3 types of information. All they detected correctly.

6.3.8 Evaluation 7 - See information about a video

In this evaluation, the user is going to see the detailed information about a specific video in the

main screen. The actions are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Go back to the main screen

4. Finish the YouTube application

Figure 6.3.8 – Evaluation 7 – See information about a video

In this evaluation, there are 2 transitions between states, 2 switches between general statuses and 7

types of information. All they detected correctly.

6.3.9 Evaluation 8 – Rate a video

In this evaluation, the user is going to rate a video in the information screen. The actions are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Click on the “Rate” virtual button in the screen.

4. A new screen will appear asking for YouTube account. Enter the user name and the password

5. Select one of the five starts

6. Go back to the main screen

7. Finish the YouTube application

Page 53: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

39

Figure 6.3.9 – Evaluation 8 – Rate a video

In this evaluation, there are 2 transitions between states, 2 switch between general statuses, 1 mode,

1 internal state and 9 types of information. All they detected correctly.

6.3.10 Evaluation 9 - Read comments about a video

In this evaluation, the user is going to read the comments about a specific video in the main screen.

The actions are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Click on the comment virtual button in the screen to see the comments relatives to the video.

4. Go back to the information screen

5. Go back to the main screen

6. Finish the YouTube application

Figure 6.3.10 – Evaluation 9 – Read comments about a video

In this evaluation, there are 4 transitions between states, 2 switches between general statuses and 7

types of information. All they detected correctly.

6.3.11 Evaluation 10 – Set a video as favorite

In this evaluation, the user is going to set a video as favorite in the information screen. The actions

are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Click on the “favorite” virtual button in the screen.

4. A new screen will appear asking for YouTube account. Enter the user name and the password

5. Go back to the main screen

6. Finish the YouTube application

Page 54: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

40

Figure 6.3.11 – Evaluation 10 – Set a video as favorite

In this evaluation, there are 2 transitions between states, 2 switch between general statuses, 1 mode,

1 internal state and 7 types of information. All they detected correctly.

6.3.12 Evaluation 11 – Set a favorite video as “unfavorite”

Once the user can enter her account, she can see the videos she set as favorite.

1. Launch the YouTube application

2. Click on the menu button and select “My account”

3. Enter the YouTube user name and the password

4. Once the user has enter her account, click on “View all favorites” to see only favorite videos

5. Click on the information virtual button in the right side of any video

6. Click on the “Unfavorite” virtual button

7. Click on the back button to come back to the favorite videos list

8. Click on the back button to come back to the account information

9. Go back to the main screen by pressing the back button

10. Finish the YouTube application

Figure 6.3.12 – Evaluation 11 – Set a favorite video as “unfavorite”

In this evaluation, there are 6 transitions between states, 2 switch between general statuses, 1 mode,

1 internal state and 15 types of information. All they detected correctly.

6.3.13 Evaluation 12 – Share a video

In this evaluation, the user is going to share a video in the information screen. Note that the actions

between the step 4 and 5 are context independent. This is because the YouTube application has give

the control to an external program, which is totally depending on the applications installed in the

device.

The actions are:

1. Launch the YouTube application

Page 55: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

41

2. Select the information about one of the videos shown in the main screen

3. Click on the “Share” virtual button in the screen.

4. A new screen will appears with a list of external programs that the user can pick. Pick one of

them.

5. Once the video is shared, come back to the information screen

6. Go back to the main screen by pressing the back button.

7. Finish the YouTube application

Figure 6.3.13 – Evaluation 12 – Share a video

In this evaluation, there are 4 transitions between states, 2 switches between general statues and 7

types of information. All they detected correctly.

6.3.14 Evaluation 13 – Flag a video

In this evaluation, the user is going to flag a video as inappropriate in the information screen. Note

that what the YouTube application does is call an external program to open a hyperlink (step 4).

Because the application which will response to this call is now know forehand, it is not possible to

know why the user consider the video as inappropriate because it is not possible to know which

reason has the user selected.

The actions are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Click on the “flag” virtual button in the screen.

4. A list of possible reason will appears. Select one of them and click on the “Flag this video”

virtual button.

5. Once the video is flagged, come back to the information screen

6. Go back to the main screen by pressing the back button.

7. Finish the YouTube application

Page 56: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

42

Figure 6.3.14 – Evaluation 13 – Flag a video

In this evaluation, there are 4 transitions between states, 2 switches between general statuses and 8

types of information. All they detected correctly.

6.3.15 Evaluation 14 – Delete a video

For all the videos that this user has uploaded, they can be removed from the YouTube applications.

To do this:

1. Launch the YouTube application

2. Click on the menu button and select “My account”

3. Enter the YouTube user name and the password

4. Once the user has enter her account, click on “View all my videos” to see only the videos

uploaded by the user

5. Press the finger on the screen and hold down the finger for 1 or 2 seconds. A context menu will

appears.

6. Click on the option “Delete”. Once the video is removed, the screen will be refreshed.

7. Click on the back button to come back to the account information

8. Click on the back button to come back to the main screen

9. Finish the YouTube application

Figure 6.3.15 – Evaluation 14 – Delete a video

In this evaluation, there are 4 transitions between states, 2 switches between general statuses, 2

modes, 1 internal state and 10 types of information. All they detected correctly.

6.3.16 Evaluation 15 – Subscribe a channel

In this evaluation, the user is going to subscribe a concrete channel. The actions are:

1. Launch the YouTube application

2. Select the information about one of the videos shown in the main screen

3. Click on the button on the right side of the video image. The YouTube application will show the

channel (the user) which this video belongs

4. Click on “Subscribe” to subscribe the channel

5. Go back to the information screen by clicking on the “back” button

6. Click on the “back” button to come back to the main screen

7. Finish the YouTube application

Page 57: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

43

Figure 6.3.16 – Evaluation 15 – Subscribe a channel

In this evaluation, there are 2 transitions between states, 2 switches between general statuses, 1

mode, 1 internal state and 13 types of information is obtained. All they detected correctly.

6.3.17 Evaluation 16 – unsubscribe a channel

The user can unsubscribe any channel subscribed before in any moment. To do it:

1. Launch the YouTube application

2. Click on the menu button and select “My account”

3. Enter the YouTube user name and the password

4. Once the user has enter her account, click on “View all subscriptions” to see the channels that she

has subscribed before

5. Select anyone of the channels on the list.

6. Click on the “Unsubscribe” button in the top-left corner.

7. Come back to the list of subscribed channels by clicking on the “back” menu

8. Click on the back button to come back to the account information

9. Come back to the main screen by clicking on the “back” menu

10. Finish the YouTube application

Figure 6.3.17 – Evaluation 16 – Unsubscribe a channel

In this evaluation, there are 6 transitions between states, 2 switches between general statuses, 1

mode, 1 internal state and 9 types of information is obtained. All they detected correctly.

6.3.18 Evaluation 17 – Play more than one videos per time

Normally the user only can play one videos per time. The unique moment when the user can play

several videos per time, one after the previous one, is using playlists. To do it:

1. Launch the YouTube application

2. Click on the menu button and select “My account”

Page 58: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

44

3. Enter the YouTube user name and the password

4. Once the user has enter her account, click on “View all playlists” to see the playlists that the user

has

5. Select anyone of the playlists which has more than one video

6. Click on the “Play All” button in the top-left corner. The YouTube application will starts to play

all the videos

7. Once all the videos has finished, come back to the play list screen by clicking on the “back”

menu

8. Click on the back button to come back to the account information

9. Come back to the main screen by clicking on the “back” menu

10. Finish the YouTube application

Figure 6.3.18 – Evaluation 17 – Play more than one video per time

In this evaluation, there are 8 transitions between states, 2 switches between general statuses, 2

modes and 21 types of information is obtained. All they detected correctly.

6.3.19 Evaluation 18 – Change the settings

The YouTube application allows users to change several parameters in settings screen. To do it:

In this evaluation, the user is going to set a video as favorite in the information screen. The actions

are:

1. Launch the YouTube application

2. Click on “menu” button and select “Settings”

3. In the settings screen, uncheck “High quality video on mobile” option

4. Click on “Captions font size” and select “Extra large” option.

5. Click on “Clear search history” to clear search history

6. Click on “Terms of Service” to read the terms of service.

7. Go back to the settings screen by clicking on the “back” button

8. Click “back” button to go back to the main screen

9. Finish the YouTube application

Page 59: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

45

Figure 6.3.19 – Evaluation 18 – Change the settings

In this evaluation, there are 2 transitions between states, 2 switches between general statuses, 5

internal states and 1 types of information is obtained. The internal states are not detected because no

logs are generated.

6.3.20 General analysis of all complex evaluations

Figure 6.3.20 – General analysis of all complex evaluations

Summarizing all the evaluation done, transition between states has been tested 68 times, general

statuses 36 times, modes 11 times, parallel actions 2 times, internal states 14 times and 167 times

the information obtained.

There are also some states that cannot be detected. The 1.45% of the transition between states not

detected belongs to the state 5, showing keyboard. The reason, which has been explained before,

was because it is too generic and it is highly region dependent.

The 26.32% of the internal states not detected corresponds to all the internal states of Settings. The

reason is it doesn t generate any logs, make them impossible to be detected only watching the logs.

6.3 Conclusion

All the tests went good. In the YouTube application, there are 44 states, 2 general statuses, 2 modes

and 2 parallel actions. Only one of the states, 5 Showing keyboard, cannot be detected. Since the

function of this state is only show the keyboard on the screen and it’s propose, searching a video, is

correctly monitored, it is not really important to know when the keyboards are shown in the screen.

Page 60: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

46

For the internal states, all them, except the internal states related with the Settings are detected,

which represents more than 95% of the internal states detected.

The internal states related with the settings, which are related to the quality of the video, the size of

the captions, the search cache and the terms of service, are not so important and won t influence to

the main functions of the YouTube application. If in the future they become very important, new

methods of monitoring could be implemented in order to monitor them.

Finally, all the possible information in the logs is obtained correctly. This will give to the monitor

application a lot of information. However, this information is not complete, because the logs only

indicate some property of the object that the logs are related. To have more information, all the data

obtained should be analyzed.

Page 61: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

47

Chapter 7 Example of usage of the application

In order to describe better the utilization of the data obtained and highlight the importance of the

correct monitor use behavior, this chapter will present several scenarios where the data could be

utilized.

7.1 Introduction

Once the data is collected, it could be used locally or be collected in a bigger database. Locally, the

application could be used as a Content Provider, providing other applications information and

preferences of the user. By collecting the data in a bigger database, thirst parties can use the data to

give better services.

To illustrate better the use of the data by the third parties, here is some scenario where the

information collected could be useful.

It is important to clarify that all the data obtained for the scenarios are fictitious. Not studies has

been done to generate those data, thus, they are only example of use of information obtained by the

YouTube Monitor program..

7.2 Scenario 1 – The relation between the data rate and the Quality of Experience

Because the main finality of the YouTube application is watch the video, which is real-time service,

the time used to feed the buffer is absolutely essential.

In the graph below there is an example of the relation between the data rate and the quality of

experience.

Figure 7.2 – Relation between data rate and QoE

In the X-axis, it shows the data rate that a device could have. The unit is Mega bits per second

(Mbps) and it goes from 0.1 Mbps to 20 Mbps. This data could be obtained easily through the

device. In the Y-axis it shows the percentage of the users who has finish watching completely a

video. This data is calculate by using the video Id to obtain the total length of the video and using

the time when the user has started watching the video and the time when she stops the video.

With this graph, the quality of experience could be easily measured.

Page 62: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

48

7.3 Scenario 2 - Geographical usage and access to a concrete category

All the videos on YouTube are classified into one of the 15 categories: Cars & Vehicles, Comedy,

Education, Entertainment, Film & animation, Gaming, Howto & style, Music, News & Politics,

Nonprofits & Activism, People & Blogs, Pets & animals, Science & technology, Sport and Travel

& events. Since the id of the videos played by the user is known, with YouTube API, it is very easy

to see the category of the videos played by such user.

At the same time, the identification and the latitude of the base station that the user is connected is

also collected and updated if any change occurs. Because this identification is unique for a given

operator, with that data, it is possible to retrieve the geographical information by accessing a global

database.

Combining that information, a thirst party can obtain the information about the preferences of the

users in a concrete region.

Figure 7.3 – Video played in Kista since 2011.06.23.12.49 to 2011.06.23.12.50. Image captured

from Google Maps

Video Id Time Category

8XXQeov980Y 2011.06.23.12.49 Howto & Style

rllsDOwdmfA 2011.06.23.12.55 Science & Technology

JOD0099UCj8 2011.06.23.12.52 Science & Technology

izlXF2Acn2Y 2011.06.23.12.52 Science & Technology

TooxpzYQb3s 2011.06.23.12.50 Science & Technology

7wwoasfEqPc 2011.06.23.12.50 Howto & Style

Table 7.3 – Video played in Kista since 2011.06.23.12.49 to 2011.06.23.12.50

Page 63: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

49

A visual example is shown above. In this example, for a technology company concentrated place

like Kista, Stockholm (Sweden), the people could prefer the video that comes from the category

“Science & technology”, instead of “Pets & Animals”.

In order to improve the QoE, the base stations could be more intelligent by having an internal

memory with them. If the videos from a specific category are repeatedly played for a concrete

region, the base station from that region could save the most viewed videos of such category into

the internal memory. When another user requests that kind of video, the base station requested

could have that video already saved in the internal memory. Hence, the traffic generated will be just

between the base station and the final user, the server doesn’t have to be involved. This could lead a

big amount of bandwidth save depending on the behavior of the user, make the base stations more

efficient.

7.4 Scenario 3 - Better QoS for a concrete user.

Beside the macro usage of the information obtained, they can be used also to offer better QoS and

QoE to a concrete user.

For instance, a particular user can be monitored and the mobile operators can obtain information

about the base stations that this particular user usually connects. Because all the RDF data saved in

the database contains a ID which is unique in the world, the data analysis process could be totally

user oriented: Based on the Base station that this user normally connects and based on the category

of the video that this user normally watch, the mobile operators can charge a set of videos belong to

the most common categories that this user has watched in the internal memory of the Base stations

where this user normal connects.

The finality of all them is based on the historical information of a specific user, predicts a concrete

user behavior and her preferences, have the information that this user could requests already saved

before the user request them, hence, offer a better QoS and QoE.

Here is a visual example of the video consumption of a specific user:

Page 64: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

50

Figure 7.4 – Video traffic of a concrete user from 2011.06.23.10.30 to 2011.06.23.11.30. Image

captured in the web page of SL (www.sl.se)

In this example, the user 1 goes from Professorslingan, Stockholm (Sweden) to Kista, Stockholm

(Sweden). While this user is traveling with the public transport, she has watched 5 videos.

Video Id Time Category

Y85Rd5E61V4 2011.06.23.10.30 Science & Technology

6C-xDCCqJng 2011.06.23.10.40 Education

LESROkpWvFA 2011.06.23.11.05 Howto & Style

4bkiGVqqX_U 2011.06.23.11.25 Howto & Style

Ya7IhijXYUQ 2011.06.23.11.30 Science & Technology

Table 7.4 – Video traffic of a concrete user from 2011.06.23.10.30 to 2011.06.23.11.30.

As the previous case, if the user behavior doesn’t change, the most part of the communication will

be just between this user and the base station where this user is connected, and then a better QoS

and QoE could be achieved.

7.5 Scenario 4 – Probability of usage of YouTube through the day

Another important way to improve the QoE and QoS is using the concept of session to know when

the user normally watches the videos. A session is considering starts when the user starts the

YouTube application after the last session has been finished. And a session is consider finished

when the Android system decide to kill the YouTube application.

An example of the data collected is shown in the below graph

Page 65: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

51

Figure 7.5.1 – Number of sessions per hour for a concrete user in one month

For this particular user, the data collected in a specific month shows that there are four peaks hours

when this user starts a session: between 8 and 9; at 12 o’clock, at 19 o’clock and at 21 o’clock.

Having this data, the graph of the probability of access to YouTube application could be calculated:

Figure 7.5.2 – Probability of starts a session per hour for a specific user

The peak hours shows in this graph matches with the pick graph showed in the previous graph.

When it is 21 o’clock, it is the hour with highest probability for this user to starts a session

(11.24%), followed by 9.47% when it is 19 o’clock. Another important peak is between 7 and 8

o’clock of the morning, when this user goes to work (7.69% and 8.87%, respectively).

This graph can be constantly updated by analyzing the data that this user generates, making sure

that the graph will be always accurate.

By knowing the probability for a concrete user to starts a session, and also the category of the

videos that this user normally plays, it will be easier for the mobile operators to pre-fetch the videos

that this user could require in nearly future in the base station that this user normally connects.

7.6 Scenario 5 – Prediction of the favorite videos of the user

In the YouTube application analyzed, there are a total of 44 states. The user can play video from 29

of them. Therefore, for a concrete user, there could be a ranking of the states where the user

normally goes to play a video.

For example, the number of video played for a concrete user in one month could be:

Page 66: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

52

Figure 7.6.1 – States where the videos played come from

Based on that information, a percentage graph could be created and constantly updated with new

information of the user behavior.

Figure 7.6.2 – States where the videos played come from – Percentages

Page 67: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

53

Using those graphs, specific behavior of the user could be monitor. For example, observing those

graphs, it seems that for a concrete month, this user prefer the videos which come from the state

“Show a category – Science & Technology” and the videos which come from the state “Show a

category – Howto & Style” instead of the videos that come from the state “Show a category – Cars

& Vehicle” and the state “Show a category – Pets & Animals”.

By knowing this information, the top video played from a concrete state could be pre-fetched inside

of the mobile device of the user. Then, when the user wants to watch such video, because it is

already in the mobile device, no data connection will be generated.

7.7 Conclusion

The information obtained about the user behavior could be useful to better explore the existing

infrastructure more effectively. The scenario shown in this section is only few example of its usage.

Because an extensive information about the context and the user behavior are collected, new way of

exploit this information could be created depending on the need of each case.

Page 68: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

54

Page 69: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

55

Chapter 8 – Conclusions and discussions

According to the aims and goals presented in the chapter 1, this chapter will start with the

dissection of them. Secondly, the contribution of the author as well as the discussion of the result

obtained will be described. Finally, it will finish with the conclusions and the future works.

8.1 Aim and goals dissection

The aim of this project is to build a program to explore the possibility to monitor the user behavior

with a video sharing program through a mobile device already on the market. In order to fulfill this

aim, several goals are set. They are dissecting one by one.

8.1.1 Video sharing program’s description and analysis

The first goal is describe and analyze the behavior of a video sharing program running in a mobile

device already on the market. In this case, the YouTube program which runs in Android system is

described and analyzed in section 4.2.

The description and analysis includes the YouTube application’s use cases and the description of

the transition between the states, general statuses, modes and invocation of parallel actions.

Furthermore, in Appendix A, the detail description of each one of the 44 states, 2 general statuses, 2

modes and 2 parallel actions are presented.

8.1.2 User interaction monitoring

The second goal is the utilization of the tools available to monitor the interaction of the user with

the program

For this goal, a program which runs in Android system is created. The specification of this program

is described in the section 3, software implementation. Beside this specification of the

implementation, the device information obtained, the keywords used to monitor logs and the

specific information obtained through logs are described in the Appendices B, C and D respectively.

After the program is created, a set of evaluation has been done in order to test its accuracy, which is

described in section 6. The results shows, although the program cannot monitor completely the

interaction of the user with the YouTube program, most of the transitions between states (90.51%),

most of the internal states (95%) and all the transitions between general statuses, modes, parallel

actions, as well as all the possible information shown with the logs are correctly monitored

8.1.3 Description of possible scenarios

The thirst and the last goal are to describe different scenarios where the data obtained could be

useful. For this purpose, 5 scenarios were designed in the section 7. They show the potential of the

information obtained if several data are combined.

8.2 Contributions

With this project, the author has contributed in demonstration of the possibility to create a monitor

program which runs silently in the background and which captures most of the user actions utilizing

the devices already on the market. This set the base for a new wave of monitoring user actions

programs, which is the key to explore the existence infrastructure more effectively.

The author has also contributed in designing scenarios where this tool can be used to improve the

QoE and QoS.

Page 70: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

56

8.3 Discussion

Although the good results obtained in the evaluation, there are several points that the author want to

comment about the evaluation.

First of all, the number of device tested, in this case is only 1. In this sense, theoretically, all the

YouTube application of a concrete version installed in a concrete version of Android System should

have the same behavior, which is independent to the hardware which they are running. It could be

better to prove this by running the evaluation in several mobile devices with different hardware to

demonstrate this.

Secondly, the evaluations done are about the accuracy of the monitor program. For a monitor

program, the transparency is also important. The user shouldn’t experiment delays when the

monitor program is running in the background. To measure it, a big number of tests on most of the

mobile devices in the market should be done. Because the constraint of time, this wasn’t possible.

8.4 Conclusion

To correctly monitor the user actions could play a very important role for the mobile operators in

order to implement a smarter, faster and convergent network. In this project, the author has chosen

Android system and YouTube to show the possibility to implement a monitor program which is

totally transparence to the user.

This is possible by capturing the logs that the YouTube application generates. In this sense, the

monitor program plays as a detective, who by collecting all the glue that the YouTube application

has left, try to figure out what the user have done.

As the evaluation has shown, most of the user actions can be monitored.

All those data are collected in the local RDF database, which can be shared easily on Internet

because they have identifiers which make them unique in the world.

Once this possibility is demonstrated, better monitoring tools can be build which are more efficient

and more complete. With the data they collect, all the questions in the section 2 can be answered,

improving the actual situation of the mobile operators.

8.5 Future works

8.5.1 New version of YouTube

At the time we are producing this project, a new version of YouTube can be downloaded in the

Android Market. The newest version is 2.1.6 and it only runs in the phones with Android 2.2 or

later. It has been downloaded between 50.000 and 100.000 times, which represents a big number of

users. The engineers whom have designed it have built everything from the ground. [1] There are

also changed in the way the new YouTube program produces logs, which make harder to monitor

the user actions. In the future, the viability of continue using this method on new versions of

YouTube should be studied.

8.5.2 Other video sharing applications

Another big source of video traffic on Internet, Netflix, has launched a program which enables the

access to its movie database through Android. [25]. This could mean a new revolution of video

traffic on Internet. Because of this, in a close future, the function of this program could be also

studied.

With those programs, it seems the tendency of the market is each web-sharing service offer her own

programs that the user only can watch videos on their portal. Because there are video-sharing

Page 71: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

57

services others than YouTube and Netflix, in order to cover more users and have more complete

data, other video sharing application should be also studied and monitored.

8.5.3 RDF data analysis

As the author has explained in the section of implementation, the YouTube monitor program only

utilized the logs generated to capture the states of YouTube application. Those logs are depending

on the actual state which the YouTube application is and the information that the coder’s of

YouTube application want to be known.

Because of this, they aren’t complete as it should be. The logs can be utilized to detect the main

characteristics of the states and the transition of the states, but some detail information which could

be essential is not obtained.

This issue is especially severe when the user is using context menu in the video list. This is, in a

video list, the user selects one of the elements and keeps holding down the finger on the screen,

then a new menu called context menu will appear. Although all the options that the user chooses in

the context menu can be detected, there is no way to know which element in the video list the user

has selected.

This is why the data should be analyzed once captured. The analysis could link past states with the

actual state, discovering hidden relations and making the information more complete.

Page 72: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

58

Page 73: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

59

Bibliography [1] Doronichev, Andrey, December 2010, YouTube 2.1 App Now. Available on Android [online],

Google Mobile Blog. Available from: http://googlemobile.blogspot.com/2010/12/youtube-21-app-

now-available-on-android.html [Accessed 21 June 2011]

[2] Halliday, Josh and Arthur, Charles, August 2010, Mobile operators signal end of flat-rate data

traffic as app use grows [online], The guardian. Available from:

http://www.guardian.co.uk/technology/blog/2010/aug/23/net-neutrality-mobilephones[Accessed 21

June 2011]

[3] Kang, Cecilia, June 2011, Verizon wireless to start charging by bits, end flat-rate plans [online],

The Washington post. Available from: http://www.washingtonpost.com/blogs/post-

tech/post/verizon-wireless-starts-charging-by-bits-end-of-flat-rate-

plans/2011/06/21/AGH1eTeH_blog.html [Accessed 21 June 2011]

[4] Pietro Lungaro, Cristobal Viedma, Zary Segall and Pavan Kumar, “An Experimental

Framework to Investigate Context-aware Schemes for Content Delivery”, in Proceedings of

VTC2011-Fall in San Francisco.

[5] Pietro Lungaro and Zary Segall, “Application-centric Content Delivery Schemes for Future

Wireless Networks”, in Proceedings of PIMRC 2011, Toronto.

[6] Pietro Lungaro, Zary Segall and Jens Zander, “ContextShift: a Model for Efficient Delivery of

Content in Mobile Networks”, in Proceeding of Wireless Communication & Networking

Conference (WCNC10), Sydney, April 2010

[7] Pietro Lungaro, Zary Segall and Jens Zander, “Predictive and Context-based Multimedia

Content Delivery in Future Cellular Networks”, in Proceeding of the Vehicular Technology

Conference (VTC10), Taipei, May 2010

[8] Pietro Lungaro, Zary Segall and Jens Zander, “Context-aware RRM for Opportunistic Content

Delivery in Cellular Networks”, in Proceedings of the 3rd

international conference on

Communication Theory, Reliability and Quality of Service (CTRQ10), Athens, June 2010

[9] Pietro Lungaro, Zary Segall and Jens Zander, “ActiveCast – a Network and User Aware Mobile

Content Delivery System”, In Proceedings of the 2nd International Conference on Ubiquitous and

Future Networks (ICUFN10), Jeju Island, Korea, June 2010

[10] Luis Martinez, Pietro Lungaro and Zary Segall, “Novel QoE-centric Resource Management

Schemes for Future Cellular Systems”, in Proceedings of 10th Scandinavian Workshop on Wireless

Ad-hocNetworks (ADHOC 11).

[11] Meier, Reto, “Professional Android 2 Application development”, Wiley Publishing, Inc, 2010.

[12] Nickinson, Phil, July 2010, Know your buttons [online], Android Central. Available from:

http://www.androidcentral.com/know-your-buttons [Accessed 22 June 2011]

[13] Pavan Kumar, Pietro Lungaro, Vikrant Nandakumar and Zary Segall, “A Novel Experimental

Framework to Investigate Context-aware Solutions for Opportunistic M2M Content Delivery”, in

Proceedings of 10th

Scandinavian Workshop on Wireless Ad-hoc Networks (ADHOC 11).

Page 74: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

60

[14] Reuters, November 2006, Google closes $A2b YouTube deal [online], The Age. Available

from: http://www.theage.com.au/news/Busness/Google-closes-A2b-YouTube-

deal/2006/11/14/1163266548827.html [Accessed 22 June 2011]

[15] Schnfeld, Erick, May 2011, Netflix now the largest single source of Internet Traffic in North

America [online], Techcrunch. Available from: http://techcrunch.com/2011/05/17/netflix-largest-

internet-traffic/ [Accessed 22 June 2011]

[16] Yuhe Shi, David Gregg, Andrew Beatty, M. Anton Erti, Virtual Machine Showndown: Stack

Versus Registers, University of Dublin, Trinity College and Institut für Computersprachen TU

Wien, 11-12 June 2005. Available from: http://www.usenix.org/events/vee05/full_papers/p153-

yunhe.pdf [Accessed 22 June 2011]

[17] Zander, Jens. From "Walled Gardens" into the "Telecom Chaos” Operator Challenges in

Future Mobile Broadband Systems, Royal technique university, Sweden, 2010

[18] Various, Seizing the opportunity in Mobile Broadband – A global perspective, Acision

Innovation Assured, February 2011.

[19] Various, Alexa top sites. The top 500 sites on the web [online], Alexa Inc. Available from:

http://www.alexa.com/topsites [Accessed 21 June 2011]

[20] Various, April 2009, What is Android? [online], Android Developers. Available from:

http://developer.android.com/guide/basics/what-is-android.html [Accessed 21 June 2011]

[21] Various, 2011, Google's Android becomes the world's leading smart phone platform [online]

Canalys. Available from: http://www.canalys.com/pr/2011/r2011013.html [Accessed 21 June 2011].

[22] Various, June 2011, Cisco Visual Network Index: Forecast and methodology, 2010 – 2015

[online], Cisco Systems, Inc. Available from:

http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11

-481360_ns827_Networking_Solutions_White_Paper.html [Accessed 22 June 2011]

[23] Various, Google phone gallery [online], Google Inc. Available from:

http://www.google.com/phone/#manufacturer=all&category=all&carrier=all&country=all&reset_fil

ters=1 [Accessed 21 June 2011]

[24] Various, October 2010, Netflix Announces Q3 2010 Financial results [online], Netflix.

Available from: http://netflix.mediaroom.com/index.php?s=43&item=373 [Accessed 21 June 2011]

[25] Various, May 2011, Netflix launch on Android [online], The Netflix blog. Available from:

http://blog.netflix.com/2011/05/normal-0-false-false-false-en-us-x-none.html [Accessed 21 June

2011]

[26] Various, May 2011, Sandvine’s Spring 2011 Global Internet phenomena report reveals new

Internet trends [online], Sandvine. Available from:

http://www.sandvine.com/news/pr_detail.asp?ID=312 [Accessed 21 June 2011]

[27] Various, February 2011, Resource Description Framework [online], W3C Semantic web.

Available from: http://www.w3.org/RDF/ [Accessed 20 June 2011]

Page 75: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

61

[28] Various, Android (Operating system) [online], Wikipedia. Available from:

http://en.wikipedia.org/wiki/Android_(operating_system) [Accessed 21 June 2011]

[29] Various, Comparison of Android devices [online], Wikipedia. Available from:

http://en.wikipedia.org/wiki/Comparison_of_Android_devices. [Accessed 21 June 2011]

[30] Various, IBM Simon [online], Wikipedia, Available from:

http://en.wikipedia.org/wiki/IBM_Simon. [Accessed 21 June 2011]

[31] Various, Semantic Web Stack [online], Wikipedia. Available from:

http://en.wikipedia.org/wiki/Semantic_Web_Stack [Available from 21 June 2011]

[32] Various, Key YouTube stats @ 5 years [online], YouTube. Available from:

https://sites.google.com/a/pressatgoogle.com/youtube5year/home/5-year-metrics. [Accessed 21

June 2011]

Page 76: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

62

Page 77: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

63

Appendix A

Description of the YouTube Application

In this appendix a short description of each one of the states will be given, as well as descriptions

about the general status, modes and parallels actions.

State 1. Main screen

This is the screen which is shown when the user enters the application when she starts the

application. If the user has logged in the application before she goes to this state, or before the

application has finished, it is going to show 5 different groups of videos: Subscriptions updates

videos, recommended videos, most viewed videos, most discussed videos and top rated videos.

Each one of the group will show the 3 top videos as a video list. Otherwise, if the status of the user

is logged out, only the last three group of video will be shown.

State 2. Start recording video

If the user press on the record button in the main screen, the application will invoke an external

application in order to record the video. This external application depends on the application

installed in the devices, so it is context dependent.

State 3. Video recording finished

When the user has finished recording video, this state will be reached. In this state, the user will be

asked if she is satisfied with the video recorded or not. If not, the user will have another opportunity

to record another video. If yes, the user will go to the state 4. This state is also context dependent,

State 4. Fill information about a video recorded

The video has been recorded and saved in the device in the previous states. Now, the user is asked

to fill a form with the basic information about the video. It is important to say that the user doesn’t

have to log in the application to upload the video. The application used the account information

existence in the phone to do it.

Once the user has fulfilled all the compulsory information, she can upload the video. The process of

uploading video is completely parallel to the YouTube application.

State 5. Showing keyboard

This is the state which shows the virtual keyboard in the screen with the history of keywords, if any.

This state depends on the locale configuration in the device, will show different keyboards.

State 6. Start searching

If the user has enter any keyword or selected any keyword used before, the YouTube application

will starts searching all the videos that could be related with the keyword and show them in the

screen in the state 7.

State 7. Search result Empty/Ok

The YouTube application is showing the result found in the database. The application could show

an empty screen if no video related found, or a video list if any video is found. By default, they are

time independent. If the user wishes, she can use the time filter to filtering the videos by time.

State 8. Subscriptions updates

This is the state which is only reachable if the user has logged in. In this state, the YouTube

application shows all the new videos belong to all the channels that the user has subscribed.

Page 78: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

64

No video will be shown if the user hasn’t subscribed to any channel.

State 9. More recommended

As the state 8, this state is only reachable if the user has logged in. It shows a video list with the

videos that YouTube thinks the user will like. The analysis is done by sending all the video played

by the user periodically to the YouTube datacenter.

State 10. Most viewed

This is one of the states that the Application can go even when the user is not logged in. Depending

on the locale configuration of the device, it will display the most viewed videos on that region /

country.

State 11. Most discussed

This state is also reachable if the user hasn’t logged in. The most discussed videos are the user that

has been most commented in YouTube database. In this case, the videos are also classified

depending on the locale configuration of the device.

State 12. Top rated

As most viewed and most discussed, this state is also user independent. Both in the server and in the

mobile application, the user is offered the opportunity to rate a video. This screen shows the videos

which have been best rated by a particular region / country.

State 13. Play video

If the user has selected any video to be played, this state will be reached. In this state, a video buffer

is going to be loaded, independently if the user has started playing video o no. As all the video

streaming applications, there is no need to fulfill the buffer to play a video.

In this state, the user can perform the actions that normally can be performed in a video reproducer

such as pause the video, continue play the video, see the caption or changing the position where the

video should be played from. All the possibilities are show in the state diagram in the section

4.2.2.2.2 as internal state.

Normally the YouTube program only plays one video per time, but more than one video could be

played, one after another, by using the “play all” option in the playlist (State 24).

State 14. Video playing finished

Once the video playing has been finished, this state will be reached. If the user has chosen to play

more than one video from the playlist state, only when all the video playing has been finished,

YouTube program will arrive to this state.

In this screen, beside the normal options of a video list, the user can also decide to play the last

video played again.

State 15. Read comments

If the user wishes to read any comment of a video, she should use the “comments” option appears

both in some screens and in some context menus, if any. Notices in this version of YouTube

application, there is not possibility to publish directly the comments from the Android device, just

read them.

State 16. Show information

If the user is interested in any video, she can see more information about a concrete video. The

information shown is:

• Title

Page 79: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

65

• Screen cast

• Number of rate starts

• Number of rates made

• Number of views

• The channel (the user who has uploaded the video)

• The date when the video has been uploaded

• Description

• Category

• Tags

• URL

Beside that information, a video list with videos related with the video which the information is

shown will also appear.

State 17. Upload video

If the user decides to upload any video existing in the device, she must go to this state. This state is

context dependent because the YouTube application calls an external video browser application to

choose the video to upload.

State 18. Fill information about a video uploaded

Once the video is chosen, the user can enter all the information about the video. As the state 4, fill

information about a video recorded, the user doesn’t need to be logged in to reach this state. The

mobile device itself will read the account information set in the device and let the user choose the

proper one.

Once the video is selected and all the compulsory information filled, the user can start uploading the

video. As the state 4, the process of uploading video is parallel to the YouTube application.

State 19. My account

Only when the user has logged in, she can reach to this state. The information shown in this state is:

• The nick of the user (Channel name)

• The number of the videos which has been set as favorite by the user

• The number of channels subscribed

• The number of video uploaded

• The number of channel viewed

• The number of the subscribers

• The user image

• A list of favorite videos

• A list of main channel subscribed

• The user’s playlists

• The video that the user has been uploaded.

In this state, because there are a set of favorite videos and a set of video uploaded by the user, the

context menu can be displayed by press on any of those videos and hold down the finger.

In this case, the context menu has some special options. For any favorite video, it offers the

possibility to “unfavorite” it. For the video uploaded by the user, it offers the possibility to delete it

from the user video uploader’s list.

This is the unique state in the YouTube application where the user can log out.

State 20. Favorite videos

Page 80: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

66

This state shows all the videos that has been set as favorite by the user as a video list. At begging, a

list of video will be shown. If the user scrolls down, more video will be loaded.

State 21. My subscriptions

This state shows all the channels that the user has subscribed. In YouTube, all the users are

considered as a channel. This means anyone can subscribe to any user and follow all the videos that

this user uploads.

Like the state 20, these videos are shown in a videos list.

State 22. Show a subscribed / an unsubscribed channel

Show the information relative to a channel. This channel could be a subscribed channel or an

unsubscribed channel. The information displayed for a concrete channel is:

• Channel’s title

• Number of times that the channels has been viewed

• Number of subscribers of a channel

• The image of the channel

• All the videos relative to a channel.

As curiosity, the difference between a channel subscribed and an unsubscribed channel is not so

clear. It is very easy to select a video from a subscribed channel, and then see the channel of that

video. Then a subscribed channel will become to an unsubscribed channel because the screen show

us the possibility to subscribe that channel again.

State 23. My playlist

This state shows all the playlist that has been created before. It is important to say that in this

version of YouTube application, the user cannot modify anything about a playlist. What the user

can do is just read information about it and plays the videos in it.

State 24. Show a playlist

Show all the video contained in a concrete playlist. Other information is also shown. They are:

• Title of the playlist

• The number of the videos

• The sum of the length of all the videos

• A picture of the playlist

• All the videos in the video list format.

This is the unique moment in the application when the user can play more than one video per time,

one after another. This is possible using the “Play all” button shown in the screen.

State 25. My videos

It shows all the videos that have been uploaded to the YouTube server, as well as all the videos that

has been failed to upload.

State 26. Categories

It shows all the possible categories that the videos of YouTube has been grouped, which matches to

the categories in the server.

States 27 - 41. Show a category

There are 15 different categories which can be chosen from the state 26. Each one of the categories

is considered an independent state. The categories are:

• 27. Cars & Vehicles

Page 81: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

67

• 28. Comedy

• 29. Education

• 30. Entertainment

• 31. Film & Animation

• 32. Gaming

• 33. Howto & Style

• 34. Music

• 35. News & Politics

• 36. Nonprofits & Activism

• 37. People & Blogs

• 38. Pets and Animals

• 39. Science & Technology

• 40. Sport

• 41. Travel & Events

All they are presented as a video list. The unique difference between them is the type of the videos

shown in such video list.

State 42. Settings

It contains all the settings that the user can set. They are:

• High quality video on mobile checked

• High quality video on mobile unchecked

• Caption font size

• Clear search history

The user also can read the terms of service or see which version of YouTube application is running.

State 43. Share a video

If the user wishes to share a concrete video, she can use this state. This invokes a call to all the

compatible applications installed in the device which has the share function and show them in the

screen as a list. Then the user just has to choose one of them.

State 44. Flag a video

This state is reached when the user consider a video as inappropriate. There are several reasons

behind, which could be:

• Sexual content

• Violent or repulsive contents

• Hateful or abusive contents

• Harmful dangerous acts

• Child abuse

• Spam

• Infringes my rights.

Entering this state makes the Android device opens a browser that shows the YouTube flag web

page instead of an internal state.

General note about the states

Notice there is several states which has the same number. They are the state 7. Search result

Empty/Ok and 22. Show a subscribed / an unsubscribed channel. Since the monitor application is

driven from the log buffer and those states are exactly the same from the log buffer point of view,

there won’t be any difference when the search result is empty or not, or when the channel shown

has been subscribed by the user before.

Page 82: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

68

General status 1. Launched

This is the general status of YouTube if the application has been launched. In this general status, the

user can interact with YouTube program.

General status 2. Finished

If the user has exits the YouTube program and the Android System decide to kill it, YouTube

program will be consider as finished. No interaction can be performed in this general status.

Mode 1. Logged in

Some states such as “My account” and some internal states such as “Set a video as favorite” require

the user to be logged to be reached. Once this mode has been activated, until the user has logged out

explicitly, the YouTube program will remain in this mode, even after the YouTube application has

been killed.

All the actions that the user can perform when she in the Logged out mode can be performed in the

Logged in mode.

Mode 2. Logged out

In this mode, YouTube program will show a subset of the states that can be reached with Logged in

mode. All the actions that are not related with the user account can be performed in this mode.

Parallel action 1. Start uploading a video recorded

After the user has recorded a video and fill all the compulsory information, this action can be

started. This is a parallel action, which means at the same time that the video is being uploading, the

YouTube program can be used by the user to interact with her.

Parallel action 2. Start uploading a video

These actions will be started if the user has chosen an existing video in her mobile device and she

has filled all the compulsory information about such video. As the parallel action 1, the user can

continue interact with the YouTube program while the mobile device is uploading the video.

Page 83: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

69

Appendix B

Device information obtained

B.1 Device information obtained when the application starts monitoring process

This Appendix shows all the states /information that the YouTube Monitor application can get from

the Android phones

B.1.1 Software information

The general information that comes with Android

Property Source Comments API

Board Android.os.Bui

ld

The name of the underlying board, like “GoldFish” 1

Brand Android.os.Bui

ld

The brand (e.g. carrier) the software is customized for, if

any

1

CPU_ABI Android.os.Bui

ld

The name of the instructions set (CPU type + ABI

conventions) of native code

4

Device Android.os.Bui

ld

The name of the industrial design 1

Display Android.os.Bui

ld

A build ID string meant for displaying to the user 3

FingerPrin

t

Android.os.Bui

ld

A string that uniquely identifies this build 1

Host Android.os.Bui

ld

? 1

ID Android.os.Bui

ld

Either a changeList number, or a label like “M4-rc20” 1

Manufactu

rer

Android.os.Bui

ld

The manufacturer of the product/hardware 4

Model Android.os.Bui

ld

The end-user-visible name for the product 1

Product Android.os.Bui

ld

The name of the overall product 1

Tags Android.os.Bui

ld

Comma-separated tags describing the build, like

“unsigned, debug”

1

Time Android.os.Bui

ld

? 1

Page 84: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

70

Property Source Comments API

Type Android.os.Bui

ld

The type of build, like “user” or “eng” 1

User Android.os.Bui

ld

The type of the user. 1

Codename android.os.Buil

d.VERSION

The current development codename, or the string “REL”

if this is a release build

4

Increment

al

android.os.Buil

d.VERSION

The internal value used by the underlying source control

to represent this build. E.g. a perforce change list number

or a git has

1

Release android.os.Buil

d.VERSION

The user-visible version string. E.g. “1.0” or “3.4b5” 1

SDK android.os.Buil

d.VERSION

The user-visible SDK version of the framework in its raw

String representation

1

SDK_INT android.os.Buil

d.VERSION

The user-visible SDK version of the framework. Its

possible values are defined in Build.VERSION_CODES.

See the table of Versions in the annex

4

Android_I

D

android.privide

r.Settings.Secu

re

It is a 64-bit number randomly generated when the

Android devices is booted for the first time. It should

remain constant for the lifetime of the device

3

B.1.2 Hardware information

Property Source Comments API

Phone

Type

android.telepho

ny.TelephoyM

anager

The type of the phone. It could be CDMA, GSM or

NONE

1

Device Id android.telepho

ny.TelephoyM

anager

The unique hardware identification of the device. IMEI

for GSM or MEID for CDMA

1

Software

version

android.telepho

ny.TelephoyM

anager

The software version of the phone. For example, the

IMEI/SV version for GSM phones.

1

Page 85: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

71

Property Source Comments API

Phone

Number

android.telepho

ny.TelephoyM

anager

The phone number of the device. It could be null if the

user haven’t enter the phone number.

1

B.1.3 Language and country

Property Source Comments API

Locale java.util.Locale The combination of language, country and variant. The

ISO format for language is two lower letters and the ISO

format for country is two upper letters. See annex II for

the table of Locale.

1

Country java.util.Locale The country code for locale. If the country hasn’t been

set, it will return “”.

1

Language java.util.Locale The language code for locale. If the language haven’t

been set, it will return “”

1

B.1.4 Cell connected information

Property Source Comments API

Cell

Location

Cid

android.telepho

ny.TelephoyM

anager

The id of the cell which the device is connected. Return -1

if it is unknown

1

Cell

Location

Lac

android.telepho

ny.TelephoyM

anager

The location area code of the cell which the device is

connected. Return -1 if it is unknown.

1

B.1.5 Data connection

Property Source Comments API

Data

activity

android.telepho

ny.TelephoyM

anager

Show the actual data activity of the device. It could be:

DATA_ACTIVITY_IN, DATA_ACTIVITY_OUT,

DATA_ACTIVITY_INOUT or

DATA_ACTIVITY_NONE

1

Data state android.telepho

ny.TelephoyM

anager

Show if the actual data state of the device. It could be:

DATA_CONNECTED, DATA_CONNECTING,

DATA_DISCONNECTED, DATA_SUSPENDED

1

B.1.6 Mobile network information

Page 86: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

72

Property Source Comments API

Network

country

android.telepho

ny.TelephoyM

anager

The connected network country ISO code. It called MCC:

Mobile Country Code. Unreliable in CDMA connection

1

Network

Operator

Id

android.telepho

ny.TelephoyM

anager

The connected network operator ID. It shows MCC

(Mobile Country Code) and MNC (Mobile Network

Code). Unreliable in CDMA connection

1

Network

Operator

name

android.telepho

ny.TelephoyM

anager

The alphanumeric name of the operator id 1

Network

Type

android.telepho

ny.TelephoyM

anager

The radio technology used for the connection. It could be:

NETWORK_TYPE_1xRTT,

NETWORK_TYPE_CDMA,

NETWORK_TYPE_EDGE,

NETWORK_TYPE_EVDO_0,

NETWORK_TYPE_EVDO_A,

NETWORK_TYPE_GPRS,

NETWORK_TYPE_HSDPA,

NETWORK_TYPE_HSPA,

NETWORK_TYPE_HSUPA,

NETWORK_TYPE_UMTS or

NETWORK_TYPE_UNKNOWN

1

Subscriber

ID

android.telepho

ny.TelephoyM

anager

The unique subscriber ID. For example, IMSI for GSM 1

Is Network

Roaming

android.telepho

ny.TelephoyM

anager

Confirm if the device is actually Roaming or not 1

B.1.7 SIM - Subscriber Identity Module

This information will be obtained only when the type of the mobile phone is GSM. The information

regarding the SIM is available when the SIM state is ready.

Page 87: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

73

Property Source Comments API

SIM State android.telepho

ny.TelephoyM

anager

The actual state of the SIM. Only available when the type

of the phone is GSM. It could be:

SIM_STATE_ABSENT,

SIM_STATE_NETWORK_LOCKED,

SIM_STATE_PIN_REQUIRED,

SIM_STATE_PUK_REQUIRED,

SIM_STATE_UNKNOWN, SIM_STATE_READY.

1

SIM

Country

android.telepho

ny.TelephoyM

anager

The ISO code of the SIM card. Only available if the type

of the phone is GSM and the state of the phone is ready.

1

SIM

Operator

id

android.telepho

ny.TelephoyM

anager

The id of the operator of the SIM card. Only available if

the type of the phone is GSM and the state of the phone is

ready.

1

SIM

Operator

name

android.telepho

ny.TelephoyM

anager

The name of the operator of the SIM card. Only available

if the type of the phone is GSM and the state of the phone

is ready.

1

SIM Serial

Number

android.telepho

ny.TelephoyM

anager

The serial number of the SIM card. Only available if the

type of the phone is GSM and the state of the phone is

ready.

1

B.1.8 Screen information

Note: Since the service doesn’t know the screen information, this information will be shown in next

version

Property Source Comments API

Orientatio

n

android.view.D

isplay

The actual orientation of the screen. 0 if it is vertical and

1 if it is on Horizontal

1

Pixel

format

android.view.D

isplay

The pixel format of the screen. See Annex III for more

information

1

Refresh

rate

android.view.D

isplay

The refresh rate in frames per second (fps) 1

Density android.util.Di

splayMetrics

He scaling factor for the Density Independent Pixel unit,

where one DIP is one pixel on an approximately 160 dpi

screen.

1

Density

DPI

android.util.Di

splayMetrics

The screen density, in Dots Per Inch. It could be:

DENSITY_LOW, DENSITY_MEDIUM or

DENSITY_HIGH

4

Page 88: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

74

Property Source Comments API

Height

Pixels

android.util.Di

splayMetrics

The absolute height of the display in pixels 1

Width

Pixels

android.util.Di

splayMetrics

The absolute width of the display in pixels 1

Scaled

Density

android.util.Di

splayMetrics

The scaling factor for fonts displayed on the display 1

X DPI android.util.Di

splayMetrics

The exact physical pixels per inch of the screen in the X

dimensions

1

Y DPI android.util.Di

splayMetrics

The exact physical pixels per inch of the screen in the Y

dimensions

1

B.1.9 General network information

Property Source Comments API

Network

Type

android.net.Net

workInfo

The type of the connection does the connection below. It

could be Mobile or Wi-Fi

1

State android.net.Net

workInfo

The actual state of the connection. See annex IV for more

information

1

Detailed

State

android.net.Net

workInfo

The detailed state of the actual connection. See annex IV

for more information

1

B.1.10 Wireless network information

Information about the wireless connection

Property Source Comments API

Wi-Fi

enabled

android.net.wif

i.WifiManager

If the wifi is enabled or not. 1

Page 89: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

75

Property Source Comments API

Wifi State android.net.wif

i.WifiManager

The current wifi state. It could be:

WIFI_STATE_DISABLED,

WIFI_STATE_DISABLING, WIFI_STATE_ENABLED,

WIFI_STATE_ENABLING.

WIFI_STATE_UNKNOWN.

1

BSSID android.net.wif

i.WifiInfo.

The basic service set identifier of the current access point.

If no access point connected, it will return null

1

SSID android.net.wif

i.WifiInfo.

The service set identifier (SSID). It will be null if the

device is not connected to any network

1

Hidden

SSID

android.net.wif

i.WifiInfo.

Specify if the access point does or not broadcast its SSID. 1

Network

Id

android.net.wif

i.WifiInfo.

The unique small integer ID that the configured network

has. It is used to identify the network when performing

operations on the supplicant. It will be -1 if there is the

device is not connected to any network

1

IP Address android.net.wif

i.WifiInfo.

Get the IP address of the Access Point 1

Link

Speed

android.net.wif

i.WifiInfo.

The current link speed (Maximum) 1

Link

Speed unit

android.net.wif

i.WifiInfo.

The unit of the current link speed. 1

Rssi android.net.wif

i.WifiInfo.

The received signal strength indicator. 1

Supplicant

State

android.net.wif

i.WifiInfo.

The detailed state of the supplicant’s negotiation with an

access point. See Annex IV for more information

1

Page 90: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

76

Property Source Comments API

Detailed

state of a

supplicant

state

android.net.wif

i.WifiInfo.

Map a supplicant state into a fine-grained network

connectivity state. See Annex IV for more information

1

Wlan

MAC

android.net.wif

i.WifiManager

The Wifi MAC address of the device, if any. 1

B.2 Device state change monitor

States of the mobile phone monitored

B.2.1 Cell information

Property Source Comments API

Cell

Location

Cid

android.teleph

ony.PhoneStat

eListener

Any change on the Id of the cell which the device is

connected will be reported

1

Cell

Location

Lac

android.teleph

ony.PhoneStat

eListener

Any change on the Local area code of the cell which the

device is connected will be reported

1

B.3 Additional information related with the device information obtained

B.3.1 Android System API Level Table

Platform Version Codename API Level

Android 3.1 HONEYCOMB 12

Android 3.0 HONEYCOMB 11

Android 2.3.4 GINGERBREAD_MR1 10

Android 2.3.3 GINGERBREAD_MR1 10

Android 2.3 GINGERBREAD_MR1 9

Android 2.2 FROYO 8

Android 2.1 ECLAIR_MR1 7

Android 2.0.1 ECLAIR_0_1 6

Android 2.0 ECLAIR 5

Android 1.6 DONUT 4

Android 1.5 CUR_DEVELOPMENT 3

Page 91: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

77

Platform Version Codename API Level

Android 1.1 BASE_1_1 2

Android 1.0 BASE 1

Page 92: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

78

Page 93: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

79

Appendix C

Keywords used to monitor logs

C.1 Keywords used to detect the states, general status, modes and parallel actions

General note:

Some state/Status could have more than one raw. That’s because more than one type of logs are generated.

Also in one raw it could contains more than one keyword.

C.1.1 States

# State Buffer Tag Keyword Example

1 Main

Screen

Events am_on_resume_

called

com.google.android

.youtube.HomeActi

vity

05-16 19:44:01.366 I/am_on_resume_called( 9121):

com.google.android.youtube.HomeActivity

2 Start

recording

video

Events am_on_resume_

called

com.android.camer

a.ServiceEntry

05-16 19:46:59.606 I/am_on_resume_called( 9314):

com.android.camera.ServiceEntry

3 Video

recording

finished

Events am_on_paused_

called

com.android.camer

a.ServiceEntry

06-04 16:46:37.932 I/am_on_paused_called( 6351):

com.android.camera.ServiceEntry

4 Fill

informatio

n about a

video

recorded

Events am_on_resume_

called

com.google.android

.apps.uploader.clien

ts.youtube.YouTub

eSettingsActivity

(See note 1)

05-16 20:35:59.106 I/am_on_resume_called( 9850):

com.google.android.apps.uploader.clients.youtube.YouTubeSettingsActivit

y

Page 94: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

80

# State Buffer Tag Keyword Example

5 Showing

keyboard

- - (See note 2) Not detected

6 Start

Searching

Events am_create_activi

ty

com.google.android

.youtube/.VideoList

Activity

android.intent.actio

n.SEARCH

05-16 19:48:04.176 I/am_create_activity( 98):

[1152811448,92,com.google.android.youtube/.VideoListActivity,android.in

tent.action.SEARCH,,,268435456]

7 Search

Result

Empty/Ok

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:48:04.536 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/vi

deos?

&q=

&v=

05-16 19:48:04.376: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/videos?format=2%2C3%2C9&max-

results=9&q=rabbit&safeSearch=strict&start-index=1&v=2].

8 Subscripti

on updates

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:53:52.056 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/us

ers/default/newsubscr

iptionvideos

&v=

05-16 19:53:52.016: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/newsubscriptionvideos?

format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&v=2].

Page 95: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

81

# State Buffer Tag Keyword Example

9 More

recommen

ded

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:55:08.566 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/us

ers/default/recommen

dations

&v=

05-16 19:55:08.546: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/recommendations?form

at=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&v=2&video_id=7f8y4SR9mjU%2CImUTvk8LBmA%2CSEBLt6K

d9EY%2CDCicNdhcoZw%2CficwZQYmRLE%2CR6CvzUDsOFQ%2CLb

OOPKBg0iA%2Cl1ZCccf78Ck%2CBYhxBwMY-5c].

10 Most

viewed

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:56:24.686 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed

&v=

05-16 19:56:24.646: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed?for

mat=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

11 Most

discussed

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:57:42.136 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Page 96: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

82

# State Buffer Tag Keyword Example

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_discussed

&v=

05-16 19:57:42.126: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_discussed?f

ormat=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

12 Top rated Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 19:58:28.066 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

top_rated

&v=

05-16 19:58:28.056: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/top_rated?format=

2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

13 Play video Events am_on_resume_

called

com.google.android

.youtube.PlayerActi

vity

05-16 19:59:11.996 I/am_on_resume_called( 9121):

com.google.android.youtube.PlayerActivity

14 Video

playing

finished

Main PlayerDriver handleStop 06-01 18:53:16.458: INFO/PlayerDriver(2892): PlayerDriver::handleStop

15 Read

comments

Events am_on_resume_

called

com.google.android

.youtube.Comment

sActivity

05-16 19:59:59.446 I/am_on_resume_called( 9121):

com.google.android.youtube.CommentsActivity

16 Show

informatio

n

Events am_on_resume_

called

com.google.android

.youtube.VideoDet

ailActivity

05-16 19:59:33.296 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoDetailsActivity

Page 97: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

83

# State Buffer Tag Keyword Example

17 Upload

Video

Events am_on_resume_

called

(am_restart_acti

vity

com.android.intern

al.app.ChooserActi

vity (See note 3)

05-16 20:01:32.476 I/am_on_resume_called( 9121):

com.android.internal.app.ChooserActivity

18 Fill

informatio

n about a

video

uploaded

Events am_on_resume_

called

com.google.apps.u

ploader.clients.yout

ube.YouTubeSettin

gsActivity (See

note 1)

05-16 21:22:41.651 I/am_on_resume_called(10336):

com.google.android.apps.uploader.clients.youtube.YouTubeSettingsActivit

y

19 My

account

Events am_on_resume_

called

com.google.android

.youtube.MyAccou

ntActivity

05-16 20:04:05.686 I/am_on_resume_called( 9121):

com.google.android.youtube.MyAccountActivity

20 Favorite

videos

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:04:25.556 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

main YouTube url=[http://gdata.yout

ube.com/feeds/api/us

ers/default/favorites

&v=

05-16 20:04:07.026: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/favorites?max-

results=9&safeSearch=strict&start-index=1&v=2].

21 My

subscriptio

ns

Events am_on_resume_

called

com.google.android

.youtube.FeedInfoL

istActivity

05-16 20:05:33.246 I/am_on_resume_called( 9121):

com.google.android.youtube.FeedInfoListActivity

Main YouTube url=[gdata.youtube.c

om/feeds/api/users/de

fault/subscriptions

05-16 20:04:07.116: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/subscriptions?v=2].

Page 98: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

84

# State Buffer Tag Keyword Example

22 Show a

subscribed

/an

unsubscrib

ed channel

Events am_on_resume_

called

com.google.android

.youtube.ChannelA

ctivity

05-16 20:06:19.486 I/am_on_resume_called( 9121):

com.google.android.youtube.ChannelActivity

23 My

playlist

Events am_on_resume_

called

com.google.android

.youtube.FeedInfoL

istActivity

05-16 20:07:53.156 I/am_on_resume_called( 9121):

com.google.android.youtube.FeedInfoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/us

ers/default/playlists

05-16 20:09:27.126: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/playlists?v=2].

24 Show a

playlist

Events am_on_resume_

called

com.google.android

.youtube.PlaylistAc

tivity

05-16 20:10:26.706 I/am_on_resume_called( 9121):

com.google.android.youtube.PlaylistActivity

25 My videos Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:10:43.086 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/us

ers/default/uploads

&v=

05-16 20:10:43.076: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/uploads?max-

results=9&start-index=1&v=2].

26 Categories Events am_on_resume_

called

com.google.android

.youtube.Categories

Activity

05-16 20:11:11.586 I/am_on_resume_called( 9121):

com.google.android.youtube.CategoriesActivity

Page 99: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

85

# State Buffer Tag Keyword Example

27 Show a

category

(Cars &

Vehicles)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:11:23.086 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Autos

&v=

05-16 20:11:23.076: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Aut

os?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

28 Show a

category

(Comedy)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:11:47.826 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Comed

y

&v=

05-16 20:11:47.816: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Co

medy?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

29 Show a

category

(Education

)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:14:27.406 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Educat

ion

&v=

05-16 20:14:27.386: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Edu

cation?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Page 100: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

86

# State Buffer Tag Keyword Example

30 Show a

category

(Entertain

ment)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:15:29.576 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Enterta

inment

&v=

05-16 20:15:29.566: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ent

ertainment?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

31 Show a

category

(Film &

Animation

)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:15:53.726 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Film

&v=

05-16 20:15:53.706: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Fil

m?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

32 Show a

category

(Gaming)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:16:32.766 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Games

&v=

05-16 20:16:32.756: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ga

mes?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Page 101: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

87

# State Buffer Tag Keyword Example

33 Show a

category

(Howto &

Style)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:16:52.516 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Howto

&v=

05-16 20:16:52.506: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ho

wto?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

34 Show a

category

(Music)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:17:12.056 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Music

&v=

05-16 20:17:12.036: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Mu

sic?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

35 Show a

category

(News &

Politics)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:17:37.006 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_News

&v=

05-16 20:17:36.986: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ne

ws?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Page 102: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

88

# State Buffer Tag Keyword Example

36 Show a

category

(Nonprofit

s &

Activism)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

06-09 15:42:20.901 I/am_on_resume_called( 412):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Nonpr

ofits

&v=

06-09 15:42:20.881: INFO/YouTube(412): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/US/most_viewed_Non

profit?format=2%2C3%2C9&max-results=9&safeSearch=moderate&start-

index=1&time=this_week&v=2].

37 Show a

category

(People &

Blogs)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:18:05.766 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_People

&v=

05-16 20:18:05.746: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Peo

ple?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

38 Show a

category

(Pets &

Animas)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:18:25.966 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Anima

ls

&v=

05-16 20:18:25.956: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ani

mals?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Page 103: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

89

# State Buffer Tag Keyword Example

39 Show a

category

(Science &

Technolog

y)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:18:51.846 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Tech

&v=

05-16 20:18:51.826: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Tec

h?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

40 Show a

category

(Sport)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:19:17.186 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Sports

&v=

05-16 20:19:17.166: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Spo

rts?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

41 Show a

category

(Travel &

Events)

Events am_on_resume_

called

com.google.android

.youtube.VideoList

Activity

05-16 20:19:47.376 I/am_on_resume_called( 9121):

com.google.android.youtube.VideoListActivity

Main YouTube url=[http://gdata.yout

ube.com/feeds/api/sta

ndardfeeds/

most_viewed_Travel

&v=

05-16 20:19:47.356: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Tra

vel?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Page 104: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

90

# State Buffer Tag Keyword Example

42 Settings Events am_on_resume_

called

com.google.android

.youtube.SettingsA

ctivity

05-16 20:20:25.996 I/am_on_resume_called( 9121):

com.google.android.youtube.SettingsActivity

43 Share a

video

Events menu_item_sele

cted

Share 05-19 14:55:10.846 I/menu_item_selected( 4427): [1,Share]

43 Share a

video

Events am_on_resume_

called

(am_restart_acti

vity)

com.android.intern

al.app.ChooserActi

vity

05-19 14:55:12.946 I/am_on_resume_called( 4427):

com.android.internal.app.ChooserActivity

44 Flag a

video

Events am_new_intent com.android.brows

er.BrowserActivity

http://m.youtube.co

m/flag

05-16 20:21:12.636 I/am_new_intent( 98):

[1153878800,84,com.android.browser/.BrowserActivity,android.intent.acti

on.VIEW,,http://m.youtube.com/flag?v=Cr5M8dbhYfs,4194304]

44 Flag a

video

Events am_create_activi

ty

com.android.brows

er/.browseractivity

http://m.youtube.co

m/flag

05-22 19:27:58.636: DEBUG/EventLog(12435): 522 192757

i/am_create_activity(125):[1151534240,69,com.android.browser/.browsera

ctivity,android.intent.action.view,,http://m.youtube.com/flag?v=t3nnf9jkvy

y,0]

Note 1

In this case, the states “Fill information about a video recorded” and “Fill information about a video uploaded” have the log:

“I/am_on_resume_called(00000): com.google.android.apps.uploader.clients.youtube.YouTubeSettingsActivity

”.

This is because the activity behind them is the same: YouTubeSettingsActivity, which has been reutilized in both states. The unique way to

differentiate them is recording and using the previous state. If the previous state is the state 3, recording finished, and then the actual state is the state 4.

Fill information about a video recorded; if the previous state is the state 17. Upload video, the actual state is 18. Fill information about a video

uploaded.

Page 105: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

91

Note 2:

The state 5, Showing keyboard, displays the keyboard on the screen and the previous keywords searched. This keyboard depends on the locale

configuration of the mobile, which make it not easy recognizable.

After several test, it is not easily recognize this state. The all the locale configuration should be studied, as well as all the modifications done the

manufacturers. Since this state is not important (It just check if the keyboard is shown in the screen or not), it is not recognized in the code.

Note 3:

To share a video, The user can both holding the finger pressed on the screen and choose the option “Share” in the context menu or pressing the button

“Share” appears in the screen.

In the first case, the action is easily identifiable, because the log ”I/menu_item_selected(00000): [1,Share]” will appears and this log is unique.

In the second case the log which will generate are the same as if the user tries to upload a video: “I/am_on_resume_called(00000):

com.android.internal.app.ChooserActivity”. What the Android System do is call all the compatible applications in the device and show them in the

screen. In this way, the user can pick any of those applications and continue. Because they are context dependent (depending on the applications

installed in each phone), there is no way to know which application will appear in the chosen list forehand. That’s why the keyword watched

corresponds to the actions of pick application.

Fortunately the states “Upload videos” and “Share a video” are called from different states when no context menu is used. “Share a video” is called

from the states:

• 13. Play Video

• 14. Video Playing Finished

• 16. Show information

Upload videos is called from the states:

• 1. Main screen

• 7. Search result Empty/Ok

• 8. Subscription updates

• 9. More recommended

• 10. Most viewed

• 11. Most discussed

• 12. Top rated

• 15. Read comments

• 19. My account

Page 106: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

92

• 20. Favorite videos

• 21. My subscriptions

• 22. Show a subscribed / an subscribed channel

• 23. My playlist

• 24. Show a playlist

• 25. My videos

• 36. Categories

• 27-41. Show a category

So, like the note 1, the previous state is recorded always and consulted when the keyword com.android.internal.app.ChooserActivity appears.

C.1.2 General statuses

Status Buffer Tag Keyword Example

Launche

d

Events am_proc_

bound

com.google.andro

id.youtube

05-16 19:43:59.416 I/am_proc_bound( 98): [9121,com.google.android.youtube]

Finished Events am_proc_

died

com.google.andro

id.youtube

05-16 20:28:00.286 I/am_proc_died( 98): [9657,com.google.android.youtube]

Finished Main ActivityM

anager

Force removing

process

com.google.com.a

ndroid.youtube

05-26 19:00:35.353: DEBUG/ActivityManager(119): Force removing process

ProcessRecord{44cb5fd8 10205:com.google.android.youtube/10004}

(com.google.android.youtube/10004)

C.1.3 Modes

Mode Buffer Tag Keyword Example

Logged

in

Events am_create

_activity

com.google.andro

id.youtube.action.

LOGIN

05-16 19:44:01.336 I/am_create_activity( 98):

[1154025272,92,com.google.android.youtube/.login.GlsLoginActivity,com.google.androi

d.youtube.action.LOGIN,,,0]

Page 107: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

93

Mode Buffer Tag Keyword Example

Logged

in

Main YouTube user is logged in 05-23 17:50:51.707: INFO/YouTube(2533): widget: user is logged in

Logged

out

Events am_create

_activity

com.google.andro

id.youtube.action.

LOGOUT

05-16 20:23:45.106 I/am_create_activity( 98):

[1155144880,92,com.google.android.youtube/.login.GlsLoginActivity,com.google.androi

d.youtube.action.LOGOUT,,,0]

C.1.4 Parallel actions

Action Buffer Tag Keyword Example

Start

uploadin

g video

recorded

Events am_create

_service

com.google.andro

id.apps.uploader/.

UploadService

com.google.andro

id.apps.uploader.a

ction.UPLOAD

(See note 1)

05-16 20:45:34.856 I/am_create_service( 98):

[1152474112,com.google.android.apps.uploader/.UploadService,act=com.google.android.

apps.uploader.action.UPLOAD,9850]

Start

uploadin

g video

Events am_create

_service

com.google.andro

id.apps.uploader/.

UploadService

com.google.andro

id.apps.uploader.a

ction.UPLOAD

(See note 1)

05-16 21:26:38.911 I/am_create_service( 98):

[1154546520,com.google.android.apps.uploader/.UploadService,act=com.google.android.

apps.uploader.action.UPLOAD,10336]

Note 1

As the case described in note 1 of the appendix C.1.1, an activity has been reutilized, which cause the parallel actions have the same event logs. The

solution is the same: by recording the previous state, the actual parallel action is detected.

Page 108: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

94

C.2 Keyword used to detect internal states

This table is going to show the internal states that one state could be. They can be detected by using the main log buffer. The unique cases when the

event logs are needed are when the user is trying to see the captions (16. Play video and 17.Video playing finished).

# State Internal

State

Buffer Tag Keyword Example

1 Main

screen

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:28:44.331: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/9w_5rXpfXpA/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:28:20.631: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

7 Search

result

Empty/Ok

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:29:19.151: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/uxTDK1S5qJ0/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:29:38.521: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/videos?

&q=

05-28 21:36:18.440: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/videos?format=2%2C3%2C9&max-

results=9&q=hold+it+against+me&safeSearch=strict&start-

index=1&time=this_month&v=2].

Page 109: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

95

# State Internal

State

Buffer Tag Keyword Example

8 Subscripti

ons

updates

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:30:32.991: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/QvrSeVdyiAQ/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:30:51.161: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

9 More

recommen

ded

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:31:25.351: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/l7AUa8k4w50/ratings?client

=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:31:43.261: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

10 Most

viewed

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:32:16.801: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/8fRaSV9uNDg/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:32:39.581: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

Page 110: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

96

# State Internal

State

Buffer Tag Keyword Example

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed

05-28 21:37:12.590: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed?form

at=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

11 Most

discussed

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:33:34.891: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/8Y0ZzXKyWzM/ratings?cli

ent=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:33:50.731: DEBUG/YouTube(4609): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_discussed

05-28 21:37:53.220: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_discussed?fo

rmat=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

12 Top rated Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:34:47.331: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/y63IVluVGnA/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:35:38.461: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Page 111: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

97

# State Internal

State

Buffer Tag Keyword Example

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

top_rated

05-28 21:38:31.620: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/top_rated?format=

2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

13 Play video Play

video

[Video

paused]

Main AudioPoli

cyService

startOutput 06-01 18:14:42.128: INFO/AudioPolicyService(1362): startOutput(): before

lock

Pause

video

[Video

playing]

Main PlayerDriver handlePause 04-29 17:34:52.903: INFO/PlayerDriver(77): PlayerDriver::handlePause

Scroll

video

(See note

1)

Main PlayerDriver buffering

percentage not

normal

06-01 21:59:41.358: INFO/PlayerDriver(2892): buffering percentage=57

06-01 21:59:41.758: INFO/PlayerDriver(2892): buffering percentage=42

06-01 21:59:41.978: INFO/PlayerDriver(2892): buffering percentage=29

06-01 21:59:42.238: INFO/PlayerDriver(2892): buffering percentage=23

06-01 21:59:42.498: INFO/PlayerDriver(2892): buffering percentage=24

06-01 21:59:42.778: INFO/PlayerDriver(2892): buffering percentage=25

06-01 21:59:43.088: INFO/PlayerDriver(2892): buffering percentage=26 Forward

video

(See note

1)

Main PlayerDriver buffering

percentage not

normal

Backwar

d Video

(See note

1)

Main PlayerDriver buffering

percentage not

normal

Page 112: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

98

# State Internal

State

Buffer Tag Keyword Example

HD on

[HD off]

(See note

2)

Main YouTube PlayerActivity.pla

y

06-01 20:21:36.708: INFO/YouTube(4579): PlayerActivity.play

http://v4.lscache6.googlevideo.com/videoplayback?app=youtube_gdata&clien

t=mvapp-android-

htc&devKey=ATEU_r3RX2afGwq_gCqiS2UO88HsQjpE1a8d1GxQnGDm&

el=videos&expire=1309544431&id=249dc032de54e834&ip=0.0.0.0&ipbits=

0&itag=17&key=yta1&signature=94378869C34672B91C9EB557072347A7

B0A45B0A.D00327F6D5A84910E8442A528A6C3FA0C6650B3D&sparams

=id,itag,uaopt,ip,ipbits,expire&uaopt=no-save at 62902

HD off

[HD on]

(See note

2)

Main YouTube PlayerActivity.pla

y

Show

captions

Events menu_item_

selected

Captions 05-28 20:45:25.580 I/menu_item_selected(10066): [0,Captions]

Video

rated

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/videos/

ratings

05-25 13:36:59.531: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/zwd5faVtfEI/ratings?client=m

vapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:37:33.141: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Video

Playing

finished

[Video

left]

Main YouTube PlayerActivity.pla

y

at 0

06-01 20:26:56.828: INFO/YouTube(4579): PlayerActivity.play

http://v22.lscache1.googlevideo.com/videoplayback?app=youtube_gdata&clie

nt=mvapp-android-

htc&devKey=ATEU_r3RX2afGwq_gCqiS2UO88HsQjpE1a8d1GxQnGDm&

el=videos&expire=1309544431&id=249dc032de54e834&ip=0.0.0.0&ipbits=

0&itag=18&key=yta1&signature=ECEC543A2C43EF504BFBDBE4CE65A5

E7BA49EB93.E508232E738CF6EC5E98E90FAEAE1DAA02E80C03&spar

ams=id,itag,uaopt,ip,ipbits,expire&uaopt=no-save at 0

Page 113: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

99

# State Internal

State

Buffer Tag Keyword Example

14 Video

playing

finished

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:39:10.471: INFO/YouTube(4829): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/zbGJz-

Mhqr4/ratings?client=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:39:27.421: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Show

captions

Events menu_item_

selected

Captions 05-28 20:49:21.970 I/menu_item_selected(10066): [0,Captions]

16 Show

informatio

n

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:41:44.061: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/RPH7LXPZFBo/ratings?clie

nt=mvapp-android-htc].

Video set

as

favorite

[Unfavor

ite video]

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:41:57.851: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Video set

as

unfavorit

e[favorite

video]

Main YouTube My account

request successful

REMOVE_FAVO

RITE

05-25 13:42:31.001: DEBUG/YouTube(4829): My account request

successful, type REMOVE_FAVORITE

Page 114: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

100

# State Internal

State

Buffer Tag Keyword Example

19 My

account

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:45:59.941: INFO/YouTube(4829): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/icDh-

Tj669Q/ratings?client=mvapp-android-htc].

Video set

as

favorite

[Unfavor

ite video]

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:47:34.921: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Video set

as

unfavorit

e[favorite

video]

Main YouTube My account

request successful

REMOVE_FAVO

RITE

05-25 13:46:21.321: DEBUG/YouTube(4829): My account request

successful, type REMOVE_FAVORITE

Video

deleted

Main YouTube My account

request successful

DELETE_MY_VI

DEO

05-25 13:48:04.411: DEBUG/YouTube(4829): My account request

successful, type DELETE_MY_VIDEO

20 Favorite

videos

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:52:08.621: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/PHCw4FxCPro/ratings?clie

nt=mvapp-android-htc].

Video set

as

unfavorit

e

Main YouTube My account

request successful

REMOVE_FAVO

RITE

05-25 13:49:54.181: DEBUG/YouTube(4829): My account request

successful, type REMOVE_FAVORITE

Page 115: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

101

# State Internal

State

Buffer Tag Keyword Example

22 Show a

subscribed

/ an

unsubscrib

ed channel

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 13:53:06.211: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/TCrCbq2TQiQ/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 13:53:25.321: DEBUG/YouTube(4829): My account request

successful, type ADD_FAVORITE

Subscrib

e a

channel

Main YouTube My account

request successful

SUBSCRIBE_TO

_CHANNEL

05-25 13:53:44.591: DEBUG/YouTube(4829): My account request

successful, type SUBSCRIBE_TO_CHANNEL

Unsubscr

ibe a

channel

Main YouTube My account

request successful

UNSUBSCRIBE_

FROM_CHANNE

L

05-25 13:59:55.061: DEBUG/YouTube(4978): My account request

successful, type UNSUBSCRIBE_FROM_CHANNEL

24 Show a

playlist

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:02:07.671: INFO/YouTube(4978): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/KyJtsxKIS2k/ratings?client

=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:02:24.461: DEBUG/YouTube(4978): My account request

successful, type ADD_FAVORITE

Page 116: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

102

# State Internal

State

Buffer Tag Keyword Example

25 My videos Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:08:08.611: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/n_4bE2dYZy8/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:09:45.391: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Video

deleted

Main YouTube My account

request successful

DELETE_MY_VI

DEO

05-25 14:18:44.501: DEBUG/YouTube(5143): My account request

successful, type DELETE_MY_VIDEO

27 Show a

category

(Cars &

vehicles)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:27:13.231: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/47ItSdBqggA/ratings?client

=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:27:37.831: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Page 117: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

103

# State Internal

State

Buffer Tag Keyword Example

Time

filter

Main YouTube url=[http://gdata.

youtube.com/feed

s/api/standardfee

ds/

most_viewed_Au

tos

&v=

05-28 21:39:27.470: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_A

utos?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

28 Show a

category

(Comedy)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:28:17.921: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/uC1VlSO4HXw/ratings?clie

nt=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:28:36.701: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Co

medy

&v=

05-28 21:40:02.770: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Co

medy?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

29 Show a

category

(Education

)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:29:14.481: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/QdTQqUGdiBE/ratings?clie

nt=mvapp-android-htc].

Page 118: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

104

# State Internal

State

Buffer Tag Keyword Example

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:29:28.941: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Edu

cation

&v=

05-28 21:40:36.020: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Edu

cation?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

30 Show a

category

(Entertain

ment)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:30:16.271: INFO/YouTube(5143): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/R-

pWP2M449c/ratings?client=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:30:31.081: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Ent

ertainment

&v=

05-28 21:41:29.840: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ente

rtainment?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

Page 119: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

105

# State Internal

State

Buffer Tag Keyword Example

31 Show a

category

(Film &

Animation

)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:31:21.791: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/nb67EDkRF04/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:31:52.181: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Fil

m

&v=

05-28 21:41:58.130: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Film

?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

32 Show a

category

(Gaming)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:32:31.911: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/2m5HbpsOIG8/ratings?clien

t=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:32:49.321: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Page 120: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

106

# State Internal

State

Buffer Tag Keyword Example

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Ga

mes

&v=

05-28 21:42:31.020: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ga

mes?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

33 Show a

category

(Howto &

Style)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:33:29.891: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/4ZkJKtctoKE/ratings?client

=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:33:44.011: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Ho

wto

&v=

05-28 21:43:02.450: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ho

wto?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

34 Show a

category

(Music)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:34:25.671: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/C2FBDr9_jxo/ratings?client

=mvapp-android-htc].

Page 121: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

107

# State Internal

State

Buffer Tag Keyword Example

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:34:40.631: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Mu

sic

&v=

05-28 21:43:40.940: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Mus

ic?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

35 Show a

category

(News &

Politics)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:36:18.241: INFO/YouTube(5143): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/IIZjQ-

BK76Y/ratings?client=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:36:31.941: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Ne

ws

&v=

05-28 21:44:12.260: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_New

s?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

Page 122: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

108

# State Internal

State

Buffer Tag Keyword Example

36 Show a

category

(Nonprofit

s &

Activism)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-28 21:45:20.341: INFO/YouTube(10066): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/VRq6K_eMRPg/ratings?clie

nt=mvapp-android-htc.

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-28 21:45:26.392: DEBUG/YouTube(10066): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Non

profits

&v=

05-28 21:45:27.230: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/US/most_viewed_Non

profit?format=2%2C3%2C9&max-results=9&safeSearch=moderate&start-

index=1&time=this_month&v=2].

37 Show a

category

(People &

Blogs)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:37:15.851: INFO/YouTube(5143): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/v-

6OYcZaKgg/ratings?client=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:37:37.801: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Page 123: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

109

# State Internal

State

Buffer Tag Keyword Example

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Peo

ple

&v=

05-28 21:44:41.490: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Peo

ple?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

38 Show a

category

(Pets &

Animals)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:38:24.741: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/6aky1mAdDF8/ratings?clie

nt=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:38:44.551: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Ani

mals

&v=

05-28 21:45:07.380: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Ani

mals?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

39 Show a

category

(Science &

Technolog

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:39:27.311: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/njxP4t1WS4U/ratings?client

=mvapp-android-htc].

Page 124: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

110

# State Internal

State

Buffer Tag Keyword Example

y) Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:39:43.111: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Tec

h

&v=

05-28 21:46:30.120: DEBUG/YouTube(10066): Trying store file for

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Tec

h?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

40 Show a

category

(Sport)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:40:37.381: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/RjaDV7WHUmg/ratings?cli

ent=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:40:51.141: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Spo

rts

&v=

05-28 21:47:01.420: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Spor

ts?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

Page 125: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

111

# State Internal

State

Buffer Tag Keyword Example

41 Show a

category

(Travel &

Events)

Video

rated

Main YouTube url=[http://gdata.

youtube.com/fee

ds/api/videos/

ratings

05-25 14:41:33.201: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/frB865UXBtE/ratings?client

=mvapp-android-htc].

Video set

as

favorite

Main YouTube My account

request successful

ADD_FAVORIT

E

05-25 14:41:52.951: DEBUG/YouTube(5143): My account request

successful, type ADD_FAVORITE

Time

filter

Main YouTube url=[http://gdata.y

outube.com/feeds/

api/standardfeeds/

most_viewed_Tra

vel

&v=

05-28 21:47:28.790: INFO/YouTube(10066): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewed_Trav

el?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_month&v=2].

42 Settings

(See

note3)

High

quality

video on

mobile

checked

[High

quality

video on

mobile

unchecke

d]

- - - No log generated

Page 126: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

112

# State Internal

State

Buffer Tag Keyword Example

Hight

quality

video on

a mobile

unchecke

d [High

quality

video on

mobile

checked]

- - - No log generated

Captions

font size

set

- - - No log generated

Search

history

cleaned

- - - No log generated

Term of

service

read

- - - No log generated

General note:

There are several states which has “Time filter” as internal state. This internal state causes a reloading of the state. From the point of view of the logs, it

is exactly the same if the user enters to the states again.

The states which has “Time filter ” as internal state are:

• 7. Search result Empty/Ok

• 10. Most viewed

• 11. Most discussed

Page 127: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

113

• 12. Top rated

• 27-41. Show a category

Note 1:

The three internal states belong to Play video: Scroll video, Backward video and Forward video produce the same effect: Change the position of the

point that is going to reproduce.

The most important thing is when the video is paused, no matter where is the point where is going to reproduce (play), no special log will be generated.

The unique way to know if the user is playing from a non-continue point is monitor the buffering percentage.

The buffering percentage indicates the percentage of video streaming saved in the buffer. It goes from 1 (1%) to 100 (100%). Here is an example:

06-01 22:01:31.908: INFO/PlayerDriver(2892): buffering percentage=89

When the video is playing normally, it could increase 0, 1 or 2, but never more than 2 or even decrease. If it happens, we are sure that the scroll has

been changed.

Note 2:

The internal states related to the quality of the video (HD on, HD off) when the user is playing a video, cause the program to create a new player and

load a complete different video.

Note 3:

All the changed of Settings is saved inside the file using the Shared preference option that Android offers. That’s why it does not generate any log.

Page 128: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

114

Page 129: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

115

Appendix D

Specific information obtained through logs

The below tables show all the possible data that can get from the logs. They are classified by states from 1 to 44, modes and parallel’s actions. (General

status don’t generate useful data from the logs)

1. Main screen

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOLOADE

DID/default.jpg].

04-28 21:10:15.009: DEBUG/YouTube(12364): Trying store file for

url=[http://i.ytimg.com/vi/cfUO8l8mnG4/default.jpg].

Video

Rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:28:44.331: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/9w_5rXpfXpA/ratings?

client=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

2. Start recording video

This state is context dependent.

3. Video recording finished

This state is context dependent.

4. Fill information about a video recorded

Page 130: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

116

Main/

Internal

State

Buffer Tag Data Format Example

Main Main MediaUpl

oader

Account Id Got authToken for

ACCOUNT ID

04-29 19:15:57.481: DEBUG/MediaUploader(21368): Got authToken

for [email protected]

5. Showing keyboard

Context dependent

6. Start searching

No relevant information generated

7. Search result Empty/Ok

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Format format=FORMAT 05-29 17:52:35.139: DEBUG/YouTube(24698): Trying store file for

url=[http://gdata.youtube.com/feeds/api/videos?format=2%2C3%2C9

&max-results=9&q=hold+it+against+me&safeSearch=strict&start-

index=1&time=this_month&v=2].

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Keyword q=KEYWORD

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Page 131: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

117

Main/

Internal

State

Buffer Tag Data Format Example

Main (see

note 1)

Main YouTube Time time=TIME

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-27 19:47:39.748: INFO/YouTube(3752): Requesting using MASF

url=[http://i.ytimg.com/vi/CD2LRROpph0/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:29:19.151: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/uxTDK1S5qJ0/ratings?

client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

Note: When the user is looking for a video for the first time, the time will be consider “All time”. In that case, the data format won’t appear. If after the

user has finished searching, she uses the “Time filter” option to filter the time, then the time field will appear.

8. Subscriptions updates

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Format format=FORMAT 05-16 19:53:52.016: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/newsubscriptionv

ideos?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&v=2].

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Keyword q=KEYWORD

Page 132: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

118

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-27 19:18:19.077: DEBUG/YouTube(3530): Trying store file for

url=[http://i.ytimg.com/vi/AloBQyjEI0A/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:30:32.991: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/QvrSeVdyiAQ/ratings?

client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

9. More recommended

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Format format=FORMAT 05-16 19:55:08.546: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/recommendations

?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-Main Main YouTube max-results max-result=MAX-

RESULT

Page 133: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

119

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

index=1&v=2&video_id=7f8y4SR9mjU%2CImUTvk8LBmA%2CSE

BLt6Kd9EY%2CDCicNdhcoZw%2CficwZQYmRLE%2CR6CvzUDs

OFQ%2CLbOOPKBg0iA%2Cl1ZCccf78Ck%2CBYhxBwMY-5c]. Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube V v=V

Main Main YouTube Played

videos id

video_id=PLAYEDVI

DEOSID

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-29 19:35:28.347: INFO/YouTube(21116): Requesting using MASF

url=[http://i.ytimg.com/vi/JKGu2n6914M/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:31:25.351: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/l7AUa8k4w50/ratings?

client=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

10. Most viewed

Page 134: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

120

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube LOCALE gdata.youtube.com/fee

ds/api/standardfeeds/L

OCALE/most_viewed

05-16 19:56:24.646: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewe

d?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2]. Main Main YouTube Format format=FORMAT

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube Time time=TIME

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-28 19:18:06.081: INFO/YouTube(12364): Requesting using MASF

url=[http://i.ytimg.com/vi/rEc1mLhN284/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:32:16.801: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/8fRaSV9uNDg/ratings?

client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

Page 135: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

121

11. Most discussed

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Locale gdata.youtube.com/fee

ds/api/standarfeeds/L

OCALE/most_discuss

ed

05-16 19:57:42.126: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_discus

sed?format=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2].

Main Main YouTube Format format=FORMAT

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube Time time=TIME

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-27 19:14:47.137: INFO/YouTube(2900): Requesting using MASF

url=[http://i.ytimg.com/vi/lVoIi1fDt58/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:33:34.891: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/8Y0ZzXKyWzM/rating

Page 136: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

122

Main/

Internal

State

Buffer Tag Data Format Example

Video

rated

Main YouTube Client client=CLIENT s?client=mvapp-android-htc] .

12. Top rated

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Locale gdata.youtube.com/fee

ds/api/standarfeeds/L

OCALE/top_rated

05-16 19:58:28.056: INFO/YouTube(9121): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/top_rated?f

ormat=2%2C3%2C9&max-results=9&safeSearch=strict&start-

index=1&time=this_week&v=2]. Main Main YouTube Format format=FORMAT

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube Time time=TIME

Main Main YouTube V v=V

Page 137: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

123

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-27 19:29:19.995: DEBUG/YouTube(3752): Trying store file for

url=[http://i.ytimg.com/vi/WUt1TZ7T53A/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:34:47.331: INFO/YouTube(4609): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/y63IVluVGnA/ratings?

client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

13. Play video

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube App app=APP 06-05 14:28:03.116: INFO/YouTube(14466): PlayerActivity.play

http://v7.lscache8.googlevideo.com/videoplayback?app=youtube_gdata

&client=mvapp-android-

htc&devKey=ATEU_r3RX2afGqq_gCqiS2UO88HsQjpE1a8d1GxQn

GDm&el=videos&expire=1309868881&id=cfab3da43d708418&ip=0.

0.0.0&ipbits=0&itag=18&key=yta1&signature=3F145C2B23C4E9ED

92D37321AA5869627225B1C4.DBADC8686DBEE87183C7C803D5

99D231C36C51C7&sparams=id,itag,uaopt,ip,ipbits,expire&uaopt=no-

save at 0

Main Main YouTube Client client=CLIENT

Main Main YouTube DevKey devKey=DEVKEY

Main Main YouTube Element el=ELEMENT

Main Main YouTube Date expire expire=DATEEXPIR

E

Main Main YouTube id id=ID

Page 138: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

124

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube IP ip=IP

Main Main YouTube IPbits ipbits=IPBITS

Main Main YouTube Itag itag=ITAG

Main Main YouTube key key=KEY

Main Main YouTube Signature singature=SIGNATU

RE

Main Main YouTube SParameters sparams=SPARAMET

ERS

Main Main YouTube UAOption uaopt=UAOPTION

Main Main YouTube Video

starting time

(ms)

at

VIDEOSTARTINGTI

ME

Main

(See note

1)

Main PlayerDriv

er

Buffering

percentage

buffering percentage =

BUFFERINGLEVEL

04-29 14:29:09.564: INFO/PlayerDriver(77): buffering

percentage=100

Main Main YouTube Id of the

video

related

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-29 14:27:56.094: INFO/YouTube(17527): Requesting using MASF

url=[http://i.ytimg.com/vi/SrJTatTlY-g/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:36:59.531: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/zwd5faVtfEI/ratings?cl

Page 139: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

125

Main/

Internal

State

Buffer Tag Data Format Example

Video

rated

Main YouTube Client client=CLIENT ient=mvapp-android-htc].

Note 1:

There are two different types of logs that display the information about buffering. The first one shows the buffering level more or less each 10 seconds

and the second one shows per each level of buffering (from 1% to 100%). Here come the examples:

...

04-29 14:28:40.154: INFO/PlayerDriver(77): buffering (74)

04-29 14:28:40.594: INFO/PlayerDriver(77): buffering percentage=75

04-29 14:28:41.554: INFO/PlayerDriver(77): buffering percentage=76

04-29 14:28:41.704: INFO/PlayerDriver(77): buffering percentage=77

04-29 14:28:43.314: INFO/PlayerDriver(77): buffering percentage=77

04-29 14:28:43.794: INFO/PlayerDriver(77): buffering percentage=78

04-29 14:28:44.834: INFO/PlayerDriver(77): buffering percentage=79

04-29 14:28:45.954: INFO/PlayerDriver(77): buffering percentage=80

04-29 14:28:47.214: INFO/PlayerDriver(77): buffering percentage=81

04-29 14:28:48.234: INFO/PlayerDriver(77): buffering percentage=82

04-29 14:28:49.134: INFO/PlayerDriver(77): buffering percentage=83

04-29 14:28:50.315: INFO/PlayerDriver(77): buffering percentage=83

04-29 14:28:50.315: INFO/PlayerDriver(77): buffering (83)

...

The first log corresponds to the log of first type. It shows that at 14:28:40.154 of 29 of April, the buffering level is 74%. Then there come logs of the

second type, which shows the exact moment when the buffering level has increase. Finally, the log of first type appears again, which shows that at

14:28:50.315 of 29 of April, the buffering level is 83%.

Because the first type of the logs is redundant, the database will save just information offered by the logs of second type.

Page 140: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

126

14. Video playing finished

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

06-07 13:00:29.673: INFO/YouTube(11916): Requesting using MASF

url=[http://i.ytimg.com/vi/9Ngh7LIn5qw/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:39:10.471: INFO/YouTube(4829): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/zbGJz-

Mhqr4/ratings?client=mvapp-android-htc] .

Video

rated

Main YouTube Client client=CLIENT

15. Read comments

Not relevant data generated in this state

16. Show information

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Video id url=[http://qdata.youtu

be.com/fedds/api/vide

os/VIDEOID/related

04-28 22:12:12.969: INFO/YouTube(12364): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/videos/rVHLme7LtYs/related?

client=mvapp-android-htc&format=2%2C3%2C9&max-

results=6&start-index=1]. Main Main YouTube Client client=CLIENT

Main Main YouTube Format format=FORMAT

Page 141: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

127

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-28 22:12:14.719: INFO/YouTube(12364): Requesting using MASF

url=[http://i.ytimg.com/vi/9Hk_jLWH_WQ/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:41:44.061: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/RPH7LXPZFBo/rating

s?client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

Video set

as

unfavorit

e

[Favorite

video]

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME/favorite

s

05-25 13:42:30.341: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/favorites/v

jVQa1PpcFNccnRzPqX-

SNux2tQXoXogtKmAoJGQap4?client=mvapp-android-htc].

Page 142: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

128

Main/

Internal

State

Buffer Tag Data Format Example

Video set

as

unfavorit

e

[Favorite

video]

Main YouTube Client client=CLIENT

17. Upload video

This state is context dependent.

18. Fill information about a video uploaded

Main/

Internal

State

Buffer Tag Data Format Example

Main Main MediaUpl

oader

Account Id Got authToken for

ACCOUNT ID

04-28 20:20:40.656: DEBUG/MediaUploader(12915): Got authToken

for [email protected]

19. My account

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-28 13:49:18.048: DEBUG/YouTube(711): Trying store file for

url=[http://i.ytimg.com/vi/y63IVluVGnA/default.jpg].

Page 143: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

129

Main/

Internal

State

Buffer Tag Data Format Example

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:45:59.941: INFO/YouTube(4829): Requesting using direct

connection url=[http://gdata.youtube.com/feeds/api/videos/icDh-

Tj669Q/ratings?client=mvapp-android-htc].

Video

rated

Main YouTube Client client=CLIENT

Video

rated (See

note 1)

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-28 14:16:55.188: DEBUG/YouTube(1370): Trying store file for

url=[http://i.ytimg.com/vi/aC-KOYQsIvU/default.jpg].

Video set

as

unfavorit

e

[Favorite

video]

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME/favorite

s

05-25 13:46:20.711: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/favorites/v

jVQa1PpcFNccnRzPqX-SKqqI1TfrSg5Bbp0ZZEJ0Wo?client=mvapp-

android-htc].

Video set

as

unfavorit

e

[Favorite

video]

Main YouTube Client client=CLIENT

Page 144: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

130

Main/

Internal

State

Buffer Tag Data Format Example

Video set

as

unfavorit

e

[Favorite

video]

(See note

2)

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-27 13:23:43.108: INFO/YouTube(24156): Requesting using MASF

url=[http://i.ytimg.com/vi/_6krXiXFe5o/default.jpg].

Video

deleted

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME/uploads

05-25 13:48:03.811: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/uploads/cJ

l1Ms7Ou1Q?client=mvapp-android-htc].

Video

deleted

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/users

/username/uploads/VI

DEOID

Video

deleted

Main YouTube Client client=CLIENT

video

deleted

(See note

3)

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-28 14:35:01.248: INFO/YouTube(1370): Requesting using MASF

url=[http://i.ytimg.com/vi/vDmhuNve7TM/default.jpg].

Note 1: The unique way to invoke this internal state is select a video from “My videos”, holding the finger pressed on the screen and select the option

“Favorite” from the context menu. This cause the YouTube application interacts again with the server in order to update the data. This action could

trigger the requesting of new data.

Page 145: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

131

Note 2: When a video is set as unfavorite, it should be removed from the list of the favorite videos. Then the screen should be updated.

Note 3: When a video is deleted, it should be removed from the list of “My videos”. Then the screen should be updated.

20. Favorite videos

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube max-results max-result=MAX-

RESULT

04-28 13:56:26.979: INFO/YouTube(8676): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/favorites?max-

results=9&safeSearch=strict&start-index=1&v=2]. Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-28 13:56:28.969: DEBUG/YouTube(8676): Trying store file for

url=[http://i.ytimg.com/vi/9duD_mf8-T8/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:52:08.621: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/PHCw4FxCPro/ratings

?client=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

Page 146: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

132

Main/

Internal

State

Buffer Tag Data Format Example

Video set

as

unfavorit

e

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME/favorite

s

05-25 13:49:53.521: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/favorites/v

jVQa1PpcFNccnRzPqX-SMWXgRH3sC59UB-rleK7-

1I?client=mvapp-android-htc]. Video set

as

unfavorit

e

Main YouTube Client client=CLIENT

Video set

as

unfavorit

e

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

21. My subscriptions

Not relevant data generated in this state

22. Show a subscribed/ an unsubscribed channel

Main/

Internal

State

Buffer Tag Data Format Example

Main (see

note 1)

Main YouTube Channel id url=[http://gdata.youtu

be.com/feeds/api/users

/CHANNELID/upload

s

05-28 14:53:40.718: DEBUG/YouTube(1370): Trying store file for

url=[http://gdata.youtube.com/feeds/api/users/Antonpup/uploads?max-

results=9&start-index=1&v=2].

Page 147: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

133

Main/

Internal

State

Buffer Tag Data Format Example

Main (see

note 1)

Main YouTube max-results max-result=MAX-

RESULT

Main (see

note 1)

Main YouTube Start index start-index=START-

INDEX

Main (see

note 1)

Main YouTube V v=V

Main Main Main YouTube Id of the video shown

in the screen

04-28 14:16:38.104: DEBUG/YouTube(8676): Trying store file for

url=[http://i.ytimg.com/vi/N9oxmRT2YWw/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 13:53:06.211: INFO/YouTube(4829): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/TCrCbq2TQiQ/ratings?

client=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

Unsubscr

ibe a

channel

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME

04-28 20:34:57.340: INFO/YouTube(12364): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/subscriptio

ns/6ko_zSB7WmHOyDqfKizbxVLIFycHy8PZZBz2v9GMmxI?client

=mvapp-android-htc]. Unsubscr

ibe a

channel

Main YouTube Client client=CLIENT

Subscribe

a channel

Main YouTube Channel id Subscribe to channel

CHANNELID

04-28 20:31:41.330: DEBUG/YouTube(12364): Subscribe to channel

ya99ya1

Page 148: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

134

Note 1: It generated two types of main logs for each channel. For example, it generated those main logs for the channel “Antonpup”:

05-28 14:53:40.678: DEBUG/YouTube(1370): Trying store file for url=[http://gdata.youtube.com/feeds/api/users/Antonpup?v=2].

05-28 14:53:40.718: DEBUG/YouTube(1370): Trying store file for url=[http://gdata.youtube.com/feeds/api/users/Antonpup/uploads?max-

results=9&start-index=1&v=2].

The second one is utilized to obtain information.

23. My playlist

Not relevant information generated in this state.

24. Show a playlist

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Playlist Id url=[http://gdata.youtu

be.com/feeds/api/playl

ists/PLAYLISTID

04-28 14:12:54.864: INFO/YouTube(8676): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/playlists/037BB0C6722C73A

E].

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-28 14:12:57.174: DEBUG/YouTube(8676): Trying store file for

url=[http://i.ytimg.com/vi/OYecfV3ubP8/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 14:02:07.671: INFO/YouTube(4978): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/KyJtsxKIS2k/ratings?cl

ient=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

25. My videos

Page 149: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

135

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube max-results max-result=MAX-

RESULT

04-28 13:58:16.796: INFO/YouTube(8676): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/users/default/uploads?max-

results=9&start-index=1&v=2]. Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube V v=V

Main Main Main YouTube Id of the video shown

in the screen

04-28 13:58:18.706: DEBUG/YouTube(8676): Trying store file for

url=[http://i.ytimg.com/vi/gJEAN1FFBao/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 14:08:08.611: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/n_4bE2dYZy8/ratings?

client=mvapp-android-htc]. Video

rated

Main YouTube Client client=CLIENT

Video

deleted

Main YouTube User name url=[http://gdata.youtu

be.com/feeds/api/users

/USERNAME/uploads

05-27 13:52:02.938: INFO/YouTube(24572): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/users/pablomunyoz/uploads/_6

krXiXFe5o?client=mvapp-android-htc]. Video

deleted

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/users

/username/uploads/VI

DEOID

Video

deleted

Main YouTube Client client=CLIENT

Page 150: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

136

Main/

Internal

State

Buffer Tag Data Format Example

video

deleted

(See note

1)

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-27 13:52:06.378: DEBUG/YouTube(24572): Trying store file for

url=[http://i.ytimg.com/vi/wCL5rTQ_PJk/default.jpg].

Note 1: When a video is deleted, it should be removed from the list of “My videos”. Then the screen should be updated.

26. Categories

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Locale hl=LOCALE 05-28 16:04:47.218: DEBUG/YouTube(5067): Trying store file for

url=[http://gdata.youtube.com/schemas/2007/categories.cat?hl=en-

HK].

27-41. Show a category

The state 27 to 41 show the video classified by different category. Both the data charged and the internal states are the same. For simplicity, in this

document is going to show the examples for the category “Comedy”.

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube Locale url=[http://gdata.youtu

be.com/feeds/api/stand

ardfeeds/LOCALE

04-28 14:18:03.334: INFO/YouTube(8676): Requesting using MASF

url=[http://gdata.youtube.com/feeds/api/standardfeeds/HK/most_viewe

d_Comedy?format=2%2C3%2C9&max-

results=9&safeSearch=strict&start-index=1&time=this_week&v=2]. Main Main YouTube Format format=FORMAT

Page 151: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

137

Main/

Internal

State

Buffer Tag Data Format Example

Main Main YouTube max-results max-result=MAX-

RESULT

Main Main YouTube Safe search safeSearch=SAFESE

ARCH

Main Main YouTube Start index start-index=START-

INDEX

Main Main YouTube Time time=TIME

Main Main YouTube V v=V

Main Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

04-28 14:18:06.084: DEBUG/YouTube(8676): Trying store file for

url=[http://i.ytimg.com/vi/cGNy-3JHOM8/default.jpg].

Video

rated

Main YouTube Video id url=[http://gdata.youtu

be.com/feeds/api/vide

os/VIDEOID/ratings

05-25 14:27:13.231: INFO/YouTube(5143): Requesting using direct

connection

url=[http://gdata.youtube.com/feeds/api/videos/47ItSdBqggA/ratings?c

lient=mvapp-android-htc] . Video

rated

Main YouTube Client client=CLIENT

42. Settings

No log generated in this state.

43. Share a video

This state is context dependent.

Page 152: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

138

44. Flag a video

Main/

Internal

State

Buffer Tag Data Format Example

Main Events am_new_i

ntent

Video id http://m.youtube.com/

falg?v=VIDEOID

05-16 20:21:12.636 I/am_new_intent( 98):

[1153878800,84,com.android.browser/.BrowserActivity,android.intent.

action.VIEW,,http://m.youtube.com/flag?v=Cr5M8dbhYfs,4194304]

Modes

Logged in

Buffer Tag Data Format Example

Main YouTube Id of the

video

shown in

the screen

url=[http://i.ytimg.co

m/vi/VIDEOID/defaul

t.jpg].

05-28 18:40:32.770: DEBUG/YouTube(7422): Trying store file for

url=[http://i.ytimg.com/vi/y63IVluVGnA/default.jpg].

Logged out

No relevant data generated in this state

Parallel actions

Start uploading video recorded

Buffer Tag Data Format Example

Main MediaUpl

oader

Account Id Getting youtube

authToken for

ACCOUNT ID

04-27 19:06:00.325: DEBUG/MediaUploader(284): Getting youtube authToken

for [email protected]

Page 153: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

139

Start uploading video

Buffer Tag Data Format Example

Main MediaUpl

oader

Account Id Getting youtube

authToken for

ACCOUNT ID

04-27 19:06:00.325: DEBUG/MediaUploader(284): Getting youtube authToken

for [email protected]

Page 154: Monitoring of User Experience and Interactions for Mobile Video Streaming Services-Master thesis at KTH

140

Appendix E

Specifications of the device utilized for the evaluation A continuation the specification of the device used for the evaluation, which is HTC hero, is

specified. They are provided by the manufacturer in their web page1.

Specification Value

Processor Qualcomm MSM 7200A, 528 MHZ

Operating System Android

Memory ROM: 512 MB

RAM: 288 MB

Dimensions (LxWxT) 112 x 56.2 x 14,35 mm

Weight 135 grams with battery

Display 3.2-inch TFT-LCD touch-sensitive screen with

320x480 HVGA resolution

Network HSPA/WCDMA

900/2100 MHz

Up to 2 Mbps up-link and 7.2 Mbps

down-link speeds

Quad-band GSM/GPRS/EDGE

850/900/1800/1900 MHz

(Band frequency and data speed are operator

dependent)

Device Control Trackball with Enter button

GPS Internal GPS antenna

Connectivity Bluetooth 2.0 with Enhanced Data Rate and

A2DP for wireless stereo handsets

Wi-fi: IEEE 802.11 b/g

HTC extUSB (11-pin mini-USB 2.0 and audio

jack in one)

3.5 mm audio jack

Camera 5.0 megapixel color camera with auto focus

Audio supported formats MP3, AAC(AAC, AAC+, AAC-LC), AMR-NB,

WAV, MIDI and Windows Media Audio 9

Video supported formats MPEG-4, H.263, H.264 and Windows Media

Video 9

Battery Rechargeable Lithium-ion battery

Capacity: 1350 mAh

Talk time

Up to 420 minutes for WCDMA

Up to 470 minutes for GSM

Standby time

Up to 750 hours for WCDMA

Up to 440 hours for GSM

Expansion Slot microSD memory card (SD 2.0 compatible)

AC Adapter Voltage range/frequency: 100-240V AC, 50/60

Hz

DC output: 5V and 1A

Special Features G-Sensor

Digital Compress

Source: http://www.htc.com/europe/product/hero/specification.html