The limited capability and energy constraint of smartphones have posed a significant challenge to
running the “newest and hottest” applications which are becoming increasingly resource demanding, e.g., realtime
image recognition. In this paper, we revisit the decade-old general concept of offloading computation to
remote servers by focusing on a largely unsolved problem: how to automatically determine whether and when a
smartphone application will benefit from offloading? This is an especially relevant and challenging problem today
as (1) modern mobile applications tend to have complex interactions with users and advanced capabilities (e.g.,
GPS and camera) and hence cannot be offloaded as a whole; (2) whether an application component, e.g., a method
call, will benefit from offloading depends on its execution time on smartphone and the size of state to be shipped,
which in turn depend on the input parameters.
We present the design and implementation of XRay, an event-tracing-based profiling tool that identifies methods
in a smartphone application that can be offloaded to a remote server, and determines whether and when offloading
the methods will benefit the application. Our experiments of applying XRay to a set of smartphone applications
show that after a small number of offline profiling runs, XRay can automatically generate offloading decision logic
for each remotable method that makes correct offloading decisions in future online executions of these applications
under a priori unknown input parameters and network conditions.

Date of this Version