Crowd sourcing is the generalized act of outsourcing tasks, traditionally performed by employees or contractors, to a large group of Internet population (the wise crowd) by means of an open call. With the great development of smartphones with rich built-in sensors and ratio interfaces, mixing smartphone-based mobile technologies and crowd sourcing offers vast computing resources, and leads to a new paradigm called Mobile Crowd sourcing (MCS). In this paper, we presents a taxonomy for the MCS applications, which are explicitly divided as using human as sensors, and exploiting the wisdom of crowd, and typical applications are summarized and compared. Then, a generic MCS framework is proposed, which consists of multiple functional modules. Finally, we elaborate the challenges in MCS applications (i.e., Quality control, task management, incentives, as well as security and privacy), and summarize potential solutions. Our main contribution is to classify and provide a summary MCS framework, challenges and possible solutions to facilitate to develop and deploy various MCS applications.