A hands-on introduction to the latest release of the Android OS and the easiest Android tools for developers
As the dominant mobile platform today, the Android OS is a powerful and flexible platform for mobile device. The new Android 7 release (New York Cheesecake) boasts significant new features and enhancements for both smartphone and tablet applications. This step-by-step resource takes a hands-on approach to teaching you how to create Android applications for the latest OS and the newest devices, including both smartphones and tablets.
Shows you how to install, get started with, and use Android Studio 2 - the simplest Android developer tool ever for beginnersAddresses how to display notifications, create rich user interfaces, and use activities and intentsReviews mastering views and menus and managing dataDiscusses working with SMSLooks at packaging and publishing applications to the Android market
Beginning Android Programming with Android Studio starts with the basics and goes on to provide you with everything you need to know to begin to successfully develop your own Android applications.
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 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