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: http://androidbook.blogspot.com. You can find a full list of the authors’ publications at http://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)