Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010242600 | QA76.76.A65 P76 2012 | Open Access Book | Book | Searching... |
Searching... | 30000010290617 | QA76.76.A65 P76 2012 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
A one-of-a-kind book on Android application development with Mono for Android
The wait is over! For the millions of .NET/C# developers who have been eagerly awaiting the book that will guide them through the white-hot field of Android application programming, this is the book. As the first guide to focus on Mono for Android, this must-have resource dives into writing applications against Mono with C# and compiling executables that run on the Android family of devices.
Putting the proven Wrox Professional format into practice, the authors provide you with the knowledge you need to become a successful Android application developer without having to learn another programming language. You′ll explore screen controls, UI development, tables and layouts, and MonoDevelop as you become adept at developing Android applications with Mono for Android.
Answers the demand for a detailed book on the extraordinarily popular field of Android application development Strengthens your existing skills of writing applications and shows you how to transfer your talents to building Android apps with Mono for Android and .NET/C# Dives into working with data, REST, SOAP, XML, and JSON Discusses how to communicate with other applications, deploy apps, and even make money in the processProfessional Android Programming with Mono for Android and .NET/C# gets you up and running with Android app development today.
Author Notes
Wallace B. McClure is a Microsoft MVP, ASPInsider, and member of the national INETA Speaker′s Bureau, and has a popular blog and podcast.
Nathan Blevins is an ASPInsider, a public speaker, and blogs at http://nathanblevins.com.
John J. Croft IV is an author, developer, and senior technical manager for Turner Broadcasting System in Atlanta.
Jonathan Dick develops mobile applications, maintains and contributes to several open source projects for mobile, and blogs about it all at http://redth.info.
Chris Hardy, a Microsoft ASPInsider, is a .NET consultant focusing on MonoTouch and Mono for Android development and tweets @chrisntr.
Table of Contents
Foreword | p. xxiii |
Introduction | p. xxv |
Chapter 1 Introduction To Android, Mobile Devices, And The Marketplace | p. 1 |
Product Comparison | p. 2 |
The .NET Framework | p. 2 |
Mono | p. 3 |
Mono for Android | p. 4 |
Mono for Android Components | p. 5 |
Development Tools | p. 6 |
Mobile Development | p. 6 |
Getting Around Support Issues | p. 7 |
Design Issues | p. 7 |
Android | p. 8 |
History of Android | p. 8 |
Writing Web-Based Applications for Android | p. 9 |
Writing Native Applications for Android | p. 9 |
Android Development Issues | p. 9 |
Android SDK Tools | p. 10 |
Android Development Costs | p. 11 |
Cross-Platform Alternatives | p. 12 |
Other Cross-Platform Tools | p. 12 |
Considerations for Selecting a Cross-Platform Tool | p. 12 |
How Does the Tool Allow You to Author Your Application? | p. 13 |
What Device Features Does the Tool Support? | p. 13 |
What Platforms Does the Tool Support? | p. 14 |
What Skill Sets Does the Tool Require? | p. 14 |
What Tools Exist to Support Development? | p. 14 |
How Active Are the Development Community and Support Channels? | p. 14 |
What Are the Successful Application Deployments for This Tool? | p. 14 |
Summary | p. 15 |
Chapter 2 Introduction To Mono For Android | p. 17 |
Before You Begin Developing | p. 17 |
What Is Mono? | p. 17 |
Mono Implementation Goals | p. 18 |
Mono Standards | p. 18 |
What Is Mono for Android? | p. 18 |
Why Do I Need Mono for Android? | p. 18 |
Familiar Development Environment | p. 19 |
Familiar API and Library Structure | p. 19 |
What Are the Trade-Off s of Working with Mono for Android? | p. 21 |
Waiting for Improvements | p. 21 |
Taking a Potential Performance Hit | p. 21 |
Memory Management | p. 21 |
What Do I Need for the Mono for Android Development Environment? | p. 22 |
Java SDK | p. 22 |
Android SDK | p. 22 |
Visual Studio | p. 24 |
Visual Studio Development with Mono for Android | p. 25 |
General Setup | p. 25 |
Building Hello Android | p. 26 |
Logging | p. 28 |
Debugging | p. 30 |
Testing | p. 30 |
Deploying | p. 31 |
Mono for Android Development with MonoDevelop | p. 31 |
General Setup | p. 31 |
Building Hello Android | p. 32 |
Logging | p. 34 |
Debugging | p. 34 |
Testing | p. 34 |
Deploying | p. 35 |
Summary | p. 35 |
Chapter 3 Understanding Android/Mono For Android Applications | p. 37 |
What Is an Android Application? | p. 38 |
The Building Blocks of an Android Application | p. 39 |
Activities | p. 39 |
Services | p. 44 |
Content Providers | p. 44 |
Broadcast Receivers | p. 47 |
Communicating between Components: Android Intents | p. 49 |
Binding the Components: The Android Manifest | p. 50 |
Android Manifest Basics | p. 51 |
Editing the Manifest for Mono for Android via Visual Studio | p. 54 |
Summary | p. 56 |
Chapter 4 PLANNING AND BUILDING YOUR APPLICATION'S USER INTERFACE | p. 59 |
Guidelines for a Successful Mobile UI | p. 59 |
Building an Android UI | p. 60 |
Views | p. 60 |
Design Surface | p. 61 |
Choosing a Control Layout | p. 61 |
AbsoluteLayout | p. 62 |
FrameLayout | p. 63 |
LinearLayout | p. 63 |
RelativeLayout | p. 65 |
TableLayout | p. 67 |
Optimizing Layouts | p. 68 |
Designing Your User Interface Controls | p. 69 |
TextView | p. 70 |
EditText | p. 70 |
AutoCompleteTextView | p. 71 |
Spinner | p. 71 |
Button | p. 73 |
Check Box | p. 73 |
Radio Buttons and Groups | p. 73 |
Clocks | p. 76 |
Pickers | p. 77 |
Images | p. 79 |
ImageView | p. 80 |
ImageButton | p. 80 |
Gallery | p. 80 |
Virtual Keyboards | p. 84 |
Selecting Your Virtual Keyboard | p. 86 |
Removing the Keyboard | p. 86 |
Controlling Your Menus | p. 87 |
Introducing the Menu System | p. 87 |
Menus | p. 87 |
Submenus | p. 90 |
Context Menus | p. 90 |
Defi ning Menus as a Resource | p. 92 |
Menus | p. 93 |
Context Menus | p. 94 |
Resolution-Independent UI | p. 95 |
Supporting Various Screen Resources | p. 95 |
Supporting Screen Sizes | p. 95 |
Supporting Pixel Densities | p. 96 |
Using Android Market Support | p. 97 |
Multiple Screen Resolution Best Practices | p. 97 |
Constructing a User Interface: A Phone and Tablet Example | p. 98 |
Summary | p. 104 |
Chapter 5 Working With Data | p. 105 |
Working with SQLite | p. 105 |
Setting Up a Database | p. 106 |
Setting Up Tables | p. 107 |
Using SQL Statements | p. 108 |
Using Read/Select to Read Data | p. 108 |
Using SQL Statements to Insert Data | p. 110 |
Upgrading Strategies | p. 110 |
Upgrading in Place | p. 111 |
Copying Data | p. 111 |
Android-Specific Database Options | p. 111 |
SQLiteOpenHelper | p. 111 |
Storing Data Remotely | p. 113 |
Working with Remote Data | p. 113 |
Accessing Enterprise Services | p. 114 |
Using SOAP | p. 115 |
Working with ASMX Web Services | p. 115 |
Working with Windows Communication Foundation (WCF) | p. 116 |
Using REST-Based Web Services | p. 119 |
Using JavaScript Object Notation (JSON) | p. 120 |
Posting Data with POST | p. 124 |
Retrieving Data Using LINQ and XML | p. 125 |
Using Asynchronous Data Retrieval | p. 127 |
Using Web Services Responsibly | p. 128 |
Working with Remote SQL Server Databases | p. 128 |
Summary | p. 130 |
Chapter 6 Binding Data To Controls | p. 131 |
Databinding in Mono for Android | p. 132 |
What Is a Data Adapter? | p. 133 |
What Is an Adapter View? | p. 133 |
How Do These Items Relate to One Another? | p. 134 |
Working with Adapter Views and Large Data Sets | p. 134 |
Exploring Adapters in Depth | p. 137 |
Using Native Adapters | p. 137 |
Exploring Adapter Views in Depth | p. 138 |
Using Native Adapter Views | p. 138 |
Working with Cursors | p. 139 |
Using a Cursor to Populate a Spinner | p. 139 |
Setting Up the Spinner and Data Source | p. 140 |
Using a Spinner Adapter | p. 143 |
Adding a Listener Event for a Spinner | p. 144 |
Using a Cursor with a Gallery | p. 147 |
Setting Up the Project | p. 148 |
Adding the Cursor | p. 150 |
Completing the Custom Adapter | p. 152 |
Working with Lists | p. 154 |
Displaying Simple Data in a List | p. 155 |
Working with Android's ListAdapters | p. 158 |
Customizing ListView with a Custom List Adapter | p. 160 |
Handling ListView Events | p. 166 |
Preferences Screen | p. 168 |
Nested Navigation | p. 171 |
Grouped Lists | p. 173 |
Displaying Data in a Grid | p. 177 |
Summary | p. 182 |
Chapter 7 Working With The File System And Application Preferences | p. 183 |
Working with the File System | p. 184 |
File System Type and Structure | p. 184 |
QuickEdit Sample Program: Working with a File Storage Example | p. 189 |
Working with Application Preferences | p. 195 |
Application Preference Types | p. 195 |
Creating Your Own Application Preferences | p. 196 |
Preferences Program | p. 197 |
Listening for Preference Changes | p. 202 |
Processing XML | p. 204 |
Summary | p. 205 |
Chapter 8 Programming With The Device Hardware | p. 207 |
Working with Sensors | p. 208 |
Referencing the Sensor Manager | p. 208 |
Sensor Support | p. 208 |
Accessing Sensors | p. 209 |
Using Sensors | p. 209 |
Understanding the Sensor Type Values | p. 211 |
Responding to Acceleration | p. 212 |
Using the XYZ Coordinate System | p. 213 |
Coding with the Accelerometer | p. 213 |
Building a Compass | p. 214 |
Vibration | p. 218 |
Networking Connectivity | p. 219 |
ConnectivityManager | p. 219 |
Checking User Communication Preferences | p. 219 |
Checking for Changes to BackgroundDataSetting | p. 220 |
Checking Current Network Configuration | p. 221 |
Creating Network Connectivity Notifications | p. 221 |
Wifi Manager | p. 221 |
WiFi States | p. 224 |
WiFi Changes | p. 225 |
Bluetooth Manager | p. 225 |
Working with Bluetooth State | p. 226 |
Enabling Voice Recognition in Your App | p. 227 |
Getting Turn-by-Turn Directions | p. 229 |
Summary | p. 235 |
Chapter 9 Using Multimedia - Audio, Video, And The Camera | p. 237 |
Android Media Classes | p. 238 |
Playing Audio and Video | p. 239 |
Media Player Supported Formats | p. 239 |
Programming Audio Playback | p. 240 |
Programming Video Playback | p. 244 |
Controlling Playback | p. 247 |
Managing Playback Output | p. 247 |
Recording Audio and Video | p. 247 |
Using Intents to Record Video | p. 248 |
Using the Media Recorder | p. 251 |
Confi guring Video Recording | p. 251 |
Previewing Video Recording | p. 252 |
Audio Recording | p. 253 |
Images and Using the Camera | p. 254 |
Using Intents to Take Pictures | p. 254 |
Controlling the Camera | p. 257 |
Managing Camera Settings and Picture Options | p. 257 |
Monitoring Autofocus | p. 259 |
Using the Camera Preview | p. 260 |
Taking a Picture | p. 261 |
Reading and Writing JPEG Exif Values | p. 262 |
Adding New Media to the Media Store | p. 263 |
Using the Media Scanner | p. 263 |
Adding New Media to the Store | p. 264 |
Speech Recognition | p. 265 |
Summary | p. 266 |
Chapter 10 Talking To Other Applications And Libraries | p. 269 |
Android Application Integration | p. 269 |
Opening the Browser | p. 269 |
Opening E-mail | p. 272 |
Making a Telephone Call | p. 273 |
Sending a Text/SMS Message | p. 274 |
Opening a Location in the Maps Application | p. 276 |
Opening a YouTube Video | p. 276 |
Opening the Market | p. 277 |
Application Integration | p. 278 |
Simple Integration with HootSuite and Other Twitter Applications | p. 279 |
Configuring Your Intent Filters | p. 279 |
Handling Incoming Intent Requests | p. 280 |
Integrating with Contacts | p. 280 |