Virtualizing Smartphone Applications to the Cloud - Hung, Shih-Hao; Shieh, Jeng-Peng; Lee, Chen-Pang (Computing and Informatics, 2012)
Smartphone technologies have enabled sophisticated pervasive applications for mobile users. Still, many intensive applications perform poorly on smartphones due to the shortage of resources for computation, data storage, network bandwidth, and battery capacity. While such applications can be re-designed with client-server models to benefit from subscribed cloud services, the users are no longer in full control of the entire application execution, which has raised a serious concern. Meanwhile, privacy and security are also important issues, and it is an ongoing debate if public cloud services could be trusted with sensitive data. For mobile users to take full advantage of cloud services, these issues need to be resolved. In this paper, we propose an innovative framework for mobile users to execute existing Android applications on a personal virtual phone safely in the cloud. Instead of using a client-server model, the entire virtual phone is mostly controlled by the user to minimize the intervention from the service provider. Virtualization and encryption are employed to protect against eavesdropping from cloud providers and network attackers. To quickly migrate an Android application between the physical phone and the virtual phone, we use a new application-level checkpointing mechanism and minimize the state of the application.