Programming Android - Java Programming for the New Generation of Mobile Devices 2 Edition(Others, Paperback, Zigurd Mednieks)
Quick Overview
Product Price Comparison
Get thoroughly up to speed on Android programming, and learn how to create up-to-date user experiences for both handsets and tablets. With this book’s extensively revised second edition, you’ll focus on Android tools and programming essentials, including best practices for using Android 4 APIs. If you’re experienced with Java or Objective-C, you’ll gain the knowledge necessary for building well-engineered applications. Programming Android is organized into four parts: Part One helps programmers with some Java or iOS experience get off to a fast start with the Android SDK and Android programming basics. Part Two delves into the Android framework, focusing on user interface and graphics class hierarchies, concurrency, and databases. It’s a solid foundation for understanding of how the most important parts of an Android application work. Part Three features code skeletons and patterns for accelerating the development of apps that use web data and Android 4 user interface conventions and APIs. Part Four delivers practical coverage of Android’s multimedia, search, location, sensor, and account APIs, plus the Native Development Kit, enabling developers to add advanced capabilities. This updated edition of Programming Android focuses on the knowledge and developer priorities that are essential for successful Android development projects. About the Author Zigurd Mednieks is a consultant to leading OEMs, enterprises, and entrepreneurial ventures creating Android-based systems and software. Previously he was Chief Architect at D2 Technologies, a voice-over-IP (VoIP) technology provider. There he lead engineering and product definition work for products that blended communication and social media in purpose-built embedded systems and on the Android platform. Laird Dornin is a mobile development architect with extensive experience in Java, Android, J2ME, SavaJe, and the webkit browser library. He was a member of the J2SE development team at Sun Microsystems specializing in java.rmi and Jini technology. Laird is currently a Senior Engineer at a major wireless carrier, where he provides Android architectural guidance and Network API support to members of the carrier's developer community. Blake Meike, Senior Software Development Engineer at Amazon, has more than 10 years of experience with Java. He’s developed applications using most of the GUI toolkits and several of the Java mobile device platforms. Masumi Nakamura With over a decade of software engineering experience, Masumi Nakamura has worked in various positions within the mobile technology arena, from building out mobile infrastructure to founding his own mobile company. He was one of the primary Android developers of the Where Android app and now is Principal Architect for the Big Data and Recommendations Group at Where, Inc. Outside of coding, he spends his time practicing Ba Gua Zhang and caring for his two cats. Table of Contents Chapter 1 Installing the Android SDK and Prerequisites 1. Installing the Android SDK and Prerequisites 2. Test Drive: Confirm That Your Installation Works 3. Components of the SDK 4. Keeping Up-to-Date 5. Example Code 6. On Reading Code Chapter 2 Java for Android 1. Android Is Reshaping Client-Side Java 2. The Java Type System 3. Scope 4. Idioms of Java Programming Chapter 3 The Ingredients of an Android Application 1. Traditional Programming Models Compared to Android 2. Activities, Intents, and Tasks 3. Other Android Components 4. Component Life Cycles 5. Static Application Resources and Context 6. The Android Application Runtime Environment 7. Extending Android 8. Concurrency in Android 9. Serialization Chapter 4 Getting Your Application into Users’ Hands 1. Application Signing 2. Placing an Application for Distribution in the Android Market 3. Alternative Distribution 4. Google Maps API Keys 5. Specifying API-Level Compatibility 6. Compatibility with Many Kinds of Screens Chapter 5 Eclipse for Android Software Development 1. Eclipse Concepts and Terminology 2. Eclipse Views and Perspectives 3. Java Coding in Eclipse 4. Eclipse and Android 5. Preventing Bugs and Keeping Your Code Clean 6. Eclipse Idiosyncrasies and Alternatives 2. About the Android Framework Chapter 6 Building a View 1. Android GUI Architecture 2. Assembling a Graphical Interface 3. Wiring Up the Controller 4. The Menu and the Action Bar 5. View Debugging and Optimization Chapter 7 Fragments and Multiplatform Support 1. Creating a Fragment 2. Fragment Life Cycle 3. The Fragment Manager 4. Fragment Transactions 5. The Support Package 6. Fragments and Layout Chapter 8 Drawing 2D and 3D Graphics 1. Rolling Your Own Widgets 2. Bling Chapter 9 Handling and Persisting Data 1. Relational Database Overview 2. SQLite 3. The SQL Language 4. SQL and the Database-Centric Data Model for Android Applications 5. The Android Database Classes 6. Database Design for Android Applications 7. Using the Database API: MJAndroid 8. A Skeleton Application for Android Chapter 10 A Framework for a Well-Behaved Application 1. Visualizing Life Cycles 2. Visualizing the Fragment Life Cycle 3. The Activity Class and Well-Behaved Applications 4. Life Cycle Methods of the Application Class Chapter 11 Building a User Interface 1. Top-Level Design 2. Visual Editing of User Interfaces 3. Starting with a Blank Slate 4. Laying Out the Fragments 5. Folding and Unfolding a Scalable UI 6. Making Activity, Fragment, Action Bar, and Multiple Layouts Work Together 7. The Other Activity Chapter 12 Using Content Providers 1. Understanding Content Providers 2. Defining a Provider Public API 3. Writing and Integrating a Content Provider 4. File Management and Binary Data 5. Android MVC and Content Observation 6. A Complete Content Provider: The SimpleFinchVideoContentProvider Code 7. Declaring Your Content Provider Chapter 13 A Content Provider as a Facade for a RESTful Web Service 1. Developing RESTful Android Applications 2. A “Network MVC” 3. Summary of Benefits 4. Code Example: Dynamically Listing and Caching YouTube Video Content 5. Structure of the Source Code for the Finch YouTube Video Example 6. Stepping Through the Search Application 7. Step 1: Our UI Collects User Input 8. Step 2: Our Controller Listens for Events 9. Step 3: The Controller Queries the Content Provider with a managedQuery on the Content Provider/Model 10. Step 4: Implementing the RESTful Request Advanced Topics Chapter 14 Search 1. Search Interface 2. Query Suggestions Chapter 15 Location and Mapping 1. Location-Based Services 2. Mapping 3. The Google Maps Activity 4. The MapView and MapActivity 5. Working with MapViews 6. MapView and MyLocationOverlay Initialization 7. Pausing and Resuming a MapActivity 8. Controlling the Map with Menu Buttons 9. Controlling the Map with the Keypad 10. Location Without Maps 11. StreetView Chapter 16 Multimedia 1. Audio and Video 2. Playing Audio and Video 3. Recording Audio and Video 4. Stored Media Content Chapter 17 Sensors, NFC, Speech, Gestures, and Accessibility 1. Sensors 2. Near Field Communication (NFC) 3. Gesture Input 4. Accessibility Chapter 18 Communication, Identity, Sync, and Social Media 1. Account Contacts 2. Authentication and Synchronization 3. Bluetooth Chapter 19 The Android Native Development Kit (NDK) 1. Native Methods and JNI Calls 2. The Android NDK 3. Native Libraries and Headers Provided by the NDK 4. Building Your Own Custom Library Modules 5. Native Activities Colophon