How to pass an argument to an AndroidTestCase?

To expand on selalerer's answer, instrumentation test(s) can be started with arguments specified via Gradle:

./gradlew -Pandroid.testInstrumentationRunnerArguments.exampleArgument=hello connectedAndroidTest

You can retrieve instrumentation arguments using:

InstrumentationRegistry.getArguments().getString("exampleArgument") // returns "hello"

Found a solution.

I made my test-runner inherit from InstrumentationTestRunner and took the extra data in onCreate():

public class MyTestRunner extends InstrumentationTestRunner {

    public static String BAR;

    public void onCreate(Bundle arguments) {

        if (null != arguments) {    
            BAR = (String) arguments.get("foo"));
        }    
        super.onCreate(arguments);
    }
}

I added to Android.mk:

LOCAL_JAVA_LIBRARIES := android.test.runner

And to AndroidManifest.xml:

<instrumentation 
    android:name="com.example.MyTestRunner"
    android:targetPackage="com.example" />

Ran it using this command line:

adb shell am instrument -w -e foo the_value_of_bar com.example/com.example.MyTestRunner

I was able to get the 'foo' parameter from the command line and use BAR in my AndroidTestCase.