SlideShare a Scribd company logo
Performance-based Guidelines
for Energy-efficient Mobile
Applications
Luis Cruz, Rui Abreu
luiscruz@fe.up.pt
rui@computer.org
Motivation
• Mobile and wearable devices
are very popular nowadays
• Users expect all-day battery
life on their devices
• Impact of energy
improvements in mobile
applications is hard to
measure and time consuming
2
Hypothesis
Performance based optimizations
can be used to ship energy efficient
Android applications.
3
Research Questions
RQ1: Can programming practices be blindly applied
in order to improve energy efficiency in an
Android application?
RQ2: Do best practices for performance improvement
also improve energy efficiency?
RQ3: Do these best practices actually have an impact
on real mature Android applications?
4
Research Questions
RQ1: Can programming practices be blindly applied
in order to improve energy efficiency in an
Android application?
RQ2: Do best practices for performance improvement
also improve energy efficiency?
RQ3: Do these best practices actually have an impact
on real mature Android applications?
5
Research Questions
RQ1: Can programming practices be blindly applied
in order to improve energy efficiency in an
Android application?
RQ2: Do best practices for performance improvement
also improve energy efficiency?
RQ3: Do these best practices actually have an impact
on real mature Android applications?
6
Methodology
A. Android application selection
B. Static analysis and refactoring
C. Generation of automatic UI tests
D. Energy measurement tools setup
E. Experiments execution
F. Data analysis
7
A. Android application
selection
• 6 open-source Apps available at Google Play and/or F-Droid
8
Writeily ProLoop - Habit Tracker Talalarmo
GnuCash Simple Gallery Acrylic Paint
B. Static analysis and
refactoring
• Android Lint to detect code smells
• 8 performance-based code smells were studied
• Each code smell was fixed and a new version of
the app was generatedTABLE II: Anti-patterns found in open source applications.
Anti-Pattern Loop - Habit Tracker Writeily Pro Talalarmo GnuCash Acrylic Paint Simple Gallery
DrawAllocation - - • - • -
WakeLock - - • - - -
Recycle - - - • - -
ObsoleteLayoutParam - - - • - -
ViewHolder - • - - - -
Overdraw • • - - • •
UnusedResources • • - - - -
UselessParent - • - - - -
9
C. Generation of automatic
UI tests
• Scripts to mimic user interaction
• Manually created using Android View Client
• Allows replication of experiments
10
• Run apps in bare-board
computer ODROID
• Power sensors for main
CPU, secondary CPU,
memory, and GPU
• 4 samples per second
D. Energy measurement
tools setup
ODROID-XU
©2013 Hardkernel co.
11
D. Energy measurement
tools setup
• Power is an
instantaneous
measurement (watts)
• Energy is a
measurement of
power over a period
of time (joules)
E. Experiments execution
• For every fixed code
smell the experiment
was equally executed
30 times for statistical
validation
Controller
Computer
ODROID
Uninstall App &
remove user data
Install APK
Upload Energy
Logger script
Start Energy Logger
Return Energy
Logger PID
UI interaction
Open App
Return Energy Logs
Open App
Stop Energy Logger
(PID)
ADB through USB
13
F. Data analysis
• Power readings were down-sampled to 1 second
• Energy consumptions that differ 2 standard
deviations from the mean were eliminated
14
Significance Tests
15
Welch’s t-test results
UnusedResource,
and UselessParent
did not provide
significant results.
Fig. 9: Energy consumption for Simple Gallery.
TABLE IV: Significance Welch’s t-test results
Application Pattern Test p-value
Loop - Habit Tracker
Overdraw -0.56 .5784
UnusedResources -0.83 .4121
All -0.08 .9362
Writeily Pro
Overdraw -0.10 .9180
UnusedResources -0.03 .9790
ViewHolder 3.02 .0038
UselessParent 0.20 .8434
All 2.93 .0049
Talalarmo
DrawAllocation 4.18 .0001
WakeLock 4.43 < .0001
All 2.16 .0353
GnuCash
ObsoleteLayoutParam 2.57 .0127
Recycle 2.55 .0140
All 2.47 .0164
AcrylicPaint
DrawAllocation 0.64 .5221
Overdraw 45.88 < .0001
All -5.84 < .0001
Simple Gallery Overdraw -4.04 .0010
DrawAllocation also
Although it occurred in
Talalarmo, we observed
tion was also tested wi
statistically significant im
picker redraw routine. U
debug view updates, we
a single time when a ne
fix in the overall execu
been the reason for not
consumption.
Fixing incorrect Wake
ment of 1%. In the ori
lock was not being pro
to energy drain in part
application is no longer
was not properly releas
power state. This woul
given the nature of ou
effectively tested. Thus,
in a real case scenario.
ObsoleteLayoutParam
Effect SizeTABLE V: Effect size of significant patterns
Application Pattern MD Cohen’s d IMP (%) Savings (min)
Writeily Pro
ViewHolder # -5.39 -0.78 4.50 65
All # -5.42 -0.76 4.53 65
Talalarmo
DrawAllocation # -0.86 -1.11 1.47 21
WakeLock # -0.85 -1.17 1.46 21
All # -0.48 -0.57 0.82 12
GnuCash
ObsoleteLayoutParam # -1.41 -0.67 0.72 10
Recycle # -1.28 -0.66 0.65 9
All # -1.53 -0.64 0.78 11
Acrylic Paint
Overdraw " 1.42 1.64 -2.26 -33
All " 1.37 1.51 -2.18 -31
Simple Gallery Overdraw " 3.08 1.04 -2.11 -30
WakeLock usage also provided an improve-
original version of Talalarmo, the wake
properly released which could have lead
itself several times. In this case, having an
important, and fixing Overdraw is expected
ing results. On the other hand, if a view is be16
View Holder has the biggest impact 😀 while
Overdraw increased energy consumption 😕
Research Questions
RQ1: Can programming practices be blindly applied in order to improve
energy efficiency in an Android application?
Yes, apps had energy efficiency improved without changing the
feature set and without requiring previous knowledge of the app.
RQ2: Do best practices for performance improvement also improve energy
efficiency?
Not necessarily. While five optimizations improved energy
efficiency, two did not affect, and one had a negative impact.
RQ3: Do these best practices actually have an impact on real mature Android
applications?
Yes, three out of six real apps improved energy efficiency.
17
Conclusions & Future Work
• Anti-patterns ViewHolder, DrawAllocation,
WakeLock, ObsoleteLayoutParam, and Recycle have
to be considered when developing energy-efficient
apps
• Extend the study to other optimizations
• Automatic refactoring (Autorefactor, FB pfff, Walkmod,
Kadabra?)
• Label mobile applications with respect to energy
efficiency
18
Hypothesis
Performance based optimizations
can be used to ship energy efficient
Android applications.
3
Effect SizeTABLE V: Effect size of significant patterns
Application Pattern MD Cohen’s d IMP (%) Savings (min)
Writeily Pro
ViewHolder # -5.39 -0.78 4.50 65
All # -5.42 -0.76 4.53 65
Talalarmo
DrawAllocation # -0.86 -1.11 1.47 21
WakeLock # -0.85 -1.17 1.46 21
All # -0.48 -0.57 0.82 12
GnuCash
ObsoleteLayoutParam # -1.41 -0.67 0.72 10
Recycle # -1.28 -0.66 0.65 9
All # -1.53 -0.64 0.78 11
Acrylic Paint
Overdraw " 1.42 1.64 -2.26 -33
All " 1.37 1.51 -2.18 -31
Simple Gallery Overdraw " 3.08 1.04 -2.11 -30
WakeLock usage also provided an improve-
he original version of Talalarmo, the wake
g properly released which could have lead
itself several times. In this case, having an efficient redraw is
important, and fixing Overdraw is expected to create interest-
ing results. On the other hand, if a view is being created several16
View Holder has the biggest impact ! while
Overdraw increased energy consumption "
Research Questions
RQ1: Can programming practices be blindly applied in order to improve
energy efficiency in an Android application?
Yes, apps had energy efficiency improved without changing the
feature set and without requiring previous knowledge of the app.
RQ2: Do best practices for performance improvement also improve energy
efficiency?
Not necessarily. While five optimizations improved energy
efficiency, two did not affect, and one had a negative impact.
RQ3: Do these best practices actually have an impact on real mature Android
applications?
Yes, three out of six real apps improved energy efficiency.
17
19
Full Paper
Performance-based Guidelines for Energy-
efficient Mobile Applications
Luis Cruz, Rui Abreu
All source code and
collected data
20

More Related Content

What's hot

Zigbee technology [autosaved]
Zigbee technology [autosaved]Zigbee technology [autosaved]
Zigbee technology [autosaved]
vandjadhav
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined Networks
Shreeya Shah
 
Wireless Sensor Networks
Wireless Sensor NetworksWireless Sensor Networks
Wireless Sensor Networks
juno susi
 
Network function virtualization
Network function virtualizationNetwork function virtualization
Network function virtualization
Satish Chavan
 
Software agents
Software agentsSoftware agents
Software agents
rajsandhu1989
 
Introduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined NetworkingIntroduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined Networking
Ankita Mahajan
 
Software Defined Networking (SDN) Technology Brief
Software Defined Networking (SDN) Technology BriefSoftware Defined Networking (SDN) Technology Brief
Software Defined Networking (SDN) Technology Brief
Zivaro Inc
 
Wireless sensor network
Wireless sensor networkWireless sensor network
Wireless sensor network
ShubhamTakkar
 
IoT Control Units and Communication Models
IoT Control Units and Communication ModelsIoT Control Units and Communication Models
IoT Control Units and Communication Models
National Institute of Technology Karnataka, Surathkal
 
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Majid Hajibaba
 
Challenges for routing in wireless sensor networks
Challenges for routing in wireless sensor networksChallenges for routing in wireless sensor networks
Challenges for routing in wireless sensor networks
Auwal Amshi
 
Design challenges in IoT
Design challenges in IoT Design challenges in IoT
Design challenges in IoT
Emertxe Information Technologies Pvt Ltd
 
Wireless Sensor Networks ppt
Wireless Sensor Networks pptWireless Sensor Networks ppt
Wireless Sensor Networks ppt
Devdutta Chakrabarti
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
6G Technology
6G Technology6G Technology
6G Technology
Akhil john
 
MapReduce Paradigm
MapReduce ParadigmMapReduce Paradigm
MapReduce ParadigmDilip Reddy
 
wireless communication
wireless communicationwireless communication
wireless communication
Sakshi Bhargava
 
Cloud, Fog & Edge Computing
Cloud, Fog & Edge ComputingCloud, Fog & Edge Computing
Cloud, Fog & Edge Computing
EUBrasilCloudFORUM .
 

What's hot (20)

Zigbee technology [autosaved]
Zigbee technology [autosaved]Zigbee technology [autosaved]
Zigbee technology [autosaved]
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined Networks
 
Wireless Sensor Networks
Wireless Sensor NetworksWireless Sensor Networks
Wireless Sensor Networks
 
Google Wave ppt
Google Wave pptGoogle Wave ppt
Google Wave ppt
 
Network function virtualization
Network function virtualizationNetwork function virtualization
Network function virtualization
 
Software agents
Software agentsSoftware agents
Software agents
 
Introduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined NetworkingIntroduction to SDN: Software Defined Networking
Introduction to SDN: Software Defined Networking
 
Software Defined Networking (SDN) Technology Brief
Software Defined Networking (SDN) Technology BriefSoftware Defined Networking (SDN) Technology Brief
Software Defined Networking (SDN) Technology Brief
 
Wireless sensor network
Wireless sensor networkWireless sensor network
Wireless sensor network
 
IoT Control Units and Communication Models
IoT Control Units and Communication ModelsIoT Control Units and Communication Models
IoT Control Units and Communication Models
 
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
Cloud Computing Principles and Paradigms: 5 virtual machines provisioning and...
 
Challenges for routing in wireless sensor networks
Challenges for routing in wireless sensor networksChallenges for routing in wireless sensor networks
Challenges for routing in wireless sensor networks
 
Design challenges in IoT
Design challenges in IoT Design challenges in IoT
Design challenges in IoT
 
Wireless Sensor Networks ppt
Wireless Sensor Networks pptWireless Sensor Networks ppt
Wireless Sensor Networks ppt
 
Routing Protocols in WSN
Routing Protocols in WSNRouting Protocols in WSN
Routing Protocols in WSN
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
Google App Engine ppt
 
6G Technology
6G Technology6G Technology
6G Technology
 
MapReduce Paradigm
MapReduce ParadigmMapReduce Paradigm
MapReduce Paradigm
 
wireless communication
wireless communicationwireless communication
wireless communication
 
Cloud, Fog & Edge Computing
Cloud, Fog & Edge ComputingCloud, Fog & Edge Computing
Cloud, Fog & Edge Computing
 

Similar to Performance-based Guidelines for Energy Efficient Mobile Applications

Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
Using Automatic Refactoring to Improve Energy Efficiency of Android AppsUsing Automatic Refactoring to Improve Energy Efficiency of Android Apps
Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
Luis Cruz
 
Greendroid Part2
Greendroid Part2Greendroid Part2
Greendroid Part2
k.surya kumar
 
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
Matteo Ferroni
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
Linaro
 
GREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplaceGREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplace
Olivier Le Goaër
 
Green droid automated diagnosis of energy inefficiency for smartphone applica...
Green droid automated diagnosis of energy inefficiency for smartphone applica...Green droid automated diagnosis of energy inefficiency for smartphone applica...
Green droid automated diagnosis of energy inefficiency for smartphone applica...JPINFOTECH JAYAPRAKASH
 
Altitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under BudgetAltitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under Budget
Fastly
 
Portfolio - Muhammad Ismail Sheikh
Portfolio - Muhammad Ismail SheikhPortfolio - Muhammad Ismail Sheikh
Portfolio - Muhammad Ismail SheikhM. Ismail Sheikh
 
Static Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario ApproachStatic Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario Approach
GreenLabAtDI
 
HeadSpin Code Profiling
HeadSpin Code ProfilingHeadSpin Code Profiling
HeadSpin Code Profiling
Headspin INC
 
The road to green code
The road to green codeThe road to green code
The road to green code
Olivier Le Goaër
 
Mobilesoft 2017 Keynote
Mobilesoft 2017 KeynoteMobilesoft 2017 Keynote
Mobilesoft 2017 Keynote
Abhik Roychoudhury
 
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
rickschwar
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
rickschwar
 
Design Patterns Facilitated by Geode's WAN Distribution
Design Patterns Facilitated by Geode's WAN DistributionDesign Patterns Facilitated by Geode's WAN Distribution
Design Patterns Facilitated by Geode's WAN Distribution
VMware Tanzu
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03Radu_Negulescu
 
Solar Based Multiple Charger( System Engineering)
Solar Based Multiple Charger( System Engineering)Solar Based Multiple Charger( System Engineering)
Solar Based Multiple Charger( System Engineering)
Omkar Rane
 
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONEGREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
pihu281
 
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
DataWorks Summit
 

Similar to Performance-based Guidelines for Energy Efficient Mobile Applications (20)

Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
Using Automatic Refactoring to Improve Energy Efficiency of Android AppsUsing Automatic Refactoring to Improve Energy Efficiency of Android Apps
Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
 
Greendroid Part2
Greendroid Part2Greendroid Part2
Greendroid Part2
 
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
[February 2017 - Ph.D. Final Dissertation] Enabling Power-awareness For Multi...
 
LAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in AndroidLAS16-307: Benchmarking Schedutil in Android
LAS16-307: Benchmarking Schedutil in Android
 
GREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplaceGREEN PAUWARE - For a power-thrifty mobile app marketplace
GREEN PAUWARE - For a power-thrifty mobile app marketplace
 
Green droid automated diagnosis of energy inefficiency for smartphone applica...
Green droid automated diagnosis of energy inefficiency for smartphone applica...Green droid automated diagnosis of energy inefficiency for smartphone applica...
Green droid automated diagnosis of energy inefficiency for smartphone applica...
 
Altitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under BudgetAltitude SF 2017: Granular, Precached, & Under Budget
Altitude SF 2017: Granular, Precached, & Under Budget
 
Portfolio - Muhammad Ismail Sheikh
Portfolio - Muhammad Ismail SheikhPortfolio - Muhammad Ismail Sheikh
Portfolio - Muhammad Ismail Sheikh
 
Static Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario ApproachStatic Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario Approach
 
greendroid ppts
greendroid pptsgreendroid ppts
greendroid ppts
 
HeadSpin Code Profiling
HeadSpin Code ProfilingHeadSpin Code Profiling
HeadSpin Code Profiling
 
The road to green code
The road to green codeThe road to green code
The road to green code
 
Mobilesoft 2017 Keynote
Mobilesoft 2017 KeynoteMobilesoft 2017 Keynote
Mobilesoft 2017 Keynote
 
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
Samsung Developer's Conference - Maximize App Performance while Minimizing Ba...
 
How to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting PerformanceHow to Lower Android Power Consumption Without Affecting Performance
How to Lower Android Power Consumption Without Affecting Performance
 
Design Patterns Facilitated by Geode's WAN Distribution
Design Patterns Facilitated by Geode's WAN DistributionDesign Patterns Facilitated by Geode's WAN Distribution
Design Patterns Facilitated by Geode's WAN Distribution
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03
 
Solar Based Multiple Charger( System Engineering)
Solar Based Multiple Charger( System Engineering)Solar Based Multiple Charger( System Engineering)
Solar Based Multiple Charger( System Engineering)
 
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONEGREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
GREENDROID: A SOLUTION TO THE BATTERY PROBLEM OF SMARTPHONE
 
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
Dr Elephant: LinkedIn's Self-Service System for Detecting and Treating Hadoop...
 

More from MobileSoft

Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
MobileSoft
 
Predicting Android Application Security and Privacy Risk With Static Code Met...
Predicting Android Application Security and Privacy Risk With Static Code Met...Predicting Android Application Security and Privacy Risk With Static Code Met...
Predicting Android Application Security and Privacy Risk With Static Code Met...
MobileSoft
 
A Framework for Regression Testing of Outdoor Mobile Applications
A Framework for Regression Testing of Outdoor Mobile ApplicationsA Framework for Regression Testing of Outdoor Mobile Applications
A Framework for Regression Testing of Outdoor Mobile Applications
MobileSoft
 
Who Changed You? Obfuscator Identification for Android
Who Changed You? Obfuscator Identification for AndroidWho Changed You? Obfuscator Identification for Android
Who Changed You? Obfuscator Identification for Android
MobileSoft
 
Mobile App Development and Management: Results from a Qualitative Investigation
Mobile App Development and Management: Results from a Qualitative InvestigationMobile App Development and Management: Results from a Qualitative Investigation
Mobile App Development and Management: Results from a Qualitative Investigation
MobileSoft
 
Towards Mobile Twin Peaks for App Development
Towards Mobile Twin Peaks for App DevelopmentTowards Mobile Twin Peaks for App Development
Towards Mobile Twin Peaks for App Development
MobileSoft
 
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic RefactoringLeafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
MobileSoft
 
Same App, Different App Stores: A comparative Study
Same App, Different App Stores: A comparative StudySame App, Different App Stores: A comparative Study
Same App, Different App Stores: A comparative Study
MobileSoft
 
Performance-based Guidelines for Energy-efficient Mobile Applications
Performance-based Guidelines for Energy-efficient Mobile ApplicationsPerformance-based Guidelines for Energy-efficient Mobile Applications
Performance-based Guidelines for Energy-efficient Mobile Applications
MobileSoft
 
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
MobileSoft
 
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
MobileSoft
 
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic RefactoringLeafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
MobileSoft
 
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile AppsIFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
MobileSoft
 
Towards Architectural Styles for Android App Software Product Lines
Towards Architectural Styles for Android App Software Product LinesTowards Architectural Styles for Android App Software Product Lines
Towards Architectural Styles for Android App Software Product Lines
MobileSoft
 
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
MobileSoft
 
Authoring Tool for Location-based Learning Experiences
Authoring Tool for Location-based Learning ExperiencesAuthoring Tool for Location-based Learning Experiences
Authoring Tool for Location-based Learning Experiences
MobileSoft
 
ACCUSE: Helping Users to minimize Android App Privacy Concerns
ACCUSE: Helping Users to minimize Android App Privacy ConcernsACCUSE: Helping Users to minimize Android App Privacy Concerns
ACCUSE: Helping Users to minimize Android App Privacy Concerns
MobileSoft
 
Automatically Locating Malicious Packages in Piggybacked Android Apps
Automatically Locating Malicious Packages in Piggybacked Android AppsAutomatically Locating Malicious Packages in Piggybacked Android Apps
Automatically Locating Malicious Packages in Piggybacked Android Apps
MobileSoft
 
From reactive toproactive mobile security
From reactive toproactive mobile securityFrom reactive toproactive mobile security
From reactive toproactive mobile security
MobileSoft
 
Processing in Mobile Applications: A Case Study
Processing in Mobile Applications: A Case StudyProcessing in Mobile Applications: A Case Study
Processing in Mobile Applications: A Case Study
MobileSoft
 

More from MobileSoft (20)

Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Co...
 
Predicting Android Application Security and Privacy Risk With Static Code Met...
Predicting Android Application Security and Privacy Risk With Static Code Met...Predicting Android Application Security and Privacy Risk With Static Code Met...
Predicting Android Application Security and Privacy Risk With Static Code Met...
 
A Framework for Regression Testing of Outdoor Mobile Applications
A Framework for Regression Testing of Outdoor Mobile ApplicationsA Framework for Regression Testing of Outdoor Mobile Applications
A Framework for Regression Testing of Outdoor Mobile Applications
 
Who Changed You? Obfuscator Identification for Android
Who Changed You? Obfuscator Identification for AndroidWho Changed You? Obfuscator Identification for Android
Who Changed You? Obfuscator Identification for Android
 
Mobile App Development and Management: Results from a Qualitative Investigation
Mobile App Development and Management: Results from a Qualitative InvestigationMobile App Development and Management: Results from a Qualitative Investigation
Mobile App Development and Management: Results from a Qualitative Investigation
 
Towards Mobile Twin Peaks for App Development
Towards Mobile Twin Peaks for App DevelopmentTowards Mobile Twin Peaks for App Development
Towards Mobile Twin Peaks for App Development
 
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic RefactoringLeafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
 
Same App, Different App Stores: A comparative Study
Same App, Different App Stores: A comparative StudySame App, Different App Stores: A comparative Study
Same App, Different App Stores: A comparative Study
 
Performance-based Guidelines for Energy-efficient Mobile Applications
Performance-based Guidelines for Energy-efficient Mobile ApplicationsPerformance-based Guidelines for Energy-efficient Mobile Applications
Performance-based Guidelines for Energy-efficient Mobile Applications
 
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
Towards Native Code Offloading Platforms for Image Processing in Mobile Appli...
 
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
Assessing the Impact of Service Workers on the Energy Efficiency of Progressi...
 
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic RefactoringLeafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
 
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile AppsIFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
IFMLEdit.org: Model Driven Rapid Prototyping of Mobile Apps
 
Towards Architectural Styles for Android App Software Product Lines
Towards Architectural Styles for Android App Software Product LinesTowards Architectural Styles for Android App Software Product Lines
Towards Architectural Styles for Android App Software Product Lines
 
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
CheckDroid: A Tool for Automated Detection of Bad Practices in Android Applic...
 
Authoring Tool for Location-based Learning Experiences
Authoring Tool for Location-based Learning ExperiencesAuthoring Tool for Location-based Learning Experiences
Authoring Tool for Location-based Learning Experiences
 
ACCUSE: Helping Users to minimize Android App Privacy Concerns
ACCUSE: Helping Users to minimize Android App Privacy ConcernsACCUSE: Helping Users to minimize Android App Privacy Concerns
ACCUSE: Helping Users to minimize Android App Privacy Concerns
 
Automatically Locating Malicious Packages in Piggybacked Android Apps
Automatically Locating Malicious Packages in Piggybacked Android AppsAutomatically Locating Malicious Packages in Piggybacked Android Apps
Automatically Locating Malicious Packages in Piggybacked Android Apps
 
From reactive toproactive mobile security
From reactive toproactive mobile securityFrom reactive toproactive mobile security
From reactive toproactive mobile security
 
Processing in Mobile Applications: A Case Study
Processing in Mobile Applications: A Case StudyProcessing in Mobile Applications: A Case Study
Processing in Mobile Applications: A Case Study
 

Recently uploaded

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 

Recently uploaded (20)

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 

Performance-based Guidelines for Energy Efficient Mobile Applications

  • 1. Performance-based Guidelines for Energy-efficient Mobile Applications Luis Cruz, Rui Abreu luiscruz@fe.up.pt rui@computer.org
  • 2. Motivation • Mobile and wearable devices are very popular nowadays • Users expect all-day battery life on their devices • Impact of energy improvements in mobile applications is hard to measure and time consuming 2
  • 3. Hypothesis Performance based optimizations can be used to ship energy efficient Android applications. 3
  • 4. Research Questions RQ1: Can programming practices be blindly applied in order to improve energy efficiency in an Android application? RQ2: Do best practices for performance improvement also improve energy efficiency? RQ3: Do these best practices actually have an impact on real mature Android applications? 4
  • 5. Research Questions RQ1: Can programming practices be blindly applied in order to improve energy efficiency in an Android application? RQ2: Do best practices for performance improvement also improve energy efficiency? RQ3: Do these best practices actually have an impact on real mature Android applications? 5
  • 6. Research Questions RQ1: Can programming practices be blindly applied in order to improve energy efficiency in an Android application? RQ2: Do best practices for performance improvement also improve energy efficiency? RQ3: Do these best practices actually have an impact on real mature Android applications? 6
  • 7. Methodology A. Android application selection B. Static analysis and refactoring C. Generation of automatic UI tests D. Energy measurement tools setup E. Experiments execution F. Data analysis 7
  • 8. A. Android application selection • 6 open-source Apps available at Google Play and/or F-Droid 8 Writeily ProLoop - Habit Tracker Talalarmo GnuCash Simple Gallery Acrylic Paint
  • 9. B. Static analysis and refactoring • Android Lint to detect code smells • 8 performance-based code smells were studied • Each code smell was fixed and a new version of the app was generatedTABLE II: Anti-patterns found in open source applications. Anti-Pattern Loop - Habit Tracker Writeily Pro Talalarmo GnuCash Acrylic Paint Simple Gallery DrawAllocation - - • - • - WakeLock - - • - - - Recycle - - - • - - ObsoleteLayoutParam - - - • - - ViewHolder - • - - - - Overdraw • • - - • • UnusedResources • • - - - - UselessParent - • - - - - 9
  • 10. C. Generation of automatic UI tests • Scripts to mimic user interaction • Manually created using Android View Client • Allows replication of experiments 10
  • 11. • Run apps in bare-board computer ODROID • Power sensors for main CPU, secondary CPU, memory, and GPU • 4 samples per second D. Energy measurement tools setup ODROID-XU ©2013 Hardkernel co. 11
  • 12. D. Energy measurement tools setup • Power is an instantaneous measurement (watts) • Energy is a measurement of power over a period of time (joules)
  • 13. E. Experiments execution • For every fixed code smell the experiment was equally executed 30 times for statistical validation Controller Computer ODROID Uninstall App & remove user data Install APK Upload Energy Logger script Start Energy Logger Return Energy Logger PID UI interaction Open App Return Energy Logs Open App Stop Energy Logger (PID) ADB through USB 13
  • 14. F. Data analysis • Power readings were down-sampled to 1 second • Energy consumptions that differ 2 standard deviations from the mean were eliminated 14
  • 15. Significance Tests 15 Welch’s t-test results UnusedResource, and UselessParent did not provide significant results. Fig. 9: Energy consumption for Simple Gallery. TABLE IV: Significance Welch’s t-test results Application Pattern Test p-value Loop - Habit Tracker Overdraw -0.56 .5784 UnusedResources -0.83 .4121 All -0.08 .9362 Writeily Pro Overdraw -0.10 .9180 UnusedResources -0.03 .9790 ViewHolder 3.02 .0038 UselessParent 0.20 .8434 All 2.93 .0049 Talalarmo DrawAllocation 4.18 .0001 WakeLock 4.43 < .0001 All 2.16 .0353 GnuCash ObsoleteLayoutParam 2.57 .0127 Recycle 2.55 .0140 All 2.47 .0164 AcrylicPaint DrawAllocation 0.64 .5221 Overdraw 45.88 < .0001 All -5.84 < .0001 Simple Gallery Overdraw -4.04 .0010 DrawAllocation also Although it occurred in Talalarmo, we observed tion was also tested wi statistically significant im picker redraw routine. U debug view updates, we a single time when a ne fix in the overall execu been the reason for not consumption. Fixing incorrect Wake ment of 1%. In the ori lock was not being pro to energy drain in part application is no longer was not properly releas power state. This woul given the nature of ou effectively tested. Thus, in a real case scenario. ObsoleteLayoutParam
  • 16. Effect SizeTABLE V: Effect size of significant patterns Application Pattern MD Cohen’s d IMP (%) Savings (min) Writeily Pro ViewHolder # -5.39 -0.78 4.50 65 All # -5.42 -0.76 4.53 65 Talalarmo DrawAllocation # -0.86 -1.11 1.47 21 WakeLock # -0.85 -1.17 1.46 21 All # -0.48 -0.57 0.82 12 GnuCash ObsoleteLayoutParam # -1.41 -0.67 0.72 10 Recycle # -1.28 -0.66 0.65 9 All # -1.53 -0.64 0.78 11 Acrylic Paint Overdraw " 1.42 1.64 -2.26 -33 All " 1.37 1.51 -2.18 -31 Simple Gallery Overdraw " 3.08 1.04 -2.11 -30 WakeLock usage also provided an improve- original version of Talalarmo, the wake properly released which could have lead itself several times. In this case, having an important, and fixing Overdraw is expected ing results. On the other hand, if a view is be16 View Holder has the biggest impact 😀 while Overdraw increased energy consumption 😕
  • 17. Research Questions RQ1: Can programming practices be blindly applied in order to improve energy efficiency in an Android application? Yes, apps had energy efficiency improved without changing the feature set and without requiring previous knowledge of the app. RQ2: Do best practices for performance improvement also improve energy efficiency? Not necessarily. While five optimizations improved energy efficiency, two did not affect, and one had a negative impact. RQ3: Do these best practices actually have an impact on real mature Android applications? Yes, three out of six real apps improved energy efficiency. 17
  • 18. Conclusions & Future Work • Anti-patterns ViewHolder, DrawAllocation, WakeLock, ObsoleteLayoutParam, and Recycle have to be considered when developing energy-efficient apps • Extend the study to other optimizations • Automatic refactoring (Autorefactor, FB pfff, Walkmod, Kadabra?) • Label mobile applications with respect to energy efficiency 18
  • 19. Hypothesis Performance based optimizations can be used to ship energy efficient Android applications. 3 Effect SizeTABLE V: Effect size of significant patterns Application Pattern MD Cohen’s d IMP (%) Savings (min) Writeily Pro ViewHolder # -5.39 -0.78 4.50 65 All # -5.42 -0.76 4.53 65 Talalarmo DrawAllocation # -0.86 -1.11 1.47 21 WakeLock # -0.85 -1.17 1.46 21 All # -0.48 -0.57 0.82 12 GnuCash ObsoleteLayoutParam # -1.41 -0.67 0.72 10 Recycle # -1.28 -0.66 0.65 9 All # -1.53 -0.64 0.78 11 Acrylic Paint Overdraw " 1.42 1.64 -2.26 -33 All " 1.37 1.51 -2.18 -31 Simple Gallery Overdraw " 3.08 1.04 -2.11 -30 WakeLock usage also provided an improve- he original version of Talalarmo, the wake g properly released which could have lead itself several times. In this case, having an efficient redraw is important, and fixing Overdraw is expected to create interest- ing results. On the other hand, if a view is being created several16 View Holder has the biggest impact ! while Overdraw increased energy consumption " Research Questions RQ1: Can programming practices be blindly applied in order to improve energy efficiency in an Android application? Yes, apps had energy efficiency improved without changing the feature set and without requiring previous knowledge of the app. RQ2: Do best practices for performance improvement also improve energy efficiency? Not necessarily. While five optimizations improved energy efficiency, two did not affect, and one had a negative impact. RQ3: Do these best practices actually have an impact on real mature Android applications? Yes, three out of six real apps improved energy efficiency. 17 19
  • 20. Full Paper Performance-based Guidelines for Energy- efficient Mobile Applications Luis Cruz, Rui Abreu All source code and collected data 20