Product Cover Image

Android Programming Unleashed

By B.M. Harwani

Published by Sams

Published Date: Dec 14, 2012


Android Programming Unleashed is the most comprehensive and technically sophisticated guide to best-practice Android development with today's powerful new versions of Android: 4.1 (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 Bintu Harwani begins with basic UI controls, then progresses to more advanced topics, finally covering how to develop feature rich Android applications that can access Internet-based services and store data. He illuminates each important SDK component through complete, self-contained code examples that show developers the most effective ways to build production-ready code. Coverage includes: understanding the modern Android platform from the developer's standpoint… using widgets, containers, resources, selection widgets, dialogs, and fragments… supporting actions and persistence… incorporating menus, ActionBars, content providers, and databases… integrating media and animations… using web, map, and other services… supporting communication via messaging, contacts, and emails… publishing Android apps, and much more.

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

Index     643

Purchase Info

ISBN-10: 0-13-315175-1

ISBN-13: 978-0-13-315175-6

Format: eBook (Watermarked)?

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Includes EPUB, MOBI, and PDF

$39.99 $31.99

Add to Cart