Still here at the Android Developer Conference in San Francisco. Currently, we're sitting in Moe Tanabian's talk, entitled “Save the Battery! App Design and Testing for Better Power Consumption.” Tanabian's focus has been on the software layer of Android devices, and how to determine power usage for running applications.
Tanabian spent a great deal of time explaining how to test Android device power consumption. He advocated the use of black and white screen redraws, and the rendering of static snow on the screen as a good way to measure the power consumption of a screen on a specific device. He also advocated downloading large files over HTTP to measure the impact of network usage on battery life. But there is one test that can engage every item in the device, said Tanabian.
“There's one application that engages everything in the box: camera, CPU, GPU, screen, WAN connectivity, etc., and that's video conferencing. If someone gave you two devices and said 'evaluate these devices,' the first thing you should think of is video conferencing,” said Tanabian.
Tanabian also detailed an equasion to describe how many power consumption tests should be performed to get reliable results. “If you want to measure power on your phone, you need to repeat the use case a number of times, and you need to measure the battery before the use cases and after, and somehow make that statistically interesting.”
Tanabian described his equation as “Total number of required power readings is equal to the duration time of the sample collected multiplied by the number of samples collected multiplied by the number of times the test was run.”
Tanabian said that, even with proper test procedures, there can be problems and inconsistencies through uncontrolled variables in these tests. “If you're trying to measure the power consumption for downloading and playing a YouTube video, YouTube changes their coding and streaming algorithm every day, and that can affect the results. If you want to make sure you're measuring power objectively, do it in a controlled environment.”
Tanabian said that each layer of the hardware stack must be tested independently to allow a developer to gather the proper readings on how much power their application consumes. Using the tests he described in his talk (Slides will be up soon), he said developers should test the screen, the GPS, the network, the audio, and the GPS systems independently. With a base reading for each system's standard power consumption, the developer can then isolate the exact amount of power his or her application is consuming during tests.
Tanabian also said UI's should always use darker colors because darker colors use less power. "Let's say you give a user 6, 7, 8 choices, the time it takes the user to figure out which of these controls they need to push or touch consumes power. The user is too confused. Decreasing the number of options from which the user can make a selection is a good idea."
Tanabian also said that cognitive latency created by interfaces should be limited. Thus, using split menus in a GUI can save battery power because users have less choices to scrutinise.