Show simple item record

dc.contributor.authorAbbasi, Abdul Muqtadir
dc.date.accessioned2016-09-16 21:27:12 (GMT)
dc.date.available2016-09-16 21:27:12 (GMT)
dc.date.issued2016-09-16
dc.date.submitted2016-09-12
dc.identifier.urihttp://hdl.handle.net/10012/10862
dc.description.abstractSmartphones are the most ubiquitous and popular hand-held devices because of their rich set of features and wide variety of services. However, their daily use is hampered by their high energy consumption, which forces frequent battery recharging. In smartphones, most energy issues are due to energy bugs (ebugs). These energy bugs are said to exist when smartphone software applications (apps) consume more than expected power while executing or continue to consume energy even after these apps are closed or terminated. Therefore, it is very important to develop energy-efficient applications as these energy bugs severely impact user experience and cause significant user frustration. In the first half of this thesis, we discuss the problem of energy bugs. To develop frameworks and tools that detect energy bugs, we need to characterize the power consuming behaviour of software. To achieve that, we develop an operational definition for energy bugs that can be easily translated to a procedure to detect energy bugs in smartphones. Furthermore, we integrate the proposed definition with a diagnostic framework to provide a step-by-step procedure for application developers to identify different types of energy bugs. Using the proposed testing framework, developers can investigate the existence of energy bugs especially when apps or platforms evolve. We validate the proposed framework with experiments and real-world energy bug examples. The results show that there are energy bugs across different versions of the same app as well as across different versions of Operating systems running on the same smartphone. Being software builders and application support providers, software developers should make energy efficient applications for end-users. Thus in the second half of this thesis, we discuss the relationship between software changes and energy consumption by tracing wakelocks that keep a device awake, and services that might be engaging the CPU silently. Although, computer hardware and software engineers are involved in developing energy efficient mobile systems, unfortunately, the ultimate energy efficiency depends on the software choices and requirements of the end-user. We investigate multiple scenarios demonstrating that an application can consume energy differently when a user closes the app in four different ways (Home, Back, Swipe-out or Force-stop). This difference in energy consumption is also true when the app has different components such as activity or service with or without wakelocks, thus illustrating the trade-offs that end-users can make for the sake of energy consumption. Although these energy bugs trigger during the execution stage, their effect sometimes remain after closing the app. Borrowing a similar concept of tail energy loss from the field of computer networking, we call the loss of battery power, even after the app is closed or terminated, as application tail energy bug (app-tail-ebug). The diagnostic process begin by measuring any difference in energy consumption of the smartphone before and after closing the app by an external power meter, which clearly establishes the existence or absence of application tail energy bug. To verify, we use system utilities such as Android logging system, logcat, bugreport, dumpstate and dumpsys. Our ultimate goal is to design a tool as an app running on the device, which can analyse system information and suggest the presence of energy bugs. However, Android has strengthened the security of its OS after KitKat version 4.4, and now superuser access is required to run system level commands. Furthermore, no user app is allowed to access system level information unless the testing app is installed as a system app. Therefore, we run our tool on a desktop PC. In summary, the results of this work can be used by application developers to make implementation level decisions to appreciably improve energy efficiency of software applications on smartphones.en
dc.language.isoenen
dc.publisherUniversity of Waterlooen
dc.subjectenergy bugsen
dc.subjectapplication tail energy bugen
dc.subjectjavaen
dc.subjectAndroiden
dc.subjectwakelocken
dc.subjectserviceen
dc.subjectactivityen
dc.subjectpower consumptionen
dc.subjectbattery poweren
dc.subjectuser actionsen
dc.subjectprogrammer actionsen
dc.titleCategorization and Detection of Energy Bugs and Application Tail Energy Bugs in Smartphonesen
dc.typeMaster Thesisen
dc.pendingfalse
uws-etd.degree.departmentElectrical and Computer Engineeringen
uws-etd.degree.disciplineElectrical and Computer Engineeringen
uws-etd.degree.grantorUniversity of Waterlooen
uws-etd.degreeMaster of Applied Scienceen
uws.contributor.advisorNaik, Kshirasagar
uws.contributor.advisorNaik, Kshirasagar
uws.contributor.affiliation1Faculty of Engineeringen
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.typeOfResourceTexten
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record


UWSpace

University of Waterloo Library
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4883

All items in UWSpace are protected by copyright, with all rights reserved.

DSpace software

Service outages