Android Programming Unleashed: Barnes & Noble Special Edition

Android Programming Unleashed: Barnes & Noble Special Edition

by B.M. Harwani

NOOK Book(eBook)

$23.49 $39.99 Save 41% Current price is $23.49, Original price is $39.99. You Save 41%.
View All Available Formats & Editions

Available on Compatible NOOK Devices and the free NOOK Apps.
WANT A NOOK?  Explore Now


“An excellent in-depth guide, useful to both newbies and experienced Android developers.”
—Romin Irani, Director, Mind Storm Software

Android Programming Unleashed is the most comprehensive guide to professional-quality mobile and tablet development with Android 4.1.2 (Jelly Bean) and 4.0.3 (Ice Cream Sandwich). Offering the exceptional breadth and depth developers have come to expect from the Unleashed series, it covers everything programmers need to know to develop robust, high-performance Android apps that deliver a superior user experience.

Leading developer trainer B.M. Harwani illuminates each important Android 4.1.2 SDK component through complete, self-contained code examples. He systematically introduces Android’s robust collection.

This exclusive Barnes & Noble Edition includes valuable bonus coverage of cross-platform mobile development with PhoneGap, how to integrate voice support, and how to write apps for B&N’s popular NOOK® Tablet!

Android Programming Unleashed is a wonderful book for developers who want a very educated dive into the Android platform without getting lost in a sea of technical theory.”
—Phil Dutson, Web/Mobile Developer and Author of Sam’s Teach Yourself jQuery Mobile in 24 Hours


  • Include Dimension, Color, Styles, and Theme resources in your apps
  • Implement scrolling through ScrollView to play audio and video in your apps
  • Display important messages to users through dialogs and select date and time through DatePicker and TimePicker dialog boxes
  • Use Fragments, ListFragment, DialogFragment, and PreferenceFragment
  • Add checkbox or radio buttons, shortcut keys, ActionBars, and other UI elements
  • Integrate database data with SQLite and the SQLiteOpenHelper
  • Use Canvas and Paints for 2D drawings, applying frame-by-frame and tweening animation and using Interpolators

  • Set up your B&N NOOK® Tablet development environment, including the NOOK SDK Add-on, AVD, and Emulator
  • Use PhoneGap to develop cross-platform apps for Android, iPhone, BlackBerry, Nokia, and Windows Phone
  • Integrate speech synthesis and voice recognition capabilities

Product Details

ISBN-13: 9780133260960
Publisher: Sams
Publication date: 01/04/2013
Series: Unleashed Series
Sold by: Barnes & Noble
Format: NOOK Book
Pages: 741
File size: 113 MB
Note: This product may take a few minutes to download.

About the Author

B.M. Harwani is founder and owner of Microchip Computer Education (MCE), based in Ajmer, India, that provides computer education in all programming and web developing platforms. He graduated with a BE in computer engineering from the University of Pune, and also has a C Level (master’s diploma in computer technology) from DOEACC, Government of India. Being involved in the teaching field for more than 18 years, he has developed the art of explaining even the most complicated topics in a straightforward and easily understandable fashion. To know more, visit his blog

Table of Contents

Introduction 1

Key Topics That This Book Covers 1

Key Benefits That This Book Provides 2

How This Book Is Organized 2

Code Examples for This Book 5

I: Fundamentals of Android Development

1 Introduction to Android 9

The Android 4.1 Jelly Bean SDK 9

Understanding the Android Software Stack 11

Installing the Android SDK 12

Adding Platforms and Other Components 16

Installing Eclipse 20

Installing the Android Development Tools (ADT) Plug-in 22

Making the ADT Plug-in Functional 24

Creating Android Virtual Devices 24

Creating the First Android Project 27

Laying Out the Application 31

Defining Action Code Through Java 34

Running the Application 36

Using the TextView Control 39

Assigning the Text Directly in the Layout File 39

Assigning Text Through the Activity File 40

Applying Dimensions to Controls 42

Aligning Content with the Gravity Attribute 43

Commonly Used Attributes 43

Using the Android Emulator 47

Limitations of the Android Emulator 47

The Android Debug Bridge (ADB) 48

Launching Android Applications on a Handset 50

Summary 51

2 Basic Widgets 53

Understanding the Role of Android Application Components 53

Understanding the Utility of Android API 55

Overview of the Android Project Files 57

Understanding Activities 59

Understanding the Android Activity Life Cycle 60

Role of the Android Manifest File 61

Using the Manifest Editor 64

Creating the User Interface 64

Commonly Used Layouts and Controls 66

Event Handling 67

Creating an Anonymous Inner Class 68

Activity Implementing the OnClickListener Interface 71

Declaring the Event Handler in the XML Control Definition 72

Displaying Messages Through Toast 75

Creating and Starting an Activity 76

Describing Operations Through Intent 77

Method Used to Start an Activity 77

Creating Your Own Layout File 78

Creating a New Activity 79

Registering the New Activity 80

Starting the Activity 81

Using the EditText Control 82

Attributes Used to Configure the EditText Control 82

Adding an Event Listener to the EditText Control 84

Choosing Options with CheckBox 87

Choosing Mutually Exclusive Items Using RadioButtons 91

Summary 98

II: Building Blocks for Android Application Design

3 Laying Out Controls in Containers 101

Introduction to Layouts 101

LinearLayout 102

Applying the orientation Attribute 102

Applying the height and width Attributes 103

Applying the padding Attribute 103

Applying the weight Attribute 106

Applying the Gravity Attribute 108

Using the android:layout_gravity Attribute 109

RelativeLayout 111

Layout Control Attributes 113

AbsoluteLayout 121

Using ImageView 124

FrameLayout 125

TableLayout 129

Operations Applicable to TableLayout 129

GridLayout Layout 133

Specifying Row and Column Position 134

Spanning Rows and Columns 134

Inserting Spaces in the GridLayout 134

Adapting to Screen Orientation 138

Anchoring Controls 138

Defining Layout for Each Mode 140

Summary 145

4 Utilizing Resources and Media 147

Resources 147

Types of Resources 148

Creating Values Resources 150

Dimension Resources 153

Color Resources 156

Styles and Themes 159

Applying Themes 162

Arrays 165

Using Drawable Resources 170

Switching States with Toggle Buttons 174

Creating an Image Switcher Application 179

Scrolling Through ScrollView 183

Use of the android:fillViewport Attribute 185

Playing Audio 186

Adding Audio to the Application 187

Playing Video 195

Loading Video onto an SD Card 195

Displaying Progress with ProgressBar 199

Using Assets 204

Summary 207

5 Using Selection Widgets and Debugging 209

Using ListView 209

Creating a ListView with an Activity Base Class 211

Creating ListView by Extending ListActivity 217

Using the Spinner Control 220

Populating a Spinner Through Resources 220

Populating a Spinner Through ArrayAdapter 223

AutoCompleteTextView 225

Using the GridView Control 227

GridView Attributes 228

Displaying Images in GridView 231

Creating an Image Gallery Using the ViewPager Control 235

Using the Debugging Tool: Dalvik Debug Monitor Service (DDMS) 239

Debugging Applications 245

Placing Breakpoints in an Application 245

Using the Debug Perspective 247

Debug Pane 248

Expressions Pane 249

Breakpoints Pane 250

Variables Pane 254

Adding Logging Support to Android Applications 255

Summary 256

6 Displaying and Fetching Information Using Dialogs and Fragments 259

What Are Dialogs? 259

AlertDialog 261

Methods of the AlertDialog.Builder Subclass 261

Getting Input via the Dialog Box 264

DatePickerDialog 267

TimePickerDialog 271

Selecting the Date and Time in One Application 275

Fragments 282

The Structure of a Fragment 282

The Life Cycle of a Fragment 282

Creating Fragments with Java Code 294

FragmentManager 294

Communicating Between Fragments 296

Navigating to Previous Fragments 296

Retrieving Content Passed Through Bundle 297

Saving and Restoring the State of Fragments 297

Creating Special Fragments 301

Creating a ListFragment 301

Using a DialogFragment 305

Using PreferenceFragment 311

Summary 319

III: Building Menus and Storing Data

7 Creating Interactive Menus and ActionBars 323

Menus and Their Types 323

Creating Menus Through XML 324

Creating an Options Menu 325

Adding Submenus 332

Creating a Context Menu 336

Creating Menus Through Coding 345

Defining Options Menus 345

Creating Submenus 346

Trying It Out 349

Applying a Context Menu to a ListView 354

Using the ActionBar 358

Enabling the ActionBar 360

Using an Application’s Icon for Navigation 361

Displaying Action Items 362

Replacing a Menu with the ActionBar 370

Creating a Tabbed ActionBar 377

Creating a Drop-Down List ActionBar 380

Summary 384

8 Using Databases 385

Using the SQLiteOpenHelper Class 385

Building an SQLite Project 386

Fetching the Desired Rows from Tables 391

Using Cursors 392

Accessing Databases with the ADB 394

Accessing the Database Through Menus 398

Creating a Data Entry Form 401

Displaying Table Rows Via ListView 410

Summary 417

IV: Advanced Android Programming: Internet, Entertainment, and Services

9 Implementing Drawing and Animation 421

Drawing on the Screen 421

Using Canvas and Paint 421

Using Gradients 436

Animations 445

Understanding Frame-by-Frame Animation 446

Understanding Tweening Animation 453

Applying Interpolators 471

Summary 472

10 Displaying Web Pages and Maps 473

Displaying Web Pages 473

Enabling JavaScript 477

Handling Page Navigation 477

Adding Permission for Internet Access 478

Using the WebViewClient Class 480

Using Google Maps 483

Obtaining a Google Maps API Key 483

Installing the Google API 484

AVDs for Map-Based Applications 485

Creating a Google Maps-Based Application 486

Using Location-Based Services 490

Supplying Latitude and Longitude Values Through DDMS 494

Sending GPS Locations Manually 495

Passing Locations in GPX/KML Format 496

Displaying Map Locations 496

Printing the GPS Location Address 502

Displaying Map Markers 507

Using ItemizedOverlay 511

Summary 516

11 Communicating with SMS and Emails 517

Understanding Broadcast Receivers 517

Broadcasting an Intent 518

Receiving the Broadcast Intent 519

Using the Notification System 523

Notification via the Status Bar 523

Sending SMS Messages with Java Code 531

Getting Permission to Send SMS Messages 534

Writing Java Code 534

Receiving SMS Messages 541

Sending Email 546

Working with the Telephony Manager 553

Making the Outgoing Call 553

Listening for Phone State Changes 554

Summary 558

12 Creating and Using Content Providers 559

What Is a Content Provider 559

Understanding the Android Content URI 560

Using Content Providers 561

Creating a Custom Content Provider 566

Defining a Content Provider 566

Defining a Database 568

Defining the Content URI 569

Defining MIME Types 570

Implementing the getType, query, insert, update, and delete Methods 571

Registering Content Providers 587

Summary 589

13 Creating and Consuming Services 591

Moving Tasks to Background Threads 591

Using the Handler Class 592

Using the AsyncTask Class 594

Accessing Data from the Internet 598

Consuming SOAP Services 602

Creating a Service 607

Interacting with the Service 611

Creating a Bound Service 614

Setting Up Alarms 619

Setting Repeating Alarms 620

Setting Up the Time for the Alarm 620

Using Sensors 626

Summary 631

14 Publishing Android Applications 633

Setting Versioning Information of an Application 633

Generating a Certificate, Digitally Signing the Android Applications, and Generating the APK 636

Signing Applications Using the Export Android Application Wizard 637

Distributing Applications with Google Play 638

Getting Started with Google Play 639

Localizing Android Applications 641

Monetizing Our Applications 642

Summary 642

15 Developing Cross-Platform Apps Using PhoneGap 643

Introduction to PhoneGap 643

Knowing the Features That Various Mobile Platforms Support 644

Overview of PhoneGap Features 644

Setting Up an Environment on the Android 645

Creating and Configuring the Android Project in Eclipse 646

Updating the Activity Class 648

Configuring the Project Metadata 648

Ensuring PhoneGap Is Loaded 650

Creating User Interaction 651

Implementing Debugging Capabilities 652

Using Geolocation 654

Using Contacts 659

Using the Storage API 663

openDatabase 663

transaction 664

executeSql 664

SQLResultSetList 665

SQLError 665

Storing and Fetching Information Using the Storage API 665

Configuring for the BlackBerry 670

Using PhoneGap Build 676

Creating Cross-Platform Files 676

Summary 678

A Integrating Voice 679

Using Text-To-Speech Services 679

Creating an Application 682

Using Speech Recognition Services 685

Supplying Optional Extras 689

B A Quick Guide to Knowing and Using the Features of the NOOK 691

Exploring the NOOK Tablet 691

NOOK HD Launched 693

Home Screen 694

Quick Nav Bar 694

Gestures Used to Control the NOOK Tablet 695

Tasks that Can Be Performed with the NOOK Tablet 696

Browsing the Web 696

Reading Books 696

Reading PDFs 697

Borrowing Books 697

Installing the NOOK SDK Add-on 697

Creating an Android Virtual Device (AVD) 698

Launching the Emulator 699

Creating an Application 701

Index 707

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews