Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
“A must read for all developers that want to begin serious Android development.”
—Justin Anderson, Freelance Android Developer
“From start to finish, this book contains a variety of great tips and insight into the most important attributes of Android design. This book will definitely be required reading for any of our future Android engineers.”
—Cameron Banga, Cofounder, 9magnets, LLC
There’s a downside to Android’s amazing openness and versatility: it’s easy for developers to write code that’s inefficient, unreliable, insecure, or hard to maintain. In Android Development Patterns, enterprise Android developer Phil Dutson helps you leverage Android 5.0+’s amazing power without falling victim to those pitfalls. Dutson presents today’s most comprehensive set of patterns and procedures for building optimized, robust apps with Android 5.0+.
First, Dutson guides you through establishing a highly efficient development environment and workflow, and testing your app to ensure that your code works just as you expect. Then, he walks through the modern best practices for structuring apps, using widgets and components, and working with views.
You learn how to build apps that are easy to manage and update, deliver accurate and up-to-date information without wasting precious battery power, and take advantage of new hardware, such as Android Wear and Android TV. Dutson concludes by presenting powerful strategies for optimizing your apps and packaging them for distribution.
Coverage includes
informit.com/aw | https://github.com/dutsonpa/adp-files
Preface xiv
1 Development Tools 1
Android Studio 1
Installing Android Studio 2
Using Android Studio 4
Starting a New Project 6
Standalone SDK Tools 9
Android Device Emulation 10
Android Virtual Device 11
GenyMotion 12
Xamarin Android Player 13
Version-Control Systems 14
Subversion 14
Git 14
Mercurial 15
Summary 15
2 Testing and Debugging 17
Unit Testing 17
Integration Testing 20
Debugging 25
Profiling 25
Tracing 27
Messaging 29
Summary 32
3 Application Structure 33
Manifests 34
Java 36
Res (Resources) 37
Drawable 37
Layout 39
Menu 39
Values 40
Other Resources 41
Gradle 41
Summary 42
4 Components 45
Intents 45
Intent Filters 46
Broadcast Receivers 47
Activities 48
Creating an Activity 48
Activity Lifecycle 49
Fragments 52
Creating a Fragment 52
Communicating with Fragments 55
Loaders 56
Summary 58
5 Views 59
The View Class 59
The AnalogClock Subclass 60
The ImageView Subclass 60
The KeyboardView Subclass 60
The MediaRouteButton Subclass 62
The ProgressBar Subclass 62
The Space Subclass 64
The SurfaceView Subclass 64
The TextView Subclass 65
The TextureView Subclass 65
The ViewGroup Subclass 66
The ViewStub Subclass 68
Creating a Custom View 68
Summary 70
6 Layout 71
Layout Basics 71
Layout Measurements 72
Layout Coordinates 73
Layout Containers 74
Linear Layout 74
Relative Layout 76
Table Layout 79
Frame Layout 80
WebView 82
Summary 83
7 App Widgets 85
App Widget Layouts 86
The AppWidgetProviderInfo Object 88
App Widget Sizing 89
Update Frequency 90
Preview Image 90
Widget Category 92
Widget Category Layout 92
Resizable Mode 93
Sample AppWidgetProviderInfo Object 93
The AppWidgetProvider Class 94
Application Manifest Entries 96
Summary 97
8 Application Design: Using MVC 99
Model 100
View 101
Controller 102
Working Asynchronously 104
AsyncTask 105
Summary 106
9 Drawing and Animation 107
Graphics 107
Bitmaps 107
NinePatch 109
Drawables 111
OpenGL ES 114
Animation 117
View Animation 117
Property Animation 118
Drawable Animation 122
Transition Framework 123
Summary 125
10 Networking 127
Accessing the Internet 127
Network Detection 127
Using an HTTP Client 129
Parsing XML 131
Handling Network Operations Asynchronously 133
Volley 135
Summary 138
11 Working with Location Data 139
Permissions 139
Google Play Services Locations API 148
Summary 153
12 Multimedia 155
Working with Audio 155
Audio Playback 156
Audio Recording 159
Working with Video 161
Video Playback 162
Summary 165
13 Optional Hardware APIs 167
Bluetooth 167
Enabling Bluetooth 168
Discovering Devices with Bluetooth 169
Connecting via Bluetooth Classic 171
Communicating with BLE 173
Near Field Communication 176
ACTION_NDEF_DISCOVERED 177
ACTION_TECH_DISCOVERED 178
ACTION_TAG_DISCOVERED 179
Device Sensors 181
Detecting the Available Sensors 182
Reading Sensor Data 183
Summary 185
14 Managing Account Data 187
Getting Accounts 187
Android Backup Service 188
Using Google Drive Android API 191
Using Google Play Games Services 195
Working with Saved Games 196
Summary 199
15 Google Play Services 201
Adding Google Play Services 201
Using Google API Client 203
Google Fit 207
Enable API and Authentication 207
App Configuration and Connection 208
Nearby Messages API 209
Enabling Nearby Messages 209
Sending and Receiving Messages 210
Summary 214
16 Android Wear 217
Android Wear Basics 217
Screen Considerations 218
Debugging 221
Connecting to an Emulator 221
Connecting to a Wear Device 222
Communicating with Android Wear 224
Notifications 224
Sending Data 226
Summary 228
17 Google Analytics 229
Adding Google Analytics 229
Google Analytics Basics 232
Events 233
Goals 234
Ecommerce 235
Custom Timings 235
Custom Dimensions 236
Custom Metrics 236
Summary 237
18 Optimization 239
Application Optimization 239
Application First 239
Application Logging 241
Application Configuration 242
Memory Management 243
Garbage Collection Monitoring 245
Checking Memory Usage 245
Performance 247
Working with Objects 247
Static Methods and Variables 248
Enhanced for Loops 248
float, double, and int 249
Optimized Data Containers 249
Summary 249
19 Android TV 251
The Big Picture 251
Ten-Foot View 252
TV Capabilities 254
Text, Color, and Bitmaps 255
Building an App 258
Emulation and Testing 261
Summary 263
20 Application Deployment 265
Preparing for Deployment 265
Production Checklist 266
Certificate Keys 266
Contact Email 266
App Website 267
External Services or Servers 267
Application Icon 267
Licensing 268
Appropriate Package Name 268
Verifying Permissions and Requirements 269
Log and Debug Removal 270
Removal of Excess Unused Assets 270
Preparing for Google Play 270
Application Screenshots 271
Promo Video 271
High-Res Icon 271
Feature Graphic 272
Promo Graphic 272
Banner for Android TV 272
Getting Paid 272
APK Generation 273
Summary 274
Index 275