Android is now the world's bestselling mobile platform, and its non-restrictive policies and the use of Java as the core application language makes Android an ideal choice for developing internal corporate mobile applications. However,the API is large, complex, and sometimes difficult to get started with. This course gives a practical, hands-on introduction to developing Android applications. It provides thorough coverage of the the foundational Android topics: installation, setup, XML-based layouts, event-handling strategies, basic widget types, and window layout types. it also gives a fast-moving survey of some of the most important libraries: location-based services, screen rotations, multithreaded applications, network programming, animation, and lots more. In each section, it gives details on the most important topics, surveys more advanced or lesser-used topics, stresses best practices, and gives plenty of working examples. Each section is followed by a series of hands-on exercis