Abstract Prolonging battery life for mobile device has been an urgent issue in mobile computing. Computation offloading is an effective approach to reduce energy consumption on mobile device. However, most previous work focuses on offloading computation from mobile to a single server, which cannot adopt to mobile cloud computing (MCC) where data and computation are commonly distributed to multiple sites. This paper proposes a multi-site application partitioning algorithm named cyclic random movement (CRM) based genetic algorithm (CRMGA), which considers the heterogeneity of multiple remote sites and aims to find the optimal partition efficiently by combining a local optimization algorithm with genetic search. Simulation results demonstrate that CRMGA can significantly reduce the energy consumption of mobile device as much as 90% to 98.5% and its performance also outperforms GA and hill-climbing heuristic.