Document Outline
About the Author
Contents
Introduction
Who This Book Is For
What This Book Covers
How This Book Is Structured
What You Need to Use This Book
Source Code
Errata
Part I: Building a Better Foundation
Chapter 1: Fine-Tuning Your Development Environment
Operating Systems for Android Development
Advanced Android SDK Tools
Android Library Projects and Third-Party Libraries
Version Control and Source Code Management
Mastering Your IDE
Developer Options on Android Devices
Summary
Further Resources
Chapter 2: Efficient Java Code for Android
Comparing Android’s Dalvik Java to Java SE
Optimizing Java Code for Android
Memory Management and Allocations
Multithreading on Android
Summary
Further Resources
Part II: Getting the Most Out of Components
Chapter 3: Components, Manifests, and Resources
Android Components
The Android Application Manifest
Resources and Assets
Summary
Further Resources
Chapter 4: Android User Experience and Interface Design
User Stories
Android UI Design
Android UI Elements
Text in Android Applications
Dimensions and Sizes
Colors
Images and Icons
Usability
Rewarding the User
Summary
Further Resources
Chapter 5: Android User Interface Operations
Activities and Fragments
Using Multiple Screens
Designing Custom Views
Multi-Touching
OpenGL ES
Summary
Further Resources
Chapter 6: Services and Background Tasks
When and How to Use a Service
Understanding the Service Lifecycle
Running in the Background
Communicating with Services
Summary
Further Resources
Chapter 7: Android IPC
The Binder Explained
Designing APIs
Securing Remote APIs
Summary
Further Resources
Chapter 8: Mastering BroadcastReceivers and Configuration Changes
BroadcastReceivers
Device Configuration Changes
Summary
Further Resources
Chapter 9: Data Storage and Serialization Techniques
Persistence Options for Android
Storing Data in Preference Files
User Options and Settings UI
High-Performance ContentProviders
Serializing Data for Persistence
Application Data Backup
Summary
Further Resources
Chapter 10: Writing Automated Tests
Android Testing Principles
Continuous Integration
Summary
Further Resources
Part III: Pushing the Limits
Chapter 11: Advanced Audio, Video, and Camera Applications
Advanced Audio Applications
Video Processing with OpenGL ES 2.0
Camera Processing with OpenGL ES 2.0
Encoding Media
Summary
Further Resources
Chapter 12: Secure Android Applications
Android Security Concepts
Client-Side Data Encryption
Android Key Chain Management
Device Management API
Summary
Further Resources
Chapter 13: Maps, Location, and Activity APIs
Fused Location Manager
Google Maps v2 Integration
Working with Google Maps
Using the LocationClient
Geofencing
Activity Recognition
Summary
Further Resources
Chapter 14: Native Code and JNI
A Note on CPU Architecture
Writing Android Applications in C
Working with JNI
Android Native APIs
Porting a Native Library to Android
Summary
Further Resources
Chapter 15: The Hidden Android APIs
Official and Hidden APIs
Discovering Hidden APIs
Safely Calling Hidden APIs
Examples of Hidden APIs
Summary
Further Resources
Chapter 16: Hacking the Android Platform
Unlocking Your Device
The Android Source Code
Writing System Applications
Hacking the Android Platform
Contributing to AOSP
Summary
Further Resources
Chapter 17: Networking, Web Service, and Remote APIs
Android Networking
Integrating Web Services
Network and Power Consumption
Summary
Further Resources
Chapter 18: Communicating with Remote Devices
Android’s Connectivity Technologies
Android USB
Bluetooth Low Energy
Android Wi-Fi
On-Device Web Services
Summary
Further Resources
Chapter 19: Google Play Services
Authorization
Google Drive Application Data
Google Cloud Endpoints
Google Cloud Messaging
Google Play Game Services
Summary
Further Resources
Chapter 20: Distributing Applications on Google Play Store
In-app Billing
Ads in Android Applications
Application Licensing
APK Expansion Files
Summary
Further Resources
Index