Đăng ký Đăng nhập
Trang chủ Professional android application development phần 1...

Tài liệu Professional android application development phần 1

.PDF
44
159
137

Mô tả:

spine=.864" Wrox Programmer to Programmer TM Professional Wrox Programmer to Programmer TM Meier Android Application Development ™ Offering an open development environment, Android represents an exciting new opportunity to write innovative applications for mobile devices. This book provides you with a hands-on guide to building these applications using the Android software development kit. It takes you through a series of sample projects, each introducing new features and techniques to get the most out of Android. You’ll learn all about the basic functionality as well as discover how to utilize the advanced features with the help of concise and useful examples. Professional ™ What you will learn from this book ● Best practices for Android mobile development ● An introduction to Activities, Intents, the manifest, and resources ● How to create user interfaces with layouts and custom views ● Techniques to store and share your application data ● Instructions for creating map-based applications, using location-based services including GPS, and geocoding locations ● How to create and use background Services and Notifications ● Working with the accelerometers, compass, and camera hardware ● All about phone and networking hardware such as telephony APIs, SMS, and network management ● Advanced development topics, including security, IPC, and some advanced graphics and user interface techniques Enhance Your Knowledge Advance Your Career Who this book is for This book is for anyone interested in creating applications for the Android mobile phone platform. It includes information that will be valuable whether you’re an experienced mobile developer or just starting out writing mobile applications. Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job. www.wrox.com Recommended Computer Book Categories $44.99 $48.99 USA CANADA Programming Languages Java Android Application Development Beginning with an introduction to the Android software stack, the author examines the philosophy behind creating robust, consistent, and appealing applications for mobile phones. You’ll get the grounding and knowledge that is needed to write customized mobile applications using the current Android 1.0 SDK. Plus, you’ll also gain the flexibility to quickly adapt to future enhancements in order to build the most cutting-edge solutions. ISBN: 978-0-470-34471-2 Professional ™ Android Application Development subtitle Reto Meier Updates, source code, and Wrox technical support at www.wrox.com spine=.864" Programmer to Programmer™ Professional Android Application Development ™ Get more out of WROX.com Interact Chapters on Demand Take an active role online by participating in our P2P forums Purchase individual book chapters in pdf format Wrox Online Library Join the Community Hundreds of our books are available online through Books24x7.com Sign up for our free monthly newsletter at newsletter.wrox.com Wrox Blox Browse Download short informational pieces and code to keep you up to date and out of trouble! Ready for more Wrox? We have books and e-books available on .NET, SQL Server, Java, XML, Visual Basic, C#/ C++, and much more! Contact Us. We always like to get feedback from our readers. Have a book idea? Need community support? Let us know by e-mailing [email protected] Professional Android Application Development 978-0-470-34471-2 A hands-on guide to building mobile applications, this book features concise and compelling examples that show you how to quickly construct real-world mobile applications for Android phones. Fully up-to-date for version 1.0 of the Android SDK, it covers all the essential features, and explores the advanced capabilities of Android. Professional Java JDK 6 Edition 978-0-471-77710-6 Building upon Ivor Horton’s Beginning Java 2, this resource shows you how to use the core features of the latest JDK as well as powerful open source tools such as Ant, JUnit, and Hibernate. It will arm you with a well-rounded understanding of the professional Java development landscape. Expert One-on-OneTM J2EETM Development without EJBTM Enhance Your Knowledge Advance Your Career 978-0-7645-5831-3 This hands-on guide shows you alternatives to EJB that can be used to create higher quality applications faster and at lower cost, and demonstrates how to leverage practical techniques and tools, including the popular open source Spring Framework and Hibernate. Professional Android ™ Application Development Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Chapter 1: Hello, Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 2: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Chapter 3: Creating Applications and Activities . . . . . . . . . . . . . . . . . . . . . . 45 Chapter 4: Creating User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Chapter 5: Intents, Broadcast Receivers, Adapters, and the Internet . . . . . . 113 Chapter 6: Data Storage, Retrieval, and Sharing . . . . . . . . . . . . . . . . . . . . . 159 Chapter 7: Maps, Geocoding, and Location-Based Services . . . . . . . . . . . . . 207 Chapter 8: Working in the Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Chapter 9: Peer-to-Peer Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Chapter 10: Accessing Android Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Chapter 11: Advanced Android Development. . . . . . . . . . . . . . . . . . . . . . . . 353 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 44712ffirs.indd i 10/20/08 4:08:56 PM 44712ffirs.indd ii 10/20/08 4:08:56 PM Professional Android™ Application Development Reto Meier 44712ffirs.indd iii 10/20/08 4:08:56 PM Professional Android™ Application Development Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN: 978-0-470-34471-2 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 Library of Congress Cataloging-in-Publication Data is available from the publisher. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read. For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Android is a trademark of Google, Inc. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. 44712ffirs.indd iv 10/20/08 4:08:56 PM To Kris 44712ffirs.indd v 10/20/08 4:08:56 PM About the Author Originally from Perth, Western Australia, Reto Meier now lives in London. Reto is an experienced software developer with more than 10 years of experience in GUI application architecture, design, and development. He’s worked in various industries, including offshore oil and gas, before moving to London and into finance. Always interested in emerging technologies, Reto has been involved in Android since the initial release in 2007. In his spare time, he tinkers with a wide range of development platforms including WPF and Google’s plethora of developer tools. You can check out Reto’s web site, The Radioactive Yak, at http://blog.radioactiveyak.com. About the Tech Editor Dan Ulery is a software engineer with experience in .NET, Java, and PHP development, as well as in deployment engineering. He graduated from the University of Idaho with a bachelor of science degree in computer science and a minor in mathematics. 44712ffirs.indd vi 10/20/08 4:08:56 PM Credits Executive Editor Vice President and Executive Group Publisher Chris Webb Richard Swadley Development Editor Vice President and Executive Publisher William Bridges Joseph B. Wikert Technical Editor Project Coordinator, Cover Daniel Ulery Lynsey Stanford Senior Production Editor Compositor Debra Banninger James D. Kramer, Happenstance Type-O-Rama Copy Editor Proofreader Cate Caffrey Nancy Carrasco Editorial Manager Indexer Mary Beth Wakefield Jack Lewis Production Manager Tim Tate 44712ffirs.indd vii 10/20/08 4:08:56 PM Acknowledgments A big thank you goes to the Android team, particularly those of you who’ve contributed to the Android developer Google Groups, for creating and supporting an exciting new playground. I also thank Philipp Lenssen for providing an inspiration, and occasional venue, for my blogging efforts; Chris Webb for reading a blog and seeing an author; and Bill Bridges, Dan Ulery, and the Wrox team for helping me along the way. Thanks also to Paul, Stu, and Mike: Your friendship and inspiration helped me get to where I am. Most importantly, I’d like to thank Kristy. For everything. 44712ffirs.indd viii 10/20/08 4:08:56 PM Contents Introduction Chapter 1: Hello, Android A Little Background The Not So Distant Past The Future What It Isn’t An Open Platform for Mobile Development Native Android Applications Android SDK Features Access to Hardware including Camera, GPS, and Accelerometer Native Google Maps, Geocoding, and Location-Based Services Background Services SQLite Database for Data Storage and Retrieval Shared Data and Interapplication Communication P2P Services with Google Talk Extensive Media Support and 2D/3D Graphics Optimized Memory and Process Management Introducing the Open Handset Alliance What Does Android Run On? Why Develop for Android? What Will Drive Android Adoption? What Does It Have That Others Don’t? Changing the Mobile Development Landscape 1 2 2 3 3 4 4 5 6 6 6 7 7 7 8 8 8 9 9 10 10 11 Introducing the Development Framework 11 What Comes in the Box Understanding the Android Software Stack The Dalvik Virtual Machine Android Application Architecture Android Libraries Advanced Android Libraries 12 12 14 14 15 16 Summary 44712ftoc.indd ix xvii 17 10/21/08 12:07:15 AM Contents Chapter 2: Getting Started Developing for Android What You Need to Begin Creating Your First Android Activity Types of Android Applications Developing for Mobile Devices Hardware-Imposed Design Considerations Considering the Users’ Environment Developing for Android To-Do List Example Android Development Tools The Android Emulator Dalvik Debug Monitor Service (DDMS) The Android Debug Bridge (ADB) Summary Chapter 3: Creating Applications and Activities 19 20 20 24 29 30 30 33 34 37 42 42 43 43 44 45 What Makes an Android Application? Introducing the Application Manifest Using the Manifest Editor The Android Application Life Cycle Understanding Application Priority and Process States Externalizing Resources 46 46 49 50 51 52 Creating Resources Using Resources To-Do List Resources Example Creating Resources for Different Languages and Hardware Runtime Configuration Changes 53 59 62 63 64 A Closer Look at Android Activities Creating an Activity The Activity Life Cycle Android Activity Classes Summary Chapter 4: Creating User Interfaces Fundamental Android UI Design Introducing Views Creating Activity User Interfaces with Views The Android Widget Toolbox 66 66 68 73 73 75 76 76 77 78 x 44712ftoc.indd x 10/21/08 12:07:15 AM Contents Introducing Layouts Using Layouts Creating New Views Modifying Existing Views Creating Compound Controls Creating Custom Widgets and Controls Using Custom Controls Creating and Using Menus Introducing the Android Menu System Defining an Activity Menu Dynamically Updating Menu Items Handling Menu Selections Submenus and Context Menus To-Do List Example Continued Summary Chapter 5: Intents, Broadcast Receivers, Adapters, and the Internet Introducing Intents Using Using Using Using Intents to Launch Activities Intent Filters to Service Implicit Intents Intent Filters for Plug-ins and Extensibility Intents to Broadcast Events Introducing Adapters Introducing Some Android-Supplied Adapters Using Adapters for Data Binding Using Internet Resources Connecting to an Internet Resource Leveraging Internet Resources Introducing Dialogs 79 79 80 81 85 88 98 99 99 101 104 104 105 107 112 113 114 114 121 130 132 136 136 136 141 142 143 143 Introducing the Dialog Class Using Activities as Dialogs 144 147 Creating an Earthquake Viewer Summary 148 157 Chapter 6: Data Storage, Retrieval, and Sharing Android Techniques for Saving Data Saving Simple Application Data Creating and Saving Preferences Retrieving Shared Preferences Saving the Activity State Creating a Preferences Page for the Earthquake Viewer 159 160 160 161 161 162 165 xi 44712ftoc.indd xi 10/21/08 12:07:15 AM Contents Saving and Loading Files Including Static Files as Resources File Management Tools Databases in Android Introducing SQLite Cursors and Content Values Working with Android Databases Introducing Content Providers Using Content Providers Native Android Content Providers Creating a New Content Provider Creating and Using an Earthquake Content Provider Summary Chapter 7: Maps, Geocoding, and Location-Based Services Using Location-Based Services Setting up the Emulator with Test Providers Updating Locations in Emulator Location Providers Create an Application to Manage Test Location Providers Selecting a Location Provider Finding the Available Providers Finding Providers Based on Requirement Criteria Finding Your Location “Where Am I?” Example Tracking Movement Updating Your Location in “Where Am I?” Using Proximity Alerts Using the Geocoder Reverse Geocoding Forward Geocoding Geocoding “Where Am I?” Creating Map-Based Activities Introducing MapView and MapActivity Creating a Map-Based Activity Configuring and Using Map Views Using the Map Controller Mapping “Where Am I?” Creating and Using Overlays Introducing MyLocationOverlay Introducing ItemizedOverlays and OverlayItems Pinning Views to the Map and Map Positions 174 174 175 175 176 176 177 189 189 192 194 197 205 207 208 208 208 209 212 212 212 213 214 216 217 219 220 221 221 222 224 224 224 226 227 228 231 239 239 240 xii 44712ftoc.indd xii 10/21/08 12:07:15 AM Contents Mapping Earthquakes Example Summary Chapter 8: Working in the Background Introducing Services 242 247 249 250 Creating and Controlling Services Binding Activities to Services 250 258 Using Background Worker Threads 259 Creating New Threads Synchronizing Threads for GUI Operations Moving the Earthquake Service to a Background Thread Let’s Make a Toast Customizing Toasts Using Toasts in Worker Threads Introducing Notifications Introducing the Notification Manager Creating Notifications Triggering Notifications Adding Notifications to the Earthquake Monitor Advanced Notification Techniques Ongoing and Insistent Notifications Using Alarms Using Alarms to Update Earthquakes Summary 260 260 261 262 263 264 265 266 266 267 267 270 272 273 274 276 Chapter 9: Peer-to-Peer Communication 279 Introducing Android Instant Messaging 280 Using the GTalk Service Binding to the GTalk Service Making a GTalk Connection and Starting an IM Session Introducing Presence and the Contact Roster Managing Chat Sessions Sending and Receiving Data Messages Introducing SMS Using SMS in Your Application Sending SMS Messages Listening for SMS Messages Emergency Responder SMS Example Automating the Emergency Responder Summary 280 281 282 283 286 289 291 291 292 294 297 306 314 xiii 44712ftoc.indd xiii 10/21/08 12:07:15 AM Contents Chapter 10: Accessing Android Hardware Using the Media APIs Playing Media Resources Recording Multimedia Using the Camera Controlling Camera Settings Using the Camera Preview Taking a Picture 315 316 316 317 319 319 320 320 Introducing the Sensor Manager Using the Accelerometer and Compass 321 323 Introducing Accelerometers Detecting Acceleration Changes Creating a Speedometer Determining Your Orientation Creating a Compass and Artificial Horizon 324 324 326 329 330 Android Telephony Making Phone Calls Monitoring Phone State and Phone Activity Monitoring Data Connectivity and Activity Accessing Phone Properties and Status Controlling the Phone Using Bluetooth Introducing the Bluetooth Service Controlling the Local Bluetooth Device Discovering and Bonding with Bluetooth Devices Managing Bluetooth Connections Communication with Bluetooth Using a Bluetooth Headset Managing Network and Wi-Fi Connections Monitoring and Managing Your Internet Connectivity Managing Active Connections Managing Your Wi-Fi Controlling Device Vibration Summary Chapter 11: Advanced Android Development Paranoid Android Linux Kernel Security Introducing Permissions Declaring and Enforcing Permissions Enforcing Permissions with Broadcasting Intents 333 334 334 337 338 338 339 339 340 340 342 342 344 345 345 346 347 350 351 353 354 354 354 355 355 xiv 44712ftoc.indd xiv 10/21/08 12:07:15 AM Contents Using AIDL to Support IPC for Services Implementing an AIDL Interface Using Internet Services Building Rich User Interfaces Working with Animations Using Themes to Skin Your Applications Advanced Canvas Drawing Introducing SurfaceView Creating Interactive Controls Summary Index 356 356 361 361 361 372 373 390 393 398 399 xv 44712ftoc.indd xv 10/21/08 12:07:15 AM 44712flast.indd xvi 10/21/08 12:11:04 AM Introduction Now is an exciting time for mobile developers. Mobile phones have never been more popular, and powerful smartphones are now a regular choice for consumers. Stylish and versatile phones packing hardware features like GPS, accelerometers, and touch screens are an enticing platform upon which to create innovative mobile applications. Android hardware will be designed to tempt consumers, but the real win is for developers. With existing mobile development built on proprietary operating systems that restrict third-party applications, Android offers an open and equal alternative. Without artificial barriers, Android developers are free to write applications that take full advantage of increasingly powerful mobile hardware. As a result, developer interest in Android devices has made their 2008 release a hugely anticipated mobile technology event. Built on an open source framework, and featuring powerful SDK libraries and an open philosophy, Android has opened mobile phone development to thousands of developers who haven’t had access to tools for building mobile applications. Experienced mobile developers can now expand into the Android platform, leveraging the unique features to enhance existing products or create innovative new ones. This book is a hands-on guide to building mobile applications using version 1.0 of the Android software development kit. Chapter by chapter, it takes you through a series of sample projects, each introducing new features and techniques to get the most out of Android. It covers all the basic functionality as well as exploring the advanced features through concise and useful examples. Since Android is a brand-new, version 1 product, there are only a small number of handsets currently available that support it. As with any early release, there are likely to be regular changes and improvements to the software and development libraries. The explanations and examples included in this book will give the grounding and knowledge you need to write compelling mobile applications using the current SDK, along with the flexibility to quickly adapt to future enhancements. Whom This Book Is For This book is for anyone interested in creating applications for the Android mobile phone platform. It includes information that will be valuable, whether you’re an experienced mobile developer or making your first foray, via Android, into writing mobile applications. It will help if readers have used mobile phones (particularly phones running Android), but it’s not necessary, nor is prior experience in mobile phone development. It’s expected that you’ll have some experience in software development and be familiar with basic development practices. While knowledge of Java is helpful, it’s not a necessity. Chapters 1 and 2 introduce mobile development and contain instructions to get you started in Android. Beyond that, there’s no requirement to read the chapters in order, although a good understanding of the core components described in Chapters 3 through 6 is important before you venture into the remaining chapters. Chapters 7 through 11 cover a variety of optional and advanced functionality and can be read in whatever order interest or need dictates. 44712flast.indd xvii 10/21/08 12:11:04 AM Introduction What This Book Covers Chapter 1 introduces Android, including what it is and how it fits into existing mobile development. What Android offers as a development platform and why it’s an exciting opportunity for creating mobile phone applications are then examined in greater detail. Chapter 2 covers some best practices for mobile development and explains how to download the Android SDK and start developing applications. It also introduces the Android developer tools and demonstrates how to create new applications from scratch. Chapters 3 through 6 take an in-depth look at the fundamental Android application components. Starting with examining the pieces that make up an Android application and its life cycle, you’ll quickly move on to the application manifest and external resources before learning about “Activities,” their lifetimes, and their life cycles. You’ll then learn how to create User Interfaces with layouts and Views, before being introduced to the Intent mechanism used to perform actions and send messages between application components. Internet resources are then covered before a detailed look at data storage, retrieval, and sharing. You’ll start with the preference-saving mechanism before moving on to file handling and databases. This section finishes with a look at sharing application data using Content Providers. Chapters 7 to 10 look at more advanced topics. Starting with maps and location-based services, you’ll move on to Services, background Threads, and using Notifications. Android’s communication abilities are next, including sending and receiving messages through instant messaging and SMS. Hardware is then covered, starting with media recording and playback, before introducing the camera, accelerometers, and compass sensors. Chapter 10 concludes with a look at phone and networking hardware, starting with telephony APIs and going on to Bluetooth and network management (both Wi-Fi and mobile data connections). Chapter 11 includes several advanced development topics, among them security, IPC, advanced graphics techniques, and user–hardware interactions. How This Book Is Structured This book is structured in a logical sequence to help readers of different development backgrounds learn how to write advanced Android applications. There’s no requirement to read each chapter sequentially, but several of the sample projects are developed over the course of several chapters, adding new functionality and other enhancements at each stage. Experienced mobile developers with a working Android development environment can skim the first two chapters — which are an introduction to mobile development and instructions for creating your development environment — and dive in at Chapters 3 to 6. These cover the fundamentals of Android development, so it’s important to have a solid understanding of the concepts they describe. With this xviii 44712flast.indd xviii 10/21/08 12:11:04 AM
- Xem thêm -

Tài liệu liên quan