ebook img

Android from A to D PDF

575 Pages·2015·18.391 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Android from A to D

A D NDROI A D from to Second Edition Scott L. Hecht Copyright © 2013-2015 Scott L. Hecht All rights reserved. ISBN-10: 1494807521 ISBN-13: 978-1494807528 Front/Back Cover Images: © Can Stock Photo Inc. / kirstypargeter 2 Table of Contents (Chapters) Preface to the Second Edition ........................................................................................................ 10 Preface to the First Edition ............................................................................................................. 11 Chapter 1: Installing the Android SDK on Windows ........................................................................ 13 Chapter 2: Creating Our First Android Application .......................................................................... 37 Chapter 3: Quick Start Guide to Java Programming ....................................................................... 53 Chapter 4: Exploring Useful Java Classes ...................................................................................... 73 Chapter 5A: Exploring the Eclipse Integrated Development Environment........................................ 88 Chapter 5B: Exploring Android Studio .......................................................................................... 114 Chapter 6: Introduction to the Android Platform ............................................................................ 149 Chapter 7: Android Layouts .......................................................................................................... 156 Chapter 8: Views Parade and the Eclipse Palette ......................................................................... 182 Chapter 9: Activities ..................................................................................................................... 189 Chapter 10: Wiring-Up Event Handlers ......................................................................................... 202 Chapter 11: Intents ...................................................................................................................... 207 Chapter 12: The Android Manifest ................................................................................................ 231 Chapter 13: Android Menus ......................................................................................................... 260 Chapter 14: Saving State: Bundle, SharedPreference and PreferenceActivity............................... 274 Chapter 15: Working with the SQLite Database ............................................................................ 291 Chapter 16: Content Providers ..................................................................................................... 328 Chapter 17: Adapters ................................................................................................................... 358 Chapter 18: Broadcasting Events ................................................................................................. 373 Chapter 19: Services ................................................................................................................... 383 Chapter 20: The Application Class ............................................................................................... 393 Chapter 21: Status Notifications ................................................................................................... 396 Chapter 22: Thread Programming in Android ............................................................................... 400 Chapter 23: Graphics ................................................................................................................... 407 Chapter 24: Pinch! Zoom! Swipe! - Detecting Gestures ................................................................ 452 Chapter 25: Detecting Device Rotation ......................................................................................... 461 Chapter 26: The GridView and ExpandableHeightGridView.......................................................... 463 Chapter 27: Using Tabs in an Activity ........................................................................................... 471 Chapter 28: Using the SlidingDrawer............................................................................................ 475 Chapter 29: Using <include> ........................................................................................................ 478 Chapter 30: Introduction to Fragments ......................................................................................... 488 Chapter 31: Working with WebView and WebViewClient .............................................................. 555 Chapter 32: Styles and Themes ................................................................................................... 558 Chapter 33: Distributing Your Android Application ........................................................................ 566 3 Table of Contents (Details) Preface to the Second Edition ........................................................................................................ 10 Preface to the First Edition ............................................................................................................. 11 Chapter 1: Installing the Android SDK on Windows ........................................................................ 13 Overview .................................................................................................................................... 13 Overview of the Steps to Be Performed ...................................................................................... 13 Pre-Step 1 - Download and Install the Android Developer Tools (ADT) Bundle ............................ 15 Pre-Step 2 - Download and Install the Java SE 8 Development Kit (JDK) .................................... 17 Step 1 - First Time Start up of Eclipse for Android ....................................................................... 24 Step 2 - Installing SDKs with the Android SDK Manager ............................................................. 26 Post-Step 1 - Installing the Database Perspective with Eclipse DTP ............................................ 30 Post-Step 2 - Setting Up Virtual Devices with Android Virtual Device (AVD) Manager.................. 33 Summary .................................................................................................................................... 36 Chapter 2: Creating Our First Android Application .......................................................................... 37 Hello, World! ............................................................................................................................... 37 Running the Project Using an Android Virtual Device .................................................................. 40 Running the Project Using an Android Physical Device ............................................................... 45 When Things Go Wrong ............................................................................................................. 46 A Quick Look into Our First Android Project ................................................................................ 47 A Quick Note about Debugging ................................................................................................... 49 Accessing the Internet from the Emulator .................................................................................... 51 Summary .................................................................................................................................... 52 Chapter 3: Quick Start Guide to Java Programming ....................................................................... 53 Java Type System ...................................................................................................................... 53 Making Comments ...................................................................................................................... 53 Conditional Execution ................................................................................................................. 54 Looping Constructs ..................................................................................................................... 56 Arithmetic Operators ................................................................................................................... 57 Assignment Operators ................................................................................................................ 57 Comparison Operators................................................................................................................ 57 Logical Operators ....................................................................................................................... 57 Bitwise Operators ....................................................................................................................... 57 Working with Strings ................................................................................................................... 58 Working with Arrays .................................................................................................................... 58 Exceptions .................................................................................................................................. 58 Object-Oriented Programming Concepts ..................................................................................... 59 Interface ..................................................................................................................................... 66 Abstract ...................................................................................................................................... 68 Variable-Length Arguments ........................................................................................................ 70 Running Java Test Programs ...................................................................................................... 71 Summary .................................................................................................................................... 72 Chapter 4: Exploring Useful Java Classes ...................................................................................... 73 Introduction ................................................................................................................................ 73 Text-Related Classes ................................................................................................................. 73 Mathematics-Related Classes..................................................................................................... 78 Collections-Related Classes ....................................................................................................... 82 Date- and Time-Related Classes ................................................................................................ 85 Chapter 5A: Exploring the Eclipse Integrated Development Environment ....................................... 88 A First Look at the IDE ................................................................................................................ 88 Perspectives ............................................................................................................................... 96 Views ......................................................................................................................................... 99 Menus ...................................................................................................................................... 102 Search ...................................................................................................................................... 104 Automatic Code Generation ...................................................................................................... 106 Using the Scrapbook ................................................................................................................ 108 Using Keyboard Short-Cuts ...................................................................................................... 111 Summary .................................................................................................................................. 113 Chapter 5B: Exploring Android Studio .......................................................................................... 114 Overview .................................................................................................................................. 114 Downloading Android Studio ..................................................................................................... 114 4 A First Look at the IDE .............................................................................................................. 119 Running the Project using the Emulator .................................................................................... 124 Running the Project using a Physical Device ............................................................................. 127 A Quick Note about Debugging ................................................................................................. 128 What about Perspectives and Views? ....................................................................................... 129 Bookmarks ............................................................................................................................... 130 TODO, FIXME and Additional Comment Markers ...................................................................... 131 Search ...................................................................................................................................... 133 Code Snippets .......................................................................................................................... 134 Code Completion ...................................................................................................................... 137 Automatic Code Generation ...................................................................................................... 138 Android Studio Plugins.............................................................................................................. 139 Using Keyboard Short-Cuts ...................................................................................................... 141 Version Control with Git ............................................................................................................ 142 Summary .................................................................................................................................. 148 Chapter 6: Introduction to the Android Platform ............................................................................ 149 Overview .................................................................................................................................. 149 Activities and Intents ................................................................................................................. 150 Services ................................................................................................................................... 150 Maintaining State ...................................................................................................................... 151 Content Providers ..................................................................................................................... 151 Broadcast Receivers ................................................................................................................. 152 Layouts..................................................................................................................................... 152 Alerting Users ........................................................................................................................... 153 Application ................................................................................................................................ 153 External Resources .................................................................................................................. 153 Android Platform Versions, API Levels and Version Code Names ............................................. 154 Summary .................................................................................................................................. 155 Chapter 7: Android Layouts .......................................................................................................... 156 Overview .................................................................................................................................. 156 Two Views - TextView and Button ............................................................................................. 157 Linear Layout ............................................................................................................................ 160 ScrollView Layout ..................................................................................................................... 162 HorizontalScrollView Layout ..................................................................................................... 164 A Word about the Android Reference Manual ........................................................................... 166 Table Layout ............................................................................................................................. 170 Relative Layout ......................................................................................................................... 172 Frame Layout ........................................................................................................................... 174 ListView and GridView Layout ................................................................................................... 176 Combining Layouts ................................................................................................................... 178 Summary .................................................................................................................................. 181 Chapter 8: Views Parade and the Eclipse Palette ......................................................................... 182 Overview .................................................................................................................................. 182 Form Widgets ........................................................................................................................... 182 Text Fields ................................................................................................................................ 183 Layouts..................................................................................................................................... 185 Composites .............................................................................................................................. 185 Images & Media ........................................................................................................................ 186 Time & Date ............................................................................................................................. 186 Transitions ................................................................................................................................ 187 Advanced ................................................................................................................................. 187 Custom & Library Views ............................................................................................................ 188 Summary .................................................................................................................................. 188 Chapter 9: Activities ..................................................................................................................... 189 Overview .................................................................................................................................. 189 A Look at Our Simple Example ................................................................................................. 189 Accessing Programmer Created Resources .............................................................................. 192 Accessing Android Provided Resources .................................................................................... 195 The Activity Lifecycle ................................................................................................................ 196 Notifications .............................................................................................................................. 199 Summary .................................................................................................................................. 201 Chapter 10: Wiring-Up Event Handlers ......................................................................................... 202 5 Overview .................................................................................................................................. 202 Ways to Wire-Up Event Handlers .............................................................................................. 202 Event Handler Method #1 & #2 ................................................................................................. 202 Event Handler Method #3 ......................................................................................................... 204 Event Handler Method #4 ......................................................................................................... 204 Discussion ................................................................................................................................ 205 Chapter 11: Intents ...................................................................................................................... 207 Overview .................................................................................................................................. 207 Explicit Intents .......................................................................................................................... 208 Implicit Intents .......................................................................................................................... 216 Discussion ................................................................................................................................ 221 Intent Filters.............................................................................................................................. 222 Determining Applications Providing a Specific Intent Filter ........................................................ 227 Summary .................................................................................................................................. 230 Chapter 12: The Android Manifest ................................................................................................ 231 Overview .................................................................................................................................. 231 Structure of the AndroidManifest.xml File .................................................................................. 231 The <manifest> Tag.................................................................................................................. 232 The <uses-sdk> Tag ................................................................................................................. 233 The <application> Tag .............................................................................................................. 234 The <activity> Tag .................................................................................................................... 236 The <activity-alias> Tag ............................................................................................................ 241 The <meta-data> Tag ............................................................................................................... 242 The <intent-filter> Tag .............................................................................................................. 243 The <action> Tag ..................................................................................................................... 243 The <category> Tag ................................................................................................................. 244 The <data> Tag ........................................................................................................................ 244 The <provider> Tag .................................................................................................................. 245 The <receiver> Tag .................................................................................................................. 246 The <service> Tag .................................................................................................................... 247 The <grant-uri-permission> Tag ................................................................................................ 248 The <instrumentation> Tag ....................................................................................................... 249 The <permission> Tag .............................................................................................................. 250 The <permission-group> Tag .................................................................................................... 251 The <permission-tree> Tag ....................................................................................................... 252 The <compatible-screens> Tag................................................................................................. 252 The <supports-screens> Tag .................................................................................................... 253 The <supports-gl-texture> Tag .................................................................................................. 254 The <uses-configuration> Tag .................................................................................................. 255 The <uses-feature> Tag ........................................................................................................... 256 The <uses-library> Tag ............................................................................................................. 257 The <uses-permission> Tag ..................................................................................................... 258 Using the Android Manifest GUI Interface ................................................................................. 258 Summary .................................................................................................................................. 259 Chapter 13: Android Menus ......................................................................................................... 260 Overview .................................................................................................................................. 260 The Menu Resource XML File................................................................................................... 261 The <menu> Tag ...................................................................................................................... 261 The <item> Tag ........................................................................................................................ 261 The <group> Tag ...................................................................................................................... 263 Creating an Options Menu using a Menu Resource XML File .................................................... 263 Handling Item Clicks in Code .................................................................................................... 268 Creating a Context Menu .......................................................................................................... 270 Creating a Popup Menu ............................................................................................................ 273 Summary .................................................................................................................................. 273 Chapter 14: Saving State: Bundle, SharedPreference and PreferenceActivity .............................. 274 Overview .................................................................................................................................. 274 Using the Bundle Parameter ..................................................................................................... 274 Using SharedPreferences ......................................................................................................... 278 Using Map<K,V> with SharedPreferences ................................................................................ 280 Using PreferenceActivity ........................................................................................................... 280 Summary .................................................................................................................................. 290 6 Chapter 15: Working with the SQLite Database ............................................................................ 291 Overview .................................................................................................................................. 291 Installing SQLite on Windows.................................................................................................... 291 Installing the SQLite Expert Personal Edition Software .............................................................. 292 Read-Only or Read-Write SQLite Database .............................................................................. 293 Storage Location of the SQLite Database ................................................................................. 294 Transferring Your SQLite Database to the Device ..................................................................... 295 Interacting with a SQLite Database ........................................................................................... 296 Installing a SQLite JDBC Driver and Using the Eclipse Database Perspective ........................... 296 Using SQLite from the Command Line ...................................................................................... 299 Introduction to the Structured Query Language (SQL) ............................................................... 302 The Data Manipulation Language (DML) ................................................................................... 304 Limiting the Number of Rows Returned from a Query ................................................................ 306 Joining Tables Together ........................................................................................................... 307 Using the sqlite_master Table ................................................................................................... 308 Using Views .............................................................................................................................. 309 The Data Definition Language (DDL) ........................................................................................ 309 A Discussion on Indexes ........................................................................................................... 311 Using EXPLAIN QUERY PLAN ................................................................................................. 312 Column Constraints .................................................................................................................. 313 Programming with the SQLite Database.................................................................................... 314 Quick Start Guide ..................................................................................................................... 316 So Why Use Anything Else? The SQLiteOpenHelper Class ..................................................... 322 What is a Cursor Factory? ........................................................................................................ 326 A Comment about Database Locale .......................................................................................... 326 A Comment about SQLite Sort-Order Problems ........................................................................ 327 Summary .................................................................................................................................. 327 Chapter 16: Content Providers ..................................................................................................... 328 Overview .................................................................................................................................. 328 The Uri, Uri.Builder, ContentUris and UriMatcher Classes ......................................................... 330 Steps Involved in Creating a Content Provider: Overview .......................................................... 335 Step #1: Creating the SQLite Database .................................................................................... 336 Step #2: Create the Content URIs ............................................................................................. 337 Step #3: Create the MIME Types .............................................................................................. 338 Step #4: Create the Contract Classes ....................................................................................... 338 Step #5: Create the Content Provider ........................................................................................ 341 Step #6: Determine Content Provider Permission(s) .................................................................. 345 Step #7: Update AndroidManifest.xml ....................................................................................... 345 Steps Involved in Using a Content Resolver .............................................................................. 346 Step #1: Compile and Install Your Application ........................................................................... 346 Step #2: Obtain the Contract Class(es) ..................................................................................... 346 Step #3: Create a Test Application ............................................................................................ 347 Step #4: Using the ContentResolver Class ................................................................................ 347 Using an Adapter to Populate the ListView ................................................................................ 349 Summary .................................................................................................................................. 357 Chapter 17: Adapters ................................................................................................................... 358 Overview .................................................................................................................................. 358 What about ListActivity and ExpandableListActivity? ................................................................. 358 Be on the Lookout for the Elusive TextView .............................................................................. 359 Android-Provided Layouts or My Own? ..................................................................................... 359 Simple Data Display - No Need for an Adapter .......................................................................... 359 Less Simple Data Display #1 - Using ArrayAdapter ................................................................... 360 Less Simple Data Display #2 - Using SimpleCursorAdapter ...................................................... 363 Less Simple Data Display #3 - Using SimpleCursorTreeAdapter ............................................... 364 Less Simple Data Display #4 - Using ResourceCursorTreeAdapter ........................................... 366 Less Simple Data Display #5 - Using SpinnerAdapter ............................................................... 369 Summary .................................................................................................................................. 372 Chapter 18: Broadcasting Events ................................................................................................. 373 Overview .................................................................................................................................. 373 Broadcasting an Event .............................................................................................................. 373 Receiving a Broadcasted Event ................................................................................................ 374 Can I Send and Receive My Own Broadcasts? ......................................................................... 375 7 Receiving Android System Broadcasts...................................................................................... 376 Using the DownloadManager Service ....................................................................................... 378 Summary .................................................................................................................................. 382 Chapter 19: Services ................................................................................................................... 383 Overview .................................................................................................................................. 383 Creating a Service .................................................................................................................... 383 Alternate Ways to Stop a Service .............................................................................................. 387 Using IntentService instead of Handling Threading Yourself...................................................... 387 Binding a Client to a Service ..................................................................................................... 389 Summary .................................................................................................................................. 392 Chapter 20: The Application Class ............................................................................................... 393 Overview .................................................................................................................................. 393 Summary .................................................................................................................................. 395 Chapter 21: Status Notifications ................................................................................................... 396 Overview .................................................................................................................................. 396 Steps to Generate a Notification ............................................................................................... 396 Example Code .......................................................................................................................... 396 Additions to the AndroidManifest.xml File .................................................................................. 399 Summary .................................................................................................................................. 399 Chapter 22: Thread Programming in Android ............................................................................... 400 Overview .................................................................................................................................. 400 Using the AsyncTask Class ...................................................................................................... 401 Using the Thread Class ............................................................................................................ 404 Discussion ................................................................................................................................ 404 Displaying a Progress Bar When Using the AsyncTask Class ................................................... 405 Summary .................................................................................................................................. 406 Chapter 23: Graphics ................................................................................................................... 407 Overview .................................................................................................................................. 407 What is a Drawable? ................................................................................................................. 408 Graphics via XML Resources - An Overview ............................................................................. 408 Graphics via XML Resources - Animations using <animation-list> XML Tag .............................. 410 Graphics via XML Resources - Handling Bitmaps using the <bitmap> XML Tag ........................ 412 Graphics via XML Resources - Clipping Images using the <clip> XML Tag ............................... 414 Graphics via XML Resources - Colors using the <color> XML Tag ............................................ 415 Graphics via XML Resources - Gradients using the <shape> XML Tag .................................... 416 Graphics via XML Resources - Insets using the <inset> XML Tag ............................................. 416 Graphics via XML Resources - Layers using the <layer-list> XML Tag ...................................... 417 Graphics via XML Resources - Levels using the <level-list> XML Tag ....................................... 418 Graphics via XML Resources - Nine-Patch Images using <nine-patch> XML Tag ..................... 418 Graphics via XML Resources - PaintDrawable using the <shape> XML Tag ............................. 419 Graphics via XML Resources - PictureDrawable ....................................................................... 420 Graphics via XML Resources - RotateDrawable using the <rotate> XML Element .................... 420 Graphics via XML Resources - Scaling using the <scale> XML Tag .......................................... 420 Graphics via XML Resources - State Lists using the <selector> XML Tag ................................. 421 Graphics via XML Resources - Shapes using the <shape> XML Tag ........................................ 424 Graphics via XML Resources - Transitions using the <transition> XML Tag .............................. 426 Static Graphics in Two-Dimensions - An Overview .................................................................... 427 Static Graphics in Two-Dimensions - Relevant Classes and Enums - An Overview ................... 428 Static Graphics in Two-Dimensions - Static Graphic Example #1 .............................................. 435 Tweened Animated Graphics in Two-Dimensions - An Overview............................................... 442 Tweened Animated Graphics in Two-Dimensions - View Animation .......................................... 444 Tweened Animated Graphics in Two-Dimensions - Property Animation ..................................... 447 SurfaceView and the SurfaceHolder Interface ........................................................................... 447 A Comment about WindowManager .......................................................................................... 451 A Comment on Infragistics Iguana Chart Widgets ..................................................................... 451 Chapter 24: Pinch! Zoom! Swipe! - Detecting Gestures ................................................................ 452 Overview .................................................................................................................................. 452 Detecting Flings ........................................................................................................................ 453 Detecting Pinch-and-Zoom ....................................................................................................... 457 Controlling the Scrolling of a TextView ...................................................................................... 458 Chapter 25: Detecting Device Rotation......................................................................................... 461 Overview .................................................................................................................................. 461 8 The Android Manifest and Device Orientation Changes............................................................. 461 The Android Manifest and Preventing Orientation Changes ....................................................... 462 Chapter 26: The GridView and ExpandableHeightGridView.......................................................... 463 Overview .................................................................................................................................. 463 The GridView Class .................................................................................................................. 463 Step #1: Add a GridView view to the Layout .............................................................................. 463 Step #2: Define Each Cell's Layout ........................................................................................... 464 Step #3: Create a Custom Adapter Subclassed from BaseAdapter ............................................ 464 Step #4: Modify the Activity's Code ........................................................................................... 465 The ExpandableHeightGridView Class ...................................................................................... 466 Chapter 27: Using Tabs in an Activity ........................................................................................... 471 Overview .................................................................................................................................. 471 Create the Umbrella Activity ...................................................................................................... 471 Create the Activity..................................................................................................................... 471 Chapter 28: Using the SlidingDrawer............................................................................................ 475 Overview .................................................................................................................................. 475 Defining the SlidingDrawer ........................................................................................................ 475 Setting Up Open/Close Listeners for the SlidingDrawer ............................................................. 476 Chapter 29: Using <include> ........................................................................................................ 478 Overview .................................................................................................................................. 478 Using <include> ........................................................................................................................ 485 Coding with <include>............................................................................................................... 485 Chapter 30: Introduction to Fragments ......................................................................................... 488 Overview .................................................................................................................................. 488 Fragment Class and Android Support Libraries ......................................................................... 491 Fragments via the XML <fragment> Tag - Simple Example #1 .................................................. 492 Fragments via the XML LinearLayout Tag - Simple Example #2 ................................................ 497 Fragments via the XML LinearLayout Tag - Simple Example #2.5 ............................................. 502 Fragment Lifecycle ................................................................................................................... 505 Communication between Fragments ......................................................................................... 506 EquityYo! and Fragments - Complex Example #1 ..................................................................... 507 Fragment Subclasses (DialogFragment, ListFragment, PreferenceFragment) ........................... 545 EquityYo! and Fragments - Complex Example #2 ..................................................................... 545 Summary .................................................................................................................................. 554 Chapter 31: Working with WebView and WebViewClient .............................................................. 555 Overview .................................................................................................................................. 555 Step #1 - Add the WebView to the GUI ..................................................................................... 555 Step #2 - Wire up the WebView and the WebViewClient ........................................................... 556 Chapter 32: Styles and Themes ................................................................................................... 558 Overview .................................................................................................................................. 558 Creating Your Own Style........................................................................................................... 558 Modifying a Previously Defined Style of Yours .......................................................................... 559 Modifying an Android-Defined Style .......................................................................................... 559 A Question about the Question Mark (?) ................................................................................... 560 Applying Styles to Activities and/or Applications: Themes ......................................................... 560 Applying Style Changes to Android-Provided Layouts ............................................................... 563 Summary .................................................................................................................................. 565 Chapter 33: Distributing Your Android Application ........................................................................ 566 Overview .................................................................................................................................. 566 Signing Your Application ........................................................................................................... 566 Exporting Your Application ........................................................................................................ 568 Signing Up with Google Play ..................................................................................................... 571 Uploading an Application to Google Play................................................................................... 572 Making Money Selling Your Applications on Google Play .......................................................... 574 Summary .................................................................................................................................. 575 9 Preface to the Second Edition In this edition of Android from A to D, I have made several minor as well as major changes throughout the book. Be aware that I have reorganized and renumbered some of the chapters, updated some images, corrected some sepllnig...uh...spelling mistakes, and so on. For example, the chapter on distributing your app, which mysteriously appeared in the middle of the First Edition, now appears at the end of the book in this edition. I have also placed a text file containing all of the code used throughout the book on my personal, yet strangely named, website: www.sheepsqueezers.com. The installation instructions have been updated and now outline how to install the Android Software Development Kit (SDK) using the Android Developer Tools (ADT) Bundle. This method of installing the SDK greatly simplifies getting the prospective Android developer up-and-running in the shortest period of time. In the previous edition, I included a Java Quick Start Guide. In this edition, that chapter remains, but I have also included a chapter outlining several useful Java classes such as Math, String, SimpleDateFormat, ArrayList, and more. I have included a chapter on the new Android Studio Integrated Development Environment (IDE). Note that this software is still in early access preview status and not recommended for production programming projects. With that said, I explain many of its features and attempt to compare them to similar features found in Eclipse, where possible. In this edition, I have included a light-and-fluffy introduction to fragments, for those of you who are curious. Many Android apps now make use of fragments and an explanation of this functionality was missing from the previous edition...oops!...my bad. Note that there are several Android programming books out there promising to make you an Android programming guru in a few days or weeks. With all due respect to the authors of those books, if you are determined to create Android apps be aware that it will take you months of study - not days, not weeks - to learn how to program for the Android platform. Sorry if I’m bursting your bubble, but it’s better to tell you the truth rather than give you false expectations. Finally, on a personal note, I’d like to thank all of you who have purchased either the Kindle or the paperback version of this book. I realize it’s not easy to plunk down money for a book on a complicated topic written by an unknown author, so thank you very much for giving me a chance! Good luck with your Android programming studies! Thanks, Scott L. Hecht July 12, 2014 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.