9781449390501
Preface.html

Preface

If you're new to the Android mobile operating system, Learning Android is the perfect way to master the fundamentals. This gentle introduction shows you how to use Android's basic building blocks to develop user interfaces, store data, and more. Buy the print book or ebook.

This book sprang from years of delivering Marakana Android Bootcamp training class to thousands of software developers at some of the largest mobile companies on four continents around the world. Teaching Android, over time I saw what works and what doesn’t. This book is the distilled version of Android Bootcamp training course that I developed at Marakana and fine-tuned over numerous engagements.

My background is in Java from back before it was even called that. From the beginning, I was very much interested in embedded development in order to program various devices that surround us in every day life. Because Java took off mostly in the web application development, most of my previous decade went to building large enterprise system. Then Android arrived and I got once again very excited about building software for non-traditional computers. My current interests are Android on devices that may not even resemble a typical phone.

This book lets anyone who knows Java (or a similar language) grow to develop a reasonably complex Android application. I hope you find this book fairly comprehensive and that you find the example-based learning reasonably motivating. The goal of Learning Android is to get you to think in Android terms.

What’s Inside

Chapter 1, Android Overview, is an introduction to Android and its history. Chapter 2, The Stack, is an overview of the Android Operating System and all its parts from a very high level. Chapter 3, Quick Start, helps you set up your environment for Android application development. Chapter 4, Main Building Blocks, explains the components that Android provides to application developers to put together an app. Chapter 5, Yamba Overview, is the overview of the Yamba application that we’ll build together through the book and use as an example to learn various features of Android. Chapter 6, Android User Interface, explains how to build the user interface for your application. Chapter 7, Preferences, File System, Options Menu, and Intents, covers some of the operating system features that make an application developer’s life easier. Chapter 8, Services, covers building an Android service to process background tasks. Chapter 9, Databases, explains Android framework’s support for the built-in SQLite database and how to use it to persist the data in your own application. Chapter 10, Lists and Adapters, covers an important feature of Android that allows large data sets to be linked to relatively small screens in an efficient way. Chapter 11, Broadcast Receivers, explains how to use the publish-subscribe mechanism in Android to respond to various system and user defined messages. Chapter 12, Content Providers, shows how to design a content provider to share data between applications, using the content provider to enable our app widget to display data on the home screen. Chapter 13, System Services, goes into various system services that an app developer can tap into. Chapter 14, Android Interface Definition Language (AIDL), covers building an inter-process communication mechanism to allow for remote access to a service from another application. Chapter 15, Native Development Kit (NDK), introduces how to write native C code as part of your Android application.

Conventions Used in This Book

The following typographical conventions are used in this book:

Italic

Indicates new terms, URLs, email addresses, filenames, and file extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, data types, and XML entities.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.

Note

This icon signifies a tip, suggestion, or general note.

Warning

This icon indicates a warning or caution.

Using Code Examples

This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Book Title by Some Author. Copyright 2008 O’Reilly Media, Inc., 978-0-596-xxxx-x.”

If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com.

Safari® Books Online

Note

Safari Books Online is an on-demand digital library that lets you easily search over 7,500 technology and creative reference books and videos to find the answers you need quickly.

With a subscription, you can read any page and watch any video from our library online. Read books on your cell phone and mobile devices. Access new titles before they are available for print, and get exclusive access to manuscripts in development and post feedback for the authors. Copy and paste code samples, organize your favorites, download chapters, bookmark key sections, create notes, print out pages, and benefit from tons of other time-saving features.

O’Reilly Media has uploaded this book to the Safari Books Online service. To have full digital access to this book and others on similar topics from O’Reilly and other publishers, sign up for free at [role="orm:hideurl:ital"]http://my.safaribooksonline.com.

Acknowledgements

This book is truly a result of an outstanding team work. First, I’d like to thank my editors at O’Reilly: Andy Oram and Brian Jepson. Andy, your comments were spot-on and constructive. Brian, thank you for persuading me to take on writing this book in the first place.

I’d like to thank all my technical editors: Dan Bornstein, Hervé Guihot, Frank Maker III, and Bill Schrickel. Thank you for diligently reading my half-baked drafts and providing valuable comments.

This book wouldn’t be what it is without field testing it on our numerous clients - you were the true pioneers on the cutting edge of Android and your projects are all very inspiring. Thank you for your trust.

I’d like to thank my team at Marakana: Aleksandar (Saša) Gargenta, Ken Jones, and Laurent Tonon for bringing back first-hand feedback from running Android Bootcamp courses using the draft of this book. Saša, special thanks to you for sending me back to the drawing board more times than I’d like to admit. This book is probably months pass due because of your in-depth technical comments.

And finally, a huge thanks to my wife Lisa and daughter Kylie. I know what a sacrifice it was for you while I was criss-crossing the world working on this material. Thank you for supporting me along the way.

Marko Gargenta, San Francisco, CA

Site last updated on: April 8, 2011 at 12:51:47 PM PDT
Cover for Learning Android

View 1 comment

  1. stevemeuse – Posted April 5, 2011

    The preface needs some TLC from an editor; the grammar is a bit weak in places, and the section reads like it was translated from another language. For example from paragraph 2:

    "Because Java took off mostly in the web application development, most of my previous decade went to building large enterprise system."

    As a minimum, "the" should be removed from "the web application development," and "system" should read "systems."

    Or:

    "Since Java's early popularity was in web application development, I spent most of the previous decade building large enterprise systems."

Add a comment

View 2 comments

  1. Scott Herbert – Posted March 4, 2011

    I guess "[role="orm:hideurl:ital"]" is a typo and should be removed.

  2. David Fuller – Posted April 3, 2011

    Looking at the second paragraph I think enterprise systems should be plural.

Add a comment