The vibrant and rich Android development platform, created by Google and the Open Handset Alliance, continues to be a platform in its truest sense, encompassing hundreds of classes beyond the traditional Java classes and open source components that ship with the software development kit. Android's continued growth includes support for Flash and Flash gaming apps, Wi-Fi tethering, improved performance, WebM or WebMedia integration for HTML5-based video and other multimedia APIs, Chrome OS (WebOS) integration, and more. With Beginning Android 3, you’ll learn how to develop applications for Android 3 mobile devices using simple examples that are ready to run with your copy of the software development kit. Author, Android columnist, developer, and community advocate Mark L. Murphy will show you what you need to know to get started programming Android applications, including how to craft graphical user interfaces, use GPS, multi-touch, multi-tasking, and access web services. What you’ll learn Discover Android and how to use it to build Java-based mobile applications for a wide range of phones and devices. Create user interfaces using both the Android widget framework and the built-in WebKit-powered Web browser components. Utilize the distinctive capabilities of the Android engine, including location tracking, maps, and Internet access. Use and create Android applications incorporating activities, services, content providers, and broadcast receivers. Support Android 3 and earlier devices, including dealing with multiple Android OS versions, multiple screen sizes, and other device-specific characteristics. Create Flash game and other apps on Android. Build and experience the array of new WebM video and other multimedia APIs for Android and more. Who this book is for This book is aimed at people new to mobile development. Table of Contents The Big Picture How to Get Started Your First Android Project Examining Your First Project A Bit About Eclipse Enhancing Your First Project Rewriting Your First Project Using XML-Based Layouts Employing Basic Widgets Working with Containers The Input Method Framework Using Selection Widgets Getting Fancy with Lists Still More Widgets and Containers Embedding The WebKit Browser Applying Menus Showing Pop-up Messages Handling Activity Lifecycle Events Handling Rotation Dealing with Threads Creating Intent Filters Launching Activities and Sub-Activities Working with Resources Defining and Using Styles Handling Multiple Screen Sizes Introducing the Honeycomb UI Using the Action Bar Fragments Handling Platform Changes Accessing Files Using Preferences Managing and Accessing Local Databases Leveraging Java Libraries Communicating via the Internet Services: The Theory Basic Service Patterns Alerting Users via Notifications Requesting and Requiring Permissions Accessing Location-Based Services Mapping with MapView and MapActivity Handling Telephone Calls Fonts More Development Tools The Role of Alternative Environments HTML5 PhoneGap Other Alternative Environments Dealing with Devices Where Do We Go from Here?