Making Smartphones Power-Smarter
New Android app highlights a trend toward power-aware programming
28 January 2010—Power drains on smartphones are becoming a bigger problem as users want their mobile devices to work faster and do more. Now researchers at the University of Michigan have come up with an application called PowerTutor, which lets you monitor your phone's power usage and compare the efficiency of one app to that of another. Released late last year, the app, currently available only for Google's Android phones, also gives mobile-app developers a chance to streamline their programs.
"Power has always been an issue," says Kirk Cameron, an associate professor in the computer science department at Virginia Tech, who edits the Green IT column for IEEE's Computer magazine. But now the problem is more mainstream than ever before, he says. "It's become a mobile world, and there's been an insatiable demand for performance." But performance costs power.
With the PowerTutor app, users can now track how much power their phone's CPU, network interface, GPS, and LCD screen are using, according to Robert Dick, an associate professor of electrical engineering and computer science at the University of Michigan who co-led the work with electrical engineering and computer science professor Z. Morley Mao. This is the first Android app specifically designed for developers and users that tracks power usage with an error rate of just 1 percent, Dick says.
A similar function comes built in with the most recent Android software release, but it doesn't include as much detail as the PowerTutor app, according to Lide Zhang, who codeveloped PowerTutor with fellow Michigan Ph.D. student Birjodh Tiwana. The Google function, Zhang says, gives only a percentage of the total power being used by each component, while PowerTutor gives the actual number value—information that's more important to developers. From tests so far, Zhang says, PowerTutor also appears to yield results that are more accurate than those of the Google software.
To build the PowerTutor app, the researchers took apart an HTC G1 smartphone and hooked it up to electrical current meters. "Something we did so you don't have to," Mao says. They tested the device's current readings at various power states—while the LCD screen's backlight was on or off, when the GPS unit was active or inactive, and when the CPU was running at different speeds. The key to their tests, says Mao, was pushing each of the main components into every situation it could possibly encounter during use and recording the results.
Armed with these readings, the team wrote software that would compare power states and component activity information—available from the Android's operating system—to their database of current measurements. The PowerTutor model predicts the phone's breakdown of power usage with an average of 1 percent error over 10-second intervals, according to Dick. Their worst case error over 10 seconds was 2.5 percent, while measuring power use over shorter intervals such as 1 second could yield 5 percent error.
The PowerTutor app itself uses about 5 percent of the CPU, or 2 to 3 percent of the phone's power. Dick acknowledges that this is significant, but for a developer to optimize an app, it makes perfect sense to use it, he says. And for users, it's "probably something you would do for a few days to compare apps, then you'd disable it." The app could also help detect an anomaly like "a virus or malware that's draining your battery resources," Zhang adds.
PowerTutor works best on the G1, the device the Michigan researchers used to build their model. But they believe it will be reliable for any Android phone, and they are working to get a fleet of Androids to create power models for each one. Expanding PowerTutor to the iPhone, however, would require working with Apple directly and using a more closed architecture, Dick says. So iPhone users will have to wait a bit longer for this app.
Virginia Tech's Cameron, whose research focuses on green computing for data centers, supercomputers, and personal computer systems, says this kind of app is important not only for programmers but also for smartphone users. "Most people are astounded at the amount of power these consume and…all the waste." He believes it's essential "to educate people, to show they're consuming a lot of energy." Anything that lets people understand and have access to power consumption data is "a good thing," he says. "You need to see where [the power] is going so that you can figure out how to manage it."
Cameron's start-up company, MiserWare, recently launched a beta test of energy-efficient software for laptops running Windows. The software not only measures computer power consumption but also optimizes its use automatically. The company already provides power management products for businesses and data centers.
Cameron's work at Virginia Tech has also produced free power-consumption software that "enables people to evaluate techniques that will reduce energy consumption, help the environment, and promote sustainability," he says. One program, called PowerPack, measures power and energy consumption of computer clusters, while another, Tempest, measures the temperature of various computer components depending on changes in programming code. That means that programmers can literally ask, "Is my code hot or cold?" They can then use the Tempest information to optimize their code. A change that reduces heat will reduce power consumption, but that must be weighed against the cost in terms of performance.