HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This EPUB will be accessible from your Account page after purchase.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
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.
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