Overview

Android Cliffnotes

Motivation

Ever been frustrated finding information on outdated one-off blog posts and tutorials that have long since become irrelevant? How many times have you been googling to find your answer only exists on an obscure 2 year old StackOverflow post? We believe there’s got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There’s absolutely no reason that we should have to make do with vague and outdated content anymore.

Overview

The cliffnotes below are categorized by their topic, so you can easily find guides on related topics whether that is views, styling, testing, or using sensors. If you see an error, incorrect explanation or deprecated solution, why not contribute back and make these cliffnotes better for the next person? That in a nutshell is the core spirit of this initiative. Check out the list of contributors to this project.

Disclaimer: We have scoured the web endlessly for content while creating these guides and adapted content from many source including the Google Official Docs, Vogella Tutorials and countless other sources that had hidden gems of information. At the bottom of each guide, there are citations for the content we used. We don’t claim the content is original (although we did develop quite a bit ourselves), but unlike those other sources listed, it is freely community editable. We have openly adapted, modified and brought together this content from all the sources we could find for the benefit of every engineer.

Getting Started

Totally new to Android? Start here.

Debugging Android. Debug and troubleshoot issues.

External Resources. Great external content to explore.

Using Eclipse? See below.

Structure

Exploring the core of app development:

Views and Layouts

Exploring the gritty details of views, layout, styling and common UI patterns:

Designing and Styling Views

AdapterViews

Custom Views

Interaction

Exploring how to allow user interaction and navigation within an app:

Networking and Models

Diving into the networking and model layers for data-driven apps:

Persistence

Exploring the strategies for data persistence:

Fragments

Understanding how to build powerful and flexible views using Fragments:

  • [[Creating and Using Fragments]]
  • [[Displaying a DialogFragment|Using DialogFragment]]
  • [[Google Play Style Tabs using TabLayout]]
  • [[Sliding Tabs with PagerSlidingTabStrip]]
  • [[ViewPager with FragmentPagerAdapter]]
  • [[Fragment Navigation Drawer]]
  • [Flexible User Interfaces]
  • [ActionBar Tabs with Fragments]

Sensors and Device SDKs

Exploring sensors and components available via the Android SDK:

Services

Digging into how to run background services or leverage Android system services:

Testing

Covering automated testing frameworks and tools for Android:

Libraries

Covers usage of more advanced third-party libraries and SDKs that save time and improve the maintainability of your code:

Production

Covers guides specifically related to developing and publishing robust Android applications:

Workflow

Focused on issues like deployment, dependency management, etc: