Tutorials
Acquire
Revise
Android Training
Get Started
Building Your First App
Creating an Android Project
Running Your Application
Building a Simple User Interface
Starting Another Activity
Managing the Activity Lifecycle
Starting an Activity
Pausing and Resuming an Activity
Stopping and Restarting an Activity
Recreating an Activity
Supporting Different Devices
Supporting Different Languages
Supporting Different Screens
Supporting Different Platform Versions
Building a Dynamic UI with Fragments
Using the Support Library
Creating a Fragment
Building a Flexible UI
Communicating with Other Fragments
Saving Data
Saving Key-Value Sets
Saving Files
Saving Data in SQL Databases
Interacting with Other Apps
Sending the User to Another App
Getting a Result from the Activity
Allowing Other Apps to Start Your Activity
Advanced Training
Making Your App Location Aware
Using the Location Manager
Obtaining the Current Location
Displaying a Location Address
Performing Network Operations
Connecting to the Network
Managing Network Usage
Parsing XML Data
Transferring Data Without Draining the Battery
Optimizing Downloads for Efficient Network Access
Minimizing the Effect of Regular Updates
Redundant Downloads are Redundant
Modifying Patterns Based on the Connectivity Type
Syncing to the Cloud
Using the Backup API
Making the Most of Google Cloud Messaging
Designing for Multiple Screens
Designing for Multiple Screens
Supporting Different Screen Densities
Implementing Adaptive UI Flows
Improving Layout Performance
Optimizing Layout Hierarchies
Re-using Layouts with <include/>
Loading Views On Demand
Making ListView Scrolling Smooth
Managing Audio Playback
Controlling Your App?s Volume and Playback
Managing Audio Focus
Dealing with Audio Output Hardware
Optimizing Battery Life
Monitoring the Battery Level and Charging State
Determining and Monitoring the Docking State and Type
Determining and Monitoring the Connectivity Status
Manipulating Broadcast Receivers On Demand
Creating Custom Views
Creating a Custom View Class
Implementing Custom Drawing
Making the View Interactive
Optimizing the View
Adding Search Functionality
Setting up the Search Interface
Storing and Searching for Data
Remaining Backward Compatible
Remembering Users
Remembering Your User
Authenticating to OAuth2 Services
Creating a Custom Account Type
Sharing Content
Sending Content to Other Apps
Receiving Content from Other Apps
Adding an Easy Share Action
Capturing Photos
Taking Photos Simply
Recording Videos Simply
Controlling the Camera
Maintaining Multiple APKs
Creating Multiple APKs for Different API Levels
Creating Multiple APKs for Different Screen Sizes
Creating Multiple APKs for Different GL Textures
Creating Multiple APKs with 2+ Dimensions
Creating Backward-Compatible UIs
Abstracting the New APIs
Proxying to the New APIs
Creating an Implementation with Older APIs
Using the Version-Aware Component
Developing for Enterprise
Enhancing Security with Device Management Policies
Monetizing Your App
Advertising without Compromising User Experience
Designing Effective Navigation
Planning Screens and Their Relationships
Planning for Multiple Touchscreen Sizes
Providing Descendant and Lateral Navigation
Providing Ancestral and Temporal Navigation
Putting it All Together: Wireframing the Example App
Implementing Effective Navigation
Implementing Lateral Navigation
Implementing Ancestral Navigation
Implementing Temporal Navigation
Implementing Descendant Navigation
Designing for TV
Optimizing Layouts for TV
Optimizing Navigation for TV
Handling Features Not Supported on TV
Displaying Bitmaps Efficiently
Loading Large Bitmaps Efficiently
Processing Bitmaps Off the UI Thread
Caching Bitmaps
Displaying Bitmaps in Your UI
Implementing Accessibility
Developing Accessible Applications
Developing Accessibility Services
Displaying Graphics with OpenGL ES
Building an OpenGL ES Environment
Defining Shapes
Drawing Shapes
Applying Projection and Camera Views
Adding Motion
Responding to Touch Events
Connecting Devices Wirelessly
Using Network Service Discovery
Connecting with Wi-Fi Direct
Using Wi-Fi Direct for Service Discovery