INTRODUCTION xvii CHAPTER 1: GETTING STARTED WITH ANDROID PROGRAMMING 1 What Is Android? 2 Android Versions 2 Features of Android 3 Architecture of Android 4 Android Devices in the Market 4 The Android Market 7 Obtaining the Required Tools 8 Android Studio 8 Android SDK 14 Creating Android Virtual Devices (AVDs) 15 The Android Developer Community 24 Launching Your First Android Application 24 Summary 26 CHAPTER 2: USING ANDROID STUDIO FOR ANDROID DEVELOPMENT 29 Exploring the IDE 30 Using Code Completion 38 Debugging Your Application 39 Setting Breakpoints 39 Navigating Paused Code 43 Publishing Your Application 44 Generating a Signed APK 44 Summary 45 CHAPTER 3: ACTIVITIES, FRAGMENTS, AND INTENTS 47 Understanding Activities 48 Applying Styles and Themes to an Activity 53 Hiding the Activity Title 54 Displaying a Dialog Window 56 Displaying a Progress Dialog 59 Linking Activities Using Intents 61 Returning Results from an Intent 66 Passing Data Using an Intent Object 70 Fragments 75 Adding Fragments Dynamically 81 Life Cycle of a Fragment 84 Interactions Between Fragments 88 Understanding the Intent Object 92 Using Intent Filters 93 Displaying Notifi cations 94 Summary 98 CHAPTER 4: GETTING TO KNOW THE ANDROID USER INTERFACE 101 Understanding the Components of a Screen 102 Views and ViewGroups 103 FrameLayout 104 LinearLayout (Horizontal) and LinearLayout (Vertical) 104 TableLayout 114 RelativeLayout 116 FrameLayout 117 ScrollView 121 Adapting to Display Orientation 124 Anchoring Views 125 Managing Changes to Screen Orientation 127 Persisting State Information During Changes in Configuration 131 Detecting Orientation Changes 132 Controlling the Orientation of the Activity 132 Utilizing the Action Bar 133 Adding Action Items to the Action Bar 136 Creating the User Interface Programmatically 142 Listening for UI Notifi cations 145 Summary 145 CHAPTER 5: DESIGNING YOUR USER INTERFACE WITH VIEWS 147 Using Basic Views 148 TextView View 148 Button, ImageButton, EditText, CheckBox, ToggleButton, RadioButton, and RadioGroup Views 149 ProgressBar View 158 AutoCompleteTextView View 164 Using Picker Views 167 TimePicker View 167 DatePicker View 172 Using List Views to Display Long Lists 175 ListView View 175 Using the Spinner View 184 Understanding Specialized Fragments 186 Using a ListFragment 187 Using a DialogFragment 191 Using a PreferenceFragment 194 Summary 199 CHAPTER 6: DISPLAYING PICTURES AND MENUS WITH VIEWS 203 Using Image Views to Display Pictures 203 ImageView View 204 ImageSwitcher 206 GridView 211 Using Menus with Views 215 Creating the Helper Methods 215 Options Menu 217 Context Menu 220 Using WebView 225 WebView 225 Summary 228 CHAPTER 7: DATA PERSISTENCE 231 Saving and Loading User Preferences 232 Accessing Preferences Using an Activity 232 Programmatically Retrieving and Modifying the Preferences Values 242 Persisting Data to Files 246 Saving to Internal Storage 246 Saving to External Storage (SD Card) 250 Choosing the Best Storage Option 253 Creating and Using Databases 254 Creating the DBAdapter Helper Class 254 Using the Database Programmatically 260 Summary 266 CHAPTER 8: CONTENT PROVIDERS 269 Sharing Data in Android 270 Using a Content Provider 271 Predefined Query String Constants 278 Projections 279 Filtering 280 Sorting 280 Creating Your Own Content Providers 281 Using the Content Provider 289 Summary 294 CHAPTER 9: MESSAGING 297 SMS Messaging 298 Sending SMS Messages Programmatically 298 Sending SMS Messages Using Intent 302 Receiving SMS Messages 302 Caveats and Warnings 318 Sending Email 319 Summary 322 CHAPTER 10: LOCATION-BASED SERVICES 325 Displaying Maps 326 Creating the Project 326 Obtaining the Maps API Key 326 Displaying the Map 327 Displaying the Zoom Control 329 Changing Views 332 Navigating to a Specifi c Location 333 Getting the Location That Was Touched 335 Geocoding and Reverse Geocoding 337 Getting Location Data 340 Monitoring a Location 348 Summary 348 CHAPTER 11: NETWORKING 351 Consuming Web Services Using HTTP 352 Downloading Binary Data 354 Downloading Text Content 361 Accessing Web Services Using the GET Method 364 Consuming JSON Services 370 Summary 377 CHAPTER 12: DEVELOPING ANDROID SERVICES 381 Creating Your Own Services 382 Performing Long-Running Tasks in a Service 386 Performing Repeated Tasks in a Service 391 Executing Asynchronous Tasks on Separate Threads Using IntentService 394 Establishing Communication Between a Service and an Activity 397 Binding Activities to Services 401 Understanding Threading 406 Summary 411 APPENDIX: ANSWERS TO EXERCISES 415 INDEX 421
Show moreINTRODUCTION xvii CHAPTER 1: GETTING STARTED WITH ANDROID PROGRAMMING 1 What Is Android? 2 Android Versions 2 Features of Android 3 Architecture of Android 4 Android Devices in the Market 4 The Android Market 7 Obtaining the Required Tools 8 Android Studio 8 Android SDK 14 Creating Android Virtual Devices (AVDs) 15 The Android Developer Community 24 Launching Your First Android Application 24 Summary 26 CHAPTER 2: USING ANDROID STUDIO FOR ANDROID DEVELOPMENT 29 Exploring the IDE 30 Using Code Completion 38 Debugging Your Application 39 Setting Breakpoints 39 Navigating Paused Code 43 Publishing Your Application 44 Generating a Signed APK 44 Summary 45 CHAPTER 3: ACTIVITIES, FRAGMENTS, AND INTENTS 47 Understanding Activities 48 Applying Styles and Themes to an Activity 53 Hiding the Activity Title 54 Displaying a Dialog Window 56 Displaying a Progress Dialog 59 Linking Activities Using Intents 61 Returning Results from an Intent 66 Passing Data Using an Intent Object 70 Fragments 75 Adding Fragments Dynamically 81 Life Cycle of a Fragment 84 Interactions Between Fragments 88 Understanding the Intent Object 92 Using Intent Filters 93 Displaying Notifi cations 94 Summary 98 CHAPTER 4: GETTING TO KNOW THE ANDROID USER INTERFACE 101 Understanding the Components of a Screen 102 Views and ViewGroups 103 FrameLayout 104 LinearLayout (Horizontal) and LinearLayout (Vertical) 104 TableLayout 114 RelativeLayout 116 FrameLayout 117 ScrollView 121 Adapting to Display Orientation 124 Anchoring Views 125 Managing Changes to Screen Orientation 127 Persisting State Information During Changes in Configuration 131 Detecting Orientation Changes 132 Controlling the Orientation of the Activity 132 Utilizing the Action Bar 133 Adding Action Items to the Action Bar 136 Creating the User Interface Programmatically 142 Listening for UI Notifi cations 145 Summary 145 CHAPTER 5: DESIGNING YOUR USER INTERFACE WITH VIEWS 147 Using Basic Views 148 TextView View 148 Button, ImageButton, EditText, CheckBox, ToggleButton, RadioButton, and RadioGroup Views 149 ProgressBar View 158 AutoCompleteTextView View 164 Using Picker Views 167 TimePicker View 167 DatePicker View 172 Using List Views to Display Long Lists 175 ListView View 175 Using the Spinner View 184 Understanding Specialized Fragments 186 Using a ListFragment 187 Using a DialogFragment 191 Using a PreferenceFragment 194 Summary 199 CHAPTER 6: DISPLAYING PICTURES AND MENUS WITH VIEWS 203 Using Image Views to Display Pictures 203 ImageView View 204 ImageSwitcher 206 GridView 211 Using Menus with Views 215 Creating the Helper Methods 215 Options Menu 217 Context Menu 220 Using WebView 225 WebView 225 Summary 228 CHAPTER 7: DATA PERSISTENCE 231 Saving and Loading User Preferences 232 Accessing Preferences Using an Activity 232 Programmatically Retrieving and Modifying the Preferences Values 242 Persisting Data to Files 246 Saving to Internal Storage 246 Saving to External Storage (SD Card) 250 Choosing the Best Storage Option 253 Creating and Using Databases 254 Creating the DBAdapter Helper Class 254 Using the Database Programmatically 260 Summary 266 CHAPTER 8: CONTENT PROVIDERS 269 Sharing Data in Android 270 Using a Content Provider 271 Predefined Query String Constants 278 Projections 279 Filtering 280 Sorting 280 Creating Your Own Content Providers 281 Using the Content Provider 289 Summary 294 CHAPTER 9: MESSAGING 297 SMS Messaging 298 Sending SMS Messages Programmatically 298 Sending SMS Messages Using Intent 302 Receiving SMS Messages 302 Caveats and Warnings 318 Sending Email 319 Summary 322 CHAPTER 10: LOCATION-BASED SERVICES 325 Displaying Maps 326 Creating the Project 326 Obtaining the Maps API Key 326 Displaying the Map 327 Displaying the Zoom Control 329 Changing Views 332 Navigating to a Specifi c Location 333 Getting the Location That Was Touched 335 Geocoding and Reverse Geocoding 337 Getting Location Data 340 Monitoring a Location 348 Summary 348 CHAPTER 11: NETWORKING 351 Consuming Web Services Using HTTP 352 Downloading Binary Data 354 Downloading Text Content 361 Accessing Web Services Using the GET Method 364 Consuming JSON Services 370 Summary 377 CHAPTER 12: DEVELOPING ANDROID SERVICES 381 Creating Your Own Services 382 Performing Long-Running Tasks in a Service 386 Performing Repeated Tasks in a Service 391 Executing Asynchronous Tasks on Separate Threads Using IntentService 394 Establishing Communication Between a Service and an Activity 397 Binding Activities to Services 401 Understanding Threading 406 Summary 411 APPENDIX: ANSWERS TO EXERCISES 415 INDEX 421
Show moreIntroduction xvii
Chapter 1: Getting Started with Android Programming 1
What Is Android? 2
Android Versions 2
Features of Android 3
Architecture of Android 4
Android Devices in the Market 4
The Android Market 7
Obtaining the Required Tools 8
Android Studio 8
Android SDK 14
Creating Android Virtual Devices (AVDs) 15
The Android Developer Community 24
Launching Your First Android Application 24
Summary 26
Chapter 2: Using Android Studio for Android Development 29
Exploring the IDE 30
Using Code Completion 38
Debugging Your Application 39
Setting Breakpoints 39
Navigating Paused Code 43
Publishing Your Application 44
Generating a Signed APK 44
Summary 45
Chapter 3: Activities, Fragments, and Intents 47
Understanding Activities 48
Applying Styles and Themes to an Activity 53
Hiding the Activity Title 54
Displaying a Dialog Window 56
Displaying a Progress Dialog 59
Linking Activities Using Intents 61
Returning Results from an Intent 66
Passing Data Using an Intent Object 70
Fragments 75
Adding Fragments Dynamically 81
Life Cycle of a Fragment 84
Interactions Between Fragments 88
Understanding the Intent Object 92
Using Intent Filters 93
Displaying Notifications 94
Summary 98
Chapter 4: Getting to Know the Android User Interface 101
Understanding the Components of a Screen 102
Views and ViewGroups 103
FrameLayout 104
LinearLayout (Horizontal) and LinearLayout (Vertical) 104
TableLayout 114
RelativeLayout 116
FrameLayout 117
ScrollView 121
Adapting to Display Orientation 124
Anchoring Views 125
Managing Changes to Screen Orientation 127
Persisting State Information During Changes in Configuration 131
Detecting Orientation Changes 132
Controlling the Orientation of the Activity 132
Utilizing the Action Bar 133
Adding Action Items to the Action Bar 136
Creating the User Interface Programmatically 142
Listening for UI Notifications 145
Summary 145
Chapter 5: Designing Your User Interface with Views 147
Using Basic Views 148
TextView View 148
Button, ImageButton, EditText, CheckBox, ToggleButton, RadioButton, and RadioGroup Views 149
ProgressBar View 158
AutoCompleteTextView View 164
Using Picker Views 167
TimePicker View 167
DatePicker View 172
Using List Views to Display Long Lists 175
ListView View 175
Using the Spinner View 184
Understanding Specialized Fragments 186
Using a ListFragment 187
Using a DialogFragment 191
Using a PreferenceFragment 194
Summary 199
Chapter 6: Displaying Pictures and Menus with Views 203
Using Image Views to Display Pictures 203
ImageView View 204
ImageSwitcher 206
GridView 211
Using Menus with Views 215
Creating the Helper Methods 215
Options Menu 217
Context Menu 220
Using WebView 225
WebView 225
Summary 228
Chapter 7: Data Persistence 231
Saving and Loading User Preferences 232
Accessing Preferences Using an Activity 232
Programmatically Retrieving and Modifying the Preferences Values 242
Persisting Data to Files 246
Saving to Internal Storage 246
Saving to External Storage (SD Card) 250
Choosing the Best Storage Option 253
Creating and Using Databases 254
Creating the DBAdapter Helper Class 254
Using the Database Programmatically 260
Summary 266
Chapter 8: Content Providers 269
Sharing Data in Android 270
Using a Content Provider 271
Predefined Query String Constants 278
Projections 279
Filtering 280
Sorting 280
Creating Your Own Content Providers 281
Using the Content Provider 289
Summary 294
Chapter 9: Messaging 297
SMS Messaging 298
Sending SMS Messages Programmatically 298
Sending SMS Messages Using Intent 302
Receiving SMS Messages 302
Caveats and Warnings 318
Sending Email 319
Summary 322
Chapter 10: Location-based Services 325
Displaying Maps 326
Creating the Project 326
Obtaining the Maps API Key 326
Displaying the Map 327
Displaying the Zoom Control 329
Changing Views 332
Navigating to a Specific Location 333
Getting the Location That Was Touched 335
Geocoding and Reverse Geocoding 337
Getting Location Data 340
Monitoring a Location 348
Summary 348
Chapter 11: Networking 351
Consuming Web Services Using HTTP 352
Downloading Binary Data 354
Downloading Text Content 361
Accessing Web Services Using the GET Method 364
Consuming JSON Services 370
Summary 377
Chapter 12: Developing Android Services 381
Creating Your Own Services 382
Performing Long-Running Tasks in a Service 386
Performing Repeated Tasks in a Service 391
Executing Asynchronous Tasks on Separate Threads Using IntentService 394
Establishing Communication Between a Service and an Activity 397
Binding Activities to Services 401
Understanding Threading 406
Summary 411
Appendix: Answers to Exercises 415
Index 421
J. F. DiMarzio began developing games in BASIC on the
TRS-80 Color Computer II in 1984. Today he is a seasoned Android
developer with two professional applications and one game on the
Android Marketplace, and an industry track record with major
organizations including the U.S. Department of Defense and the Walt
Disney Company. An accomplished author, he has written 13 books
over the past 14 years.
Visit us at wrox.com where you have access to free code samples,
Programmer to Programmer forums, and discussions on the latest
happenings in the industry from around the world.
![]() |
Ask a Question About this Product More... |
![]() |