The Android Operating System Mobile Form Factors Versions of Android Applications and APK Files Process Architecture The Role of Java Hello, Dalvik What’s In, What’s Out Services User Interface Memory and Storage Operating-System Services Inter-Process Communication Android Development The Android SDK The SDK and AVD Managers Configuring the Emulator Eclipse Resources APK Files Build Process The R Class Assets The Dalvik Debug Monitor Server The Android Debugger (adb) Command Shells The Android Log and LogCat Ant Applications Activities and Fragments Activity Lifecycle The onCreate Method Layouts and Views The findViewById Method Tasks and the “Back Stack” Intents and Results startActivity and Related Methods Custom Application Classes Shared Application State Fragments and Multi-Form Design The Fragments API Fragment Lifecycle Relationship Between Activity and Fragment Possible Cardinalities Communication between Activity and Fragment Fragment Arguments Callback Interfaces Designing for Multiple Form Factors Fragments on the Back Stack Views, Adapters, and Dialogs Styles and Themes and View Orientation Adapters Dialog Fragments Showing and Managing Dialogs Using AlertDialog Working with Text The The Input Methods Input Types: Phone, E-mail, Date, Time … DatePicker and TimePicker Date- and Time-Picking Dialogs Providing Auto-Completion Using the Clipboard Linkification Working with Lists AdapterView and Subclasses Adapter and Subinterfaces ListView and ListAdapter ListFragment Spinner and SpinnerAdapter Handling Item Selection Custom Adapters ExpandableListView and ExpandableListAdapter Working with Tables The and Defining Table Cells Static Table Layouts Dynamic Tables Binding Data Using a Template Row Managing IDs Graphics and Low-Level Events Drawing on a Canvas The Paint Object Handling Size and Orientation Changes Handling Touch Events Working with Drawables Shape Drawables Bitmap Drawables 9-Patch Bitmaps Custom Drawables The Drawing Cache and Working with Bitmaps Menus and the Action Bar Options and Context Menus The Action Bar Menu Resources The MenuInflater Service The

The Menu and MenuItem Classes Handling Menu Selections The Escape from switch/case! Using a Dispatch Map Building Menus Dynamically Local Storage The Android File System Internal Storage File Formats Parsing JSON Storage and the Application Lifecycle External Storage Private Storage vs. Public Media Permissions Checking for Availability Preferences Preferences Resources The PreferencesFragment The PreferencesManager Reading Preferences Database Storage SQLite The SQLiteDatabase Class The SQLiteOpenHelper Class Installing Databases The query Methods Using Cursors Database Updates Networking and Web Services Apache HttpClient Consuming RESTful Web Services Building URLs Parsing JSON Parsing XML Connected Applications Offline Operation and Server Synchronization Asynchronous Tasks The UI Thread Background Tasks Loopers and Handlers Using AsyncTask Using ProgressDialog Error Handling Services The Roles of Services Invoking a Service Do’s and Don’ts Communication with the Application Communication with Activities Sending Notifications Pending Intents Downloaders Polling Web Services Inter-Process Communication Breaking Out Using the Clipboard Linkifying Text Implicit Intents Invoking Built-In Applications and Services Accepting Implicit Intents Passing Data MIME Types Multimedia Playing Sounds Haptic Feedback (Vibrating) Managing Images Storage and Retrieval Invoking the Camera Invoking the Media Recorder Gallery and other Image Views Location Services and Maps Location Services Location Notifications The Google Maps API License Terms and Maps API Keys Map View and Map Activity Classes Configuring a Map Controlling a Map Events Projections Map Overlays Item Overlays Custom Overlays Publishing The App Market Preparing Your App Debug vs. Release Builds Signing an APK File Publishing Your Application Application Metadata Updates and Support