Abstract:Mobile devices with 3G/4G networking often waste energy in the so-called "tail time" during which the radio is kept on even though no communication is occurring. Prior work has developed policies to reduce this energy waste by batching network requests. However, it is challenging to apply such policies to existing apps in practice due to lack of mechanisms. This paper proposes an automatic program transformation approach for scheduling network requests in Android apps. The core of the approach is bytecode transformation for existing Android apps. Addressing the technical challenges in automatic transformation, the paper implements a transformation system named DelayDroid. Comparing to previous work, DelayDroid has two major characteristics. First, transformation is carried out automatically. Second, DelayDroid is designed to be a practicable tool, as it can transform Android apps with only dex bytecode.