Book description
Jump in and build working Android apps with the help of more than 200 tested recipes. With this cookbook, you’ll find solutions for working with the user interfaces, multitouch gestures, location awareness, web services, and device features such as the phone, camera, and accelerometer. You also get useful steps on packaging your app for the Android Market.
Ideal for developers familiar with Java, Android basics, and the Java SE API, this book features recipes contributed by more than three dozen developers from the Android community. Each recipe provides a clear solution and sample code you can use in your project right away. Among numerous topics, this cookbook helps you:
- Use guidelines for designing a successful Android app
- Work with UI controls, effective layouts, and graphical elements
- Learn how to take advantage of Android’s rich features in your app
- Save and retrieve application data in files, SD cards, and embedded databases
- Access RESTful web services, RSS/Atom feeds, and information from websites
- Create location-aware services to find locations and landmarks, and situate them on Google Maps and OpenStreetMap
- Test and troubleshoot individual components and your entire application
Publisher resources
Table of contents
- Dedication
- Preface
-
1. Getting Started
- 1.1. Introduction: Getting Started
- 1.2. Learning the Java Language
- 1.3. Creating a “Hello, World” Application from the Command Line
- 1.4. Creating a “Hello, World” Application in Eclipse
- 1.5. Setting Up an IDE on Windows to Develop for Android
- 1.6. Understanding the Android Life Cycle
- 1.7. Installing .apk Files onto an Emulator via the ADB
- 1.8. Installing Apps onto an Emulator via SlideME
- 1.9. Sharing Java Classes from Another Eclipse Project
- 1.10. Referencing Libraries to Implement External Functionality
- 1.11. Using SDK Samples to Help Avoid Head Scratching
- 1.12. Keeping the Android SDK Updated
- 1.13. Taking a Screenshot from the Emulator/Android Device
- 1.14. Program: A Simple CountDownTimer Example
- 1.15. Program: Tipster, a Tip Calculator for the Android OS
-
2. Designing a Successful Application
- 2.1. Introduction: Designing a Successful Android Application
- 2.2. Exception Handling
- 2.3. Accessing Android’s Application Object as a “Singleton”
- 2.4. Keeping Data When the User Rotates the Device
- 2.5. Monitoring the Battery Level of an Android Device
- 2.6. Creating Splash Screens in Android
- 2.7. Designing a Conference/Camp/Hackathon/Institution App
- 2.8. Using Google Analytics in an Android Application
- 2.9. A Simple Torch/Flashlight
- 2.10. Adapting an Android Phone Application to Be Used on a Tablet
- 2.11. Setting First-Run Preferences
- 2.12. Formatting the Time and Date for Display
- 2.13. Controlling Input with KeyListeners
- 2.14. Backing Up Android Application Data
- 2.15. Using Hints Instead of Tool Tips
-
3. Testing
- 3.1. Introduction: Testing
- 3.2. Doing Test-Driven Development (TDD) in Android
- 3.3. Setting Up an Android Virtual Device (AVD) for App Testing
- 3.4. Testing on a Huge Range of Devices with Cloud-based Testing
- 3.5. Creating and Using a Test Project
- 3.6. Troubleshooting Application Crashes
- 3.7. Debugging Using Log.d and LogCat
- 3.8. Getting Bug Reports from Users Automatically with BugSense
- 3.9. Using a Local Runtime Application Log for Analysis of Field Errors or Situations
- 3.10. Reproducing Activity Life-Cycle Scenarios for Testing
- 3.11. Keeping Your App Snappy with StrictMode
- 3.12. Running the Monkey Program
- 3.13. Sending Text Messages and Placing Calls Between AVDs
-
4. Inter-/Intra-Process Communication
- 4.1. Introduction: Inter-/Intra-Process Communication
- 4.2. Opening a Web Page, Phone Number, or Anything Else with an Intent
- 4.3. Emailing Text from a View
- 4.4. Sending an Email with Attachments
- 4.5. Pushing String Values Using Intent.putExtra()
- 4.6. Retrieving Data from a Subactivity Back to Your Main Activity
- 4.7. Keeping a Service Running While Other Apps Are on Display
- 4.8. Sending/Receiving a Broadcast Message
- 4.9. Starting a Service After Device Reboot
- 4.10. Creating a Responsive Application Using Threads
- 4.11. Using AsyncTask to Do Background Processing
- 4.12. Sending Messages Between Threads Using an Activity Thread Queue and Handler
- 4.13. Creating an Android Epoch HTML/JavaScript Calendar
- 5. Content Providers
-
6. Graphics
- 6.1. Introduction: Graphics
- 6.2. Using a Custom Font
- 6.3. Drawing a Spinning Cube with OpenGL ES
- 6.4. Adding Controls to the OpenGL Spinning Cube
- 6.5. Freehand Drawing Smooth Curves
- 6.6. Taking a Picture Using an Intent
- 6.7. Taking a Picture Using android.media.Camera
- 6.8. Scanning a Barcode or QR Code with the Google ZXing Barcode Scanner
- 6.9. Using AndroidPlot to Display Charts and Graphs
- 6.10. Using Inkscape to Create an Android Launcher Icon
- 6.11. Creating Easy Launcher Icons from OpenClipArt.org Using Paint.NET
- 6.12. Using Nine Patch Files
- 6.13. Creating HTML5 Charts with Android RGraph
- 6.14. Adding a Simple Raster Animation
- 6.15. Using Pinch to Zoom
-
7. Graphical User Interface
- 7.1. Introduction: GUI
- 7.2. Understanding and Following User Interface Guidelines
- 7.3. Handling Configuration Changes by Decoupling the View from the Model
- 7.4. Creating a Button and Its Click Event Listener
- 7.5. Wiring Up an Event Listener in Five Different Ways
- 7.6. Using CheckBoxes and RadioButtons
- 7.7. Enhancing UI Design Using Image Buttons
- 7.8. Offering a Drop-Down Chooser via the Spinner Class
- 7.9. Handling Long-Press/Long-Click Events
- 7.10. Displaying Text Fields with TextView and EditText
- 7.11. Constraining EditText Values with Attributes and the TextWatcher Interface
- 7.12. Implementing AutoCompleteTextView
- 7.13. Feeding AutoCompleteTextView Using an SQLite Database Query
- 7.14. Turning Edit Fields into Password Fields
- 7.15. Changing the Enter Key to “Next” on the Soft Keyboard
- 7.16. Processing Key-Press Events in an Activity
- 7.17. Let Them See Stars: Using RatingBar
- 7.18. Making a View Shake
- 7.19. Providing Haptic Feedback
- 7.20. Navigating Different Activities Within a TabView
- 7.21. Creating a Custom Title Bar
- 7.22. Formatting Numbers
- 7.23. Formatting with Correct Plurals
- 7.24. Starting a Second Screen from the First
- 7.25. Creating a Loading Screen That Will Appear Between Two Activities
- 7.26. Using SlidingDrawer to Overlap Other Components
- 7.27. Customizing the SlidingDrawer Component to Animate/Transition from the Top Down
- 7.28. Adding a Border with Rounded Corners to a Layout
- 7.29. Detecting Gestures in Android
- 7.30. Building a UI Using Android 3.0 Fragments in Android 1.6 and Later
- 7.31. Using the Android 3.0 Photo Gallery
- 7.32. Creating a Simple App Widget
-
8. GUI Alerts: Menus, Dialogs, Toasts, and
Notifications
- 8.1. Introduction: GUI Alerts
- 8.2. Creating and Displaying a Menu
- 8.3. Handling Choice Selection in a Menu
- 8.4. Creating a Submenu
- 8.5. Creating a Pop-up/Alert Dialog
- 8.6. Using a Timepicker Widget
- 8.7. Creating an iPhone-like Wheel Picker for Selection
- 8.8. Creating a Tabbed Dialog
- 8.9. Creating a ProgressDialog
- 8.10. Creating a Custom Dialog with Buttons, Images, and Text
- 8.11. Creating a Reusable About Box Class
- 8.12. Customizing the Appearance of a Toast
- 8.13. Creating a Notification in the Status Bar
-
9. GUI: ListView
- 9.1. Introduction: ListView
- 9.2. Building List-Based Applications with ListView
- 9.3. Creating a “No Data” View for ListViews
- 9.4. Creating an Advanced ListView with Images and Text
- 9.5. Using Section Headers in ListViews
- 9.6. Keeping the ListView with the User’s Focus
- 9.7. Writing a Custom List Adapter
- 9.8. Handling Orientation Changes: From ListView Data Values to Landscape Charting
-
10. Multimedia
- 10.1. Introduction: Multimedia
- 10.2. Playing a YouTube Video
- 10.3. Using the Gallery with the ImageSwitcher View
- 10.4. Capturing Video Using MediaRecorder
- 10.5. Using Android’s Face Detection Capability
- 10.6. Playing Audio from a File
- 10.7. Playing Audio Without Interaction
- 10.8. Using Speech to Text
- 10.9. Making the Device Speak with Text-to-Speech
-
11. Data Persistence
- 11.1. Introduction: Data Persistence
- 11.2. Getting File Information
- 11.3. Reading a File Shipped with the App Rather Than in the Filesystem
- 11.4. Listing a Directory
- 11.5. Getting Total and Free Space Information About the SD Card
- 11.6. Providing User Preference Activity with Minimal Effort
- 11.7. Checking the Consistency of Default Shared Preferences
- 11.8. Performing Advanced Text Searches
- 11.9. Creating an SQLite Database in an Android Application
- 11.10. Inserting Values into an SQLite Database
- 11.11. Loading Values from an Existing SQLite Database
- 11.12. Working with Dates in SQLite
- 11.13. Parsing JSON Using JSONObject
- 11.14. Parsing an XML Document Using the DOM API
- 11.15. Parsing an XML Document Using an XmlPullParser
- 11.16. Adding a Contact
- 11.17. Reading Contact Data
-
12. Telephone Applications
- 12.1. Introduction: Telephone Applications
- 12.2. Doing Something When the Phone Rings
- 12.3. Processing Outgoing Phone Calls
- 12.4. Dialing the Phone
- 12.5. Sending Single-Part or Multipart SMS Messages
- 12.6. Receiving an SMS Message in an Android Application
- 12.7. Using Emulator Controls to Send SMS Messages to the Emulator
- 12.8. Using Android’s TelephonyManager to Obtain Device Information
-
13. Networked Applications
- 13.1. Introduction: Networking
- 13.2. Using a RESTful Web Service
- 13.3. Extracting Information from Unstructured Text Using Regular Expressions
- 13.4. Parsing RSS/Atom Feeds Using ROME
- 13.5. Using MD5 to Digest Clear Text
- 13.6. Converting Text into Hyperlinks
- 13.7. Accessing a Web Page Using WebView
- 13.8. Customizing a WebView
- 14. Gaming and Animation
- 15. Social Networking
-
16. Location and Map Applications
- 16.1. Introduction: Location-Aware Applications
- 16.2. Getting Location Information
- 16.3. Accessing GPS Information in Your Application
- 16.4. Mocking GPS Coordinates on a Device
- 16.5. Using Geocoding and Reverse Geocoding
- 16.6. Getting Ready for Google Maps Development
- 16.7. Adding a Device’s Current Location to Google Maps
- 16.8. Drawing a Location Marker on a Google MapView
- 16.9. Drawing Multiple Location Markers on a MapView
- 16.10. Creating Overlays for a Google MapView
- 16.11. Changing Modes of a Google MapView
- 16.12. Drawing an Overlay Icon Without Using a Drawable
- 16.13. Implementing Location Search on Google Maps
- 16.14. Placing a MapView Inside a TabView
- 16.15. Handling a Long-Press in a MapView
- 16.16. Using OpenStreetMap
- 16.17. Creating Overlays in OpenStreetMap Maps
- 16.18. Using a Scale on an OpenStreetMap Map
- 16.19. Handling Touch Events on an OpenStreetMap Overlay
- 16.20. Getting Location Updates with OpenStreetMap Maps
-
17. Accelerometer
- 17.1. Introduction: Sensors
- 17.2. Checking for the Presence or Absence of a Sensor
- 17.3. Using the Accelerometer to Detect Shaking of the Device
- 17.4. Checking Whether a Device Is Facing Up or Facing Down Based on Screen Orientation Using an Accelerometer
- 17.5. Finding the Orientation of an Android Device Using an Orientation Sensor
- 17.6. Reading the Temperature Sensor
- 18. Bluetooth
-
19. System and Device Control
- 19.1. Introduction: System and Device Control
- 19.2. Accessing Phone Network/Connectivity Information
- 19.3. Obtaining Information from the Manifest File
- 19.4. Changing Incoming Call Notification to Silent, Vibrate, or Normal
- 19.5. Copying Text and Getting Text from the Clipboard
- 19.6. Using LED-Based Notifications
- 19.7. Making the Device Vibrate
- 19.8. Running Shell Commands from Your Application
- 19.9. Determining Whether a Given Application Is Running
-
20. Other Programming Languages and
Frameworks
- 20.1. Introduction: Other Programming Languages
- 20.2. Running an External/Native Unix/Linux Command
- 20.3. Running Native C/C++ Code with JNI on the NDK
- 20.4. Getting Started with the Scripting Layer for Android (SL4A, Formerly Android Scripting Environment)
- 20.5. Creating Alerts in SL4A
- 20.6. Fetching Your Google Documents and Displaying Them in a ListView Using SL4A
- 20.7. Sharing SL4A Scripts in QR Codes
- 20.8. Using Native Handset Functionality from WebView via JavaScript
- 20.9. Creating a Platform-Independent Application Using PhoneGap/Cordova
- 21. Strings and Internationalization
-
22. Packaging, Deploying, and Distributing/Selling Your App
- 22.1. Introduction: Packaging, Deploying, and Distributing
- 22.2. Creating a Signing Certificate
- 22.3. Signing Your Application
- 22.4. Distributing Your Application via Android Play (formerly the Android Market)
- 22.5. Integrating AdMob into Your App
- 22.6. Obfuscating and Optimizing with ProGuard
- 22.7. Providing a Link to Other Published Apps in the Google Play Market
- Index
- About the Author
- Colophon
- Copyright
Product information
- Title: Android Cookbook
- Author(s):
- Release date: April 2012
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781449388416
You might also like
book
Android Cookbook, 2nd Edition
Jump in and build working Android apps with the help of more than 230 tested recipes. …
book
Android 9 Development Cookbook - Third Edition
Build feature-rich, reliable Android Pie apps with the help of more than 100 proven industry standard …
book
Android Application Development
This practical book provides the concepts and code you need to develop software with Android, the …
book
Android Native Development Kit Cookbook
Create Android apps using Native C/C++ with the expert guidance contained in this cookbook. From basic …