SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Want to get started building applications for Android, the world’s hottest, fast-growing mobile platform? Already building Android applications and want to get better at it? This book brings together all the expert guidance–and code–you’ll need!
Completely up-to-date to reflect the newest and most widely used Android SDKs, The Android Developer’s Cookbook is the essential resource for developers building apps for any Android device, from phones to tablets.
Proven, modular recipes take you from the absolute basics to advanced location-based services, security techniques, and performance optimization. You’ll learn how to write apps from scratch, ensure interoperability, choose the best solutions for common problems, and avoid development pitfalls. Coverage includes:
Turn to The Android Developer’s Cookbook for proven, expert answers–and the code you need to implement them. It’s all you need to jumpstart any Android project, and create high-value, feature-rich apps that sell!
An Interview with Android Developer Stefan Meisner
Android’s Good Intentions: Employ Intents to Reuse Code and Improve User Experiences
Catering Android Apps to Tablets
Seven Android Apps for Business Professionals
Android Application Basics: Activities and Intents
1 Overview of Android 1
The Evolution of Android 1
The Dichotomy of Android 2
Devices Running Android 2
HTC Models 6
Motorola Models 6
Samsung Models 6
Tablets 7
Other Devices 7
Hardware Differences on Android Devices 8
Screens 8
User Input Methods 9
Sensors 9
Features of Android 10
Multiprocess and App Widgets 11
Touch, Gestures, and Multitouch 11
Hard and Soft Keyboards 11
Android Development 11
How to Use the Recipes in This Book 12
Designing Applications Well 12
Maintaining Forward Compatibility 13
Robustness 13
Software Development Kit 14
Installing and Upgrading 14
Software Features and API Level 15
Emulator and Android Device Debug 16
Using the Android Debug Bridge 18
Signing and Publishing 18
Android Market 19
End-User License Agreement 19
Improving App Visibility 19
Differentiating an App 20
Charging for an App 20
Managing Reviews and Updates 21
Alternatives to the Android Market 22
2 Application Basics: Activities and Intents 23
Android Application Overview 23
Recipe: Creating a Project and an Activity 24
Directory Structure of Project and Autogenerated
Content 26
Android Package and Manifest File 28
Renaming Parts of an Application 30
Activity Lifecycle 30
Recipe: Utilizing Other Lifecycle Functions 31
Recipe: Forcing Single Task Mode 33
Recipe: Forcing Screen Orientation 34
Recipe: Saving and Restoring Activity Information 34
Multiple Activities 35
Recipe: Using Buttons and TextView 36
Recipe: Launching Another Activity from an Event 37
Recipe: Launching an Activity for a Result Using Speech to Text 41
Recipe: Implementing a List of Choices 43
Recipe: Using Implicit Intents for Creating an Activity 44
Recipe: Passing Primitive Data Types Between Activities 46
3 Threads, Services, Receivers, and Alerts 51
Threads 51
Recipe: Launching a Secondary Thread 51
Recipe: Creating a Runnable Activity 55
Recipe: Setting a Thread’s Priority 57
Recipe: Canceling a Thread 57
Recipe: Sharing a Thread Between Two
Applications 58
Messages Between Threads: Handlers 58
Recipe: Scheduling a Runnable Task from the Main Thread 59
Recipe: Using a Countdown Timer 61
Recipe: Handling a Time-Consuming Initialization 62
Services 64
Recipe: Creating a Self-Contained Service 65
Adding a Broadcast Receiver 69
Recipe: Starting a Service When the Camera Button Is
Pressed 70
App Widgets 72
Recipe: Creating an App Widget 72
Alerts 74
Recipe: Using Toast to Show a Brief Message on the
Screen 74
Recipe: Using an Alert Dialog Box 75
Recipe: Showing Notification in Status Bar 76
4 User Interface Layout 79
Resource Directories and General Attributes 79
Recipe: Specifying Alternate Resources 81
Views and ViewGroups 82
Recipe: Building Layouts in the Eclipse Editor 83
Recipe: Controlling the Width and Height of UI
Elements 86
Recipe: Setting Relative Layout and Layout ID 89
Recipe: Declaring a Layout Programmatically 90
Recipe: Updating a Layout from a Separate
Thread 92
Text Manipulation 94
Recipe: Setting and Changing Text Attributes 95
Recipe: Providing Text Entry 98
Recipe: Creating a Form 100
Other Widgets: From Buttons to Seek Bars 101
Recipe: Using Image Buttons in a Table Layout 102
Recipe: Using Check Boxes and Toggle Buttons 105
Recipe: Using Radio Buttons 108
Recipe: Creating a Drop-Down Menu 110
Recipe: Using a Progress Bar 112
Recipe: Using a SeekBar 114
5 User Interface Events 117
Event Handlers and Event Listeners 117
Recipe: Intercepting a Physical Key Press 117
Recipe: Building Menus 121
Recipe: Defining Menus in XML 126
Recipe: Utilizing the SEARCH Key 127
Recipe: Reacting to Touch Events 128
Recipe: Listening for Fling Gestures 130
Recipe: Using Multitouch 133
Advanced User Interface Libraries 136
Recipe: Using Gestures 136
Recipe: Drawing 3D Images 140
6 Multimedia Techniques 147
Images 148
Recipe: Loading an Image for Manipulation 148
Audio 154
Recipe: Choosing and Playing Back Audio Files 154
Recipe: Recording Audio Files 157
Recipe: Manipulating Raw Audio 158
Recipe: Using Sound Resources Efficiently 163
Recipe: Adding Media and Updating Paths 165
Video 165
7 Hardware Interface 169
Camera 169
Recipe: Customizing the Camera 170
Other Sensors 175
Recipe: Getting a Device’s Rotational Attitude 176
Recipe: Using the Temperature and Light Sensor 179
Telephony 180
Recipe: Utilizing the Telephony Manager 181
Recipe: Listening for Phone States 183
Recipe: Dialing a Phone Number 185
Bluetooth 185
Recipe: Turning on Bluetooth 186
Recipe: Discovering Bluetooth Devices 187
Recipe: Pairing with Bonded Bluetooth Devices 188
Recipe: Opening a Bluetooth Socket 188
Recipe: Using Device Vibration 191
Recipe: Accessing the Wireless Network 191
8 Networking 195
Using SMS 195
Recipe: Autosend an SMS Based on a Received
SMS 197
Using Web Content 204
Recipe: Customizing a Web Browser 204
Recipe: Using an HTTP GET 204
Recipe: Using HTTP POST 209
Social Networking 210
Recipe: Integrating with Twitter 210
9 Data Storage Methods 221
Shared Preferences 221
Recipe: Creating and Retrieving Shared
Preferences 222
Recipe: Using the Preferences Framework 222
Recipe: Changing the UI Based on Stored Data 225
Recipe: Adding a EULA 228
SQLite Database 232
Recipe: Creating a Separate Database Package 232
Recipe: Using a Separate Database Package 236
Recipe: Creating a Personal Diary 239
Content Provider 243
Recipe: Creating a Custom Content Provider 244
File Saving and Loading 249
10 Location-Based Services 251
Location Basics 251
Recipe: Retrieving Last Location 253
Recipe: Updating Location Upon Change 254
Recipe: Listing All Enabled Providers 256
Recipe: Translating a Location to Address (Reverse Geocoding) 258
Recipe: Translating an Address to Location (Geocoding) 261
Using Google Maps 263
Recipe: Adding Google Maps to an Application 265
Recipe: Adding Markers on a Map 267
Recipe: Adding Views to a Map 271
Recipe: Marking the Device’s Current Location on a
Map 274
Recipe: Setting up a Proximity Alert 274
11 Advanced Android Development 277
Android Custom View 277
Recipe: Customizing a Button 277
Android Native Components 283
Recipe: Developing a Native Component 284
Android Security 287
Recipe: Declaring and Enforcing Permissions 288
Android Inter-Process Communication 288
Recipe: Implementing a Remote Procedure Call 289
Android Backup Manager 294
Recipe: Creating a Backup of Runtime Data 294
Recipe: Backing Up Files to the Cloud 296
Recipe: Triggering Backup and Restore 296
Android Animation 298
Recipe: Creating an Animation 299
12 Debugging 303
Eclipse Built-in Debug Tools 303
Recipe: Specifying a Run Configuration 303
Recipe: Using the DDMS 304
Recipe: Debugging Through Breakpoints 306
Android SDK Debug Tools 307
Recipe: Using the Android Debug Bridge 307
Recipe: Using LogCat 307
Recipe: Using the Hierarchy Viewer 309
Recipe: Using TraceView 311
Android System Debug Tools 313
Recipe: Setting up GDB Debugging 315
TOC, 9780321741233, 9/25/2010