(PhysOrg.com) -- 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.
Explore further: Mobile app to help fight against racism in France
More information: In Proceedings of EuroSys: European Conference on Computer Systems, Bern, Switzerland, April 10-13
Where is the Energy Spent Inside My App?
Fine Grained Energy Accounting on Smartphones with Eprof
Where is the energy spent inside my app? Despite the immense popularity of smartphones and the fact that energy is the most crucial aspect in smartphone programming, the answer to the above question remains elusive. This paper ?rst presents eprof, the ?rst ?ne-grained energy pro?ler for smartphone apps. Compared to pro?ling the runtime of applications running on conventional computers, pro?ling energy consumption of applications running on smartphones faces a unique challenge, asynchronous power behavior, where the effect on a component's power state due to a program entity lasts beyond the end of that program entity. We present the design, implementation and evaluation of eprof on two mobile OSes, Android and Windows Mobile. We then present an in-depth case study, the ?rst of its kind, of six popular smartphones apps (including Angry Birds, Facebook and Browser). Eprof sheds light on internal energy dissipation of these apps and exposes surprising ?ndings like 65%-75% of energy in free apps is spent in third-party advertisement modules. Eprof also reveals several "wakelock bugs, a family of "energy bugs" in smartphone apps, and effectively pinpoints their location in the source code. The case study highlights the fact that most of the energy in smartphone apps is spent in I/O, and I/O events are clustered, often due to a few routines. This motivates us to propose bundles, a new accounting presentation of app I/O energy, which helps the developer to quickly understand and optimize the energy drain of her app. Using the bundle presentation, we reduced the energy consumption of four apps by 20% to 65%.