[ACM]
Quick responses to user actions are instrumental to the success of mobile applications. To ensure such responsiveness, applications often prefetch data objects before the user requests them. This way, applications can avoid the need to retrieve data through slow network connections during user interactions. However, prefetches may also harm. They increase launch delays and might cause substantial amounts of data to be downloaded through energy-hungry, cellular connections. In this paper, we propose EBC, a novel algorithm to schedule application prefetches and overcome their drawbacks. EBC computes application usage probabilities and traffic volume estimates to determine when and for which applications prefetches should be triggered. Thereby, it applies different strategies depending on whether a cellular or Wi-Fi connection is available. We evaluate the performance of EBC on two publicly available, large-scale data sets: LiveLab and Device Analyzer. Our results show that EBC can lower launch delays and ensure freshness of application content. At the same time, it reduces the amount of data downloaded through cellular connections. On the Device Analyzer data set, for instance, EBC achieves a 10% reduction in cellular traffic and a 36% better average freshness with respect to its closest competitor.