1. Information about the paper
Qian, Feng, Zhaoguang Wang, Alexandre Gerber, Zhuoqing Mao, Subhabrata Sen, and Oliver Spatscheck. “Profiling resource usage for mobile applications: a cross-layer approach.” In Proceedings of the 9th international conference on Mobile systems, applications, and services, pp. 321-334. ACM, 2011.
Despite the popularity of mobile applications, their performance and energy bottlenecks remain hidden due to a lack of visibility into the resource-constrained mobile execution environment with potentially complex interaction with the application behavior. We design and implement ARO, the mobile Application Resource Optimizer, the first tool that efficiently and accurately exposes the cross-layer interaction among various layers including radio resource channel state, transport layer, application layer, and the user interaction layer to enable the discovery of inefficient resource usage for smartphone applications. To realize this, ARO provides three key novel analyses: (i) accurate inference of lower-layer radio resource control states, (ii) quantification of the resource impact of application traffic patterns, and (iii) detection of energy and radio resource bottlenecks by jointly analyzing cross-layer information. We have implemented ARO and demonstrated its benefit on several essential categories of popular Android applications to detect radio resource and energy inefficiencies, such as unacceptably high (46%) energy overhead of periodic audience measurements and inefficient content prefetching behavior.
2. My review of the paper
- Brief Summary
This paper focuses on identifying and quantifying energy usage on cellular data network (UMTS) for mobile applications; then testing several popular apps on Android and suggesting improvement to those apps to save more energy while preserving their main functionality.
They built the data collector on Android 2.2 by adding two new features (1K LoC) to tcpdump: logging user inputs and finding packet-to-application correspondence. The analyzers were implemented in C++ on Windows 7 (7.5K LoC).
- In the end, it’s a matter of connection scheduling by developers.
Energy inefficiencies were caused by poor connection scheduling on the developers side which caused by low visibility of energy usage on using cellular network. This visibility will help developers to design more energy-friendly apps while used on cellular network. However, prior to this paper, the authors found that some apps like Facebook and Amazon had already been aware of such energy cost by closing connection directly after the user closed the application. On the contrary, early closing of the application can make the application slower when the user try to open the app again.
To make the best trade-offs for everything, my suggestion is to design dynamic scheduling based on following features (or more):
- current battery life: low battery should trigger lowest connection possible, for example load picture one by one as requested, and batch pictures on high battery.
- current position: if close to home/work WiFi, can suggest to delay the request via cellular network, and use WiFi instead in several minutes away.
- current cellular signal strength: low signal strength suggests loading text only and loads pictures later.
- infer from usage pattern: for example, frequently accessed app should stay idle before closing the connection, while rarely used app should directly close connection.
- infer from location and usage pattern: for example, while in WiFi, prefetch app content that is most likely to be used next before leaving WiFi area.
- infer from location and time of day: for example, close to time of day when the user goes home from workplace(4pm-5pm), while in WiFi at workplace, prefetch app content that is most likely to be used next before leaving workplace.
- implement longer refresh rate while on cellular network, and implement higher refresh rate while on WiFi to provide better user experience.
- Subsequently, such important features for developers should be included in official platform SDK as API. Based on simple google search, both Android and iOS now have features to restrict certain app features (such as video) to WiFi only. However, the decision must be delegated to the user. The user can override that option if needed.
- Platform providers can approach cellular provider to co-design better API for managing cellular network connection. Then platform providers (Apple,Google) can publish guidelines on how is the best way to implement it.
- Link to authors’ slide: http://www.sigmobile.org/mobisys/2011/slides/profiling.pdf