Android 6 for Programmers

Prentice Hall
Paul J. Deitel / Harvey Deitel / Alexander Wald  
Prentice Hall
Total pages
December 2015
Related Titles

Product detail

Title no longer available


This book presents leading-edge computing technologies for professional software developers. At the heart of the book is the Deitel “app-driven approach”—concepts are presented in the context of complete working Android apps, rather than using code snippets. Note that this is the professional edition, with all of the classroom pedagogy stripped out and no instructor resources. The text edition is ISBN 978-0-13-444430-7.


  • An update of Deitel's popular tutorial for the Android M and Android Studio 1.3 releases.
  • Uses the Deitels' unique application-driven approach; each new technology is discussed in the context of a complete real-world Android App
  • Shows how to use Eclipse and Android Development Tools (ADT) for Eclipse to create, debug, and deploy Android apps
  • Covers not only programming, but also how to register as an Android Developer and how to sell and market apps on Google Play

Table of Contents

Preface    xxi

Before You Begin    xxxi


Chapter 1: Introduction to Android    1

1.1 Introduction   2

1.2 Android–The World’s Leading Mobile Operating System   3

1.3 Android Features   3

1.4 Android Operating System   6

1.5 Downloading Apps from Google Play   13

1.6 Packages   14

1.7 Android Software Development Kit (SDK)   16

1.8 Object-Oriented Programming: A Quick Refresher   18

1.9 Test-Driving the Tip Calculator App in an Android Virtual Device (AVD)   21

1.10 Building Great Android Apps   30

1.11 Android Development Resources   32

1.12 Wrap-Up   34


Chapter 2: Welcome App    35

Dive-Into® Android Studio: Introducing Visual GUI Design, Layouts, Accessibility and Internationalization

2.1 Introduction   36

2.2 Technologies Overview   37

2.3 Creating an App   38

2.4 Android Studio Window   44

2.5 Building the App’s GUI with the Layout Editor   49

2.6 Running the Welcome App   65

2.7 Making Your App Accessible   66

2.8 Internationalizing Your App   67

2.9 Wrap-Up   72


Chapter 3: Tip Calculator App   73

Introducing GridLayout, EditText, SeekBar, Event Handling, NumberFormat, Customizing the App’s Theme and Defining App Functionality with Java

3.1 Introduction   74

3.2 Test-Driving the Tip Calculator App   75

3.3 Technologies Overview   76

3.4 Building the GUI   81

3.5 Default Theme and Customizing Theme Colors   88

3.6 Adding the App’s Logic   92

3.7 AndroidManifest.xml   100

3.8 Wrap-Up   103


Chapter 4: Flag Quiz App   105

Fragments, Menus, Preferences, Explicit Intents, Handler, AssetManager, Tweened Animations, Animators, Toasts, Color State Lists, Layouts for Multiple Device Orientations, Logging Error Messages for Debugging

4.1 Introduction   106

4.2 Test-Driving the Flag Quiz App   108

4.3 Technologies Overview   113

4.4 Creating the Project, Resource Files and Additional Classes   121

4.5 Building the App’s GUI   132

4.6 MainActivity Class   140

4.7 MainActivityFragment Class 147

4.8 SettingsActivity Class   161

4.9 SettingsActivityFragment Class   161

4.10 AndroidManifest.xml   162

4.11 Wrap-Up   164


Chapter 5: Doodlz App   165

2D Graphics, Canvas, Bitmap, Accelerometer, SensorManager, Multitouch Events, MediaStore, Printing, Android 6.0 Permissions, Gradle

5.1 Introduction   167

5.2 Test-Driving the Doodlz App in an Android Virtual Device (AVD)   168

5.3 Technologies Overview   173

5.4 Creating the Project and Resources   176

5.5 Building the App’s GUI   181

5.6 MainActivity Class   187

5.7 MainActivityFragment Class   188

5.8 DoodleView Class   198

5.9 ColorDialogFragment Class   207

5.10 LineWidthDialogFragment Class   211

5.11 EraseImageDialogFragment Class   214

5.12 Wrap-Up   216


Chapter 6: Cannon Game App   217

Manual Frame-By-Frame Animation, Graphics, Sound, Threading, SurfaceView and SurfaceHolder, Immersive Mode and Full-Screen

6.1 Introduction   218

6.2 Test-Driving the Cannon Game App   220

6.3 Technologies Overview   220

6.4 Building the GUI and Resource Files   222

6.5 Overview of This App’s Classes   225

6.6 MainActivity Subclass of Activity   226

6.7 MainActivityFragment Subclass of Fragment   226

6.8 Class GameElement   228

6.9 Blocker Subclass of GameElement   230

6.10 Target Subclass of GameElement   230

6.11 Cannon Class   231

6.12 Cannonball Subclass of GameElement   234

6.13 CannonView Subclass of SurfaceView   237

6.14 Wrap-Up   254


Chapter 7: WeatherViewer App   256

REST Web Services, AsyncTask, HttpUrlConnection, Processing JSON Responses, JSONObject, JSONArray, ListView, ArrayAdapter, ViewHolder Pattern, TextInputLayout, FloatingActionButton

7.1 Introduction   257

7.2 Test-Driving the WeatherViewer App   258

7.3 Technologies Overview   259

7.4 Building the App’s GUI and Resource Files   265

7.5 Class Weather   269

7.6 Class WeatherArrayAdapter   272

7.7 Class MainActivity   277

7.8 Wrap-Up   284


Chapter 8: Twitter® Searches App   286

SharedPreferences, SharedPreferences.Editor, Implicit Intents, Intent Choosers, RecyclerView, RecyclerView.Adapter, RecyclerView.ViewHolder, RecyclerView.ItemDecoration

8.1 Introduction   287

8.2 Test-Driving the App   288

8.3 Technologies Overview   295

8.4 Building the App’s GUI and Resource Files   297

8.5 MainActivity Class   303

8.6 SearchesAdapter Subclass of RecyclerView.Adapter   315

8.7 ItemDivider Subclass of RecyclerView.ItemDecoration   318

8.8 A Note on Fabric: Twitter’s New Mobile Development Platform   320

8.9 Wrap-Up   320


Chapter 9: Address Book App   322

FragmentTransactions and the Fragment Back Stack, SQLite, SQLiteDatabase, SQLiteOpenHelper, ContentProvider, ContentResolver, Loader, LoaderManager, Cursor and GUI Styles

9.1 Introduction   324

9.2 Test-Driving the Address Book App   326

9.3 Technologies Overview   328

9.4 Building the GUI and Resource Files   331

9.5 Overview of This Chapter’s Classes   341

9.6 DatabaseDescription Class   342

9.7 AddressBookDatabaseHelper Class   344

9.8 AddressBookContentProvider Class   346

9.9 MainActivity Class   354

9.10 ContactsFragment Class   360

9.11 ContactsAdapter Class   365

9.12 AddEditFragment Class   368

9.13 DetailFragment Class   376

9.14 Wrap-Up   382


Chapter 10: Google Play and App Business Issues   384

10.1 Introduction   385

10.2 Preparing Your Apps for Publication   385

10.3 Pricing Your App: Free or Fee   390

10.4 Monetizing Apps with In-App Advertising   392

10.5 Monetizing Apps: Using In-App Billing to Sell Virtual Goods   393

10.6 Registering at Google Play   394

10.7 Setting Up a Google Payments Merchant Account   395

10.8 Uploading Your Apps to Google Play   395

10.9 Launching Play Store from Within Your App   397

10.10 Managing Your Apps in Google Play   398

10.11 Other Android App Marketplaces   398

10.12 Other Mobile App Platforms and Porting Your Apps   398

10.13 Marketing Your Apps   399

10.14 Wrap-Up   403


Index   405



Paul Deitel, CEO and Chief Technical Officer of Deitel & Associates, Inc., is a graduate of MIT, where he studied Information Technology. Through Deitel & Associates, Inc., he has delivered hundreds of programming courses worldwide to clients, including Cisco, IBM, Siemens, Sun Microsystems, Dell, Fidelity, NASA at the Kennedy Space Center, the National Severe Storm Laboratory, White Sands Missile Range, Rogue Wave Software, Boeing, SunGard Higher Education, Nortel Networks, Puma, iRobot, Invensys and many more. He and his co-author, Dr. Harvey M. Deitel, are the world’s best-selling programming-language textbook/professional book/video authors.


Dr. Harvey Deitel, Chairman and Chief Strategy Officer of Deitel & Associates, Inc., has over 50 years of experience in the computer field. Dr. Deitel earned B.S. and M.S. degrees in Electrical Engineering from MIT and a Ph.D. in Mathematics from Boston University. He has extensive college teaching experience, including earning tenure and serving as the Chairman of the Computer Science Department at Boston College before founding Deitel & Associates, Inc., in 1991 with his son, Paul. The Deitels’ publications have earned international recognition, with translations published in Japanese, German, Russian, Spanish, French, Polish, Italian, Simplified Chinese, Traditional Chinese, Korean, Portuguese, Greek, Urdu and Turkish. Dr. Deitel has delivered hundreds of programming courses to corporate, academic, government and military clients.

Reader Review(s)

“Takes the best from the second edition and extends it with Android 6, the Android Studio IDE and material design. Presents fully functional apps ready to deploy, and covered under the Creative Commons license. From game development, REST, intents, material design, printing, navigating Android Studio and the Android 6 permissions model, this book has something for everyone.’’–Jim Hathaway, Application Developer, Kellogg Company


“Android 6 for Programmers: An App-Driven Approach will get you up and running with the latest Android version in no time. The book guides you step-by-step in developing real working apps that you use to learn key concepts that can then be used as the basis of your next great app. Covers the important steps required in creating, designing, coding and running real apps using the latest platform, tools, components, and design guidelines.”–Luis Ramirez, Lead Android Engineer at Reverb


“I really love what you’re doing with the book. It has the potential to become the best Android book on the market. It’s impressive to see so many well-explained useful examples of Android patterns.’’–Dan Galpin, Android Advocate and author of Intro to Android Application Development


‘‘I wish this book had been around when I started developing on Android. I haven’t seen any other books cover app publishing so well and the links provided are an impressive collection. You get full applications that show multiple parts of the APIs working together.’’–Douglas Jones, Senior Software Engineer, Fullpower Technologies


‘‘By far, this is the quickest way to get comfortable writing applications for the #1 mobile operating system. I really enjoy the book. While the target audience is people with some development experience, even novices will find this book an interesting read and it will speed their immersion into Android development. Each chapter introduces a core aspect of the Android platform by illustrating the capability with working code. The sample apps demonstrate the topics of each chapter, which easily can be applied to your own projects.’’–Eric J. Bowden, COO, Safe Driving Systems, LLC


‘‘Teaches you the Android SDK through actual use. Shows you how to write a new app in every chapter, explaining each aspect of the SDK as it’s encountered. Whether you’ve never touched Android or you have some apps under your belt already, this book is definitely worth picking up.’’–Ian G. Clifton, Author of Android User Interface Design: Implementing Material Design for Developers, Second Edition


‘‘The authors captured the right mix of Android enhancements and masterfully wove them into solid, practical apps. Great job!’’–Chuck Lasky, Northern Virginia Community College


‘‘The ‘Characteristics of Great Apps’ table is excellent.’’–Jesus Ubaldo Quevedo-Torrero, University of Wisconsin–Parkside


 “Addresses a compelling set of topics in a fun and instructive way. Creates UI/layouts with a depth I’ve not seen elsewhere. The Flag Quiz app is enjoyable–View animation adds a professional touch; clear description of key UI elements. The Address Book chapter is a good introduction to CRUD-type apps.”–Sebastian Nykopp, Chief Architect, Reaktor


“The Welcome app looks solid; great to see the integration of the layout editor. The Tip Calculator app is pretty cool; I love the deeper coverage of the lifecycle. The Flag Quiz app is one of my favorites, covering delayed events, View animations and string arrays; I like the use of the AssetManager for the flags. The XML declaration and explanation of the tweened flag-shake animation are nicely done. Nice job of keeping the database queries out of the UI thread in the Address Book app.”–Dan Galpin, Android Advocate and author of Intro to Android Application Development


“Great job illustrating the Visual Layout Editor; I liked the approach of creating a project then building visual components without code; this makes it easy to experiment with other properties to customize the look of the app. The line-by-line explanations of the code are extremely valuable. Twitter Searches taught me things I didn’t know. The Flag Quiz app is a great chapter. The Cannon Game app is a nice introduction to animation. The Address Book app is a good introduction to database access on the Android platform that presents the structures required for SQLite databases.”–Eric J. Bowden, COO, Safe Driving Systems, LLC


“The Technologies Overviews are particularly nice. The Welcome app chapter is a nice intro to layouts, keeping it simple, while still using a common layout. Doodlz is a great app–anyone can identify with it. The Address Book app is a good intro to launching other Activities and utilizing a SQLite database.”–Ian G. Clifton, Independent Contractor and Android App Developer


“Chapter 1 is an easy introduction; thanks to the link to one of the blogs, I found an alternate emulator. The Welcome app shows layouts and some controls and prepares the way for resource internationalization. Flag Quiz uses a variety of tools, such as collections, AlertDialog.Builder and animations. I like the configuration check for screen size to set the orientation of the Doodlz app.”–Douglas Jones, Senior Software Engineer, Fullpower Technologies


“One of the best Android books. I like using the Component Tree window to build GUIs. I’ve never published an app, but after seeing how easy it is, I have a couple that I’m considering publishing.”–Tony Cantrell, Georgia Northwestern Technical College


“The Flag Quiz app is engaging and shows important concepts like fragments, animations and resource qualifiers. The Cannon Game is fun–a great way to demonstrate moving objects on the screen.”–Arijit Sengupta, Wright State University


“In each chapter the reader creates a functional app while acquiring a working knowledge of the material. This is the most practical method to master app development. The Twitter Searches app is a great example to illustrate arrays, opening a website, creating key-value pairs, hiding the keyboard and interacting with the app.”–Dawn Wick, Southwestern Community College


“The Before You Begin section has all the steps required to get someone up and going with Android Studio. I had no problems following the steps in the Chapter 1 test-drive and getting the tip calculator app running on multiple AVDs from Android Studio. I like the simplicity of the Tip Calculator app and how many new concepts were covered. The code was well written with great tips and watch-outs–for example: keeping the onCreate method small to speed up application launch. The Flag Quiz app chapter and its code are great–I like the addition of logging. The Doodlz app did a good job introducing new items, including the Android 6 permissions model. I really like the refinements to the Cannon Game app, especially making the game loop perform at a normalized speed across devices.”–Jim Hathaway, Application Developer, Kellogg Company


“I really like how accessibility is covered early; this is generally an afterthought for most developers. Chapter 10 contains useful information that’s hard to find, particularly app marketing.”–Michael Pardo, Mobiata


“Nice discussion of intents and how these are needed to start activities. Chapter 10, Google Play and App Business Issues, is perfect–the information about market shares and tools to convert Android apps into iOS apps is very motivating.”–Jesus Ubaldo Quevedo-Torrero, University of Wisconsin—Parkside


“The stats on Android’s growth and success will excite the user. The Chapter 1 test-drive provides a very clear and detailed walkthrough of setting up an AVD and getting the sample app up and running. The Welcome app provides a well-paced intro to getting started with Android. Building a simple GUI with just XML and no code is a great way to focus on key concepts needed to build Android apps. I like that the chapter introduced resource qualifiers and localization which are advanced features a newcomer may not need immediately but should at least be aware of so they’re following good practices right off the bat. Doodlz is a fun and engaging app that users will be able to use as the basis for some really cool projects. The walkthrough of doing custom drawing is excellent.”–Luis Ramirez, Lead Android Engineer at Reverb


“The Welcome app chapter covers a lot but it’s not overwhelming and a lot of good habits are laid out with respect to internationalization, localization and accessibility support. The Doodlz app has a nice view into going custom on controls, widgets, and sensors. I like the new structure of the game loop in the Cannon Game app. The WeatherViewer app chapter has an excellent description of proper list usage. The Twitter Searches app provides a good overview of the RecyclerView.”–Douglas Jones, Senior Software Engineer, Fullpower Technologies