Features and Benefits
top
The first clear, easy, step-by-step tutorial for every developer who wants to write software for today's hot new Android phones!
# The hands-on introduction to Android programming for everyone with basic Java experience: introduces the development environment and teaches every essential concept with carefully-explained code
# Covers everything from user interfaces to location-based and social networking features
# Combines step-by-step instructions, examples, Q and As, quizzes, exercises, tips, shortcuts, and more
Table of Contents
top
Introduction
1
Part I: Android Fundamentals
HOUR 1: Getting Started with Android
7
Introducing Android
7
Familiarizing Yourself with Eclipse
9
Running and Debugging Applications
17
Summary
23
Q&A
23
Workshop
24
HOUR 2: Mastering the Android Development Tools
27
Using the Android Documentation
27
Debugging Applications with DDMS
29
Working with the Android Emulator
35
Using Other Android Tools
38
Summary
39
Q&A
40
Workshop
40
HOUR 3: Building Android Applications
43
Designing a Typical Android Application
43
Using the Application Context
46
Working with Activities
47
Working with Intents
51
Working with Dialogs
53
Logging Application Information
54
Summary
55
Q&A
55
Workshop
56
HOUR 4: Managing Application Resources
59
Using Application and System Resources
59
Working with Simple Resource Values
63
Working with Drawable Resources
66
Working with Layouts
67
Working with Files
71
Working with Other Types of Resources
73
Summary
73
Q&A
74
Workshop
75
HOUR 5: Configuring the Android Manifest File
77
Exploring the Android Manifest File
77
Configuring Basic Application Settings
81
Defining Activities
86
Managing Application Permissions
88
Managing Other Application Settings
91
Summary
91
Q&A
92
Workshop
93
HOUR 6: Designing an Application Framework
95
Designing an Android Trivia Game
95
Implementing an Application Prototype
102
Running the Game Prototype
107
Summary
109
Q&A
110
Workshop
110
Part II: Building an Application Framework
HOUR 7: Implementing an Animated Splash Screen
113
Designing the Splash Screen
113
Implementing the Splash Screen Layout
114
Working with Animation
119
Summary
123
Q&A
124
Workshop
124
HOUR 8: Implementing the Main Menu Screen
127
Designing the Main Menu Screen
127
Implementing the Main Menu Screen Layout
131
Working with the ListView Control
134
Working with Other Menu Types
138
Summary
141
Q&A
141
Workshop
141
HOUR 9: Developing the Help and Scores Screens
143
Designing the Help Screen
144
Implementing the Help Screen Layout
145
Working with Files
147
Designing the Scores Screen
149
Implementing the Scores Screen Layout
151
Designing a Screen with Tabs
154
Working with XML
156
Summary
158
Q&A
158
Workshop
159
HOUR 10: Building Forms to Collect User Input
161
Designing the Settings Screen
161
Implementing the Settings Screen Layout
165
Using Common Form Controls
167
Saving Form Data with SharedPreferences
175
Summary
178
Q&A
178
Workshop
179
HOUR 11: Using Dialogs to Collect User Input
181
Working with Activity Dialogs
181
Using DatePickerDialog
184
Working with Custom Dialogs
187
Summary
194
Q&A
194
Workshop
194
HOUR 12: Adding Application Logic
197
Designing the Game Screen
197
Implementing the Game Screen Layout
200
Working with ViewSwitcher Controls
203
Wiring Up Game Logic
208
Summary
214
Q&A
215
Workshop
215
Part III: Enhancing Your Application with Powerful Android Features
HOUR 13: Working with Images and the Camera
217
Designing the Avatar Feature
217
Adding an Avatar to the Settings Screen Layout
219
Working with ImageButton Controls
221
Working with Image Media
223
Working with Bitmaps
228
Summary
230
Q&A
230
Workshop
231
HOUR 14: Adding Support for Location-Based Services
233
Designing the Favorite Place Feature
233
Implementing the Framework for the Favorite Place Feature
237
Using Location-Based Services
240
Using Geocoding Services
246
Working with Maps
248
Summary
251
Q&A
251
Workshop
252
HOUR 15: Adding Network Support
255
Designing Network Applications
255
Developing Network Applications
257
Accessing Network Services
260
Indicating Network Activity with Progress Bars
262
Running Tasks Asynchronously
265
Downloading and Displaying Scores
267
Downloading and Parsing Question Batches
271
Summary
274
Q&A
274
Workshop
274
HOUR 16: Adding More Network Support
277
Determining Data to Send to the Server
277
Accessing Phone Status Information
278
Uploading Data to a Remote Application Server
281
Summary
289
Q&A
289
Workshop
289
HOUR 17: Adding Social Features
291
Enhancing Your Application with Social Features
291
Adding Friend Support to Your Application
292
Integrating with Social Networking Services
300
Summary
302
Q&A
302
Workshop
303
HOUR 18: Creating a Home Screen App Widget
305
Designing an App Widget
305
Handling App Widget User Events
313
Working with Widget Background Operations
314
Summary
318
Q&A
318
Workshop
319
Part IV: Adding Polish to Your Android Application
HOUR 19: Internationalizing Your Application
321
General Internationalization Principles
321
How Android Localization Works
322
Android Internationalization Strategies
327
Using Localization Utilities
329
Summary
330
Q&A
331
Workshop
332
HOUR 20: Developing for Different Devices
333
Configuration Management for Android
333
Summary
343
Q&A
343
Workshop
344
HOUR 21: Diving Deeper into Android
347
Exploring More Core Android Features
347
Designing Advanced User Interfaces
349
Working with Multimedia
353
Working with 2D and 3D Graphics
354
Personalizing Android Devices
356
Managing and Sharing Data
358
Accessing Underlying Device Hardware
362
Summary
364
Q&A
364
Workshop
365
HOUR 22: Testing Android Applications
367
Testing Best Practices
367
Maximizing Test Coverage
371
Summary
380
Q&A
380
Workshop
381
Part V: Publishing Your Application
HOUR 23: Getting Ready to Publish
383
Understanding the Release Process
383
Preparing the Release Candidate Build
385
Testing the Application Release Candidate
386
Packaging and Signing an Application
387
Testing the Signed Application Package
390
Summary
392
Q&A
392
Workshop
393
HOUR 24: Publishing on the Android Market
395
Selling on the Android Market
395
Exploring Other Android Publishing Options
402
Summary
405
Q&A
405
Workshop
406
Part VI: Appendixes
APPENDIX A: Configuring Your Android Development Environment
409
Development Machine Prerequisites
409
Installing the Java Development Kit
410
Installing the Eclipse IDE
410
Installing the Android SDK
411
Installing and Configuring the Android Plug-in for Eclipse (ADT)
412
Upgrading the Android SDK
413
Configuring Development Hardware for Device Debugging
413
APPENDIX B: Eclipse IDE Tips and Tricks
415
Creating New Classes and Methods
415
Organizing Imports
415
Documenting Code
416
Using Auto-Complete
416
Editing Code Efficiently
416
Renaming Almost Anything
417
Formatting Code
418
Organizing Code
418
Fun with Refactoring
418
Resolving Mysterious Build Errors
420
Creating Custom Log Filters
420
Moving Tabs Around
421
Integrating Source Control
421
APPENDIX C: Supplementary Materials
423
Accessing the Publisher's Website
423
Accessing the Authors' Website
424
Contacting the Authors
425
Leveraging Online Android Resources
425
Index
427
About the Authors
top
Lauren Darcey is responsible for the technical leadership and direction of a small software company specializing in mobile technologies, including Android, iPhone, Blackberry, Palm Pre, BREW, and J2ME. With more than two decades of experience in professional software production, Lauren is a recognized authority in enterprise architecture and the development of commercial-grade mobile applications. Lauren received a B.S. in Computer Science from the University of California, Santa Cruz.
She spends her copious free time traveling the world with her geeky mobile-minded husband and is an avid nature photographer. Her work has been published in books and newspapers around the world. In South Africa, she dove with 4-meter-long great white sharks and got stuck between a herd of rampaging hippopotami and an irritated bull elephant. She's been attacked by monkeys in Japan, gotten stuck in a ravine with two hungry lions in Kenya, gotten thirsty in Egypt, narrowly avoided a coup d'état in Thailand, geocached her way through the Swiss Alps, drank her way through the beer halls of Germany, slept in the crumbling castles of Europe, and gotten her tongue stuck to an iceberg in Iceland (while being watched by a herd of suspicious wild reindeer).
Shane Conder has extensive development experience and has focused his attention on mobile and embedded development for the past decade. He has designed and developed many commercial applications for BREW, J2ME, Palm, Windows Mobile, and Android--some of which have been installed on millions of phones worldwide. Shane has written extensively about the mobile industry and evaluated mobile development platforms on his tech blogs and is well known within the blogosphere. Shane received a B.S. in Computer Science from the University of California.
A self-admitted gadget freak, Shane always has the latest phone or laptop. He can often be found fiddling with the latest technologies, such as Amazon Web Services, Android, iPhone, Google App Engine, and other exciting, state-of-the-art technologies that activate the creative part of his brain. He also enjoys traveling the world with his geeky wife, even if she did make him dive with 4-meter-long great white sharks and almost get eaten by a lion in Kenya. He admits that it was his fault they got attacked by monkeys in Japan, that he snickered and whipped out his Android phone to take a picture when Laurie got her tongue stuck to that iceberg in Iceland, and that he still hasn't learned his lesson about writing his own bio.
Other Publications by the Authors
The authors have also published Android Wireless Application Development, part of the Addison-Wesley Developer's Library series, as well as numerous online technical articles for http://developer.com, http://informIT.com, and their own Android blog, http://androidbook.blogspot.com.