As the mobile platform continues to pervade all aspects of human activity, and mobile apps on this platform tend to be faulty just like other types of software, there is a growing need for automated testing techniques for mobile applications. Model-based testing is a popular and important testing approach which operates on a model of an application’s behavior. However, such a model is often not available or of insufficient quality. To address this issue, we present a novel grey-box approach for automatically extracting a model of a given mobile application. In our approach, static analysis extracts the set of events supported by the Graphical User Interface (GUI) of the application. Then dynamic crawling reverse-engineers a model of the application, by systematically exercising these events on the running application. We also present a tool implementing this approach for the Android platform. Our empirical evaluation of this tool on several Android applications demonstrates that it can efficiently extract compact yet reasonably comprehensive models of high quality for such applications.