1.2 Android—The World’s Leading Mobile Operating System
1.4.2 Android 2.3 (Gingerbread)
1.4.3 Android 3.0 through 3.2 (Honeycomb)
1.4.4 Android 4.0 through 4.0.4 (Ice Cream Sandwich)
1.4.5 Android 4.1–4.3 (Jelly Bean)
1.5 Downloading Apps from Google Play
1.7 Android Software Development Kit (SDK)
1.8 Object-Oriented Programming: A Quick Refresher
1.8.1 The Automobile as an Object
1.8.5 Messages and Method Calls
1.8.6 Attributes and Instance Variables
1.8.9 Object-Oriented Analysis and Design (OOAD)
1.9 Test-Driving the Doodlz App in an Android Virtual Device (AVD)
1.9.1 Running the Doodlz App in the Nexus 4 Smartphone AVD
1.9.2 Running the Doodlz App in a Tablet AVD
1.9.3 Running the Doodlz App on an Android Device
1.10 Building Great Android Apps
1.11 Android Development Resources
Dive-Into® the Android Developer Tools: Introducing Visual GUI Design, Layouts, Accessibility and Internationalization
2.2.1 Android Developer Tools IDE
2.2.2 TextView
s and ImageView
s
2.3.1 Launching the Android Developer Tools IDE
2.3.3 New Android Application Dialog
2.3.5 Configure Launcher Icon Step
2.4 Android Developer Tools Window
2.5 Building the App’s GUI with the Graphical Layout Editor
2.5.1 Adding Images to the Project
2.5.2 Changing the Id Property of the RelativeLayout
and the TextView
2.5.3 Configuring the TextView
2.5.4 Adding ImageView
s to Display the Images
2.7 Making Your App Accessible
2.8 Internationalizing Your App
Introducing GridLayout, LinearLayout, EditText, SeekBar, Event Handling, NumberFormat and Defining App Functionality with Java
3.2 Test-Driving the Tip Calculator App
3.3.2 Activity
Lifecycle Methods
3.3.3 Arranging Views with LinearLayout
and GridLayout
3.3.4 Creating and Customizing the GUI with the Graphical Layout Editor and the Outline and Properties Windows
3.3.5 Formatting Numbers as Locale-Specific Currency and Percentage Strings
3.3.6 Implementing Interface TextWatcher
for Handling EditText
Text Changes
3.3.7 Implementing Interface OnSeekBarChangeListener
for Handling SeekBar
Thumb Position Changes
3.4.2 Creating the TipCalculator
Project
3.4.3 Changing to a GridLayout
3.4.4 Adding the TextView
s, EditText
, SeekBar
and LinearLayout
s
3.4.5 Customizing the Views to Complete the Design
3.5 Adding Functionality to the App
SharedPreferences, Collections, ImageButton, ListView, ListActivity, ArrayAdapter, Implicit Intents and AlertDialogs
4.2.1 Importing the App and Running It
4.2.2 Adding a Favorite Search
4.2.3 Viewing Twitter Search Results
4.2.7 Scrolling Through Saved Searches
4.3.3 Customizing a ListActivity
’s Layout
4.3.6 Intent
s for Launching Other Activities
4.4.2 activity_main.xml
Overview
4.4.3 Adding the GridLayout
and Components
4.4.4 Graphical Layout Editor Toolbar
4.4.5 ListView
Item’s Layout: list_item.xml
4.5 Building the MainActivity
Class
4.5.1 package
and import
Statements
4.5.3 Fields of Class MainActivity
4.5.4 Overriding Activity
Method onCreate
Fragments, Menus, Preferences, AssetManager, Tweened Animations, Handler, Toasts, Explicit Intents, Layouts for Multiple Device Orientations
5.2 Test-Driving the Flag Quiz App
5.2.1 Importing the App and Running It
5.3.3 Fragment Lifecycle Methods
5.3.8 Supporting Different Screen Sizes and Resolutions
5.3.9 Determining the Screen Size
5.3.10 Toast
s for Displaying Messages
5.3.11 Using a Handler
to Execute a Runnable
in the Future
5.3.12 Applying an Animation to a View
5.3.13 Logging Exception Messages
5.3.14 Using an Explicit Intent
to Launch Another Activity
in the Same App
5.4 Building the GUI and Resource Files
5.4.2 strings.xml
and Formatted String
Resources
5.4.6 activity_settings.xml
Layout
5.4.7 activity_main.xml
Layout for Phone and Tablet Portrait Orientation
5.4.8 fragment_quiz.xml
Layout
5.4.9 activity_main.xml
Layout for Tablet Landscape Orientation
5.4.10 preferences.xml
for Specifying the App’s Settings
5.4.11 Creating the Flag Shake Animation
5.5.1 package
Statement, import
Statements and Fields
5.5.2 Overridden Activity
Method onCreate
5.5.3 Overridden Activity
Method onStart
5.5.4 Overridden Activity
Method onCreateOptionsMenu
5.5.5 Overridden Activity
Method onOptionsItemSelected
5.5.6 Anonymous Inner Class That Implements OnSharedPreferenceChangeListener
5.6.1 package
Statement and import
Statements
5.6.3 Overridden Fragment
Method onCreateView
5.6.9 Anonymous Inner Class That Implements OnClickListener
Listening for Touches, Manual Frame-By-Frame Animation, Graphics, Sound, Threading, SurfaceView and SurfaceHolder
6.2 Test-Driving the Cannon Game App
6.3.1 Attaching a Custom View
to a Layout
6.3.2 Using the Resource Folder raw
6.3.3 Activity
and Fragment
Lifecycle Methods
6.3.4 Overriding View
Method onTouchEvent
6.3.5 Adding Sound with SoundPool
and AudioManager
6.3.6 Frame-by-Frame Animation with Thread
s, SurfaceView
and SurfaceHolder
6.3.7 Simple Collision Detection
6.3.8 Drawing Graphics Using Paint
and Canvas
6.4 Building the App’s GUI and Resource Files
6.4.5 Adding the Sounds to the App
6.5 Class Line
Maintains a Line’s Endpoints
6.6 MainActivity
Subclass of Activity
6.7 CannonGameFragment
Subclass of Fragment
6.8 CannonView
Subclass of View
6.8.1 package
and import
Statements
6.8.2 Instance Variables and Constants
6.8.4 Overriding View
Method onSizeChanged
6.8.10 Method showGameOverDialog
6.8.11 Methods stopGame
and releaseResources
6.8.12 Implementing the SurfaceHolder.Callback
Methods
6.8.13 Overriding View Method onTouchEvent
6.8.14 CannonThread
: Using a Thread
to Create a Game Loop
Two-Dimensional Graphics, Canvas, Bitmap, Accelerometer, SensorManager, Multitouch Events, MediaStore, Printing, Immersive Mode
7.2.1 Using SensorManager
to Listen for Accelerometer Events
7.2.3 Drawing with Canvas
and Bitmap
7.2.4 Processing Multiple Touch Events and Storing Lines in Path
s
7.2.5 Android 4.4 Immersive Mode
7.2.6 GestureDetector
and SimpleOnGestureListener
7.2.7 Saving the Drawing to the Device’s Gallery
7.2.8 Android 4.4 Printing and the Android Support Library’s PrintHelper
Class
7.3 Building the App’s GUI and Resource Files
7.3.4 Menu for the DoodleFragment
7.3.5 activity_main.xml
Layout for MainActivity
7.3.6 fragment_doodle.xml
Layout for DoodleFragment
7.3.7 fragment_color.xml
Layout for ColorDialogFragment
7.3.8 fragment_line_width.xml
Layout for LineWidthDialogFragment
7.3.9 Adding Class EraseImageDialogFragment
7.8 LineWidthDialogFragment
Class
7.9 EraseImageDialogFragment
Class
ListFragment, FragmentTransactions and the Fragment Back Stack, Threading and AsyncTasks, CursorAdapter, SQLite and GUI Styles
8.2 Test-Driving the Address Book App
8.3.1 Displaying Fragment
s with FragmentTransaction
s
8.3.2 Communicating Data Between a Fragment
and a Host Activity
8.3.3 Method onSaveInstanceState
8.3.4 Defining Styles and Applying Them to GUI Components
8.3.5 Specifying a Background for a TextView
8.3.6 Extending Class ListFragment
to Create a Fragment
That Contains a ListView
8.3.7 Manipulating a SQLite Database
8.3.8 Performing Database Operations Outside the GUI Thread with AsyncTask
s
8.4 Building the GUI and Resource Files
8.4.2 Creating the App’s Classes
8.4.6 MainActivity
’s Layout: activity_main.xml
8.4.7 DetailsFragment
’s Layout: fragment_details.xml
8.4.8 AddEditFragment
’s Layout: fragment_add_edit.xml
8.4.9 Defining the Fragments
’ Menus
8.9 DatabaseConnector
Utility Class
9 Google Play and App Business Issues
9.2 Preparing Your Apps for Publication
9.2.2 End User License Agreement
9.2.5 Licensing to Control Access to Paid Apps
9.2.7 Getting a Private Key for Digitally Signing Your App
9.3 Pricing Your App: Free or Fee
9.4 Monetizing Apps with In-App Advertising
9.5 Monetizing Apps: Using In-App Billing to Sell Virtual Goods
9.6 Registering at Google Play
9.7 Setting Up a Google Wallet Merchant Account
9.8 Uploading Your Apps to Google Play
9.9 Launching the Play Store from Within Your App
9.10 Managing Your Apps in Google Play
9.11 Other Android App Marketplaces
9.12 Other Popular Mobile App Platforms
A Introduction to Java Applications
A.2 Your First Program in Java: Printing a Line of Text
A.3 Modifying Your First Java Program
A.4 Displaying Text with printf
A.5 Another Application: Adding Integers
A.8 Decision Making: Equality and Relational Operators
B Introduction to Classes, Objects, Methods and Strings
B.2 Declaring a Class with a Method and Instantiating an Object of a Class
B.3 Declaring a Method with a Parameter
B.4 Instance Variables, set Methods and get Methods
B.5 Primitive Types vs. Reference Types
B.6 Initializing Objects with Constructors
B.7 Floating-Point Numbers and Type double
C.5 if
Single-Selection Statement
C.6 if
...else
Double-Selection Statement
C.7 while
Repetition Statement
C.8 Case Study: Counter-Controlled Repetition
C.9 Case Study: Sentinel-Controlled Repetition
C.10 Case Study: Nested Control Statements
C.11 Compound Assignment Operators
C.12 Increment and Decrement Operators
C.14 Essentials of Counter-Controlled Repetition
C.16 Examples Using the for
Statement
C.17 do
...while
Repetition Statement
C.18 switch
Multiple-Selection Statement
C.19 break
and continue
Statements
D.3 static
Methods, static
Fields and Class Math
D.4 Declaring Methods with Multiple Parameters
D.5 Notes on Declaring and Using Methods
D.6 Method-Call Stack and Activation Records
D.7 Argument Promotion and Casting
D.9 Introduction to Random-Number Generation
D.9.1 Scaling and Shifting of Random Numbers
D.9.2 Random-Number Repeatability for Testing and Debugging
D.10 Case Study: A Game of Chance; Introducing Enumerations
E.3 Declaring and Creating Arrays
E.5 Case Study: Card Shuffling and Dealing Simulation
E.8 Case Study: Class GradeBook
Using an Array to Store Grades
E.10 Case Study: Class GradeBook
Using a Two-Dimensional Array
E.12 Introduction to Collections and Class ArrayList
F Classes and Objects: A Deeper Look
F.3 Controlling Access to Members
F.4 Referring to the Current Object’s Members with the this
Reference
F.5 Time
Class Case Study: Overloaded Constructors
F.6 Default and No-Argument Constructors
G Object-Oriented Programming: Inheritance and Polymorphism
G.1 Introduction to Inheritance
G.2 Superclasses and Subclasses
G.4 Relationship between Superclasses and Subclasses
G.4.1 Creating and Using a CommissionEmployee
Class
G.4.2 Creating and Using a BasePlusCommissionEmployee
Class
G.4.3 Creating a CommissionEmployee
–BasePlusCommissionEmployee
Inheritance Hierarchy
G.6 Introduction to Polymorphism
G.8 Demonstrating Polymorphic Behavior
G.9 Abstract Classes and Methods
G.10 Case Study: Payroll System Using Polymorphism
G.10.1 Abstract Superclass Employee
G.10.2 Concrete Subclass SalariedEmployee
G.10.3 Concrete Subclass HourlyEmployee
G.10.4 Concrete Subclass CommissionEmployee
G.10.5 Indirect Concrete Subclass BasePlusCommissionEmployee
G.10.6 Polymorphic Processing, Operator instanceof
and Downcasting
G.10.7 Summary of the Allowed Assignments Between Superclass and Subclass Variables
G.11 final
Methods and Classes
G.12 Case Study: Creating and Using Interfaces
G.12.1 Developing a Payable
Hierarchy
G.12.4 Modifying Class Employee
to Implement Interface Payable
G.12.5 Modifying Class SalariedEmployee
for Use in the Payable
Hierarchy
G.12.6 Using Interface Payable
to Process Invoice
s and Employee
s Polymorphically
G.13 Common Interfaces of the Java API
H Exception Handling: A Deeper Look
H.2 Example: Divide by Zero without Exception Handling
H.3 Example: Handling ArithmeticException
s and InputMismatchExceptions
H.4 When to Use Exception Handling
H.7 Stack Unwinding and Obtaining Information from an Exception Object
I GUI Components and Event Handling
I.3 Text Fields and an Introduction to Event Handling with Nested Classes
I.4 Common GUI Event Types and Listener Interfaces
I.7 JComboBox
; Using an Anonymous Inner Class for Event Handling
J.3 Type-Wrapper Classes for Primitive Types
J.4 Interface Collection
and Class Collections
J.5.3 Views into Collections and Arrays
Method asList
J.10 Introduction to Files and Streams
J.12 Introduction to Object Serialization
J.13 Introduction to Multithreading
J.14 Creating and Executing Threads with the Executor
Framework
J.15 Overview of Thread Synchronization