Recently, we talked about how there are security risks associated with some mobile apps, not because of the app itself, but because of the ad module that runs within free apps to generate revenue. Now, we find that these same modules are also the biggest battery users in an otherwise efficient app.
When I switched from a Blackberry to an iPhone, two things immediately irked me: lack of a raised QWERTY keyboard; and lousy battery life. Soon, friends clued me in to the fact that GPS and 3G were the biggest drains on my battery. So I learned how to better manage my location services, and how to get on Wi-Fi whenever possible. That, and how to carry a cord with me everywhere and plug in anytime I am not walking.
These two principles - GPS and 3G - are at the heart of ad module problems. Researchers have shown that popular free smartphone apps spend up to 75 percent of their energy tracking the user's geographical location, sending information about the user to advertisers and downloading ads.
"It turns out the free apps aren't really free because they contain the hidden cost of reduced battery life," said Y. Charlie Hu, a Purdue University professor of electrical and computer engineering.
Because smartphone batteries must be small and lightweight, power consumption is a major issue, the researcher said. He has led work to create a new tool called Eprof - for energy profiler - to analyze how much energy a smartphone app consumes. New findings show that 65 percent to 75 percent of the energy used to run free apps is spent for advertising-related functions.
"We performed an in-depth case study, the first of its kind, of six popular smartphone apps, including Angry Birds, Facebook and Android Browser," said Purdue doctoral student Abhinav Pathak.
The free Angry Birds app was shown to consume about 75 percent of its power running "advertisement modules" in the software code and only about 25 percent for actually playing the game. The modules perform marketing functions such as sharing user information and downloading ads.
"We believe it is mainly to provide information about the user's geographical location so the ads can be more targeted or customized to that location," Hu said.
Findings will be detailed in a research paper being presented during the EuroSys 2012 conference on April 10-13 in Bern, Switzerland. The paper, written by Pathak, Hu and Ming Zhang, a researcher at Microsoft Research, also suggests a general approach for improving the energy efficiency of smartphone apps. An application may contain tens of thousands of lines of code, broken down into many components called subroutines, threads and processes. Eprof maps how much energy comes from each component, representing a new way for researchers to study smartphone energy consumption without using a power meter, an expensive and cumbersome piece of laboratory equipment.
"This is the first tool of its kind ever developed for modern smartphones," Pathak said. "We've seen around 1 million apps written since smartphones emerged roughly five years ago, but there has been no systematic way for the developer to see how much energy the different components consume. Using this tool, you can see what should be changed to improve energy efficiency."
The smartphone power drain is caused by a combination of factors including inefficient programs and software glitches called "energy bugs," Hu said.
"Eprof tells you how much energy is spent where," he said. "This may be due to energy bugs or other reasons."
In one case, a piece of advertising software embedded in a free app failed to turn off its connection to the Internet, a function called a socket, requiring another piece of code to resolve the problem and wasting energy. Inefficient power usage is most likely to occur in interactive programs, which are prevalent in smartphone apps such as games and applications that heavily use built-in phone gadgets like GPS, the camera, compass and "proximity sensor." A particular source of power inefficiency is a phenomenon called "tails." In principle, after an application sends information to the Internet, the "networking unit" that allows the phone to connect to the Internet should go to a lower power state within a fraction of a second. However, researchers found that after the advertising-related modules finish using the network, the networking unit continues draining power for about seven seconds.
"The past assumption has been that, whenever you see usage you have power consumption, and when there is no usage there is no power consumption," Hu said. "This does not hold true for smartphones."
The tails are a phenomenon of several smartphone hardware components, including 3G, or third-generation wireless systems, GPS and WiFi, not flaws within the app software itself. However, software developers could sidestep the problem by modifying apps to minimize the effect of tails, Hu said.
"Any time you use the 3G network, there will be a tail after the usage," Hu said. "The ad module in Angry Birds obviously uses 3G for network uploading and downloading, while the game itself did not, which is why we blame the ad module for the tail."
Battery drain in smartphones has emerged as a fundamental problem.
"We've been hearing about major problems lately in power usage," Hu said. "A smartphone battery is generally expected to last a day before recharging, but we're hearing about mysterious instances where the battery runs out in a few hours. Users have been complaining about this on Internet forums."
Findings in the paper suggest a way to improve energy efficiency with a technique that has been shown to reduce the energy consumption of four apps by 20 percent to 65 percent. The ultimate goal is to develop an "energy debugger" that automatically pinpoints flaws in software and fixes them without the intervention of a human software developer, Hu said. Eprof mirrors a tool created three decades ago called Gprof, which tracks how much time is consumed by software components.
"If a program runs for three hours, Gprof tells you how much time is spent on each subroutine," Hu said. "We've taken this to a whole new level with Eprof to show how much energy is consumed."
The same researchers first created a model making the new profiler tool possible and presented a paper about the model at last year's EuroSys conference. The model estimates how much power a smartphone is using while an app is running.