| |
| |
Introduction | |
| |
| |
| |
Getting Started With Android Programming | |
| |
| |
What Is Android? | |
| |
| |
Android Versions | |
| |
| |
Features of Android | |
| |
| |
Architecture of Android | |
| |
| |
Android Devices in the Market | |
| |
| |
The Android Market | |
| |
| |
The Android Developer Community | |
| |
| |
Obtaining the Required Tools | |
| |
| |
Android SDK | |
| |
| |
Installing the Android SDK Tools | |
| |
| |
Confi guring the Android SDK Manager | |
| |
| |
Eclipse | |
| |
| |
Android Development Tools (ADT) | |
| |
| |
Creating Android Virtual Devices (AVDs) | |
| |
| |
Creating Your First Android Application | |
| |
| |
Anatomy of an Android Application | |
| |
| |
Summary | |
| |
| |
| |
Activities, Fragments, And Intents | |
| |
| |
Understanding Activities | |
| |
| |
Applying Styles and Themes to an Activity | |
| |
| |
Hiding the Activity Title | |
| |
| |
Displaying a Dialog Window | |
| |
| |
Displaying a Progress Dialog | |
| |
| |
Displaying a More Sophisticated Progress Dialog | |
| |
| |
Linking Activities Using Intents | |
| |
| |
Resolving Intent Filter Collision | |
| |
| |
Returning Results from an Intent | |
| |
| |
Passing Data Using an Intent Object | |
| |
| |
Fragments | |
| |
| |
Adding Fragments Dynamically | |
| |
| |
Life Cycle of a Fragment | |
| |
| |
Interactions between Fragments | |
| |
| |
Calling Built-In Applications Using Intents | |
| |
| |
Understanding the Intent Object | |
| |
| |
Using Intent Filters | |
| |
| |
Adding Categories | |
| |
| |
Displaying Notifications | |
| |
| |
Summary | |
| |
| |
| |
Getting To Know The Android User Interface | |
| |
| |
Understanding the Components of a Screen | |
| |
| |
Views and ViewGroups | |
| |
| |
LinearLayout | |
| |
| |
AbsoluteLayout | |
| |
| |
TableLayout | |
| |
| |
RelativeLayout | |
| |
| |
FrameLayout | |
| |
| |
ScrollView | |
| |
| |
Adapting to Display Orientation | |
| |
| |
Anchoring Views | |
| |
| |
Resizing and Repositioning | |
| |
| |
Managing Changes to Screen Orientation | |
| |
| |
Persisting State Information during Changes in Confi guration | |
| |
| |
Detecting Orientation Changes | |
| |
| |
Controlling the Orientation of the Activity | |
| |
| |
Utilizing the Action Bar | |
| |
| |
Adding Action Items to the Action Bar | |
| |
| |
Customizing the Action Items and Application Icon | |
| |
| |
Creating the User Interface Programmatically | |
| |
| |
Listening for UI Notifications | |
| |
| |
Overriding Methods Defined in an Activity | |
| |
| |
Registering Events for Views | |
| |
| |
Summary | |
| |
| |
| |
Designing Your User Interface With Views | |
| |
| |
Using Basic Views | |
| |
| |
TextView View | |
| |
| |
Button, ImageButton, EditText, CheckBox, ToggleButton, RadioButton, and RadioGroup Views | |
| |
| |
ProgressBar View | |
| |
| |
AutoCompleteTextView View | |
| |
| |
Using Picker Views | |
| |
| |
TimePicker View | |
| |
| |
DatePicker View | |
| |
| |
Using List Views to Display Long Lists | |
| |
| |
ListView View | |
| |
| |
Using the Spinner View | |
| |
| |
Understanding Specialized Fragments | |
| |
| |
Using a ListFragment | |
| |
| |
Using a DialogFragment | |
| |
| |
Using a PreferenceFragment | |
| |
| |
Summary | |
| |
| |
| |
Displaying Pictures And Menus With Views | |
| |
| |
Using Image Views to Display Pictures | |
| |
| |
Gallery and ImageView Views | |
| |
| |
ImageSwitcher | |
| |
| |
GridView | |
| |
| |
Using Menus with Views | |
| |
| |
Creating the Helper Methods | |
| |
| |
Options Menu | |
| |
| |
Context Menu | |
| |
| |
Some Additional Views | |
| |
| |
AnalogClock and DigitalClock Views | |
| |
| |
WebView | |
| |
| |
Summary | |
| |
| |
| |
Data Persistence | |
| |
| |
Saving and Loading User Preferences | |
| |
| |
Accessing Preferences Using an Activity | |
| |
| |
Programmatically Retrieving and Modifying the Preferences Values | |
| |
| |
Changing the Default Name of the Preferences File | |
| |
| |
Persisting Data to Files | |
| |
| |
Saving to Internal Storage | |
| |
| |
Saving to External Storage (SD Card) | |
| |
| |
Choosing the Best Storage Option | |
| |
| |
Using Static Resources | |
| |
| |
Creating and Using Databases | |
| |
| |
Creating the DBAdapter Helper Class | |
| |
| |
Using the Database Programmatically | |
| |
| |
Pre-Creating the Database | |
| |
| |
Summary | |
| |
| |
| |
Content Providers | |
| |
| |
Sharing Data in Android | |
| |
| |
Using a Content Provider | |
| |
| |
Predefi ned Query String Constants | |
| |
| |
Projections | |
| |
| |
Filtering | |
| |
| |
Sorting | |
| |
| |
Creating Your Own Content Providers | |
| |
| |
Using the Content Provider | |
| |
| |
Summary | |
| |
| |
| |
Messaging | |
| |
| |
SMS Messaging | |
| |
| |
Sending SMS Messages Programmatically | |
| |
| |
Getting Feedback after Sending a Message | |
| |
| |
Sending SMS Messages Using Intent | |
| |
| |
Receiving SMS Messages | |
| |
| |
Caveats and Warnings | |
| |
| |
Sending E-mail | |
| |
| |
Summary | |
| |
| |
| |
Location-Based Services | |
| |
| |
Displaying Maps | |
| |
| |
Creating the Project | |
| |
| |
Obtaining the Maps API Key | |
| |
| |
Displaying the Map | |
| |
| |
Displaying the Zoom Control | |
| |
| |
Changing Views | |
| |
| |
Navigating to a Specific Location | |
| |
| |
Adding Markers | |
| |
| |
Getting the Location That Was Touched | |
| |
| |
Geocoding and Reverse Geocoding | |
| |
| |
Getting Location Data | |
| |
| |
Monitoring a Location | |
| |
| |
Project - Building a Location Tracker | |
| |
| |
Summary | |
| |
| |
| |
Networking | |
| |
| |
Consuming Web Services Using HTTP | |
| |
| |
Downloading Binary Data | |
| |
| |
Downloading Text Content | |
| |
| |
Accessing Web Services Using the GET Method | |
| |
| |
Consuming JSON Services | |
| |
| |
Sockets Programming | |
| |
| |
Summary | |
| |
| |
| |
Developing Android Services | |
| |
| |
Creating Your Own Services | |
| |
| |
Performing Long-Running Tasks in a Service | |
| |
| |
Performing Repeated Tasks in a Service | |
| |
| |
Executing Asynchronous Tasks on Separate Threads Using IntentService | |
| |
| |
Establishing Communication between a Service and an Activity | |
| |
| |
Binding Activities to Services | |
| |
| |
Understanding Threading | |
| |
| |
Summary | |
| |
| |
| |
Publishing Android Applications | |
| |
| |
Preparing For Publishing | |
| |
| |
Versioning Your Application | |
| |
| |
Digitally Signing Your Android Applications | |
| |
| |
Deploying APK Files | |
| |
| |
Using the adb.exe Tool | |
| |
| |
Using a Web Server | |
| |
| |
Publishing on the Android Market | |
| |
| |
Summary | |
| |
| |
| |
Using Eclipse For Android Development | |
| |
| |
Getting Around in Eclipse | |
| |
| |
Workspaces | |
| |
| |
Package Explorer | |
| |
| |
Using Projects from Other Workspaces | |
| |
| |
Using Editors within Eclipse | |
| |
| |
Understanding Eclipse Perspectives | |
| |
| |
Automatically Importing Packages | |
| |
| |
Using the Code Completion Feature | |
| |
| |
Refactoring | |
| |
| |
Debugging your Application | |
| |
| |
Setting Breakpoints | |
| |
| |
Dealing with Exceptions | |
| |
| |
| |
USING THE ANDROID EMULATOR | |
| |
| |
Uses of the Android Emulator | |
| |
| |
Creating Snapshots | |
| |
| |
SD Card Emulation | |
| |
| |
Emulating Devices with Different Screen Sizes | |
| |
| |
Emulating Physical Capabilities | |
| |
| |
Sending SMS Messages to the Emulator | |
| |
| |
Making Phone Calls | |
| |
| |
Transferring Files into and out of the Emulator | |
| |
| |
Resetting the Emulator | |
| |
| |
| |
Answers To Exercises | |
| |
| |
Index | |