Table of Contents

1 Overview of Android 1

The Evolution of Android 1 The Dichotomy of Android 2 Devices Running Android 2 HTC Models 6 Motorola Models 6 Samsung Models 6 Tablets 7 Other Devices 7 Hardware Differences on Android Devices 8 Screens 8 User Input Methods 9 Sensors 9 Features of Android 10

Multiprocess and App Widgets 11 Touch, Gestures, and Multitouch 11 Hard and Soft Keyboards 11 Android Development 11

How to Use the Recipes in This Book 12 Designing Applications Well 12 Maintaining Forward Compatibility 13 Robustness 13 Software Development Kit 14 Installing and Upgrading 14 Software Features and API Level 15 Emulator and Android Device Debug 16 Using the Android Debug Bridge 18 Signing and Publishing 18 Android Market 19

End-User License Agreement 19 Improving App Visibility 19 Differentiating an App 20 Charging for an App 20 Managing Reviews and Updates 21 Alternatives to the Android Market 22

2 Application Basics: Activities and intents 23

Android Application Overview 23

Recipe: Creating a Project and an Activity 24 Directory Structure of Project and Autogenerated Content 26

Android Package and Manifest File 28

Renaming Parts of an Application 30

Activity Lifecycle 30

Recipe: Utilizing Other Lifecycle Functions 31

Recipe: Forcing Single Task Mode 33

Recipe: Forcing Screen Orientation 34

Recipe: Saving and Restoring Activity Information 34

Multiple Activities 35

Recipe: Using Buttons and TextView 36

Recipe: Launching Another Activity from an Event 37

Recipe: Launching an Activity for a Result Using Speech to Text 41

Recipe: Implementing a List of Choices 43 Recipe: Using Implicit Intents for Creating an Activity 44

Recipe: Passing Primitive Data Types Between Activities 46

3 Threads, Services, Receivers, and Alerts 51

Threads 51

Recipe: Launching a Secondary Thread 51 Recipe: Creating a Runnable Activity 55 Recipe: Setting a Thread's Priority 57 Recipe: Canceling a Thread 57 Recipe: Sharing a Thread Between Two Applications 58

Messages Between Threads: Handlers 58

Recipe: Scheduling a Runnable Task from the Main Thread 59

Recipe: Using a Countdown Timer 61 Recipe: Handling a Time-Consuming Initialization 62 Services 64

Recipe: Creating a Self-Contained Service 65

Adding a Broadcast Receiver 69

Recipe: Starting a Service When the Camera Button Is Pressed 70 App Widgets 72

Recipe: Creating an App Widget 72 Alerts 74

Recipe: Using Toast to Show a Brief Message on the Screen 74

Recipe: Using an Alert Dialog Box 75 Recipe: Showing Notification in Status Bar 76

4 User Interface Layout 79

Resource Directories and General Attributes 79

Recipe: Specifying Alternate Resources 81

Views and ViewGroups 82

Recipe: Building Layouts in the Eclipse Editor 83

Recipe: Controlling the Width and Height of UI Elements 86

Recipe: Setting Relative Layout and Layout ID 89

Recipe: Declaring a Layout Programmatically 90

Recipe: Updating a Layout from a Separate Thread 92

Text Manipulation 94

Recipe: Setting and Changing Text Attributes 95

Recipe: Providing Text Entry 98

Recipe: Creating a Form 100

Other Widgets: From Buttons to Seek Bars 101

Recipe: Using Image Buttons in a Table Layout 102

Recipe: Using Check Boxes and Toggle Buttons 105

Recipe: Using Radio Buttons 108

Recipe: Creating a Drop-Down Menu 110

Recipe: Using a Progress Bar 112

Recipe: Using a SeekBar 114

5 User Interface Events 117

Event Handlers and Event Listeners 117

Recipe: Intercepting a Physical Key Press 117 Recipe: Building Menus 121

Recipe: Defining Menus in XML 126 Recipe: Utilizing the SEARCH Key 127 Recipe: Reacting to Touch Events 128 Recipe: Listening for Fling Gestures 130 Recipe: Using Multitouch 133 Advanced User Interface Libraries 136 Recipe: Using Gestures 136 Recipe: Drawing 3D Images 140

6 Multimedia Techniques 147

Images 148

Recipe: Loading an Image for Manipulation 148 Audio 154

Recipe: Choosing and Playing Back Audio Files 154 Recipe: Recording Audio Files 157 Recipe: Manipulating Raw Audio 158 Recipe: Using Sound Resources Efficiently 163 Recipe: Adding Media and Updating Paths 165 Video 165

7 Hardware Interface 169

Camera 169

Recipe: Customizing the Camera 170 Other Sensors 175

Recipe: Getting a Device's Rotational Attitude 176 Recipe: Using the Temperature and Light Sensor 179 Telephony 180

Recipe: Utilizing the Telephony Manager 181 Recipe: Listening for Phone States 183 Recipe: Dialing a Phone Number 185 Bluetooth 185

Recipe: Turning on Bluetooth 186

Recipe: Discovering Bluetooth Devices 187

Recipe: Pairing with Bonded Bluetooth Devices 188

Recipe: Opening a Bluetooth Socket 188

Recipe: Using Device Vibration 191

Recipe: Accessing the Wireless Network 191

8 Networking 195

Using SMS 195

Recipe: Autosend an SMS Based on a Received SMS 197 Using Web Content 204

Recipe: Customizing a Web Browser 204 Recipe: Using an HTTP GET 204 Recipe: Using HTTP POST 209 Social Networking 210

Recipe: Integrating with Twitter 210

9 Data Storage Methods 221

Shared Preferences 221

Recipe: Creating and Retrieving Shared Preferences 222

Recipe: Using the Preferences Framework 222 Recipe: Changing the UI Based on Stored Data 225 Recipe: Adding a EULA 228 SQLite Database 232

Recipe: Creating a Separate Database Package 232 Recipe: Using a Separate Database Package 236 Recipe: Creating a Personal Diary 239 Content Provider 243

Recipe: Creating a Custom Content Provider 244 File Saving and Loading 249

10 Location-Based Services 251

Location Basics 251

Recipe: Retrieving Last Location 253

Recipe: Updating Location Upon Change 254

Recipe: Listing All Enabled Providers 256

Recipe: Translating a Location to Address (Reverse Geocoding) 258

Recipe: Translating an Address to Location (Geocoding) 261 Using Google Maps 263

Recipe: Adding Google Maps to an Application 265 Recipe: Adding Markers on a Map 267

Recipe: Adding Views to a Map 271

Recipe: Marking the Device's Current Location on a

Map 274

Recipe: Setting up a Proximity Alert 274

11 Advanced Android Development 277

Android Custom View 277

Recipe: Customizing a Button 277 Android Native Components 283

Recipe: Developing a Native Component 284 Android Security 287

Recipe: Declaring and Enforcing Permissions 288 Android Inter-Process Communication 288

Recipe: Implementing a Remote Procedure Call 289 Android Backup Manager 294

Recipe: Creating a Backup of Runtime Data 294 Recipe: Backing Up Files to the Cloud 296 Recipe: Triggering Backup and Restore 296 Android Animation 298

Recipe: Creating an Animation 299

12 Debugging 303

Eclipse Built-in Debug Tools 303

Recipe: Specifying a Run Configuration 303 Recipe: Using the DDMS 304 Recipe: Debugging Through Breakpoints 306 Android SDK Debug Tools 307

Recipe: Using the Android Debug Bridge 307 Recipe: Using LogCat 307 Recipe: Using the Hierarchy Viewer 309 Recipe: Using TraceView 311 Android System Debug Tools 313

Recipe: Setting up GDB Debugging 315

Index 317

Character Building Thought Power

Character Building Thought Power

Character-Building Thought Power by Ralph Waldo Trine. Ralph draws a distinct line between bad and good habits. In this book, every effort is made by the writer to explain what comprises good habits and why every one needs it early in life. It draws the conclusion that habits nurtured in early life concretize into impulses in future for the good or bad of the subject.

Get My Free Ebook

Post a comment