Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes...
Transcript of Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes...
![Page 1: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/1.jpg)
Selectively Taming Background Android Apps to Improve Battery Lifetime
Rodrigo Fonseca
Brown University
Justin Cappos
New York University
Marcelo Martins
Brown University
![Page 2: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/2.jpg)
2
![Page 3: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/3.jpg)
Your Battery and You
Active device high battery drainage
Matches our battery life expectation
3
![Page 4: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/4.jpg)
4
Your Battery and You
Idle device expect low battery drain (?)
Background activities break low-power harmony
Energy bugs keep the device awake
![Page 5: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/5.jpg)
Hid
de
n E
ne
rgy
Dra
in
Pure AOSP + Google Mobile Services5
![Page 6: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/6.jpg)
6
0
20
40
60
80
100
0 50 100 150 200 250
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
ASUS MeMO Pad 7
~8.3 days
0
20
40
60
80
100
0 20 40 60 80 100 120 140
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
Samsung Galaxy Nexus
~1.8 days
![Page 7: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/7.jpg)
0
1
2
3
0 50 100 150 200 250 300 350
Po
we
r (W
)
Timeline (s)
NlpLocationReceiverServicePendingIntentCallbackServiceUlrDispatchingServiceNlpWakeLockNlpCollectorWakeLockGeofencerStateMachineGCoreFlpNetworkLocationServiceAlarmManager
Hid
de
n E
ne
rgy
Dra
in
0
1
2
0 50 100 150 200 250 300 350
Po
we
r (W
)
Timeline (s)
AlarmManager
Pure AOSP
+ Google Mobile Services
7
![Page 8: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/8.jpg)
What Can We Do Today?
Reconfigure apps
Uninstall/Switch apps
Kill apps
Change system settings
8
![Page 9: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/9.jpg)
What Can We Do Today?
Reconfigure apps
Uninstall/Switch apps
Kill apps
Change system settings
9
![Page 10: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/10.jpg)
What Can We Do Today?
Reconfigure apps
Uninstall/Switch apps
Kill apps
Change system settings
10
![Page 11: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/11.jpg)
What Can We Do Today?
Reconfigure apps
Uninstall/Switch apps
Kill apps
Change system settings
11
![Page 12: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/12.jpg)
TAMER
12
Runtime mechanism to rate-limit background events
![Page 13: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/13.jpg)
Backgrounding Sources?
Services
Alarms
Intent Receivers
Wakelocks
Tomorrow’s
temperature?
25o C
13
![Page 14: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/14.jpg)
Backgrounding Sources?
Services
Alarms
Intent Receivers
Wakelocks
Sync files
every 15 min
14
![Page 15: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/15.jpg)
Backgrounding Sources?
Services
Alarms
Intent Receivers
Wakelocks
Wake me up
on new msg
15
![Page 16: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/16.jpg)
Backgrounding Sources?
Services
Alarms
Intent Receivers
Wakelocks
Keep screen
awake
16
![Page 17: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/17.jpg)
Services
Alarms
Intent Receivers
Wakelocks
Backgrounding Sources?
Asynchronous
17
Symmetric
![Page 18: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/18.jpg)
Prelude to Blocking: Event Dispatching
1. Event definition (what)
class fetchTemperature extends IntentService {
@Override
public void onHandleIntent(…) {…}
};
18
Tomorrow’s
temperature?
![Page 19: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/19.jpg)
Prelude to Blocking: Event Dispatching
1. Event definition (what)
2. Event request
class fetchTemperature extends IntentService {…}
startService(new Intent(…, fetchTemperature.class));
19
Tomorrow’s
temperature?
![Page 20: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/20.jpg)
Prelude to Blocking: Event Dispatching
1. Event definition (what)
2. Event request
3. Event callback (where)
20
Tomorrow’s
temperature?
startService(…)
⁞
acquireWakelock(…)
⁞
startServiceLocked(…)
⁞
startRunningLocked(…)
Call
ord
er
class fetchTemperature extends IntentService {…}
startService(new Intent(…, fetchTemperature.class));
![Page 21: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/21.jpg)
Blocking the Event Dispatch
1. Event definition (what)
2. Event request
3. Event callback (where)
class fetchTemperature extends IntentService {…}
startService(new Intent(…, fetchTemperature.class));
21
Tomorrow’s
temperature?
startService(…)
⁞
acquireWakelock(…)
⁞
startServiceLocked(…)
⁞
startRunningLocked(…)
Call
ord
er
![Page 22: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/22.jpg)
Throttling Abstraction
Observer Arbiter Actuator Controller
22
![Page 23: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/23.jpg)
Observer Arbiter ActuatorEvent rateEvent
Controller
23
App Name Type #Calls
fetchTemp Service 1231+1
syncPhotos Service 342
scanSystem Service 3
TAMER
Tomorrow’s
temperature?
App
![Page 24: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/24.jpg)
ControllerObserver Arbiter ActuatorEvent rate
Policy
DecisionEvent
only syncs
once a hour
User
24
(Ideal case)
if (monitoredRate > policyThreshold) should block
![Page 25: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/25.jpg)
ControllerObserver Arbiter ActuatorEvent rate
Policy
DecisionEvent
only syncs
once a hour
Expert
25
(Current state)
if (monitoredRate > policyThreshold) should block
![Page 26: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/26.jpg)
ControllerObserver Arbiter ActuatorEvent rate
Policy
DecisionEvent Action
26
Tomorrow’s
temperature?
App TAMER
![Page 27: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/27.jpg)
Observer Arbiter ActuatorObserver Arbiter Actuator
Observer Arbiter ActuatorObserver Arbiter Actuator
Intent Receivers
Alarms
Wakelocks
Services
Libraries
Application Framework
Android Runtime
Kernel
Tamer
Wa
kelock
Service
Inte
nt
Ala
rm
27
![Page 28: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/28.jpg)
Implementation
http://repo.xposed.info
startService(…)
⁞
acquireWakelock(…)
⁞
startServiceLocked(…)
startRunningLocked(…)
Call
ord
er
Tomorrow’s
temperature?
accept
controller
deny
(early return)
28
Java-based runtime code injection via Xposed
Interposes on event callbacks to control their execution
Policies in JSON format
![Page 29: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/29.jpg)
Installation
Installs like any other app (APK file)
Runtime modifications
No need for app recompilation/reinstallation
Android compatibility
Different vendors (Samsung, HTC, ASUS, CyanogenMod, etc.)
Different versions (Ice Cream to KitKat)
Requires rooting
29
![Page 30: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/30.jpg)
Evaluation
Four devices
Android KitKat
Experiments
General lifetime
Energy Bugs
GPS throttling
30
Galaxy Nexus
(2011)
Kindle Fire2
(2012)
Galaxy S4
(2013)
MeMOPad 7
(2014)
![Page 31: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/31.jpg)
Evaluation
Four devices
Android KitKat
Experiments
General lifetime
Energy Bugs
GPS throttling
31
Galaxy Nexus
(2011)
Kindle Fire2
(2012)
Galaxy S4
(2013)
MeMOPad 7
(2014)
![Page 32: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/32.jpg)
Ge
ne
ral L
ife
tim
e
Pure AOSP + Google Mobile Services32
![Page 33: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/33.jpg)
0
20
40
60
80
100
0 50 100 150 200 250
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
ASUS MeMO Pad 7
33
0
20
40
60
80
100
0 20 40 60 80 100 120 140
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
Samsung Galaxy Nexus
![Page 34: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/34.jpg)
Exploring Taming Possibilities
New Policies
Tamer-15: Events allowed every 15 minutes
Tamer-45: Events allowed every 45 minutes
34
ObserverEvent
Monitoring time: 100 hours
One call per minSys awake 11hs
![Page 35: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/35.jpg)
0
20
40
60
80
100
0 50 100 150 200 250
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
ASUS MeMO Pad 7
35
0
20
40
60
80
100
0 20 40 60 80 100 120 140
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
Samsung Galaxy Nexus
![Page 36: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/36.jpg)
36
0
20
40
60
80
100
0 50 100 150 200 250
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
w/ GMS + Tamer-15
w/ GMS + Tamer-45
ASUS MeMO Pad 7
+4.6 days
+5.8 days
0
20
40
60
80
100
0 20 40 60 80 100 120 140
Batt
ery
Level (%
)
Hours
Pure AOSP
w/ Google M. Services
w/ GMS + Tamer-15
w/ GMS + Tamer-45
Samsung Galaxy Nexus
+23 hours
+32 hours
![Page 37: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/37.jpg)
Chasing Energy Bugs – Bejeweled Blitz
10M+ downloads on Play Store
Top 20 on Puzzle Category
37
![Page 38: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/38.jpg)
Chasing Energy Bugs – Bejeweled Blitz
AudioIn AudioIn (!!)
38
![Page 39: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/39.jpg)
Bejeweled Blitz – Effects on Battery Lifetime
0
20
40
60
80
100
0 2 4 6 8 10 12
Battery
Leve
l(%
)
Hours
Candy Crush Saga
Bejeweled (Untamed) 0
20
40
60
80
100
CP
U R
esid
ency (
%)
CPU Frequency
Untamed
Samsung Galaxy S4 39
![Page 40: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/40.jpg)
{“AppName”: “com.ea.BejeweledBlitz_na”
“EventList”: {“Entry”: {
“Type”: “wakelock”“Name”: “AudioIn”“AllowEvery”: “0”“BackgroundOnly”: “true”
}}
}
Chasing Energy Bugs – Bejeweled Blitz
AudioIn
40
![Page 41: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/41.jpg)
After Taming
0
20
40
60
80
100
0 2 4 6 8 10 12
Battery
Leve
l(%
)
Hours
Candy Crush Saga
Bejeweled (Untamed)
Bejeweled (Tamed) 0
20
40
60
80
100
CP
U R
esid
ency (
%)
CPU Frequency
Untamed
Tamed
Samsung Galaxy S4 41
![Page 42: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/42.jpg)
Limitations and Extensions
How to define good policies?
Avoid breaking functionality
Dynamic policies
Context awareness
42
![Page 43: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/43.jpg)
Limitations and Extensions
How to define good policies?
How to engage users?
43
![Page 44: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/44.jpg)
Limitations and Extensions
How to define good policies?
How to engage users?
Event batching instead of blocking
44
![Page 45: Selectively Taming Background Android …...New Policies Tamer-15: Events allowed every 15 minutes Tamer-45: Events allowed every 45 minutes 34 Event Observer Monitoring time: 100](https://reader034.fdocuments.us/reader034/viewer/2022050306/5f6e847873bc676b36689701/html5/thumbnails/45.jpg)
Wrap Up
Mobile apps can silently kill battery
TAMER: OS-level mechanism to throttle background events
Separation of control and policy
Extends battery life / Selectively keeps functionality
Effectively mitigates energy bugs
45