- Nuts and Bolts Introduction
- Setting Up Your System
- Creating An Emulator
- Hello World
- The EditText View
- Buttons And Linear Layouts
- Responding To Button Clicks
- Important Notes
- Debugging With DDMS And Logcat
- Saving Files To Internal Storage
- Reading Files From Internal Storage
- String Resources and Localization
- Creating Launcher Icons
- Running On Your Phone
- Saving Program Data: Preferences
- Toasts: Alerting the User
- Adding a New Activity
- Displaying Images with the ImageView View
- Getting Touch Coordinates
- Alert Dialogs
- The Event-Listener (aka Observer) Pattern
- Creating a Database
- Adding Data to a Database
- Retrieving Data from Databases
- Asynchronous Tasks: Running Stuff in the Background
- Verifying the Passpoints: Getting Return Values From Asynchronous Tasks
- Supporting Different Screen Resolutions
- Intents and Launching Activities
- Nesting ViewGroups
- Option Menus
- Passing Data to Activities
- Sub-Activites
- Taking Photos
- Saving and Displaying Photos
- List Views
- Dynamically Populating Lists
- Formatting List Items: Custom Adapters
- Using Icons in Views
- Styles and Themes
- Selectors
- Relative Layouts
- Browsing the Gallery
- Retrieving an Image from the Gallery
- The Activity Lifecycle and Saving Data
- Pre-Publication Checks
- Taking Screenshots of Your App
- Signing and Exporting Your App
- Publishing Your App
- Using 3rd Party APIs
- Action Bars
- Responding to Action Bar Menu Clicks
- Downloading Text Data from the Internet
- Internet Communication Overview
- A Simple Server (Java Servlet) Program
- Sending Small Amounts of Data to a Server
- URL Escaping
- Introducing JSON with Twitter and The Onion
- Decoding JSON
- Encoding Data as JSON
- Responding to POST Requests in a Servlet
- Posting JSON Data to a Server
- Introducing Fragments
- Using ListFragment to Display Lists
- Formatting Items in ListFragment
- Fragment Communication
- Managing Fragments
- Animation Introduction
- SurfaceView
- Images and Sound: POV Ray and Psycle
- Drawing Images
- Detecting Surface Changes
- The Animation Thread (Game Loop)
- The Game Class
- A Sprite Class
- Animating the Sprite
- Making the Ball Bounce
- Bring Out the GIMP: Autocropping
- Adding the Bats
- Randomising the Ball Position
- Controlling the Player's Bat (Touch Events)
- Simulating Intelligence
- Collision Detection
- Drawing Text
- Game States
- Playing a Sound
- Playing Multiple Sounds
- Adjusting the Volume
- Installing Google Play Services
- Creating and Signing a Map Application
- Getting the Map Demo Running
- Adding Markers to Maps
- Nuts and Bolts Source Code
- Communication Source Code