Mobile cloud computing (MC2) is emerging as a new computing paradigm that seeks to augment resourceconstrained mobile devices for executing computing-and/ or data-intensive mobile applications. Nonetheless, the energy-poverty nature of mobile devices has become a stumbling block that greatly impedes the practical application of MC2. Fortunately, for delay-tolerant mobile applications, energy conservation is achievable via two means: (1) dynamic selection of energy-efficient links (e.g., WiFi interface); and (2) deferring data transmission in bad connectivity. In this paper, we study the problem of energy-efficient downlink and uplink data transmission between mobile devices and clouds. In the presence of unpredictable data arrival, network availability and link quality, our objective is to minimize the time average energy consumption of a mobile device while ensuring the stability of both device-end and cloud-end queues. To achieve this goal, we propose an online control framework named EcoPlan under which mobile users can make flexible link selection and data transmission scheduling decisions to achieve arbitrary energy-delay tradeoffs. Realworld trace-driven simulations demonstrate the effectiveness of EcoPlan, along with its superior energy-efficiency over alternative WiFi-prioritized, minimum-delay and SALSA schemes.