Preface

Mobile device users experience their environments through a variety of computing screens. The devices most often used are computers, tablets, and phones. Users today increasingly expect a connected and highly personalized experience that is seamless across all connected devices, including television, home automation gadgets, wearable computers, and cars. Android is the operating system that powers many of these connected devices. As of early 2015, Android is the largest installed base of any mobile platform.

Initially created by Android Inc. by a team led by Andy Rubin, the Android operating system was acquired by Google in 2005. The first commercial version of Android was released in 2008 on an HTC phone named Dream; also known as the T-Mobile G1. Since its initial release, the operating system has undergone an extreme metamorphosis, evolving quickly and frequently, with new and updated versions released at an unprecedented rate.

As a Linux-based system, Android is run as an open source project; this means that anyone can adapt the code for his or her own purposes. This permissive model makes Android unique in that it allows companies and developers to modify and distribute the software freely. Device manufacturers creating phones and tablets often customize the Android operating system to the specific needs of their particular mobile devices.

In this text, readers will learn how to design and implement applications that will run on a variety of Android-driven devices. Building sophisticated applications that are optimized, responsive, and able to perform complex interactions at fast speeds requires patience, skill, and practice. The concepts and techniques you will learn in this text will provide you with the building blocks needed to master the art of mobile programming.

Text Objectives

This text was conceived with two types of individuals in mind: programming students and professional software developers who wish to broaden their expertise. It is essential that readers know how to program in an OOP language, preferably Java, before using this text. For non-Java programmers, familiarization with the Java API is recommended.

This text is intended as a textbook, not as a tutorial. We have designed the text, using an easy-to-understand and straightforward approach, to integrate key concepts relating to application development that students see daily on Android devices. Each chapter presents Android concepts and methodologies with complete abbreviated application examples that are relevant to current platforms.

How to Use This Text

The first three chapters provide an introduction to the foundation of application development. Chapter 1 incorporates two step-by-step tutorials to help readers get started in creating basic applications. Chapters 2 and 3 provide key core concepts for building well-designed applications. It is important that readers are comfortable with these early chapters before proceeding.

After reading the first three chapters, Chapters 4 through 9 do not need to be read in sequential order. Readers wishing to acquire the most invaluable concepts first should start with Chapter 4 and proceed to Chapters 7, 8, and 9; however, multithreading concepts (discussed in Chapter 6) are a prerequisite for the last three chapters. A detailed reading of Chapter 5 is not required for Chapter 6.

Instructor and Student Resource Material

The following ancillary materials are available on the text website:

go.jblearning.com/CornezAndroid

  Source code files for lab examples

  Instructor’s Manual containing solutions to end-of-chapter exercises

  Lecture Slides in PowerPoint format

  Test bank

Acknowledgments

We have received invaluable support from friends, students, and colleagues in the preparation of the text. The University of Redlands has provided the resources and means for us to complete the project. Jones & Bartlett Learning offered an excellent team of professionals who handled the book from manuscript to final production. We especially want to thank Laura Pagluica, Taylor Ferracane, Sara Kelly, and Abby Reip.

We are thankful to Jordan Vega and Sam Marrs for many useful suggestions. We are indebted to Jim Bentley and Pani Chakrapani for giving us the opportunity to schedule several mobile programming classes that allowed us to classroom-test portions of our text. Jim Bentley was kind enough to offer department funds for devices for some of our students, who might not otherwise have been able to participate.

We would like to thank the following reviewers, who offered us indispensable pedagogical and content guidance for revision:

Sonia Arteaga

Hartnell College

Jeremy Blum, DSc

Associate Professor of Computer Science

Penn State Harrisburg

Georgia Brown, MS

Instructor

Northern Illinois University

George Dudas

Instructor in Computer Science and Software Engineering

Penn State Erie, The Behrend College

Shane Schartz

Informatics

Fort Hays State University

Robert Steinhoff, PhD

Florida Memorial University

Michael Ziray

Boise State University

Last but not least, thanks to our many students whose struggles, challenges, and successes gave us all the evidence we needed to improve the text.

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

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