Robotium
gray box testing
Pros:
You need minimum time to write solid test cases;
You can create good test cases with the minimal knowledge of the app tested;
Framework can process a few testing processes for Android automatically;
Automated synchronization;
Quick testing implementation;
Tests are more reliable due to runtime binding to UI components.
Cons:
Time-consuming;
It doesn't offer screenshots feature;
Espresso
white-box testing, you need to be familiar with the app tested and understand the code
can test only one app at a time.
Pros:
Espresso API tests are displayed as a common English text, so you can learn to work with it very fast;
It has a small API;
It is launching fast;
Gradle+Android Studio support.
Cons:
It doesn't support webviews.
UIAutomator
black-box testing
Pros:
You don't depend on screen resolution;
All actions are bound to Android UI components. It allows specialists to work directly with UI elements;
You can start complicated sequence of actions;
You can use external buttons on the device
Cons:
It works on Android devices with API 16 level or higher only;
It doesn't support webview as well.
Appium + Python
Pros:
Appium allows to test both native and hybrid apps as well;
Python syntax is very simple. So code can be written much faster than when you use Java language.
Cons:
It takes some time to configure it.
MonkeyRunner
Pros:
MonkeyRunner is developed for unit testing of devices and apps.
can be customized to use it for other types of Android app automation testing.
It is flexible and that is the main advantage, you can implement here almost everything you need
Cons:
It is necessary to write scripts for each device;
Monkey
Pros:
You don't need source code for this testing - the app should be installed on the device or emulator;
The main advantage of Monkey is the absence of expenses for support;
Also, app stress-testing with random actions can help engineers detect unusual bugs.
Cons:
It takes some time to configure it.
Testdroid
Pros:
The main goal of Testdroid framework is to provide engineers with a quick result of testing;
Immediate integration to take screenshots and add comments to them;
It supports a wide range of mobile devices for testing.
Cons:
It can be lagging from time to time.
Scirocco
perform tests on a few devices at once and it can make test reports with screenshots automatically.
Pros:
Test reports with screenshots;
Quick testing process;
Solid test case is written quickly;
Handling a few devices simultaneously.
Cons:
You have to create extra Gradle task.
Roboelectric
similar to black box testing, and the test can become more efficient for refactoring, and the behavior of the app can be tested as well.
Pros:
Roboelectric is rather a new framework and it is quickly developing at the moment. In most cases, it is used for business logic, data storing and data processing testing.
Cons:
Some new API versions may not be available.
TestFairy
beta testing framework
Pros:
When you perform beta testing of mobile apps, it can be difficult to detect why one or another problem arose. And TestFairy helps you since it records all tests on video and it memorizes all technical features of the device.
Cons:
You should manage all the testing process made by a 3rd-party user.