Synopses & Reviews
This practical book provides the concepts and code you need to develop software with Android, the open-source platform for cell phones and mobile devices that's generating enthusiasm across the industry. Based on the Linux operating system and developed by Google and the Open Handset Alliance, Android has the potential to unite a fragmented mobile market. Android Application Development introduces this programming environment, and offers you a complete working example that demonstrates Android architectural features and APIs. With this book, you will:
- Get a complete introduction to the Android programming environment, architecture, and tools
- Build a modular application, beginning with a core module that serves to launch modules added in subsequent chapters
- Learn the concepts and architecture of a specific feature set, including views, maps, location-based services, persistent data storage, 2D and 3D graphics, media services, telephony services, and messaging
- Use ready-to-run example code that implements each feature
- Delve into advanced topics, such as security, custom views, performance analysis, and internationalization
The book is a natural complement to the existing Android documentation provided by Google. Whether you want to develop a commercial application for mobile devices, or just want to create a mobile mashup for personal use, Android Application Development demonstrates how you can design, build, and test applications for the new mobile market.
Synopsis
Android has not only created a vibrant new market for mobile apps, it's also generating a new culture of interactive Java programming. This authoritative guide shows experienced application developers what they need to program for the Android operating system -- the core building blocks, how to put those blocks together, and how to build compelling apps that work on a full range of Android devices.
With Programming Android, you'll learn advanced Java concepts in a way that any programmer can understand, even if you have no previous experience with the language. You'll delve into topics such as sensors, native development, and 3D graphics, and learn how to build Android apps on the platform of your choice, including Windows, Linux, and Mac OS X.
- Learn the key components of an Android application
- Explore the Android Framework and the Eclipse IDE
- Understand Android’s unique database design issues and examine the role of SQLite
- Create an Android user interface that’s captivating and easy to navigate
- Make your app location-aware, and take advantage of multimedia
- Use sensors and gestures to expand your app’s input beyond the defaults
Synopsis
This authoritative guide shows experienced application developers what they need to know to program the Android operating system--the core building blocks, how to put those blocks together, and how to build compelling apps that work on a full range of Android devices.
Synopsis
This practical book provides the concepts and code necessary to develop software with Android, the open-source platform for cell phones and mobile devices that's generating enthusiasm across the industry.
Synopsis
What does it take to build well-engineered Android applications? Explore Android's core building blocks and APIs in depth with this authoritative guide, and learn how to create compelling apps that work on a full range of Android devices. You'll work with proven approaches to app design and implementation—including application frameworks that you can use as a starting point for your own projects.
Delve into sensors, native development, 3D graphics, and many other topics, and discover how to build apps on the platform of your choice. If you're an intermediate to advanced programmer, you'll learn how to make great Android apps.
- Learn how to use the Android SDK with the Eclipse IDE
- Apply advanced Java concepts regardless of your experience with the language
- Create an Android user interface that's captivating and easy to navigate
- Use the Fragment API for tablet user interfaces
- Make your application compatible with Honeycomb and earlier versions
- Understand Android's unique database design issues and the role of SQLite
- Use sensors and gestures to expand your app's input beyond just tapping and scrolling
- Explore Android APIs for multimedia, location, communication, NFC, and other applications
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 is a software engineer with more than 20 years of experience, much of it with Java. He has built systems as large as Amazon's massively scalable AutoScaling service and as small as a pre-Android OSS/Linux based Java-like platform for cell-phones. Blake is currently an Android Evangelist, working at Marakana. He is co-author of two O'Reilly books on Android, including the best-selling, "Programming Android".
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
Preface; How This Book Is Organized; Conventions Used in This Book; Using Code Examples; Safari® Books Online; How to Contact Us; Acknowledgments; Tools and Basics; Chapter 1: Your Toolkit; 1.1 Installing the Android SDK and Prerequisites; 1.2 Test Drive: Confirm That Your Installation Works; 1.3 Components of the SDK; 1.4 Keeping Up-to-Date; 1.5 Example Code; 1.6 On Reading Code; Chapter 2: Java for Android; 2.1 Android Is Reshaping Client-Side Java; 2.2 The Java Type System; 2.3 Scope; 2.4 Idioms of Java Programming; Chapter 3: The Ingredients of an Android Application; 3.1 Traditional Programming Models Compared to Android; 3.2 Activities, Intents, and Tasks; 3.3 Other Android Components; 3.4 Static Application Resources and Context; 3.5 Resources; 3.6 The Android Application Runtime Environment; 3.7 Component Life Cycles; 3.8 Packaging an Android Application: The .apk File; 3.9 On Porting Software to Android; Chapter 4: Getting Your Application into Users Hands; 4.1 Application Signing; 4.2 Placing an Application for Distribution in the Android Market; 4.3 Google Maps API Keys; 4.4 Specifying API-Level Compatibility; 4.5 Compatibility with Many Kinds of Screens; Chapter 5: Eclipse for Android Software Development; 5.1 Eclipse Concepts and Terminology; 5.2 Eclipse Views and Perspectives; 5.3 Java Coding in Eclipse; 5.4 Eclipse and Android; 5.5 Preventing Bugs and Keeping Your Code Clean; 5.6 Eclipse Idiosyncrasies and Alternatives; Chapter 6: Effective Java for Android; 6.1 The Android Framework; 6.2 Organizing Java Source; 6.3 Concurrency in Android; 6.4 Serialization; About the Android Framework; Chapter 7: Building a View; 7.1 Android GUI Architecture; 7.2 Assembling a Graphical Interface; 7.3 Wiring Up the Controller; 7.4 The Menu; Chapter 8: Fragments and Multiplatform Support; 8.1 Creating a Fragment; 8.2 Fragment Life Cycle; 8.3 The Fragment Manager; 8.4 Fragment Transactions; 8.5 The Compatibility Package; Chapter 9: Drawing 2D and 3D Graphics; 9.1 Rolling Your Own Widgets; 9.2 Bling; Chapter 10: Handling and Persisting Data; 10.1 Relational Database Overview; 10.2 SQLite; 10.3 The SQL Language; 10.4 SQL and the Database-Centric Data Model for Android Applications; 10.5 The Android Database Classes; 10.6 Database Design for Android Applications; 10.7 Using the Database API: MJAndroid; A Skeleton Application for Android; Chapter 11: A Framework for a Well-Behaved Application; 11.1 Visualizing Life Cycles; 11.2 Visualizing the Fragment Life Cycle; 11.3 The Activity Class and Well-Behaved Applications; 11.4 Life Cycle Methods of the Application Class; 11.5 A Flowing and Intuitive User Experience Across Activities; Chapter 12: Using Content Providers; 12.1 Understanding Content Providers; 12.2 Defining a Provider Public API; 12.3 Writing and Integrating a Content Provider; 12.4 File Management and Binary Data; 12.5 Android MVC and Content Observation; 12.6 A Complete Content Provider: The SimpleFinchVideoContentProvider Code; 12.7 Declaring Your Content Provider; Chapter 13: Exploring Content Providers; 13.1 Developing RESTful Android Applications; 13.2 A Network MVC”; 13.3 Summary of Benefits; 13.4 Code Example: Dynamically Listing and Caching YouTube Video Content; 13.5 Structure of the Source Code for the Finch YouTube Video Example; 13.6 Stepping Through the Search Application; 13.7 Step 1: Our UI Collects User Input; 13.8 Step 2: Our Controller Listens for Events; 13.9 Step 3: The Controller Queries the Content Provider with a managedQuery on the Content Provider/Model; 13.10 Step 4: Implementing the RESTful Request; Advanced Topics; Chapter 14: Multimedia; 14.1 Audio and Video; 14.2 Playing Audio and Video; 14.3 Recording Audio and Video; 14.4 Stored Media Content; Chapter 15: Location and Mapping; 15.1 Location-Based Services; 15.2 Mapping; 15.3 The Google Maps Activity; 15.4 The MapView and MapActivity; 15.5 Working with MapViews; 15.6 MapView and MyLocationOverlay Initialization; 15.7 Pausing and Resuming a MapActivity; 15.8 Controlling the Map with Menu Buttons; 15.9 Controlling the Map with the Keypad; 15.10 Location Without Maps; Chapter 16: Sensors, NFC, Speech, Gestures, and Accessibility; 16.1 Sensors; 16.2 Near Field Communication (NFC); 16.3 Gesture Input; 16.4 Accessibility; Chapter 17: Communication, Identity, Sync, and Social Media; 17.1 Account Contacts; 17.2 Authentication and Synchronization; 17.3 Bluetooth; Chapter 18: The Android Native Development Kit (NDK); 18.1 Native Methods and JNI Calls; 18.2 The Android NDK; 18.3 Android-Provided Nativvvvvve Libraries; 18.4 Building Your Own Custom Library Modules; 18.5 Native Activities; Colophon;