  The increasing prevalence of mobile apps has led to a proliferation of
resource usage scenarios in which they are deployed. This motivates the need to
specialize mobile apps based on diverse and varying preferences of users. We
propose a system, called PolyDroid, for automatically specializing mobile apps
based on user preferences. The app developer provides a number of candidate
configurations, called reductions, that limit the resource usage of the
original app. The key challenge underlying PolyDroid concerns learning the
quality of user experience under different reductions. We propose an active
learning technique that requires few user experiments to determine the optimal
reduction for a given resource usage specification. On a benchmark suite
comprising 20 diverse, open-source Android apps, we demonstrate that on
average, PolyDroid obtains more than 85% of the optimal performance using just
two user experiments.
