Part I: Getting the Android SDK to Work
Part II: Building the Core of an Android Application
Part III: Making Your Applications Fit for the Enterprise
Part IV: Enhancing the Capabilities of Your Android Application
Part V: Effectively Developing, Testing, and Publishing Apps
Part I: Getting the Android SDK to Work
Chapter 1: Taking a Quick Look at Mobile Applications on Android
Writing Apps for a Mobile Platform
Seeing What Android Has to Offer
Doing the Sample Application Thing
Understanding the Android System Architecture and the Android Application Model
Understanding the hardware aspects of an Android device
Working with the Linux operating system
Taking advantage of native libraries
The Android Application Framework
Understanding the Android Application Model
Files on internal and external storage
Designing Android Applications
Chapter 2: Setting Up an Android Development Environment
Setting Up Android Development Components
Android SDK Starter Package and the Android SDK Components
Verifying the Development Environment
Creating and running a sample program
Understanding the files in the sample project
Importing, Running, and Debugging Tic-Tac-Toe
Setting up debugging and running on an Android device
Chapter 3: Making Apps Using the Android SDK
Walking Through the Eclipse Project for Tic-Tac-Toe
Developing the Tic-Tac-Toe Application
Understanding the Different Types of Android Programs
Specifying activities in the AndroidManifest.xml file
Implementing an Activity's User Interface
Implementing the user interface logic by using event listeners
Implementing the user interface by implementing your own View class
Handling user interactions in the activity itself
Initiating actions from menus and the Action Bar
Setting application preferences
Building Rich User Interfaces for Larger Screens Using Fragments
Embedding fragments in activity layouts
Incorporating fragments into activity behavior
Managing the Activity Life Cycle
Starting activities using intents and intent filters
Saving the transient state of activities
Using tasks to manage the behavior of groups of activities
Managing Persistent Application Data
Using Shared Preferences to save persistent data
Sharing data across applications through content providers
Part II: Building the Core of an Android Application
Chapter 4: Determining the Appropriate SDK for Your Application
Exploring the Variety of Android Devices and SDKs
Understanding display characteristics
Recognizing there's more than one version of the SDK
Examining the Differences between SDK Versions
Chapter 5: Designing a User-Friendly Application
Things to Know Before Creating a User Interface
Taking a detailed look at the View hierarchy
Working with views and layouts
Examining the XML code closely
Mocking up a simple calculator
Deciphering the structure of a table
Using Greedy widgets that take up multiple columns
RelativeLayout: Flexibility du Jour
Chapter 6: Enhancing Your Layout with Widgets, Styles, and Themes
Beholding the Power of the Framework: Built-In Views
Creating Tic-Tac-Toe using push buttons
Pretty in pink: Creating custom buttons
Simplifying Attribute Settings with Styles
Taking advantage of the built-in Android styles
Using Themes to Maintain a Consistent Style
Providing compatibility for older devices
Differentiating activities by using specific themes
Chapter 7: Designing Your Application's Logic and Data
Understanding Best Practices in Application Design
Applying object-oriented design
Understanding software frameworks
Illustrating Android App Design by Using the Tic-Tac-Toe Example
Discovering classes, responsibilities, and collaborators for Tic-Tac-Toe
Walking through scenarios to discover collaborators and missing classes and responsibilities
Incorporating your design into the Android Application Model
Part III: Making Your Applications Fit for the Enterprise
Chapter 8: Making Your Application Fast and Responsive
Becoming Familiar with Nonfunctional Requirements
Designing Your App at Multiple Levels
Optimizing Application Performance
Using the Profiler for Code Optimization
Ensuring Responsiveness in Your Apps
Understanding the SDK Components Used in This Chapter
The Android thread model and components
Chapter 9: Making Your Application Safe and Secure
Recognizing the Importance of Security
Looking at Security Holistically
Defining the Threat Model for an Android Application
Understanding the Android Security Model
Minimizing the Security Footprint of Your App
Part IV: Enhancing the Capabilities of Your Android Application
Chapter 10: Channeling the Outside World through Your Android Device
Launching a Browser from Your App
Embedding a Browser in Your Android Application
Providing Maps and Location-Based Services
Installing the necessary development components for writing map apps
Displaying a map by using MapView
Calling a geocoding web service and navigating the map
Determining the location of your device (or, wherever you go, there you are)
Building Them Right — Design Considerations for Web and Location-Based Apps
Understanding the SDK Components Used in This Chapter
SDK components for incorporating web pages into your application
SDK components for finding locations
Chapter 11: Harnessing the Capabilities of Your Android Device
Integrating E-Mail, SMS, and Telephony into Your App
Playing Audio and Video and Capturing Images
Displaying and capturing images
Bringing In the Outside World by Using Sensors
Listing, understanding, and monitoring the sensors on your Android device
Registering with the sensor manager and receiving sensed values
Understanding the SDK Components Used in This Chapter
SDK communication components: SMS, e-mail, and telephony
SDK components for handling media
SDK components for handling sensors
Other SDK components for handling media
Part V: Effectively Developing, Testing, and Publishing Apps
Chapter 12: Effectively Using Your Integrated Development Environment
Eclipse and Android: A Beautiful Friendship
Gaining perspective in Eclipse
Customizing Eclipse for Android
Observing, Debugging, and Tracking an Android App Using Eclipse Perspectives
Getting Serious about Testing — Using the Android Testing Framework
Understanding the SDK Components Used in This Chapter
The testing framework API in Android
Chapter 13: Selling Your Application on the Market
Preparing Your App for the Market
Naming and versioning your application
Dealing with devices that have limited capabilities
Publishing on the Android Market
Understanding the Android Market license agreements
Uploading your application to the Android Market
Taking Advantage of Other Marketplaces for Android Apps
The Amazon Appstore for Android
Other marketplaces for Android apps
Becoming Successful in the Market
Good citizenship: Providing good service
Chapter 14: The Ten Best Developer Resources for Android
Learning More About Android Development
Seeking out information at the Android Developers home page
Getting advice from experts at the Google I/O sessions
Taking Advantage of Android Resources On the Web
Finding window dressing at Speckyboy.com
Finding sample code at the Google Code site directory
Finding Android Development Help from Experts and Others Like You
Android Developers Google Groups
The Android forums at Phandroid.com
Pondering the Direction of Android Technology
Looking for Help When You Don't Know Where to Start
Chapter 15: The Ten Most Illustrative Applications for Android
Angry Birds (Rovio Mobile Ltd.)
Pandora (Pandora Internet Radio)
Voice Recorder (Mamoru Tokashiki)
Evernote (Evernote Corporation)
Cardio Trainer (WorkSmart Labs, Inc.)
18.226.181.57