Learning Android Application Programming for the Kindle Fire: A Hands-On Guide to Building Your First Android Application [NOOK Book]


Master Android™ App Development for Amazon’s Bestselling Kindle Fire™—Hands-On, Step-by-Step!

In this book, bestselling Android programming authors Lauren Darcey and Shane Conder teach you every skill and technique you need to write production-quality apps for Amazon Kindle Fire, the world’s hottest Android tablet. You’ll learn the very best way: by building a complete app from start to finish. Every chapter builds on what you’ve already ...
See more details below
Learning Android Application Programming for the Kindle Fire: A Hands-On Guide to Building Your First Android Application

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
BN.com price
(Save 43%)$31.99 List Price


Master Android™ App Development for Amazon’s Bestselling Kindle Fire™—Hands-On, Step-by-Step!

In this book, bestselling Android programming authors Lauren Darcey and Shane Conder teach you every skill and technique you need to write production-quality apps for Amazon Kindle Fire, the world’s hottest Android tablet. You’ll learn the very best way: by building a complete app from start to finish. Every chapter builds on what you’ve already learned, helping you construct, expand, and extend your working app as you move through the entire development lifecycle.

Packed with fully tested, reusable sample code, this book requires absolutely no previous Android or mobile development experience. If you’ve ever written any Java code, you can dive right in and get results fast. Darcey and Conder start with the absolute basics: installing Android development tools, structuring and configuring Kindle Fire apps, and applying crucial design principles associated with high-quality software. Next, building on this strong foundation, you’ll learn how to manage application resources and build application frameworks; integrate user interfaces, logic, and support for networking and web services; test your apps; and publish on the Amazon Appstore.

Coverage includes
  • Establishing an efficient development environment and setting up your first project
  • Mastering Android fundamentals and adapting them to the Kindle Fire
  • Building reusable prototypes that define a framework for production projects
  • Incorporating strings, graphics, styles, templates, and other app and system resources
  • Developing screens, from splash screens and main menus to settings and help
  • Displaying dialogs and collecting user input
  • Controlling app state, saving settings, and launching specific activities
  • Internationalizing Kindle Fire apps to reach wider markets
  • Setting application identity and permissions
  • Preparing your app for publication

Read More Show Less

Product Details

  • ISBN-13: 9780133038866
  • Publisher: Pearson Education
  • Publication date: 7/27/2012
  • Series: Learning
  • Sold by: Barnes & Noble
  • Format: eBook
  • Edition number: 1
  • Pages: 352
  • File size: 22 MB
  • Note: This product may take a few minutes to download.

Meet the Author

Lauren Darcey is responsible for the technical leadership and direction of a small software company specializing in mobile technologies, including Android, Apple iOS, BlackBerry, Palm Pre, BREW, and J2ME and consulting services. With more than two decades of experience in professional software production, Lauren is a recognized authority in application architecture and the development of commercial-grade mobile applications. Lauren received a B.S. in Computer Science from the University of California, Santa Cruz.

Lauren spends her free time traveling the world with her geeky mobile-minded husband and daughter. She is an avid nature photographer whose work has been published in books and newspapers around the world. In South Africa, she dove with 4-meter-long great white sharks and got stuck between a herd of rampaging hippopotami and an irritated bull elephant. She‘s been attacked by monkeys in Japan, gotten stuck in a ravine with two hungry lions in Kenya, gotten thirsty in Egypt, narrowly avoided a coup d‘état in Thailand, geocached her way through the Swiss Alps, drank her way through the beer halls of Germany, slept in the crumbling castles of Europe, and gotten her tongue stuck to an iceberg in Iceland (while being watched by a herd of suspicious wild reindeer).

Shane Conder has extensive development experience and has focused his attention on mobile and embedded development for the past decade. He has designed and developed many commercial applications for Android, Apple iOS, BREW, BlackBerry, J2ME, Palm, and Windows Mobile—some of which have been installed on millions of phones worldwide. Shane has written extensively about the mobile industry and evaluated mobile-development platforms on his tech blogs and is well known within the blogosphere. Shane received a B.S. in Computer Science from the University of California.

A self-admitted gadget freak, Shane always has the latest smartphone, tablet, or other mobile device. He can often be found fiddling with the latest technologies, such as cloud services and mobile platforms, and other exciting, state-of-the-art technologies that activate the creative part of his brain. He is a very hands-on geek dad. He also enjoys traveling the world with his geeky wife, even if she did make him dive with 4-meter-long great white sharks and almost get eaten by a lion in Kenya. He admits that he has to take at least two phones with him when backpacking—even though there is no coverage—and that he snickered and whipped out his Android phone to take a picture when Laurie got her tongue stuck to that iceberg in Iceland, and that he has learned that he should be writing his own bio.

The authors have also published several other Android books, including Android Wireless Application Development, Android Wireless Application Development Volume I: Android Essentials, Android Wireless Application Development Volume 2: Advanced Topics, Sams Teach Yourself Android Application Development, and the mini-book Introducing Android Development with Ice Cream Sandwich . Lauren and Shane have also published numerous articles on mobile-software development for magazines, technical journals, and online publishers of educational content.

You can find dozens of samples of their work in Linux User and Developer, Smart Developer magazine (Linux New Media), developer.com, Network World, Envato (MobileTuts+ and CodeCanyon), and InformIT, among others. They also publish articles of interest to their readers at their own Android website: androidbook.blogspot.com. You can find a full list of the authors’ publications at goo.gl/f0Vlj .

Read More Show Less

Table of Contents

Introduction 1

I: Kindle Fire Fundamentals

1 Getting Started with Kindle Fire 9

Introducing Android 9

Google and the Open Handset Alliance 9

Android Makes Its Entrance 10

Cheap and Easy Development 10

Familiarizing Yourself with Eclipse 12

Creating Android Projects 13

Exploring Your Android Project Files 16

Editing Project Resources 17

Running and Debugging Applications 20

Managing Android Virtual Devices 20

Creating Debug and Run Configurations in Eclipse 22

Launching Android Applications Using the Emulator 22

Debugging Android Applications Using DDMS 25

Launching Android Applications on a Device 25

Summary 28

Exercises 28

2 Mastering the Android Development Tools 29

Using the Android Documentation 29

Debugging Applications with DDMS 31

Managing Tasks 32

Browsing the Android File System 33

Taking Screenshots of the Emulator or Device 34

Viewing Log Information 35

Working with the Android Emulator 36

Providing Input to the Emulator 36

Using Other Android Tools 36

Summary 36

3 Building Kindle Fire Applications 39

Designing an Android Application 39

Designing Application Features 40

Determining Application Activity Requirements 40

Implementing Application Functionality 41

Using the Application Context 42

Retrieving Application Resources 42

Accessing Application Preferences 42

Accessing Other Application Functionality Using Contexts 43

Working with Activities 43

Launching Activities 43

Managing Activity State 44

Shutting Down Activities 45

Working with Intents 46

Passing Information with Intents 47

Using Intents to Launch Other Applications 47

Working with Dialogs 48

Working with Fragments 49

Logging Application Information 50

Summary 51

Exercises 51

4 Managing Application Resources 53

Using Application and System Resources 53

Working with Application Resources 53

Working with System Resources 56

Working with Simple Resource Values 57

Working with Strings 57

Working with Colors 57

Working with Dimensions 58

Working with Drawable Resources 59

Working with Images 59

Working with Other Types of Drawables 60

Working with Layouts 60

Designing Layouts Using the Layout Resource Editor 61

Designing Layouts Using XML 62

Working with Files 64

Working with XML Files 64

Working with Raw Files 65

Working with Other Types of Resources 66

Summary 66

Exercises 66

5 Configuring the Android Manifest File 69

Exploring the Android Manifest File 69

Using the Manifest Tab 70

Using the Application Tab 71

Using the Permissions Tab 71

Using the Instrumentation Tab 72

Using the AndroidManifest.xml Tab 73

Configuring Basic Application Settings 73

Naming Android Packages 74

Versioning an Application 74

Setting the Minimum Android API Version 75

Naming an Application 76

Providing an Icon for an Application 76

Providing an Application Description 76

Setting Debug Information for an Application 77

Setting Other Application Attributes 77

Defining Activities 77

Registering Activities 77

Designating the Launch Activity 78

Managing Application Permissions 79

Managing Other Application Settings 81

Summary 81

Exercises 81

6 Designing an Application Framework 83

Designing an Android Trivia Game 83

Determining High-Level Game Features 83

Determining Activity Requirements 84

Determining Screen-Specific Game Features 85

Implementing an Application Prototype 90

Reviewing the Accompanying Source Code 90

Creating a New Android Project 90

Adding Project Resources 91

Implementing Application Activities 92

Creating Application Preferences 93

Running the Game Prototype 95

Creating a Debug Configuration 95

Launching the Prototype in the Emulator 95

Exploring the Prototype Installation 96

Summary 97

Exercises 97

II: Building an Application Framework

7 Implementing an Animated Splash Screen 101

Designing the Splash Screen 101

Implementing the Splash Screen Layout 102

Adding New Project Resources 103

Updating the Splash Screen Layout 106

Working with Animation 110

Adding Animation Resources 110

Animating Specific Views 112

Setting the Image Animations 113

Handling Animation Lifecycle Events 114

Summary 115

Exercises 116

8 Implementing the Main Menu Screen 117

Designing the Main Menu Screen 117

Determining Main Menu Screen Layout Requirements 118

Designing the Screen Header 118

Designing the GridView Control 118

Finishing Touches for the Main Menu Layout Design 119

Implementing the Main Menu Screen Layout 119

Adding New Project Resources 120

Updating the Main Menu Screen Layout Files 121

Working with the GridView Control 124

Filling a GridView Control 124

Listening for GridView Events 127

Working with Other Menu Types 128

Adding an Options Menu to the Game Screen 129

Summary 131

Exercises 131

9 Developing the Help and Scores Screens 133

Designing the Help Screen 133

Implementing the Help Screen Layout 135

Adding New Project Resources 135

Updating the Help Screen Layout 135

Working with Files 136

Adding Raw Resource Files 136

Accessing Raw File Resources 137

Designing the Scores Screen 138

Determining Scores Screen Layout Requirements 138

Adding the TabHost Control 139

Implementing the Scores Screen Layout 141

Adding New Project Resources 141

Updating the Scores Screen Layout 142

Building a Screen with Tabs 144

Configuring the TabHost Control 144

Adding Tabs to the TabHost Control 145

Setting the Default Tab 145

Working with XML 146

Retrieving XML Resources 146

Parsing XML Files with XmlResourceParser 146

Applying Finishing Touches to the Scores Screen 147

Summary 148

Exercises 148

10 Collecting User Input 149

Designing the Settings Screen 149

Implementing the Settings Screen Layout 151

Adding New Project Resources 151

Updating the Settings Screen Layout 154

Using Common Form Controls 155

Working with EditText Controls 156

Working with Spinner Controls 159

Saving Form Data with SharedPreferences 161

Defining SharedPreferences Entries 161

Saving Settings to SharedPreferences 161

Reading Settings from SharedPreferences 162

Summary 163

11 Using Dialogs to Collect User Input 165

Working with Activity Dialogs 165

Exploring the Different Types of Dialogs 166

Tracing the Lifecycle of a Dialog 167

Using the DatePickerDialog Class 168

Adding a DatePickerDialog to a Class 168

Initializing a DatePickerDialog 170

Launching DatePickerDialog 170

Working with Custom Dialogs 171

Adding a Custom Dialog to the Settings Screen 172

Summary 178

Exercises 178

12 Adding Application Logic 181

Designing the Game Screen 181

Implementing the Game Screen Layout 183

Adding New Project Resources 184

Updating the Game Screen Layout 185

Working with ViewSwitcher Controls 186

Initializing Switcher Controls 187

Implementing Switcher Factory Classes 187

Updating the TextSwitcher Control 189

Updating the ImageSwitcher Control 189

Wiring Up Game Logic 190

Adding Game State Settings to the SharedPreferences 191

Retrieving, Parsing, and Storing Book Data 192

Summary 197

Exercises 197

13 Adding Network Support 199

Designing Network Applications 199

Working with an Application Server 199

Managing Lengthy Network Operations 200

Informing the User of Network Activity 201

Developing Network Applications 201

Enabling Network Testing on the Emulator 202

Testing Network Applications on Kindle Fire 202

Accessing Network Services 202

Planning Have You Read That? Network Support 202

Setting Network Permissions 203

Checking Network Status 203

Using HTTP Networking 203

Indicating Network Activity with Progress Bars 204

Displaying Indeterminate Progress 204

Displaying Determinate Progress 204

Displaying Progress Dialogs 204

Running Tasks Asynchronously 206

Using AsyncTask 206

Using Threads and Handlers 207

Downloading and Displaying Score Data 207

Extending AsyncTask for Score Downloads 207

Starting the Progress Indicator with onPreExecute() 208

Clearing the Progress Indicator with onPostExecute() 209

Handling Cancellation with onCancelled() 209

Handling Processing with doInBackground() 210

Handling Progress Updates with onProgressUpdate() 211

Starting the ScoreDownloaderTask 212

Downloading and Parsing Batches of Books 213

Extending AsyncTask for Book Downloads 213

Starting the Progress Dialog with onPreExecute() 214

Dismissing the Progress Dialog with onPostExecute() 214

Handling the Background Processing 215

Starting the BookListDownloaderTask 215

Determining What Data to Send to the Server 216

Keeping Player Data in Sync 216

Uploading Settings Data to a Remote Server 217

Working with Android Services 218

Implementing UploadTask 220

Uploading Player Data with the HTTP GET Method 220

Uploading Score Data to a Remote Server 223

Downloading Friends’ Score Data 224

Summary 224

Exercises 224

14 Exploring the Amazon Web Services SDK for Android 225

The 10,000-Foot View of AWS 225

Exploring the AWS Offerings 226

Using AWS Database and Storage Services 227

Using AWS Messaging and Notification Services 227

Using AWS Infrastructure and Administrative Services 228

Summary 228

Exercises 228

III: Publishing Your Kindle Fire Application

15 Managing Alternative and Localized Resources 233

Using the Alternative Resource Hierarchy 233

Understanding How Resources Are Resolved 234

Organizing Alternative Resources with Qualifiers 234

Using Alternative Resources Programmatically 236

Organizing Application Resources Efficiently 236

Customizing the Application Experience 237

Updating the Main Screen 237

Updating the Splash Screen 238

Updating the Game Screen 239

Updating the Other Screens 240

Internationalizing Android Applications 240

How Android Localization Works 241

How the Android Operating System Handles Locale 241

How Applications Handle Locales 241

How Kindle Fire Handles Locales 243

Android Internationalization Strategies 243

Forgoing Application Internationalization 244

Limiting Application Internationalization 245

Implementing Full Application Internationalization 245

Using Localization Utilities 246

Determining System Locale 246

Formatting Strings Like Dates and Times 246

Handling Currencies 247

Summary 247

Exercises 247

16 Testing Kindle Fire Applications 249

Testing Best Practices 249

Developing Coding Standards 250

Performing Regular Versioned Builds 250

Using a Defect Tracking System 251

Developing Good Test Plans 251

Maximizing Test Coverage 252

Testing on the Emulator 252

Testing on Target Devices 253

Performing Automated Testing 253

Summary 260

Exercises 260

17 Registering as an Amazon Application Developer 261

Understanding the Release Process 261

Preparing the Release Candidate Build 263

Preparing the Android Manifest File for Release 263

Protecting Your Application from Software Pirates 264

Readying Related Services for Release 265

Testing the Application Release Candidate 265

Signing Up as an Amazon App Developer 266

Packaging and Signing an Application 267

Digitally Signing Applications 267

Exporting and Signing the Package File 267

Testing the Signed Application Package 268

Installing the Signed Application Package 269

Verifying the Signed Application 269

Summary 270

Exercises 270

18 Publishing Applications on the Amazon Appstore 271

Selling on the Amazon Appstore 271

Signing Up for a Developer Account 271

Complying with the Developer License Agreement 272

Uploading an Application 272

Understanding Amazon Appstore Royalties 273

Using Other Developer Account Benefits 273

Generating Reports 274

Summary 274

Exercises 274

IV: Appendixes

A Configuring Your Android Development Environment 279

Configuring Your Development Environment 279

Development Machine Prerequisites 280

Installing the Java Development Kit 281

Installing the Eclipse IDE 281

Installing the Android SDK 281

Installing and Configuring the Android Plug-In for Eclipse (ADT) 282

Downloading Android SDK Components 282

Upgrading the Android SDK and Tools 284

Debugging with the Amazon Kindle Fire 284

Configuring Other Android Devices for Development Purposes 286

B Eclipse IDE Tips and Tricks 289

Organizing Your Eclipse Workspace 289

Writing Code in Java 293

C Supplementary Materials 299

Using the Source Code for This Book 299

Accessing the Android Developer Website 300

Accessing the Publisher‘s Website 300

Accessing the Authors‘ Website 301

Contacting the Authors 303

Leveraging Online Android Resources 304

Index 305

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)