Mobile cloud computing (MCC) can offload heavy computation from mobile devices onto nearby cloudlets or remote cloud to improve the performance as well as to save energy for these devices. Therefore, it is essential to consider how to achieve efficient computation offloading with constraints for multiple users. However, there are few works that aim at multi-objective problem for multiple users. Most existing works concentrate on only single objective optimization or aim to obtain a tradeoff solution for multiple objectives by simply setting weight values. In this paper, a multi-objective optimization model is built to minimize the average energy consumption, time and cost while satisfying the constraint of bandwidth. Furthermore, an improved multi-objective optimization algorithm called D-NSGA-II-ELS is presented to get Pareto solutions with better convergence and diversity. Compared to other existing works, the simulation results show that the proposed algorithm can achieve better performance in terms of energy consumption, time and cost while satisfying the constraint of the bandwidth.