1. What is Android?—The Big Picture
Chapter 1. Introducing Android
1.2. Understanding the Android market
1.2.2. Android vs. the feature phones
1.4. The Intent of Android development
1.5. Four kinds of Android components
1.6. Understanding the AndroidManifest.xml file
1.7. Mapping applications to processes
Chapter 2. Android’s development environment
2.1. Introducing the Android SDK
2.2. Exploring the development environment
2.3. Building an Android application in Eclipse
2.3.1. The Android Project Wizard
2.4. Using the Android emulator
3.3.1. Supported resource types
3.3.2. Referencing resources in Java
Chapter 4. Intents and Services
4.1. Serving up RestaurantFinder with Intent
4.1.2. Implicit and explicit invocation
4.1.3. Adding external links to RestaurantFinder
4.2. Checking the weather with a custom URI
4.3. Checking the weather with broadcast receivers
4.4. Building a background weather service
4.5. Communicating with the WeatherAlertService from other apps
4.5.1. Android Interface Definition Language
4.5.3. Exposing a remote interface
Chapter 5. Storing and retrieving data
5.3. Persisting data to a database
5.4. Working with ContentProvider classes
Chapter 6. Networking and web services
6.1. An overview of networking
6.2. Checking the network status
6.3. Communicating with a server socket
6.4.1. Simple HTTP and java.net
7.1. Exploring telephony background and terms
7.2. Accessing telephony information
7.3. Interacting with the phone
7.3.1. Using intents to make calls
7.4. Working with messaging: SMS
Chapter 8. Notifications and alarms
8.2. Introducing notifications
Chapter 9. Graphics and animation
9.1. Drawing graphics in Android
9.2. Creating animations with Android’s Graphics API
9.3. Introducing OpenGL for Embedded Systems
9.3.1. Creating an OpenGL context
10.1. Introduction to multimedia and OpenCORE
Chapter 11. Location, location, location
11.1. Simulating your location within the emulator
11.1.1. Sending in your coordinates with the DDMS tool
11.2. Using LocationManager and LocationProvider
11.2.1. Accessing location data with LocationManager
Chapter 12. Putting Android to work in a field service application
12.1. Designing a real-world Android application
12.2. Mapping out the application flow
12.3.2. Preferences used by the FieldService Activity
12.4. Source code for managing jobs
12.4.2. Managing jobs: The ManageJobs Activity
Chapter 13. Building Android applications in C
13.1. Building Android apps without the SDK
13.1.1. The C compiler and linker tools
13.1.2. Building a Hello World application
13.2. Solving the problem with dynamic linking
13.2.1. Android system libraries
13.2.2. Building a dynamically linked application
13.3. What time is it? The DayTime Server
Chapter 14. Bluetooth and sensors
14.1. Exploring Android’s Bluetooth capabilities
14.1.2. Primary and secondary roles and sockets
14.1.4. Connecting to a remote device
14.2. Interacting with the SensorManager
14.3. Building the SenseBot application
15.1. Understanding the Android contact model
15.1.1. Choosing open-ended records
15.1.2. Dealing with multiple accounts
15.2. Getting started with LinkedIn
15.3.1. Leveraging the built-in contacts app
15.3.2. Requesting operations from your app
15.3.3. Directly reading and modifying the contacts database
15.5. Creating a LinkedIn account
15.6. Synchronizing to the backend with SyncAdapter
15.7. Wrapping up: LinkedIn in action
Chapter 16. Android web development
16.1. What’s Android web development?
16.2. Optimizing web applications for Android
16.2.1. Designing with mobile in mind
16.2.2. Adding the viewport tag
16.2.3. Selectively loading content
16.3. Storing data directly in the browser
16.3.5. Unpacking the transaction function
16.4. Building a hybrid application
16.4.1. Examining the browser control
16.4.3. Implementing the JavaScript handler
16.4.4. Accessing the code from JavaScript
16.4.5. Digging into the JavaScript
16.4.7. Implementing a WebViewClient
16.4.8. Augmenting the browser
17.1. Introducing the AppWidget
17.3. SiteMonitor application architecture
17.5. Implementing the AppWidgetProvider
17.5.1. AppWidgetProvider method inventory
17.6. Displaying an AppWidget with RemoteViews
17.7. Configuring an instance of the AppWidget
18.1. The need for localization
18.3. Strategies for localizing an application
18.3.1. Identifying target locales and data
18.3.2. Identifying and managing strings
18.4. Leveraging Android resource capabilities
18.6. Formatting localized strings
Chapter 19. Android Native Development Kit
19.2. Building an application with the NDK
19.3. Building the JNI library
19.4. Building the user interface
Appendix A. Installing the Android SDK
A.1. Development environment requirements
A.2. Obtaining and installing Eclipse
A.3. Obtaining and installing the Android SDK
A.4. Using the SDK and AVD Manager
Appendix B. Publishing applications
B.1. Preparing an application for distribution
B.1.2. Debugging notifications
B.2. Digitally signing an application
B.3. Publishing to the Android Market