This document discusses how to write testable Android apps. It recommends abstracting away from Android APIs to isolate business logic, using dependency injection with Dagger 2, and mocking dependencies for testing. The key points are:
1) Abstract business logic from Android components like Activities and Fragments into plain Java classes like presenters and managers to make logic independently testable.
2) Use dependency injection, preferably with Dagger 2, to avoid direct instantiation with "new" and allow mocking dependencies.
3) For testing, mock dependencies using libraries like Mockito and program to interfaces to make mocking possible. This allows testing presenters and other classes in isolation.
4) Other best practices discussed