TY - BOOK AU - Deitel,Paul J. AU - Deitel,Harvey M. AU - Deitel,Abbey TI - Android, how to program T2 - How to program series SN - 9780133764031 AV - QA76.76.A65 D44 2015 U1 - 006.76 23 PY - 2015///] CY - Boston PB - Pearson KW - Android (Electronic resource) KW - Application software KW - Development KW - Java (Computer program language) KW - Web site development N1 - 1; Introduction to Android --; 1.1; Introduction --; 1.2; Android-The World's Leading Mobile Operating System --; 1.3; Android Features --; 1.4; Android Operating System --; 1.4.1; Android 2.2 (Froyo) --; 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.4.6; Android 4.4 (KitKat) --; 1.5; Downloading Apps from Google Play --; 1.6; Packages --; 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.2; Methods and Classes --; 1.8.3; Instantiation --; 1.8.4; Reuse --; 1.8.5; Messages and Method Calls --; 1.8.6; Attributes and Instance Variables --; 1.8.7; Encapsulation --; 1.8.8; Inheritance --; 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 --; 1.12; Wrap-Up -- --; 2; Welcome AppDive-Into® the Android Developer Tools: Introducing Visual GUI Design, Layouts, Accessibility and Internationalization --; 2.1; Introduction --; 2.2; Technologies Overview --; 2.2.1; Android Developer Tools IDE --; 2.2.2; TextViews and ImageViews --; 2.2.3; App Resources --; 2.2.4; Accessibility --; 2.2.5; Internationalization --; 2.3; Creating an App --; 2.3.1; Launching the Android Developer Tools IDE --; 2.3.2; Creating a New Project --; 2.3.3; New Android Application Dialog --; 2.3.4; Configure Project Step --; 2.3.5; Configure Launcher Icon Step --; 2.3.6; Create Activity Step --; 2.3.7; Blank Activity Step --; 2.4; Android Developer Tools Window --; 2.4.1; Package Explorer Window --; 2.4.2; Editor Windows --; 2.4.3; Outline Window --; 2.4.4; App Resource Files --; 2.4.5; Graphical Layout Editor --; 2.4.6; The Default GUI --; 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 ImageViews to Display the Images --; 2.6; Running the Welcome App --; 2.7; Making Your App Accessible --; 2.8; Internationalizing Your App --; 2.9; Wrap-Up -- --; 3; Tip Calculator App: Introducing GridLayout, LinearLayout, EditText, SeekBar, Event Handling, NumberFormat and Defining App Functionality with Java --; 3.1; Introduction --; 3.2; Test-Driving the Tip Calculator App --; 3.3; Technologies Overview --; 3.3.1; Class Activity --; 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.3.8; AndroidManifest.xml --; 3.4; Building the App's GUI --; 3.4.1; GridLayout Introduction --; 3.4.2; Creating the TipCalculator Project --; 3.4.3; Changing to a GridLayout --; 3.4.4; Adding the TextViews, EditText, SeekBar and LinearLayouts --; 3.4.5; Customizing the Views to Complete the Design --; 3.5; Adding Functionality to the App --; 3.6; AndroidManifest.xml --; 3.7; Wrap-Up -- --; 4; Twitter® Searches App: SharedPreferences, Collections, ImageButton, ListView, ListActivity, ArrayAdapter, Implicit Intents and AlertDialogs --; 4.1; Introduction --; 4.2; Test-Driving the App --; 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.4; Editing a Search --; 4.2.5; Sharing a Search --; 4.2.6; Deleting a Search --; 4.2.7; Scrolling Through Saved Searches --; 4.3; Technologies Overview --; 4.3.1; ListView --; 4.3.2; ListActivity --; 4.3.3; Customizing a ListActivity's Layout --; 4.3.4; ImageButton --; 4.3.5; SharedPreferences --; 4.3.6; Intents for Launching Other Activities --; 4.3.7; AlertDialog --; 4.3.8; AndroidManifest.xml --; 4.4; Building the App's GUI --; 4.4.1; Creating the Project --; 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.2; Extending ListActivity --; 4.5.3; Fields of Class MainActivity --; 4.5.4; Overriding Activity Method onCreate --; 4.5.5; Anonymous Inner Class That Implements the saveButton's OnClickListener to Save a New or Updated Search --; 4.5.6; addTaggedSearch Method --; 4.5.7; Anonymous Inner Class That Implements the ListView's OnItemClickListener to Display Search Results --; 4.5.8; Anonymous Inner Class That Implements the ListView's OnItemLongClickListener to Share, Edit or Delete a Search --; 4.5.9; shareSearch Method --; 4.5.10; deleteSearch Method --; 4.6; AndroidManifest.xml --; 4.7; Wrap-Up -- --; 5; Flag Quiz App: Fragments, Menus, Preferences, AssetManager, Tweened Animations, Handler, Toasts, Explicit Intents, Layouts for Multiple Device Orientations --; 5.1; Introduction --; 5.2; Test-Driving the Flag Quiz App --; 5.2.1; Importing the App and Running It --; 5.2.2; Configuring the Quiz --; 5.2.3; Taking the Quiz --; 5.3; Technologies Overview --; 5.3.1; Menus --; 5.3.2; Fragments --; 5.3.3; Fragment Lifecycle Methods --; 5.3.4; Managing Fragments --; 5.3.5; Preferences --; 5.3.6; Assets Folder --; 5.3.7; Resource Folders --; 5.3.8; Supporting Different Screen Sizes and Resolutions --; 5.3.9; Determining the Screen Size --; 5.3.10; Toasts 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.3.15; Java Data Structures --; 5.4; Building the GUI and Resource Files --; 5.4.1; Creating the Project --; 5.4.2; strings.xml and Formatted String Resources --; 5.4.3; arrays.xml --; 5.4.4; colors.xml --; 5.4.5; dimens.xml --; 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; MainActivity Class --; 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; QuizFragment Class --; 5.6.1; Package Statement and import Statements --; 5.6.2; Fields --; 5.6.3; Overridden Fragment Method onCreateView --; 5.6.4; Method updateGuessRows --; 5.6.5; Method updateRegions --; 5.6.6; Method resetQuiz --; 5.6.7; Method loadNextFlag --; 5.6.8; Method getCountryName --; 5.6.9; Anonymous Inner Class That Implements OnClickListener --; 5.6.10; Method disableButtons --; 5.7; SettingsFragment Class --; 5.8; SettingsActivity Class --; 5.9; AndroidManifest.xml --; 5.10; Wrap-Up -- --; 6; Cannon Game App: Listening for Touches, Manual Frame-By-Frame Animation, Graphics, Sound, Threading, SurfaceView and SurfaceHolder --; 6.1; Introduction --; 6.2; Test-Driving the Cannon Game App --; 6.3; Technologies Overview --; 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 Threads, 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.1; Creating the Project --; 6.4.2; strings.xml --; 6.4.3; fragment_game.xml --; 6.4.4; activity_main.xml --; 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.3; Constructor --; 6.8.4; Overriding View Method onSizeChanged --; 6.8.5; Method newGame --; 6.8.6; Method updatePositions --; 6.8.7; Method fireCannonball --; 6.8.8; Method alignCannon --; 6.8.9; Method drawGameElements --; 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 --; 6.9; Wrap-Up -- --; 7; Doodlz App: Two-Dimensional Graphics, Canvas, Bitmap, Accelerometer, SensorManager, Multitouch Events, MediaStore, Printing, Immersive Mode --; 7.1; Introduction --; 7.2; Technologies Overview --; 7.2.1; Using SensorManager to Listen for Accelerometer Events --; 7.2.2; Custom DialogFragments --; 7.2.3; Drawing with Canvas and Bitmap --; 7.2.4; Processing Multiple Touch Events and Storing Lines in Paths --; 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.1; Creating the Project --; 7.3.2; strings.xml --; 7.3.3; dimens.xml --; 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.4; MainActivity Class --; 7.5; DoodleFragment Class --; 7.6; DoodleView Class --; 7.7; ColorDialogFragment Class --; 7.8; LineWidthDialogFragment Class --; 7.9; EraseImageDialogFragment Class --; 7.10; Wrap-Up -- --; 8; Address Book App: ListFragment, FragmentTransactions and the Fragment Back Stack, Threading and AsyncTasks, CursorAdapter, SQLite and GUI Styles --; 8.1; Introduction --; 8.2; Test-Driving the Address Book App --; 8.3; Technologies Overview --; 8.3.1; Displaying Fragments with FragmentTransactions --; 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 AsyncTasks --; 8.4; Building the GUI and Resource Files --; 8.4.1; Creating the Project --; 8.4.2; Creating the App's Classes --; 8.4.3; strings.xml --; 8.4.4; styles.xml --; 8.4.5; textview_border.xml --; 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.5; MainActivity Class --; 8.6; ContactListFragment Class --; 8.7; AddEditFragment Class --; 8.8; DetailsFragment Class --; 8.9; DatabaseConnector Utility Class --; 8.10; Wrap-Up -- --; 9; Google Play and App Business Issues --; 9.1; Introduction --; 9.2; Preparing Your Apps for Publication --; 9.2.1; Testing Your App --; 9.2.2; End User License Agreement --; 9.2.3; Icons and Labels --; 9.2.4; Versioning Your App --; 9.2.5; Licensing to Control Access to Paid Apps --; 9.2.6; Obfuscating Your Code --; 9.2.7; Getting a Private Key for Digitally Signing Your App --; 9.2.8; Screenshots --; 9.2.9; Promotional App Video --; 9.3; Pricing Your App: Free or Fee --; 9.3.1; Paid Apps --; 9.3.2; Free Apps --; 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 --; 9.13; Marketing Your Apps --; 9.14; Wrap-Up -- --; A; Introduction to Java Applications; A.1; Introduction --; 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.6; Memory Concepts --; A.7; Arithmetic --; A.8; Decision Making: Equality and Relational Operators --; A.9; Wrap-Up -- --; B; Introduction to Classes, Objects, Methods and Strings--; B.1; Introduction --; 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 --; B.8; Wrap-Up -- --; C; Control Statements --; C.1; Introduction --; C.2; Algorithms --; C.3; Pseudocode --; C.4; Control Structures --; 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.13; Primitive Types --; C.14; Essentials of Counter-Controlled Repetition --; C.15; For Repetition Statement --; 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 --; C.20; Logical Operators --; C.21; Wrap-Up -- --; D; Methods: A Deeper Look --; D.1; Introduction --; D.2; Program Modules in Java --; 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.8; Java API Packages --; 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 --; D.11; Scope of Declarations --; D.12; Method Overloading --; D.13; Wrap-Up -- --; E; Arrays and ArrayLists --; E.1; Introduction --; E.2; Arrays --; E.3; Declaring and Creating Arrays --; E.4; Examples Using Arrays --; E.5; Case Study: Card Shuffling and Dealing Simulation --; E.6; Enhanced for Statement --; E.7; Passing Arrays to Methods --; E.8; Case Study: Class GradeBook Using an Array to Store Grades --; E.9; Multidimensional Arrays --; E.10; Case Study: Class GradeBook Using a Two-Dimensional Array --; E.11; Class Arrays --; E.12; Introduction to Collections and Class ArrayList --; E.13; Wrap-Up -- --; F; Classes and Objects: A Deeper Look --; F.1; Introduction --; F.2; Time Class Case Study --; 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 --; F.7; Composition --; F.8; Enumerations --; F.9; Garbage Collection --; F.10; Static Class Members --; F.11; Final Instance Variables --; F.12; Packages --; F.13; Package Access --; F.14; Wrap-Up -- --; G; Object-Oriented Programming: Inheritance and Polymorphism; --G.1; Introduction to Inheritance --; G.2; Superclasses and Subclasses --; G.3; Protected Members --; 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 --; G.4.4; CommissionEmployee --; G.4.5; CommissionEmployee --; G.5; Class Object --; G.6; Introduction to Polymorphism --; G.7; Polymorphism: An Example --; 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.2; Interface Payable --; G.12.3; Class Invoice --; 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 Invoices and Employees Polymorphically --; G.13; Common Interfaces of the Java API --; G.14; Wrap-Up -- --; H; Exception Handling: A Deeper Look; H.1; Introduction --; H.2; Example: Divide by Zero without Exception Handling --; H.3; Example: Handling ArithmeticExceptions and InputMismatchExceptions --; H.4; When to Use Exception Handling --; H.5; Java Exception Hierarchy --; H.6; Finally Block --; H.7; Stack Unwinding and Obtaining Information from an Exception Object --; H.8; Wrap-Up -- --; I; GUI Components and Event Handling; I.1; Introduction --; I.2; Nimbus Look-and-Feel --; I.3; Text Fields and an Introduction to Event Handling with Nested Classes --; I.4; Common GUI Event Types and Listener Interfaces --; I.5; How Event Handling Works --; I.6; JButton --; I.7; JComboBox; Using an Anonymous Inner Class for Event Handling --; I.8; Adapter Classes --; I.9; Wrap-Up -- --; J; Other Java Topics; J.1; Introduction --; J.2; Collections Overview --; J.3; Type-Wrapper Classes for Primitive Types --; J.4; Interface Collection and Class Collections --; J.5; Lists --; J.5.1; ArrayList and Iterator --; J.5.2; LinkedList --; J.5.3; Views into Collections and Arrays Method asList --; J.6; Collections Methods --; J.6.1; Method sort --; J.6.2; Method shuffle --; J.7; Interface Queue --; J.8; Sets --; J.9; Maps --; J.10; Introduction to Files and Streams --; J.11; Class File --; 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 --; J.16; Concurrent Collections Overview --; J.17; Multithreading with GUI --; J.18; Wrap-Up ER -