Table of Contents
Acknowledgments xi
Preface xiii
What Makes Android Special? xiii
Who Should Read This Book? xiv
What's in This Book? xv
What's New for Cupcake? xv
What's New for Donut? xvi
Online Resources xvi
Fast-Forward xvii
I Introducing Android 1
1 Quick Start 3
1.1 Installing the Tools 3
1.2 Creating Your First Program 7
1.3 Running on the Emulator 7
1.4 Running on a Real Phone 10
1.5 Fast-Forward» 11
2 Key Concepts 15
2.1 The Big Picture 15
2.2 It's Alive! 20
2.3 Building Blocks 24
2.4 Using Resources 25
2.5 Safe and Secure 26
2.6 Fast-Forward» 27
II Android Basics 29
3 Designing the User Interface 31
3.1 Introducing the Sudoku Example 31
3.2 Designing by Declaration 32
3.3 Creating the Opening Screen 33
3.4 Using Alternate Resources 41
3.5 Implementing an About Box 44
3.6 Applying a Theme 49
3.7 Adding a Menu 50
3.8 Adding Settings 53
3.9 Starting a New Game 55
3.10 Debugging with Log Messages 57
3.11 Debugging with the Debugger 58
3.12 Exiting the Game 58
3.13 Fast-Forward » 59
4 Exploring 2D Graphics 61
4.1 Learning the Basics 61
4.2 Adding Graphics to Sudoku 66
4.3 Handling Input 75
4.4 The Rest of the Story 81
4.5 Making More Improvements 90
4.6 Fast-Forward» 91
5 Multimedia 93
5.1 Playing Audio 93
5.2 Playing Video 99
5.3 Adding Sounds to Sudoku 104
5.4 Fast-Forward » 107
6 Storing Local Data 109
6.1 Adding Options to Sudoku 109
6.2 Continuing an Old Game 111
6.3 Remembering the Current Position 113
6.4 Accessing the Internal File System 115
6.5 Accessing SD Cards 116
6.6 Fast-Forward » 117
III Beyond the Basics 119
7 The Connected World121
7.1 Browsing by Intent 122
7.2 Web with a View 126
7.3 From JavaScript to Java and Back 131
7.4 Using Web Services 138
7.5 Fast-Forward » 149
8 Locating and Sensing 151
8.1 Location, Location, Location 151
8.2 Set Sensors to Maximum 157
8.3 Bird's-Eye View 160
8.4 Fast-Forward » 166
9 Putting SQL to Work 167
9.1 Introducing SQLite 167
9.2 SQL 101 168
9.3 Hello, Database 170
9.4 Data Binding 178
9.5 Using a Content Provider 181
9.6 Implementing a Content Provider 184
9.7 Fast-Forward » 185
10 3D Graphics in OpenGL 187
10.1 Understanding 3D Graphics 187
10.2 Introducing OpenGL 188
10.3 Building an OpenGL Program 189
10.4 Rendering the Scene 191
10.5 Building a Model 195
10.6 Lights, Camera 198
10.7 Action! 201
10.8 Applying Texture 201
10.9 Peekaboo 205
10.10 Measuring Smoothness 206
10.11 Fast-Forward » 207
IV Appendixes 209
A Java vs. the Android Language and APIs 211
A.1 Language Subset 211
A.2 Standard Library Subset 213
A.3 Third-Party Libraries 214
B Hello, Widget 215
B.1 Creating Your First Widget 215
B.2 Calling All Widgets! 217
B.3 Stretch to Fit 218
B.4 The Rest of the Story 219
B.5 Running the Widget 220
B.6 Keeping Up to Date 222
B.7 Go Wild 224
C Publishing to the Android Market 225
C.1 Preparing 225
C.2 Signing 228
C.3 Publishing 229
C.4 Updating 231
C.5 Closing thoughts 233
D Bibliography 233
Index 235