{"product_id":"java-programming-for-android-developers-for-dummies-isbn-9781119301080","title":"Java Programming for Android Developers For Dummies","description":"\u003cb\u003eDevelop the next killer Android App using Java programming!\u003c\/b\u003e \u003cp\u003eAndroid is everywhere! It runs more than half the smartphones in the U.S.—and Java makes it go. If you want to cash in on its popularity by learning to build Android apps with Java, all the easy-to-follow guidance you need to get started is at your fingertips. Inside, you'll learn the basics of Java and grasp how it works with Android; then, you'll go on to create your first real, working application. How cool is that? \u003c\/p\u003e\u003cp\u003eThe demand for Android apps isn't showing any signs of slowing, but if you're a mobile developer who wants to get in on the action, it's vital that you get the necessary Java background to be a success. With the help of \u003ci\u003eJava Programming for Android Developers For Dummies\u003c\/i\u003e, you'll quickly and painlessly discover the ins and outs of using Java to create groundbreaking Android apps—no prior knowledge or experience required! \u003c\/p\u003e\u003cul\u003e \u003cli\u003eGet the know-how to create an Android program from the ground up\u003c\/li\u003e \u003cli\u003eMake sense of basic Java development concepts and techniques\u003c\/li\u003e \u003cli\u003eDevelop the skills to handle programming challenges\u003c\/li\u003e \u003cli\u003eFind out how to debug your app\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eDon't sit back and watch other developers release apps that bring in the bucks! Everything you need to create that next killer Android app is just a page away! \u003c\/p\u003e\u003cp\u003e\u003cb\u003eIntroduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHow to Use This Book 1\u003c\/p\u003e \u003cp\u003eConventions Used in This Book 2\u003c\/p\u003e \u003cp\u003eWhat You Don’t Have to Read 2\u003c\/p\u003e \u003cp\u003eFoolish Assumptions 3\u003c\/p\u003e \u003cp\u003eHow This Book Is Organized 4\u003c\/p\u003e \u003cp\u003ePart 1: Getting Started with Java Programming for Android Developers 4\u003c\/p\u003e \u003cp\u003ePart 2: Writing Your Own Java Programs 5\u003c\/p\u003e \u003cp\u003ePart 3: Working with the Big Picture: Object-Oriented Programming 5\u003c\/p\u003e \u003cp\u003ePart 4: Powering Android with Java Code 5\u003c\/p\u003e \u003cp\u003ePart 5: The Part of Tens 5\u003c\/p\u003e \u003cp\u003eMore on the web! 6\u003c\/p\u003e \u003cp\u003eIcons Used in This Book 6\u003c\/p\u003e \u003cp\u003eBeyond the Book 7\u003c\/p\u003e \u003cp\u003eWhere to Go from Here 7\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 1: Getting Started with Java Programming For Android Developers 9\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: All about Java and Android 11\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Consumer Perspective 12\u003c\/p\u003e \u003cp\u003eThe Many Faces of Android 13\u003c\/p\u003e \u003cp\u003eThe Developer Perspective 15\u003c\/p\u003e \u003cp\u003eJava 15\u003c\/p\u003e \u003cp\u003eXml 18\u003c\/p\u003e \u003cp\u003eLinux 19\u003c\/p\u003e \u003cp\u003eFrom Development to Execution with Java 20\u003c\/p\u003e \u003cp\u003eWhat is a compiler? 20\u003c\/p\u003e \u003cp\u003eWhat is a virtual machine? 24\u003c\/p\u003e \u003cp\u003eJava, Android, and Horticulture 26\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Getting the Tools That You Need 27\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Stuff You Need 28\u003c\/p\u003e \u003cp\u003eIf You Don’t Like to Read the Instructions . 29\u003c\/p\u003e \u003cp\u003eGetting This Book’s Sample Programs 32\u003c\/p\u003e \u003cp\u003eSetting Up Java 33\u003c\/p\u003e \u003cp\u003eSetting Up Android Studio and the Android SDK 37\u003c\/p\u003e \u003cp\u003eLaunching the Android Studio IDE 38\u003c\/p\u003e \u003cp\u003eOpening One of This Book’s Sample Programs 40\u003c\/p\u003e \u003cp\u003eUsing Android Studio 42\u003c\/p\u003e \u003cp\u003eStarting up 42\u003c\/p\u003e \u003cp\u003eThe main window 43\u003c\/p\u003e \u003cp\u003eThings You Might Eventually Have to Do 48\u003c\/p\u003e \u003cp\u003eInstalling new versions (and older versions) of Android 49\u003c\/p\u003e \u003cp\u003eCreating an Android virtual device 50\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Creating and Running an Android App 55\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating Your First App 56\u003c\/p\u003e \u003cp\u003eFirst things first 57\u003c\/p\u003e \u003cp\u003eLaunching your first app 61\u003c\/p\u003e \u003cp\u003eIf the Emulator Doesn’t Behave 63\u003c\/p\u003e \u003cp\u003eRunning third-party emulators 64\u003c\/p\u003e \u003cp\u003eTesting apps on a physical device 65\u003c\/p\u003e \u003cp\u003eThe Project Tool Window 68\u003c\/p\u003e \u003cp\u003eThe app\/manifests branch 68\u003c\/p\u003e \u003cp\u003eThe app\/java branch 69\u003c\/p\u003e \u003cp\u003eThe app\/res branches 69\u003c\/p\u003e \u003cp\u003eThe Gradle scripts branch 70\u003c\/p\u003e \u003cp\u003eDragging, Dropping, and Otherwise Tweaking an App 70\u003c\/p\u003e \u003cp\u003eCreating the “look” 71\u003c\/p\u003e \u003cp\u003eCoding the behavior 83\u003c\/p\u003e \u003cp\u003eWhat All That Java Code Does 88\u003c\/p\u003e \u003cp\u003eFinding the EditText and TextView components 88\u003c\/p\u003e \u003cp\u003eResponding to a button click 90\u003c\/p\u003e \u003cp\u003eThe rest of the code 91\u003c\/p\u003e \u003cp\u003eGoing Pro 93\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 2: Writing Your Own Java Programs 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: An Ode to Code 97\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHello, Android! 97\u003c\/p\u003e \u003cp\u003eThe Java Class 99\u003c\/p\u003e \u003cp\u003eThe names of classes 103\u003c\/p\u003e \u003cp\u003eWhy Java Methods Are Like Meals at a Restaurant 105\u003c\/p\u003e \u003cp\u003eWhat does Mom’s Restaurant have to do with Java? 106\u003c\/p\u003e \u003cp\u003eMethod declaration 106\u003c\/p\u003e \u003cp\u003eMethod call 108\u003c\/p\u003e \u003cp\u003eMethod parameters 108\u003c\/p\u003e \u003cp\u003eThe chicken or the egg 109\u003c\/p\u003e \u003cp\u003eHow many parameters? 109\u003c\/p\u003e \u003cp\u003eMethod declarations and method calls in an Android program 111\u003c\/p\u003e \u003cp\u003ePunctuating Your Code 116\u003c\/p\u003e \u003cp\u003eComments are your friends 119\u003c\/p\u003e \u003cp\u003eWhat’s Barry’s excuse? 122\u003c\/p\u003e \u003cp\u003eAll About Android Activities 123\u003c\/p\u003e \u003cp\u003eExtending a class 124\u003c\/p\u003e \u003cp\u003eOverriding methods 124\u003c\/p\u003e \u003cp\u003eAn activity’s workhorse methods 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Java’s Building Blocks 129\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eInfo Is As Info Does 130\u003c\/p\u003e \u003cp\u003eVariable names 133\u003c\/p\u003e \u003cp\u003eType names 133\u003c\/p\u003e \u003cp\u003eAssignments and initializations 134\u003c\/p\u003e \u003cp\u003eExpressions and literals 136\u003c\/p\u003e \u003cp\u003eHow to string characters together 139\u003c\/p\u003e \u003cp\u003eJava’s primitive types 140\u003c\/p\u003e \u003cp\u003eThings You Can Do with Types 142\u003c\/p\u003e \u003cp\u003eAdd letters to numbers (Huh?) 144\u003c\/p\u003e \u003cp\u003eJava’s exotic assignment operators 146\u003c\/p\u003e \u003cp\u003eTrue bit 147\u003c\/p\u003e \u003cp\u003eJava isn’t like a game of horseshoes 148\u003c\/p\u003e \u003cp\u003eUse Java’s logical operators 150\u003c\/p\u003e \u003cp\u003eParenthetically speaking 155\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Working with Java Types 157\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWorking with Strings 157\u003c\/p\u003e \u003cp\u003eGoing from primitive types to strings 158\u003c\/p\u003e \u003cp\u003eGoing from strings to primitive types 159\u003c\/p\u003e \u003cp\u003eGetting input from the user 160\u003c\/p\u003e \u003cp\u003ePractice Safe Typing 163\u003c\/p\u003e \u003cp\u003eWidening is good; narrowing is bad 165\u003c\/p\u003e \u003cp\u003eIncompatible types 166\u003c\/p\u003e \u003cp\u003eUsing a hammer to bang a peg into a hole 167\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Though These Be Methods, Yet There Is Madness in’t 169\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMinding Your Types When You Call a Method 170\u003c\/p\u003e \u003cp\u003eMethod parameters and Java types 173\u003c\/p\u003e \u003cp\u003eIf at first you don’t succeed 174\u003c\/p\u003e \u003cp\u003eReturn types 174\u003c\/p\u003e \u003cp\u003eThe great void 175\u003c\/p\u003e \u003cp\u003eDisplaying numbers 176\u003c\/p\u003e \u003cp\u003ePrimitive Types and Pass-by Value 177\u003c\/p\u003e \u003cp\u003eWhat’s a developer to do? 181\u003c\/p\u003e \u003cp\u003eA final word 183\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: What Java Does (and When) 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMaking Decisions 187\u003c\/p\u003e \u003cp\u003eJava if statements 189\u003c\/p\u003e \u003cp\u003eChoosing among many alternatives 191\u003c\/p\u003e \u003cp\u003eSome formalities concerning Java switch statements 198\u003c\/p\u003e \u003cp\u003eRepeating Instructions Over and Over Again 199\u003c\/p\u003e \u003cp\u003eCheck, and then repeat 200\u003c\/p\u003e \u003cp\u003eRepeat, and then check 207\u003c\/p\u003e \u003cp\u003eCount, count, count 211\u003c\/p\u003e \u003cp\u003eWhat’s Next? 214\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 3: Working with the Big Picture: Object-oriented Programming 215\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Why Object-Oriented Programming Is Like Selling Cheese 217\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eClasses and Objects 219\u003c\/p\u003e \u003cp\u003eWhat is a class, really? 220\u003c\/p\u003e \u003cp\u003eWhat is an object? 222\u003c\/p\u003e \u003cp\u003eCreating objects 223\u003c\/p\u003e \u003cp\u003eReusing names 227\u003c\/p\u003e \u003cp\u003eCalling a constructor 230\u003c\/p\u003e \u003cp\u003eMore About Classes and Objects (Adding Methods to the Mix) 232\u003c\/p\u003e \u003cp\u003eConstructors with parameters 235\u003c\/p\u003e \u003cp\u003eThe default constructor 239\u003c\/p\u003e \u003cp\u003eThis is it! 240\u003c\/p\u003e \u003cp\u003eGiving an object more responsibility 242\u003c\/p\u003e \u003cp\u003eMembers of a class 245\u003c\/p\u003e \u003cp\u003eReference types 246\u003c\/p\u003e \u003cp\u003ePass by reference 247\u003c\/p\u003e \u003cp\u003eJava’s Modifiers 251\u003c\/p\u003e \u003cp\u003ePublic classes and default-access classes 251\u003c\/p\u003e \u003cp\u003eAccess for fields and methods 253\u003c\/p\u003e \u003cp\u003eUsing getters and setters 257\u003c\/p\u003e \u003cp\u003eWhat does static mean? 260\u003c\/p\u003e \u003cp\u003eTo dot, or not 263\u003c\/p\u003e \u003cp\u003eA bad example 264\u003c\/p\u003e \u003cp\u003eWhat’s Next? 265\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Saving Time and Money: Reusing Existing Code 267\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Last Word on Employees — Or Is It? 268\u003c\/p\u003e \u003cp\u003eExtending a class 269\u003c\/p\u003e \u003cp\u003eOverriding methods 272\u003c\/p\u003e \u003cp\u003eJava’s super keyword 278\u003c\/p\u003e \u003cp\u003eJava annotations 279\u003c\/p\u003e \u003cp\u003eMore about Java’s Modifiers 281\u003c\/p\u003e \u003cp\u003eKeeping Things Simple 285\u003c\/p\u003e \u003cp\u003eUsing an interface 286\u003c\/p\u003e \u003cp\u003eSome Observations about Android’s Classes 291\u003c\/p\u003e \u003cp\u003eJava’s super keyword, revisited 292\u003c\/p\u003e \u003cp\u003eCasting, again 293\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 4: Powering Android with Java Code 295\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: The Inside Story 297\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Button-Click Example 297\u003c\/p\u003e \u003cp\u003eThis is a callback 302\u003c\/p\u003e \u003cp\u003eAndroid string resources (A slight detour) 302\u003c\/p\u003e \u003cp\u003eIntroducing Inner Classes 307\u003c\/p\u003e \u003cp\u003eNo Publicity, Please! 309\u003c\/p\u003e \u003cp\u003eLambda Expressions 313\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Dealing with a Bunch of Things at a Time 317\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating a Collection Class 318\u003c\/p\u003e \u003cp\u003eMore casting 320\u003c\/p\u003e \u003cp\u003eJava generics 321\u003c\/p\u003e \u003cp\u003eJava’s wrapper classes 325\u003c\/p\u003e \u003cp\u003eStepping Through a Collection 326\u003c\/p\u003e \u003cp\u003eUsing an iterator 326\u003c\/p\u003e \u003cp\u003eThe enhanced for statement 328\u003c\/p\u003e \u003cp\u003eA cautionary tale 329\u003c\/p\u003e \u003cp\u003eFunctional programming techniques 331\u003c\/p\u003e \u003cp\u003eJava’s Many Collection Classes 332\u003c\/p\u003e \u003cp\u003eArrays 333\u003c\/p\u003e \u003cp\u003eString resource arrays 336\u003c\/p\u003e \u003cp\u003eJava’s varargs 337\u003c\/p\u003e \u003cp\u003eUsing Collections in an Android App 340\u003c\/p\u003e \u003cp\u003eThe listener 343\u003c\/p\u003e \u003cp\u003eThe adapter 343\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: An Android Social Media App 345\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Twitter App’s Files 346\u003c\/p\u003e \u003cp\u003eThe Twitter4J API jar file 346\u003c\/p\u003e \u003cp\u003eThe manifest file 348\u003c\/p\u003e \u003cp\u003eThe main activity’s layout file 349\u003c\/p\u003e \u003cp\u003eHow to Talk to the Twitter Server 352\u003c\/p\u003e \u003cp\u003eUsing OAuth 353\u003c\/p\u003e \u003cp\u003eMaking a ConfigurationBuilder 353\u003c\/p\u003e \u003cp\u003eGetting OAuth keys and tokens 355\u003c\/p\u003e \u003cp\u003eThe Application’s Main Activity 357\u003c\/p\u003e \u003cp\u003eThe onCreate method 362\u003c\/p\u003e \u003cp\u003eThe button listener methods 363\u003c\/p\u003e \u003cp\u003eThe trouble with threads 363\u003c\/p\u003e \u003cp\u003eUnderstanding Android’s AsyncTask 366\u003c\/p\u003e \u003cp\u003eMy Twitter app’s AsyncTask classes 368\u003c\/p\u003e \u003cp\u003eCutting to the chase, at last 370\u003c\/p\u003e \u003cp\u003eJava’s Exceptions 372\u003c\/p\u003e \u003cp\u003eCatch clauses 374\u003c\/p\u003e \u003cp\u003eA finally clause 375\u003c\/p\u003e \u003cp\u003ePassing the buck 376\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Hungry Burds: A Simple Android Game 381\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing the Hungry Burds Game 382\u003c\/p\u003e \u003cp\u003eThe Main Activity 385\u003c\/p\u003e \u003cp\u003eThe code, all the code, and nothing but the code 388\u003c\/p\u003e \u003cp\u003eMeasuring the display 392\u003c\/p\u003e \u003cp\u003eConstructing a Burd 395\u003c\/p\u003e \u003cp\u003eAndroid animation 398\u003c\/p\u003e \u003cp\u003eCreating menus 400\u003c\/p\u003e \u003cp\u003eShared preferences 403\u003c\/p\u003e \u003cp\u003eInforming the user 404\u003c\/p\u003e \u003cp\u003eIt’s Been Fun 405\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart 5: the Part of Tens 407\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Ten Ways to Avoid Mistakes 409\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePutting Capital Letters Where They Belong 409\u003c\/p\u003e \u003cp\u003eBreaking Out of a switch Statement 410\u003c\/p\u003e \u003cp\u003eComparing Values with a Double Equal Sign 410\u003c\/p\u003e \u003cp\u003eAdding Listeners to Handle Events 411\u003c\/p\u003e \u003cp\u003eDefining the Required Constructors 411\u003c\/p\u003e \u003cp\u003eFixing Nonstatic References 412\u003c\/p\u003e \u003cp\u003eStaying within Bounds in an Array 412\u003c\/p\u003e \u003cp\u003eAnticipating Null Pointers 412\u003c\/p\u003e \u003cp\u003eUsing Permissions 414\u003c\/p\u003e \u003cp\u003eThe Activity Not Found 414\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Ten Websites for Developers 415\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThis Book’s Websites 415\u003c\/p\u003e \u003cp\u003eThe Horse’s Mouth 416\u003c\/p\u003e \u003cp\u003eFinding News and Reviews 416\u003c\/p\u003e \u003cp\u003eIndex 417\u003c\/p\u003e   \u003cp\u003e\u003cb\u003eBarry Burd, PhD,\u003c\/b\u003e is a professor in the Department of Mathematics and Computer Science at Drew University in Madison, New Jersey. He has lectured at conferences in the United States, Europe, Australia, and Asia. He hosts podcasts and videos about software and other technology topics. He is the author of many articles and books, including \u003ci\u003eJava For Dummies\u003c\/i\u003e.   \u003c\/p\u003e\u003cul\u003e \u003cli\u003eMaster basic Java programming\u003c\/li\u003e \u003cli\u003eCreate an Android program from start to finish\u003c\/li\u003e \u003cli\u003eAssemble and debug your own app\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003cb\u003eThe knowledge you need to build Android apps!\u003c\/b\u003e \u003c\/p\u003e\u003cp\u003eDo you have a great idea that you want to turn into an even better app? Java is the building block you need to develop remarkable Android programs. Even if you have zero Java experience, these step-by-step instructions get you going without any head-scratching or hand-wringing. First, you'll explore how Java and Android work together. Then you'll learn Java basics, how to work with Android Studio, and the essentials of object-oriented programmingall while creating and testing real working apps.  \u003c\/p\u003e\u003cp\u003e\u003cb\u003eInside…\u003c\/b\u003e \u003c\/p\u003e\u003cul\u003e \u003cli\u003eGetting and installing Android  Studio and why you need it\u003c\/li\u003e \u003cli\u003eSteps for setting up your app\u003c\/li\u003e \u003cli\u003eUsing an Android virtual device\u003c\/li\u003e \u003cli\u003eJava building blocks\u003c\/li\u003e \u003cli\u003eHow and why to reuse code\u003c\/li\u003e \u003cli\u003eTesting and debugging tips\u003c\/li\u003e \u003cli\u003eHow to build an Android game\u003c\/li\u003e \u003c\/ul\u003e","brand":"For Dummies","offers":[{"title":"Default Title","offer_id":47989488517349,"sku":"NP9781119301080","price":34.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119301080.jpg?v=1761784306","url":"https:\/\/k12savings.com\/products\/java-programming-for-android-developers-for-dummies-isbn-9781119301080","provider":"K12savings","version":"1.0","type":"link"}