Managing Mobile: Training Mobile Software to Spot its Own Energy Inefficiencies
It takes a lot of energy to be mobile. Whether it’s a battery-draining app on a smartphone, or an aerial drone that can fly for only a few minutes before having to recharge, a restricted power supply is often the biggest limitation to some of today’s most innovative advancements.
Could technologies become more energy-efficient if they had the ability to direct their own energy use?
A team of researchers from the National University of Singapore thinks so.
In a recently published paper from MobileSoft 2017, IEEE’s 4th International Conference on Mobile Software Engineering and Systems, the team proposes two unique approaches for improving energy efficiency in mobile apps and drones. In both instances, technology is empowered to guide energy consumption. For mobile device software, the solution incorporates elements of keyword searches, user reviews and machine learning to identify potential energy-saving fixes for developers. In the world of mobile software onboard drones, the researchers believe creating a bidding system of sorts within the actual device could help it better allocate energy and potentially extend battery life.
An “Energy-Aware” System for Mobile Apps
Mobile devices are constrained by the power their batteries provide, which is why apps using too much energy can have a significant effect on performance. In a study conducted on 170,000 reviews from the Google Play store, researchers found energy efficiency was a major factor in app evaluation. Users are more likely to delete an app if it consumes too much energy.
Figure 1: Uninstall ratio based off the category of 170,000 app reviews in the Google Play store
The researchers’ work revealed user reviews often contain clues for finding apps with energy efficiency problems. By tracking certain keywords, the researchers believed a system could automatically identify energy-hogging apps.
To test this idea, the researchers studied user reviews obtained from the software developer platform GitHub, and identified three types of keywords within the reviews: event, hardware state and user interface keywords.
Event keywords refer to physical interactions involving the mobile app, such as a change in network strength. Hardware state keywords look at words involving different parts of app hardware, which can be used to identify the part of the software a bug is affecting. User interface keywords highlight any problems occurring when users interact with different sections of the app.
By employing a mechanism such as machine learning to identify these common keywords, a software team could create an automated energy-aware maintenance system. This system would find bug-revealing reviews and prepare a patch for the app’s bug while alerting the developers.
“While many people commonly think of bugs or vulnerabilities as they relate to the function of the app, we found that it is useful to define and study energy bugs which impact energy efficiency of the mobile app,” said Abhik Roychoudhury, a professor in the School of Computing at the National University of Singapore. “Testing, debugging and other processes like our automated repair system can be used to detect and fix the types of bugs that impact energy use.”
Creating a Virtual Marketplace on a Single Device
Like mobile devices, drones are limited by their batteries, so energy efficiency can greatly affect performance. The researchers propose a distributed power system for the drone power controller, as a centralized controller requires code to account for all operational scenarios in a drone, which could cause a malfunction in power distribution during an unpredictable drone flight.
“Commercial use of drones is relatively new but rapidly growing in sectors such as disaster management, disease control and critical item delivery,” Roychoudhury said. “It is paramount to solve the energy efficiency issues found in the mobile software.”
To improve the energy efficiency of drone mobile software, the researchers propose a distributed power management approach based on economic price theory. The drone would accommodate power resources depending on the task need. Such an approach would create a virtual marketplace for a drone’s battery power using different agents to represent power distribution, including the battery, task and resource agents.
Each task agent in the system bids for its respective task and has a certain priority assigned by the user. The resource agent would receive these bids for services and then exchange battery power for these services from the battery agent. The battery agent is designed to power as many tasks as possible while conserving enough energy for any emergency power needs.
Figure 2: Outline of the drone distributed power management system based off price theory
In this economic set-up for power resources, a task the drone needs to do repeatedly may cause inflation in bids for battery power, which leads the resource agent in the system to switch from higher voltage tasks to the task required at the time.
This economic distribution would prevent inefficient energy draining tasks caused by a drone’s software, as the bid system incentivizes a drone to do more energy-efficient actions.
As drones become more prevalent, the need for energy-efficient software will increase. The researchers are continuing to explore ways to improve energy efficiency in mobile software for drones and mobile devices. They are currently looking to refine their energy measurement in the batteries of these devices—components which are not easily accessible.
The researchers’ work is a good first step towards producing high quality, energy-efficient mobile software, and a necessary measure as companies explore the use of drones for delivering important materials and other complex tasks.
For more information on mobile software, visit the IEEE Xplore Digital Library.