- Step #1: Eclipse.......................................................................................
  - Step #2: Command Line........................................................................- A Simple Form........................................................................................
- Step-By-Step Instructions............................................................................
- Step #1: Generate the Application Skeleton........................................
 - Step #2: Modify the Layout..................................................................
 - Step #3: Compile and Install the Application.....................................
 - Step #4: Run the Application in the Emulator...................................
 - Step #5: Create a Model Class..............................................................
 - Step #6: Save the Form to the Model..................................................
 
 - Extra Credit..................................................................................................
 - Further Reading...........................................................................................
 
 - Step-By-Step Instructions............................................................................
 - A Fancier Form.......................................................................................
- Step-By-Step Instructions...........................................................................
- Step #1: Switch to a TableLayout.........................................................
 - Step #2: Add a RadioGroup..................................................................
 - Step #3: Update the Model..................................................................
 - Step #4: Save the Type to the Model..................................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions...........................................................................
 - Adding a List..........................................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Hold a List of Restaurants.....................................................
 - Step #2: Save Adds to List....................................................................
 - Step #3: Implement toString().............................................................
 - Step #4: Add a ListView Widget..........................................................
 - Step #5: Build and Attach the Adapter...............................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Making Our List Be Fancy.....................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Create a Stub Custom Adapter..............................................
 - Step #2: Design Our Row.....................................................................
 - Step #3: Override getView(): The Simple Way..................................
 - Step #4: Create a RestaurantHolder....................................................
 - Step #5: Recycle Rows via RestaurantHolder....................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Splitting the Tab....................................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Rework the Layout.................................................................
 - Step #2: Wire In the Tabs....................................................................
 - Step #3: Get Control On List Events....................................................
 - Step #4: Update Our Restaurant Form On Clicks..............................
 - Step #5: Switch Tabs On Clicks...........................................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Menus and Messages.............................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Add Notes to the Restaurant.................................................
 - Step #2: Add Notes to the Detail Form..............................................
 - Step #3: Define the Option Menu.......................................................
 - Step #4: Show the Notes as a Toast.....................................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Sitting in the Background.....................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Initialize the Progress Bar.....................................................
 - Step #2: Create the Work Method......................................................
 - Step #3: Fork the Thread from the Menu...........................................
 - Step #4: Manage the Progress Bar.......................................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Life and Times........................................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Lengthen the Background Work...........................................
 - Step #2: Pause in onPause()................................................................
 - Step #3: Resume in onResume().........................................................
 
 - Extra Credit.................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - A Few Good Resources..........................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Review our Current Resources..............................................
 - Step #2: Create a Landscape Layout...................................................
 
 - Extra Credit..................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - The Restaurant Store.............................................................................
- Step-By-Step Instructions..........................................................................
- Step #1: Create a Stub SQLiteOpenHelper.........................................
 - Step #2: Manage our Schema..............................................................
 - Step #3: Remove Extraneous Code from LunchList..........................
 - Step #4: Get Access to the Helper......................................................
 - Step #5: Save a Restaurant to the Database.......................................
 - Step #6: Get the List of Restaurants from the Database...................
 - Step #7: Change our Adapter and Wrapper......................................
 - Step #8: Clean Up Lingering ArrayList References...........................
 - Step #9: Refresh Our List...................................................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions..........................................................................
 - Getting More Active.............................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Create a Stub Activity...........................................................
 - Step #2: Launch the Stub Activity on List Click................................
 - Step #3: Move the Detail Form UI......................................................
 - Step #4: Clean Up the Original UI.....................................................
 - Step #5: Pass the Restaurant _ID........................................................
 - Step #6: Load the Restaurant Into the Form.....................................
 - Step #7: Add an "Add" Menu Option.................................................
 - Step #8: Detail Form Supports Add and Edit....................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - What's Your Preference?......................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Define the Preference XML..................................................
 - Step #2: Create the Preference Activity.............................................
 - Step #3: Connect the Preference Activity to the Option Menu......
 - Step #4: Apply the Sort Order on Startup.........................................
 - Step #5: Listen for Preference Changes.............................................
 - Step #6: Re-Apply the Sort Order on Changes.................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Turn, Turn, Turn..................................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Add a Stub onSaveInstanceState()......................................
 - Step #2: Pour the Form Into the Bundle...........................................
 - Step #3: Repopulate the Form...........................................................
 - Step #4: Fix Up the Landscape Detail Form.....................................
 
 - Extra Credit................................................................................................
 - Further Reading..........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Raising (Something Like) a Tweet.......................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Set Up an Identi.ca Account.................................................
 - Step #2: Create a Stub Application and Activity..............................
 - Step #3: Create a Layout.....................................................................
 - Step #4: Listen for Send Actions........................................................
 - Step #5: Make the Status Post Request.............................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Opening a JAR......................................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Obtain the JTwitter JAR.......................................................
 - Step #2: Switch from HttpClient to JTwitter....................................
 - Step #3: Create Preferences for Account Information.....................
 - Step #4: Use Account Information from Preferences......................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Listening To Your Friends....................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Create a Service Stub............................................................
 - Step #2: Set Up a Background Thread...............................................
 - Step #3: Poll Your Friends..................................................................
 - Step #4: Find New Statuses................................................................
 - Step #5: Set up the Public API............................................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - No, Really Listening To Your Friends.................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Define the Callback...............................................................
 - Step #2: Enable Callbacks in the Service..........................................
 - Step #3: Manage the Service and Register the Account..................
 - Step #4: Display the Timeline............................................................
 
 - Extra Credit...............................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Your Friends Seem Remote.................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Back Up or Branch Your Project.........................................
 - Step #2: Create a Fresh Project.........................................................
 - Step #3: Move the Service to the New Project.................................
 - Step #4: Implement and Copy the AIDL..........................................
 - Step #5: Implement the Client Side..................................................
 - Step #6: Implement the Service Side................................................
 - Step #7: Restore Your Project.............................................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - A Subtle Notification............................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Pick a Word and Icon...........................................................
 - Step #2: Raise the Notification..........................................................
 - Step #3: Watch for the Keyword........................................................
 - Step #4: Clearing the Notification.....................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Posts On Location................................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Get the LocationManager....................................................
 - Step #2: Register for Location Updates............................................
 - Step #3: Add "Insert Location" Menu...............................................
 - Step #4: Insert the Last Known Location.........................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Here a Post, There a Post.....................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Register for a Map API Key..................................................
 - Step #2: Create a Basic MapActivity.................................................
 - Step #3: Launch the Map on Location-Bearing Status Click...........
 - Step #4: Show the Location Via a Pin...............................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Media....................................................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Obtain and Install a Video Clip...........................................
 - Step #2: Create the Stub Helpcast Activity......................................
 - Step #3: Launch the Helpcast from the Menu.................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Browsing Some Posts...........................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Add Auto-Linking.................................................................
 - Step #2: Draft and Package the Help HTML....................................
 - Step #3: Create a Help Activity..........................................................
 - Step #4: Splice In the Help Activity..................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - High-Priced Help.................................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Enable Javascript...................................................................
 - Step #2: Create the Java Object to Inject..........................................
 - Step #3: Inject the Java Object..........................................................
 - Step #4: Leverage the Java Object from Javascript..........................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Now Your Friends Seem Animated.....................................................
- Step-By-Step Instructions........................................................................
- Step #1: Set Up the Option Menu.....................................................
 - Step #2: Show and Hide the Status Entry Widgets.........................
 - Step #3: Fading In and Out...............................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Messages From The Great Beyond......................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Broadcast the Intent.............................................................
 - Step #2: Catch and Use the Intent....................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Contacting Our Friends.......................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Fake the Contact Data..........................................................
 - Step #2: Design the Highlight...........................................................
 - Step #3: Find and Highlight Matching Contacts..............................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Android Would Like Your Attention..................................................
- Step-By-Step Instructions........................................................................
- Step #1: Track the Battery State........................................................
 - Step #2: Use the Battery State...........................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Now, Your Friends Are Alarmed.........................................................
- Step-By-Step Instructions........................................................................
- Step #1: Import a Reusable Component...........................................
 - Step #2: Create the Alarm BroadcastReceiver.................................
 - Step #3: Doing the Work....................................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Searching For Food..............................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Have the List Conduct the Search......................................
 - Step #2: Integrate the Search in the Application.............................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Look Inside Yourself............................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Create a Stub Project............................................................
 - Step #2: Create a Layout....................................................................
 - Step #3: Find the Correct Contact Uri..............................................
 - Step #4: Attach the Button to the Contacts.....................................
 - Step #5: Populate the List..................................................................
 
 - Extra Credit................................................................................................
 - Further Reading.........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - A Restaurant In Your Own Home........................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Find An App Widget Background and Icon........................
 - Step #2: Design the App Widget Layout...........................................
 - Step #3: Add an (Empty) AppWidgetProvider.................................
 - Step #4: Add the Widget Metadata...................................................
 - Step #5: Update the Manifest.............................................................
 - Step #6: Show a Random Restaurant................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - More Home Cooking............................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Find a Button Graphic..........................................................
 - Step #2: Add the Button to the Layout.............................................
 - Step #3: Migrate Update Logic to an IntentService.........................
 - Step #4: Get Control on Button Clicks.............................................
 - Step #5: Get Control on Name Clicks................................................
 
 - Extra Credit................................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Take a Monkey to Lunch......................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Prep LunchList......................................................................
 - Step #2: Run the Monkey...................................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Asking Permission to Place a Call.......................................................
- Step-By-Step Instructions........................................................................
- Step #1: Add a Phone Number to the Database Schema.................
 - Step #2: Intelligently Handle Database Updates.............................
 - Step #3: Add Phone Number Support to the Rest of the Helper...
 - Step #4: Collect the Phone Number on the Detail Form................
 - Step #5: Ask for Permission to Make Calls.......................................
 - Step #6: Dial the Number..................................................................
 - Step #7: Make the Call.......................................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Photographic Memory........................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Adjust the Manifest..............................................................
 - Step #2: Create the Photographer Layout.........................................
 - Step #3: Create the Photographer Class...........................................
 - Step #4: Tie In the Photographer Class............................................
 
 - Extra Credit................................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Sensing a Disturbance.........................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Implement a Shaker.............................................................
 - Step #2: Hook Into the Shaker..........................................................
 - Step #3: Make a Random Selection on a Shake................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Getting the Word Out..........................................................................
- Step-By-Step Instructions........................................................................
- Step #1: Add a "Send SMS" Option Menu........................................
 - Step #2: Find Contacts' Mobile Numbers.........................................
 - Step #3: Pick a Person........................................................................
 - Step #4: Send the Message................................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions........................................................................
 - Seeking the Proper Level.....................................................................
- Step-By-Step Instructions.........................................................................
- Step #1: Define an Interface for Mobile Numbers............................
 - Step #2: Implement the Interface: the New Way.............................
 - Step #3: Implement the Interface: the Old Way..............................
 - Step #4: Choose and Use the Bridge.................................................
 
 - Extra Credit...............................................................................................
 - Further Reading........................................................................................
 
 - Step-By-Step Instructions.........................................................................
 - Appendix A: How To Get Started.........................................................
- Java
- Step #1: Install the JDK.......................................................................
 - Step #2: Learn Java.............................................................................
 
 - Install the Android SDK...........................................................................
- Step #1: Install the Base Tools...........................................................
 - Step #2: Install the SDKs and Add-Ons............................................
 
 - Install the ADT for Eclipse.......................................................................
 - Install Apache Ant....................................................................................
 - Set Up the Emulator.................................................................................
 - Set Up the Device.....................................................................................
- Step #1: Windows...............................................................................
 - Step #2: OS X and Linux....................................................................
 
 
 - Java
 - Appendix B: Coping with Eclipse........................................................
- How to Import a Non-Eclipse Project.....................................................
 - How to Get To DDMS..............................................................................
 - How to Create an Emulator.....................................................................
 - How to Run a Project...............................................................................
 - How Not to Run Your Project.................................................................
 - How to Get Past Eclipse...........................................................................