I. Introduction
With the wide deployment of mobile devices, e.g. smart-phones, the quantity and type of mobile applications have grown rapidly over the past years. Nowadays, many mobile applications, such as online games and virtual reality, involve high-complexity computation that requires a large amount of hardware resources, which often exceeds the processing capacity of mobile devices [1]–[4]. Even if mobile devices have sufficient resources to execute these applications, the high-complexity nature of these applications typically leads to lengthy execution time, which is not energy-friendly to battery-powered mobile devices. To meet the computation requirements of these mobile applications or reduce the energy consumption of mobile devices, Mobile Cloud Computing (MCC) was proposed as a solution to this computation problem. With MCC, high-complexity computation tasks are offloaded from mobile devices to cloud servers. Once cloud servers complete the offloaded tasks, the computation results are returned to mobile devices.