Beginning Android Programming: Develop and Design

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Beginning Android

Programming

DEVELOP AND DESIGN

Kevin Grant and


Chris Haseman
PEACHPIT PRESS
WWW.PEACHPIT.COM
C217(176
Introduction xii

Welcome to Android xiv

CHAPTER 1 GETTING STARTED WITH ANDROID 2


Exploring Android Development Environments 4

Eclipse (ADT Bundle) 4

Android Studio 4

Getting Everything Installed 5

Installing Eclipse (ADT Bundle) for OS X, Linux, Windows 5

Installing Android Studio 6


Updating the Android SDK 7

Configuring Devices 9

Virtual Device Emulator 9


Working with a Physical Device 12

Creating a New Android Project 14

Running Your New Project 18

Eclipse 18

Android Studio 19

Troubleshooting the Emulator 21

Wrapping Up 21

CHAPTER 2 EXPLORING THE APPLICATION BASICS 22


The Files 24

The Manifest 24

The Activity Class 25

Watching the Activity in Action 25

Implementing Your Own Activity 26

The Life and Times of an Activity 32

Bonus RoundData Retention Methods 35

The Intent Class 37

Manifest Registration 37

Adding an Intent 38

Listening for Intents at Runtime 39

Moving Your Own Data 43

The Application Class 45

CONTENTS
The Default Application Declaration 45

Customizing Your Own Application 45

Accessing the Application 46

Wrapping Up 47

CHAPTER 3 CREATING USER INTERFACES 48


The View Class 50

Creating a View 50

Altering the Ul at Runtime 53

Handling a Few Common Tasks 55

Creating Custom Views 58

Resource Management 62

Resource Folder Overview 62

Values Folder 64

Layout Folders 64

Drawable Folders 65

Layout Management 66

The ViewGroup 66

The AbsoluteLayout 68

The LinearLayout 70

The RelativeLayout 76

Wrapping Up 81

CHAPTER 4 ACQUIRING DATA 82


The Main Thread 84

You There, Fetch Me That Data! 84

Watchdogs 85

What Not to Do 86

When Am I on the Main Thread? 86

Getting Off the Main Thread 87

Getting Back to Main Land 88

There Must Be a Better Way! 88

The AsyncTask 89

How to Make It Work for You 91

A Few Important Caveats 93

The IntentService 94

Declaring a Service 94

Fetching Images 95

CONTENTS vii
Checking Your Work 99

Wrapping Up 100

CHAPTER 5 ADAPTERS, LIST VIEWS, AND LISTS 102


Two Pieces to Each List 104

ListView 104

Adapter 104

A Main Menu 104

Creating the Menu Data 104

Creating a ListActivity 105

Defining a Layout for Your ListActivity 106

Making a Menu List Item 107

Creating and Populating the Array Adapter 108

Reacting to Click Events 108

Complex List Views 110

The 1ooo-foot View 110

Creating the Main Layout View 110

Creating the ListActivity ill

Getting Redd it Data 112

Making a Custom Adapter 114

Building the ListViews 116

How Do These Objects Interact? 119

More Than One List Item Type 120

Wrapping Up 121

CHAPTER 6 BACKGROUND SERVICES 122


What Is a Service? 124

The Service Lifecycle 124

Keeping Your Service Running 125

Shut It Down! 125

Communication 125

Intent-Based Communication 126

Binder Service Communication 133

Wrapping Up 138

CHAPTER 7 MANY DEVICES, ONE APPLICATION 140


Uncovering the Secrets of the res/ Folder 142

Layout Folders 142

What Can You Do Beyond Landscape? 148

viii CONTENTS
The Full Screen Define 148

Limiting Access to Your App to Devices That Work 149

The <uses> Tag 150

SDK Version Number 150

Handling Code in Older Android Versions 151

SharedPreferences and Apply 151

Version Check Your Troubles Away 152

Always Keep an Eye on API Levels 153

Wrapping Up 153

CHAPTER 8 MOVIES AND MUSIC 154


Movies 156

Adding a VideoView 156

Setting Up for the VideoView 157

Getting Media to Play 157

Loading and Playing Media 16o

Cleanup 161

The Rest, as They Say, Is Up to You 161

Music 162

MediaPlayer and State 162

Playing a Sound 162

Playing a Sound Effect 163

Cleanup 163

It Really Is That Simple 164

Longer-Running Music Playback 164

Binding to the Music Service 165

Finding the Most Recent Track 165

Listening for Intents 167

Playing the Audio in the Service 169

Cleanup 174

Interruptions 174

Wrapping Up 175

CHAPTER 9 DETERMINING LOCATIONS AND USING MAPS 176


Location Basics 178

Mother May I? 178

Be Careful What You Ask For 178

Finding a Good Supplier 178

CONTENTS ix
Getting the Goods 179

The Sneaky Shortcut 180

That's It! 180

Show Me the Map! 181

Before We Get Started 181

Getting the Library 181

Adding to the Manifest 183

Adjusting the Activity 184

Creating a MapFragment 184

Google Maps API Key 185

Run, Baby, Run 187

Wrapping Up 189

CHAPTER 10 TABLETS, FRAGMENTS, AND ACTION BARS, OH MY 190


Fragments 192

The Lifecycle of the Fragment 192

Creating a Fragment 193

Showing a Fragment 194

Providing Backward Compatibility 198

The Action Bar 200

Setting Up the AppCompat library 200

Showing the Action Bar 204

Adding Elements to the Action Bar 204

Wrapping Up 209

CHAPTER 11 ADVANCED NAVIGATION 210


The View Pager 212

Creating the Project 212

onCreate 213

The XML 215

FragmentPagerAdapter 215

DummyFragment 217

The Navigation Drawer 217

onCreate 218

The XML 221

Swapping Fragments 222

Wrapping Up 223

X CONTENTS
CHAPTER 12 PUBLISHING YOUR APPLICATION 224
Packaging and Versioning 226

Preventing Debugging 226

Naming the Package 226

Versioning 227

Setting a Minimum SDK Value 228

Packaging and Signing 228

Exporting a Signed Build 228

Submitting Your Build 232

Watch Your Crash Reports and Fix Them 232

Update Frequently 232

Wrapping Up 233

CHAPTER 13 GRADLE, THE NEW BUILD SYSTEM 234


Anatomy of a Gradle File 236

Buildscript and Plug-Ins 237

The Android Stuff 238

Build Types 239

Adding Values to BuildConfig . 241

Product Flavors 242

Build Variants 243

Signing and Building 244

Wrapping Up 245

Index 246

CONTENTS XI

You might also like