[IEEE]
As apps on smartphones are becoming more complex, they tend to take more time for execution and consume more power. This paper describes a system (APPS) that supports both class level code offloading as well as thread migration of Android applications to remote server connected through Wi-Fi or 3G to reduce time of execution and power consumption. APPS performs better than any other previous approaches due to: 1) invocation of separate threads in the server to handle multiple clients, 2) grass root level binary serialization used for thread migration to make the system faster, more dynamic and robust, 3) transfer of execution state from server to client to resume computation in the client on the fly in case of deterioration of network health, 4) drastic reduction of average state transfer size between the server and client. APPS monitors dynamic network conditions to automatically offload classes or threads at runtime as guided by a decision maker module. The system was tested on the classical N Queens problem and achieved an improvement of one order of magnitude in performance and three orders of magnitude in power consumption for N=14 as compared to execution on smartphone alone.