The Purdue University team which in March published a paper identifying how rogue apps and user-tracking can sap Android batteries has followed up with research into detecting and fixing the “wakelock” bugs.
The new study is to be presented at the MobiSys conference in the UK later this month. The researchers have extended their profiling to cover 187 apps, and found that 42 of them – more than 22 percent – had some kind of wakelock bug.
The problem is simple, says Purdue professor of electrical engineering Charlie Hu: programmers are human, and make mistakes. In juggling the various APIs they need to access to wake the phone up – for example, to receive an incoming call when the phone is asleep, or to check e-mail – they can leave the phone awake after the activity and drain the battery.
The Purdue group’s previous research identified bugs in newsreader apps, advertising tracking, and even the free version of Angry Birds (which devoted one-third of its unnecessary power consumption to GPS tracking). As noted at the time, I/O is a power hog and is often badly-handled by app developers.
Hu’s group uses a modified compiler to identify no-sleep bugs in software, and claims they can identify most, if not all, such bugs. ®