TABLE OF CONTENTS

Preface

1   Basics of Android, First App: HelloAndroid

1.1 Smartphones and Their Operating Systems

1.1.1 Smartphones

1.1.2 Android Phones

1.1.3 Apps and Google Play

1.2 Development Environment for Android Apps

1.3 Our First App: HelloAndroid

1.3.1 Skeleton App

1.3.2 GUI Preview

1.3.3 XML Files: activity_main.xml, colors.xml, styles.xml, strings.xml, dimens.xml

1.3.4 The MainActivity Class

1.4 Running the App Inside the Emulator

1.5 Debugging the App with Logcat

1.6 Using the Debugger

1.7 Testing the App on an Actual Device

1.8 The App Manifest and the Gradle Build System

1.8.1 The AndroidManifest.xml File: App Icon and Device Orientation

1.8.2 The Gradle Build System

2   Model View Controller, GUI Components, Events

2.1 Model-View-Controller Architecture

2.2 The Model

2.3 GUI Components

2.4 RelativeLayout, TextView, EditText, and Button: Tip Calculator, Version 0

2.5 GUI Components and More XML Attributes: Tip Calculator, Version 1

2.6 Styles and Themes: Tip Calculator, Version 2

2.7 Events and Simple Event Handling: Coding the Controller, Tip Calculator, Version 3

2.8 More Event Handling: Tip Calculator, Version 4

3   Coding the GUI Programmatically, Layout Managers

3.1 Model View Controller Architecture

3.2 The Model

3.3 Creating the GUI Programmatically, TicTacToe, Version 0

3.4 Event Handling: TicTacToe, Version 1

3.5 Integrating the Model to Enable Game Play: TicTacToe, Version 2

3.6 Inner Classes

3.7 Layout Parameters: TicTacToe, Version 3

3.8 Alert Dialogs: TicTacToe, Version 4

3.9 Splitting the View and the Controller: TicTacToe, Version 5

4   Multiple Activities, Passing Data between Activities, Transitions, Persistent Data

4.1 Model: The Mortgage Class

4.2 Using a TableLayout for the Front Screen GUI: Mortgage Calculator App, Version 0

4.3 Using a RelativeLayout for the Second Screen GUI

4.4 Connecting Two Activities: Mortgage Calculator App, Version 1

4.5 The Life Cycle of an Activity

4.6 Sharing Data between Activities: Mortgage Calculator App, Version 2

4.7 Transitions between Activities: Mortgage Calculator App, Version 3

4.8 Handling Persistent Data: Mortgage Calculator App, Version 4

5   Menus, SQLite

5.1 Menus and Menu Items: Candy Store App, Version 0

5.2 Icon Items, Candy Store App, Version 1

5.3 SQLite: Creating a Database, a Table, and Inserting Data: Candy Store App, Version 2

5.4 Deleting Data: Candy Store App, Version 3

5.5 Updating Data: Candy Store App, Version 4

5.6 Running the Cash Register: Candy Store App, Version 5

6   Managing the Device Orientation

6.1 The Configuration Class

6.2 Capturing a Device Rotation Event

6.3 Strategy 1: One Layout XML File per Orientation

6.4 Strategy 2: One Layout XML File for Both Orientations, Modify the Layout by Code

6.5 Strategy 3: Manage Layout and Orientation 100% by Code

7   Touches and Swipes

7.1 Detecting a Touch Event

7.2 Handling a Swipe Event: Moving a TextView

7.3 The Model

7.4 The View: Setting Up the GUI, Puzzle App, Version 0

7.5 Moving the Pieces, Puzzle App, Version 1

7.6 Solving the Puzzle, Puzzle App, Version 2

7.7 Gesture and Tap Detection and Handling

7.8 Detecting a Double Tap, Puzzle App, Version 3

7.9 Making the App Device Independent, Puzzle App, Version 4

8   Graphics, Animations, Sounds, and Gaming

8.1 Graphics

8.2 Making a Custom View, Drawing, Duck Hunting App, Version 0

8.3 The Model

8.4 Animating an Object: Flying the Duck, Duck Hunting App, Version 1

8.5 Handling Touch Events: Moving the Cannon and Shooting, Duck Hunting App, Version 2

8.6 Playing a Sound: Shooting, Collision Detection, Duck Hunting App, Version 3

9   Fragments

9.1 The Model

9.2 Fragments

9.3 Defining and Adding a Fragment to an Activity Using a Layout XML File, Hangman, App Version 0

9.4 Adding GUI Components, Styles, Strings, and Colors, Hangman, App Version 1

9.5 Defining a Fragment Using a Layout XML File and Adding the Fragment to an Activity by Code, Hangman, App Version 2

9.6 Defining and Adding a Fragment to an Activity by Code, Hangman, App Version 3

9.7 Communication between Fragments and Their Activity: Enabling Play, Hangman, App Version 4

9.8 Using an Invisible Fragment, Hangman, App Version 5

9.9 Making a Fragment Reusable, Hangman, App Version 6

9.10 Improving the GUI: Processing the Keyboard Input Directly, Hangman, App Version 7

10 Using Libraries and Their APIs: Speech Recognition and Maps

10.1 Voice Recognition

10.2 Voice Recognition Part A, App Version 0

10.3 Using the Google Maps Activity Template, App Version 1

10.4 Adding Annotations to the Map, App Version 2

10.5 The Model

10.6 Displaying a Map Based on Speech Input, App Version 3

10.7 Controlling Speech Input, App Version 4

10.8 Voice Recognition Part B, Moving the Map with Voice Once, App Version 5

10.9 Voice Recognition Part C, Moving the Map with Voice Continuously, App Version 6

11 Using the GPS and Location Services

11.1 Accessing Google Play Services, GPS App, Version 0

11.2 Using the GPS to Retrieve Our Location, GPS App, Version 1

11.3 Model for Distance and Time to Destination

11.4 Distance and Time to Destination, GPS App, Version 2

11.5 Updating Distance and Time to Destination, GPS App, Version 3

12 Using Another App within the App: Taking a Photo, Graying It, and Sending an Email

12.1 Accessing the Camera App and Taking a Picture, Photo App, Version 0

12.2 The Model: Graying the Picture, Photo App, Version 1

12.3 Defining Shades of Gray Using SeekBars, Photo App, Version 2

12.4 Improving the User Interface, Photo App, Version 3

12.5 Storing the Picture, Photo App, Version 4

12.6 Using the Email App: Sending the Grayed Picture to a Friend, Photo App, Version 5

13 XML and Content Apps

13.1 Parsing XML, DOM, and SAX Parsers, Web Content App, Version 0

13.2 Parsing XML into a List, Web Content App, Version 1

13.3 Parsing a Remote XML Document, Web Content App, Version 2

13.4 Displaying the Results in a ListView, Web Content App, Version 3

13.5 Opening a Web Browser Inside the App, Web Content App, Version 4

14 Making an Android Widget

14.1 Steps in Making a Widget, Temperature Widget, Version 0

14.2 Styling the Widget, Temperature Widget, Version 1

14.3 Updating the Data in the Widget, Temperature Widget, Version 2

14.4 Updating the Data in the Widget by Clicking on It, Temperature Widget, Version 3

14.5 Retrieving the Temperature Data from a Remote Source, Temperature Widget, Version 4

14.6 Using an Activity to Customize the Widget, Temperature Widget, Version 5

14.7 Hosting the Widget in the Lock Screen, Temperature Widget, Version 6

15 In App Advertising

15.1 The View, Stopwatch App, Version 0

15.2 The Controller: Running the Stopwatch App, Version 1

15.3 Improving the Stopwatch App, Version 2

15.4 Placing the Ad, Stopwatch App, Version 3

15.5 Placing the Ad in a Fragment, Stopwatch App, Version 4

15.6 Managing the Life Cycle of the AdView, Stopwatch App, Version 5

16 Security and Encryption

16.1 Symmetric and Asymmetric Encryption

16.2 Symmetric Encryption: The Model (AES), Encryption App, Version 0

16.3 Symmetric Encryption: Adding a View, Encryption App, Version 1

16.4 Asymmetric Encryption: Adding RSA to the Model, Encryption App, Version 2

16.5 Symmetric and Asymmetric Encryption: Modifying the View, Encryption App, Version 3

APPENDIX A Retrieving the Height of the Status Bar and the Action Bar Dynamically

APPENDIX B Setting the Font Size of a TextView Dynamically

APPENDIX C How to Download and Install Google Play Services, Use Maps

APPENDIX D The AsyncTask Class

INDEX

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.25.133