[go: nahoru, domu]

Migrate away from deprecated test classes

There are some unnecessary imports, test dependencies, and explicit casts
now, but we don't have reasonable tooling to clean those up automatically
across the entire codebase. Also, some imports may be out of order.

Fixes: 119834874
Test: ./gradlew buildOnServer
Change-Id: Ic48c88f4f03f890651fc9cdabdefdc82774dcdf5
diff --git a/activity/build.gradle b/activity/build.gradle
index 91a9895..fea0bf1 100644
--- a/activity/build.gradle
+++ b/activity/build.gradle
@@ -23,6 +23,8 @@
     api(project(":savedstate:savedstate-bundle"))
 
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/activity/integration-tests/testapp/build.gradle b/activity/integration-tests/testapp/build.gradle
index 0db760b..18c13b5 100644
--- a/activity/integration-tests/testapp/build.gradle
+++ b/activity/integration-tests/testapp/build.gradle
@@ -31,6 +31,8 @@
     implementation(project(":activity"))
     androidTestImplementation(LEAKCANARY_INSTRUMENTATION)
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/activity/integration-tests/testapp/src/androidTest/java/androidx/activity/integration/testapp/LeakInputMethodManagerTest.kt b/activity/integration-tests/testapp/src/androidTest/java/androidx/activity/integration/testapp/LeakInputMethodManagerTest.kt
index 736d96a..d308df5 100644
--- a/activity/integration-tests/testapp/src/androidTest/java/androidx/activity/integration/testapp/LeakInputMethodManagerTest.kt
+++ b/activity/integration-tests/testapp/src/androidTest/java/androidx/activity/integration/testapp/LeakInputMethodManagerTest.kt
@@ -24,9 +24,9 @@
 import android.widget.LinearLayout
 import android.widget.TextView
 import androidx.activity.ComponentActivity
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/activity/ktx/build.gradle b/activity/ktx/build.gradle
index a39ae87..2ed6707 100644
--- a/activity/ktx/build.gradle
+++ b/activity/ktx/build.gradle
@@ -37,6 +37,8 @@
     api(KOTLIN_STDLIB)
     androidTestImplementation(JUNIT)
     androidTestImplementation(TRUTH)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
 }
diff --git a/activity/src/androidTest/java/androidx/activity/ComponentActivityLifecycleTest.kt b/activity/src/androidTest/java/androidx/activity/ComponentActivityLifecycleTest.kt
index 279875a..2408922 100644
--- a/activity/src/androidTest/java/androidx/activity/ComponentActivityLifecycleTest.kt
+++ b/activity/src/androidTest/java/androidx/activity/ComponentActivityLifecycleTest.kt
@@ -20,9 +20,9 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleEventObserver
 import androidx.lifecycle.LifecycleOwner
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/activity/src/androidTest/java/androidx/activity/ComponentActivityOnBackPressedTest.kt b/activity/src/androidTest/java/androidx/activity/ComponentActivityOnBackPressedTest.kt
index c8aea2c..dda0ad5 100644
--- a/activity/src/androidTest/java/androidx/activity/ComponentActivityOnBackPressedTest.kt
+++ b/activity/src/androidTest/java/androidx/activity/ComponentActivityOnBackPressedTest.kt
@@ -21,9 +21,9 @@
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.LifecycleRegistry
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Rule
 import org.junit.Test
diff --git a/activity/src/androidTest/java/androidx/activity/ComponentActivityOverrideLifecycleTest.kt b/activity/src/androidTest/java/androidx/activity/ComponentActivityOverrideLifecycleTest.kt
index 3c75fc7..ea69c00 100644
--- a/activity/src/androidTest/java/androidx/activity/ComponentActivityOverrideLifecycleTest.kt
+++ b/activity/src/androidTest/java/androidx/activity/ComponentActivityOverrideLifecycleTest.kt
@@ -19,9 +19,9 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleRegistry
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import org.junit.Assert.fail
 import org.junit.Rule
diff --git a/activity/src/androidTest/java/androidx/activity/ComponentActivitySavedStateTest.kt b/activity/src/androidTest/java/androidx/activity/ComponentActivitySavedStateTest.kt
index bd8262d..a46b155 100644
--- a/activity/src/androidTest/java/androidx/activity/ComponentActivitySavedStateTest.kt
+++ b/activity/src/androidTest/java/androidx/activity/ComponentActivitySavedStateTest.kt
@@ -21,9 +21,9 @@
 import androidx.lifecycle.LifecycleObserver
 import androidx.lifecycle.OnLifecycleEvent
 import androidx.savedstate.SavedStateRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import org.junit.After
 import org.junit.Rule
diff --git a/activity/src/androidTest/java/androidx/activity/ComponentActivityViewModelTest.kt b/activity/src/androidTest/java/androidx/activity/ComponentActivityViewModelTest.kt
index d8b2083..35f7874 100644
--- a/activity/src/androidTest/java/androidx/activity/ComponentActivityViewModelTest.kt
+++ b/activity/src/androidTest/java/androidx/activity/ComponentActivityViewModelTest.kt
@@ -23,9 +23,9 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.ViewModelStore
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Rule
diff --git a/animation/build.gradle b/animation/build.gradle
index 7d3a2dd..ffacab8 100644
--- a/animation/build.gradle
+++ b/animation/build.gradle
@@ -26,7 +26,7 @@
     implementation(project(":annotation"))
     implementation(project(":core"))
 
-    androidTestImplementation(TEST_RUNNER, libs.exclude_for_espresso)
+    androidTestImplementation(TEST_EXT_JUNIT, libs.exclude_for_espresso)
     androidTestImplementation(TEST_RULES, libs.exclude_for_espresso)
 }
 
diff --git a/animation/integration-tests/testapp/build.gradle b/animation/integration-tests/testapp/build.gradle
index 5f2a26d..155bc10 100644
--- a/animation/integration-tests/testapp/build.gradle
+++ b/animation/integration-tests/testapp/build.gradle
@@ -26,7 +26,8 @@
     implementation(project(":animation"))
     implementation(project(":animation:testing"))
 
-    implementation(TEST_RUNNER, libs.exclude_for_espresso)
+    implementation(TEST_EXT_JUNIT, libs.exclude_for_espresso)
+    implementation(TEST_CORE, libs.exclude_for_espresso)
     implementation(TEST_RULES, libs.exclude_for_espresso)
 }
 
diff --git a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorInflaterTest.java b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorInflaterTest.java
index 53393d6..0115e60 100644
--- a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorInflaterTest.java
+++ b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorInflaterTest.java
@@ -16,17 +16,17 @@
 
 package androidx.animation;
 
-import android.content.Context;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import android.content.Context;
+
 import androidx.animation.testapp.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.ClassRule;
 import org.junit.Test;
@@ -44,7 +44,7 @@
     @UiThreadTest
     @Test
     public void testLoadAnimator() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Animator anim = AnimatorInflater.loadAnimator(context, R.animator.animator_set_with_dimens);
         assertEquals(100, anim.getTotalDuration());
 
@@ -68,7 +68,7 @@
     @UiThreadTest
     @Test
     public void testLoadAnimatorAlongPath() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Animator anim = AnimatorInflater.loadAnimator(context, R.animator.animator_along_path);
         assertTrue(anim.getInterpolator() instanceof LinearInterpolator);
         assertEquals(100, anim.getDuration());
diff --git a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorSetTest.java b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorSetTest.java
index 5778992..9ad4a8bb 100644
--- a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorSetTest.java
+++ b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/AnimatorSetTest.java
@@ -25,8 +25,8 @@
 import static org.junit.Assert.assertTrue;
 
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/EvaluatorTest.java b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/EvaluatorTest.java
index d557261..6a2407f 100644
--- a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/EvaluatorTest.java
+++ b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/EvaluatorTest.java
@@ -23,8 +23,8 @@
 import android.graphics.PointF;
 import android.graphics.Rect;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/InterpolatorTest.java b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/InterpolatorTest.java
index 7419bcd..8f5d962 100644
--- a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/InterpolatorTest.java
+++ b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/InterpolatorTest.java
@@ -22,8 +22,8 @@
 import android.graphics.Path;
 
 import androidx.core.graphics.PathParser;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/ObjectAnimatorTest.java b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/ObjectAnimatorTest.java
index 3af36d9..d222dd5 100644
--- a/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/ObjectAnimatorTest.java
+++ b/animation/integration-tests/testapp/src/androidTest/java/androidx/animation/ObjectAnimatorTest.java
@@ -26,8 +26,8 @@
 import android.util.Property;
 
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/animation/testing/build.gradle b/animation/testing/build.gradle
index c251db0..d823fa1 100644
--- a/animation/testing/build.gradle
+++ b/animation/testing/build.gradle
@@ -26,7 +26,8 @@
     implementation(project(":annotation"))
     implementation(project(":core"))
     implementation(project(":animation"))
-    implementation(TEST_RUNNER)
+    implementation(TEST_EXT_JUNIT)
+    implementation(TEST_CORE)
 }
 
 supportLibrary {
diff --git a/appcompat/build.gradle b/appcompat/build.gradle
index a672c0c..fc10b3f 100644
--- a/appcompat/build.gradle
+++ b/appcompat/build.gradle
@@ -17,6 +17,8 @@
     api("androidx.vectordrawable:vectordrawable-animated:1.0.0")
     api("androidx.drawerlayout:drawerlayout:1.0.0")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
index 2786c50..44b38dd 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AlertDialogCursorTest.java
@@ -52,10 +52,10 @@
 import androidx.appcompat.test.R;
 import androidx.appcompat.testutils.TestUtilsMatchers;
 import androidx.test.espresso.DataInteraction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.After;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
index 21ac9053..87563b7 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
@@ -28,9 +28,9 @@
 import androidx.appcompat.widget.AppCompatSpinner;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.appcompat.widget.AppCompatToggleButton;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemIconTintingTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemIconTintingTest.java
index 360f6ce..c88ba2a 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemIconTintingTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemIconTintingTest.java
@@ -36,9 +36,9 @@
 import androidx.core.graphics.ColorUtils;
 import androidx.core.view.MenuItemCompat;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemShortcutsTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemShortcutsTest.java
index 9df4413..d3948e9 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemShortcutsTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatMenuItemShortcutsTest.java
@@ -24,9 +24,9 @@
 import android.view.KeyEvent;
 
 import androidx.appcompat.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatVectorDrawableIntegrationTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatVectorDrawableIntegrationTest.java
index 0aebb2d..43830f4 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatVectorDrawableIntegrationTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatVectorDrawableIntegrationTest.java
@@ -28,9 +28,9 @@
 
 import androidx.appcompat.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
index be1e04b..8749fc8 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseBasicsTestCase.java
@@ -48,10 +48,10 @@
 import androidx.appcompat.testutils.BaseTestActivity;
 import androidx.appcompat.view.ActionMode;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyEventsTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyEventsTestCase.java
index 7c07c9e..3cef5f4 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyEventsTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyEventsTestCase.java
@@ -39,11 +39,11 @@
 import androidx.appcompat.testutils.BaseTestActivity;
 import androidx.appcompat.view.ActionMode;
 import androidx.core.view.MenuItemCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matchers;
 import org.junit.Before;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyboardShortcutsTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyboardShortcutsTestCase.java
index 0e4b490..58f6681 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyboardShortcutsTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/BaseKeyboardShortcutsTestCase.java
@@ -27,10 +27,10 @@
 
 import androidx.appcompat.test.R;
 import androidx.appcompat.testutils.BaseTestActivity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/DialogTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/DialogTestCase.java
index dd95a16..bdff597 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/DialogTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/DialogTestCase.java
@@ -22,10 +22,10 @@
 import android.app.Dialog;
 import android.os.Bundle;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerDynamicLayoutTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerDynamicLayoutTest.java
index b27c46e..b0b231b 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerDynamicLayoutTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerDynamicLayoutTest.java
@@ -35,9 +35,9 @@
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerInteractionTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerInteractionTest.java
index f3fbe52..c3283d0 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerInteractionTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerInteractionTest.java
@@ -34,10 +34,10 @@
 
 import androidx.core.view.GravityCompat;
 import androidx.drawerlayout.widget.DrawerLayout;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -62,8 +62,8 @@
     public void setUp() throws Throwable {
         final Activity activity = mActivityTestRule.getActivity();
 
-        Context context = InstrumentationRegistry.getContext();
-        mDrawerLayout = new TestDrawerLayout(InstrumentationRegistry.getContext());
+        Context context = ApplicationProvider.getApplicationContext();
+        mDrawerLayout = new TestDrawerLayout(ApplicationProvider.getApplicationContext());
         mContentView = new MockView(context);
         mStartDrawer = new MockView(context);
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutDoubleTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutDoubleTest.java
index f74b10a..37d13f6 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutDoubleTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutDoubleTest.java
@@ -32,10 +32,10 @@
 import androidx.appcompat.test.R;
 import androidx.core.view.ViewCompat;
 import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutTest.java
index 855f747..23dd7c0 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/DrawerLayoutTest.java
@@ -51,12 +51,12 @@
 import androidx.test.espresso.action.GeneralSwipeAction;
 import androidx.test.espresso.action.Press;
 import androidx.test.espresso.action.Swipe;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/FragmentContentIdTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/FragmentContentIdTest.java
index 7ea806c..27f0ed7 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/FragmentContentIdTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/FragmentContentIdTest.java
@@ -23,9 +23,9 @@
 import static androidx.test.espresso.matcher.ViewMatchers.withId;
 
 import androidx.appcompat.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithToolbar.java b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithToolbar.java
index aae8cac..29366ef 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithToolbar.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithToolbar.java
@@ -23,8 +23,8 @@
 import android.view.Window;
 
 import androidx.appcompat.widget.Toolbar;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithWindowDecor.java b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithWindowDecor.java
index e122523..092a092 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithWindowDecor.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyEventsTestCaseWithWindowDecor.java
@@ -27,8 +27,8 @@
 
 import androidx.appcompat.test.R;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyboardShortcutsTestCaseWithToolbar.java b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyboardShortcutsTestCaseWithToolbar.java
index 3a2b2ec..6139115 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/KeyboardShortcutsTestCaseWithToolbar.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/KeyboardShortcutsTestCaseWithToolbar.java
@@ -29,10 +29,10 @@
 
 import androidx.appcompat.testutils.BaseTestActivity;
 import androidx.appcompat.widget.Toolbar;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/LayoutInflaterFactoryTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/LayoutInflaterFactoryTestCase.java
index df2b9e3..1b0a1da 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/LayoutInflaterFactoryTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/LayoutInflaterFactoryTestCase.java
@@ -41,9 +41,9 @@
 import androidx.appcompat.widget.AppCompatRatingBar;
 import androidx.appcompat.widget.AppCompatSpinner;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/MenuBuilderTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/MenuBuilderTest.java
index b4f230d..b8f16c8 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/MenuBuilderTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/MenuBuilderTest.java
@@ -20,8 +20,8 @@
 import static org.junit.Assert.assertTrue;
 
 import androidx.appcompat.view.menu.MenuBuilder;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.java
index b46481f6..782098e 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.java
@@ -29,10 +29,10 @@
 
 import androidx.appcompat.test.R;
 import androidx.core.content.ContextCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.AppCompatActivityUtils;
 import androidx.testutils.RecreatedAppCompatActivity;
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java b/appcompat/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
index 24a9681..61959ce 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/graphics/drawable/AnimatedStateListDrawableCompatTest.java
@@ -32,9 +32,9 @@
 import android.util.StateSet;
 
 import androidx.appcompat.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
 
 import org.junit.Before;
@@ -56,7 +56,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/res/content/AppCompatResourcesTestCase.java b/appcompat/src/androidTest/java/androidx/appcompat/res/content/AppCompatResourcesTestCase.java
index 02266c0..6cf62e0 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/res/content/AppCompatResourcesTestCase.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/res/content/AppCompatResourcesTestCase.java
@@ -25,9 +25,9 @@
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.content.res.AppCompatResources;
 import androidx.appcompat.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/view/ContextThemeWrapperTest.java b/appcompat/src/androidTest/java/androidx/appcompat/view/ContextThemeWrapperTest.java
index 9754b67..9dd6ea7 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/view/ContextThemeWrapperTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/view/ContextThemeWrapperTest.java
@@ -29,9 +29,9 @@
 import android.os.Build;
 
 import androidx.appcompat.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +59,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/view/SupportMenuInflaterTest.java b/appcompat/src/androidTest/java/androidx/appcompat/view/SupportMenuInflaterTest.java
index e3140c9..6635778 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/view/SupportMenuInflaterTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/view/SupportMenuInflaterTest.java
@@ -24,9 +24,9 @@
 import androidx.appcompat.test.R;
 import androidx.appcompat.widget.PopupMenu;
 import androidx.core.internal.view.SupportMenuItem;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/view/menu/ActionMenuItemTest.java b/appcompat/src/androidTest/java/androidx/appcompat/view/menu/ActionMenuItemTest.java
index e843c83..afd6fab0 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/view/menu/ActionMenuItemTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/view/menu/ActionMenuItemTest.java
@@ -22,9 +22,9 @@
 import android.view.Menu;
 import android.view.MenuItem;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +38,7 @@
 
     @Test
     public void setShowAsActionNever() throws Exception {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final ActionMenuItem item = new ActionMenuItem(
                 context, Menu.NONE, Menu.NONE, 0, 0, "item");
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/view/menu/MenuItemImplTest.java b/appcompat/src/androidTest/java/androidx/appcompat/view/menu/MenuItemImplTest.java
index c553240..264dffb 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/view/menu/MenuItemImplTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/view/menu/MenuItemImplTest.java
@@ -22,9 +22,9 @@
 import android.view.Menu;
 import android.view.MenuItem;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -41,7 +41,7 @@
 
     @Before
     public void setUp() throws Exception {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final MenuBuilder menu = new MenuBuilder(context);
         mMenuItem = new MenuItemImpl(
                 menu, Menu.NONE, Menu.NONE, 0, 0, "item", MenuItem.SHOW_AS_ACTION_IF_ROOM);
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
index e3bbbd3..6e7adf2 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
@@ -42,10 +42,10 @@
 import androidx.core.content.res.ResourcesCompat;
 import androidx.core.widget.AutoSizeableTextView;
 import androidx.core.widget.TextViewCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
index 681291f..2dd5ce0 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
@@ -44,9 +44,9 @@
 import androidx.appcompat.testutils.TestUtils;
 import androidx.core.content.res.ResourcesCompat;
 import androidx.core.graphics.ColorUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatButtonAutoSizeTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatButtonAutoSizeTest.java
index 5b4be0b..f2da2e8 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatButtonAutoSizeTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatButtonAutoSizeTest.java
@@ -16,8 +16,8 @@
 
 package androidx.appcompat.widget;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.runner.RunWith;
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatCheckBoxTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatCheckBoxTest.java
index 4461a7c..6dec2f0 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatCheckBoxTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatCheckBoxTest.java
@@ -28,9 +28,9 @@
 import androidx.appcompat.test.R;
 import androidx.core.content.res.ResourcesCompat;
 import androidx.core.widget.CompoundButtonCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextTest.java
index f69ad3d..b9e6a32 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatEditTextTest.java
@@ -26,10 +26,10 @@
 
 import androidx.appcompat.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatRadioButtonTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatRadioButtonTest.java
index 9de0976..dee4845 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatRadioButtonTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatRadioButtonTest.java
@@ -28,9 +28,9 @@
 import androidx.appcompat.test.R;
 import androidx.core.content.res.ResourcesCompat;
 import androidx.core.widget.CompoundButtonCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeTest.java
index 82c52eb..5d766a6 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeTest.java
@@ -31,9 +31,9 @@
 import androidx.annotation.Nullable;
 import androidx.appcompat.test.R;
 import androidx.core.widget.TextViewCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatToggleButtonTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatToggleButtonTest.java
index b8404e9..12a3d27 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatToggleButtonTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatToggleButtonTest.java
@@ -23,9 +23,9 @@
 
 import androidx.appcompat.test.R;
 import androidx.core.content.res.ResourcesCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/ListPopupWindowTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/ListPopupWindowTest.java
index c5a72c0..c38fe17 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/ListPopupWindowTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/ListPopupWindowTest.java
@@ -55,12 +55,12 @@
 import android.widget.TextView;
 
 import androidx.appcompat.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/PopupMenuTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/PopupMenuTest.java
index 1712854..6004bb6 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/PopupMenuTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/PopupMenuTest.java
@@ -59,16 +59,16 @@
 
 import androidx.appcompat.test.R;
 import androidx.core.view.MenuItemCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.espresso.Root;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.hamcrest.Description;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchViewTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchViewTest.java
index 5d6247a..e580f33 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchViewTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchViewTest.java
@@ -35,11 +35,11 @@
 import android.view.inputmethod.EditorInfo;
 
 import androidx.appcompat.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchView_CursorTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchView_CursorTest.java
index 7c98396..d8be674 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchView_CursorTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/SearchView_CursorTest.java
@@ -39,11 +39,11 @@
 import androidx.appcompat.testutils.TestUtils;
 import androidx.cursoradapter.widget.CursorAdapter;
 import androidx.cursoradapter.widget.SimpleCursorAdapter;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/SwitchCompatTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/SwitchCompatTest.java
index a306a22..bea1cd3 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/SwitchCompatTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/SwitchCompatTest.java
@@ -29,9 +29,9 @@
 
 import androidx.appcompat.test.R;
 import androidx.core.content.res.ResourcesCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
index 4413a52..d3afb0a 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/TintResourcesTest.java
@@ -23,9 +23,9 @@
 import android.graphics.drawable.Drawable;
 
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/ToolbarTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/ToolbarTest.java
index 32fdf41..d15a3be 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/ToolbarTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/ToolbarTest.java
@@ -26,10 +26,10 @@
 
 import androidx.appcompat.test.R;
 import androidx.appcompat.testutils.TestUtils;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/arch/core-testing/build.gradle b/arch/core-testing/build.gradle
index 32d63c8..f733c36 100644
--- a/arch/core-testing/build.gradle
+++ b/arch/core-testing/build.gradle
@@ -32,6 +32,8 @@
     testImplementation(JUNIT)
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
 }
diff --git a/arch/core-testing/src/androidTest/java/androidx/arch/core/executor/testing/CountingTaskExecutorRuleTest.java b/arch/core-testing/src/androidTest/java/androidx/arch/core/executor/testing/CountingTaskExecutorRuleTest.java
index 6f4e56e..ac68079f 100644
--- a/arch/core-testing/src/androidTest/java/androidx/arch/core/executor/testing/CountingTaskExecutorRuleTest.java
+++ b/arch/core-testing/src/androidTest/java/androidx/arch/core/executor/testing/CountingTaskExecutorRuleTest.java
@@ -19,10 +19,9 @@
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
 import androidx.arch.core.executor.ArchTaskExecutor;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.MediumTest;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/browser/build.gradle b/browser/build.gradle
index 0e00196..c8a3fca 100644
--- a/browser/build.gradle
+++ b/browser/build.gradle
@@ -19,6 +19,8 @@
     api(project(":collection"))
     api(project(":legacy-support-core-ui"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java b/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
index 2355209..c25c01e2 100644
--- a/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
+++ b/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsFallbackMenuUiTest.java
@@ -28,9 +28,9 @@
 
 import androidx.browser.R;
 import androidx.browser.customtabs.TestActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java b/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
index 3bd0273..69bed08 100644
--- a/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
+++ b/browser/src/androidTest/java/androidx/browser/browseractions/BrowserActionsIntentTest.java
@@ -27,9 +27,9 @@
 import android.net.Uri;
 import android.os.Bundle;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,7 +44,7 @@
     private static final String TEST_URL = "http://www.example.com";
     private static final String CUSTOM_ITEM_TITLE = "Share url";
     private Uri mUri = Uri.parse(TEST_URL);
-    private Context mContext = InstrumentationRegistry.getTargetContext();
+    private Context mContext = ApplicationProvider.getApplicationContext();
 
     /**
      * Test whether default {@link BrowserActionsIntent} is populated correctly.
@@ -101,7 +101,7 @@
     }
 
     static PendingIntent createCustomItemAction(String url) {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Intent customIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
         return PendingIntent.getActivity(context, 0, customIntent, 0);
     }
diff --git a/browser/src/androidTest/java/androidx/browser/customtabs/CustomTabsIntentTest.java b/browser/src/androidTest/java/androidx/browser/customtabs/CustomTabsIntentTest.java
index 3852598..f98e9e19 100644
--- a/browser/src/androidTest/java/androidx/browser/customtabs/CustomTabsIntentTest.java
+++ b/browser/src/androidTest/java/androidx/browser/customtabs/CustomTabsIntentTest.java
@@ -27,9 +27,9 @@
 import android.os.Build;
 
 import androidx.annotation.ColorRes;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,7 +67,7 @@
     @Test
     public void testToolbarColorIsNotAResource() {
         @ColorRes int colorId = android.R.color.background_dark;
-        int color = InstrumentationRegistry.getContext().getResources().getColor(colorId);
+        int color = ApplicationProvider.getApplicationContext().getResources().getColor(colorId);
         Intent intent = new CustomTabsIntent.Builder().setToolbarColor(colorId).build().intent;
         assertFalse("The color should not be a resource ID",
                 color == intent.getIntExtra(CustomTabsIntent.EXTRA_TOOLBAR_COLOR, 0));
diff --git a/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageServiceConnectionTest.java b/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageServiceConnectionTest.java
index 1e0c4ce..e14f40e 100644
--- a/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageServiceConnectionTest.java
+++ b/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageServiceConnectionTest.java
@@ -23,10 +23,10 @@
 import android.content.Context;
 import android.content.Intent;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
 import androidx.test.rule.ServiceTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java b/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
index d7d8c55..87d4f59 100644
--- a/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
+++ b/browser/src/androidTest/java/androidx/browser/customtabs/PostMessageTest.java
@@ -26,10 +26,10 @@
 import android.net.Uri;
 import android.os.Bundle;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
 import androidx.test.rule.ServiceTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/browser/src/androidTest/java/androidx/browser/customtabs/TrustedWebUtilsTest.java b/browser/src/androidTest/java/androidx/browser/customtabs/TrustedWebUtilsTest.java
index e63a926..557c813 100644
--- a/browser/src/androidTest/java/androidx/browser/customtabs/TrustedWebUtilsTest.java
+++ b/browser/src/androidTest/java/androidx/browser/customtabs/TrustedWebUtilsTest.java
@@ -25,9 +25,9 @@
 import android.net.Uri;
 
 import androidx.core.app.BundleCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/car/cluster/build.gradle b/car/cluster/build.gradle
index 9f58c0c..ee87717 100644
--- a/car/cluster/build.gradle
+++ b/car/cluster/build.gradle
@@ -28,11 +28,15 @@
 
     annotationProcessor(project(":versionedparcelable-annotation"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 
     compileOnly fileTree(dir: '../stubs', include: ['android.car.jar'])
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/ImageReferenceTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/ImageReferenceTest.java
index b00029a..697eaae 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/ImageReferenceTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/ImageReferenceTest.java
@@ -23,8 +23,8 @@
 
 import android.net.Uri;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/LaneTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/LaneTest.java
index 865d972..99ef1ef 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/LaneTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/LaneTest.java
@@ -20,8 +20,8 @@
 
 import static org.junit.Assert.assertEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/NavigationStateTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/NavigationStateTest.java
index f657b9b..538c0fe 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/NavigationStateTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/NavigationStateTest.java
@@ -25,8 +25,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextElementTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextElementTest.java
index fce32e19..f1a1cd7 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextElementTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextElementTest.java
@@ -19,8 +19,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextTest.java
index 488b650..cac4cb0 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/RichTextTest.java
@@ -21,8 +21,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/SegmentTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/SegmentTest.java
index 93a1a36..4788a64 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/SegmentTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/SegmentTest.java
@@ -19,8 +19,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/StepTest.java b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/StepTest.java
index 020bcd5..503e64d 100644
--- a/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/StepTest.java
+++ b/car/cluster/src/androidTest/java/androidx/car/cluster/navigation/StepTest.java
@@ -21,8 +21,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/core/build.gradle b/car/core/build.gradle
index 221eec4..df5f78c 100644
--- a/car/core/build.gradle
+++ b/car/core/build.gradle
@@ -17,6 +17,8 @@
     api(CONSTRAINT_LAYOUT, { transitive = true })
     api(SUPPORT_DESIGN, libs.exclude_for_material)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
@@ -25,6 +27,8 @@
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(MOCKITO_CORE)
 
diff --git a/car/core/src/androidTest/java/androidx/car/drawer/CarDrawerTest.java b/car/core/src/androidTest/java/androidx/car/drawer/CarDrawerTest.java
index 7b1675d..428a141 100644
--- a/car/core/src/androidTest/java/androidx/car/drawer/CarDrawerTest.java
+++ b/car/core/src/androidTest/java/androidx/car/drawer/CarDrawerTest.java
@@ -31,11 +31,11 @@
 import androidx.car.test.R;
 import androidx.car.util.CarUxRestrictionsTestUtils;
 import androidx.car.widget.PagedListView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.espresso.contrib.DrawerActions;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Assume;
@@ -67,7 +67,8 @@
 
     /** Returns {@code true} if the testing device has the automotive feature flag. */
     private boolean isAutoDevice() {
-        PackageManager packageManager = InstrumentationRegistry.getContext().getPackageManager();
+        PackageManager packageManager =
+                ApplicationProvider.getApplicationContext().getPackageManager();
         return packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
     }
 
diff --git a/car/core/src/androidTest/java/androidx/car/navigation/utils/BundlableTest.java b/car/core/src/androidTest/java/androidx/car/navigation/utils/BundlableTest.java
index a53b130..68ae04e 100644
--- a/car/core/src/androidTest/java/androidx/car/navigation/utils/BundlableTest.java
+++ b/car/core/src/androidTest/java/androidx/car/navigation/utils/BundlableTest.java
@@ -18,8 +18,8 @@
 
 import static org.junit.Assert.assertEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/core/src/androidTest/java/androidx/car/navigation/utils/BundleMarshallerTest.java b/car/core/src/androidTest/java/androidx/car/navigation/utils/BundleMarshallerTest.java
index ad84267..5a9ad6e 100644
--- a/car/core/src/androidTest/java/androidx/car/navigation/utils/BundleMarshallerTest.java
+++ b/car/core/src/androidTest/java/androidx/car/navigation/utils/BundleMarshallerTest.java
@@ -24,8 +24,8 @@
 
 import android.os.Bundle;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/car/core/src/androidTest/java/androidx/car/util/GridLayoutManagerUtilsTest.java b/car/core/src/androidTest/java/androidx/car/util/GridLayoutManagerUtilsTest.java
index 1578f62..90e6a9d 100644
--- a/car/core/src/androidTest/java/androidx/car/util/GridLayoutManagerUtilsTest.java
+++ b/car/core/src/androidTest/java/androidx/car/util/GridLayoutManagerUtilsTest.java
@@ -35,12 +35,12 @@
 import androidx.car.widget.PagedListViewTestActivity;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.espresso.Espresso;
 import androidx.test.espresso.IdlingResource;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Assume;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/ActionListItemTest.java b/car/core/src/androidTest/java/androidx/car/widget/ActionListItemTest.java
index 287d0d3..38fbef4 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/ActionListItemTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/ActionListItemTest.java
@@ -42,12 +42,12 @@
 import androidx.car.test.R;
 import androidx.car.util.CarUxRestrictionsTestUtils;
 import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.Assume;
@@ -158,7 +158,7 @@
         for (int i = 0; i < items.size(); i++) {
             ActionListItem.ViewHolder viewHolder = getViewHolderAtPosition(i);
 
-            int expected = InstrumentationRegistry.getContext().getResources()
+            int expected = ApplicationProvider.getApplicationContext().getResources()
                     .getDimensionPixelSize(expectedStartMargin.get(i));
             assertThat(((ViewGroup.MarginLayoutParams) viewHolder.getTitle().getLayoutParams())
                     .getMarginStart(), is(equalTo(expected)));
@@ -436,13 +436,14 @@
 
         // String wouldn't fit in one line.
         ActionListItem item3 = new ActionListItem(mActivity);
-        item3.setTitle(InstrumentationRegistry.getContext().getResources().getString(
+        item3.setTitle(ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit));
 
         List<ActionListItem> items = Arrays.asList(item0, item1, item2, item3);
         setupPagedListView(items);
 
-        double singleLineHeight = InstrumentationRegistry.getContext().getResources().getDimension(
+        double singleLineHeight =
+                ApplicationProvider.getApplicationContext().getResources().getDimension(
                 R.dimen.car_single_line_list_item_height);
 
         LinearLayoutManager layoutManager =
@@ -465,14 +466,14 @@
 
         // String wouldn't fit in one line.
         ActionListItem item2 = new ActionListItem(mActivity);
-        item2.setBody(InstrumentationRegistry.getContext().getResources().getString(
+        item2.setBody(ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit));
 
         List<ActionListItem> items = Arrays.asList(item0, item1, item2);
         setupPagedListView(items);
 
         final int doubleLineHeight =
-                (int) InstrumentationRegistry.getContext().getResources().getDimension(
+                (int) ApplicationProvider.getApplicationContext().getResources().getDimension(
                         R.dimen.car_double_line_list_item_height);
 
         LinearLayoutManager layoutManager =
@@ -485,7 +486,7 @@
 
     @Test
     public void testPrimaryIconDrawable() {
-        Drawable drawable = InstrumentationRegistry.getContext().getResources().getDrawable(
+        Drawable drawable = ApplicationProvider.getApplicationContext().getResources().getDrawable(
                 android.R.drawable.sym_def_app_icon, null);
 
         ActionListItem item0 = new ActionListItem(mActivity);
@@ -553,7 +554,8 @@
         List<ActionListItem> items = Arrays.asList(item0, item1);
         setupPagedListView(items);
 
-        int expected = InstrumentationRegistry.getContext().getResources().getDimensionPixelSize(
+        int expected =
+                ApplicationProvider.getApplicationContext().getResources().getDimensionPixelSize(
                 R.dimen.car_keyline_1);
 
         ActionListItem.ViewHolder viewHolder = getViewHolderAtPosition(0);
@@ -567,7 +569,8 @@
 
     @Test
     public void testSmallPrimaryIconTopMarginRemainsTheSameRegardlessOfTextLength() {
-        final String longText = InstrumentationRegistry.getContext().getResources().getString(
+        final String longText =
+                ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit);
 
         // Single line item.
@@ -727,7 +730,7 @@
         // Custom binder interacts with body but has no effect.
         // Expect card height to remain single line.
         assertThat((double) viewHolder.itemView.getHeight(), is(closeTo(
-                InstrumentationRegistry.getContext().getResources().getDimension(
+                ApplicationProvider.getApplicationContext().getResources().getDimension(
                         R.dimen.car_single_line_list_item_height), 1.0d)));
     }
 
diff --git a/car/core/src/androidTest/java/androidx/car/widget/AlphaJumpPagedListViewTest.java b/car/core/src/androidTest/java/androidx/car/widget/AlphaJumpPagedListViewTest.java
index c8aca0f..44a55eb 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/AlphaJumpPagedListViewTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/AlphaJumpPagedListViewTest.java
@@ -33,9 +33,9 @@
 
 import androidx.car.test.R;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assume;
 import org.junit.Before;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/CarToolbarTest.java b/car/core/src/androidTest/java/androidx/car/widget/CarToolbarTest.java
index 0bc7042..fa749cf 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/CarToolbarTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/CarToolbarTest.java
@@ -39,9 +39,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.car.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/ColumnCardViewTest.java b/car/core/src/androidTest/java/androidx/car/widget/ColumnCardViewTest.java
index 03c629b..e1203fd 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/ColumnCardViewTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/ColumnCardViewTest.java
@@ -24,9 +24,9 @@
 import androidx.car.test.R;
 import androidx.car.util.ColumnCalculator;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/DividerVisibilityManagerTest.java b/car/core/src/androidTest/java/androidx/car/widget/DividerVisibilityManagerTest.java
index b655686..cb30645 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/DividerVisibilityManagerTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/DividerVisibilityManagerTest.java
@@ -33,10 +33,11 @@
 
 import androidx.car.test.R;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assume;
 import org.junit.Before;
@@ -107,7 +108,7 @@
                 mPagedListView.getRecyclerView().getLayoutManager();
 
         // Fetch divider height.
-        int dividerHeight = InstrumentationRegistry.getContext().getResources()
+        int dividerHeight = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_list_divider_height);
 
         // Initially, dividers are present between each two items.
diff --git a/car/core/src/androidTest/java/androidx/car/widget/ListItemAdapterTest.java b/car/core/src/androidTest/java/androidx/car/widget/ListItemAdapterTest.java
index fc767ca..5c28055 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/ListItemAdapterTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/ListItemAdapterTest.java
@@ -27,9 +27,9 @@
 
 import androidx.car.test.R;
 import androidx.car.uxrestrictions.CarUxRestrictions;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assume;
 import org.junit.Before;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/PagedListViewSavedStateTest.java b/car/core/src/androidTest/java/androidx/car/widget/PagedListViewSavedStateTest.java
index 71c2416..15ad1d8 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/PagedListViewSavedStateTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/PagedListViewSavedStateTest.java
@@ -33,12 +33,12 @@
 import androidx.car.test.R;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.espresso.IdlingRegistry;
 import androidx.test.espresso.IdlingResource;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.After;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/PagedListViewTest.java b/car/core/src/androidTest/java/androidx/car/widget/PagedListViewTest.java
index 9718c50..8b92b7d 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/PagedListViewTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/PagedListViewTest.java
@@ -52,15 +52,16 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.OrientationHelper;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.espresso.IdlingRegistry;
 import androidx.test.espresso.IdlingResource;
 import androidx.test.espresso.matcher.ViewMatchers;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -340,7 +341,7 @@
 
     @Test
     public void testDefaultScrollBarTopMargin() {
-        Resources res = InstrumentationRegistry.getContext().getResources();
+        Resources res = ApplicationProvider.getApplicationContext().getResources();
         int defaultTopMargin = res.getDimensionPixelSize(R.dimen.car_padding_4);
 
         // Just need enough items to ensure the scroll bar is showing.
@@ -400,7 +401,7 @@
 
         waitForIdleSync();
 
-        Resources res = InstrumentationRegistry.getContext().getResources();
+        Resources res = ApplicationProvider.getApplicationContext().getResources();
         int gutterSize = res.getDimensionPixelSize(R.dimen.car_margin);
 
         assertThat(mRecyclerViewLayoutParams.getMarginStart(), is(equalTo(gutterSize)));
@@ -418,7 +419,7 @@
         mActivityRule.runOnUiThread(() -> mPagedListView.setGutter(PagedListView.Gutter.END));
         waitForIdleSync();
 
-        Resources res = InstrumentationRegistry.getContext().getResources();
+        Resources res = ApplicationProvider.getApplicationContext().getResources();
         int gutterSize = res.getDimensionPixelSize(R.dimen.car_margin);
 
         assertThat(mRecyclerViewLayoutParams.getMarginStart(),
@@ -434,7 +435,7 @@
         mActivityRule.runOnUiThread(() -> mPagedListView.setGutter(PagedListView.Gutter.BOTH));
         waitForIdleSync();
 
-        Resources res = InstrumentationRegistry.getContext().getResources();
+        Resources res = ApplicationProvider.getApplicationContext().getResources();
         int gutterSize = res.getDimensionPixelSize(R.dimen.car_margin);
 
         assertThat(mRecyclerViewLayoutParams.getMarginStart(), is(equalTo(gutterSize)));
@@ -523,7 +524,7 @@
         // Just need enough items to ensure the scroll bar is showing.
         setUpPagedListView(ITEMS_PER_PAGE * 10);
 
-        Resources res = InstrumentationRegistry.getContext().getResources();
+        Resources res = ApplicationProvider.getApplicationContext().getResources();
         int defaultWidth = res.getDimensionPixelSize(R.dimen.car_margin);
 
         onView(withId(R.id.paged_scroll_view)).check(matches(withWidth(defaultWidth)));
diff --git a/car/core/src/androidTest/java/androidx/car/widget/RadioButtonListItemTest.java b/car/core/src/androidTest/java/androidx/car/widget/RadioButtonListItemTest.java
index a1a2b22..6174cf5 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/RadioButtonListItemTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/RadioButtonListItemTest.java
@@ -33,13 +33,13 @@
 import android.view.View;
 
 import androidx.car.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
 import androidx.test.espresso.contrib.RecyclerViewActions;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.Assume;
@@ -107,7 +107,7 @@
 
         setupPagedListView(Arrays.asList(item));
 
-        int expected = InstrumentationRegistry.getContext().getResources()
+        int expected = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_3);
         assertThat(getViewHolderAtPosition(0).getText().getLeft(), is(equalTo(expected)));
     }
@@ -122,7 +122,7 @@
 
         setupPagedListView(Arrays.asList(item));
 
-        int expected = InstrumentationRegistry.getContext().getResources()
+        int expected = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_3);
         assertThat(getViewHolderAtPosition(0).getText().getLeft(), is(equalTo(expected)));
     }
@@ -137,7 +137,7 @@
 
         setupPagedListView(Arrays.asList(item));
 
-        int expected = InstrumentationRegistry.getContext().getResources()
+        int expected = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_4);
         assertThat(getViewHolderAtPosition(0).getText().getLeft(), is(equalTo(expected)));
     }
@@ -161,7 +161,7 @@
 
         setupPagedListView(Arrays.asList(item));
 
-        int expected = InstrumentationRegistry.getContext().getResources()
+        int expected = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_1);
         assertThat(getViewHolderAtPosition(0).getText().getLeft(), is(equalTo(expected)));
     }
@@ -177,10 +177,10 @@
 
         setupPagedListView(Arrays.asList(item));
 
-        int margin = InstrumentationRegistry.getContext().getResources()
+        int margin = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_1);
         // Offset is determined by icon size - small icon uses keyline 3.
-        int offset = InstrumentationRegistry.getContext().getResources()
+        int offset = ApplicationProvider.getApplicationContext().getResources()
                 .getDimensionPixelSize(R.dimen.car_keyline_3);
         assertThat(getViewHolderAtPosition(0).getText().getLeft(), is(equalTo(offset + margin)));
     }
diff --git a/car/core/src/androidTest/java/androidx/car/widget/SeekbarListItemTest.java b/car/core/src/androidTest/java/androidx/car/widget/SeekbarListItemTest.java
index 67a812d..540d1f1 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/SeekbarListItemTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/SeekbarListItemTest.java
@@ -39,9 +39,9 @@
 import androidx.car.test.R;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.Assume;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/SubheaderListItemTest.java b/car/core/src/androidTest/java/androidx/car/widget/SubheaderListItemTest.java
index 6771e82..5bd1bb4 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/SubheaderListItemTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/SubheaderListItemTest.java
@@ -28,9 +28,9 @@
 import android.content.pm.PackageManager;
 
 import androidx.car.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assume;
 import org.junit.Before;
diff --git a/car/core/src/androidTest/java/androidx/car/widget/TextListItemTest.java b/car/core/src/androidTest/java/androidx/car/widget/TextListItemTest.java
index c2f7fdd..fba44e8 100644
--- a/car/core/src/androidTest/java/androidx/car/widget/TextListItemTest.java
+++ b/car/core/src/androidTest/java/androidx/car/widget/TextListItemTest.java
@@ -52,12 +52,12 @@
 import androidx.car.test.R;
 import androidx.car.util.CarUxRestrictionsTestUtils;
 import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.Assume;
@@ -414,7 +414,7 @@
         for (int i = 0; i < items.size(); i++) {
             TextListItem.ViewHolder viewHolder = getViewHolderAtPosition(i);
 
-            int expected = InstrumentationRegistry.getContext().getResources()
+            int expected = ApplicationProvider.getApplicationContext().getResources()
                     .getDimensionPixelSize(expectedStartMargin.get(i));
             assertThat(((ViewGroup.MarginLayoutParams) viewHolder.getTitle().getLayoutParams())
                     .getMarginStart(), is(equalTo(expected)));
@@ -438,13 +438,14 @@
 
         // String wouldn't fit in one line.
         TextListItem item3 = new TextListItem(mActivity);
-        item3.setTitle(InstrumentationRegistry.getContext().getResources().getString(
+        item3.setTitle(ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit));
 
         List<TextListItem> items = Arrays.asList(item0, item1, item2, item3);
         setupPagedListView(items);
 
-        double singleLineHeight = InstrumentationRegistry.getContext().getResources().getDimension(
+        double singleLineHeight =
+                ApplicationProvider.getApplicationContext().getResources().getDimension(
                 R.dimen.car_single_line_list_item_height);
 
         LinearLayoutManager layoutManager =
@@ -467,14 +468,14 @@
 
         // String wouldn't fit in one line.
         TextListItem item2 = new TextListItem(mActivity);
-        item2.setBody(InstrumentationRegistry.getContext().getResources().getString(
+        item2.setBody(ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit));
 
         List<TextListItem> items = Arrays.asList(item0, item1, item2);
         setupPagedListView(items);
 
         final int doubleLineHeight =
-                (int) InstrumentationRegistry.getContext().getResources().getDimension(
+                (int) ApplicationProvider.getApplicationContext().getResources().getDimension(
                         R.dimen.car_double_line_list_item_height);
 
         LinearLayoutManager layoutManager =
@@ -487,7 +488,7 @@
 
     @Test
     public void testPrimaryIconDrawable() {
-        Drawable drawable = InstrumentationRegistry.getContext().getResources().getDrawable(
+        Drawable drawable = ApplicationProvider.getApplicationContext().getResources().getDrawable(
                 android.R.drawable.sym_def_app_icon, null);
 
         TextListItem item0 = new TextListItem(mActivity);
@@ -574,7 +575,8 @@
         List<TextListItem> items = Arrays.asList(item0, item1);
         setupPagedListView(items);
 
-        int expected = InstrumentationRegistry.getContext().getResources().getDimensionPixelSize(
+        int expected =
+                ApplicationProvider.getApplicationContext().getResources().getDimensionPixelSize(
                 R.dimen.car_keyline_1);
 
         TextListItem.ViewHolder viewHolder = getViewHolderAtPosition(0);
@@ -588,7 +590,8 @@
 
     @Test
     public void testSmallPrimaryIconTopMarginRemainsTheSameRegardlessOfTextLength() {
-        final String longText = InstrumentationRegistry.getContext().getResources().getString(
+        final String longText =
+                ApplicationProvider.getApplicationContext().getResources().getString(
                 R.string.over_uxr_text_length_limit);
 
         // Single line item.
@@ -761,7 +764,7 @@
         // Custom binder interacts with body but has no effect.
         // Expect card height to remain single line.
         assertThat((double) viewHolder.itemView.getHeight(), is(closeTo(
-                InstrumentationRegistry.getContext().getResources().getDimension(
+                ApplicationProvider.getApplicationContext().getResources().getDimension(
                         R.dimen.car_single_line_list_item_height), 1.0d)));
     }
 
diff --git a/car/moderator/build.gradle b/car/moderator/build.gradle
index be522b7..db6a3dd 100644
--- a/car/moderator/build.gradle
+++ b/car/moderator/build.gradle
@@ -26,12 +26,16 @@
     api(project(":annotation"))
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(MOCKITO_CORE)
 
diff --git a/car/moderator/src/androidTest/java/androidx/car/moderator/ContentRateLimiterTest.java b/car/moderator/src/androidTest/java/androidx/car/moderator/ContentRateLimiterTest.java
index b1295df..9b6d7ca 100644
--- a/car/moderator/src/androidTest/java/androidx/car/moderator/ContentRateLimiterTest.java
+++ b/car/moderator/src/androidTest/java/androidx/car/moderator/ContentRateLimiterTest.java
@@ -22,8 +22,8 @@
 
 import static java.util.concurrent.TimeUnit.SECONDS;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/content/build.gradle b/content/build.gradle
index c2a5c78..5971918 100644
--- a/content/build.gradle
+++ b/content/build.gradle
@@ -27,6 +27,8 @@
     api(project(":core"))
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/content/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java b/content/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
index 13b7938..e67db75 100644
--- a/content/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
+++ b/content/src/androidTest/java/androidx/contentpager/content/ContentPagerTest.java
@@ -36,9 +36,9 @@
 
 import androidx.annotation.Nullable;
 import androidx.contentpager.content.ContentPager.ContentCallback;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/content/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java b/content/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
index 1917cf8..51643a0 100644
--- a/content/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
+++ b/content/src/androidTest/java/androidx/contentpager/content/LoaderQueryRunnerTest.java
@@ -24,9 +24,9 @@
 
 import androidx.contentpager.content.ContentPager.ContentCallback;
 import androidx.contentpager.content.ContentPager.QueryRunner;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/content/src/androidTest/java/androidx/contentpager/content/QueryTest.java b/content/src/androidTest/java/androidx/contentpager/content/QueryTest.java
index ceaa3b3..67146aa 100644
--- a/content/src/androidTest/java/androidx/contentpager/content/QueryTest.java
+++ b/content/src/androidTest/java/androidx/contentpager/content/QueryTest.java
@@ -22,8 +22,8 @@
 import android.net.Uri;
 
 import androidx.contentpager.content.ContentPager.ContentCallback;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/coordinatorlayout/build.gradle b/coordinatorlayout/build.gradle
index e954569..63aaec0 100644
--- a/coordinatorlayout/build.gradle
+++ b/coordinatorlayout/build.gradle
@@ -11,6 +11,8 @@
     api("androidx.core:core:1.1.0-alpha01")
     api("androidx.customview:customview:1.0.0")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/BaseInstrumentationTestCase.java b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/BaseInstrumentationTestCase.java
index ba51756..08c5827 100644
--- a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/BaseInstrumentationTestCase.java
+++ b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/BaseInstrumentationTestCase.java
@@ -18,8 +18,8 @@
 
 import android.app.Activity;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
diff --git a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentCompatTest.java b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentCompatTest.java
index 4b33e8a..4f09755 100644
--- a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentCompatTest.java
+++ b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentCompatTest.java
@@ -30,9 +30,9 @@
 import android.view.View;
 
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -109,7 +109,7 @@
     }
 
     private void setup(boolean behaviorIsV3) {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         mSpyBehavior = spy(behaviorIsV3 ? new V3TestBehavior() : new NonV3TestBehavior());
         when(mSpyBehavior.onStartNestedScroll(
diff --git a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
index cff78ae..4f55c81 100644
--- a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
+++ b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutNestedScrollingParentTest.java
@@ -29,9 +29,9 @@
 import android.view.View;
 
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -64,7 +64,7 @@
 
     @Before
     public void setup() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         mMockBehavior1 = setupMockBehavior();
         mMockBehavior2 = setupMockBehavior();
diff --git a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
index eb22e0f..3a93ea2 100644
--- a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
+++ b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutSortTest.java
@@ -22,8 +22,8 @@
 import android.view.View;
 
 import androidx.coordinatorlayout.testutils.CoordinatorLayoutUtils;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
diff --git a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
index ec03fc0..6abc391 100644
--- a/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
+++ b/coordinatorlayout/src/androidTest/java/androidx/coordinatorlayout/widget/CoordinatorLayoutTest.java
@@ -16,10 +16,10 @@
 
 package androidx.coordinatorlayout.widget;
 
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
 import static androidx.test.espresso.Espresso.onView;
 import static androidx.test.espresso.action.ViewActions.swipeUp;
 import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -55,10 +55,10 @@
 import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowInsetsCompat;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/core/build.gradle b/core/build.gradle
index b607b7b..71eaf37 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -14,6 +14,8 @@
     api(GUAVA_LISTENABLE_FUTURE)
     implementation("androidx.concurrent:concurrent-futures:1.0.0-alpha02")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/core/ktx/build.gradle b/core/ktx/build.gradle
index 92b28c0..0d717d0 100644
--- a/core/ktx/build.gradle
+++ b/core/ktx/build.gradle
@@ -21,6 +21,8 @@
     api(project(":core"))
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/core/ktx/src/androidTest/java/androidx/core/animation/AnimatorTest.kt b/core/ktx/src/androidTest/java/androidx/core/animation/AnimatorTest.kt
index 1da6d7a..148e864 100644
--- a/core/ktx/src/androidTest/java/androidx/core/animation/AnimatorTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/animation/AnimatorTest.kt
@@ -19,11 +19,11 @@
 import android.animation.Animator
 import android.animation.ObjectAnimator
 import android.view.View
-import androidx.test.InstrumentationRegistry
 import androidx.test.annotation.UiThreadTest
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Test
@@ -32,7 +32,7 @@
 @RunWith(AndroidJUnit4::class)
 @SmallTest
 class AnimatorTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val view = View(context)
 
     private lateinit var animator: Animator
diff --git a/core/ktx/src/androidTest/java/androidx/core/content/ContextTest.kt b/core/ktx/src/androidTest/java/androidx/core/content/ContextTest.kt
index 8db8ca4..0fb2adf 100644
--- a/core/ktx/src/androidTest/java/androidx/core/content/ContextTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/content/ContextTest.kt
@@ -17,17 +17,17 @@
 package androidx.core.content
 
 import android.content.ContextWrapper
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SdkSuppress
 import androidx.core.ktx.test.R
 import androidx.core.getAttributeSet
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.filters.SdkSuppress
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertSame
 import org.junit.Assert.assertTrue
 import org.junit.Test
 
 class ContextTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @SdkSuppress(minSdkVersion = 23)
     @Test fun systemService() {
diff --git a/core/ktx/src/androidTest/java/androidx/core/content/SharedPreferencesTest.kt b/core/ktx/src/androidTest/java/androidx/core/content/SharedPreferencesTest.kt
index 4afcf2d..50e9b59 100644
--- a/core/ktx/src/androidTest/java/androidx/core/content/SharedPreferencesTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/content/SharedPreferencesTest.kt
@@ -16,14 +16,14 @@
 
 package androidx.core.content
 
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
 import org.junit.Assert.assertEquals
 import org.junit.Test
 
 @SmallTest
 class SharedPreferencesTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @Test fun editApply() {
         val preferences = context.getSharedPreferences("prefs", 0)
diff --git a/core/ktx/src/androidTest/java/androidx/core/content/res/TypedArrayTest.kt b/core/ktx/src/androidTest/java/androidx/core/content/res/TypedArrayTest.kt
index 7808251..deab214 100644
--- a/core/ktx/src/androidTest/java/androidx/core/content/res/TypedArrayTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/content/res/TypedArrayTest.kt
@@ -17,18 +17,18 @@
 package androidx.core.content.res
 
 import android.graphics.Color
-import androidx.test.InstrumentationRegistry
+import androidx.core.getAttributeSet
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.core.ktx.test.R
 import androidx.testutils.assertThrows
-import androidx.core.getAttributeSet
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
 import org.junit.Test
 
 class TypedArrayTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @Test fun boolean() {
         val attrs = context.getAttributeSet(R.layout.typed_array)
diff --git a/core/ktx/src/androidTest/java/androidx/core/database/sqlite/SQLiteDatabaseTest.kt b/core/ktx/src/androidTest/java/androidx/core/database/sqlite/SQLiteDatabaseTest.kt
index a53fd08..d155e91 100644
--- a/core/ktx/src/androidTest/java/androidx/core/database/sqlite/SQLiteDatabaseTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/database/sqlite/SQLiteDatabaseTest.kt
@@ -19,7 +19,7 @@
 import android.content.ContentValues
 import android.database.sqlite.SQLiteDatabase
 import android.database.sqlite.SQLiteOpenHelper
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
 import org.junit.Assert.assertEquals
@@ -27,7 +27,7 @@
 
 @SmallTest
 class SQLiteDatabaseTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val openHelper = object : SQLiteOpenHelper(context, null, null, 1) {
         override fun onCreate(db: SQLiteDatabase) {
             db.execSQL("CREATE TABLE test(name TEXT)")
diff --git a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/BitmapDrawableTest.kt b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/BitmapDrawableTest.kt
index 73c5719..c077e65 100644
--- a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/BitmapDrawableTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/BitmapDrawableTest.kt
@@ -17,14 +17,14 @@
 package androidx.core.graphics.drawable
 
 import androidx.core.graphics.createBitmap
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
 import org.junit.Assert.assertEquals
 import org.junit.Test
 
 @SmallTest
 class BitmapDrawableTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @Test fun fromBitmap() {
         val b = createBitmap(1, 1)
diff --git a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/DrawableTest.kt b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/DrawableTest.kt
index f6d5a09..9c011eb 100644
--- a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/DrawableTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/DrawableTest.kt
@@ -21,14 +21,14 @@
 import android.graphics.drawable.BitmapDrawable
 import android.graphics.drawable.ColorDrawable
 import androidx.core.graphics.createBitmap
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
 import org.junit.Assert.assertEquals
 import org.junit.Test
 
 @SmallTest
 class DrawableTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val resources = context.resources
 
     @Test fun bitmapDrawableNoSizeNoConfig() {
diff --git a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
index ce17637..70ac3426 100644
--- a/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/graphics/drawable/IconTest.kt
@@ -23,7 +23,7 @@
 import android.graphics.drawable.Icon
 import androidx.core.graphics.createBitmap
 import androidx.core.net.toUri
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import org.junit.Assert.assertEquals
@@ -33,7 +33,7 @@
 @SdkSuppress(minSdkVersion = 26)
 @SmallTest
 class IconTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @Test fun fromBitmapAdaptive() {
         val density = context.resources.displayMetrics.density
diff --git a/core/ktx/src/androidTest/java/androidx/core/os/BundleTest.kt b/core/ktx/src/androidTest/java/androidx/core/os/BundleTest.kt
index be23df1..d4bf905 100644
--- a/core/ktx/src/androidTest/java/androidx/core/os/BundleTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/os/BundleTest.kt
@@ -22,7 +22,7 @@
 import android.util.Size
 import android.util.SizeF
 import android.view.View
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
@@ -133,11 +133,11 @@
 
     @Test fun bundleOfInvalid() {
         assertThrows<IllegalArgumentException> {
-            bundleOf("nope" to View(InstrumentationRegistry.getContext()))
+            bundleOf("nope" to View(ApplicationProvider.getApplicationContext() as android.content.Context))
         }.hasMessageThat().isEqualTo("Illegal value type android.view.View for key \"nope\"")
 
         assertThrows<IllegalArgumentException> {
-            bundleOf("nopes" to arrayOf(View(InstrumentationRegistry.getContext())))
+            bundleOf("nopes" to arrayOf(View(ApplicationProvider.getApplicationContext() as android.content.Context)))
         }.hasMessageThat().isEqualTo("Illegal value array type android.view.View for key \"nopes\"")
     }
 }
diff --git a/core/ktx/src/androidTest/java/androidx/core/os/HandlerTest.kt b/core/ktx/src/androidTest/java/androidx/core/os/HandlerTest.kt
index a475418..e8cc7e2 100644
--- a/core/ktx/src/androidTest/java/androidx/core/os/HandlerTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/os/HandlerTest.kt
@@ -22,9 +22,9 @@
 import android.os.SystemClock
 import android.os.TestLooperManager
 import androidx.annotation.RequiresApi
-import androidx.test.InstrumentationRegistry
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
 import org.junit.After
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
diff --git a/core/ktx/src/androidTest/java/androidx/core/os/PersistableBundleTest.kt b/core/ktx/src/androidTest/java/androidx/core/os/PersistableBundleTest.kt
index 41f5fb0..2213799 100644
--- a/core/ktx/src/androidTest/java/androidx/core/os/PersistableBundleTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/os/PersistableBundleTest.kt
@@ -17,7 +17,7 @@
 package androidx.core.os
 
 import android.view.View
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
@@ -77,11 +77,11 @@
 
     @Test fun persistableBundleOfInvalid() {
         assertThrows<IllegalArgumentException> {
-            persistableBundleOf("nope" to View(InstrumentationRegistry.getContext()))
+            persistableBundleOf("nope" to View(ApplicationProvider.getApplicationContext() as android.content.Context))
         }.hasMessageThat().isEqualTo("Illegal value type android.view.View for key \"nope\"")
 
         assertThrows<IllegalArgumentException> {
-            persistableBundleOf("nopes" to arrayOf(View(InstrumentationRegistry.getContext())))
+            persistableBundleOf("nopes" to arrayOf(View(ApplicationProvider.getApplicationContext() as android.content.Context)))
         }.hasMessageThat().isEqualTo("Illegal value array type android.view.View for key \"nopes\"")
     }
 }
diff --git a/core/ktx/src/androidTest/java/androidx/core/transition/TransitionTest.kt b/core/ktx/src/androidTest/java/androidx/core/transition/TransitionTest.kt
index 3a8ddd6..dff228c 100644
--- a/core/ktx/src/androidTest/java/androidx/core/transition/TransitionTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/transition/TransitionTest.kt
@@ -16,9 +16,6 @@
 
 package androidx.core.transition
 
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SdkSuppress
-import androidx.test.rule.ActivityTestRule
 import android.transition.Fade
 import android.transition.Transition
 import android.transition.TransitionManager
@@ -27,6 +24,9 @@
 import android.widget.ImageView
 import androidx.core.TestActivity
 import androidx.core.ktx.test.R
+import androidx.test.filters.SdkSuppress
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.rule.ActivityTestRule
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Rule
diff --git a/core/ktx/src/androidTest/java/androidx/core/view/MenuTest.kt b/core/ktx/src/androidTest/java/androidx/core/view/MenuTest.kt
index fc68024..6e195ce 100644
--- a/core/ktx/src/androidTest/java/androidx/core/view/MenuTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/view/MenuTest.kt
@@ -19,7 +19,7 @@
 import android.view.Menu.NONE
 import android.view.MenuItem
 import android.widget.Toolbar
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
@@ -34,7 +34,8 @@
 @SdkSuppress(minSdkVersion = 21)
 @SmallTest
 class MenuTest {
-    private val menu = Toolbar(InstrumentationRegistry.getContext()).menu
+    private val menu =
+        Toolbar(ApplicationProvider.getApplicationContext() as android.content.Context).menu
 
     @Test fun get() {
         val item = menu.add("")
diff --git a/core/ktx/src/androidTest/java/androidx/core/view/ViewGroupTest.kt b/core/ktx/src/androidTest/java/androidx/core/view/ViewGroupTest.kt
index 5dda38d..d6b8505 100644
--- a/core/ktx/src/androidTest/java/androidx/core/view/ViewGroupTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/view/ViewGroupTest.kt
@@ -19,7 +19,7 @@
 import android.view.View
 import android.view.ViewGroup
 import android.widget.LinearLayout
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
@@ -33,7 +33,7 @@
 
 @SmallTest
 class ViewGroupTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val viewGroup = LinearLayout(context)
 
     @Test fun get() {
diff --git a/core/ktx/src/androidTest/java/androidx/core/view/ViewTest.kt b/core/ktx/src/androidTest/java/androidx/core/view/ViewTest.kt
index 36ed8b4..6c72308 100644
--- a/core/ktx/src/androidTest/java/androidx/core/view/ViewTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/view/ViewTest.kt
@@ -24,7 +24,7 @@
 import android.widget.LinearLayout
 import android.widget.RelativeLayout
 import androidx.core.ktx.test.R
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.SmallTest
 import androidx.testutils.assertThrows
 import androidx.testutils.fail
@@ -36,7 +36,7 @@
 
 @SmallTest
 class ViewTest {
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val view = View(context)
 
     @Test
diff --git a/core/ktx/src/androidTest/java/androidx/core/widget/TextViewTest.kt b/core/ktx/src/androidTest/java/androidx/core/widget/TextViewTest.kt
index dc04f6f..80eeb61 100644
--- a/core/ktx/src/androidTest/java/androidx/core/widget/TextViewTest.kt
+++ b/core/ktx/src/androidTest/java/androidx/core/widget/TextViewTest.kt
@@ -17,10 +17,10 @@
 package androidx.core.widget
 
 import android.widget.TextView
-import androidx.test.InstrumentationRegistry
 import androidx.test.annotation.UiThreadTest
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertTrue
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -30,7 +30,7 @@
 @SmallTest
 class TextViewTest {
 
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private val view = TextView(context)
 
     @UiThreadTest
diff --git a/core/src/androidTest/java/android/support/v4/BaseInstrumentationTestCase.java b/core/src/androidTest/java/android/support/v4/BaseInstrumentationTestCase.java
index 5bac999..22d4b20 100644
--- a/core/src/androidTest/java/android/support/v4/BaseInstrumentationTestCase.java
+++ b/core/src/androidTest/java/android/support/v4/BaseInstrumentationTestCase.java
@@ -18,8 +18,8 @@
 
 import android.app.Activity;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/app/ActivityCompatTest.java b/core/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
index 27d2e8c..10f729d 100644
--- a/core/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/app/ActivityCompatTest.java
@@ -31,8 +31,8 @@
 
 import androidx.core.app.ActivityCompat.PermissionCompatDelegate;
 import androidx.core.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/app/ComponentActivityTest.java b/core/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
index d6249e8..bb1a508 100644
--- a/core/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
+++ b/core/src/androidTest/java/androidx/core/app/ComponentActivityTest.java
@@ -20,8 +20,8 @@
 
 import android.support.v4.BaseInstrumentationTestCase;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/app/DialogCompatTest.java b/core/src/androidTest/java/androidx/core/app/DialogCompatTest.java
index 7dec53f3..a4b07ed 100644
--- a/core/src/androidTest/java/androidx/core/app/DialogCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/app/DialogCompatTest.java
@@ -24,8 +24,8 @@
 import android.view.View;
 
 import androidx.core.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/app/FrameMetricsAggregatorTest.java b/core/src/androidTest/java/androidx/core/app/FrameMetricsAggregatorTest.java
index b06d9bd..2ea188c 100644
--- a/core/src/androidTest/java/androidx/core/app/FrameMetricsAggregatorTest.java
+++ b/core/src/androidTest/java/androidx/core/app/FrameMetricsAggregatorTest.java
@@ -25,11 +25,11 @@
 import android.os.Build;
 import android.util.SparseIntArray;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/app/JobIntentServiceTest.java b/core/src/androidTest/java/androidx/core/app/JobIntentServiceTest.java
index c4d5a0f..2dd945a 100644
--- a/core/src/androidTest/java/androidx/core/app/JobIntentServiceTest.java
+++ b/core/src/androidTest/java/androidx/core/app/JobIntentServiceTest.java
@@ -32,9 +32,9 @@
 
 import androidx.annotation.Nullable;
 import androidx.annotation.RequiresApi;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -66,7 +66,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @SuppressLint("BanParcelableUsage")
diff --git a/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java b/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
index 75fbb0a..049199c 100644
--- a/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/app/NotificationCompatTest.java
@@ -48,9 +48,9 @@
 import androidx.core.R;
 import androidx.core.app.NotificationCompat.MessagingStyle.Message;
 import androidx.core.graphics.drawable.IconCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/app/NotificationManagerCompatTest.java b/core/src/androidTest/java/androidx/core/app/NotificationManagerCompatTest.java
index 8c42972..d1819a4 100644
--- a/core/src/androidTest/java/androidx/core/app/NotificationManagerCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/app/NotificationManagerCompatTest.java
@@ -30,10 +30,10 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -60,6 +60,7 @@
 
     /**
      * Generate unique ID for Channels and Groups to prevent conflicts between tests
+     *
      * @param type Type of ID. Channel, group or any string
      * @return Unique ID
      */
@@ -70,7 +71,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mPlatformNotificationManager = (NotificationManager) mContext.getSystemService(
                 Context.NOTIFICATION_SERVICE);
     }
@@ -81,8 +82,9 @@
 
         if (Build.VERSION.SDK_INT < 26) return;
 
-        NotificationManager notificationManager = (NotificationManager) InstrumentationRegistry
-                .getTargetContext().getSystemService(Context.NOTIFICATION_SERVICE);
+        NotificationManager notificationManager =
+                (NotificationManager) ApplicationProvider.getApplicationContext().getSystemService(
+                        Context.NOTIFICATION_SERVICE);
         if (notificationManager == null) return;
 
         List<NotificationChannel> channels = notificationManager.getNotificationChannels();
diff --git a/core/src/androidTest/java/androidx/core/app/PersonTest.java b/core/src/androidTest/java/androidx/core/app/PersonTest.java
index 029ee4c..10c8f72 100644
--- a/core/src/androidTest/java/androidx/core/app/PersonTest.java
+++ b/core/src/androidTest/java/androidx/core/app/PersonTest.java
@@ -25,9 +25,9 @@
 import android.os.PersistableBundle;
 
 import androidx.core.graphics.drawable.IconCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/app/RemoteActionCompatTest.java b/core/src/androidTest/java/androidx/core/app/RemoteActionCompatTest.java
index 64f640d..47da629 100644
--- a/core/src/androidTest/java/androidx/core/app/RemoteActionCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/app/RemoteActionCompatTest.java
@@ -24,9 +24,9 @@
 import android.support.v4.BaseInstrumentationTestCase;
 
 import androidx.core.graphics.drawable.IconCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,7 +44,8 @@
         IconCompat icon = IconCompat.createWithContentUri("content://test");
         String title = "title";
         String description = "description";
-        PendingIntent action = PendingIntent.getBroadcast(InstrumentationRegistry.getContext(), 0,
+        PendingIntent action = PendingIntent.getBroadcast(
+                ApplicationProvider.getApplicationContext(), 0,
                 new Intent("TESTACTION"), 0);
         RemoteActionCompat reference = new RemoteActionCompat(icon, title, description, action);
         reference.setEnabled(false);
@@ -65,7 +66,8 @@
         IconCompat icon = IconCompat.createWithContentUri("content://test");
         String title = "title";
         String description = "description";
-        PendingIntent action = PendingIntent.getBroadcast(InstrumentationRegistry.getContext(), 0,
+        PendingIntent action = PendingIntent.getBroadcast(
+                ApplicationProvider.getApplicationContext(), 0,
                 new Intent("TESTACTION"), 0);
         RemoteActionCompat reference = new RemoteActionCompat(icon, title, description, action);
         reference.setEnabled(false);
diff --git a/core/src/androidTest/java/androidx/core/app/RemoteInputTest.java b/core/src/androidTest/java/androidx/core/app/RemoteInputTest.java
index 8b4b158..01354fe 100644
--- a/core/src/androidTest/java/androidx/core/app/RemoteInputTest.java
+++ b/core/src/androidTest/java/androidx/core/app/RemoteInputTest.java
@@ -26,9 +26,9 @@
 import android.os.Bundle;
 import android.support.v4.BaseInstrumentationTestCase;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/content/FileProviderTest.java b/core/src/androidTest/java/androidx/core/content/FileProviderTest.java
index 63b00ec..61c01e7 100644
--- a/core/src/androidTest/java/androidx/core/content/FileProviderTest.java
+++ b/core/src/androidTest/java/androidx/core/content/FileProviderTest.java
@@ -31,9 +31,9 @@
 import android.os.Environment;
 
 import androidx.core.content.FileProvider.SimplePathStrategy;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -64,7 +64,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResolver = mContext.getContentResolver();
     }
 
diff --git a/core/src/androidTest/java/androidx/core/content/MimeTypeFilterTest.java b/core/src/androidTest/java/androidx/core/content/MimeTypeFilterTest.java
index 235ae83..e2c6749 100644
--- a/core/src/androidTest/java/androidx/core/content/MimeTypeFilterTest.java
+++ b/core/src/androidTest/java/androidx/core/content/MimeTypeFilterTest.java
@@ -23,8 +23,8 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/content/PermissionCheckerTest.java b/core/src/androidTest/java/androidx/core/content/PermissionCheckerTest.java
index aaf1c9c..1c9e24e 100644
--- a/core/src/androidTest/java/androidx/core/content/PermissionCheckerTest.java
+++ b/core/src/androidTest/java/androidx/core/content/PermissionCheckerTest.java
@@ -21,9 +21,9 @@
 import android.Manifest;
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -39,7 +39,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/core/src/androidTest/java/androidx/core/content/pm/PermissionInfoCompatTest.java b/core/src/androidTest/java/androidx/core/content/pm/PermissionInfoCompatTest.java
index def7e6f..6c92b88 100644
--- a/core/src/androidTest/java/androidx/core/content/pm/PermissionInfoCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/pm/PermissionInfoCompatTest.java
@@ -18,8 +18,8 @@
 
 import android.content.pm.PermissionInfo;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java b/core/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
index ae888ec..94eb2ed 100644
--- a/core/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/pm/ShortcutInfoCompatTest.java
@@ -39,10 +39,10 @@
 import androidx.core.content.ContextCompat;
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -65,7 +65,7 @@
 
     @Before
     public void setup() {
-        mContext = spy(new ContextWrapper(InstrumentationRegistry.getContext()));
+        mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
         mAction = new Intent(Intent.ACTION_VIEW).setPackage(mContext.getPackageName());
 
         mBuilder = new ShortcutInfoCompat.Builder(mContext, TEST_SHORTCUT_ID)
diff --git a/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java b/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
index 91d1ea2..711a825 100644
--- a/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/pm/ShortcutManagerCompatTest.java
@@ -49,10 +49,10 @@
 
 import androidx.core.app.TestActivity;
 import androidx.core.graphics.drawable.IconCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/content/res/ColorStateListInflaterCompatTest.java b/core/src/androidTest/java/androidx/core/content/res/ColorStateListInflaterCompatTest.java
index 08cab83..23d80c9 100644
--- a/core/src/androidTest/java/androidx/core/content/res/ColorStateListInflaterCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/ColorStateListInflaterCompatTest.java
@@ -27,9 +27,9 @@
 import android.graphics.Color;
 
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -47,7 +47,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
     }
 
diff --git a/core/src/androidTest/java/androidx/core/content/res/ComplexColorCompatTest.java b/core/src/androidTest/java/androidx/core/content/res/ComplexColorCompatTest.java
index bccb813..3351d01 100644
--- a/core/src/androidTest/java/androidx/core/content/res/ComplexColorCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/ComplexColorCompatTest.java
@@ -29,9 +29,9 @@
 import android.graphics.Shader;
 
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +49,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
     }
 
diff --git a/core/src/androidTest/java/androidx/core/content/res/FontResourcesParserCompatTest.java b/core/src/androidTest/java/androidx/core/content/res/FontResourcesParserCompatTest.java
index f6f7bae..cc09f91 100644
--- a/core/src/androidTest/java/androidx/core/content/res/FontResourcesParserCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/FontResourcesParserCompatTest.java
@@ -33,9 +33,9 @@
 
 import androidx.core.provider.FontRequest;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/content/res/GradientColorInflaterCompatTest.java b/core/src/androidTest/java/androidx/core/content/res/GradientColorInflaterCompatTest.java
index c25f4fb..8b94e11 100644
--- a/core/src/androidTest/java/androidx/core/content/res/GradientColorInflaterCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/GradientColorInflaterCompatTest.java
@@ -28,9 +28,9 @@
 import android.graphics.SweepGradient;
 
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -48,7 +48,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
     }
 
diff --git a/core/src/androidTest/java/androidx/core/content/res/ResourcesCompatTest.java b/core/src/androidTest/java/androidx/core/content/res/ResourcesCompatTest.java
index a2d4e9a..98b7a2cc 100644
--- a/core/src/androidTest/java/androidx/core/content/res/ResourcesCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/ResourcesCompatTest.java
@@ -36,8 +36,9 @@
 import androidx.core.provider.FontsContractCompat;
 import androidx.core.provider.MockFontProvider;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -52,7 +53,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
         MockFontProvider.prepareFontFiles(mContext);
     }
diff --git a/core/src/androidTest/java/androidx/core/content/res/TypedArrayUtilsTest.java b/core/src/androidTest/java/androidx/core/content/res/TypedArrayUtilsTest.java
index ef0c81f..76bdedb 100644
--- a/core/src/androidTest/java/androidx/core/content/res/TypedArrayUtilsTest.java
+++ b/core/src/androidTest/java/androidx/core/content/res/TypedArrayUtilsTest.java
@@ -29,7 +29,7 @@
 import android.util.Xml;
 
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 
 import org.junit.Before;
@@ -55,7 +55,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
     }
 
diff --git a/core/src/androidTest/java/androidx/core/database/CursorWindowCompatTest.java b/core/src/androidTest/java/androidx/core/database/CursorWindowCompatTest.java
index a0ff3a8..1624a6b 100644
--- a/core/src/androidTest/java/androidx/core/database/CursorWindowCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/database/CursorWindowCompatTest.java
@@ -22,8 +22,8 @@
 import android.database.CursorWindow;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/database/sqlite/SQLiteCursorCompatTest.java b/core/src/androidTest/java/androidx/core/database/sqlite/SQLiteCursorCompatTest.java
index e610fac..6d64ccc 100644
--- a/core/src/androidTest/java/androidx/core/database/sqlite/SQLiteCursorCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/database/sqlite/SQLiteCursorCompatTest.java
@@ -24,8 +24,8 @@
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteQuery;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/graphics/ColorUtilsTest.java b/core/src/androidTest/java/androidx/core/graphics/ColorUtilsTest.java
index 1cc4bcf..73413be 100644
--- a/core/src/androidTest/java/androidx/core/graphics/ColorUtilsTest.java
+++ b/core/src/androidTest/java/androidx/core/graphics/ColorUtilsTest.java
@@ -26,9 +26,9 @@
 import android.graphics.Color;
 import android.graphics.ColorSpace;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/graphics/DrawableCompatTest.java b/core/src/androidTest/java/androidx/core/graphics/DrawableCompatTest.java
index a93d0e4..d72374d 100644
--- a/core/src/androidTest/java/androidx/core/graphics/DrawableCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/graphics/DrawableCompatTest.java
@@ -33,8 +33,8 @@
 import android.os.Build;
 
 import androidx.core.graphics.drawable.DrawableCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatTest.java b/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatTest.java
index 5b63988..958af06 100644
--- a/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatTest.java
@@ -43,8 +43,8 @@
 import androidx.core.provider.FontsContractCompat;
 import androidx.core.provider.MockFontProvider;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatUtilTest.java b/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatUtilTest.java
index e036721..245f6c5 100644
--- a/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatUtilTest.java
+++ b/core/src/androidTest/java/androidx/core/graphics/TypefaceCompatUtilTest.java
@@ -24,8 +24,8 @@
 
 import androidx.annotation.RequiresApi;
 import androidx.core.provider.MockFontProvider;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/graphics/drawable/IconCompatTest.java b/core/src/androidTest/java/androidx/core/graphics/drawable/IconCompatTest.java
index 74e697d..71fd47c 100644
--- a/core/src/androidTest/java/androidx/core/graphics/drawable/IconCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/graphics/drawable/IconCompatTest.java
@@ -40,10 +40,10 @@
 
 import androidx.core.content.ContextCompat;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.versionedparcelable.ParcelUtils;
 
 import org.junit.Test;
@@ -62,7 +62,7 @@
 @SmallTest
 public class IconCompatTest {
 
-    private Context mContext = InstrumentationRegistry.getContext();
+    private Context mContext = ApplicationProvider.getApplicationContext();
 
     private static void verifyClippedCircle(Bitmap bitmap, int fillColor, int size) {
         assertEquals(size, bitmap.getHeight());
@@ -108,7 +108,7 @@
 
     @Test
     public void testAddBitmapToShortcutIntent_badged() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Bitmap bitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
         bitmap.eraseColor(Color.RED);
         Intent intent = new Intent();
@@ -122,7 +122,7 @@
 
     @Test
     public void testAddResourceToShortcutIntent_badged() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Intent intent = new Intent();
 
         // No badge
@@ -147,7 +147,7 @@
         Bitmap bitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
         bitmap.eraseColor(Color.RED);
         IconCompat compat = IconCompat.createWithBitmap(bitmap);
-        Drawable d = compat.toIcon().loadDrawable(InstrumentationRegistry.getContext());
+        Drawable d = compat.toIcon().loadDrawable(ApplicationProvider.getApplicationContext());
         assertTrue(d instanceof BitmapDrawable);
         assertEquals(bitmap, ((BitmapDrawable) d).getBitmap());
     }
@@ -169,7 +169,7 @@
         Bitmap bitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
         bitmap.eraseColor(Color.GREEN);
         IconCompat compat = IconCompat.createWithAdaptiveBitmap(bitmap);
-        Drawable d = compat.toIcon().loadDrawable(InstrumentationRegistry.getContext());
+        Drawable d = compat.toIcon().loadDrawable(ApplicationProvider.getApplicationContext());
         if (Build.VERSION.SDK_INT >= 26) {
             assertTrue(d instanceof AdaptiveIconDrawable);
         } else {
@@ -196,7 +196,7 @@
         }
 
         IconCompat compat = IconCompat.createWithData(resultCopy, 20, bytes.length);
-        Drawable d = compat.toIcon().loadDrawable(InstrumentationRegistry.getContext());
+        Drawable d = compat.toIcon().loadDrawable(ApplicationProvider.getApplicationContext());
         assertTrue(d instanceof BitmapDrawable);
         assertTrue(bitmap.sameAs(((BitmapDrawable) d).getBitmap()));
     }
@@ -204,11 +204,11 @@
     @Test
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.M)
     public void testCreateWithResource() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Drawable original = context.getDrawable(R.drawable.test_drawable_red);
 
         IconCompat compat = IconCompat.createWithResource(context, R.drawable.test_drawable_red);
-        Drawable d = compat.toIcon().loadDrawable(InstrumentationRegistry.getContext());
+        Drawable d = compat.toIcon().loadDrawable(ApplicationProvider.getApplicationContext());
 
         // Drawables are same classes
         assertEquals(original.getClass(), d.getClass());
diff --git a/core/src/androidTest/java/androidx/core/math/MathUtilsTest.java b/core/src/androidTest/java/androidx/core/math/MathUtilsTest.java
index 55cc536..e9ddd16 100644
--- a/core/src/androidTest/java/androidx/core/math/MathUtilsTest.java
+++ b/core/src/androidTest/java/androidx/core/math/MathUtilsTest.java
@@ -18,8 +18,8 @@
 
 import static org.junit.Assert.assertEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/os/LocaleListCompatTest.java b/core/src/androidTest/java/androidx/core/os/LocaleListCompatTest.java
index c809ecb..f071c00 100644
--- a/core/src/androidTest/java/androidx/core/os/LocaleListCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/os/LocaleListCompatTest.java
@@ -28,9 +28,9 @@
 
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/os/ParcelCompatTest.java b/core/src/androidTest/java/androidx/core/os/ParcelCompatTest.java
index 324a2ec..e1d273b 100644
--- a/core/src/androidTest/java/androidx/core/os/ParcelCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/os/ParcelCompatTest.java
@@ -21,8 +21,8 @@
 
 import android.os.Parcel;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/provider/FontRequestTest.java b/core/src/androidTest/java/androidx/core/provider/FontRequestTest.java
index 4110299..cbdae11 100644
--- a/core/src/androidTest/java/androidx/core/provider/FontRequestTest.java
+++ b/core/src/androidTest/java/androidx/core/provider/FontRequestTest.java
@@ -18,8 +18,8 @@
 
 import android.util.Base64;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/provider/FontsContractCompatTest.java b/core/src/androidTest/java/androidx/core/provider/FontsContractCompatTest.java
index d0ec1a6..d53f84b 100644
--- a/core/src/androidTest/java/androidx/core/provider/FontsContractCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/provider/FontsContractCompatTest.java
@@ -46,9 +46,9 @@
 import androidx.core.content.res.ResourcesCompat;
 import androidx.core.provider.FontsContractCompat.FontFamilyResult;
 import androidx.core.provider.FontsContractCompat.FontInfo;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/core/src/androidTest/java/androidx/core/provider/SelfDestructiveThreadTest.java b/core/src/androidTest/java/androidx/core/provider/SelfDestructiveThreadTest.java
index 64e635c..7b0387e 100644
--- a/core/src/androidTest/java/androidx/core/provider/SelfDestructiveThreadTest.java
+++ b/core/src/androidTest/java/androidx/core/provider/SelfDestructiveThreadTest.java
@@ -27,10 +27,10 @@
 import android.os.Process;
 
 import androidx.annotation.GuardedBy;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/telephony/mbms/MbmsHelperTest.java b/core/src/androidTest/java/androidx/core/telephony/mbms/MbmsHelperTest.java
index 55f8c9d..a25a398 100644
--- a/core/src/androidTest/java/androidx/core/telephony/mbms/MbmsHelperTest.java
+++ b/core/src/androidTest/java/androidx/core/telephony/mbms/MbmsHelperTest.java
@@ -28,10 +28,10 @@
 import android.os.LocaleList;
 import android.telephony.mbms.ServiceInfo;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -55,7 +55,7 @@
                 Locale.forLanguageTag("es-us"));
         ServiceInfo sampleService = makeServiceInfoWithLocales(
                 Locale.forLanguageTag("en-us"), Locale.forLanguageTag("es-us"));
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.getResources().getConfiguration().setLocales(userPreferredLocales);
         assertEquals(getServiceNameForLocale(Locale.forLanguageTag("es-us")),
                 MbmsHelper.getBestNameForService(context, sampleService));
@@ -70,7 +70,7 @@
                 Locale.forLanguageTag("es-us"));
         ServiceInfo sampleService = makeServiceInfoWithLocales(
                 Locale.forLanguageTag("en-us"), Locale.forLanguageTag("en-uk"));
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.getResources().getConfiguration().setLocales(userPreferredLocales);
 
         assertNull(MbmsHelper.getBestNameForService(context, sampleService));
diff --git a/core/src/androidTest/java/androidx/core/text/BidiFormatterTest.java b/core/src/androidTest/java/androidx/core/text/BidiFormatterTest.java
index 2b48cdf..fa222af 100644
--- a/core/src/androidTest/java/androidx/core/text/BidiFormatterTest.java
+++ b/core/src/androidTest/java/androidx/core/text/BidiFormatterTest.java
@@ -23,8 +23,8 @@
 import android.text.Spanned;
 import android.text.style.RelativeSizeSpan;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/text/IcuCompatTest.java b/core/src/androidTest/java/androidx/core/text/IcuCompatTest.java
index 73c9537..2b9efd6 100644
--- a/core/src/androidTest/java/androidx/core/text/IcuCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/text/IcuCompatTest.java
@@ -20,8 +20,8 @@
 
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java b/core/src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java
index 4e36e59..02f9eeb 100644
--- a/core/src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/text/PrecomputedTextCompatTest.java
@@ -36,9 +36,9 @@
 import android.text.style.TypefaceSpan;
 
 import androidx.core.text.PrecomputedTextCompat.Params;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/text/util/FindAddressTest.java b/core/src/androidTest/java/androidx/core/text/util/FindAddressTest.java
index 897694a..d1e098b 100644
--- a/core/src/androidTest/java/androidx/core/text/util/FindAddressTest.java
+++ b/core/src/androidTest/java/androidx/core/text/util/FindAddressTest.java
@@ -16,8 +16,8 @@
 
 package androidx.core.text.util;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/text/util/LinkifyCompatTest.java b/core/src/androidTest/java/androidx/core/text/util/LinkifyCompatTest.java
index c9a06d2..e0caa0f 100644
--- a/core/src/androidTest/java/androidx/core/text/util/LinkifyCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/text/util/LinkifyCompatTest.java
@@ -30,8 +30,8 @@
 import android.text.util.Linkify.TransformFilter;
 
 import androidx.core.util.PatternsCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/util/ObjectsCompatTest.java b/core/src/androidTest/java/androidx/core/util/ObjectsCompatTest.java
index 7c10019..65915b7 100644
--- a/core/src/androidTest/java/androidx/core/util/ObjectsCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/util/ObjectsCompatTest.java
@@ -20,8 +20,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/util/PatternsCompatTest.java b/core/src/androidTest/java/androidx/core/util/PatternsCompatTest.java
index 1ce218d..97225b2 100644
--- a/core/src/androidTest/java/androidx/core/util/PatternsCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/util/PatternsCompatTest.java
@@ -19,8 +19,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java b/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
index a5fa152..7d62b79 100644
--- a/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/AccessibilityDelegateCompatTest.java
@@ -52,9 +52,9 @@
 import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
 import androidx.core.view.accessibility.AccessibilityViewCommand;
 import androidx.core.view.accessibility.AccessibilityViewCommand.MoveAtGranularityArguments;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/view/DisplayCutoutCompatTest.java b/core/src/androidTest/java/androidx/core/view/DisplayCutoutCompatTest.java
index c30969a..027a6ed 100644
--- a/core/src/androidTest/java/androidx/core/view/DisplayCutoutCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/DisplayCutoutCompatTest.java
@@ -24,8 +24,8 @@
 
 import android.graphics.Rect;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java b/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
index 9d7a053..8d0ce23 100644
--- a/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
+++ b/core/src/androidTest/java/androidx/core/view/DragStartHelperTest.java
@@ -36,15 +36,12 @@
 
 import androidx.annotation.NonNull;
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.LargeTest;
-import androidx.test.filters.SmallTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentMatcher;
 import org.mockito.InOrder;
diff --git a/core/src/androidTest/java/androidx/core/view/GravityCompatTest.java b/core/src/androidTest/java/androidx/core/view/GravityCompatTest.java
index 91680a0..a3adf6a 100644
--- a/core/src/androidTest/java/androidx/core/view/GravityCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/GravityCompatTest.java
@@ -22,8 +22,8 @@
 import android.support.v4.testutils.TestUtils;
 import android.view.Gravity;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/view/MarginLayoutParamsCompatTest.java b/core/src/androidTest/java/androidx/core/view/MarginLayoutParamsCompatTest.java
index 6c4e67f..77676e7 100644
--- a/core/src/androidTest/java/androidx/core/view/MarginLayoutParamsCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/MarginLayoutParamsCompatTest.java
@@ -20,8 +20,8 @@
 import android.os.Build;
 import android.view.ViewGroup;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/view/NestedScrollingChildHelperTest.java b/core/src/androidTest/java/androidx/core/view/NestedScrollingChildHelperTest.java
index df8a002..4271c4d 100644
--- a/core/src/androidTest/java/androidx/core/view/NestedScrollingChildHelperTest.java
+++ b/core/src/androidTest/java/androidx/core/view/NestedScrollingChildHelperTest.java
@@ -31,9 +31,9 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.core.widget.NestedScrollView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -50,12 +50,12 @@
     @Before
     public void setup() {
         mNestedScrollingParentImpl =
-                spy(new NestedScrollingParentImpl(InstrumentationRegistry.getContext()));
+                spy(new NestedScrollingParentImpl(ApplicationProvider.getApplicationContext()));
         mNestedScrollingParentImpl.setLayoutParams(
                 new FrameLayout.LayoutParams(
                         ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
 
-        mNestedScrollingChild = spy(new View(InstrumentationRegistry.getContext()));
+        mNestedScrollingChild = spy(new View(ApplicationProvider.getApplicationContext()));
         mNestedScrollingChild.setLayoutParams(
                 new NestedScrollView.LayoutParams(
                         ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
diff --git a/core/src/androidTest/java/androidx/core/view/NestedScrollingHelperIntegrationTest.java b/core/src/androidTest/java/androidx/core/view/NestedScrollingHelperIntegrationTest.java
index e29807c..8129e2e 100644
--- a/core/src/androidTest/java/androidx/core/view/NestedScrollingHelperIntegrationTest.java
+++ b/core/src/androidTest/java/androidx/core/view/NestedScrollingHelperIntegrationTest.java
@@ -25,9 +25,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,9 +43,11 @@
 
     @Before
     public void setup() {
-        mNestedScrollingImpl3 = new NestedScrollingImpl3(InstrumentationRegistry.getContext());
-        mNestedScrollingImpl2 = new NestedScrollingImpl2(InstrumentationRegistry.getContext());
-        mNestedScrollingImpl = new NestedScrollingImpl(InstrumentationRegistry.getContext());
+        mNestedScrollingImpl3 = new NestedScrollingImpl3(
+                ApplicationProvider.getApplicationContext());
+        mNestedScrollingImpl2 = new NestedScrollingImpl2(
+                ApplicationProvider.getApplicationContext());
+        mNestedScrollingImpl = new NestedScrollingImpl(ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/core/src/androidTest/java/androidx/core/view/NestedScrollingParentHelperTest.java b/core/src/androidTest/java/androidx/core/view/NestedScrollingParentHelperTest.java
index 4a2e003..f70323c 100644
--- a/core/src/androidTest/java/androidx/core/view/NestedScrollingParentHelperTest.java
+++ b/core/src/androidTest/java/androidx/core/view/NestedScrollingParentHelperTest.java
@@ -23,9 +23,9 @@
 import android.view.View;
 import android.widget.FrameLayout;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -40,7 +40,7 @@
 
     @Before
     public void setup() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mNestedScrollingParentHelper = new NestedScrollingParentHelper(new FrameLayout(context));
         mView = new View(context);
     }
diff --git a/core/src/androidTest/java/androidx/core/view/PointerIconCompatTest.java b/core/src/androidTest/java/androidx/core/view/PointerIconCompatTest.java
index 153f947..14f1c60 100644
--- a/core/src/androidTest/java/androidx/core/view/PointerIconCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/PointerIconCompatTest.java
@@ -28,9 +28,9 @@
 
 import androidx.core.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/view/ViewCompatTest.java b/core/src/androidTest/java/androidx/core/view/ViewCompatTest.java
index 02d2661..1a223f7 100644
--- a/core/src/androidTest/java/androidx/core/view/ViewCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/ViewCompatTest.java
@@ -36,9 +36,9 @@
 
 import androidx.annotation.Nullable;
 import androidx.core.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/view/ViewGroupCompatTest.java b/core/src/androidTest/java/androidx/core/view/ViewGroupCompatTest.java
index 644802a..a0054a2 100644
--- a/core/src/androidTest/java/androidx/core/view/ViewGroupCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/ViewGroupCompatTest.java
@@ -26,9 +26,9 @@
 import android.view.ViewGroup;
 
 import androidx.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/view/ViewParentCompatTest.java b/core/src/androidTest/java/androidx/core/view/ViewParentCompatTest.java
index 523431b..a3c945f 100644
--- a/core/src/androidTest/java/androidx/core/view/ViewParentCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/ViewParentCompatTest.java
@@ -26,10 +26,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -44,7 +44,7 @@
 
     @Before
     public void setup() {
-        mView = new View(InstrumentationRegistry.getContext());
+        mView = new View(ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/core/src/androidTest/java/androidx/core/view/WindowInsetsCompatTest.java b/core/src/androidTest/java/androidx/core/view/WindowInsetsCompatTest.java
index 950c35f..1b7a8fd 100644
--- a/core/src/androidTest/java/androidx/core/view/WindowInsetsCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/WindowInsetsCompatTest.java
@@ -21,8 +21,8 @@
 import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.Assert.assertThat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/androidTest/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompatTest.java b/core/src/androidTest/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompatTest.java
index 61d1e8e..6b7746e 100644
--- a/core/src/androidTest/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompatTest.java
+++ b/core/src/androidTest/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompatTest.java
@@ -24,9 +24,9 @@
 import android.view.accessibility.AccessibilityNodeInfo;
 
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/core/src/androidTest/java/androidx/core/widget/ContentLoadingProgressBarTest.java b/core/src/androidTest/java/androidx/core/widget/ContentLoadingProgressBarTest.java
index c00d11a..a33e05b 100644
--- a/core/src/androidTest/java/androidx/core/widget/ContentLoadingProgressBarTest.java
+++ b/core/src/androidTest/java/androidx/core/widget/ContentLoadingProgressBarTest.java
@@ -21,9 +21,9 @@
 import android.view.View;
 
 import androidx.core.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingChildTest.java b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingChildTest.java
index ca5422b..7efa3c6 100644
--- a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingChildTest.java
+++ b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingChildTest.java
@@ -40,9 +40,9 @@
 import androidx.core.view.NestedScrollingChild3;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.Direction;
 import androidx.testutils.FlingData;
 import androidx.testutils.MotionEventData;
@@ -74,15 +74,16 @@
 
         // Create views
 
-        View child = new View(InstrumentationRegistry.getContext());
+        View child = new View(ApplicationProvider.getApplicationContext());
         child.setMinimumWidth(1000);
         child.setMinimumHeight(1100);
 
-        mNestedScrollView = new NestedScrollView(InstrumentationRegistry.getContext());
+        mNestedScrollView = new NestedScrollView(ApplicationProvider.getApplicationContext());
         mNestedScrollView.setMinimumWidth(1000);
         mNestedScrollView.setMinimumHeight(1000);
 
-        mParentSpy = Mockito.spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
+        mParentSpy = Mockito.spy(
+                new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
         mParentSpy.setMinimumWidth(1000);
         mParentSpy.setMinimumHeight(1000);
 
@@ -159,7 +160,8 @@
         when(mParentSpy.onStartNestedScroll(any(View.class), any(View.class), anyInt(), anyInt()))
                 .thenReturn(true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 300 - touchSlop, 0);
@@ -176,7 +178,8 @@
         when(mParentSpy.onStartNestedScroll(any(View.class), any(View.class), anyInt(), anyInt()))
                 .thenReturn(true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 450 - touchSlop, 0);
@@ -201,7 +204,8 @@
         when(mParentSpy.onStartNestedScroll(any(View.class), any(View.class), anyInt(), anyInt()))
                 .thenReturn(true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 300, 0);
@@ -255,7 +259,7 @@
         when(mParentSpy.onStartNestedScroll(any(View.class), any(View.class), anyInt(), anyInt()))
                 .thenReturn(true);
 
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         FlingData flingData = SimpleGestureGeneratorKt.generateFlingData(context);
 
         final long firstDownTime = SystemClock.uptimeMillis();
diff --git a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent2Test.java b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent2Test.java
index 10b0552..756b3f4 100644
--- a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent2Test.java
+++ b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent2Test.java
@@ -39,9 +39,9 @@
 import androidx.core.view.NestedScrollingChild2;
 import androidx.core.view.NestedScrollingParent2;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -61,9 +61,9 @@
 
     @Before
     public void instantiateMembers() {
-        mNestedScrollView = new NestedScrollView(InstrumentationRegistry.getContext());
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
-        mChild = new View(InstrumentationRegistry.getContext());
+        mNestedScrollView = new NestedScrollView(ApplicationProvider.getApplicationContext());
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
+        mChild = new View(ApplicationProvider.getApplicationContext());
     }
 
     @Test
@@ -514,7 +514,7 @@
     private void setupNestedScrollViewWithParentAndChild(int nestedScrollViewHeight,
             int childHeight) {
 
-        final ViewGroup viewGroup = new FrameLayout(InstrumentationRegistry.getContext());
+        final ViewGroup viewGroup = new FrameLayout(ApplicationProvider.getApplicationContext());
 
         mNestedScrollView.setLayoutParams(new ViewGroup.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT, nestedScrollViewHeight));
diff --git a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent3Test.java b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent3Test.java
index 2503ff7..f4b3dc0 100644
--- a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent3Test.java
+++ b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewNestedScrollingParent3Test.java
@@ -36,9 +36,9 @@
 import androidx.core.view.NestedScrollingChild3;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -222,9 +222,9 @@
     @SuppressWarnings("SameParameterValue")
     private void setupNestedScrollViewWithChild(int nestedScrollViewHeight, int childHeight) {
 
-        mNestedScrollView = new NestedScrollView(InstrumentationRegistry.getContext());
+        mNestedScrollView = new NestedScrollView(ApplicationProvider.getApplicationContext());
 
-        mChild = new View(InstrumentationRegistry.getContext());
+        mChild = new View(ApplicationProvider.getApplicationContext());
         mChild.setMinimumHeight(childHeight);
         mChild.setLayoutParams(
                 new NestedScrollView.LayoutParams(
@@ -242,16 +242,16 @@
     private void setupNestedScrollViewWithParentAndChild(int parentHeight,
             int nestedScrollViewHeight, int childHeight) {
 
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
         mParent.setMinimumHeight(parentHeight);
 
-        mNestedScrollView = new NestedScrollView(InstrumentationRegistry.getContext());
+        mNestedScrollView = new NestedScrollView(ApplicationProvider.getApplicationContext());
         mNestedScrollView.setMinimumHeight(nestedScrollViewHeight);
         mNestedScrollView.setLayoutParams(
                 new ViewGroup.LayoutParams(
                         ViewGroup.LayoutParams.MATCH_PARENT, nestedScrollViewHeight));
 
-        mChild = new View(InstrumentationRegistry.getContext());
+        mChild = new View(ApplicationProvider.getApplicationContext());
         mChild.setMinimumHeight(childHeight);
         mChild.setLayoutParams(
                 new NestedScrollView.LayoutParams(
diff --git a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewScrollingTest.java b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewScrollingTest.java
index dc8d752..050ae9a0 100644
--- a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewScrollingTest.java
+++ b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewScrollingTest.java
@@ -43,9 +43,9 @@
 import androidx.core.view.NestedScrollingChild3;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.Direction;
 import androidx.testutils.SimpleGestureGeneratorKt;
 
@@ -95,7 +95,7 @@
         setup();
         attachToActivity();
 
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final int targetVelocity = (int)
                 Math.ceil(SimpleGestureGeneratorKt.generateFlingData(context).getVelocity() * 1000);
         final CountDownLatch countDownLatch = new CountDownLatch(1);
@@ -246,7 +246,7 @@
     public void fling_fullyParticipatesInNestedScrolling() throws Throwable {
         setup();
         attachToActivity();
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final int targetVelocity = (int)
                 Math.ceil(SimpleGestureGeneratorKt.generateFlingData(context).getVelocity() * 1000);
 
diff --git a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
index 89fa117..a6b9e414 100644
--- a/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
+++ b/core/src/androidTest/java/androidx/core/widget/NestedScrollViewTest.java
@@ -26,9 +26,9 @@
 import android.view.KeyEvent;
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -304,7 +304,7 @@
     }
 
     private void setup(int childHeight) {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         mChild = new View(context);
         mChild.setMinimumWidth(100);
diff --git a/core/src/androidTest/java/androidx/core/widget/ScrollerCompatTestBase.java b/core/src/androidTest/java/androidx/core/widget/ScrollerCompatTestBase.java
index 48fa072..0871282 100644
--- a/core/src/androidTest/java/androidx/core/widget/ScrollerCompatTestBase.java
+++ b/core/src/androidTest/java/androidx/core/widget/ScrollerCompatTestBase.java
@@ -22,9 +22,9 @@
 import android.util.Log;
 import android.view.animation.Interpolator;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -45,7 +45,7 @@
     protected void createScroller(Interpolator interpolator)
             throws NoSuchMethodException, IllegalAccessException, InvocationTargetException,
             InstantiationException {
-        mScroller = new ScrollerCompat(InstrumentationRegistry.getContext(), interpolator);
+        mScroller = new ScrollerCompat(ApplicationProvider.getApplicationContext(), interpolator);
     }
 
     @Test
diff --git a/customview/build.gradle b/customview/build.gradle
index 49bab6f..15bbf9c 100644
--- a/customview/build.gradle
+++ b/customview/build.gradle
@@ -11,6 +11,8 @@
     api(project(":core"))
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
 }
diff --git a/customview/src/androidTest/java/androidx/customview/widget/ExploreByTouchHelperTest.java b/customview/src/androidTest/java/androidx/customview/widget/ExploreByTouchHelperTest.java
index 409593c..aec280e 100644
--- a/customview/src/androidTest/java/androidx/customview/widget/ExploreByTouchHelperTest.java
+++ b/customview/src/androidTest/java/androidx/customview/widget/ExploreByTouchHelperTest.java
@@ -29,9 +29,9 @@
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 import androidx.customview.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/dumb-tests/build.gradle b/dumb-tests/build.gradle
index 846295a..f26410b 100644
--- a/dumb-tests/build.gradle
+++ b/dumb-tests/build.gradle
@@ -22,6 +22,8 @@
 
 dependencies {
     testImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
 }
diff --git a/dumb-tests/src/androidTest/java/androidx/testinfra/dumbintegrationtest/DumbTest.java b/dumb-tests/src/androidTest/java/androidx/testinfra/dumbintegrationtest/DumbTest.java
index e14fb749..b12aad5 100644
--- a/dumb-tests/src/androidTest/java/androidx/testinfra/dumbintegrationtest/DumbTest.java
+++ b/dumb-tests/src/androidTest/java/androidx/testinfra/dumbintegrationtest/DumbTest.java
@@ -16,10 +16,10 @@
 
 package androidx.testinfra.dumbintegrationtest;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/dynamic-animation/build.gradle b/dynamic-animation/build.gradle
index 015290f..802fbef 100644
--- a/dynamic-animation/build.gradle
+++ b/dynamic-animation/build.gradle
@@ -11,6 +11,8 @@
     api(project(":collection"))
     api(project(":legacy-support-core-utils"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/dynamic-animation/ktx/build.gradle b/dynamic-animation/ktx/build.gradle
index 2a2e6cb..2511749 100644
--- a/dynamic-animation/ktx/build.gradle
+++ b/dynamic-animation/ktx/build.gradle
@@ -39,6 +39,8 @@
     api(project(":dynamicanimation"))
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java b/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
index 7e9b155..a00d048 100644
--- a/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
+++ b/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/FlingTests.java
@@ -31,10 +31,10 @@
 import androidx.dynamicanimation.animation.FloatPropertyCompat;
 import androidx.dynamicanimation.animation.FloatValueHolder;
 import androidx.dynamicanimation.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java b/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
index 84bd288..d436d02 100644
--- a/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
+++ b/dynamic-animation/src/androidTest/java/androidx/dynamicanimation/tests/SpringTests.java
@@ -42,11 +42,11 @@
 import androidx.dynamicanimation.animation.SpringAnimation;
 import androidx.dynamicanimation.animation.SpringForce;
 import androidx.dynamicanimation.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/emoji/core/build.gradle b/emoji/core/build.gradle
index 253b91c..08bccb1 100644
--- a/emoji/core/build.gradle
+++ b/emoji/core/build.gradle
@@ -24,6 +24,8 @@
 
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/AllEmojisTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/AllEmojisTest.java
index ae41da7..a94d6c2 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/AllEmojisTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/AllEmojisTest.java
@@ -27,7 +27,7 @@
 
 import androidx.core.graphics.PaintCompat;
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 
@@ -74,7 +74,7 @@
 
     @Parameterized.Parameters
     public static Collection<Object[]> data() throws IOException {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final InputStream inputStream = context.getAssets().open("emojis.txt");
         try {
             final BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/ConfigTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/ConfigTest.java
index 61473d3..bd0e5ac 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/ConfigTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/ConfigTest.java
@@ -34,10 +34,11 @@
 import android.graphics.Color;
 
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +52,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test(expected = NullPointerException.class)
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiCompatTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiCompatTest.java
index 9de5be3..6b7ffdf 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiCompatTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiCompatTest.java
@@ -75,10 +75,10 @@
 
 import androidx.emoji.util.Emoji.EmojiMapping;
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
index 57b7a37..47142fd 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiKeyboardTest.java
@@ -32,11 +32,11 @@
 import androidx.emoji.test.R;
 import androidx.emoji.util.KeyboardUtil;
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.Suppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
index 491711b..4f4b856 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanInstrumentationTest.java
@@ -31,11 +31,11 @@
 import android.widget.TextView;
 
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanTest.java
index c9156ca3..61a3f71 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/EmojiSpanTest.java
@@ -29,9 +29,9 @@
 import android.graphics.Paint.FontMetricsInt;
 import android.text.TextPaint;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/FontRequestEmojiCompatConfigTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/FontRequestEmojiCompatConfigTest.java
index 87e51de..5db5aa7 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/FontRequestEmojiCompatConfigTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/FontRequestEmojiCompatConfigTest.java
@@ -53,10 +53,10 @@
 import androidx.core.provider.FontRequest;
 import androidx.core.provider.FontsContractCompat.FontFamilyResult;
 import androidx.core.provider.FontsContractCompat.FontInfo;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -82,7 +82,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mFontRequest = new FontRequest("authority", "package", "query",
                 new ArrayList<List<byte[]>>());
         mFontProviderHelper = mock(FontRequestEmojiCompatConfig.FontProviderHelper.class);
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/HardDeleteTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/HardDeleteTest.java
index 9d344e5..614c6a9 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/HardDeleteTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/HardDeleteTest.java
@@ -40,9 +40,9 @@
 import android.view.KeyEvent;
 
 import androidx.emoji.util.TestString;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/InitCallbackTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/InitCallbackTest.java
index e7adb56..435384d 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/InitCallbackTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/InitCallbackTest.java
@@ -23,10 +23,10 @@
 import static org.mockito.Mockito.verify;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/MetadataRepoTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/MetadataRepoTest.java
index 15e76bf..4be9a03 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/MetadataRepoTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/MetadataRepoTest.java
@@ -18,9 +18,9 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/SoftDeleteTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/SoftDeleteTest.java
index 80c7ca1..9676fc8 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/SoftDeleteTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/SoftDeleteTest.java
@@ -35,9 +35,9 @@
 
 import androidx.emoji.util.Emoji;
 import androidx.emoji.util.TestString;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java b/emoji/core/src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java
index 74ab9f6..944e929 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/TestConfigBuilder.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.GuardedBy;
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import java.util.concurrent.CountDownLatch;
 
@@ -101,7 +101,7 @@
                     if (sMetadataRepo == null) {
                         try {
                             final AssetManager assetManager =
-                                    InstrumentationRegistry.getContext().getAssets();
+                                    ApplicationProvider.getApplicationContext().getAssets();
                             sMetadataRepo = MetadataRepo.create(assetManager,
                                     "NotoColorEmojiCompat.ttf");
                         } catch (Throwable e) {
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/text/UninitializedStateTest.java b/emoji/core/src/androidTest/java/androidx/emoji/text/UninitializedStateTest.java
index a3afc15..9a3d61f 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/text/UninitializedStateTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/text/UninitializedStateTest.java
@@ -15,9 +15,9 @@
  */
 package androidx.emoji.text;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperPre19Test.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperPre19Test.java
index 594b7f93..c38cf2b 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperPre19Test.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperPre19Test.java
@@ -30,10 +30,10 @@
 import android.view.inputmethod.InputConnection;
 import android.widget.EditText;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperTest.java
index 2a12407..79bed4a 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextHelperTest.java
@@ -33,10 +33,10 @@
 import android.widget.EditText;
 
 import androidx.emoji.text.EmojiCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -53,7 +53,7 @@
     @Before
     public void setup() {
         EmojiCompat.reset(mock(EmojiCompat.class));
-        mEditText = new EditText(InstrumentationRegistry.getTargetContext());
+        mEditText = new EditText(ApplicationProvider.getApplicationContext());
         mEmojiEditTextHelper = new EmojiEditTextHelper(mEditText);
     }
 
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
index 7f831da..faa4ad1 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditTextTest.java
@@ -30,12 +30,12 @@
 import androidx.emoji.text.TestActivity;
 import androidx.emoji.text.TestConfigBuilder;
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
index b4a499a..31d8280 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
@@ -31,8 +31,8 @@
 import androidx.emoji.text.EmojiMetadata;
 import androidx.emoji.text.EmojiSpan;
 import androidx.emoji.text.TypefaceEmojiSpan;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java
index ce0598c..9f9f404 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiExtractTextLayoutTest.java
@@ -40,11 +40,11 @@
 
 import androidx.emoji.R;
 import androidx.emoji.text.EmojiCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -70,7 +70,7 @@
     @Test
     @UiThreadTest
     public void testInflate() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view, null);
 
@@ -90,7 +90,7 @@
     @Test
     @UiThreadTest
     public void testSetKeyListener_withNull() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view, null);
 
@@ -105,7 +105,7 @@
     @Test
     @UiThreadTest
     public void testSetEmojiReplaceStrategy() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
 
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view_with_attrs, null);
@@ -127,7 +127,7 @@
     @UiThreadTest
     @SdkSuppress(minSdkVersion = 19)
     public void testSetEmojiReplaceStrategyCallEmojiCompatWithCorrectStrategy() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
 
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view_with_attrs, null);
@@ -152,7 +152,7 @@
     @Test
     @UiThreadTest
     public void testOnUpdateExtractingViews() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view, null);
 
@@ -180,7 +180,7 @@
     @Test
     @UiThreadTest
     public void testOnUpdateExtractingViews_hidesAccessoriesIfNoAction() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final EmojiExtractTextLayout layout = (EmojiExtractTextLayout) LayoutInflater.from(context)
                 .inflate(androidx.emoji.test.R.layout.extract_view, null);
 
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputConnectionTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputConnectionTest.java
index 9b47fbf..77101b3 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputConnectionTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputConnectionTest.java
@@ -42,10 +42,10 @@
 import androidx.emoji.text.TestConfigBuilder;
 import androidx.emoji.util.Emoji;
 import androidx.emoji.util.TestString;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java
index c4548f7..32d9068 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiInputFilterTest.java
@@ -35,8 +35,8 @@
 import android.widget.TextView;
 
 import androidx.emoji.text.EmojiCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiKeyListenerTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiKeyListenerTest.java
index 98cd6ef..6a01d13 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiKeyListenerTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiKeyListenerTest.java
@@ -48,9 +48,9 @@
 import androidx.emoji.text.EmojiCompat;
 import androidx.emoji.text.TestConfigBuilder;
 import androidx.emoji.util.TestString;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.BeforeClass;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperPre19Test.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperPre19Test.java
index e387a9c..a1ec7ec 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperPre19Test.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperPre19Test.java
@@ -24,10 +24,10 @@
 import android.text.method.TransformationMethod;
 import android.widget.TextView;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -42,7 +42,7 @@
 
     @Before
     public void setup() {
-        mTextView = new TextView(InstrumentationRegistry.getTargetContext());
+        mTextView = new TextView(ApplicationProvider.getApplicationContext());
         mTextViewHelper = new EmojiTextViewHelper(mTextView);
     }
 
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperTest.java
index 733e246..f3d069a 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextViewHelperTest.java
@@ -30,10 +30,10 @@
 import android.text.method.TransformationMethod;
 import android.widget.TextView;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -50,7 +50,7 @@
 
     @Before
     public void setup() {
-        mTextView = new TextView(InstrumentationRegistry.getTargetContext());
+        mTextView = new TextView(ApplicationProvider.getApplicationContext());
         mTextViewHelper = new EmojiTextViewHelper(mTextView);
     }
 
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java
index 3e6607a..89c841f 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTextWatcherTest.java
@@ -32,8 +32,8 @@
 import android.widget.EditText;
 
 import androidx.emoji.text.EmojiCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java
index 014b3ef..1b23687 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiTransformationMethodTest.java
@@ -36,8 +36,8 @@
 import android.view.View;
 
 import androidx.emoji.text.EmojiCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
index db48ebc..302957c 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
@@ -40,8 +40,8 @@
 import android.text.style.QuoteSpan;
 
 import androidx.emoji.text.EmojiSpan;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/exifinterface/build.gradle b/exifinterface/build.gradle
index df7161f..c3c9027 100644
--- a/exifinterface/build.gradle
+++ b/exifinterface/build.gradle
@@ -9,6 +9,8 @@
 dependencies {
     api(project(":annotation"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java b/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
index 3100bda..b2a01ef 100644
--- a/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
+++ b/exifinterface/src/androidTest/java/androidx/exifinterface/media/ExifInterfaceTest.java
@@ -16,7 +16,7 @@
 
 package androidx.exifinterface.media;
 
-import static androidx.test.InstrumentationRegistry.getContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -31,9 +31,9 @@
 import android.util.Pair;
 
 import androidx.exifinterface.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -310,7 +310,8 @@
             InputStream inputStream = null;
             FileOutputStream outputStream = null;
             try {
-                inputStream = getContext().getResources().openRawResource(IMAGE_RESOURCES[i]);
+                inputStream = getApplicationContext()
+                        .getResources().openRawResource(IMAGE_RESOURCES[i]);
                 outputStream = new FileOutputStream(outputPath);
                 copy(inputStream, outputStream);
             } finally {
@@ -816,7 +817,7 @@
     private void testExifInterfaceForJpeg(String fileName, int typedArrayResourceId)
             throws IOException {
         ExpectedValue expectedValue = new ExpectedValue(
-                getContext().getResources().obtainTypedArray(typedArrayResourceId));
+                getApplicationContext().getResources().obtainTypedArray(typedArrayResourceId));
 
         // Test for reading from external data storage.
         testExifInterfaceCommon(fileName, expectedValue);
@@ -828,7 +829,7 @@
     private void testExifInterfaceForRaw(String fileName, int typedArrayResourceId)
             throws IOException {
         ExpectedValue expectedValue = new ExpectedValue(
-                getContext().getResources().obtainTypedArray(typedArrayResourceId));
+                getApplicationContext().getResources().obtainTypedArray(typedArrayResourceId));
 
         // Test for reading from external data storage.
         testExifInterfaceCommon(fileName, expectedValue);
diff --git a/fragment/build.gradle b/fragment/build.gradle
index ad02cca..eb1f7db 100644
--- a/fragment/build.gradle
+++ b/fragment/build.gradle
@@ -22,6 +22,8 @@
     api(ARCH_LIFECYCLE_VIEWMODEL, libs.exclude_annotations_transitive)
 
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/fragment/ktx/build.gradle b/fragment/ktx/build.gradle
index 21eae11e..b150f6a 100644
--- a/fragment/ktx/build.gradle
+++ b/fragment/ktx/build.gradle
@@ -41,6 +41,8 @@
     api(KOTLIN_STDLIB)
     androidTestImplementation(JUNIT)
     androidTestImplementation(TRUTH)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
 }
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt
index 7039851..ba3226f 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt
@@ -18,9 +18,9 @@
 
 import android.os.Parcel
 import androidx.fragment.app.test.EmptyFragmentTestActivity
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
 import org.junit.Test
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/ChildFragmentStateTest.java b/fragment/src/androidTest/java/androidx/fragment/app/ChildFragmentStateTest.java
index 21e8bc4..d5ace4d 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/ChildFragmentStateTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/ChildFragmentStateTest.java
@@ -22,9 +22,9 @@
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.app.test.FragmentTestActivity.ParentFragment;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/DialogFragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/DialogFragmentTest.java
index ce264b1..86134c4 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/DialogFragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/DialogFragmentTest.java
@@ -31,10 +31,10 @@
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimationTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimationTest.java
index 0f1f4cd..e623238 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimationTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimationTest.java
@@ -42,10 +42,10 @@
 import androidx.core.view.ViewCompat;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimatorTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimatorTest.java
index 4c08a34..d01ca55 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimatorTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentAnimatorTest.java
@@ -35,9 +35,9 @@
 import androidx.core.view.ViewCompat;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentArchLifecycleTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentArchLifecycleTest.java
index 2d61243..b4f813f 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentArchLifecycleTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentArchLifecycleTest.java
@@ -25,9 +25,9 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt
index 12f6404..ca00e0e 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentFactoryTest.kt
@@ -23,9 +23,9 @@
 import androidx.fragment.app.test.EmptyFragmentTestActivity
 import androidx.fragment.test.R
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Before
 import org.junit.Rule
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentLifecycleTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentLifecycleTest.java
index 229d22e..1ff391d 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentLifecycleTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentLifecycleTest.java
@@ -57,12 +57,12 @@
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.ViewModelStore;
 import androidx.lifecycle.ViewModelStoreOwner;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerNonConfigTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerNonConfigTest.java
index b258e6c..b65b191 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerNonConfigTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerNonConfigTest.java
@@ -23,10 +23,10 @@
 import android.os.Build;
 
 import androidx.fragment.app.test.NonConfigOnStopActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.FragmentActivityUtils;
 
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerViewModelTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerViewModelTest.kt
index 99872fb..c4fecf0 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerViewModelTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentManagerViewModelTest.kt
@@ -17,8 +17,8 @@
 package androidx.fragment.app
 
 import androidx.lifecycle.ViewModelStore
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReceiveResultTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReceiveResultTest.java
index 455cda8..0d32067 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReceiveResultTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReceiveResultTest.java
@@ -33,10 +33,10 @@
 import androidx.fragment.app.test.FragmentResultActivity;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReorderingTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReorderingTest.java
index 6516ae6..a2597f9 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReorderingTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReorderingTest.java
@@ -26,11 +26,11 @@
 
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReplaceTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReplaceTest.java
index 91ea333..217f236 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentReplaceTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentReplaceTest.java
@@ -27,10 +27,10 @@
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.app.test.FragmentTestActivity.TestFragment;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentSavedStateRegistryTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/FragmentSavedStateRegistryTest.kt
index e61f66e..0a2021f 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentSavedStateRegistryTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentSavedStateRegistryTest.kt
@@ -22,9 +22,9 @@
 import androidx.lifecycle.LifecycleObserver
 import androidx.lifecycle.OnLifecycleEvent
 import androidx.savedstate.SavedStateRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import androidx.testutils.FragmentActivityUtils.recreateActivity
 import androidx.testutils.RecreatedActivity
 import com.google.common.truth.Truth.assertThat
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTest.java
index d7bbed1..25c99ee 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTest.java
@@ -32,14 +32,14 @@
 import androidx.annotation.RequiresApi;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.java
index 9de64fe..f220673 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTestUtil.java
@@ -29,7 +29,7 @@
 import android.view.animation.Animation;
 
 import androidx.fragment.app.test.FragmentTestActivity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import java.lang.ref.WeakReference;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransactionTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransactionTest.java
index d095bff..2ca285b 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransactionTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransactionTest.java
@@ -36,11 +36,11 @@
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.app.test.NewIntentActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Assert;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.java
index aab49d6..04cb401 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentTransitionTest.java
@@ -33,9 +33,9 @@
 import androidx.core.app.SharedElementCallback;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewLifecycleTest.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewLifecycleTest.java
index fd96d7f..f5645f4 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewLifecycleTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewLifecycleTest.java
@@ -39,9 +39,9 @@
 import androidx.lifecycle.MutableLiveData;
 import androidx.lifecycle.Observer;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewTests.java b/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewTests.java
index d958e39..3673399 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewTests.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/FragmentViewTests.java
@@ -32,10 +32,10 @@
 import androidx.annotation.Nullable;
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/HangingFragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/HangingFragmentTest.java
index b7487e2..431dafe 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/HangingFragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/HangingFragmentTest.java
@@ -17,9 +17,9 @@
 package androidx.fragment.app;
 
 import androidx.fragment.app.test.HangingFragmentActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.FragmentActivityUtils;
 
 import org.junit.Assert;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/LoaderTest.java b/fragment/src/androidTest/java/androidx/fragment/app/LoaderTest.java
index fa9391b..475dcec 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/LoaderTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/LoaderTest.java
@@ -33,10 +33,10 @@
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.AsyncTaskLoader;
 import androidx.loader.content.Loader;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.FragmentActivityUtils;
 import androidx.testutils.RecreatedActivity;
 
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentRestoreTest.java b/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentRestoreTest.java
index 585e339..543345c 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentRestoreTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentRestoreTest.java
@@ -27,9 +27,9 @@
 import androidx.fragment.app.test.FragmentTestActivity.ChildFragment;
 import androidx.fragment.app.test.FragmentTestActivity.ChildFragment.OnAttachListener;
 import androidx.fragment.app.test.FragmentTestActivity.ParentFragment;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentTest.java
index b2d26b9..cab44cc 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/NestedFragmentTest.java
@@ -28,11 +28,11 @@
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.app.test.FragmentTestActivity.ChildFragment;
 import androidx.fragment.app.test.FragmentTestActivity.ParentFragment;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/NestedInflatedFragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/NestedInflatedFragmentTest.java
index 3c5d351..a77e21f 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/NestedInflatedFragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/NestedInflatedFragmentTest.java
@@ -27,9 +27,9 @@
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/OnBackPressedCallbackTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/OnBackPressedCallbackTest.kt
index ab778b3..8de0f09 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/OnBackPressedCallbackTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/OnBackPressedCallbackTest.kt
@@ -19,9 +19,9 @@
 import androidx.fragment.app.test.FragmentTestActivity
 import androidx.fragment.test.R
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Rule
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/PostponedTransitionTest.java b/fragment/src/androidTest/java/androidx/fragment/app/PostponedTransitionTest.java
index 1a52b437..80a3208 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/PostponedTransitionTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/PostponedTransitionTest.java
@@ -33,11 +33,11 @@
 
 import androidx.fragment.app.test.FragmentTestActivity;
 import androidx.fragment.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/PrimaryNavFragmentTest.java b/fragment/src/androidTest/java/androidx/fragment/app/PrimaryNavFragmentTest.java
index 3288c68..a284225 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/PrimaryNavFragmentTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/PrimaryNavFragmentTest.java
@@ -23,9 +23,9 @@
 import static org.junit.Assert.assertTrue;
 
 import androidx.fragment.app.test.EmptyFragmentTestActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/SafeTransactionInOnResumeTest.kt b/fragment/src/androidTest/java/androidx/fragment/app/SafeTransactionInOnResumeTest.kt
index fc6d741..80e926d 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/SafeTransactionInOnResumeTest.kt
+++ b/fragment/src/androidTest/java/androidx/fragment/app/SafeTransactionInOnResumeTest.kt
@@ -20,9 +20,9 @@
 import android.content.Intent
 import android.os.Build
 import android.os.Bundle
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SdkSuppress
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertTrue
 import org.junit.Rule
 import org.junit.Test
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTest.java b/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTest.java
index f678f5f..09807d0 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTest.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTest.java
@@ -32,11 +32,11 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.lifecycle.ViewModelProvider;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTestInTransaction.java b/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTestInTransaction.java
index 5c6eca8..b131559 100644
--- a/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTestInTransaction.java
+++ b/fragment/src/androidTest/java/androidx/fragment/app/ViewModelTestInTransaction.java
@@ -27,9 +27,9 @@
 import androidx.fragment.app.test.TestViewModel;
 import androidx.lifecycle.ViewModelProvider;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/fragment/testing/build.gradle b/fragment/testing/build.gradle
index d6c5ae0..330608f 100644
--- a/fragment/testing/build.gradle
+++ b/fragment/testing/build.gradle
@@ -39,9 +39,13 @@
     api(TEST_CORE)
     api(KOTLIN_STDLIB)
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
+    androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TRUTH)
 }
 
diff --git a/fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java b/fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java
index 26c8ce0..5d691bf 100644
--- a/fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java
+++ b/fragment/testing/src/main/java/androidx/fragment/app/testing/FragmentScenario.java
@@ -45,7 +45,7 @@
  * framework.
  * <p>
  * FragmentScenario only supports {@link androidx.fragment.app.Fragment}. If you are using a
- * deprecated fragment class such as {@link android.support.v4.app.Fragment} or
+ * deprecated fragment class such as {@code android.support.v4.app.Fragment} or
  * {@link android.app.Fragment}, please update your code to {@link androidx.fragment.app.Fragment}.
  *
  * @param <F> The Fragment class being tested
diff --git a/graphics/drawable/animated/build.gradle b/graphics/drawable/animated/build.gradle
index e983e40..e0dd10b 100644
--- a/graphics/drawable/animated/build.gradle
+++ b/graphics/drawable/animated/build.gradle
@@ -10,6 +10,8 @@
     api(project(":vectordrawable"))
     implementation(project(":interpolator"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableParameterizedTest.java b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableParameterizedTest.java
index 8eba076..b16e820 100644
--- a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableParameterizedTest.java
+++ b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableParameterizedTest.java
@@ -16,8 +16,7 @@
 
 package androidx.vectordrawable.graphics.drawable.tests;
 
-import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils
-        .saveVectorDrawableIntoPNG;
+import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils.saveVectorDrawableIntoPNG;
 
 import static org.junit.Assert.assertTrue;
 
@@ -27,8 +26,8 @@
 import android.graphics.Canvas;
 import android.graphics.drawable.Drawable;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 import androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback;
 import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
diff --git a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableTest.java b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableTest.java
index cff67fd..a7e7b8f 100644
--- a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableTest.java
+++ b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/AnimatedVectorDrawableTest.java
@@ -16,8 +16,7 @@
 
 package androidx.vectordrawable.graphics.drawable.tests;
 
-import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils
-        .saveVectorDrawableIntoPNG;
+import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils.saveVectorDrawableIntoPNG;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -41,11 +40,11 @@
 
 import androidx.annotation.DrawableRes;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.vectordrawable.graphics.drawable.Animatable2Compat.AnimationCallback;
 import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
 import androidx.vectordrawable.test.R;
diff --git a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
index cdefa4c..f378df2 100644
--- a/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
+++ b/graphics/drawable/animated/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
@@ -16,16 +16,15 @@
 
 package androidx.vectordrawable.graphics.drawable.tests;
 
-import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils
-        .saveVectorDrawableIntoPNG;
+import static androidx.vectordrawable.graphics.drawable.tests.DrawableUtils.saveVectorDrawableIntoPNG;
 
 import android.app.Activity;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.drawable.Drawable;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
 import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
diff --git a/graphics/drawable/static/build.gradle b/graphics/drawable/static/build.gradle
index e8e2b1d..2dc3d55 100644
--- a/graphics/drawable/static/build.gradle
+++ b/graphics/drawable/static/build.gradle
@@ -10,6 +10,8 @@
     api("androidx.annotation:annotation:1.0.0")
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
 }
diff --git a/graphics/drawable/static/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/VectorDrawableTest.java b/graphics/drawable/static/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/VectorDrawableTest.java
index 4ab9c6f..4e42e7b8 100644
--- a/graphics/drawable/static/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/VectorDrawableTest.java
+++ b/graphics/drawable/static/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/VectorDrawableTest.java
@@ -42,9 +42,9 @@
 import android.graphics.drawable.Drawable;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
 import androidx.vectordrawable.test.R;
 
@@ -239,7 +239,7 @@
         mBitmap = Bitmap.createBitmap(IMAGE_WIDTH, IMAGE_HEIGHT, ARGB_8888);
         mCanvas = new Canvas(mBitmap);
 
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mResources = mContext.getResources();
         mTheme = mContext.getTheme();
         mTheme.applyStyle(R.style.VectorDrawableTestTheme, true);
diff --git a/gridlayout/build.gradle b/gridlayout/build.gradle
index c1ba369..1acf0e3 100644
--- a/gridlayout/build.gradle
+++ b/gridlayout/build.gradle
@@ -9,6 +9,8 @@
 dependencies {
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/gridlayout/src/androidTest/java/androidx/gridlayout/widget/GridLayoutTest.java b/gridlayout/src/androidTest/java/androidx/gridlayout/widget/GridLayoutTest.java
index 6678909..888e61a 100644
--- a/gridlayout/src/androidTest/java/androidx/gridlayout/widget/GridLayoutTest.java
+++ b/gridlayout/src/androidTest/java/androidx/gridlayout/widget/GridLayoutTest.java
@@ -29,10 +29,10 @@
 import android.view.ViewGroup;
 
 import androidx.gridlayout.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/heifwriter/build.gradle b/heifwriter/build.gradle
index d7d1f58..a7193e0 100644
--- a/heifwriter/build.gradle
+++ b/heifwriter/build.gradle
@@ -15,6 +15,8 @@
 dependencies {
     api(project(":annotation"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java b/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
index ef9e598..daf6db4 100644
--- a/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
+++ b/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
@@ -19,7 +19,7 @@
 import static androidx.heifwriter.HeifWriter.INPUT_MODE_BITMAP;
 import static androidx.heifwriter.HeifWriter.INPUT_MODE_BUFFER;
 import static androidx.heifwriter.HeifWriter.INPUT_MODE_SURFACE;
-import static androidx.test.InstrumentationRegistry.getContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -43,9 +43,9 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.heifwriter.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.GrantPermissionRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -122,7 +122,8 @@
             InputStream inputStream = null;
             FileOutputStream outputStream = null;
             try {
-                inputStream = getContext().getResources().openRawResource(IMAGE_RESOURCES[i]);
+                inputStream = getApplicationContext()
+                        .getResources().openRawResource(IMAGE_RESOURCES[i]);
                 outputStream = new FileOutputStream(outputPath);
                 copy(inputStream, outputStream);
             } finally {
diff --git a/leanback/build.gradle b/leanback/build.gradle
index 1d4b834..525cb43 100644
--- a/leanback/build.gradle
+++ b/leanback/build.gradle
@@ -13,6 +13,8 @@
     api(project(":fragment"))
     api(project(":recyclerview"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/BackgroundManagerTest.java b/leanback/src/androidTest/java/androidx/leanback/app/BackgroundManagerTest.java
index 861cd3d..c0a48f0 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/BackgroundManagerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/BackgroundManagerTest.java
@@ -31,8 +31,8 @@
 import android.os.Bundle;
 
 import androidx.leanback.testutils.PollingCheck;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
index 8c644d2..fa05492 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/BrowseFragmentTest.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import android.app.Fragment;
 import android.app.Instrumentation;
 import android.content.Intent;
 import android.os.Build;
@@ -37,7 +38,6 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import android.app.Fragment;
 import androidx.leanback.testutils.PollingCheck;
 import androidx.leanback.widget.ArrayObjectAdapter;
 import androidx.leanback.widget.ItemBridgeAdapter;
@@ -46,10 +46,10 @@
 import androidx.leanback.widget.Row;
 import androidx.leanback.widget.RowPresenter;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
index ccc3ccc..72dc227 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/BrowseSupportFragmentTest.java
@@ -43,10 +43,10 @@
 import androidx.leanback.widget.Row;
 import androidx.leanback.widget.RowPresenter;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
index 2ff6634..0083f40 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
@@ -24,6 +24,7 @@
 import static org.junit.Assert.assertTrue;
 
 import android.animation.PropertyValuesHolder;
+import android.app.Fragment;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -37,7 +38,6 @@
 import android.view.KeyEvent;
 import android.view.View;
 
-import android.app.Fragment;
 import androidx.leanback.R;
 import androidx.leanback.graphics.FitWidthBitmapDrawable;
 import androidx.leanback.media.MediaPlayerGlue;
@@ -50,9 +50,9 @@
 import androidx.leanback.widget.ParallaxTarget;
 import androidx.leanback.widget.RecyclerViewParallax;
 import androidx.leanback.widget.VerticalGridView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
index 58b1ad1..cd7144d 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
@@ -47,9 +47,9 @@
 import androidx.leanback.widget.ParallaxTarget;
 import androidx.leanback.widget.RecyclerViewParallax;
 import androidx.leanback.widget.VerticalGridView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
index 4a8ff3b..57a5841 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTest.java
@@ -40,9 +40,9 @@
 import androidx.leanback.widget.VerticalGridView;
 import androidx.recyclerview.widget.DefaultItemAnimator;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTestBase.java
index b4c5fca..c043bb8 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepFragmentTestBase.java
@@ -28,7 +28,7 @@
 
 import androidx.leanback.R;
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
index 91f87c3..06fb3e4 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTest.java
@@ -37,9 +37,9 @@
 import androidx.leanback.widget.VerticalGridView;
 import androidx.recyclerview.widget.DefaultItemAnimator;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTestBase.java
index 8137d38..dd573a0 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/GuidedStepSupportFragmentTestBase.java
@@ -25,7 +25,7 @@
 
 import androidx.leanback.R;
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/HeadersFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/HeadersFragmentTest.java
index 4b9cd9c..74399dd 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/HeadersFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/HeadersFragmentTest.java
@@ -31,8 +31,8 @@
 import androidx.leanback.widget.ListRow;
 import androidx.leanback.widget.ListRowPresenter;
 import androidx.leanback.widget.VerticalGridView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/HeadersSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/HeadersSupportFragmentTest.java
index 74bb1bc..976bacf 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/HeadersSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/HeadersSupportFragmentTest.java
@@ -28,8 +28,8 @@
 import androidx.leanback.widget.ListRow;
 import androidx.leanback.widget.ListRowPresenter;
 import androidx.leanback.widget.VerticalGridView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/ListRowDataAdapterTest.java b/leanback/src/androidTest/java/androidx/leanback/app/ListRowDataAdapterTest.java
index 50af75f..81afadf 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/ListRowDataAdapterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/ListRowDataAdapterTest.java
@@ -27,9 +27,9 @@
 import androidx.leanback.widget.ObjectAdapter;
 import androidx.leanback.widget.PresenterSelector;
 import androidx.leanback.widget.SectionRow;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/PlaybackFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/PlaybackFragmentTest.java
index 308d131..8b8ce9a 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/PlaybackFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/PlaybackFragmentTest.java
@@ -45,11 +45,11 @@
 import androidx.leanback.widget.Row;
 import androidx.leanback.widget.RowPresenter;
 import androidx.leanback.widget.SparseArrayObjectAdapter;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/PlaybackSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/PlaybackSupportFragmentTest.java
index 77c32df..3f069d7 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/PlaybackSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/PlaybackSupportFragmentTest.java
@@ -42,11 +42,11 @@
 import androidx.leanback.widget.Row;
 import androidx.leanback.widget.RowPresenter;
 import androidx.leanback.widget.SparseArrayObjectAdapter;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/ProgressBarManagerTest.java b/leanback/src/androidTest/java/androidx/leanback/app/ProgressBarManagerTest.java
index 62a1d25..f4ee251 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/ProgressBarManagerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/ProgressBarManagerTest.java
@@ -23,8 +23,8 @@
 import android.widget.FrameLayout;
 
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
index 175c09e..f67ed12 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
@@ -26,6 +26,7 @@
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import android.app.Fragment;
 import android.graphics.Rect;
 import android.os.Build;
 import android.os.Bundle;
@@ -37,7 +38,6 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import android.app.Fragment;
 import androidx.leanback.test.R;
 import androidx.leanback.testutils.PollingCheck;
 import androidx.leanback.widget.ArrayObjectAdapter;
@@ -54,10 +54,10 @@
 import androidx.leanback.widget.RowPresenter;
 import androidx.leanback.widget.SinglePresenterSelector;
 import androidx.leanback.widget.VerticalGridView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
index b50f3a8..3e875cb 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
@@ -51,10 +51,10 @@
 import androidx.leanback.widget.RowPresenter;
 import androidx.leanback.widget.SinglePresenterSelector;
 import androidx.leanback.widget.VerticalGridView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
index 3f8c556..d26f69b 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
@@ -23,7 +23,7 @@
 import android.os.SystemClock;
 
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
index 75947d2..3346971 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
@@ -20,7 +20,7 @@
 import android.os.SystemClock;
 
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridFragmentTest.java
index e23203b..00058ab 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridFragmentTest.java
@@ -19,14 +19,14 @@
 
 package androidx.leanback.app;
 
+import android.app.Fragment;
 import android.os.Bundle;
 
-import android.app.Fragment;
 import androidx.leanback.widget.ArrayObjectAdapter;
 import androidx.leanback.widget.VerticalGridPresenter;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridSupportFragmentTest.java
index 44615b4..f940396 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/VerticalGridSupportFragmentTest.java
@@ -21,9 +21,9 @@
 import androidx.fragment.app.Fragment;
 import androidx.leanback.widget.ArrayObjectAdapter;
 import androidx.leanback.widget.VerticalGridPresenter;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/VideoFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/VideoFragmentTest.java
index 7b78824..8565c65 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/VideoFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/VideoFragmentTest.java
@@ -37,9 +37,9 @@
 import androidx.leanback.media.PlaybackGlueHost;
 import androidx.leanback.test.R;
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/VideoSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/VideoSupportFragmentTest.java
index 60a1fe7..5267b4c 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/VideoSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/VideoSupportFragmentTest.java
@@ -34,9 +34,9 @@
 import androidx.leanback.media.PlaybackGlueHost;
 import androidx.leanback.test.R;
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedDatePickerTest.java b/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedDatePickerTest.java
index 2db87e4..2b2eaf3 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedDatePickerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedDatePickerTest.java
@@ -30,10 +30,10 @@
 import androidx.leanback.widget.GuidedDatePickerAction;
 import androidx.leanback.widget.VerticalGridView;
 import androidx.leanback.widget.picker.DatePicker;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTest.java b/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTest.java
index bd64ca0..715a4e1 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/wizard/GuidedStepAttributesTest.java
@@ -25,10 +25,10 @@
 import androidx.leanback.test.R;
 import androidx.leanback.widget.GuidanceStylist;
 import androidx.leanback.widget.GuidedAction;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java b/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
index 9c01de2..1cbaa74 100644
--- a/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/graphics/CompositeDrawableTest.java
@@ -26,10 +26,10 @@
 import android.os.Build;
 
 import androidx.leanback.graphics.BoundsRule.ValueRule;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java b/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
index bd5ac81..68f0a1c 100644
--- a/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/graphics/FitWidthBitmapDrawableTest.java
@@ -26,10 +26,10 @@
 import android.graphics.Rect;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/MediaControllerAdapterTest.java b/leanback/src/androidTest/java/androidx/leanback/media/MediaControllerAdapterTest.java
index f72822e..732c42c 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/MediaControllerAdapterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/MediaControllerAdapterTest.java
@@ -16,8 +16,8 @@
 
 package androidx.leanback.media;
 
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -35,10 +35,10 @@
 import android.support.v4.media.session.PlaybackStateCompat;
 
 import androidx.leanback.widget.PlaybackControlsRow;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -70,7 +70,7 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mSession = new MediaSessionCompat(getContext(), SESSION_TAG);
+                mSession = new MediaSessionCompat(getApplicationContext(), SESSION_TAG);
                 mSession.setCallback(mCallback, mHandler);
                 mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_QUEUE_COMMANDS);
                 mControllerCompat = new MediaControllerCompat(mContext, mSession);
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/MediaPlayerGlueTest.java b/leanback/src/androidTest/java/androidx/leanback/media/MediaPlayerGlueTest.java
index 4f51b84..4b6d5c7 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/MediaPlayerGlueTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/MediaPlayerGlueTest.java
@@ -27,10 +27,10 @@
 import android.os.SystemClock;
 
 import androidx.leanback.testutils.PollingCheck;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
index 406e323..6ced4d8 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackBannerControlGlueTest.java
@@ -34,8 +34,8 @@
 import androidx.leanback.widget.PlaybackControlsRowPresenter;
 import androidx.leanback.widget.PlaybackRowPresenter;
 import androidx.leanback.widget.RowPresenter;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.mockito.Mockito;
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackControlGlueTest.java b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackControlGlueTest.java
index 45c84fa..68b7b7b 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackControlGlueTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackControlGlueTest.java
@@ -29,8 +29,8 @@
 import androidx.leanback.widget.PlaybackControlsRowPresenter;
 import androidx.leanback.widget.PlaybackRowPresenter;
 import androidx.leanback.widget.RowPresenter;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.mockito.Mockito;
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackGlueTest.java b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackGlueTest.java
index 91f0664..df5ff5d 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackGlueTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackGlueTest.java
@@ -27,9 +27,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
index b52cfb6..986c2fc 100644
--- a/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/media/PlaybackTransportControlGlueTest.java
@@ -36,8 +36,8 @@
 import androidx.leanback.widget.PlaybackRowPresenter;
 import androidx.leanback.widget.PlaybackTransportRowPresenter;
 import androidx.leanback.widget.RowPresenter;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.mockito.Mockito;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/BaseCardViewTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/BaseCardViewTest.java
index 0d4195d..8a7d02d 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/BaseCardViewTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/BaseCardViewTest.java
@@ -30,7 +30,7 @@
 
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 
 import org.junit.Test;
@@ -82,7 +82,7 @@
 
     @Test
     public void infoOver_InfoVisibleAlways() {
-        BaseCardView cardView = new BaseCardView(InstrumentationRegistry.getContext());
+        BaseCardView cardView = new BaseCardView(ApplicationProvider.getApplicationContext());
         View main = new View(cardView.getContext());
         main.setLayoutParams(createLayoutParams(VIEW_TYPE_MAIN, 500, 500));
         cardView.addView(main);
@@ -129,7 +129,7 @@
 
     @Test
     public void infoUnder_InfoVisibleAlways() {
-        BaseCardView cardView = new BaseCardView(InstrumentationRegistry.getContext());
+        BaseCardView cardView = new BaseCardView(ApplicationProvider.getApplicationContext());
         View main = new View(cardView.getContext());
         main.setLayoutParams(createLayoutParams(VIEW_TYPE_MAIN, 500, 500));
         cardView.addView(main);
@@ -176,7 +176,7 @@
 
     @Test
     public void infoUnder_InfoVisibleActivated() {
-        BaseCardView cardView = new BaseCardView(InstrumentationRegistry.getContext());
+        BaseCardView cardView = new BaseCardView(ApplicationProvider.getApplicationContext());
         View main = new View(cardView.getContext());
         main.setLayoutParams(createLayoutParams(VIEW_TYPE_MAIN, 500, 500));
         cardView.addView(main);
@@ -221,7 +221,7 @@
 
     @Test
     public void infoUnder_InfoVisibleSelected() {
-        final BaseCardView cardView = new BaseCardView(InstrumentationRegistry.getContext());
+        final BaseCardView cardView = new BaseCardView(ApplicationProvider.getApplicationContext());
         View main = new View(cardView.getContext());
         main.setLayoutParams(createLayoutParams(VIEW_TYPE_MAIN, 500, 500));
         cardView.addView(main);
@@ -262,7 +262,7 @@
 
     @Test
     public void infoOver_InfoVisibleSelected() {
-        final BaseCardView cardView = new BaseCardView(InstrumentationRegistry.getContext());
+        final BaseCardView cardView = new BaseCardView(ApplicationProvider.getApplicationContext());
         View main = new View(cardView.getContext());
         main.setLayoutParams(createLayoutParams(VIEW_TYPE_MAIN, 500, 500));
         cardView.addView(main);
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
index d4c0e39..1d64d90 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ControlBarTest.java
@@ -26,9 +26,10 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -42,7 +43,7 @@
 
     @Test
     public void defaultFocus() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         final ControlBar bar = new ControlBar(context, null);
         final TextView v1 = new Button(context);
         bar.addView(v1, 100, 100);
@@ -63,7 +64,7 @@
 
     @Test
     public void persistFocus() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         final LinearLayout rootView = new LinearLayout(context);
         final ControlBar bar = new ControlBar(context, null);
         rootView.addView(bar, 800, 100);
@@ -105,7 +106,7 @@
 
     @Test
     public void getFocusables() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         final LinearLayout rootView = new LinearLayout(context);
         final ControlBar bar = new ControlBar(context, null);
         rootView.addView(bar, 800, 100);
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetPrefetchTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetPrefetchTest.java
index d2ab42e..c42831d 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetPrefetchTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetPrefetchTest.java
@@ -14,9 +14,9 @@
 import android.view.ViewGroup;
 
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,7 +28,7 @@
 public class GridWidgetPrefetchTest {
 
     private Context getContext() {
-        return InstrumentationRegistry.getContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     private void layout(View view, int width, int height) {
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
index aa1f44d..e11f3b11 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/GridWidgetTest.java
@@ -53,11 +53,11 @@
 import androidx.recyclerview.widget.DefaultItemAnimator;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/GuidedActionStylistTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/GuidedActionStylistTest.java
index d7941ff..591f484 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/GuidedActionStylistTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/GuidedActionStylistTest.java
@@ -26,10 +26,10 @@
 import android.widget.FrameLayout;
 
 import androidx.leanback.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ImageCardViewTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ImageCardViewTest.java
index 8ff5450..65cfa89 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ImageCardViewTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ImageCardViewTest.java
@@ -33,8 +33,8 @@
 import androidx.leanback.R;
 import androidx.leanback.app.TestActivity;
 import androidx.leanback.testutils.PollingCheck;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
index 44927ed..0a1eec9 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ItemBridgeAdapterTest.java
@@ -27,7 +27,7 @@
 
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 
 import org.junit.Before;
@@ -81,7 +81,7 @@
         mAdapter.setItems(populateData(), null);
         mItemBridgeAdapter.setAdapter(mAdapter);
 
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mRecyclerView = new RecyclerView(context);
         mRecyclerView.setItemViewCacheSize(0);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(context,
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ListRowPresenterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ListRowPresenterTest.java
index bb1f9fd..cb8a2fa1 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ListRowPresenterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ListRowPresenterTest.java
@@ -31,9 +31,9 @@
 
 import androidx.core.view.ViewCompat;
 import androidx.leanback.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/MediaNowPlayingViewTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/MediaNowPlayingViewTest.java
index 94319b9..ff1338d 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/MediaNowPlayingViewTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/MediaNowPlayingViewTest.java
@@ -17,9 +17,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -36,7 +36,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
index 33a10a5..abd89d2 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ObjectAdapterTest.java
@@ -34,8 +34,8 @@
 import androidx.annotation.Nullable;
 import androidx.leanback.R;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/PagingIndicatorTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/PagingIndicatorTest.java
index 9179488..98f81f9 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/PagingIndicatorTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/PagingIndicatorTest.java
@@ -17,9 +17,9 @@
 
 import static org.junit.Assert.assertEquals;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -35,7 +35,7 @@
 
     @Before
     public void setup() throws Exception {
-        mIndicator = new PagingIndicator(InstrumentationRegistry.getTargetContext());
+        mIndicator = new PagingIndicator(ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatEffectTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatEffectTest.java
index 7f92b1db..3114d8e 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatEffectTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatEffectTest.java
@@ -25,8 +25,8 @@
 
 import android.util.Property;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatTest.java
index 20fc885..5033831 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxFloatTest.java
@@ -21,8 +21,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntEffectTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntEffectTest.java
index 6dc7045..1eac513 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntEffectTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntEffectTest.java
@@ -22,8 +22,8 @@
 
 import android.util.Property;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntTest.java
index 2b5181f..aebffbc 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ParallaxIntTest.java
@@ -18,8 +18,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
index 84df047..0a395f5 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/PlaybackTransportRowPresenterTest.java
@@ -38,8 +38,8 @@
 import androidx.leanback.media.PlaybackTransportControlGlue;
 import androidx.leanback.media.PlayerAdapter;
 import androidx.leanback.widget.PlaybackSeekDataProvider.ResultCallback;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/PresenterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/PresenterTest.java
index 8cf4f19..cf03798 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/PresenterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/PresenterTest.java
@@ -29,9 +29,9 @@
 
 import androidx.leanback.R;
 import androidx.leanback.app.HeadersFragment;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -44,7 +44,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ShadowOverlayContainerTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ShadowOverlayContainerTest.java
index 6c30390..280095f 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ShadowOverlayContainerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ShadowOverlayContainerTest.java
@@ -24,9 +24,9 @@
 import android.widget.FrameLayout;
 import android.widget.TextView;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -39,7 +39,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/SingleRowTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/SingleRowTest.java
index b040efe..16db165 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/SingleRowTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/SingleRowTest.java
@@ -22,8 +22,8 @@
 import static org.mockito.Mockito.verify;
 
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/StaggeredGridDefaultTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/StaggeredGridDefaultTest.java
index d0f4333..3c04e3e 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/StaggeredGridDefaultTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/StaggeredGridDefaultTest.java
@@ -17,8 +17,8 @@
 
 import static org.junit.Assert.assertEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/ThumbsBarTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/ThumbsBarTest.java
index b954f6a..1bee7ac 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/ThumbsBarTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/ThumbsBarTest.java
@@ -24,10 +24,10 @@
 import android.view.View;
 
 import androidx.leanback.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/TitleViewAdapterTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/TitleViewAdapterTest.java
index 0e4942e..59fdc3f 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/TitleViewAdapterTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/TitleViewAdapterTest.java
@@ -22,9 +22,9 @@
 import android.view.View;
 import android.widget.LinearLayout;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -64,7 +64,7 @@
 
     @Test
     public void customTitle() {
-        CustomTitle t = new CustomTitle(InstrumentationRegistry.getTargetContext(), null);
+        CustomTitle t = new CustomTitle(ApplicationProvider.getApplicationContext(), null);
         TitleViewAdapter adapter = t.getTitleViewAdapter();
         adapter.setTitle("title");
         adapter.setBadgeDrawable(new GradientDrawable());
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/picker/DatePickerTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/picker/DatePickerTest.java
index d5488b8..5ac11bd 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/picker/DatePickerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/picker/DatePickerTest.java
@@ -29,10 +29,11 @@
 import android.view.ViewGroup;
 
 import androidx.leanback.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -62,7 +63,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     public void initActivity(Intent intent) throws Throwable {
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/picker/PinPickerTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/picker/PinPickerTest.java
index 61628bd..9788337 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/picker/PinPickerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/picker/PinPickerTest.java
@@ -17,10 +17,10 @@
 package androidx.leanback.widget.picker;
 
 
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
 import static androidx.test.espresso.Espresso.onView;
 import static androidx.test.espresso.action.ViewActions.pressKey;
 import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -32,9 +32,9 @@
 import androidx.leanback.test.R;
 import androidx.leanback.testutils.PollingCheck;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/leanback/src/androidTest/java/androidx/leanback/widget/picker/TimePickerTest.java b/leanback/src/androidTest/java/androidx/leanback/widget/picker/TimePickerTest.java
index 2a43202..ce591e1 100644
--- a/leanback/src/androidTest/java/androidx/leanback/widget/picker/TimePickerTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/widget/picker/TimePickerTest.java
@@ -27,10 +27,11 @@
 import android.view.ViewGroup;
 
 import androidx.leanback.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -58,7 +59,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     public void initActivity(Intent intent) throws Throwable {
diff --git a/lifecycle/extensions/build.gradle b/lifecycle/extensions/build.gradle
index 331b150..0a04c44 100644
--- a/lifecycle/extensions/build.gradle
+++ b/lifecycle/extensions/build.gradle
@@ -44,6 +44,8 @@
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentLifecycleInActivityTest.java b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentLifecycleInActivityTest.java
index f82611e..a44ec6f 100644
--- a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentLifecycleInActivityTest.java
+++ b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentLifecycleInActivityTest.java
@@ -33,8 +33,8 @@
 
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.activity.FragmentLifecycleActivity;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
diff --git a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentOperationsLifecycleTest.java b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentOperationsLifecycleTest.java
index 26682ff..f95bdcb 100644
--- a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentOperationsLifecycleTest.java
+++ b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/FragmentOperationsLifecycleTest.java
@@ -33,9 +33,9 @@
 import androidx.lifecycle.activity.EmptyActivity;
 import androidx.lifecycle.extensions.test.R;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTest.java b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTest.java
index dbab932..a286455 100644
--- a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTest.java
+++ b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTest.java
@@ -31,11 +31,12 @@
 import androidx.lifecycle.viewmodeltest.TestViewModel;
 import androidx.lifecycle.viewmodeltest.ViewModelActivity;
 import androidx.lifecycle.viewmodeltest.ViewModelActivity.ViewModelFragment;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -109,7 +110,7 @@
     public void testGetApplication() {
         TestViewModel activityModel = mActivityRule.getActivity().activityModel;
         assertThat(activityModel.getApplication(),
-                is(InstrumentationRegistry.getTargetContext().getApplicationContext()));
+                is(ApplicationProvider.getApplicationContext().getApplicationContext()));
     }
 
     @Test
diff --git a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTestInTransaction.java b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTestInTransaction.java
index 1ebaf8a..b91f77f 100644
--- a/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTestInTransaction.java
+++ b/lifecycle/extensions/src/androidTest/java/androidx/lifecycle/ViewModelTestInTransaction.java
@@ -26,9 +26,9 @@
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.viewmodeltest.TestViewModel;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/lifecycle/integration-tests/testapp/build.gradle b/lifecycle/integration-tests/testapp/build.gradle
index c6cef65..eaca25f 100644
--- a/lifecycle/integration-tests/testapp/build.gradle
+++ b/lifecycle/integration-tests/testapp/build.gradle
@@ -44,6 +44,8 @@
     annotationProcessor(project(":lifecycle:lifecycle-compiler"))
 
     androidTestAnnotationProcessor(project(":lifecycle:lifecycle-compiler"))
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/FragmentInBackStackLifecycleTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/FragmentInBackStackLifecycleTest.java
index db36be5..f4b0549 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/FragmentInBackStackLifecycleTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/FragmentInBackStackLifecycleTest.java
@@ -37,9 +37,9 @@
 import androidx.lifecycle.Lifecycle.Event;
 import androidx.lifecycle.testapp.EmptyActivity;
 import androidx.lifecycle.testapp.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/LiveDataOnSaveInstanceStateTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/LiveDataOnSaveInstanceStateTest.java
index 4ea1431..ee28d32 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/LiveDataOnSaveInstanceStateTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/LiveDataOnSaveInstanceStateTest.java
@@ -27,11 +27,11 @@
 import androidx.lifecycle.testapp.CollectingSupportActivity;
 import androidx.lifecycle.testapp.CollectingSupportFragment;
 import androidx.lifecycle.testapp.NavigationDialogActivity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/PartiallyCoveredActivityTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/PartiallyCoveredActivityTest.java
index 5735a8b..f296583 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/PartiallyCoveredActivityTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/PartiallyCoveredActivityTest.java
@@ -46,8 +46,9 @@
 import androidx.lifecycle.testapp.CollectingSupportFragment;
 import androidx.lifecycle.testapp.NavigationDialogActivity;
 import androidx.lifecycle.testapp.TestEvent;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
@@ -97,7 +98,7 @@
                 @Override
                 protected Intent getActivityIntent() {
                     // helps with less flaky API 16 tests
-                    Intent intent = new Intent(InstrumentationRegistry.getTargetContext(),
+                    Intent intent = new Intent(ApplicationProvider.getApplicationContext(),
                             CollectingSupportActivity.class);
                     intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ProcessOwnerTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ProcessOwnerTest.java
index 865398e..5a73b6d 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ProcessOwnerTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ProcessOwnerTest.java
@@ -36,10 +36,11 @@
 import androidx.lifecycle.testapp.NavigationTestActivityFirst;
 import androidx.lifecycle.testapp.NavigationTestActivitySecond;
 import androidx.lifecycle.testapp.NonSupportActivity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Rule;
@@ -184,7 +185,7 @@
         };
         addProcessObserver(collectingObserver);
         events.clear();
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.startActivity(new Intent(activity, NavigationDialogActivity.class)
                 .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
         waitTillResumed(dialogActivity, activityTestRule);
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SimpleAppFullLifecycleTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SimpleAppFullLifecycleTest.java
index 18bc289..5cd2100 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SimpleAppFullLifecycleTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SimpleAppFullLifecycleTest.java
@@ -29,9 +29,9 @@
 import androidx.lifecycle.Lifecycle.State;
 import androidx.lifecycle.testapp.SimpleAppLifecycleTestActivity;
 import androidx.lifecycle.testapp.SimpleAppLifecycleTestActivity.TestEventType;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java
index 4567696..bbb2292 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java
@@ -16,7 +16,7 @@
 
 package androidx.lifecycle;
 
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -31,10 +31,10 @@
 
 import androidx.lifecycle.Lifecycle.Event;
 import androidx.lifecycle.testapp.LifecycleTestActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.UiThreadTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/TestUtils.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/TestUtils.java
index 86a2984..6085cb1 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/TestUtils.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/TestUtils.java
@@ -38,7 +38,7 @@
 
 import androidx.core.util.Pair;
 import androidx.lifecycle.testapp.TestEvent;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import java.util.ArrayList;
diff --git a/lifecycle/livedata-core/ktx/build.gradle b/lifecycle/livedata-core/ktx/build.gradle
index c10a1a7..8aec136 100644
--- a/lifecycle/livedata-core/ktx/build.gradle
+++ b/lifecycle/livedata-core/ktx/build.gradle
@@ -38,6 +38,8 @@
     testImplementation(project(":arch:core-testing"))
     testImplementation(JUNIT)
     testImplementation(TRUTH)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(TEST_RULES)
 }
diff --git a/lifecycle/livedata/ktx/build.gradle b/lifecycle/livedata/ktx/build.gradle
index 5a8879f..ae36720 100644
--- a/lifecycle/livedata/ktx/build.gradle
+++ b/lifecycle/livedata/ktx/build.gradle
@@ -39,6 +39,8 @@
     testImplementation(project(":arch:core-testing"))
     testImplementation(JUNIT)
     testImplementation(TRUTH)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(TEST_RULES)
 }
diff --git a/lifecycle/runtime/build.gradle b/lifecycle/runtime/build.gradle
index 4b2e283b..fc45423 100644
--- a/lifecycle/runtime/build.gradle
+++ b/lifecycle/runtime/build.gradle
@@ -27,6 +27,8 @@
     testImplementation(MOCKITO_CORE)
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/lifecycle/runtime/src/androidTest/java/androidx/lifecycle/MissingClassTest.java b/lifecycle/runtime/src/androidTest/java/androidx/lifecycle/MissingClassTest.java
index c96d5a4..c927792 100644
--- a/lifecycle/runtime/src/androidTest/java/androidx/lifecycle/MissingClassTest.java
+++ b/lifecycle/runtime/src/androidTest/java/androidx/lifecycle/MissingClassTest.java
@@ -19,9 +19,9 @@
 import android.app.PictureInPictureParams;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/lifecycle/service/build.gradle b/lifecycle/service/build.gradle
index 5fafdd9..382b322 100644
--- a/lifecycle/service/build.gradle
+++ b/lifecycle/service/build.gradle
@@ -32,6 +32,8 @@
 dependencies {
     api(project(":lifecycle:lifecycle-runtime"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(SUPPORT_CORE_UTILS, libs.support_exclude_config)
 }
diff --git a/lifecycle/service/src/androidTest/java/androidx/lifecycle/ServiceLifecycleTest.java b/lifecycle/service/src/androidTest/java/androidx/lifecycle/ServiceLifecycleTest.java
index c56dd0f..1cab987 100644
--- a/lifecycle/service/src/androidTest/java/androidx/lifecycle/ServiceLifecycleTest.java
+++ b/lifecycle/service/src/androidTest/java/androidx/lifecycle/ServiceLifecycleTest.java
@@ -35,9 +35,10 @@
 import androidx.lifecycle.Lifecycle.Event;
 import androidx.lifecycle.service.TestService;
 import androidx.localbroadcastmanager.content.LocalBroadcastManager;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -65,7 +66,7 @@
 
     @Before
     public void setUp() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mServiceIntent = new Intent(context, TestService.class);
         LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context);
         IntentFilter intentFilter = new IntentFilter();
@@ -81,7 +82,7 @@
 
     @After
     public void tearDown() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context);
         localBroadcastManager.unregisterReceiver(mLogger);
         mLogger = null;
@@ -90,7 +91,7 @@
 
     @Test
     public void testUnboundedService() throws TimeoutException, InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.startService(mServiceIntent);
         awaitAndAssertEvents(ON_CREATE, ON_START);
         context.stopService(mServiceIntent);
@@ -101,13 +102,13 @@
     public void testBoundedService() throws TimeoutException, InterruptedException {
         ServiceConnection connection = bindToService();
         awaitAndAssertEvents(ON_CREATE, ON_START);
-        InstrumentationRegistry.getTargetContext().unbindService(connection);
+        ApplicationProvider.getApplicationContext().unbindService(connection);
         awaitAndAssertEvents(ON_CREATE, ON_START, ON_STOP, ON_DESTROY);
     }
 
     @Test
     public void testStartBindUnbindStop() throws InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.startService(mServiceIntent);
         awaitAndAssertEvents(ON_CREATE, ON_START);
 
@@ -129,7 +130,7 @@
 
     @Test
     public void testStartBindStopUnbind() throws InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.startService(mServiceIntent);
         awaitAndAssertEvents(ON_CREATE, ON_START);
 
@@ -152,7 +153,7 @@
 
     @Test
     public void testBindStartUnbindStop() throws InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         ServiceConnection connection = bindToService();
         awaitAndAssertEvents(ON_CREATE, ON_START);
 
@@ -176,7 +177,7 @@
 
     @Test
     public void testBindStartStopUnbind() throws InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         ServiceConnection connection = bindToService();
         awaitAndAssertEvents(ON_CREATE, ON_START);
 
@@ -199,7 +200,7 @@
 
     // can't use ServiceTestRule because it proxies connection, so we can't use unbindService method
     private ServiceConnection bindToService() throws InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         final CountDownLatch latch = new CountDownLatch(1);
         ServiceConnection connection = new ServiceConnection() {
             @Override
diff --git a/lifecycle/viewmodel-fragment/build.gradle b/lifecycle/viewmodel-fragment/build.gradle
index 8ccc673..afa0ffe 100644
--- a/lifecycle/viewmodel-fragment/build.gradle
+++ b/lifecycle/viewmodel-fragment/build.gradle
@@ -44,6 +44,8 @@
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(JUNIT)
     androidTestImplementation(TEST_RULES)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/lifecycle/viewmodel-fragment/src/androidTest/java/androidx/lifecycle/savedstate/fragment/ViewModelsWithStateTests.java b/lifecycle/viewmodel-fragment/src/androidTest/java/androidx/lifecycle/savedstate/fragment/ViewModelsWithStateTests.java
index 7cc572e..f439b27 100644
--- a/lifecycle/viewmodel-fragment/src/androidTest/java/androidx/lifecycle/savedstate/fragment/ViewModelsWithStateTests.java
+++ b/lifecycle/viewmodel-fragment/src/androidTest/java/androidx/lifecycle/savedstate/fragment/ViewModelsWithStateTests.java
@@ -31,8 +31,8 @@
 import androidx.lifecycle.ViewModelProvider;
 import androidx.lifecycle.ViewModelsWithStateFactories;
 import androidx.lifecycle.savedstate.fragment.activity.FakingSavedStateActivity;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
diff --git a/lifecycle/viewmodel-savedstate/build.gradle b/lifecycle/viewmodel-savedstate/build.gradle
index 811ff25..a80c116 100644
--- a/lifecycle/viewmodel-savedstate/build.gradle
+++ b/lifecycle/viewmodel-savedstate/build.gradle
@@ -31,6 +31,8 @@
 
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     testImplementation(project(":arch:core-testing"))
diff --git a/lifecycle/viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/SavedStateAccessorHolderTest.java b/lifecycle/viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/SavedStateAccessorHolderTest.java
index 9599321..0a0e52f 100644
--- a/lifecycle/viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/SavedStateAccessorHolderTest.java
+++ b/lifecycle/viewmodel-savedstate/src/androidTest/java/androidx/lifecycle/SavedStateAccessorHolderTest.java
@@ -23,8 +23,8 @@
 import android.os.Parcel;
 
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/lifecycle/viewmodel/ktx/build.gradle b/lifecycle/viewmodel/ktx/build.gradle
index 104043a..667e159 100644
--- a/lifecycle/viewmodel/ktx/build.gradle
+++ b/lifecycle/viewmodel/ktx/build.gradle
@@ -37,10 +37,14 @@
     api(KOTLIN_COROUTINES)
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(TRUTH)
 
     androidTestImplementation(TRUTH)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/loader/build.gradle b/loader/build.gradle
index 8674f82..481dfb2 100644
--- a/loader/build.gradle
+++ b/loader/build.gradle
@@ -12,6 +12,8 @@
     api(ARCH_LIFECYCLE_LIVEDATA_CORE, libs.exclude_annotations_transitive)
     api(ARCH_LIFECYCLE_VIEWMODEL, libs.exclude_annotations_transitive)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/loader/src/androidTest/java/androidx/loader/app/LoaderInfoTest.java b/loader/src/androidTest/java/androidx/loader/app/LoaderInfoTest.java
index ece2cd7..0ec59a7 100644
--- a/loader/src/androidTest/java/androidx/loader/app/LoaderInfoTest.java
+++ b/loader/src/androidTest/java/androidx/loader/app/LoaderInfoTest.java
@@ -29,10 +29,10 @@
 import androidx.loader.app.test.DelayLoader;
 import androidx.loader.app.test.DummyLoaderCallbacks;
 import androidx.loader.content.Loader;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/loader/src/androidTest/java/androidx/loader/app/LoaderManagerTest.java b/loader/src/androidTest/java/androidx/loader/app/LoaderManagerTest.java
index 3b0e16c..a047a00 100644
--- a/loader/src/androidTest/java/androidx/loader/app/LoaderManagerTest.java
+++ b/loader/src/androidTest/java/androidx/loader/app/LoaderManagerTest.java
@@ -33,10 +33,10 @@
 import androidx.loader.app.test.DelayLoaderCallbacks;
 import androidx.loader.app.test.DummyLoaderCallbacks;
 import androidx.loader.content.Loader;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/loader/src/androidTest/java/androidx/loader/content/AsyncTaskLoaderTest.java b/loader/src/androidTest/java/androidx/loader/content/AsyncTaskLoaderTest.java
index 4881c83..ad1238e 100644
--- a/loader/src/androidTest/java/androidx/loader/content/AsyncTaskLoaderTest.java
+++ b/loader/src/androidTest/java/androidx/loader/content/AsyncTaskLoaderTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -91,7 +91,7 @@
         int mGetExecutorCallCount = 0;
 
         TestAsyncTaskLoader(int latchCount) {
-            super(InstrumentationRegistry.getContext());
+            super(ApplicationProvider.getApplicationContext());
             mLoadInBackgoundLatch = new CountDownLatch(latchCount);
         }
 
diff --git a/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java b/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
index eac3922..6892c23 100644
--- a/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
+++ b/loader/src/androidTest/java/androidx/loader/content/ModernAsyncTaskTest.java
@@ -21,9 +21,9 @@
 import android.os.AsyncTask;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media/build.gradle b/media/build.gradle
index eea99bf..e1271d4 100644
--- a/media/build.gradle
+++ b/media/build.gradle
@@ -11,6 +11,8 @@
     api(project(":core"))
     api("androidx.versionedparcelable:versionedparcelable:1.1.0-alpha01")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation project(':internal-testutils')
diff --git a/media/version-compat-tests/current/client/build.gradle b/media/version-compat-tests/current/client/build.gradle
index ead6f7e..db03902 100644
--- a/media/version-compat-tests/current/client/build.gradle
+++ b/media/version-compat-tests/current/client/build.gradle
@@ -24,6 +24,8 @@
     androidTestImplementation(project(":media"))
     androidTestImplementation(project(":support-media-compat-test-lib"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
index f0691eb..fe9d555 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
@@ -24,9 +24,9 @@
 import android.os.Build;
 
 import androidx.media.AudioAttributesCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
index 16bd883..411f14d 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
@@ -19,8 +19,7 @@
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_FOR_ERROR;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_ERROR;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .CUSTOM_ACTION_SEND_PROGRESS_UPDATE;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_PROGRESS_UPDATE;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_RESULT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.EXTRAS_KEY;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.EXTRAS_VALUE;
@@ -28,8 +27,7 @@
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_CHILDREN_DELAYED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_INCLUDE_METADATA;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_INVALID;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ROOT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_METADATA;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.NOTIFY_CHILDREN_CHANGED;
@@ -37,8 +35,7 @@
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEARCH_QUERY_FOR_ERROR;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEARCH_QUERY_FOR_NO_RESULT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_ITEM_LOADED;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SET_SESSION_TOKEN;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.TEST_KEY_1;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.TEST_KEY_2;
@@ -53,9 +50,9 @@
 import static android.support.mediacompat.testlib.util.IntentUtil.SERVICE_PACKAGE_NAME;
 import static android.support.mediacompat.testlib.util.IntentUtil.callMediaBrowserServiceMethod;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -78,10 +75,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.media.MediaBrowserServiceCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -334,7 +331,8 @@
 
         // Test MediaBrowserServiceCompat.notifyChildrenChanged()
         mSubscriptionCallback.reset(1);
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
 
@@ -344,7 +342,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(WAIT_TIME_FOR_NO_RESPONSE_MS);
 
         // onChildrenLoaded should not be called.
@@ -381,7 +380,8 @@
 
             // Test MediaBrowserServiceCompat.notifyChildrenChanged()
             mSubscriptionCallback.reset(page + 1);
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             mSubscriptionCallback.await(TIME_OUT_MS);
             assertEquals(page + 1, mSubscriptionCallback.mChildrenLoadedWithOptionCount);
         }
@@ -392,7 +392,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -456,7 +457,8 @@
         assertEquals(0, mSubscriptionCallback.mChildrenLoadedCount);
 
         callMediaBrowserServiceMethod(
-                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED, getContext());
+                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
     }
@@ -525,7 +527,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -575,7 +578,8 @@
                     subscriptionCallbacks.get(orderOfRemovingCallbacks[i]));
 
             // Make StubMediaBrowserServiceCompat notify that the children are changed.
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             try {
                 Thread.sleep(SLEEP_MS);
             } catch (InterruptedException e) {
@@ -619,7 +623,8 @@
             assertNull(mItemCallback.mLastMediaItem);
 
             mItemCallback.reset();
-            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(),
+                    getApplicationContext());
             mItemCallback.mWaitLock.wait(TIME_OUT_MS);
             assertNotNull(mItemCallback.mLastMediaItem);
             assertEquals(MEDIA_ID_CHILDREN_DELAYED, mItemCallback.mLastMediaItem.getMediaId());
@@ -707,7 +712,8 @@
             mCustomActionCallback.reset();
             Bundle data1 = new Bundle();
             data1.putString(TEST_KEY_2, TEST_VALUE_2);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data1, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data1,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
@@ -720,7 +726,8 @@
             mCustomActionCallback.reset();
             Bundle data2 = new Bundle();
             data2.putString(TEST_KEY_3, TEST_VALUE_3);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data2, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data2,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
@@ -733,7 +740,8 @@
             Bundle resultData = new Bundle();
             resultData.putString(TEST_KEY_4, TEST_VALUE_4);
             mCustomActionCallback.reset();
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, resultData, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, resultData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnResultCalled);
@@ -762,7 +770,8 @@
             Bundle progressUpdateData = new Bundle();
             progressUpdateData.putString(TEST_KEY_2, TEST_VALUE_2);
             callMediaBrowserServiceMethod(
-                    CUSTOM_ACTION_SEND_PROGRESS_UPDATE, progressUpdateData, getContext());
+                    CUSTOM_ACTION_SEND_PROGRESS_UPDATE, progressUpdateData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
             assertEquals(CUSTOM_ACTION, mCustomActionCallback.mAction);
@@ -774,7 +783,8 @@
             mCustomActionCallback.reset();
             Bundle errorData = new Bundle();
             errorData.putString(TEST_KEY_3, TEST_VALUE_3);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_ERROR, errorData, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_ERROR, errorData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mCustomActionCallback.mOnErrorCalled);
             assertEquals(CUSTOM_ACTION, mCustomActionCallback.mAction);
@@ -798,8 +808,9 @@
 
         // These calls should not make any exceptions.
         callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, new Bundle(),
-                getContext());
-        callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, new Bundle(), getContext());
+                getApplicationContext());
+        callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, new Bundle(),
+                getApplicationContext());
         Thread.sleep(WAIT_TIME_FOR_NO_RESPONSE_MS);
     }
 
@@ -842,7 +853,7 @@
             callback.mWaitLock.wait(WAIT_TIME_FOR_NO_RESPONSE_MS);
             assertEquals(0, callback.mConnectedCount);
 
-            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getApplicationContext());
             callback.mWaitLock.wait(TIME_OUT_MS);
             assertEquals(1, callback.mConnectedCount);
 
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserTest.java
index 61d2dcd..fe57150 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserTest.java
@@ -21,21 +21,19 @@
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_CHILDREN;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_CHILDREN_DELAYED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_INVALID;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ROOT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.NOTIFY_CHILDREN_CHANGED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_ITEM_LOADED;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SET_SESSION_TOKEN;
 import static android.support.mediacompat.testlib.VersionConstants.KEY_SERVICE_VERSION;
 import static android.support.mediacompat.testlib.util.IntentUtil.SERVICE_PACKAGE_NAME;
 import static android.support.mediacompat.testlib.util.IntentUtil.callMediaBrowserServiceMethod;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -55,11 +53,11 @@
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -313,7 +311,8 @@
 
         // Test MediaBrowserService.notifyChildrenChanged()
         mSubscriptionCallback.reset(1);
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
 
@@ -323,7 +322,8 @@
 
         // After unsubscribing, make StubMediaBrowserService notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(WAIT_TIME_FOR_NO_RESPONSE_MS);
 
         // onChildrenLoaded should not be called.
@@ -362,7 +362,8 @@
 
             // Test MediaBrowserService.notifyChildrenChanged()
             mSubscriptionCallback.reset(page + 1);
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             mSubscriptionCallback.await(TIME_OUT_MS);
             assertEquals(page + 1, mSubscriptionCallback.mChildrenLoadedWithOptionCount);
         }
@@ -373,7 +374,8 @@
 
         // After unsubscribing, make StubMediaBrowserService notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -395,7 +397,8 @@
         assertEquals(0, mSubscriptionCallback.mChildrenLoadedCount);
 
         callMediaBrowserServiceMethod(
-                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED, getContext());
+                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
     }
@@ -466,7 +469,8 @@
 
         // After unsubscribing, make StubMediaBrowserService notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -517,7 +521,8 @@
                     subscriptionCallbacks.get(orderOfRemovingCallbacks[i]));
 
             // Make StubMediaBrowserService notify that the children are changed.
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             try {
                 Thread.sleep(SLEEP_MS);
             } catch (InterruptedException e) {
@@ -561,7 +566,8 @@
             assertNull(mItemCallback.mLastMediaItem);
 
             mItemCallback.reset();
-            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(),
+                    getApplicationContext());
             mItemCallback.mWaitLock.wait(TIME_OUT_MS);
             assertNotNull(mItemCallback.mLastMediaItem);
             assertEquals(MEDIA_ID_CHILDREN_DELAYED, mItemCallback.mLastMediaItem.getMediaId());
@@ -623,7 +629,7 @@
             callback.mWaitLock.wait(WAIT_TIME_FOR_NO_RESPONSE_MS);
             assertEquals(0, callback.mConnectedCount);
 
-            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getApplicationContext());
             callback.mWaitLock.wait(TIME_OUT_MS);
             assertEquals(1, callback.mConnectedCount);
         }
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
index 5ce6554..71b8185 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
@@ -52,10 +52,9 @@
 import static android.support.mediacompat.testlib.util.TestUtil.assertBundleEquals;
 import static android.support.v4.media.MediaMetadataCompat.METADATA_KEY_RATING;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static androidx.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -86,10 +85,10 @@
 import android.util.Log;
 
 import androidx.media.VolumeProviderCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -152,7 +151,7 @@
             }
         }
         mSessionToken = mMediaBrowser.getSessionToken();
-        mController = new MediaControllerCompat(getTargetContext(), mSessionToken);
+        mController = new MediaControllerCompat(getApplicationContext(), mSessionToken);
         mController.registerCallback(mMediaControllerCallback, mHandler);
     }
 
@@ -188,7 +187,7 @@
 
             Bundle extras = new Bundle();
             extras.putString(TEST_KEY, TEST_VALUE);
-            callMediaSessionMethod(SET_EXTRAS, extras, getContext());
+            callMediaSessionMethod(SET_EXTRAS, extras, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnExtraChangedCalled);
 
@@ -206,7 +205,7 @@
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
 
-            callMediaSessionMethod(SET_FLAGS, TEST_FLAGS, getContext());
+            callMediaSessionMethod(SET_FLAGS, TEST_FLAGS, getApplicationContext());
             new PollingCheck(TIME_OUT_MS) {
                 @Override
                 public boolean check() {
@@ -235,7 +234,7 @@
                     .putRating(METADATA_KEY_RATING, rating)
                     .build();
 
-            callMediaSessionMethod(SET_METADATA, metadata, getContext());
+            callMediaSessionMethod(SET_METADATA, metadata, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnMetadataChangedCalled);
 
@@ -271,7 +270,7 @@
                     .putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmapSmall)
                     .build();
 
-            callMediaSessionMethod(SET_METADATA, metadata, getContext());
+            callMediaSessionMethod(SET_METADATA, metadata, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnMetadataChangedCalled);
 
@@ -304,7 +303,7 @@
                             .setErrorMessage(TEST_ERROR_CODE, TEST_ERROR_MSG)
                             .build();
 
-            callMediaSessionMethod(SET_PLAYBACK_STATE, state, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_STATE, state, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnPlaybackStateChangedCalled);
 
@@ -341,11 +340,11 @@
             queue.add(item1);
             queue.add(item2);
 
-            callMediaSessionMethod(SET_QUEUE, queue, getContext());
+            callMediaSessionMethod(SET_QUEUE, queue, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueChangedCalled);
 
-            callMediaSessionMethod(SET_QUEUE_TITLE, TEST_VALUE, getContext());
+            callMediaSessionMethod(SET_QUEUE_TITLE, TEST_VALUE, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueTitleChangedCalled);
 
@@ -356,11 +355,11 @@
             assertQueueEquals(queue, mController.getQueue());
 
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_QUEUE, null, getContext());
+            callMediaSessionMethod(SET_QUEUE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueChangedCalled);
 
-            callMediaSessionMethod(SET_QUEUE_TITLE, null, getContext());
+            callMediaSessionMethod(SET_QUEUE_TITLE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueTitleChangedCalled);
 
@@ -381,9 +380,9 @@
             Intent intent = new Intent("MEDIA_SESSION_ACTION");
             final int requestCode = 555;
             final PendingIntent pi =
-                    PendingIntent.getActivity(getTargetContext(), requestCode, intent, 0);
+                    PendingIntent.getActivity(getApplicationContext(), requestCode, intent, 0);
 
-            callMediaSessionMethod(SET_SESSION_ACTIVITY, pi, getContext());
+            callMediaSessionMethod(SET_SESSION_ACTIVITY, pi, getApplicationContext());
             new PollingCheck(TIME_OUT_MS) {
                 @Override
                 public boolean check() {
@@ -401,14 +400,14 @@
     public void testSetCaptioningEnabled() throws Exception {
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_CAPTIONING_ENABLED, true, getContext());
+            callMediaSessionMethod(SET_CAPTIONING_ENABLED, true, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnCaptioningEnabledChangedCalled);
             assertEquals(true, mMediaControllerCallback.mCaptioningEnabled);
             assertEquals(true, mController.isCaptioningEnabled());
 
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_CAPTIONING_ENABLED, false, getContext());
+            callMediaSessionMethod(SET_CAPTIONING_ENABLED, false, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnCaptioningEnabledChangedCalled);
             assertEquals(false, mMediaControllerCallback.mCaptioningEnabled);
@@ -425,7 +424,7 @@
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
             final int repeatMode = PlaybackStateCompat.REPEAT_MODE_ALL;
-            callMediaSessionMethod(SET_REPEAT_MODE, repeatMode, getContext());
+            callMediaSessionMethod(SET_REPEAT_MODE, repeatMode, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnRepeatModeChangedCalled);
             assertEquals(repeatMode, mMediaControllerCallback.mRepeatMode);
@@ -442,7 +441,7 @@
         final int shuffleMode = PlaybackStateCompat.SHUFFLE_MODE_ALL;
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_SHUFFLE_MODE, shuffleMode, getContext());
+            callMediaSessionMethod(SET_SHUFFLE_MODE, shuffleMode, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnShuffleModeChangedCalled);
             assertEquals(shuffleMode, mMediaControllerCallback.mShuffleMode);
@@ -465,7 +464,7 @@
             Bundle extras = new Bundle();
             extras.putString(TEST_KEY, TEST_VALUE);
             arguments.putBundle("extras", extras);
-            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getContext());
+            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getApplicationContext());
 
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnSessionEventCalled);
@@ -482,7 +481,7 @@
     public void testRelease() throws Exception {
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(RELEASE, null, getContext());
+            callMediaSessionMethod(RELEASE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnSessionDestroyedCalled);
         }
@@ -503,7 +502,7 @@
                     TEST_MAX_VOLUME,
                     TEST_CURRENT_VOLUME);
 
-            callMediaSessionMethod(SET_PLAYBACK_TO_REMOTE, volumeInfo, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_TO_REMOTE, volumeInfo, getApplicationContext());
             MediaControllerCompat.PlaybackInfo info = null;
             for (int i = 0; i < MAX_AUDIO_INFO_CHANGED_CALLBACK_COUNT; ++i) {
                 mMediaControllerCallback.mOnAudioInfoChangedCalled = false;
@@ -514,7 +513,7 @@
                         && info.getMaxVolume() == TEST_MAX_VOLUME
                         && info.getVolumeControl() == VolumeProviderCompat.VOLUME_CONTROL_FIXED
                         && info.getPlaybackType()
-                                == MediaControllerCompat.PlaybackInfo.PLAYBACK_TYPE_REMOTE) {
+                        == MediaControllerCompat.PlaybackInfo.PLAYBACK_TYPE_REMOTE) {
                     break;
                 }
             }
@@ -536,7 +535,8 @@
 
             // test setPlaybackToLocal
             mMediaControllerCallback.mOnAudioInfoChangedCalled = false;
-            callMediaSessionMethod(SET_PLAYBACK_TO_LOCAL, AudioManager.STREAM_RING, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_TO_LOCAL, AudioManager.STREAM_RING,
+                    getApplicationContext());
 
             // In API 21 and 22, onAudioInfoChanged is not called.
             if (Build.VERSION.SDK_INT == 21 || Build.VERSION.SDK_INT == 22) {
@@ -559,7 +559,8 @@
         assertEquals("Default rating type of a session must be RatingCompat.RATING_NONE",
                 RatingCompat.RATING_NONE, mController.getRatingType());
 
-        callMediaSessionMethod(SET_RATING_TYPE, RatingCompat.RATING_5_STARS, getContext());
+        callMediaSessionMethod(SET_RATING_TYPE, RatingCompat.RATING_5_STARS,
+                getApplicationContext());
         new PollingCheck(TIME_OUT_MS) {
             @Override
             public boolean check() {
@@ -674,7 +675,7 @@
                 new MediaSessionCompat.QueueItem(desc, 1 /* flags */);
         final MediaBrowserCompat.MediaItem mediaItem =
                 new MediaBrowserCompat.MediaItem(desc, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
-        final PlaybackStateCompat state =  new PlaybackStateCompat.Builder()
+        final PlaybackStateCompat state = new PlaybackStateCompat.Builder()
                 .setBufferedPosition(1000)
                 .build();
 
@@ -688,7 +689,7 @@
 
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getContext());
+            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mMediaControllerCallback.mOnSessionEventCalled);
@@ -723,7 +724,7 @@
         mController.registerCallback(callback, mHandler);
         mController.registerCallback(callback, mHandler); // it must be ignored
 
-        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getContext());
+        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getApplicationContext());
         assertFalse(latch.await(TIME_OUT_MS, TimeUnit.MILLISECONDS));
         assertEquals(1, latch.getCount());
     }
@@ -738,7 +739,7 @@
         mController.unregisterCallback(callback);
         mController.unregisterCallback(callback); // it must be ignored
 
-        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getContext());
+        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getApplicationContext());
         assertFalse(latch.await(TIME_OUT_MS, TimeUnit.MILLISECONDS));
     }
 
@@ -752,7 +753,7 @@
         mController.registerCallback(callback1, mHandler);
         mController.unregisterCallback(callback2); // it must be ignored
 
-        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getContext());
+        callMediaSessionMethod(SET_EXTRAS, new Bundle(), getApplicationContext());
         assertTrue(latch1.await(TIME_OUT_MS, TimeUnit.MILLISECONDS));
         assertFalse(latch2.await(TIME_OUT_MS, TimeUnit.MILLISECONDS));
     }
diff --git a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
index 811f179..6cb6393 100644
--- a/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
+++ b/media/version-compat-tests/current/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
@@ -25,8 +25,8 @@
 import android.support.v4.media.session.MediaSessionCompat;
 import android.support.v4.media.session.PlaybackStateCompat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media/version-compat-tests/current/service/build.gradle b/media/version-compat-tests/current/service/build.gradle
index 382917d..4974aaf 100644
--- a/media/version-compat-tests/current/service/build.gradle
+++ b/media/version-compat-tests/current/service/build.gradle
@@ -24,6 +24,8 @@
     androidTestImplementation(project(":media"))
     androidTestImplementation(project(":support-media-compat-test-lib"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
index 55dce08..0105d38 100644
--- a/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
+++ b/media/version-compat-tests/current/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
@@ -16,10 +16,8 @@
 package android.support.mediacompat.service;
 
 import static android.support.mediacompat.testlib.MediaControllerConstants.ADD_QUEUE_ITEM;
-import static android.support.mediacompat.testlib.MediaControllerConstants
-        .ADD_QUEUE_ITEM_WITH_CUSTOM_PARCELABLE;
-import static android.support.mediacompat.testlib.MediaControllerConstants
-        .ADD_QUEUE_ITEM_WITH_INDEX;
+import static android.support.mediacompat.testlib.MediaControllerConstants.ADD_QUEUE_ITEM_WITH_CUSTOM_PARCELABLE;
+import static android.support.mediacompat.testlib.MediaControllerConstants.ADD_QUEUE_ITEM_WITH_INDEX;
 import static android.support.mediacompat.testlib.MediaControllerConstants.ADJUST_VOLUME;
 import static android.support.mediacompat.testlib.MediaControllerConstants.DISPATCH_MEDIA_BUTTON;
 import static android.support.mediacompat.testlib.MediaControllerConstants.FAST_FORWARD;
@@ -37,8 +35,7 @@
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEEK_TO;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_COMMAND;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_CUSTOM_ACTION;
-import static android.support.mediacompat.testlib.MediaControllerConstants
-        .SEND_CUSTOM_ACTION_PARCELABLE;
+import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_CUSTOM_ACTION_PARCELABLE;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_CAPTIONING_ENABLED;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_RATING;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_REPEAT_MODE;
@@ -66,10 +63,9 @@
 import static android.support.v4.media.session.MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS;
 
 import static androidx.media.MediaSessionManager.RemoteUserInfo.LEGACY_CONTROLLER;
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static androidx.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -109,11 +105,11 @@
 import androidx.media.MediaSessionManager.RemoteUserInfo;
 import androidx.media.VolumeProviderCompat;
 import androidx.media.test.lib.CustomParcelable;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -158,8 +154,9 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
-                mSession = new MediaSessionCompat(getTargetContext(), TEST_SESSION_TAG);
+                mAudioManager = (AudioManager) getApplicationContext().getSystemService(
+                        Context.AUDIO_SERVICE);
+                mSession = new MediaSessionCompat(getApplicationContext(), TEST_SESSION_TAG);
                 mSession.setCallback(mCallback, mHandler);
             }
         });
@@ -188,7 +185,8 @@
                 controller.getFlags());
         assertNull(errorMsg, controller.getExtras());
         assertNull(errorMsg, controller.getMetadata());
-        assertEquals(errorMsg, getContext().getPackageName(), controller.getPackageName());
+        assertEquals(errorMsg, getApplicationContext().getPackageName(),
+                controller.getPackageName());
         assertNull(errorMsg, controller.getPlaybackState());
         assertNull(errorMsg, controller.getQueue());
         assertNull(errorMsg, controller.getQueueTitle());
@@ -227,7 +225,7 @@
         mCallback.setExpectedCallerPackageName(getExpectedPackageNameForSelf());
         mSession.setCallback(mCallback, new Handler(Looper.getMainLooper()));
         MediaSessionCompat session = MediaSessionCompat.fromMediaSession(
-                getContext(), mSession.getMediaSession());
+                getApplicationContext(), mSession.getMediaSession());
         assertEquals(session.getSessionToken(), mSession.getSessionToken());
 
         session.getController().getTransportControls().play();
@@ -242,12 +240,12 @@
         mCallback.reset(1, getExpectedPackageNameForSelf());
         mSession.setCallback(mCallback, new Handler(Looper.getMainLooper()));
         MediaSessionCompat session = MediaSessionCompat.fromMediaSession(
-                getContext(), mSession.getMediaSession());
+                getApplicationContext(), mSession.getMediaSession());
         assertEquals(session.getSessionToken(), mSession.getSessionToken());
 
         MediaControllerCompat controller1 = session.getController();
         MediaControllerCompat controller2 =
-                new MediaControllerCompat(getContext(), session.getSessionToken());
+                new MediaControllerCompat(getApplicationContext(), session.getSessionToken());
 
         controller1.getTransportControls().stop();
         mCallback.await(TIME_OUT_MS);
@@ -353,7 +351,8 @@
         // Compare the result with MediaController.getPlaybackState().
         if (Build.VERSION.SDK_INT >= 21) {
             MediaController controller = new MediaController(
-                    getContext(), (MediaSession.Token) mSession.getSessionToken().getToken());
+                    getApplicationContext(),
+                    (MediaSession.Token) mSession.getSessionToken().getToken());
             PlaybackState state = controller.getPlaybackState();
             assertEquals(state.getLastPositionUpdateTime(), stateOut.getLastPositionUpdateTime(),
                     updateTimeTolerance);
@@ -371,7 +370,8 @@
         mSession.setActive(true);
         mCallback.reset(1);
         mSession.setCallback(null);
-        callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                mSession.getSessionToken());
         assertFalse(mCallback.await(WAIT_TIME_FOR_NO_RESPONSE_MS));
         assertEquals("Callback shouldn't be called.", 0, mCallback.mOnPlayCalledCount);
     }
@@ -390,7 +390,8 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+                callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                        mSession.getSessionToken());
                 mSession.setCallback(null);
             }
         });
@@ -411,7 +412,7 @@
         ResultReceiver receiver = new ResultReceiver(null /* handler */);
         arguments.putParcelable("resultReceiver", receiver);
         callMediaControllerMethod(
-                SEND_COMMAND, arguments, getContext(), mSession.getSessionToken());
+                SEND_COMMAND, arguments, getApplicationContext(), mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCommandCalled);
@@ -434,7 +435,7 @@
         arguments.putString("command", TEST_COMMAND);
         // No result receiver.
         callMediaControllerMethod(
-                SEND_COMMAND, arguments, getContext(), mSession.getSessionToken());
+                SEND_COMMAND, arguments, getApplicationContext(), mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCommandCalled);
@@ -455,7 +456,8 @@
 
         mCallback.reset(1);
         callMediaControllerMethod(
-                ADD_QUEUE_ITEM, itemDescription1, getContext(), mSession.getSessionToken());
+                ADD_QUEUE_ITEM, itemDescription1, getApplicationContext(),
+                mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnAddQueueItemCalled);
@@ -468,7 +470,8 @@
         arguments.putParcelable("description", itemDescription2);
         arguments.putInt("index", 0);
         callMediaControllerMethod(
-                ADD_QUEUE_ITEM_WITH_INDEX, arguments, getContext(), mSession.getSessionToken());
+                ADD_QUEUE_ITEM_WITH_INDEX, arguments, getApplicationContext(),
+                mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnAddQueueItemAtCalled);
@@ -478,7 +481,8 @@
 
         mCallback.reset(1);
         callMediaControllerMethod(
-                REMOVE_QUEUE_ITEM, itemDescription1, getContext(), mSession.getSessionToken());
+                REMOVE_QUEUE_ITEM, itemDescription1, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnRemoveQueueItemCalled);
         assertEquals(TEST_MEDIA_ID_1, mCallback.mQueueDescription.getMediaId());
@@ -489,47 +493,51 @@
     @SmallTest
     public void testTransportControlsAndMediaSessionCallback() throws Exception {
         mCallback.reset(1);
-        callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertEquals(1, mCallback.mOnPlayCalledCount);
 
         mCallback.reset(1);
-        callTransportControlsMethod(PAUSE, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PAUSE, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPauseCalled);
 
         mCallback.reset(1);
-        callTransportControlsMethod(STOP, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(STOP, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnStopCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                FAST_FORWARD, null, getContext(), mSession.getSessionToken());
+                FAST_FORWARD, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnFastForwardCalled);
 
         mCallback.reset(1);
-        callTransportControlsMethod(REWIND, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(REWIND, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnRewindCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SKIP_TO_PREVIOUS, null, getContext(), mSession.getSessionToken());
+                SKIP_TO_PREVIOUS, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToPreviousCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SKIP_TO_NEXT, null, getContext(), mSession.getSessionToken());
+                SKIP_TO_NEXT, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToNextCalled);
 
         mCallback.reset(1);
         final long seekPosition = 1000;
         callTransportControlsMethod(
-                SEEK_TO, seekPosition, getContext(), mSession.getSessionToken());
+                SEEK_TO, seekPosition, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSeekToCalled);
         assertEquals(seekPosition, mCallback.mSeekPosition);
@@ -538,7 +546,7 @@
         final RatingCompat rating =
                 RatingCompat.newStarRating(RatingCompat.RATING_5_STARS, 3f);
         callTransportControlsMethod(
-                SET_RATING, rating, getContext(), mSession.getSessionToken());
+                SET_RATING, rating, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetRatingCalled);
         assertEquals(rating.getRatingStyle(), mCallback.mRating.getRatingStyle());
@@ -551,7 +559,7 @@
         arguments.putString("mediaId", TEST_MEDIA_ID_1);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_MEDIA_ID, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_MEDIA_ID, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromMediaIdCalled);
         assertEquals(TEST_MEDIA_ID_1, mCallback.mMediaId);
@@ -563,7 +571,7 @@
         arguments.putString("query", query);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_SEARCH, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_SEARCH, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromSearchCalled);
         assertEquals(query, mCallback.mQuery);
@@ -575,7 +583,7 @@
         arguments.putParcelable("uri", uri);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_URI, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_URI, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromUriCalled);
         assertEquals(uri, mCallback.mUri);
@@ -587,7 +595,7 @@
         arguments.putString("action", action);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                SEND_CUSTOM_ACTION, arguments, getContext(), mSession.getSessionToken());
+                SEND_CUSTOM_ACTION, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCustomActionCalled);
         assertEquals(action, mCallback.mAction);
@@ -605,7 +613,7 @@
         callTransportControlsMethod(
                 SEND_CUSTOM_ACTION_PARCELABLE,
                 arguments,
-                getContext(),
+                getApplicationContext(),
                 mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCustomActionCalled);
@@ -615,14 +623,15 @@
         mCallback.reset(1);
         final long queueItemId = 1000;
         callTransportControlsMethod(
-                SKIP_TO_QUEUE_ITEM, queueItemId, getContext(), mSession.getSessionToken());
+                SKIP_TO_QUEUE_ITEM, queueItemId, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToQueueItemCalled);
         assertEquals(queueItemId, mCallback.mQueueItemId);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                PREPARE, null, getContext(), mSession.getSessionToken());
+                PREPARE, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareCalled);
 
@@ -631,7 +640,8 @@
         arguments.putString("mediaId", TEST_MEDIA_ID_2);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_MEDIA_ID, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_MEDIA_ID, arguments, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromMediaIdCalled);
         assertEquals(TEST_MEDIA_ID_2, mCallback.mMediaId);
@@ -642,7 +652,8 @@
         arguments.putString("query", query);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_SEARCH, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_SEARCH, arguments, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromSearchCalled);
         assertEquals(query, mCallback.mQuery);
@@ -653,7 +664,7 @@
         arguments.putParcelable("uri", uri);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_URI, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_URI, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromUriCalled);
         assertEquals(uri, mCallback.mUri);
@@ -661,7 +672,8 @@
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SET_CAPTIONING_ENABLED, ENABLED, getContext(), mSession.getSessionToken());
+                SET_CAPTIONING_ENABLED, ENABLED, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetCaptioningEnabledCalled);
         assertEquals(ENABLED, mCallback.mCaptioningEnabled);
@@ -669,7 +681,7 @@
         mCallback.reset(1);
         final int repeatMode = PlaybackStateCompat.REPEAT_MODE_ALL;
         callTransportControlsMethod(
-                SET_REPEAT_MODE, repeatMode, getContext(), mSession.getSessionToken());
+                SET_REPEAT_MODE, repeatMode, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetRepeatModeCalled);
         assertEquals(repeatMode, mCallback.mRepeatMode);
@@ -677,7 +689,7 @@
         mCallback.reset(1);
         final int shuffleMode = PlaybackStateCompat.SHUFFLE_MODE_ALL;
         callTransportControlsMethod(
-                SET_SHUFFLE_MODE, shuffleMode, getContext(), mSession.getSessionToken());
+                SET_SHUFFLE_MODE, shuffleMode, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetShuffleModeCalled);
         assertEquals(shuffleMode, mCallback.mShuffleMode);
@@ -688,15 +700,17 @@
      */
     @Test
     @MediumTest
-    @FlakyTest (bugId = 111811728)
+    @FlakyTest(bugId = 111811728)
     public void testCallbackOnMediaButtonEvent() throws Exception {
         mSession.setActive(true);
 
         final long waitTimeForNoResponse = 100L;
 
         Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON)
-                .setComponent(new ComponentName(getContext(), getContext().getClass()));
-        PendingIntent pi = PendingIntent.getBroadcast(getContext(), 0, mediaButtonIntent, 0);
+                .setComponent(new ComponentName(getApplicationContext(),
+                        getApplicationContext().getClass()));
+        PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent,
+                0);
         mSession.setMediaButtonReceiver(pi);
 
         // Set state to STATE_PLAYING to get higher priority.
@@ -844,7 +858,7 @@
         final int targetVolume = originalVolume == minVolume
                 ? originalVolume + 1 : originalVolume - 1;
 
-        callMediaControllerMethod(SET_VOLUME_TO, targetVolume, getContext(),
+        callMediaControllerMethod(SET_VOLUME_TO, targetVolume, getApplicationContext(),
                 mSession.getSessionToken());
         new PollingCheck(TIME_OUT_MS) {
             @Override
@@ -881,7 +895,7 @@
                 ? AudioManager.ADJUST_RAISE : AudioManager.ADJUST_LOWER;
         final int targetVolume = originalVolume + direction;
 
-        callMediaControllerMethod(ADJUST_VOLUME, direction, getContext(),
+        callMediaControllerMethod(ADJUST_VOLUME, direction, getApplicationContext(),
                 mSession.getSessionToken());
         new PollingCheck(TIME_OUT_MS) {
             @Override
@@ -931,18 +945,18 @@
         synchronized (mWaitLock) {
             // test setVolumeTo
             callMediaControllerMethod(SET_VOLUME_TO,
-                    7 /* Target volume */, getContext(), mSession.getSessionToken());
+                    7 /* Target volume */, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(7, vp.getCurrentVolume());
 
             // test adjustVolume
             callMediaControllerMethod(ADJUST_VOLUME,
-                    AudioManager.ADJUST_LOWER, getContext(), mSession.getSessionToken());
+                    AudioManager.ADJUST_LOWER, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(6, vp.getCurrentVolume());
 
             callMediaControllerMethod(ADJUST_VOLUME,
-                    AudioManager.ADJUST_RAISE, getContext(), mSession.getSessionToken());
+                    AudioManager.ADJUST_RAISE, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(7, vp.getCurrentVolume());
         }
@@ -964,7 +978,7 @@
                 new MediaSessionCompat.QueueItem(desc, 1 /* flags */);
         final MediaBrowserCompat.MediaItem mediaItem =
                 new MediaBrowserCompat.MediaItem(desc, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
-        final PlaybackStateCompat state =  new PlaybackStateCompat.Builder()
+        final PlaybackStateCompat state = new PlaybackStateCompat.Builder()
                 .setBufferedPosition(1000)
                 .build();
 
@@ -976,7 +990,7 @@
 
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                SEND_CUSTOM_ACTION, arguments, getContext(), mSession.getSessionToken());
+                SEND_CUSTOM_ACTION, arguments, getApplicationContext(), mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCustomActionCalled);
@@ -1011,7 +1025,7 @@
         // The client app will call addQueueItem() with MediaDescriptionCompat which includes
         // CustomParcelable created with given testValue.
         callMediaControllerMethod(ADD_QUEUE_ITEM_WITH_CUSTOM_PARCELABLE,
-                testValue, getContext(), mSession.getSessionToken());
+                testValue, getApplicationContext(), mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnAddQueueItemCalled);
@@ -1042,17 +1056,18 @@
         KeyEvent down = new KeyEvent(
                 currentTimeMs, currentTimeMs, KeyEvent.ACTION_DOWN, keyCode, 0);
         callMediaControllerMethod(
-                DISPATCH_MEDIA_BUTTON, down, getContext(), mSession.getSessionToken());
+                DISPATCH_MEDIA_BUTTON, down, getApplicationContext(), mSession.getSessionToken());
         if (isLongPress) {
             KeyEvent longPress = new KeyEvent(
                     currentTimeMs, System.currentTimeMillis(), KeyEvent.ACTION_DOWN, keyCode, 1);
             callMediaControllerMethod(
-                    DISPATCH_MEDIA_BUTTON, longPress, getContext(), mSession.getSessionToken());
+                    DISPATCH_MEDIA_BUTTON, longPress, getApplicationContext(),
+                    mSession.getSessionToken());
         }
         KeyEvent up = new KeyEvent(
                 currentTimeMs, System.currentTimeMillis(), KeyEvent.ACTION_UP, keyCode, 0);
         callMediaControllerMethod(
-                DISPATCH_MEDIA_BUTTON, up, getContext(), mSession.getSessionToken());
+                DISPATCH_MEDIA_BUTTON, up, getApplicationContext(), mSession.getSessionToken());
     }
 
     private String getExpectedPackageNameForSelf() {
diff --git a/media/version-compat-tests/previous/client/build.gradle b/media/version-compat-tests/previous/client/build.gradle
index 25c4322..57de515 100644
--- a/media/version-compat-tests/previous/client/build.gradle
+++ b/media/version-compat-tests/previous/client/build.gradle
@@ -24,5 +24,7 @@
     androidTestImplementation project(':support-media-compat-test-lib')
     androidTestImplementation "com.android.support:support-media-compat:27.1.0"
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
index 371a18f..1095d89 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/AudioAttributesCompatTest.java
@@ -24,9 +24,9 @@
 import android.os.Build;
 import android.support.v4.media.AudioAttributesCompat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
index dc66589..ffabc62 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaBrowserCompatTest.java
@@ -19,24 +19,21 @@
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_FOR_ERROR;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_ERROR;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .CUSTOM_ACTION_SEND_PROGRESS_UPDATE;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_PROGRESS_UPDATE;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.CUSTOM_ACTION_SEND_RESULT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.EXTRAS_KEY;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.EXTRAS_VALUE;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_CHILDREN;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_CHILDREN_DELAYED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_INVALID;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ON_LOAD_ITEM_NOT_IMPLEMENTED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.MEDIA_ID_ROOT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.NOTIFY_CHILDREN_CHANGED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEARCH_QUERY;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEARCH_QUERY_FOR_ERROR;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEARCH_QUERY_FOR_NO_RESULT;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_ITEM_LOADED;
-import static android.support.mediacompat.testlib.MediaBrowserConstants
-        .SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
+import static android.support.mediacompat.testlib.MediaBrowserConstants.SEND_DELAYED_NOTIFY_CHILDREN_CHANGED;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.SET_SESSION_TOKEN;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.TEST_KEY_1;
 import static android.support.mediacompat.testlib.MediaBrowserConstants.TEST_KEY_2;
@@ -50,9 +47,9 @@
 import static android.support.mediacompat.testlib.util.IntentUtil.SERVICE_PACKAGE_NAME;
 import static android.support.mediacompat.testlib.util.IntentUtil.callMediaBrowserServiceMethod;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -72,10 +69,10 @@
 import android.support.v4.media.MediaDescriptionCompat;
 import android.util.Log;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -328,7 +325,8 @@
 
         // Test MediaBrowserServiceCompat.notifyChildrenChanged()
         mSubscriptionCallback.reset(1);
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
 
@@ -338,7 +336,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         mSubscriptionCallback.await(WAIT_TIME_FOR_NO_RESPONSE_MS);
 
         // onChildrenLoaded should not be called.
@@ -375,7 +374,8 @@
 
             // Test MediaBrowserServiceCompat.notifyChildrenChanged()
             mSubscriptionCallback.reset(page + 1);
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             mSubscriptionCallback.await(TIME_OUT_MS);
             assertEquals(page + 1, mSubscriptionCallback.mChildrenLoadedWithOptionCount);
         }
@@ -386,7 +386,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -407,7 +408,8 @@
         assertEquals(0, mSubscriptionCallback.mChildrenLoadedCount);
 
         callMediaBrowserServiceMethod(
-                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED, getContext());
+                SEND_DELAYED_NOTIFY_CHILDREN_CHANGED, MEDIA_ID_CHILDREN_DELAYED,
+                getApplicationContext());
         mSubscriptionCallback.await(TIME_OUT_MS);
         assertEquals(1, mSubscriptionCallback.mChildrenLoadedCount);
     }
@@ -476,7 +478,8 @@
 
         // After unsubscribing, make StubMediaBrowserServiceCompat notify that the children are
         // changed.
-        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+        callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                getApplicationContext());
         try {
             Thread.sleep(SLEEP_MS);
         } catch (InterruptedException e) {
@@ -526,7 +529,8 @@
                     subscriptionCallbacks.get(orderOfRemovingCallbacks[i]));
 
             // Make StubMediaBrowserServiceCompat notify that the children are changed.
-            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT, getContext());
+            callMediaBrowserServiceMethod(NOTIFY_CHILDREN_CHANGED, MEDIA_ID_ROOT,
+                    getApplicationContext());
             try {
                 Thread.sleep(SLEEP_MS);
             } catch (InterruptedException e) {
@@ -570,7 +574,8 @@
             assertNull(mItemCallback.mLastMediaItem);
 
             mItemCallback.reset();
-            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SEND_DELAYED_ITEM_LOADED, new Bundle(),
+                    getApplicationContext());
             mItemCallback.mWaitLock.wait(TIME_OUT_MS);
             assertNotNull(mItemCallback.mLastMediaItem);
             assertEquals(MEDIA_ID_CHILDREN_DELAYED, mItemCallback.mLastMediaItem.getMediaId());
@@ -658,7 +663,8 @@
             mCustomActionCallback.reset();
             Bundle data1 = new Bundle();
             data1.putString(TEST_KEY_2, TEST_VALUE_2);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data1, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data1,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
@@ -671,7 +677,8 @@
             mCustomActionCallback.reset();
             Bundle data2 = new Bundle();
             data2.putString(TEST_KEY_3, TEST_VALUE_3);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data2, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, data2,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
@@ -684,7 +691,8 @@
             Bundle resultData = new Bundle();
             resultData.putString(TEST_KEY_4, TEST_VALUE_4);
             mCustomActionCallback.reset();
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, resultData, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, resultData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
 
             assertTrue(mCustomActionCallback.mOnResultCalled);
@@ -713,7 +721,8 @@
             Bundle progressUpdateData = new Bundle();
             progressUpdateData.putString(TEST_KEY_2, TEST_VALUE_2);
             callMediaBrowserServiceMethod(
-                    CUSTOM_ACTION_SEND_PROGRESS_UPDATE, progressUpdateData, getContext());
+                    CUSTOM_ACTION_SEND_PROGRESS_UPDATE, progressUpdateData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mCustomActionCallback.mOnProgressUpdateCalled);
             assertEquals(CUSTOM_ACTION, mCustomActionCallback.mAction);
@@ -725,7 +734,8 @@
             mCustomActionCallback.reset();
             Bundle errorData = new Bundle();
             errorData.putString(TEST_KEY_3, TEST_VALUE_3);
-            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_ERROR, errorData, getContext());
+            callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_ERROR, errorData,
+                    getApplicationContext());
             mCustomActionCallback.mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mCustomActionCallback.mOnErrorCalled);
             assertEquals(CUSTOM_ACTION, mCustomActionCallback.mAction);
@@ -749,8 +759,9 @@
 
         // These calls should not make any exceptions.
         callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_PROGRESS_UPDATE, new Bundle(),
-                getContext());
-        callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, new Bundle(), getContext());
+                getApplicationContext());
+        callMediaBrowserServiceMethod(CUSTOM_ACTION_SEND_RESULT, new Bundle(),
+                getApplicationContext());
         Thread.sleep(WAIT_TIME_FOR_NO_RESPONSE_MS);
     }
 
@@ -793,7 +804,7 @@
             callback.mWaitLock.wait(WAIT_TIME_FOR_NO_RESPONSE_MS);
             assertEquals(0, callback.mConnectedCount);
 
-            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getContext());
+            callMediaBrowserServiceMethod(SET_SESSION_TOKEN, new Bundle(), getApplicationContext());
             callback.mWaitLock.wait(TIME_OUT_MS);
             assertEquals(1, callback.mConnectedCount);
 
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
index 0d47cef..7f6badb 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/MediaControllerCompatCallbackTest.java
@@ -52,10 +52,9 @@
 import static android.support.mediacompat.testlib.util.TestUtil.assertBundleEquals;
 import static android.support.v4.media.MediaMetadataCompat.METADATA_KEY_RATING;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static androidx.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -86,9 +85,9 @@
 import android.support.v4.media.session.PlaybackStateCompat;
 import android.util.Log;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -149,7 +148,7 @@
             }
         }
         mSessionToken = mMediaBrowser.getSessionToken();
-        mController = new MediaControllerCompat(getTargetContext(), mSessionToken);
+        mController = new MediaControllerCompat(getApplicationContext(), mSessionToken);
         mController.registerCallback(mMediaControllerCallback, mHandler);
     }
 
@@ -185,7 +184,7 @@
 
             Bundle extras = new Bundle();
             extras.putString(TEST_KEY, TEST_VALUE);
-            callMediaSessionMethod(SET_EXTRAS, extras, getContext());
+            callMediaSessionMethod(SET_EXTRAS, extras, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnExtraChangedCalled);
 
@@ -203,7 +202,7 @@
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
 
-            callMediaSessionMethod(SET_FLAGS, TEST_FLAGS, getContext());
+            callMediaSessionMethod(SET_FLAGS, TEST_FLAGS, getApplicationContext());
             new PollingCheck(TIME_OUT_MS) {
                 @Override
                 public boolean check() {
@@ -232,7 +231,7 @@
                     .putRating(METADATA_KEY_RATING, rating)
                     .build();
 
-            callMediaSessionMethod(SET_METADATA, metadata, getContext());
+            callMediaSessionMethod(SET_METADATA, metadata, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnMetadataChangedCalled);
 
@@ -268,7 +267,7 @@
                     .putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmapSmall)
                     .build();
 
-            callMediaSessionMethod(SET_METADATA, metadata, getContext());
+            callMediaSessionMethod(SET_METADATA, metadata, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnMetadataChangedCalled);
 
@@ -301,7 +300,7 @@
                             .setErrorMessage(TEST_ERROR_CODE, TEST_ERROR_MSG)
                             .build();
 
-            callMediaSessionMethod(SET_PLAYBACK_STATE, state, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_STATE, state, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnPlaybackStateChangedCalled);
 
@@ -338,11 +337,11 @@
             queue.add(item1);
             queue.add(item2);
 
-            callMediaSessionMethod(SET_QUEUE, queue, getContext());
+            callMediaSessionMethod(SET_QUEUE, queue, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueChangedCalled);
 
-            callMediaSessionMethod(SET_QUEUE_TITLE, TEST_VALUE, getContext());
+            callMediaSessionMethod(SET_QUEUE_TITLE, TEST_VALUE, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueTitleChangedCalled);
 
@@ -353,11 +352,11 @@
             assertQueueEquals(queue, mController.getQueue());
 
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_QUEUE, null, getContext());
+            callMediaSessionMethod(SET_QUEUE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueChangedCalled);
 
-            callMediaSessionMethod(SET_QUEUE_TITLE, null, getContext());
+            callMediaSessionMethod(SET_QUEUE_TITLE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnQueueTitleChangedCalled);
 
@@ -378,9 +377,9 @@
             Intent intent = new Intent("MEDIA_SESSION_ACTION");
             final int requestCode = 555;
             final PendingIntent pi =
-                    PendingIntent.getActivity(getTargetContext(), requestCode, intent, 0);
+                    PendingIntent.getActivity(getApplicationContext(), requestCode, intent, 0);
 
-            callMediaSessionMethod(SET_SESSION_ACTIVITY, pi, getContext());
+            callMediaSessionMethod(SET_SESSION_ACTIVITY, pi, getApplicationContext());
             new PollingCheck(TIME_OUT_MS) {
                 @Override
                 public boolean check() {
@@ -398,14 +397,14 @@
     public void testSetCaptioningEnabled() throws Exception {
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_CAPTIONING_ENABLED, true, getContext());
+            callMediaSessionMethod(SET_CAPTIONING_ENABLED, true, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnCaptioningEnabledChangedCalled);
             assertEquals(true, mMediaControllerCallback.mCaptioningEnabled);
             assertEquals(true, mController.isCaptioningEnabled());
 
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_CAPTIONING_ENABLED, false, getContext());
+            callMediaSessionMethod(SET_CAPTIONING_ENABLED, false, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnCaptioningEnabledChangedCalled);
             assertEquals(false, mMediaControllerCallback.mCaptioningEnabled);
@@ -422,7 +421,7 @@
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
             final int repeatMode = PlaybackStateCompat.REPEAT_MODE_ALL;
-            callMediaSessionMethod(SET_REPEAT_MODE, repeatMode, getContext());
+            callMediaSessionMethod(SET_REPEAT_MODE, repeatMode, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnRepeatModeChangedCalled);
             assertEquals(repeatMode, mMediaControllerCallback.mRepeatMode);
@@ -439,7 +438,7 @@
         final int shuffleMode = PlaybackStateCompat.SHUFFLE_MODE_ALL;
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(SET_SHUFFLE_MODE, shuffleMode, getContext());
+            callMediaSessionMethod(SET_SHUFFLE_MODE, shuffleMode, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnShuffleModeChangedCalled);
             assertEquals(shuffleMode, mMediaControllerCallback.mShuffleMode);
@@ -462,7 +461,7 @@
             Bundle extras = new Bundle();
             extras.putString(TEST_KEY, TEST_VALUE);
             arguments.putBundle("extras", extras);
-            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getContext());
+            callMediaSessionMethod(SEND_SESSION_EVENT, arguments, getApplicationContext());
 
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnSessionEventCalled);
@@ -479,7 +478,7 @@
     public void testRelease() throws Exception {
         synchronized (mWaitLock) {
             mMediaControllerCallback.resetLocked();
-            callMediaSessionMethod(RELEASE, null, getContext());
+            callMediaSessionMethod(RELEASE, null, getApplicationContext());
             mWaitLock.wait(TIME_OUT_MS);
             assertTrue(mMediaControllerCallback.mOnSessionDestroyedCalled);
         }
@@ -500,7 +499,7 @@
                     TEST_MAX_VOLUME,
                     TEST_CURRENT_VOLUME);
 
-            callMediaSessionMethod(SET_PLAYBACK_TO_REMOTE, volumeInfo, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_TO_REMOTE, volumeInfo, getApplicationContext());
             MediaControllerCompat.PlaybackInfo info = null;
             for (int i = 0; i < MAX_AUDIO_INFO_CHANGED_CALLBACK_COUNT; ++i) {
                 mMediaControllerCallback.mOnAudioInfoChangedCalled = false;
@@ -533,7 +532,8 @@
 
             // test setPlaybackToLocal
             mMediaControllerCallback.mOnAudioInfoChangedCalled = false;
-            callMediaSessionMethod(SET_PLAYBACK_TO_LOCAL, AudioManager.STREAM_RING, getContext());
+            callMediaSessionMethod(SET_PLAYBACK_TO_LOCAL, AudioManager.STREAM_RING,
+                    getApplicationContext());
 
             // In API 21 and 22, onAudioInfoChanged is not called.
             if (Build.VERSION.SDK_INT == 21 || Build.VERSION.SDK_INT == 22) {
@@ -556,7 +556,8 @@
         assertEquals("Default rating type of a session must be RatingCompat.RATING_NONE",
                 RatingCompat.RATING_NONE, mController.getRatingType());
 
-        callMediaSessionMethod(SET_RATING_TYPE, RatingCompat.RATING_5_STARS, getContext());
+        callMediaSessionMethod(SET_RATING_TYPE, RatingCompat.RATING_5_STARS,
+                getApplicationContext());
         new PollingCheck(TIME_OUT_MS) {
             @Override
             public boolean check() {
diff --git a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
index 811f179..6cb6393 100644
--- a/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
+++ b/media/version-compat-tests/previous/client/src/androidTest/java/android/support/mediacompat/client/PlaybackStateCompatTest.java
@@ -25,8 +25,8 @@
 import android.support.v4.media.session.MediaSessionCompat;
 import android.support.v4.media.session.PlaybackStateCompat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media/version-compat-tests/previous/service/build.gradle b/media/version-compat-tests/previous/service/build.gradle
index c191ee1..19ba56ef 100644
--- a/media/version-compat-tests/previous/service/build.gradle
+++ b/media/version-compat-tests/previous/service/build.gradle
@@ -24,6 +24,8 @@
     androidTestImplementation(project(":support-media-compat-test-lib"))
     androidTestImplementation "com.android.support:support-media-compat:27.1.0"
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java b/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
index 4240c1c..5657937 100644
--- a/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
+++ b/media/version-compat-tests/previous/service/src/androidTest/java/android/support/mediacompat/service/MediaSessionCompatCallbackTest.java
@@ -16,8 +16,7 @@
 package android.support.mediacompat.service;
 
 import static android.support.mediacompat.testlib.MediaControllerConstants.ADD_QUEUE_ITEM;
-import static android.support.mediacompat.testlib.MediaControllerConstants
-        .ADD_QUEUE_ITEM_WITH_INDEX;
+import static android.support.mediacompat.testlib.MediaControllerConstants.ADD_QUEUE_ITEM_WITH_INDEX;
 import static android.support.mediacompat.testlib.MediaControllerConstants.ADJUST_VOLUME;
 import static android.support.mediacompat.testlib.MediaControllerConstants.FAST_FORWARD;
 import static android.support.mediacompat.testlib.MediaControllerConstants.PAUSE;
@@ -34,8 +33,7 @@
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEEK_TO;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_COMMAND;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_CUSTOM_ACTION;
-import static android.support.mediacompat.testlib.MediaControllerConstants
-        .SEND_CUSTOM_ACTION_PARCELABLE;
+import static android.support.mediacompat.testlib.MediaControllerConstants.SEND_CUSTOM_ACTION_PARCELABLE;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_CAPTIONING_ENABLED;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_RATING;
 import static android.support.mediacompat.testlib.MediaControllerConstants.SET_REPEAT_MODE;
@@ -59,10 +57,9 @@
 import static android.support.mediacompat.testlib.util.IntentUtil.callTransportControlsMethod;
 import static android.support.mediacompat.testlib.util.TestUtil.assertBundleEquals;
 
-import static androidx.test.InstrumentationRegistry.getArguments;
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
-import static androidx.test.InstrumentationRegistry.getTargetContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getArguments;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -95,11 +92,11 @@
 import android.util.Log;
 import android.view.KeyEvent;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -144,8 +141,9 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
-                mSession = new MediaSessionCompat(getTargetContext(), TEST_SESSION_TAG);
+                mAudioManager = (AudioManager) getApplicationContext().getSystemService(
+                        Context.AUDIO_SERVICE);
+                mSession = new MediaSessionCompat(getApplicationContext(), TEST_SESSION_TAG);
                 mSession.setCallback(mCallback, mHandler);
             }
         });
@@ -173,7 +171,8 @@
         assertEquals(errorMsg, 0L, controller.getFlags());
         assertNull(errorMsg, controller.getExtras());
         assertNull(errorMsg, controller.getMetadata());
-        assertEquals(errorMsg, getContext().getPackageName(), controller.getPackageName());
+        assertEquals(errorMsg, getApplicationContext().getPackageName(),
+                controller.getPackageName());
         assertNull(errorMsg, controller.getPlaybackState());
         assertNull(errorMsg, controller.getQueue());
         assertNull(errorMsg, controller.getQueueTitle());
@@ -211,7 +210,7 @@
         mCallback.reset(1);
         mSession.setCallback(mCallback, new Handler(Looper.getMainLooper()));
         MediaSessionCompat session = MediaSessionCompat.fromMediaSession(
-                getContext(), mSession.getMediaSession());
+                getApplicationContext(), mSession.getMediaSession());
         assertEquals(session.getSessionToken(), mSession.getSessionToken());
 
         session.getController().getTransportControls().play();
@@ -301,7 +300,8 @@
         // Compare the result with MediaController.getPlaybackState().
         if (Build.VERSION.SDK_INT >= 21) {
             MediaController controller = new MediaController(
-                    getContext(), (MediaSession.Token) mSession.getSessionToken().getToken());
+                    getApplicationContext(),
+                    (MediaSession.Token) mSession.getSessionToken().getToken());
             PlaybackState state = controller.getPlaybackState();
             assertEquals(state.getLastPositionUpdateTime(), stateOut.getLastPositionUpdateTime(),
                     updateTimeTolerance);
@@ -319,7 +319,8 @@
         mSession.setActive(true);
         mCallback.reset(1);
         mSession.setCallback(null, mHandler);
-        callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                mSession.getSessionToken());
         assertFalse(mCallback.await(WAIT_TIME_FOR_NO_RESPONSE_MS));
         assertEquals("Callback shouldn't be called.", 0, mCallback.mOnPlayCalledCount);
     }
@@ -338,7 +339,8 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+                callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                        mSession.getSessionToken());
                 mSession.setCallback(null, mHandler);
             }
         });
@@ -359,7 +361,7 @@
         ResultReceiver receiver = new ResultReceiver(null /* handler */);
         arguments.putParcelable("resultReceiver", receiver);
         callMediaControllerMethod(
-                SEND_COMMAND, arguments, getContext(), mSession.getSessionToken());
+                SEND_COMMAND, arguments, getApplicationContext(), mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCommandCalled);
@@ -381,7 +383,8 @@
 
         mCallback.reset(1);
         callMediaControllerMethod(
-                ADD_QUEUE_ITEM, itemDescription1, getContext(), mSession.getSessionToken());
+                ADD_QUEUE_ITEM, itemDescription1, getApplicationContext(),
+                mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnAddQueueItemCalled);
@@ -394,7 +397,8 @@
         arguments.putParcelable("description", itemDescription2);
         arguments.putInt("index", 0);
         callMediaControllerMethod(
-                ADD_QUEUE_ITEM_WITH_INDEX, arguments, getContext(), mSession.getSessionToken());
+                ADD_QUEUE_ITEM_WITH_INDEX, arguments, getApplicationContext(),
+                mSession.getSessionToken());
 
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnAddQueueItemAtCalled);
@@ -404,7 +408,8 @@
 
         mCallback.reset(1);
         callMediaControllerMethod(
-                REMOVE_QUEUE_ITEM, itemDescription1, getContext(), mSession.getSessionToken());
+                REMOVE_QUEUE_ITEM, itemDescription1, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnRemoveQueueItemCalled);
         assertEquals(TEST_MEDIA_ID_1, mCallback.mQueueDescription.getMediaId());
@@ -415,47 +420,51 @@
     @SmallTest
     public void testTransportControlsAndMediaSessionCallback() throws Exception {
         mCallback.reset(1);
-        callTransportControlsMethod(PLAY, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PLAY, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertEquals(1, mCallback.mOnPlayCalledCount);
 
         mCallback.reset(1);
-        callTransportControlsMethod(PAUSE, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(PAUSE, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPauseCalled);
 
         mCallback.reset(1);
-        callTransportControlsMethod(STOP, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(STOP, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnStopCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                FAST_FORWARD, null, getContext(), mSession.getSessionToken());
+                FAST_FORWARD, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnFastForwardCalled);
 
         mCallback.reset(1);
-        callTransportControlsMethod(REWIND, null, getContext(), mSession.getSessionToken());
+        callTransportControlsMethod(REWIND, null, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnRewindCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SKIP_TO_PREVIOUS, null, getContext(), mSession.getSessionToken());
+                SKIP_TO_PREVIOUS, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToPreviousCalled);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SKIP_TO_NEXT, null, getContext(), mSession.getSessionToken());
+                SKIP_TO_NEXT, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToNextCalled);
 
         mCallback.reset(1);
         final long seekPosition = 1000;
         callTransportControlsMethod(
-                SEEK_TO, seekPosition, getContext(), mSession.getSessionToken());
+                SEEK_TO, seekPosition, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSeekToCalled);
         assertEquals(seekPosition, mCallback.mSeekPosition);
@@ -464,7 +473,7 @@
         final RatingCompat rating =
                 RatingCompat.newStarRating(RatingCompat.RATING_5_STARS, 3f);
         callTransportControlsMethod(
-                SET_RATING, rating, getContext(), mSession.getSessionToken());
+                SET_RATING, rating, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetRatingCalled);
         assertEquals(rating.getRatingStyle(), mCallback.mRating.getRatingStyle());
@@ -477,7 +486,7 @@
         arguments.putString("mediaId", TEST_MEDIA_ID_1);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_MEDIA_ID, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_MEDIA_ID, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromMediaIdCalled);
         assertEquals(TEST_MEDIA_ID_1, mCallback.mMediaId);
@@ -489,7 +498,7 @@
         arguments.putString("query", query);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_SEARCH, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_SEARCH, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromSearchCalled);
         assertEquals(query, mCallback.mQuery);
@@ -501,7 +510,7 @@
         arguments.putParcelable("uri", uri);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PLAY_FROM_URI, arguments, getContext(), mSession.getSessionToken());
+                PLAY_FROM_URI, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPlayFromUriCalled);
         assertEquals(uri, mCallback.mUri);
@@ -513,7 +522,7 @@
         arguments.putString("action", action);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                SEND_CUSTOM_ACTION, arguments, getContext(), mSession.getSessionToken());
+                SEND_CUSTOM_ACTION, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCustomActionCalled);
         assertEquals(action, mCallback.mAction);
@@ -531,7 +540,7 @@
         callTransportControlsMethod(
                 SEND_CUSTOM_ACTION_PARCELABLE,
                 arguments,
-                getContext(),
+                getApplicationContext(),
                 mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnCustomActionCalled);
@@ -541,14 +550,15 @@
         mCallback.reset(1);
         final long queueItemId = 1000;
         callTransportControlsMethod(
-                SKIP_TO_QUEUE_ITEM, queueItemId, getContext(), mSession.getSessionToken());
+                SKIP_TO_QUEUE_ITEM, queueItemId, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSkipToQueueItemCalled);
         assertEquals(queueItemId, mCallback.mQueueItemId);
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                PREPARE, null, getContext(), mSession.getSessionToken());
+                PREPARE, null, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareCalled);
 
@@ -557,7 +567,8 @@
         arguments.putString("mediaId", TEST_MEDIA_ID_2);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_MEDIA_ID, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_MEDIA_ID, arguments, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromMediaIdCalled);
         assertEquals(TEST_MEDIA_ID_2, mCallback.mMediaId);
@@ -568,7 +579,8 @@
         arguments.putString("query", query);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_SEARCH, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_SEARCH, arguments, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromSearchCalled);
         assertEquals(query, mCallback.mQuery);
@@ -579,7 +591,7 @@
         arguments.putParcelable("uri", uri);
         arguments.putBundle("extras", extras);
         callTransportControlsMethod(
-                PREPARE_FROM_URI, arguments, getContext(), mSession.getSessionToken());
+                PREPARE_FROM_URI, arguments, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnPrepareFromUriCalled);
         assertEquals(uri, mCallback.mUri);
@@ -587,7 +599,8 @@
 
         mCallback.reset(1);
         callTransportControlsMethod(
-                SET_CAPTIONING_ENABLED, ENABLED, getContext(), mSession.getSessionToken());
+                SET_CAPTIONING_ENABLED, ENABLED, getApplicationContext(),
+                mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetCaptioningEnabledCalled);
         assertEquals(ENABLED, mCallback.mCaptioningEnabled);
@@ -595,7 +608,7 @@
         mCallback.reset(1);
         final int repeatMode = PlaybackStateCompat.REPEAT_MODE_ALL;
         callTransportControlsMethod(
-                SET_REPEAT_MODE, repeatMode, getContext(), mSession.getSessionToken());
+                SET_REPEAT_MODE, repeatMode, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetRepeatModeCalled);
         assertEquals(repeatMode, mCallback.mRepeatMode);
@@ -603,7 +616,7 @@
         mCallback.reset(1);
         final int shuffleMode = PlaybackStateCompat.SHUFFLE_MODE_ALL;
         callTransportControlsMethod(
-                SET_SHUFFLE_MODE, shuffleMode, getContext(), mSession.getSessionToken());
+                SET_SHUFFLE_MODE, shuffleMode, getApplicationContext(), mSession.getSessionToken());
         mCallback.await(TIME_OUT_MS);
         assertTrue(mCallback.mOnSetShuffleModeCalled);
         assertEquals(shuffleMode, mCallback.mShuffleMode);
@@ -614,7 +627,7 @@
      */
     @Test
     @MediumTest
-    @FlakyTest (bugId = 111811728)
+    @FlakyTest(bugId = 111811728)
     public void testCallbackOnMediaButtonEvent() throws Exception {
         mSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS);
         mSession.setActive(true);
@@ -622,8 +635,10 @@
         final long waitTimeForNoResponse = 30L;
 
         Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON)
-                .setComponent(new ComponentName(getContext(), getContext().getClass()));
-        PendingIntent pi = PendingIntent.getBroadcast(getContext(), 0, mediaButtonIntent, 0);
+                .setComponent(new ComponentName(getApplicationContext(),
+                        getApplicationContext().getClass()));
+        PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent,
+                0);
         mSession.setMediaButtonReceiver(pi);
 
         // Set state to STATE_PLAYING to get higher priority.
@@ -785,18 +800,18 @@
         synchronized (mWaitLock) {
             // test setVolumeTo
             callMediaControllerMethod(SET_VOLUME_TO,
-                    7 /* Target volume */, getContext(), mSession.getSessionToken());
+                    7 /* Target volume */, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(7, vp.getCurrentVolume());
 
             // test adjustVolume
             callMediaControllerMethod(ADJUST_VOLUME,
-                    AudioManager.ADJUST_LOWER, getContext(), mSession.getSessionToken());
+                    AudioManager.ADJUST_LOWER, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(6, vp.getCurrentVolume());
 
             callMediaControllerMethod(ADJUST_VOLUME,
-                    AudioManager.ADJUST_RAISE, getContext(), mSession.getSessionToken());
+                    AudioManager.ADJUST_RAISE, getApplicationContext(), mSession.getSessionToken());
             mWaitLock.wait(TIME_OUT_MS);
             assertEquals(7, vp.getCurrentVolume());
         }
diff --git a/media2-widget/build.gradle b/media2-widget/build.gradle
index 148d14e..be9e05c 100644
--- a/media2-widget/build.gradle
+++ b/media2-widget/build.gradle
@@ -29,6 +29,8 @@
     api("androidx.palette:palette:1.0.0")
     implementation(project(":concurrent:concurrent-futures"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/media2-widget/src/androidTest/java/androidx/media2/widget/MediaControlViewTest.java b/media2-widget/src/androidTest/java/androidx/media2/widget/MediaControlViewTest.java
index 52c4d22..c78b6cb 100644
--- a/media2-widget/src/androidTest/java/androidx/media2/widget/MediaControlViewTest.java
+++ b/media2-widget/src/androidTest/java/androidx/media2/widget/MediaControlViewTest.java
@@ -46,12 +46,13 @@
 import androidx.media2.SessionPlayer;
 import androidx.media2.UriMediaItem;
 import androidx.media2.widget.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -96,7 +97,7 @@
 
     @Before
     public void setup() throws Throwable {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mMainHandlerExecutor = ContextCompat.getMainExecutor(mContext);
         mInstrumentation = InstrumentationRegistry.getInstrumentation();
 
diff --git a/media2-widget/src/androidTest/java/androidx/media2/widget/VideoViewTest.java b/media2-widget/src/androidTest/java/androidx/media2/widget/VideoViewTest.java
index 0e0e07e..0f72590 100644
--- a/media2-widget/src/androidTest/java/androidx/media2/widget/VideoViewTest.java
+++ b/media2-widget/src/androidTest/java/androidx/media2/widget/VideoViewTest.java
@@ -60,12 +60,13 @@
 import androidx.media2.SessionResult;
 import androidx.media2.UriMediaItem;
 import androidx.media2.widget.test.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -107,7 +108,7 @@
 
     @Before
     public void setup() throws Throwable {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mMainHandlerExecutor = ContextCompat.getMainExecutor(mContext);
         mInstrumentation = InstrumentationRegistry.getInstrumentation();
 
diff --git a/media2/build.gradle b/media2/build.gradle
index d3bc7f3..4cab638 100644
--- a/media2/build.gradle
+++ b/media2/build.gradle
@@ -1,11 +1,7 @@
 import androidx.build.LibraryGroups
 import androidx.build.LibraryVersions
 
-import static androidx.build.dependencies.DependenciesKt.CHECKER_FRAMEWORK
-import static androidx.build.dependencies.DependenciesKt.ESPRESSO_CORE
-import static androidx.build.dependencies.DependenciesKt.GUAVA_LISTENABLE_FUTURE
-import static androidx.build.dependencies.DependenciesKt.TEST_RULES
-import static androidx.build.dependencies.DependenciesKt.TEST_RUNNER
+import static androidx.build.dependencies.DependenciesKt.*
 
 plugins {
     id("SupportAndroidLibraryPlugin")
@@ -20,6 +16,8 @@
     // Depend on media2-exoplayer so that the library groupId is set to match media2.
     implementation(project(":media2-exoplayer"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/media2/src/androidTest/java/androidx/media2/MediaBrowserTest.java b/media2/src/androidTest/java/androidx/media2/MediaBrowserTest.java
index 11b124c..d3e73eb 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaBrowserTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaBrowserTest.java
@@ -44,10 +44,10 @@
 import androidx.media2.MediaLibraryService.MediaLibrarySession;
 import androidx.media2.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback;
 import androidx.media2.MediaSession.ControllerInfo;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaControllerTest.java b/media2/src/androidTest/java/androidx/media2/MediaControllerTest.java
index 4f8aa65..cfd5b37 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaControllerTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaControllerTest.java
@@ -48,11 +48,11 @@
 import androidx.media2.MediaSession.SessionCallback;
 import androidx.media2.TestServiceRegistry.SessionServiceCallback;
 import androidx.media2.TestUtils.SyncHandler;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.After;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTest.java b/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTest.java
index 96483fd..1d3dbb2 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTest.java
@@ -19,10 +19,10 @@
 import android.net.Uri;
 import android.os.Environment;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.Suppress;
 import androidx.test.rule.GrantPermissionRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTestBase.java b/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTestBase.java
index fb0b85b..cd59aca 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTestBase.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayer2DrmTestBase.java
@@ -42,7 +42,7 @@
 import androidx.annotation.CallSuper;
 import androidx.media2.MediaPlayer2.DrmInfo;
 import androidx.media2.TestUtils.Monitor;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.json.JSONArray;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayer2Test.java b/media2/src/androidTest/java/androidx/media2/MediaPlayer2Test.java
index 35bc880..e90ff19 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayer2Test.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayer2Test.java
@@ -42,11 +42,11 @@
 import androidx.media.AudioAttributesCompat;
 import androidx.media2.TestUtils.Monitor;
 import androidx.media2.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayer2TestBase.java b/media2/src/androidTest/java/androidx/media2/MediaPlayer2TestBase.java
index 615725f..e602c50 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayer2TestBase.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayer2TestBase.java
@@ -39,7 +39,7 @@
 import androidx.annotation.CallSuper;
 import androidx.media.AudioAttributesCompat;
 import androidx.media2.TestUtils.Monitor;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayerDrmTest.java b/media2/src/androidTest/java/androidx/media2/MediaPlayerDrmTest.java
index 1c8817d..0195c56 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayerDrmTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayerDrmTest.java
@@ -47,12 +47,12 @@
 import androidx.media2.MediaPlayer.DrmResult;
 import androidx.media2.SessionPlayer.PlayerResult;
 import androidx.media2.TestUtils.Monitor;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.Suppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 import androidx.test.rule.GrantPermissionRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayerTest.java b/media2/src/androidTest/java/androidx/media2/MediaPlayerTest.java
index 66e1577..d154131 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayerTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayerTest.java
@@ -39,11 +39,11 @@
 import androidx.media2.SessionPlayer.PlayerResult;
 import androidx.media2.TestUtils.Monitor;
 import androidx.media2.test.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayerTestBase.java b/media2/src/androidTest/java/androidx/media2/MediaPlayerTestBase.java
index 565dfce..5b49104 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayerTestBase.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayerTestBase.java
@@ -31,7 +31,7 @@
 import android.view.WindowManager;
 
 import androidx.annotation.CallSuper;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.After;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaPlayer_AudioFocusTest.java b/media2/src/androidTest/java/androidx/media2/MediaPlayer_AudioFocusTest.java
index ec15237..c590a88 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaPlayer_AudioFocusTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaPlayer_AudioFocusTest.java
@@ -52,10 +52,10 @@
 import androidx.annotation.GuardedBy;
 import androidx.media.AudioAttributesCompat;
 import androidx.media2.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/media2/src/androidTest/java/androidx/media2/MediaSessionManager_MediaSessionTest.java b/media2/src/androidTest/java/androidx/media2/MediaSessionManager_MediaSessionTest.java
index 420aabe..b986c69 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaSessionManager_MediaSessionTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaSessionManager_MediaSessionTest.java
@@ -21,8 +21,8 @@
 
 import androidx.media2.MediaSession.ControllerInfo;
 import androidx.media2.MediaSession.SessionCallback;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/src/androidTest/java/androidx/media2/MediaSessionTest.java b/media2/src/androidTest/java/androidx/media2/MediaSessionTest.java
index e32d0b9..c013d38 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaSessionTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaSessionTest.java
@@ -43,9 +43,9 @@
 import androidx.media2.MediaSession.CommandButton;
 import androidx.media2.MediaSession.ControllerInfo;
 import androidx.media2.MediaSession.SessionCallback;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import junit.framework.Assert;
 
diff --git a/media2/src/androidTest/java/androidx/media2/MediaSessionTestBase.java b/media2/src/androidTest/java/androidx/media2/MediaSessionTestBase.java
index 77efc16..b0e89c0 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaSessionTestBase.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaSessionTestBase.java
@@ -25,7 +25,7 @@
 import androidx.annotation.Nullable;
 import androidx.media2.MediaController.ControllerCallback;
 import androidx.media2.TestUtils.SyncHandler;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -103,7 +103,7 @@
 
     @CallSuper
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @CallSuper
diff --git a/media2/src/androidTest/java/androidx/media2/MediaTestBase.java b/media2/src/androidTest/java/androidx/media2/MediaTestBase.java
index 3425885..9c509d1 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaTestBase.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaTestBase.java
@@ -20,7 +20,8 @@
 import android.media.AudioManager;
 import android.os.Looper;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.BeforeClass;
 
@@ -60,7 +61,7 @@
                 // Without posting this, audio focus listeners wouldn't be called because the
                 // listeners would be posted to the test thread (here) where it waits until the
                 // tests are finished.
-                Context context = InstrumentationRegistry.getTargetContext();
+                Context context = ApplicationProvider.getApplicationContext();
                 AudioManager manager =
                         (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
             }
diff --git a/media2/src/androidTest/java/androidx/media2/MediaTimestampTest.java b/media2/src/androidTest/java/androidx/media2/MediaTimestampTest.java
index 863cb2c..ac0fbf7 100644
--- a/media2/src/androidTest/java/androidx/media2/MediaTimestampTest.java
+++ b/media2/src/androidTest/java/androidx/media2/MediaTimestampTest.java
@@ -20,9 +20,9 @@
 
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media2/src/androidTest/java/androidx/media2/PlaybackParamsTest.java b/media2/src/androidTest/java/androidx/media2/PlaybackParamsTest.java
index e2af21e..1ca63a0 100644
--- a/media2/src/androidTest/java/androidx/media2/PlaybackParamsTest.java
+++ b/media2/src/androidTest/java/androidx/media2/PlaybackParamsTest.java
@@ -20,9 +20,9 @@
 
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media2/src/androidTest/java/androidx/media2/RatingTest.java b/media2/src/androidTest/java/androidx/media2/RatingTest.java
index fe4df76..d38b685 100644
--- a/media2/src/androidTest/java/androidx/media2/RatingTest.java
+++ b/media2/src/androidTest/java/androidx/media2/RatingTest.java
@@ -21,9 +21,9 @@
 import android.os.Build;
 import android.os.Parcel;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.versionedparcelable.ParcelImpl;
 import androidx.versionedparcelable.ParcelUtils;
 
diff --git a/media2/src/androidTest/java/androidx/media2/SubtitleDataTest.java b/media2/src/androidTest/java/androidx/media2/SubtitleDataTest.java
index 64d9c3f..320dd2c 100644
--- a/media2/src/androidTest/java/androidx/media2/SubtitleDataTest.java
+++ b/media2/src/androidTest/java/androidx/media2/SubtitleDataTest.java
@@ -18,8 +18,8 @@
 
 import static junit.framework.Assert.assertEquals;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media2/src/androidTest/java/androidx/media2/TimedMetaDataTest.java b/media2/src/androidTest/java/androidx/media2/TimedMetaDataTest.java
index 052d00c..94acc9b 100644
--- a/media2/src/androidTest/java/androidx/media2/TimedMetaDataTest.java
+++ b/media2/src/androidTest/java/androidx/media2/TimedMetaDataTest.java
@@ -19,8 +19,8 @@
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.TestCase.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/media2/version-compat-tests/current/client/build.gradle b/media2/version-compat-tests/current/client/build.gradle
index 4fcf1b75..b84bb62 100644
--- a/media2/version-compat-tests/current/client/build.gradle
+++ b/media2/version-compat-tests/current/client/build.gradle
@@ -24,6 +24,8 @@
     androidTestImplementation(project(":media2"))
     androidTestImplementation(project(":support-media2-test-common"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCallbackTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCallbackTest.java
index c938917..978c8ed 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCallbackTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserCallbackTest.java
@@ -63,11 +63,11 @@
 import androidx.media2.test.client.MediaTestUtils;
 import androidx.media2.test.common.MediaBrowserConstants;
 import androidx.media2.test.common.TestUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.versionedparcelable.ParcelUtils;
 
 import org.junit.Test;
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserTest.java
index 7e544c1..f5038fb 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaBrowserTest.java
@@ -30,9 +30,9 @@
 import androidx.media2.MediaController.ControllerCallback;
 import androidx.media2.SessionCommandGroup;
 import androidx.media2.SessionToken;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.runner.RunWith;
 
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCallbackTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCallbackTest.java
index b97f6a3..85dbf06 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCallbackTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCallbackTest.java
@@ -24,8 +24,7 @@
 import static androidx.media2.test.common.CommonConstants.INDEX_FOR_NULL_ITEM;
 import static androidx.media2.test.common.CommonConstants.INDEX_FOR_UNKONWN_ITEM;
 import static androidx.media2.test.common.CommonConstants.MOCK_MEDIA2_LIBRARY_SERVICE;
-import static androidx.media2.test.common.MediaSessionConstants
-        .TEST_CONTROLLER_CALLBACK_SESSION_REJECTS;
+import static androidx.media2.test.common.MediaSessionConstants.TEST_CONTROLLER_CALLBACK_SESSION_REJECTS;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -53,10 +52,10 @@
 import androidx.media2.test.client.MediaTestUtils;
 import androidx.media2.test.client.RemoteMediaSession;
 import androidx.media2.test.common.TestUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCompatCallbackTestWithMediaSession.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCompatCallbackTestWithMediaSession.java
index ed4975d..018f1fe 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCompatCallbackTestWithMediaSession.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerCompatCallbackTestWithMediaSession.java
@@ -40,9 +40,9 @@
 import androidx.media2.test.client.MediaTestUtils;
 import androidx.media2.test.client.RemoteMediaSession;
 import androidx.media2.test.common.TestUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java
index 1bacdfd..8a770a3 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java
@@ -43,9 +43,9 @@
 import androidx.media2.test.client.MediaTestUtils;
 import androidx.media2.test.client.RemoteMediaSession;
 import androidx.media2.test.common.PollingCheck;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaSessionTestBase.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaSessionTestBase.java
index 5af0ae2..00b8365 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaSessionTestBase.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaSessionTestBase.java
@@ -40,7 +40,7 @@
 import androidx.media2.SessionResult;
 import androidx.media2.SessionToken;
 import androidx.media2.test.common.TestUtils.SyncHandler;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -137,7 +137,7 @@
 
     @CallSuper
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @CallSuper
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionCompatTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionCompatTest.java
index 6363fc1..1f28f3a 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionCompatTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionCompatTest.java
@@ -27,9 +27,9 @@
 import android.support.v4.media.session.MediaSessionCompat;
 
 import androidx.media2.test.client.RemoteMediaSessionCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -45,7 +45,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mRemoteSessionCompat = new RemoteMediaSessionCompat(DEFAULT_TEST_NAME, mContext);
     }
 
diff --git a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionTest.java b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionTest.java
index 5452257..63fd552 100644
--- a/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionTest.java
+++ b/media2/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/RemoteMediaSessionTest.java
@@ -27,9 +27,9 @@
 import androidx.media2.MediaController;
 import androidx.media2.SessionToken;
 import androidx.media2.test.client.RemoteMediaSession;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -47,7 +47,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mRemoteSession2 = new RemoteMediaSession(DEFAULT_TEST_NAME, mContext);
     }
 
diff --git a/media2/version-compat-tests/current/service/build.gradle b/media2/version-compat-tests/current/service/build.gradle
index 4fcf1b75..b84bb62 100644
--- a/media2/version-compat-tests/current/service/build.gradle
+++ b/media2/version-compat-tests/current/service/build.gradle
@@ -24,6 +24,8 @@
     androidTestImplementation(project(":media2"))
     androidTestImplementation(project(":support-media2-test-common"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
index 7afa9e2..ddcdb32 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
@@ -30,10 +30,10 @@
 import androidx.media2.MediaUtils;
 import androidx.media2.UriMediaItem;
 import androidx.media2.test.service.MediaTestUtils;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.versionedparcelable.ParcelImpl;
 import androidx.versionedparcelable.ParcelUtils;
 
@@ -52,7 +52,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaLibrarySessionCallbackTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaLibrarySessionCallbackTest.java
index c18f287..1e8e350 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaLibrarySessionCallbackTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaLibrarySessionCallbackTest.java
@@ -30,9 +30,9 @@
 import androidx.media2.test.service.MockMediaLibraryService;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.RemoteMediaBrowser;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaMetadataTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaMetadataTest.java
index 260da0f..65c30db 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaMetadataTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaMetadataTest.java
@@ -41,9 +41,9 @@
 import androidx.media2.Rating;
 import androidx.media2.ThumbRating;
 import androidx.media2.test.common.TestUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.versionedparcelable.ParcelImpl;
 import androidx.versionedparcelable.ParcelUtils;
 
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCallbackTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCallbackTest.java
index 8e0d7f4..55aaa8e 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCallbackTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCallbackTest.java
@@ -43,9 +43,9 @@
 import androidx.media2.test.service.MediaTestUtils;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCompatCallbackTestWithMediaController.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCompatCallbackTestWithMediaController.java
index 20a9565..73772e8 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCompatCallbackTestWithMediaController.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionCompatCallbackTestWithMediaController.java
@@ -51,9 +51,9 @@
 import androidx.media2.test.common.TestUtils;
 import androidx.media2.test.service.MediaTestUtils;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionLegacyCallbackTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionLegacyCallbackTest.java
index c8126ce..b2b523f 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionLegacyCallbackTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionLegacyCallbackTest.java
@@ -61,9 +61,9 @@
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.MockRemotePlayer;
 import androidx.media2.test.service.RemoteMediaControllerCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java
index faeaae8..d186ae2 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionManagerTest.java
@@ -29,10 +29,10 @@
 import androidx.media2.MediaSessionManager;
 import androidx.media2.SessionToken;
 import androidx.media2.test.service.MockMediaBrowserServiceCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -54,7 +54,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java
index d8318f0..7e8e936 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java
@@ -37,10 +37,10 @@
 import androidx.media2.test.service.MediaTestUtils;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTestBase.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTestBase.java
index bbe5f97..c63d4be 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTestBase.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTestBase.java
@@ -27,7 +27,7 @@
 import androidx.media2.test.common.TestUtils.SyncHandler;
 import androidx.media2.test.service.RemoteMediaBrowser;
 import androidx.media2.test.service.RemoteMediaController;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -111,7 +111,7 @@
 
     @CallSuper
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @CallSuper
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
index e8ae88c..ca4ed2c 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_KeyEventTest.java
@@ -36,9 +36,9 @@
 import androidx.media2.SessionPlayer;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.R;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_PermissionTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_PermissionTest.java
index 7f6d1ec..b7376b8 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_PermissionTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSession_PermissionTest.java
@@ -67,9 +67,9 @@
 import androidx.media2.test.service.MediaTestUtils;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaTestBase.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaTestBase.java
index bf54127..6114c82 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaTestBase.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaTestBase.java
@@ -20,7 +20,8 @@
 import android.media.AudioManager;
 import android.os.Looper;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.BeforeClass;
 
@@ -60,7 +61,7 @@
                 // Without posting this, audio focus listeners wouldn't be called because the
                 // listeners would be posted to the test thread (here) where it waits until the
                 // tests are finished.
-                Context context = InstrumentationRegistry.getTargetContext();
+                Context context = ApplicationProvider.getApplicationContext();
                 AudioManager manager =
                         (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
             }
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaBrowserCompatTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaBrowserCompatTest.java
index c5885c2..d50db47 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaBrowserCompatTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaBrowserCompatTest.java
@@ -23,9 +23,9 @@
 import android.content.Context;
 
 import androidx.media2.test.service.RemoteMediaBrowserCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,7 +40,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mRemoteBrowserCompat = new RemoteMediaBrowserCompat(mContext, MOCK_MEDIA2_LIBRARY_SERVICE);
     }
 
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaControllerCompatTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaControllerCompatTest.java
index f56f4d2..8993fdd 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaControllerCompatTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteMediaControllerCompatTest.java
@@ -24,9 +24,9 @@
 import android.support.v4.media.session.MediaSessionCompat;
 
 import androidx.media2.test.service.RemoteMediaControllerCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -45,7 +45,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         sHandler.postAndSync(new Runnable() {
             @Override
             public void run() {
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteSessionPlayerTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteSessionPlayerTest.java
index 537953d..94e5c81 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteSessionPlayerTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/RemoteSessionPlayerTest.java
@@ -30,9 +30,9 @@
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.MockRemotePlayer;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java
index f6d64d8..02e7efd 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionCommandTest.java
@@ -24,9 +24,9 @@
 
 import androidx.media2.SessionCommand;
 import androidx.media2.SessionCommandGroup;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Ignore;
 import org.junit.Test;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionPlayerTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionPlayerTest.java
index dcf8cbb..6a83159 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionPlayerTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionPlayerTest.java
@@ -37,10 +37,10 @@
 import androidx.media2.test.service.MediaTestUtils;
 import androidx.media2.test.service.MockPlayer;
 import androidx.media2.test.service.RemoteMediaController;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionTokenTest.java b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionTokenTest.java
index d8225fd..4e42809 100644
--- a/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionTokenTest.java
+++ b/media2/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/SessionTokenTest.java
@@ -26,10 +26,10 @@
 import androidx.media2.SessionToken;
 import androidx.media2.test.service.MockMediaLibraryService;
 import androidx.media2.test.service.MockMediaSessionService;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -46,7 +46,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/mediarouter/build.gradle b/mediarouter/build.gradle
index 7c65360..213f9cd 100644
--- a/mediarouter/build.gradle
+++ b/mediarouter/build.gradle
@@ -12,6 +12,8 @@
     api("androidx.palette:palette:1.0.0")
     api(project(":recyclerview"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/mediarouter/src/androidTest/java/androidx/mediarouter/app/MediaRouteChooserDialogTest.java b/mediarouter/src/androidTest/java/androidx/mediarouter/app/MediaRouteChooserDialogTest.java
index 95c33f1..2c93718 100644
--- a/mediarouter/src/androidTest/java/androidx/mediarouter/app/MediaRouteChooserDialogTest.java
+++ b/mediarouter/src/androidTest/java/androidx/mediarouter/app/MediaRouteChooserDialogTest.java
@@ -20,15 +20,15 @@
 
 import android.content.Context;
 import android.content.res.TypedArray;
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.filters.LargeTest;
-import androidx.test.filters.SmallTest;
-import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import androidx.mediarouter.media.MediaRouter.RouteInfo;
 import androidx.mediarouter.media.TestUtils;
 import androidx.mediarouter.test.R;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.LargeTest;
+import androidx.test.filters.SmallTest;
+import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouteProviderTest.java b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouteProviderTest.java
index 15d234a..4d75b11 100644
--- a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouteProviderTest.java
+++ b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouteProviderTest.java
@@ -21,8 +21,8 @@
 
 import android.os.Bundle;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterInitializationTest.java b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterInitializationTest.java
index 9a6ff34..c6b936b 100644
--- a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterInitializationTest.java
+++ b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterInitializationTest.java
@@ -16,17 +16,17 @@
 
 package androidx.mediarouter.media;
 
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,7 +46,7 @@
         getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                final Context context = getContext();
+                final Context context = getApplicationContext();
                 android.media.MediaRouter router =
                         (android.media.MediaRouter) context.getSystemService(
                                 Context.MEDIA_ROUTER_SERVICE);
diff --git a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
index 388a408..38f823f 100644
--- a/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
+++ b/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
@@ -16,17 +16,17 @@
 
 package androidx.mediarouter.media;
 
-import static androidx.test.InstrumentationRegistry.getContext;
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import android.support.v4.media.session.MediaControllerCompat;
 import android.support.v4.media.session.MediaSessionCompat;
 
-import android.support.v4.media.session.MediaControllerCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
 
 import org.junit.After;
 import org.junit.Before;
@@ -53,7 +53,7 @@
        getInstrumentation().runOnMainSync(new Runnable() {
            @Override
            public void run() {
-               mContext = getContext();
+               mContext = getApplicationContext();
                mRouter = MediaRouter.getInstance(mContext);
                mSession = new MediaSessionCompat(mContext, SESSION_TAG);
            }
diff --git a/navigation/benchmark/build.gradle b/navigation/benchmark/build.gradle
index 20af528..49de195 100644
--- a/navigation/benchmark/build.gradle
+++ b/navigation/benchmark/build.gradle
@@ -27,6 +27,8 @@
     androidTestImplementation(project(":navigation:navigation-runtime"))
     androidTestImplementation(project(":navigation:navigation-testing"))
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(KOTLIN_STDLIB)
diff --git a/navigation/benchmark/src/androidTest/java/androidx/navigation/NavInflaterBenchmark.kt b/navigation/benchmark/src/androidTest/java/androidx/navigation/NavInflaterBenchmark.kt
index 5ef90ff..d494054 100644
--- a/navigation/benchmark/src/androidTest/java/androidx/navigation/NavInflaterBenchmark.kt
+++ b/navigation/benchmark/src/androidTest/java/androidx/navigation/NavInflaterBenchmark.kt
@@ -18,9 +18,9 @@
 
 import androidx.benchmark.BenchmarkRule
 import androidx.navigation.testing.TestNavigatorProvider
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -32,7 +32,7 @@
     @get:Rule
     val benchmarkRule = BenchmarkRule()
 
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     private var navInflater: NavInflater = NavInflater(context, TestNavigatorProvider())
 
diff --git a/navigation/common/build.gradle b/navigation/common/build.gradle
index 24fd3eb..30df98c 100644
--- a/navigation/common/build.gradle
+++ b/navigation/common/build.gradle
@@ -35,10 +35,14 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(TRUTH)
     testImplementation(KOTLIN_STDLIB)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(TRUTH)
diff --git a/navigation/common/ktx/build.gradle b/navigation/common/ktx/build.gradle
index 530c6f6..1b9b9f5 100644
--- a/navigation/common/ktx/build.gradle
+++ b/navigation/common/ktx/build.gradle
@@ -36,8 +36,12 @@
     api(project(":navigation:navigation-common"))
     api(KOTLIN_STDLIB)
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(TRUTH)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(TRUTH)
diff --git a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt
index 3d30b42..1e455a7 100644
--- a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt
+++ b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavDestinationBuilderTest.kt
@@ -17,8 +17,8 @@
 package androidx.navigation
 
 import android.support.annotation.IdRes
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphBuilderTest.kt b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphBuilderTest.kt
index ba7ff0f..00d32b0 100644
--- a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphBuilderTest.kt
+++ b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphBuilderTest.kt
@@ -17,8 +17,8 @@
 package androidx.navigation
 
 import android.support.annotation.IdRes
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Assert.fail
 import org.junit.Test
diff --git a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphTest.kt b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphTest.kt
index 9064aa0..79e2223 100644
--- a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphTest.kt
+++ b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavGraphTest.kt
@@ -16,8 +16,8 @@
 
 package androidx.navigation
 
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt
index 6fba4bf..c8cdc2c 100644
--- a/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt
+++ b/navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt
@@ -16,8 +16,8 @@
 
 package androidx.navigation
 
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/navigation/fragment/build.gradle b/navigation/fragment/build.gradle
index 6c504ae..76b2ed6 100644
--- a/navigation/fragment/build.gradle
+++ b/navigation/fragment/build.gradle
@@ -36,10 +36,14 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 
     androidTestImplementation(project(":navigation:navigation-testing"))
     androidTestImplementation(project(":navigation:navigation-runtime-ktx"))
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/navigation/fragment/ktx/build.gradle b/navigation/fragment/ktx/build.gradle
index 39218ee..c79e334 100644
--- a/navigation/fragment/ktx/build.gradle
+++ b/navigation/fragment/ktx/build.gradle
@@ -37,6 +37,8 @@
     // Ensure that the -ktx dependency graph mirrors the Java dependency graph
     api(project(":navigation:navigation-runtime-ktx"))
     api(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorDestinationBuilderTest.kt b/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorDestinationBuilderTest.kt
index af4f1fe..97dbd9c 100644
--- a/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorDestinationBuilderTest.kt
+++ b/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorDestinationBuilderTest.kt
@@ -21,9 +21,9 @@
 import androidx.navigation.createGraph
 import androidx.navigation.get
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Rule
diff --git a/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt b/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
index 3910693..f6820e4 100644
--- a/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
+++ b/navigation/fragment/ktx/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
@@ -17,8 +17,8 @@
 package androidx.navigation.fragment
 
 import android.view.View
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Test
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/BaseNavControllerTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/BaseNavControllerTest.kt
index 0442640..dd6fd0a2 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/BaseNavControllerTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/BaseNavControllerTest.kt
@@ -31,8 +31,8 @@
 import androidx.navigation.get
 import androidx.navigation.plusAssign
 import androidx.navigation.testing.TestNavigator
-import androidx.test.InstrumentationRegistry
 import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.rule.ActivityTestRule
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/DynamicNavControllerTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/DynamicNavControllerTest.kt
index b7e608d..a0d9441 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/DynamicNavControllerTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/DynamicNavControllerTest.kt
@@ -19,8 +19,8 @@
 import android.os.Bundle
 import androidx.navigation.NavController
 import androidx.navigation.fragment.test.R
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.runner.RunWith
 
 @SmallTest
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/EmbeddedXmlTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/EmbeddedXmlTest.kt
index 4eeb5c9..cc8b40d 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/EmbeddedXmlTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/EmbeddedXmlTest.kt
@@ -25,10 +25,10 @@
 import android.view.ViewGroup
 import androidx.navigation.NavController
 import androidx.navigation.fragment.test.R
-import androidx.test.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
index d3b7566..4b42dfb 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorExtrasTest.kt
@@ -17,8 +17,8 @@
 package androidx.navigation.fragment
 
 import android.view.View
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Test
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt
index 0613516..c04e7e8 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/FragmentNavigatorTest.kt
@@ -25,9 +25,9 @@
 import androidx.navigation.fragment.test.EmptyFragment
 import androidx.navigation.fragment.test.R
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Assert.assertEquals
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/ImmediateNavigationTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/ImmediateNavigationTest.kt
index 7e3352f..ce5ddb5 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/ImmediateNavigationTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/ImmediateNavigationTest.kt
@@ -24,10 +24,10 @@
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import androidx.navigation.fragment.test.R
-import androidx.test.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
+import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Rule
 import org.junit.Test
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/StartDestinationArgsTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/StartDestinationArgsTest.kt
index cf82119..5ea2d3a 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/StartDestinationArgsTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/StartDestinationArgsTest.kt
@@ -25,9 +25,9 @@
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import androidx.navigation.fragment.test.R
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Rule
diff --git a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/XmlNavControllerTest.kt b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/XmlNavControllerTest.kt
index 29be009..ccc8849 100644
--- a/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/XmlNavControllerTest.kt
+++ b/navigation/fragment/src/androidTest/java/androidx/navigation/fragment/XmlNavControllerTest.kt
@@ -19,8 +19,8 @@
 import android.os.Bundle
 import androidx.navigation.NavController
 import androidx.navigation.fragment.test.R
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.runner.RunWith
 
 @SmallTest
diff --git a/navigation/runtime/build.gradle b/navigation/runtime/build.gradle
index 5361cea..8de105e 100644
--- a/navigation/runtime/build.gradle
+++ b/navigation/runtime/build.gradle
@@ -36,9 +36,13 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 
     androidTestImplementation(project(":navigation:navigation-testing"))
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/navigation/runtime/ktx/build.gradle b/navigation/runtime/ktx/build.gradle
index 5c82bc2..ccda001 100644
--- a/navigation/runtime/ktx/build.gradle
+++ b/navigation/runtime/ktx/build.gradle
@@ -39,6 +39,8 @@
     api(KOTLIN_STDLIB)
     androidTestImplementation(project(":navigation:navigation-testing"))
     androidTestImplementation(TRUTH)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorDestinationBuilderTest.kt b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorDestinationBuilderTest.kt
index d5f8a75..0f3b0d7 100644
--- a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorDestinationBuilderTest.kt
+++ b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorDestinationBuilderTest.kt
@@ -17,9 +17,9 @@
 package androidx.navigation
 
 import android.net.Uri
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Test
@@ -28,7 +28,8 @@
 @SmallTest
 @RunWith(AndroidJUnit4::class)
 class ActivityNavigatorDestinationBuilderTest {
-    private val navController = NavController(InstrumentationRegistry.getTargetContext())
+    private val navController =
+        NavController(ApplicationProvider.getApplicationContext() as android.content.Context)
 
     @Test
     fun activity() {
diff --git a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt
index 2fb5862..7a54d8e 100644
--- a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt
+++ b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt
@@ -18,8 +18,8 @@
 
 import android.content.Intent
 import android.support.v4.app.ActivityOptionsCompat
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Test
diff --git a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavControllerTest.kt b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavControllerTest.kt
index f7c243f..77f0765 100644
--- a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavControllerTest.kt
+++ b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavControllerTest.kt
@@ -16,16 +16,17 @@
 
 package androidx.navigation
 
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SmallTest
 import androidx.navigation.testing.TestNavigator
 import androidx.navigation.testing.test
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.filters.SmallTest
 import org.junit.Assert.assertTrue
 import org.junit.Test
 
 @SmallTest
 class NavControllerTest {
-    private val navController = NavController(InstrumentationRegistry.getTargetContext()).apply {
+    private val navController =
+        NavController(ApplicationProvider.getApplicationContext() as android.content.Context).apply {
         navigatorProvider += TestNavigator()
     }
 
diff --git a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavHostTest.kt b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavHostTest.kt
index 0663338..db18f5e 100644
--- a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavHostTest.kt
+++ b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/NavHostTest.kt
@@ -16,16 +16,17 @@
 
 package androidx.navigation
 
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SmallTest
 import androidx.navigation.testing.TestNavigator
 import androidx.navigation.testing.test
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.filters.SmallTest
 import org.junit.Assert.assertTrue
 import org.junit.Test
 
 @SmallTest
 class NavHostTest {
-    private val navController = NavController(InstrumentationRegistry.getTargetContext()).apply {
+    private val navController =
+        NavController(ApplicationProvider.getApplicationContext() as android.content.Context).apply {
         navigatorProvider += TestNavigator()
     }
     private val navHost = NavHost { this@NavHostTest.navController }
diff --git a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ViewTest.kt b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ViewTest.kt
index 0518a0d..81ff144 100644
--- a/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ViewTest.kt
+++ b/navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ViewTest.kt
@@ -16,10 +16,10 @@
 
 package androidx.navigation
 
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import android.view.View
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
 import org.junit.Assert.assertTrue
 import org.junit.Assert.fail
 import org.junit.Test
@@ -30,8 +30,9 @@
 class ViewTest {
 
     @Test fun findNavController() {
-        val view = View(InstrumentationRegistry.getTargetContext())
-        val navController = NavController(InstrumentationRegistry.getTargetContext())
+        val view = View(ApplicationProvider.getApplicationContext() as android.content.Context)
+        val navController =
+            NavController(ApplicationProvider.getApplicationContext() as android.content.Context)
         Navigation.setViewNavController(view, navController)
 
         val foundNavController = view.findNavController()
@@ -40,7 +41,7 @@
     }
 
     @Test fun findNavControllerNull() {
-        val view = View(InstrumentationRegistry.getTargetContext())
+        val view = View(ApplicationProvider.getApplicationContext() as android.content.Context)
         try {
             view.findNavController()
             fail("findNavController should throw IllegalStateException if a NavController" +
diff --git a/navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt b/navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt
index b58028c..c3a161e 100644
--- a/navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt
+++ b/navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt
@@ -26,10 +26,10 @@
 import android.support.v4.app.ActivityOptionsCompat
 import android.view.View
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
 import androidx.test.filters.SdkSuppress
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.After
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
diff --git a/navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt b/navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
index d3d08d5..5c2d421 100644
--- a/navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
+++ b/navigation/runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
@@ -16,23 +16,21 @@
 
 package androidx.navigation
 
-import org.junit.Assert.fail
-
+import android.content.Context
 import android.os.Bundle
 import android.os.Parcel
-
 import androidx.navigation.test.R
 import androidx.navigation.testing.TestNavigator
 import androidx.navigation.testing.test
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertWithMessage
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertNull
-
+import org.junit.Assert.fail
 import org.junit.Test
 import org.junit.runner.RunWith
 
@@ -155,7 +153,7 @@
 
     @Test
     fun testSaveRestoreStateXml() {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         var navController = NavController(context)
         val navigator = SaveStateTestNavigator()
         navController.navigatorProvider.addNavigator(navigator)
@@ -180,7 +178,7 @@
 
     @Test
     fun testSaveRestoreStateProgrammatic() {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         var navController = NavController(context)
         val navigator = TestNavigator()
         navController.navigatorProvider.addNavigator(navigator)
@@ -552,7 +550,8 @@
     }
 
     private fun createNavController(): NavController {
-        val navController = NavController(InstrumentationRegistry.getTargetContext())
+        val navController =
+            NavController(ApplicationProvider.getApplicationContext() as android.content.Context)
         val navigator = TestNavigator()
         navController.navigatorProvider.addNavigator(navigator)
         return navController
diff --git a/navigation/runtime/src/androidTest/java/androidx/navigation/NavDeepLinkBuilderTest.kt b/navigation/runtime/src/androidTest/java/androidx/navigation/NavDeepLinkBuilderTest.kt
index ddabbbe..6a075db 100644
--- a/navigation/runtime/src/androidTest/java/androidx/navigation/NavDeepLinkBuilderTest.kt
+++ b/navigation/runtime/src/androidTest/java/androidx/navigation/NavDeepLinkBuilderTest.kt
@@ -17,11 +17,12 @@
 package androidx.navigation
 
 import androidx.navigation.test.R
+import android.content.Context
 import androidx.navigation.testing.TestNavigator
 import androidx.navigation.testing.test
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -30,7 +31,7 @@
 @RunWith(AndroidJUnit4::class)
 class NavDeepLinkBuilderTest {
 
-    private val targetContext get() = InstrumentationRegistry.getTargetContext()
+    private val targetContext get() = ApplicationProvider.getApplicationContext() as Context
 
     @Test
     fun fromContextSetGraphXml() {
diff --git a/navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt b/navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
index 370c0a6..770a81e 100644
--- a/navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
+++ b/navigation/runtime/src/androidTest/java/androidx/navigation/NavInflaterTest.kt
@@ -17,18 +17,18 @@
 package androidx.navigation
 
 import android.app.Instrumentation
+import android.content.Context
 import android.net.Uri
-
 import androidx.navigation.test.R
 import androidx.navigation.test.TestEnum
 import androidx.navigation.testing.TestNavigatorProvider
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.assertTrue
-
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -45,7 +45,7 @@
 
     @Test
     fun testInflateSimple() {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val navInflater = NavInflater(context, TestNavigatorProvider())
         val graph = navInflater.inflate(R.navigation.nav_simple)
 
@@ -55,7 +55,7 @@
 
     @Test
     fun testInflateDeepLinkWithApplicationId() {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val navInflater = NavInflater(context, TestNavigatorProvider())
         val graph = navInflater.inflate(R.navigation.nav_simple)
 
@@ -81,7 +81,7 @@
     @Test
     fun testDefaultArgumentsDimen() {
         val defaultArguments = inflateDefaultArgumentsFromGraph()
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val expectedValue = context.resources.getDimensionPixelSize(R.dimen.test_dimen_arg)
 
         assertEquals(expectedValue, defaultArguments.get("test_dimen")?.defaultValue)
@@ -95,7 +95,7 @@
     @Test
     fun testDefaultArgumentsColor() {
         val defaultArguments = inflateDefaultArgumentsFromGraph()
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val expectedValue = context.resources.getColor(R.color.test_color_arg)
 
         assertEquals(expectedValue, defaultArguments.get("test_color")?.defaultValue)
@@ -196,7 +196,7 @@
 
     @Test
     fun testActionArguments() {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val navInflater = NavInflater(context, TestNavigatorProvider())
         val graph = navInflater.inflate(R.navigation.nav_default_arguments)
         val startDestination = graph.findNode(graph.startDestination)
@@ -205,7 +205,7 @@
     }
 
     private fun inflateDefaultArgumentsFromGraph(): Map<String, NavArgument> {
-        val context = InstrumentationRegistry.getTargetContext()
+        val context = ApplicationProvider.getApplicationContext() as Context
         val navInflater = NavInflater(context, TestNavigatorProvider())
         val graph = navInflater.inflate(R.navigation.nav_default_arguments)
 
diff --git a/navigation/testing/build.gradle b/navigation/testing/build.gradle
index 706922f..0076dcf 100644
--- a/navigation/testing/build.gradle
+++ b/navigation/testing/build.gradle
@@ -40,8 +40,12 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
 }
diff --git a/navigation/testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorDestinationBuilderTest.kt b/navigation/testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorDestinationBuilderTest.kt
index 61131d86..c08c708 100644
--- a/navigation/testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorDestinationBuilderTest.kt
+++ b/navigation/testing/src/androidTest/java/androidx/navigation/testing/TestNavigatorDestinationBuilderTest.kt
@@ -16,11 +16,11 @@
 
 package androidx.navigation.testing
 
-import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.navigation.contains
 import androidx.navigation.get
 import androidx.navigation.navigation
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
 import org.junit.Test
diff --git a/navigation/ui/build.gradle b/navigation/ui/build.gradle
index 9cc1823..4f60eaa 100644
--- a/navigation/ui/build.gradle
+++ b/navigation/ui/build.gradle
@@ -36,11 +36,15 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 
     androidTestImplementation(project(":navigation:navigation-runtime-ktx"))
     androidTestImplementation(project(":navigation:navigation-testing"))
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TRUTH)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/navigation/ui/ktx/build.gradle b/navigation/ui/ktx/build.gradle
index f01c727..005b1d2 100644
--- a/navigation/ui/ktx/build.gradle
+++ b/navigation/ui/ktx/build.gradle
@@ -37,6 +37,8 @@
     // Ensure that the -ktx dependency graph mirrors the Java dependency graph
     api(project(":navigation:navigation-runtime-ktx"))
     api(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
 }
diff --git a/navigation/ui/src/androidTest/java/androidx/navigation/ui/AppBarConfigurationTest.kt b/navigation/ui/src/androidTest/java/androidx/navigation/ui/AppBarConfigurationTest.kt
index ce7f64a..4589745 100644
--- a/navigation/ui/src/androidTest/java/androidx/navigation/ui/AppBarConfigurationTest.kt
+++ b/navigation/ui/src/androidTest/java/androidx/navigation/ui/AppBarConfigurationTest.kt
@@ -23,8 +23,8 @@
 import androidx.navigation.plusAssign
 import androidx.navigation.testing.TestNavigator
 import androidx.navigation.testing.test
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import com.google.common.truth.Truth.assertThat
 import org.junit.Test
 import org.junit.runner.RunWith
diff --git a/paging/common/ktx/build.gradle b/paging/common/ktx/build.gradle
index 5a465cb..55b0ff0 100644
--- a/paging/common/ktx/build.gradle
+++ b/paging/common/ktx/build.gradle
@@ -29,6 +29,8 @@
     compile(KOTLIN_STDLIB)
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 }
 
diff --git a/paging/runtime/build.gradle b/paging/runtime/build.gradle
index 4d267ea..3b09dcf 100644
--- a/paging/runtime/build.gradle
+++ b/paging/runtime/build.gradle
@@ -41,6 +41,8 @@
     androidTestImplementation(JUNIT)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(KOTLIN_STDLIB)
 }
diff --git a/paging/runtime/ktx/build.gradle b/paging/runtime/ktx/build.gradle
index 42443fb..fec7c4f 100644
--- a/paging/runtime/ktx/build.gradle
+++ b/paging/runtime/ktx/build.gradle
@@ -37,6 +37,8 @@
     // Ensure that the -ktx dependency graph mirrors the Java dependency graph
     api(project(":paging:paging-common-ktx"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(ARCH_CORE_TESTING)
diff --git a/paging/rxjava2/build.gradle b/paging/rxjava2/build.gradle
index 413c410..ac29079 100644
--- a/paging/rxjava2/build.gradle
+++ b/paging/rxjava2/build.gradle
@@ -39,6 +39,8 @@
     androidTestImplementation(JUNIT)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(KOTLIN_STDLIB)
diff --git a/paging/rxjava2/ktx/build.gradle b/paging/rxjava2/ktx/build.gradle
index 16645ee..7f972b2 100644
--- a/paging/rxjava2/ktx/build.gradle
+++ b/paging/rxjava2/ktx/build.gradle
@@ -37,6 +37,8 @@
     // Ensure that the -ktx dependency graph mirrors the Java dependency graph
     api(project(":paging:paging-common-ktx"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(ARCH_CORE_TESTING)
diff --git a/palette/build.gradle b/palette/build.gradle
index 74e735a..2fc2d83 100644
--- a/palette/build.gradle
+++ b/palette/build.gradle
@@ -18,6 +18,8 @@
 
     annotationProcessor(NULLAWAY)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/palette/ktx/build.gradle b/palette/ktx/build.gradle
index 7b1c11c..a327eb2 100644
--- a/palette/ktx/build.gradle
+++ b/palette/ktx/build.gradle
@@ -35,6 +35,8 @@
     api(project(":palette"))
     api(KOTLIN_STDLIB)
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
 }
 
diff --git a/palette/src/androidTest/java/androidx/palette/graphics/BucketTests.java b/palette/src/androidTest/java/androidx/palette/graphics/BucketTests.java
index 4760017..ff89982 100644
--- a/palette/src/androidTest/java/androidx/palette/graphics/BucketTests.java
+++ b/palette/src/androidTest/java/androidx/palette/graphics/BucketTests.java
@@ -25,8 +25,8 @@
 import android.graphics.Color;
 import android.graphics.Paint;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/palette/src/androidTest/java/androidx/palette/graphics/ConsistencyTest.java b/palette/src/androidTest/java/androidx/palette/graphics/ConsistencyTest.java
index 7a0982c..01d3d4b 100644
--- a/palette/src/androidTest/java/androidx/palette/graphics/ConsistencyTest.java
+++ b/palette/src/androidTest/java/androidx/palette/graphics/ConsistencyTest.java
@@ -20,8 +20,8 @@
 
 import android.graphics.Bitmap;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/palette/src/androidTest/java/androidx/palette/graphics/MaxColorsTest.java b/palette/src/androidTest/java/androidx/palette/graphics/MaxColorsTest.java
index 4a164bb..3e95cfa 100644
--- a/palette/src/androidTest/java/androidx/palette/graphics/MaxColorsTest.java
+++ b/palette/src/androidTest/java/androidx/palette/graphics/MaxColorsTest.java
@@ -18,8 +18,8 @@
 
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/palette/src/androidTest/java/androidx/palette/graphics/SwatchTests.java b/palette/src/androidTest/java/androidx/palette/graphics/SwatchTests.java
index c269141..63660f2 100644
--- a/palette/src/androidTest/java/androidx/palette/graphics/SwatchTests.java
+++ b/palette/src/androidTest/java/androidx/palette/graphics/SwatchTests.java
@@ -26,8 +26,8 @@
 
 import android.graphics.Color;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/palette/src/androidTest/java/androidx/palette/graphics/TestUtils.java b/palette/src/androidTest/java/androidx/palette/graphics/TestUtils.java
index d138c71..ef64a51 100644
--- a/palette/src/androidTest/java/androidx/palette/graphics/TestUtils.java
+++ b/palette/src/androidTest/java/androidx/palette/graphics/TestUtils.java
@@ -23,13 +23,13 @@
 import android.graphics.Color;
 
 import androidx.palette.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 class TestUtils {
 
     static Bitmap loadSampleBitmap() {
         return BitmapFactory.decodeResource(
-                InstrumentationRegistry.getContext().getResources(),
+                ApplicationProvider.getApplicationContext().getResources(),
                 R.drawable.photo);
     }
 
diff --git a/percent/build.gradle b/percent/build.gradle
index 35f4af5..844beea 100644
--- a/percent/build.gradle
+++ b/percent/build.gradle
@@ -9,6 +9,8 @@
 dependencies {
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/percent/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java b/percent/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
index 1611444..f89a8f1 100644
--- a/percent/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
+++ b/percent/src/androidTest/java/androidx/percentlayout/widget/BaseInstrumentationTestCase.java
@@ -19,8 +19,9 @@
 import static org.junit.Assert.assertEquals;
 
 import android.app.Activity;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
diff --git a/preference/build.gradle b/preference/build.gradle
index 9dde886..f2f1de8 100644
--- a/preference/build.gradle
+++ b/preference/build.gradle
@@ -29,6 +29,8 @@
     api("androidx.appcompat:appcompat:1.0.0")
     api("androidx.recyclerview:recyclerview:1.0.0")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/preference/ktx/build.gradle b/preference/ktx/build.gradle
index ace9941..e6af5f3 100644
--- a/preference/ktx/build.gradle
+++ b/preference/ktx/build.gradle
@@ -38,6 +38,8 @@
     api(KOTLIN_STDLIB)
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/preference/ktx/src/androidTest/java/androidx/preference/PreferenceGroupTest.kt b/preference/ktx/src/androidTest/java/androidx/preference/PreferenceGroupTest.kt
index 83f97b8..90413c74 100644
--- a/preference/ktx/src/androidTest/java/androidx/preference/PreferenceGroupTest.kt
+++ b/preference/ktx/src/androidTest/java/androidx/preference/PreferenceGroupTest.kt
@@ -16,7 +16,7 @@
 
 package androidx.preference
 
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
 import androidx.testutils.assertThrows
@@ -36,7 +36,7 @@
     @JvmField
     @Rule
     val rule = ActivityTestRule(TestPreferenceActivity::class.java)
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
     private lateinit var preferenceGroup: PreferenceGroup
 
     @Before fun setup() {
diff --git a/preference/src/androidTest/java/androidx/preference/PreferenceGroupInitialExpandedChildrenCountTest.java b/preference/src/androidTest/java/androidx/preference/PreferenceGroupInitialExpandedChildrenCountTest.java
index 607757f..2268d27 100644
--- a/preference/src/androidTest/java/androidx/preference/PreferenceGroupInitialExpandedChildrenCountTest.java
+++ b/preference/src/androidTest/java/androidx/preference/PreferenceGroupInitialExpandedChildrenCountTest.java
@@ -23,10 +23,10 @@
 import android.content.Context;
 import android.os.Parcelable;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -57,7 +57,7 @@
     @UiThreadTest
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mPreferenceManager = new PreferenceManager(mContext);
         mScreen = mPreferenceManager.createPreferenceScreen(mContext);
         mScreen.setKey(PREFERENCE_KEY);
diff --git a/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java b/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
index 930b101..62b8456 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/EditTextPreferenceTest.java
@@ -37,9 +37,9 @@
 import androidx.preference.test.R;
 import androidx.preference.tests.helpers.PreferenceTestHelperActivity;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/preference/src/androidTest/java/androidx/preference/tests/ExpandablePreferenceTest.java b/preference/src/androidTest/java/androidx/preference/tests/ExpandablePreferenceTest.java
index 44ae27d..c545d6f 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/ExpandablePreferenceTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/ExpandablePreferenceTest.java
@@ -25,10 +25,10 @@
 import androidx.preference.PreferenceGroupAdapter;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -50,7 +50,7 @@
     @Before
     @UiThreadTest
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
 
diff --git a/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java b/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
index 09664aa..6fae995 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/ListPreferenceSummaryTest.java
@@ -26,10 +26,10 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -52,7 +52,7 @@
     @Before
     @UiThreadTest
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
     }
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
index 5a051de..31a12b4 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceComparisonCallbackTest.java
@@ -30,9 +30,9 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.TwoStatePreference;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +51,7 @@
 
     @Before
     public void setup() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         mPref1 = new Preference(context);
         mPref2 = new Preference(context);
         mComparisonCallback = new PreferenceManager.SimplePreferenceComparisonCallback();
@@ -72,7 +72,7 @@
     @Test
     public void testClassComparison() {
         final Preference checkboxPreference =
-                new CheckBoxPreference(InstrumentationRegistry.getTargetContext());
+                new CheckBoxPreference(ApplicationProvider.getApplicationContext());
         assertFalse("Compare class",
                 mComparisonCallback.arePreferenceContentsTheSame(mPref1, checkboxPreference));
     }
@@ -220,9 +220,9 @@
     @Test
     public void testTwoStateComparison() {
         final TwoStatePreference checkbox1 =
-                new CheckBoxPreference(InstrumentationRegistry.getTargetContext());
+                new CheckBoxPreference(ApplicationProvider.getApplicationContext());
         final TwoStatePreference checkbox2 =
-                new CheckBoxPreference(InstrumentationRegistry.getTargetContext());
+                new CheckBoxPreference(ApplicationProvider.getApplicationContext());
 
         checkbox1.setChecked(true);
         checkbox2.setChecked(true);
@@ -250,9 +250,9 @@
     @Test
     public void testDropDownComparison() {
         final Preference dropdown1 =
-                new DropDownPreference(InstrumentationRegistry.getTargetContext());
+                new DropDownPreference(ApplicationProvider.getApplicationContext());
         final Preference dropdown2 =
-                new DropDownPreference(InstrumentationRegistry.getTargetContext());
+                new DropDownPreference(ApplicationProvider.getApplicationContext());
 
         assertTrue("Compare aliased drop down pref",
                 mComparisonCallback.arePreferenceContentsTheSame(dropdown1, dropdown1));
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
index d3873be..d72d608 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceCopyingTest.java
@@ -16,7 +16,6 @@
 
 package androidx.preference.tests;
 
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
 import static androidx.test.espresso.Espresso.onView;
 import static androidx.test.espresso.Espresso.pressBack;
 import static androidx.test.espresso.action.ViewActions.click;
@@ -25,6 +24,7 @@
 import static androidx.test.espresso.assertion.ViewAssertions.matches;
 import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
 import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -39,9 +39,9 @@
 import androidx.preference.test.R;
 import androidx.preference.tests.helpers.PreferenceTestHelperActivity;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
index 39f68b9..73589bc 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceDataStoreTest.java
@@ -51,10 +51,10 @@
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SeekBarPreference;
 import androidx.preference.tests.helpers.PreferenceWrapper;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -86,7 +86,7 @@
     @Before
     @UiThreadTest
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mDataStore = mock(PreferenceDataStore.class);
 
         mManager = new PreferenceManager(mContext);
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceIconSpaceTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceIconSpaceTest.java
index c617321..062d6f8 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceIconSpaceTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceIconSpaceTest.java
@@ -28,10 +28,10 @@
 import androidx.preference.AndroidResources;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -51,7 +51,7 @@
 
     @Before
     public void setUp() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         mImageView = new ImageView(context);
         mImageFrame = new View(context);
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceParentGroupTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceParentGroupTest.java
index 1bcae16..78cbd40 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceParentGroupTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceParentGroupTest.java
@@ -25,10 +25,10 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -45,7 +45,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     /**
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferencePersistTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferencePersistTest.java
index 2e39ce9..cc5cacb 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferencePersistTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferencePersistTest.java
@@ -30,10 +30,10 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.tests.helpers.PreferenceWrapper;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -67,7 +67,7 @@
     @Before
     @UiThreadTest
     public void setup() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         PreferenceManager manager = new PreferenceManager(context);
         mSharedPref = manager.getSharedPreferences();
 
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceSingleLineTitleTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceSingleLineTitleTest.java
index 715966d..f30580f 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceSingleLineTitleTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceSingleLineTitleTest.java
@@ -27,10 +27,10 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +49,7 @@
 
     @Before
     public void setUp() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         // Create a spy of the title so we can verify setSingleLine() behaviour
         mTitleView = spy(new TextView(context));
diff --git a/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java b/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
index ef8aa05..fc43eec 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/PreferenceVisibilityTest.java
@@ -37,11 +37,11 @@
 import androidx.preference.test.R;
 import androidx.preference.tests.helpers.PreferenceTestHelperActivity;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/preference/src/androidTest/java/androidx/preference/tests/SummaryProviderTest.java b/preference/src/androidTest/java/androidx/preference/tests/SummaryProviderTest.java
index cea0f7e..bee3764 100644
--- a/preference/src/androidTest/java/androidx/preference/tests/SummaryProviderTest.java
+++ b/preference/src/androidTest/java/androidx/preference/tests/SummaryProviderTest.java
@@ -27,10 +27,10 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -53,7 +53,7 @@
     @Before
     @UiThreadTest
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
         mSharedPreferences = preferenceManager.getSharedPreferences();
diff --git a/recyclerview/benchmark/build.gradle b/recyclerview/benchmark/build.gradle
index f5235e5..d90c85b 100644
--- a/recyclerview/benchmark/build.gradle
+++ b/recyclerview/benchmark/build.gradle
@@ -27,6 +27,8 @@
     androidTestImplementation(project(":recyclerview"))
     androidTestImplementation(project(":benchmark"))
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(KOTLIN_STDLIB)
diff --git a/recyclerview/benchmark/src/androidTest/java/androidx/recyclerview/benchmark/ScrollBenchmark.kt b/recyclerview/benchmark/src/androidTest/java/androidx/recyclerview/benchmark/ScrollBenchmark.kt
index 09fd56a..7e112af 100644
--- a/recyclerview/benchmark/src/androidTest/java/androidx/recyclerview/benchmark/ScrollBenchmark.kt
+++ b/recyclerview/benchmark/src/androidTest/java/androidx/recyclerview/benchmark/ScrollBenchmark.kt
@@ -24,9 +24,9 @@
 import androidx.recyclerview.benchmark.test.R
 import androidx.recyclerview.widget.RecyclerView
 import androidx.test.annotation.UiThreadTest
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
diff --git a/recyclerview/recyclerview/build.gradle b/recyclerview/recyclerview/build.gradle
index bca90fa..d05c856 100644
--- a/recyclerview/recyclerview/build.gradle
+++ b/recyclerview/recyclerview/build.gradle
@@ -12,6 +12,8 @@
     api(project(":core"))
     api("androidx.customview:customview:1.0.0")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
@@ -23,6 +25,8 @@
 
     testImplementation(JUNIT)
     testImplementation(MOCKITO_CORE)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
 }
 
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/test/RecyclerViewTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/test/RecyclerViewTest.java
index 985f181..3c4f715 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/test/RecyclerViewTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/test/RecyclerViewTest.java
@@ -31,10 +31,10 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.recyclerview.widget.StaggeredGridLayoutManager;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/AsyncListUtilLayoutTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/AsyncListUtilLayoutTest.java
index fdcdf7e..654d570 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/AsyncListUtilLayoutTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/AsyncListUtilLayoutTest.java
@@ -27,9 +27,9 @@
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.MatcherAssert;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/BaseRecyclerViewInstrumentationTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/BaseRecyclerViewInstrumentationTest.java
index c2b367c..8743bb6 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/BaseRecyclerViewInstrumentationTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/BaseRecyclerViewInstrumentationTest.java
@@ -44,7 +44,7 @@
 import androidx.annotation.Nullable;
 import androidx.core.view.ViewCompat;
 import androidx.recyclerview.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 import androidx.testutils.PollingCheck;
 
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ChildHelperTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ChildHelperTest.java
index 8d92c32..b040833 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ChildHelperTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ChildHelperTest.java
@@ -26,9 +26,9 @@
 import android.view.View;
 import android.view.ViewGroup;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -46,7 +46,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mLoggingCallback = new LoggingCallback();
         mChildHelper = new ChildHelper(mLoggingCallback);
     }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/CustomEdgeEffectTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/CustomEdgeEffectTest.java
index 3c22c34..8a038fd 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/CustomEdgeEffectTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/CustomEdgeEffectTest.java
@@ -33,8 +33,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.core.view.InputDeviceCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultItemAnimatorTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultItemAnimatorTest.java
index 811e7af..9054977 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultItemAnimatorTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultItemAnimatorTest.java
@@ -27,8 +27,8 @@
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultMeasureSpecTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultMeasureSpecTest.java
index da15088..ba1f713 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultMeasureSpecTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DefaultMeasureSpecTest.java
@@ -24,7 +24,7 @@
 import android.graphics.Rect;
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 
 import org.hamcrest.CoreMatchers;
@@ -49,7 +49,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mRecyclerView = new RecyclerView(InstrumentationRegistry.getContext());
+        mRecyclerView = new RecyclerView(ApplicationProvider.getApplicationContext());
         if (mPadding != null) {
             mRecyclerView.setPadding(mPadding.left, mPadding.top, mPadding.right, mPadding.bottom);
         }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DividerItemDecorationTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DividerItemDecorationTest.java
index 4671d690..72046f0 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DividerItemDecorationTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/DividerItemDecorationTest.java
@@ -24,9 +24,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -41,7 +41,7 @@
 
     @Test
     public void testNullListDivider() {
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         RecyclerView rv = new RecyclerView(context);
         rv.setLayoutManager(new LinearLayoutManager(context));
         rv.setAdapter(new MyAdapter(STRINGS));
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/FocusSearchNavigationTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/FocusSearchNavigationTest.java
index 535cf6b..a9cb7cf 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/FocusSearchNavigationTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/FocusSearchNavigationTest.java
@@ -39,8 +39,8 @@
 import androidx.core.view.ViewCompat;
 import androidx.recyclerview.test.R;
 import androidx.recyclerview.test.RecyclerViewTestActivity;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.hamcrest.BaseMatcher;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GapWorkerTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GapWorkerTest.java
index ad945f7..2f22e89 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GapWorkerTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GapWorkerTest.java
@@ -24,10 +24,10 @@
 import android.content.Context;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,7 +40,7 @@
 public class GapWorkerTest {
 
     private Context getContext() {
-        return InstrumentationRegistry.getContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GridLayoutManagerTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GridLayoutManagerTest.java
index 072efca..8680fb4 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GridLayoutManagerTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/GridLayoutManagerTest.java
@@ -43,9 +43,9 @@
 import androidx.core.view.AccessibilityDelegateCompat;
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorV2ApiTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorV2ApiTest.java
index 2fad114..aa4fc36 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorV2ApiTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemAnimatorV2ApiTest.java
@@ -31,8 +31,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemTouchHelperTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemTouchHelperTest.java
index 5ecc7cd..6f6006d 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemTouchHelperTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ItemTouchHelperTest.java
@@ -32,10 +32,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.core.util.Pair;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/LinearLayoutManagerSavedStateTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/LinearLayoutManagerSavedStateTest.java
index 8c5e912..2448209 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/LinearLayoutManagerSavedStateTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/LinearLayoutManagerSavedStateTest.java
@@ -23,8 +23,8 @@
 import android.os.Parcelable;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MessageQueueTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MessageQueueTest.java
index c3551b6..618bd02 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MessageQueueTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MessageQueueTest.java
@@ -21,8 +21,8 @@
 import static org.hamcrest.CoreMatchers.sameInstance;
 import static org.hamcrest.MatcherAssert.assertThat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MultiRecyclerViewPrefetchTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MultiRecyclerViewPrefetchTest.java
index e8505ea..34e2ca3 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MultiRecyclerViewPrefetchTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/MultiRecyclerViewPrefetchTest.java
@@ -25,10 +25,10 @@
 import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -101,7 +101,7 @@
     }
 
     private Context getContext() {
-        return InstrumentationRegistry.getContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     private void clearCachesAndPool() {
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecycledViewPoolTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecycledViewPoolTest.java
index a6dd396..5328641 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecycledViewPoolTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecycledViewPoolTest.java
@@ -28,9 +28,9 @@
 import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -47,7 +47,8 @@
     }
 
     private RecyclerView.ViewHolder makeHolder(int viewType) {
-        RecyclerView.ViewHolder holder = new MockViewHolder(InstrumentationRegistry.getContext());
+        RecyclerView.ViewHolder holder = new MockViewHolder(
+                ApplicationProvider.getApplicationContext());
         holder.mItemViewType = viewType;
         return holder;
     }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
index 40f6991b..0abcd0f 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAccessibilityLifecycleTest.java
@@ -36,10 +36,10 @@
 import androidx.core.view.AccessibilityDelegateCompat;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAnimationsTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAnimationsTest.java
index 4b62e71..459665c 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAnimationsTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAnimationsTest.java
@@ -33,9 +33,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.core.view.ViewCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.MatcherAssert;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAutofillTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAutofillTest.java
index c9672f6..ccfc66b 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAutofillTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewAutofillTest.java
@@ -26,10 +26,10 @@
 
 import androidx.core.view.ViewCompat;
 import androidx.recyclerview.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +38,7 @@
 @RunWith(AndroidJUnit4.class)
 public class RecyclerViewAutofillTest  {
     static Context getContext() {
-        return InstrumentationRegistry.getTargetContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
index f91a4b2..a8b94e7 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewBasicTest.java
@@ -46,9 +46,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -71,7 +71,7 @@
     }
 
     private Context getContext() {
-        return InstrumentationRegistry.getTargetContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
index 430f572..bd103c4 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewCacheTest.java
@@ -44,10 +44,10 @@
 import android.widget.FrameLayout;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -110,7 +110,7 @@
     }
 
     private Context getContext() {
-        return InstrumentationRegistry.getContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     private void layout(int width, int height) {
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFastScrollerTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFastScrollerTest.java
index 2b89bdf..12d4914 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFastScrollerTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFastScrollerTest.java
@@ -35,10 +35,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.recyclerview.R;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFocusTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFocusTest.java
index 3ad6b26c..3bd51db 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFocusTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewFocusTest.java
@@ -25,11 +25,11 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -234,7 +234,7 @@
         mTestLinearLayoutManager = new TestLinearLayoutManager(testContentViewActivity,
                 orientation, false);
 
-        mRecyclerView = new RecyclerView(InstrumentationRegistry.getContext());
+        mRecyclerView = new RecyclerView(ApplicationProvider.getApplicationContext());
         if (!ltr) {
             mRecyclerView.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
         }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewLayoutTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewLayoutTest.java
index 56bf5ae..fd5cbcf 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewLayoutTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewLayoutTest.java
@@ -70,11 +70,11 @@
 import androidx.core.view.NestedScrollingParent2;
 import androidx.core.view.ViewCompat;
 import androidx.recyclerview.test.NestedScrollingParent2Adapter;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.MatcherAssert;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingChildTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingChildTest.java
index eb5aaad..8df709e 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingChildTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingChildTest.java
@@ -41,9 +41,9 @@
 import androidx.core.view.NestedScrollingChild3;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.Direction;
 import androidx.testutils.FlingData;
 import androidx.testutils.MotionEventData;
@@ -71,7 +71,7 @@
 
     private void setup(boolean vertical, int scrollDistance, boolean parentAccepts) {
 
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         // Create views
 
@@ -187,7 +187,8 @@
     public void uiFingerScroll_scrollsBeyondLimitVertical_parentOnNestedScrollCalledCorrectly() {
         setup(true, 100, true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 300 - touchSlop, 0);
@@ -203,7 +204,8 @@
     public void uiFingerScroll_scrollsBeyondLimitHorizontal_parentOnNestedScrollCalledCorrectly() {
         setup(false, 100, true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 300 - touchSlop, 500, 0);
@@ -219,7 +221,8 @@
     public void uiFingerScroll_scrollsWithinLimitVertical_parentOnNestedScrollCalledCorrectly() {
         setup(true, 100, true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 450 - touchSlop, 0);
@@ -235,7 +238,8 @@
     public void uiFingerScroll_scrollsWithinLimitHorizontal_parentOnNestedScrollCalledCorrectly() {
         setup(false, 100, true);
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 450 - touchSlop, 500, 0);
@@ -259,7 +263,8 @@
         }).when(mParentSpy)
                 .onNestedPreScroll(any(View.class), anyInt(), anyInt(), any(int[].class), anyInt());
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 500, 300, 0);
@@ -290,7 +295,8 @@
         }).when(mParentSpy)
                 .onNestedPreScroll(any(View.class), anyInt(), anyInt(), any(int[].class), anyInt());
         int touchSlop =
-                ViewConfiguration.get(InstrumentationRegistry.getContext()).getScaledTouchSlop();
+                ViewConfiguration.get(
+                        ApplicationProvider.getApplicationContext()).getScaledTouchSlop();
         MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 500, 500, 0);
         MotionEvent move =
                 MotionEvent.obtain(0, 100, MotionEvent.ACTION_MOVE, 300, 500, 0);
@@ -360,7 +366,7 @@
 
         setup(true, 1000, true);
 
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         FlingData flingData = SimpleGestureGeneratorKt.generateFlingData(context);
 
         final long firstDownTime = SystemClock.uptimeMillis();
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingTest.java
index 41f6777..b602e97 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewNestedScrollingTest.java
@@ -40,10 +40,10 @@
 import androidx.core.view.NestedScrollingChild3;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.Direction;
 import androidx.testutils.SimpleGestureGeneratorKt;
 
@@ -209,7 +209,7 @@
     public void fling_fullyParticipatesInNestedScrolling() throws Throwable {
         setup();
         attachToActivity();
-        final Context context = InstrumentationRegistry.getContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final int targetVelocity = (int) Math.ceil(
                 SimpleGestureGeneratorKt.generateFlingData(context).getVelocity() * 1000);
 
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnGenericMotionEventTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnGenericMotionEventTest.java
index 8e382bb..a1e067e 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnGenericMotionEventTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnGenericMotionEventTest.java
@@ -29,9 +29,9 @@
 import androidx.annotation.NonNull;
 import androidx.core.view.InputDeviceCompat;
 import androidx.core.view.ViewConfigurationCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +49,7 @@
     }
 
     private Context getContext() {
-        return InstrumentationRegistry.getContext();
+        return ApplicationProvider.getApplicationContext();
     }
 
     private void layout() {
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnItemTouchListenerTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnItemTouchListenerTest.java
index a142e93..c4edbf5 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnItemTouchListenerTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewOnItemTouchListenerTest.java
@@ -29,9 +29,9 @@
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -54,7 +54,7 @@
 
     @Before
     public void setup() {
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         mChildView = new View(context);
         mChildView.setMinimumWidth(1000);
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewPrefetchTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewPrefetchTest.java
index c0108eb..cb8fc0ff 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewPrefetchTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewPrefetchTest.java
@@ -21,9 +21,9 @@
 
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollToPositionTest.kt b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollToPositionTest.kt
index 6e06da6..38c57bb 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollToPositionTest.kt
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollToPositionTest.kt
@@ -19,9 +19,9 @@
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.hamcrest.CoreMatchers.`is`
 import org.junit.Assert.assertThat
 import org.junit.Before
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollerTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollerTest.java
index 1582b38..ea6a3cb 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollerTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewSmoothScrollerTest.java
@@ -25,9 +25,9 @@
 
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +38,7 @@
 
     @Test
     public void stop_whileRunning_isRunningIsFalseInOnStop() {
-        RecyclerView recyclerView = new RecyclerView(InstrumentationRegistry.getContext());
+        RecyclerView recyclerView = new RecyclerView(ApplicationProvider.getApplicationContext());
         RecyclerView.LayoutManager layoutManager = mock(RecyclerView.LayoutManager.class);
         recyclerView.setLayoutManager(layoutManager);
         MockSmoothScroller mockSmoothScroller = spy(new MockSmoothScroller());
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewWithTransitionsTest.kt b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewWithTransitionsTest.kt
index d4bd795..3a918c5 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewWithTransitionsTest.kt
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/RecyclerViewWithTransitionsTest.kt
@@ -20,9 +20,9 @@
 import android.view.ViewGroup
 import android.widget.FrameLayout
 import android.widget.TextView
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
 import androidx.test.rule.ActivityTestRule
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Rule
 import org.junit.Test
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ScrollToPositionWithAutoMeasure.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ScrollToPositionWithAutoMeasure.java
index 0ebd9ce..0953f24 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ScrollToPositionWithAutoMeasure.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ScrollToPositionWithAutoMeasure.java
@@ -27,8 +27,8 @@
 import android.graphics.Rect;
 import android.view.View;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TestActivity.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TestActivity.java
index abb2fd0..57da5b8 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TestActivity.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TestActivity.java
@@ -25,7 +25,7 @@
 public class TestActivity extends Activity {
     // This is not great but the only way to do this until test runner adds support to not kill
     // activities after tests.
-    private static final String TEST_RUNNER =
+    private static final String TEST_EXT_JUNIT =
             MonitoringInstrumentation.class.getCanonicalName() + "$" + MonitoringInstrumentation
                     .ActivityFinisher.class.getSimpleName();
     private volatile TestedFrameLayout mContainer;
@@ -67,7 +67,7 @@
             // this is terrible but easy workaround for selective finishing
             for (StackTraceElement element : stackTrace) {
 
-                if (TEST_RUNNER.equals(element.getClassName())) {
+                if (TEST_EXT_JUNIT.equals(element.getClassName())) {
                     // don't allow activity finisher to finish this.
                     return;
                 }
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ThreadUtilTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ThreadUtilTest.java
index e4b7d71..68be966 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ThreadUtilTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ThreadUtilTest.java
@@ -24,9 +24,9 @@
 
 import android.os.Looper;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TileListTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TileListTest.java
index e6cdd70..36e484e 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TileListTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/TileListTest.java
@@ -23,8 +23,8 @@
 import static org.hamcrest.CoreMatchers.sameInstance;
 import static org.hamcrest.MatcherAssert.assertThat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ViewBoundsCheckTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ViewBoundsCheckTest.java
index f8032f4..fd6c6e0 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ViewBoundsCheckTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/ViewBoundsCheckTest.java
@@ -22,7 +22,7 @@
 import android.content.Context;
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 
 import org.junit.Before;
@@ -89,7 +89,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     private void setUpViews(int[] parentBound, int[][] childrenBound) {
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrapContentBasicTest.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrapContentBasicTest.java
index 1cfea2d..332a3dd 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrapContentBasicTest.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrapContentBasicTest.java
@@ -26,9 +26,9 @@
 import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -48,7 +48,7 @@
 
     @Before
     public void setup() throws Exception {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mRecyclerView = new RecyclerView(mContext);
         mLayoutManager = spy(new WrapContentLayoutManager());
         // working around a mockito issue
diff --git a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrappedRecyclerView.java b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrappedRecyclerView.java
index f322804..e610193 100644
--- a/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrappedRecyclerView.java
+++ b/recyclerview/recyclerview/src/androidTest/java/androidx/recyclerview/widget/WrappedRecyclerView.java
@@ -20,7 +20,7 @@
 import android.util.AttributeSet;
 
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.hamcrest.CoreMatchers;
 import org.hamcrest.MatcherAssert;
diff --git a/recyclerview/selection/build.gradle b/recyclerview/selection/build.gradle
index 2c0eea4..4bcaed2 100644
--- a/recyclerview/selection/build.gradle
+++ b/recyclerview/selection/build.gradle
@@ -27,6 +27,8 @@
     api(project(":annotation"))
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it's own MockMaker
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/BandSelectionHelperTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/BandSelectionHelperTest.java
index b3f71b5..98224d0 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/BandSelectionHelperTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/BandSelectionHelperTest.java
@@ -29,8 +29,8 @@
 import androidx.recyclerview.selection.testing.TestEvents.Builder;
 import androidx.recyclerview.selection.testing.TestItemKeyProvider;
 import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
index 5e5f6ce..d9f79d5 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTrackerTest.java
@@ -30,8 +30,8 @@
 import androidx.recyclerview.selection.testing.TestAdapter;
 import androidx.recyclerview.selection.testing.TestItemKeyProvider;
 import androidx.recyclerview.selection.testing.TestSelectionObserver;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTracker_SingleSelectTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTracker_SingleSelectTest.java
index cab58ed..f34e952 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTracker_SingleSelectTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/DefaultSelectionTracker_SingleSelectTest.java
@@ -22,8 +22,8 @@
 import androidx.recyclerview.selection.testing.TestAdapter;
 import androidx.recyclerview.selection.testing.TestItemKeyProvider;
 import androidx.recyclerview.selection.testing.TestSelectionObserver;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureRouterTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureRouterTest.java
index 1167847..0eb7bd3 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureRouterTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureRouterTest.java
@@ -27,8 +27,8 @@
 
 import androidx.recyclerview.selection.testing.TestEvents.Mouse;
 import androidx.recyclerview.selection.testing.TestEvents.Touch;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
index 1f405ba..de50953 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
@@ -27,8 +27,8 @@
 import androidx.recyclerview.selection.testing.TestEvents;
 import androidx.recyclerview.selection.testing.TestItemDetailsLookup;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelper_RecyclerViewDelegateTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelper_RecyclerViewDelegateTest.java
index cca7dca..2f5e3337 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelper_RecyclerViewDelegateTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelper_RecyclerViewDelegateTest.java
@@ -24,8 +24,8 @@
 
 import androidx.recyclerview.selection.GestureSelectionHelper.RecyclerViewDelegate;
 import androidx.recyclerview.selection.testing.TestEvents;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
index a5ce3f1..7d414c14 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GridModelTest.java
@@ -28,8 +28,8 @@
 import androidx.recyclerview.selection.testing.TestAdapter;
 import androidx.recyclerview.selection.testing.TestItemKeyProvider;
 import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
index 670da51..eff4173 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandlerTest.java
@@ -40,8 +40,8 @@
 import androidx.recyclerview.selection.testing.TestOnContextClickListener;
 import androidx.recyclerview.selection.testing.TestOnItemActivatedListener;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
index 2b0915a..825d45f 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/MouseInputHandler_RangeTest.java
@@ -30,8 +30,8 @@
 import androidx.recyclerview.selection.testing.TestItemKeyProvider;
 import androidx.recyclerview.selection.testing.TestOnContextClickListener;
 import androidx.recyclerview.selection.testing.TestOnItemActivatedListener;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/OperationMonitorTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/OperationMonitorTest.java
index b5d2fa0..a6568f9 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/OperationMonitorTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/OperationMonitorTest.java
@@ -20,8 +20,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/RangeTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/RangeTest.java
index 6b0d189..33ed834 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/RangeTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/RangeTest.java
@@ -22,8 +22,8 @@
 import static org.junit.Assert.assertEquals;
 
 import androidx.recyclerview.selection.testing.TestData;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
index bb0d6ad..cc3f05d 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTest.java
@@ -20,8 +20,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTracker_InstanceStateTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTracker_InstanceStateTest.java
index 3639cc1..cb90de6 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTracker_InstanceStateTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/SelectionTracker_InstanceStateTest.java
@@ -22,8 +22,8 @@
 
 import androidx.recyclerview.selection.testing.Bundles;
 import androidx.recyclerview.selection.testing.SelectionTrackers;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_LongTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_LongTest.java
index 8a89285..895e3e3 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_LongTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_LongTest.java
@@ -21,8 +21,8 @@
 import android.os.Bundle;
 
 import androidx.recyclerview.selection.testing.Bundles;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_ParcelableTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_ParcelableTest.java
index 41ae336..9034f00 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_ParcelableTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_ParcelableTest.java
@@ -22,8 +22,8 @@
 import android.os.Bundle;
 
 import androidx.recyclerview.selection.testing.Bundles;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_StringTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_StringTest.java
index f0e29d4..d492982 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_StringTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/StorageStrategy_StringTest.java
@@ -21,8 +21,8 @@
 import android.os.Bundle;
 
 import androidx.recyclerview.selection.testing.Bundles;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
index 409bba3..b4cbf4a 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
@@ -34,8 +34,8 @@
 import androidx.recyclerview.selection.testing.TestRunnable;
 import androidx.recyclerview.selection.testing.TestSelectionPredicate;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/ViewAutoScrollerTest.java b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/ViewAutoScrollerTest.java
index 35b851e..1fcd560 100644
--- a/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/ViewAutoScrollerTest.java
+++ b/recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/ViewAutoScrollerTest.java
@@ -24,8 +24,8 @@
 
 import androidx.annotation.Nullable;
 import androidx.recyclerview.selection.ViewAutoScroller.ScrollHost;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/remotecallback/build.gradle b/remotecallback/build.gradle
index 32fb43c..f3eb6e9 100644
--- a/remotecallback/build.gradle
+++ b/remotecallback/build.gradle
@@ -27,6 +27,8 @@
     implementation "androidx.annotation:annotation:1.0.0"
     implementation project(path: ':collection')
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/ArrayParamTypesTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/ArrayParamTypesTest.java
index 5332a20..a7c937d 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/ArrayParamTypesTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/ArrayParamTypesTest.java
@@ -25,9 +25,9 @@
 import android.content.Context;
 import android.content.Intent;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,7 +39,7 @@
 @SmallTest
 public class ArrayParamTypesTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     private static Object sParam;
     private static CountDownLatch sLatch;
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicProviderTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicProviderTest.java
index cafec4b..03fd443 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicProviderTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicProviderTest.java
@@ -28,9 +28,9 @@
 import android.net.Uri;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -50,7 +50,7 @@
     private static Integer sNullableInt;
     private static CountDownLatch sLatch;
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testRemoteCallback() {
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicReceiverTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicReceiverTest.java
index 98596d3..3e16d1b 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicReceiverTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicReceiverTest.java
@@ -26,9 +26,9 @@
 import android.net.Uri;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,7 +46,7 @@
     private static Integer sNullableInt;
     private static CountDownLatch sLatch;
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testRemoteCallback() {
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicWidgetProviderTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicWidgetProviderTest.java
index fa64b5c2..348a43c 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/BasicWidgetProviderTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/BasicWidgetProviderTest.java
@@ -26,9 +26,9 @@
 import android.net.Uri;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,7 +46,7 @@
     private static Integer sNullableInt;
     private static CountDownLatch sLatch;
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testRemoteCallback() {
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/ExternalInputTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/ExternalInputTest.java
index 2cf8bdc..2aac249 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/ExternalInputTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/ExternalInputTest.java
@@ -16,15 +16,15 @@
 
 package androidx.remotecallback;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -42,7 +42,7 @@
     private static int sArg1;
     private static int sArg2;
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testArg() throws Exception {
diff --git a/remotecallback/src/androidTest/java/androidx/remotecallback/ParamTypesTest.java b/remotecallback/src/androidTest/java/androidx/remotecallback/ParamTypesTest.java
index 2a978f9..d3b9af6 100644
--- a/remotecallback/src/androidTest/java/androidx/remotecallback/ParamTypesTest.java
+++ b/remotecallback/src/androidTest/java/androidx/remotecallback/ParamTypesTest.java
@@ -24,9 +24,9 @@
 import android.net.Uri;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +38,7 @@
 @SmallTest
 public class ParamTypesTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     private static Object sParam;
     private static CountDownLatch sLatch;
diff --git a/room/benchmark/build.gradle b/room/benchmark/build.gradle
index bfd99e1..99413a3 100644
--- a/room/benchmark/build.gradle
+++ b/room/benchmark/build.gradle
@@ -35,6 +35,8 @@
     androidTestImplementation(project(":benchmark"))
     androidTestImplementation(RX_JAVA)
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(KOTLIN_STDLIB)
diff --git a/room/benchmark/src/androidTest/java/androidx/room/benchmark/InvalidationTrackerBenchmark.kt b/room/benchmark/src/androidTest/java/androidx/room/benchmark/InvalidationTrackerBenchmark.kt
index 7f056bb..45df1a8 100644
--- a/room/benchmark/src/androidTest/java/androidx/room/benchmark/InvalidationTrackerBenchmark.kt
+++ b/room/benchmark/src/androidTest/java/androidx/room/benchmark/InvalidationTrackerBenchmark.kt
@@ -26,7 +26,7 @@
 import androidx.room.Query
 import androidx.room.Room
 import androidx.room.RoomDatabase
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.LargeTest
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertTrue
@@ -43,7 +43,7 @@
     @get:Rule
     val benchmarkRule = BenchmarkRule()
 
-    val context = InstrumentationRegistry.getTargetContext()
+    val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     @Before
     fun setup() {
diff --git a/room/integration-tests/autovaluetestapp/build.gradle b/room/integration-tests/autovaluetestapp/build.gradle
index f893578..97a93be 100644
--- a/room/integration-tests/autovaluetestapp/build.gradle
+++ b/room/integration-tests/autovaluetestapp/build.gradle
@@ -36,6 +36,8 @@
     androidTestImplementation(project(":room:room-testing"))
     androidTestImplementation(ARCH_CORE_TESTING)
     androidTestImplementation(AUTO_VALUE_ANNOTATIONS)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it's own MockMaker
diff --git a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/MailDaoTest.java b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/MailDaoTest.java
index 75b3631..cee8987 100644
--- a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/MailDaoTest.java
+++ b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/MailDaoTest.java
@@ -25,10 +25,10 @@
 import androidx.room.Room;
 import androidx.room.integration.autovaluetestapp.FtsTestDatabase;
 import androidx.room.integration.autovaluetestapp.vo.Mail;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -47,7 +47,7 @@
 
     @Before
     public void setup() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase = Room.inMemoryDatabaseBuilder(context, FtsTestDatabase.class).build();
         mMailDao = mDatabase.getMailDao();
     }
diff --git a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/ParcelableEntityDaoTest.java b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/ParcelableEntityDaoTest.java
index 1cf7311..f4f63e7 100644
--- a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/ParcelableEntityDaoTest.java
+++ b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/ParcelableEntityDaoTest.java
@@ -23,8 +23,8 @@
 import android.os.Bundle;
 
 import androidx.room.integration.autovaluetestapp.vo.ParcelableEntity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PersonDaoTest.java b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PersonDaoTest.java
index 8e62819..94e5ced 100644
--- a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PersonDaoTest.java
+++ b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PersonDaoTest.java
@@ -24,8 +24,8 @@
 import androidx.room.integration.autovaluetestapp.vo.PersonAndCat;
 import androidx.room.integration.autovaluetestapp.vo.PersonWithCats;
 import androidx.room.integration.autovaluetestapp.vo.Pet;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
index 6a85075..cd0bea9 100644
--- a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
+++ b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
@@ -26,8 +26,8 @@
 import androidx.room.integration.autovaluetestapp.vo.EmbeddedAutoValue;
 import androidx.room.integration.autovaluetestapp.vo.Person;
 import androidx.room.integration.autovaluetestapp.vo.Pet;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/TestDatabaseTest.java b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/TestDatabaseTest.java
index e852b1b..aed80cb 100644
--- a/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/TestDatabaseTest.java
+++ b/room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/TestDatabaseTest.java
@@ -24,7 +24,7 @@
 import androidx.room.integration.autovaluetestapp.dao.ParcelableEntityDao;
 import androidx.room.integration.autovaluetestapp.dao.PersonDao;
 import androidx.room.integration.autovaluetestapp.dao.PetDao;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -42,7 +42,7 @@
 
     @Before
     public void createDb() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mPersonDao = mDatabase.getPersonDao();
         mPetDao = mDatabase.getPetDao();
diff --git a/room/integration-tests/kotlintestapp/build.gradle b/room/integration-tests/kotlintestapp/build.gradle
index cf9c999..9aedad7 100644
--- a/room/integration-tests/kotlintestapp/build.gradle
+++ b/room/integration-tests/kotlintestapp/build.gradle
@@ -50,6 +50,8 @@
     implementation(KOTLIN_COROUTINES)
     kaptAndroidTest project(":room:room-compiler")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER) {
         exclude module: 'support-annotations'
         exclude module: 'hamcrest-core'
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
index ff461f0..ebd6c68 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/migration/MigrationKotlinTest.kt
@@ -22,8 +22,11 @@
 import androidx.room.util.TableInfo
 import androidx.sqlite.db.SupportSQLiteDatabase
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
-import androidx.test.InstrumentationRegistry
-import org.hamcrest.CoreMatchers.*
+import androidx.test.platform.app.InstrumentationRegistry
+import org.hamcrest.CoreMatchers.`is`
+import org.hamcrest.CoreMatchers.containsString
+import org.hamcrest.CoreMatchers.instanceOf
+import org.hamcrest.CoreMatchers.nullValue
 import org.hamcrest.MatcherAssert.assertThat
 import org.junit.Rule
 import org.junit.Test
@@ -200,8 +203,10 @@
             helper.runMigrationsAndValidate(TEST_DB,
                     7, false, object : Migration(6, 7) {
                 override fun migrate(database: SupportSQLiteDatabase) {
-                    database.execSQL("CREATE TABLE Entity4 (`id` INTEGER, `name` TEXT,"
-                            + " PRIMARY KEY(`id`))")
+                    database.execSQL(
+                        "CREATE TABLE Entity4 (`id` INTEGER, `name` TEXT," +
+                                " PRIMARY KEY(`id`))"
+                    )
                 }
             })
         } catch (t: Throwable) {
@@ -241,31 +246,41 @@
 
     internal val MIGRATION_1_2: Migration = object : Migration(1, 2) {
         override fun migrate(database: SupportSQLiteDatabase) {
-            database.execSQL("CREATE TABLE IF NOT EXISTS `Entity2` (`id` INTEGER NOT NULL,"
-                    + " `name` TEXT, PRIMARY KEY(`id`))")
+            database.execSQL(
+                "CREATE TABLE IF NOT EXISTS `Entity2` (`id` INTEGER NOT NULL," +
+                        " `name` TEXT, PRIMARY KEY(`id`))"
+            )
         }
     }
 
     internal val MIGRATION_2_3: Migration = object : Migration(2, 3) {
         override fun migrate(database: SupportSQLiteDatabase) {
-            database.execSQL("ALTER TABLE " + MigrationDbKotlin.Entity2.TABLE_NAME
-                    + " ADD COLUMN addedInV3 TEXT")
+            database.execSQL(
+                "ALTER TABLE " + MigrationDbKotlin.Entity2.TABLE_NAME +
+                        " ADD COLUMN addedInV3 TEXT"
+            )
         }
     }
 
     internal val MIGRATION_3_4: Migration = object : Migration(3, 4) {
         override fun migrate(database: SupportSQLiteDatabase) {
-            database.execSQL("CREATE TABLE IF NOT EXISTS `Entity3` (`id` INTEGER NOT NULL,"
-                    + " `removedInV5` TEXT, `name` TEXT, PRIMARY KEY(`id`))")
+            database.execSQL(
+                "CREATE TABLE IF NOT EXISTS `Entity3` (`id` INTEGER NOT NULL," +
+                        " `removedInV5` TEXT, `name` TEXT, PRIMARY KEY(`id`))"
+            )
         }
     }
 
     internal val MIGRATION_4_5: Migration = object : Migration(4, 5) {
         override fun migrate(database: SupportSQLiteDatabase) {
-            database.execSQL("CREATE TABLE IF NOT EXISTS `Entity3_New` (`id` INTEGER NOT NULL,"
-                    + " `name` TEXT, PRIMARY KEY(`id`))")
-            database.execSQL("INSERT INTO Entity3_New(`id`, `name`) "
-                    + "SELECT `id`, `name` FROM Entity3")
+            database.execSQL(
+                "CREATE TABLE IF NOT EXISTS `Entity3_New` (`id` INTEGER NOT NULL," +
+                        " `name` TEXT, PRIMARY KEY(`id`))"
+            )
+            database.execSQL(
+                "INSERT INTO Entity3_New(`id`, `name`) " +
+                        "SELECT `id`, `name` FROM Entity3"
+            )
             database.execSQL("DROP TABLE Entity3")
             database.execSQL("ALTER TABLE Entity3_New RENAME TO Entity3")
         }
@@ -279,13 +294,17 @@
 
     internal val MIGRATION_6_7: Migration = object : Migration(6, 7) {
         override fun migrate(database: SupportSQLiteDatabase) {
-            database.execSQL("CREATE TABLE IF NOT EXISTS "
-                    + MigrationDbKotlin.Entity4.TABLE_NAME
-                    + " (`id` INTEGER NOT NULL, `name` TEXT, PRIMARY KEY(`id`),"
-                    + " FOREIGN KEY(`name`) REFERENCES `Entity1`(`name`)"
-                    + " ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED)")
-            database.execSQL("CREATE UNIQUE INDEX `index_entity1` ON "
-                    + MigrationDbKotlin.Entity1.TABLE_NAME + " (`name`)")
+            database.execSQL(
+                "CREATE TABLE IF NOT EXISTS " +
+                        MigrationDbKotlin.Entity4.TABLE_NAME +
+                        " (`id` INTEGER NOT NULL, `name` TEXT, PRIMARY KEY(`id`)," +
+                        " FOREIGN KEY(`name`) REFERENCES `Entity1`(`name`)" +
+                        " ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED)"
+            )
+            database.execSQL(
+                "CREATE UNIQUE INDEX `index_entity1` ON " +
+                        MigrationDbKotlin.Entity1.TABLE_NAME + " (`name`)"
+            )
         }
     }
 
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/DependencyDaoTest.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/DependencyDaoTest.kt
index a08c843..bf1a56e 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/DependencyDaoTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/DependencyDaoTest.kt
@@ -20,9 +20,11 @@
 import androidx.room.integration.kotlintestapp.vo.DataClassFromDependency
 import androidx.room.integration.kotlintestapp.vo.EmbeddedFromDependency
 import androidx.room.integration.kotlintestapp.vo.PojoFromDependency
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SdkSuppress
-import androidx.test.runner.AndroidJUnit4
-import org.hamcrest.CoreMatchers.*
+import org.hamcrest.CoreMatchers.`is`
+import org.hamcrest.CoreMatchers.notNullValue
+import org.hamcrest.CoreMatchers.nullValue
 import org.hamcrest.MatcherAssert.assertThat
 import org.junit.Before
 import org.junit.Test
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
index 7c6b2df..d54e0d7 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/ItemWithNullableConstructor.kt
@@ -15,9 +15,17 @@
  */
 package androidx.room.integration.kotlintestapp.test
 
-import androidx.room.*
-import androidx.test.InstrumentationRegistry
-import androidx.test.runner.AndroidJUnit4
+import androidx.room.Dao
+import androidx.room.Database
+import androidx.room.Entity
+import androidx.room.Insert
+import androidx.room.PrimaryKey
+import androidx.room.Query
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import androidx.room.RoomWarnings
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.MatcherAssert.assertThat
 import org.junit.After
@@ -30,7 +38,8 @@
     lateinit var db: Db
     @Before
     fun initDb() {
-        db = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(),
+        db = Room.inMemoryDatabaseBuilder(
+            ApplicationProvider.getApplicationContext(),
                 Db::class.java).build()
     }
 
@@ -47,9 +56,9 @@
 
     @Entity
     data class TestItem(
-            @PrimaryKey(autoGenerate = true)
-            val id: Long? = null,
-            val nullable: Boolean?
+        @PrimaryKey(autoGenerate = true)
+        val id: Long? = null,
+        val nullable: Boolean?
     )
 
     @Dao
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/SuspendingQueryTest.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/SuspendingQueryTest.kt
index d877069..83f052e 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/SuspendingQueryTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/SuspendingQueryTest.kt
@@ -18,8 +18,8 @@
 
 import androidx.room.integration.kotlintestapp.NewThreadDispatcher
 import androidx.room.integration.kotlintestapp.vo.Book
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import kotlinx.coroutines.runBlocking
 import org.hamcrest.CoreMatchers.`is`
 import org.hamcrest.MatcherAssert.assertThat
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt
index fa0d6a1..52fe1f9 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/TestDatabaseTest.kt
@@ -20,7 +20,7 @@
 import androidx.room.Room
 import androidx.room.integration.kotlintestapp.TestDatabase
 import androidx.room.integration.kotlintestapp.dao.BooksDao
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -36,7 +36,8 @@
     @Before
     @Throws(Exception::class)
     fun setUp() {
-        database = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(),
+        database = Room.inMemoryDatabaseBuilder(
+            ApplicationProvider.getApplicationContext(),
                 TestDatabase::class.java)
                 .build()
 
diff --git a/room/integration-tests/noappcompattestapp/build.gradle b/room/integration-tests/noappcompattestapp/build.gradle
index f51cc75..f4a95e4 100644
--- a/room/integration-tests/noappcompattestapp/build.gradle
+++ b/room/integration-tests/noappcompattestapp/build.gradle
@@ -24,6 +24,8 @@
 dependencies {
     implementation(project(":room:room-runtime"))
     annotationProcessor project(":room:room-compiler")
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     testImplementation(JUNIT)
diff --git a/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareDatabaseTest.java b/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareDatabaseTest.java
index d80d3c1..2f3e3de 100644
--- a/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareDatabaseTest.java
+++ b/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareDatabaseTest.java
@@ -24,9 +24,9 @@
 import androidx.annotation.NonNull;
 import androidx.room.InvalidationTracker;
 import androidx.room.Room;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/room/integration-tests/testapp/build.gradle b/room/integration-tests/testapp/build.gradle
index 6bd9dac..93a77c8 100644
--- a/room/integration-tests/testapp/build.gradle
+++ b/room/integration-tests/testapp/build.gradle
@@ -62,6 +62,8 @@
     androidTestImplementation(FINDBUGS)
     androidTestImplementation(GUAVA_ANDROID)
     androidTestImplementation(RX_JAVA)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
index eb54529..7d2f1c0 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
@@ -38,10 +38,11 @@
 import androidx.room.migration.Migration;
 import androidx.room.testing.MigrationTestHelper;
 import androidx.sqlite.db.SupportSQLiteDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -142,7 +143,7 @@
         supportSQLiteDatabase.close();
 
         try {
-            Context targetContext = InstrumentationRegistry.getTargetContext();
+            Context targetContext = ApplicationProvider.getApplicationContext();
             FtsMigrationDb db = Room.databaseBuilder(targetContext, FtsMigrationDb.class, TEST_DB)
                     .addMigrations(BAD_MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4)
                     .build();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/JournalDbPostMigrationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/JournalDbPostMigrationTest.java
index 684bbdd..2008cf3 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/JournalDbPostMigrationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/JournalDbPostMigrationTest.java
@@ -40,10 +40,11 @@
 import androidx.room.RoomDatabase;
 import androidx.room.migration.Migration;
 import androidx.sqlite.db.SupportSQLiteDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -139,7 +140,8 @@
     private void copyAsset(String path, File outFile) throws IOException {
         byte[] buffer = new byte[1024];
         int length;
-        InputStream fis = InstrumentationRegistry.getContext().getAssets().open(path);
+        InputStream fis =
+                InstrumentationRegistry.getInstrumentation().getContext().getAssets().open(path);
         OutputStream out = new FileOutputStream(outFile, false);
         //noinspection TryFinallyCanBeTryWithResources
         try {
@@ -155,20 +157,20 @@
     @After
     public void deleteDb() {
         mAppDatabase.close();
-        InstrumentationRegistry.getTargetContext().deleteDatabase(DB_NAME);
+        ApplicationProvider.getApplicationContext().deleteDatabase(DB_NAME);
     }
 
     @Before
     public void copyDbFromAssets() throws IOException {
-        Context testContext = InstrumentationRegistry.getContext();
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context testContext = InstrumentationRegistry.getInstrumentation().getContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
         String[] walModificationDbs = testContext.getAssets().list(DB_NAME);
         File databasePath = targetContext.getDatabasePath(DB_NAME);
         for (String file : walModificationDbs) {
             copyAsset(DB_NAME + "/" + file,
                     new File(databasePath.getParentFile(), file));
         }
-        mAppDatabase = Room.databaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mAppDatabase = Room.databaseBuilder(ApplicationProvider.getApplicationContext(),
                 AppDatabase.class, "journal-db")
                 .addMigrations(sMigrationV1toV2, sMigrationV2toV3)
                 .addCallback(new RoomDatabase.Callback() {
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
index 3ca778c..32790b6 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
@@ -37,9 +37,10 @@
 import androidx.room.util.ViewInfo;
 import androidx.sqlite.db.SupportSQLiteDatabase;
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.hamcrest.MatcherAssert;
 import org.junit.Rule;
@@ -256,7 +257,7 @@
         SupportSQLiteDatabase database = helper.createDatabase(TEST_DB, 1);
         database.close();
         try {
-            Context targetContext = InstrumentationRegistry.getTargetContext();
+            Context targetContext = ApplicationProvider.getApplicationContext();
             MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                     .build();
             helper.closeWhenFinished(db);
@@ -271,7 +272,7 @@
         SupportSQLiteDatabase database = helper.createDatabase(TEST_DB, MigrationDb.MAX_VERSION);
         database.close();
         try {
-            Context targetContext = InstrumentationRegistry.getTargetContext();
+            Context targetContext = ApplicationProvider.getApplicationContext();
             MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                     .build();
             helper.closeWhenFinished(db);
@@ -287,7 +288,7 @@
         SupportSQLiteDatabase database = helper.createDatabase(TEST_DB, 1);
         database.close();
         try {
-            Context targetContext = InstrumentationRegistry.getTargetContext();
+            Context targetContext = ApplicationProvider.getApplicationContext();
             MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                     .fallbackToDestructiveMigrationOnDowngrade()
                     .build();
@@ -306,7 +307,7 @@
         dao.insertIntoEntity1(3, "bar");
         database.close();
 
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
         MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                 .fallbackToDestructiveMigration()
                 .build();
@@ -347,7 +348,7 @@
         dao.insertIntoEntity1(2, "foo");
         dao.insertIntoEntity1(3, "bar");
         database.close();
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
 
         MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                 .fallbackToDestructiveMigrationFrom(6)
@@ -361,7 +362,7 @@
             throws IOException {
         SupportSQLiteDatabase database = helper.createDatabase(TEST_DB, 6);
         database.close();
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
 
         Throwable throwable = null;
         try {
@@ -385,7 +386,7 @@
             throws IOException {
         SupportSQLiteDatabase database = helper.createDatabase(TEST_DB, 5);
         database.close();
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
 
         Throwable throwable = null;
         try {
@@ -413,7 +414,7 @@
         dao.insertIntoEntity1(3, "bar");
         database.close();
 
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
         MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                 .fallbackToDestructiveMigrationOnDowngrade()
                 .build();
@@ -430,7 +431,7 @@
         dao.insertIntoEntity1(3, "bar");
         database.close();
 
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
         MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                 .fallbackToDestructiveMigration()
                 .build();
@@ -447,7 +448,7 @@
         dao.insertIntoEntity1(3, "bar");
         database.close();
 
-        Context targetContext = InstrumentationRegistry.getTargetContext();
+        Context targetContext = ApplicationProvider.getApplicationContext();
         MigrationDb db = Room.databaseBuilder(targetContext, MigrationDb.class, TEST_DB)
                 .fallbackToDestructiveMigrationOnDowngrade()
                 .addMigrations(MIGRATION_MAX_LATEST)
@@ -558,8 +559,8 @@
             database.execSQL("DROP TABLE IF EXISTS " + MigrationDb.Entity1.TABLE_NAME);
 
             try {
-                Context context = InstrumentationRegistry.getContext();
-                InputStream input = context.getAssets().open(MigrationDb.class.getCanonicalName()
+                Context testContext = InstrumentationRegistry.getInstrumentation().getContext();
+                InputStream input = testContext.getAssets().open(MigrationDb.class.getCanonicalName()
                         + "/" + MigrationDb.LATEST_VERSION + ".json");
                 SchemaBundle schemaBundle = SchemaBundle.deserialize(input);
                 for (String query : schemaBundle.getDatabase().buildCreateQueries()) {
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
index 5fab0cd..3504ec1 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/DataSourceFactoryTest.java
@@ -39,8 +39,8 @@
 import androidx.room.integration.testapp.vo.User;
 import androidx.room.integration.testapp.vo.UserAndAllPets;
 import androidx.sqlite.db.SimpleSQLiteQuery;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/LimitOffsetDataSourceTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
index 76bc675..d59619b 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/paging/LimitOffsetDataSourceTest.java
@@ -26,8 +26,8 @@
 import androidx.room.integration.testapp.test.TestUtil;
 import androidx.room.integration.testapp.vo.User;
 import androidx.room.paging.LimitOffsetDataSource;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Test;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ClearAllTablesTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ClearAllTablesTest.java
index b87a5f9..8dc53e9 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ClearAllTablesTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ClearAllTablesTest.java
@@ -39,11 +39,12 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -116,7 +117,7 @@
 
     @Before
     public void setUp() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         mDatabase = Room.inMemoryDatabaseBuilder(context, ClearAllTablesDatabase.class).build();
         mDao = mDatabase.dao();
     }
@@ -203,7 +204,7 @@
     }
 
     private void clearsDataFromDisk(RoomDatabase.JournalMode journalMode) throws IOException {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final String dbName = "clear.db";
         context.deleteDatabase(dbName);
         ClearAllTablesDatabase db;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java
index e11373c..b784a61 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CollationTest.java
@@ -26,10 +26,10 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.CoreMatchers;
 import org.junit.After;
@@ -59,7 +59,7 @@
 
     private void initDao(Locale systemLocale) {
         Locale.setDefault(systemLocale);
-        mDb = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mDb = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 CollateDb.class).build();
         mDao = mDb.dao();
         mDao.insert(mItem1);
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ConstructorTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ConstructorTest.java
index 25fd79a..4f6bb1b 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ConstructorTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ConstructorTest.java
@@ -30,9 +30,9 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -225,7 +225,7 @@
 
     @Before
     public void init() {
-        mDb = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(), MyDb.class)
+        mDb = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(), MyDb.class)
                 .build();
         mDao = mDb.dao();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CustomDatabaseTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CustomDatabaseTest.java
index dc0c430..31d078d 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CustomDatabaseTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/CustomDatabaseTest.java
@@ -34,9 +34,9 @@
 import androidx.sqlite.db.SupportSQLiteOpenHelper;
 import androidx.sqlite.db.SupportSQLiteQuery;
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DaoNameConflictTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DaoNameConflictTest.java
index 72b6bff..b7df156 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DaoNameConflictTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DaoNameConflictTest.java
@@ -27,9 +27,9 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -43,7 +43,7 @@
     @Before
     public void init() {
         mDb = Room.inMemoryDatabaseBuilder(
-                InstrumentationRegistry.getTargetContext(),
+                ApplicationProvider.getApplicationContext(),
                 ConflictDatabase.class
         ).build();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseCallbackTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseCallbackTest.java
index fed150e..b33b5f4 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseCallbackTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseCallbackTest.java
@@ -35,10 +35,10 @@
 import androidx.room.integration.testapp.TestDatabase;
 import androidx.room.integration.testapp.vo.User;
 import androidx.sqlite.db.SupportSQLiteDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -55,7 +55,7 @@
     @Test
     @MediumTest
     public void createAndOpen() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabaseCallback callback1 = new TestDatabaseCallback();
         TestDatabase db1 = null;
         TestDatabase db2 = null;
@@ -94,7 +94,7 @@
     @Test
     @SmallTest
     public void writeOnCreate() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class)
                 .addCallback(new RoomDatabase.Callback() {
                     @Override
@@ -123,7 +123,7 @@
     @Test
     @SmallTest
     public void exceptionOnCreate() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class)
                 .addCallback(new RoomDatabase.Callback() {
                     boolean mIsBadInsertDone;
@@ -154,7 +154,7 @@
     @Test
     @MediumTest
     public void corruptExceptionOnCreate() throws IOException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
 
         TestDatabaseCallback callback = new TestDatabaseCallback();
 
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
index 9ad4183..da69f57 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
@@ -45,10 +45,11 @@
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
 import androidx.room.Transaction;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -242,7 +243,7 @@
     }
 
     private CompanyDatabase getDatabase() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         return Room.inMemoryDatabaseBuilder(context, CompanyDatabase.class).build();
     }
 
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/EmbeddedTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/EmbeddedTest.java
index 2d23f4a..ced811a 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/EmbeddedTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/EmbeddedTest.java
@@ -39,9 +39,9 @@
 import androidx.room.integration.testapp.vo.UserAndGenericPet;
 import androidx.room.integration.testapp.vo.UserAndPet;
 import androidx.room.integration.testapp.vo.UserAndPetNonNull;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -62,7 +62,7 @@
 
     @Before
     public void createDb() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mUserDao = db.getUserDao();
         mPetDao = db.getPetDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ForeignKeyTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ForeignKeyTest.java
index f96b4d1..8805044 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ForeignKeyTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ForeignKeyTest.java
@@ -40,9 +40,9 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.hamcrest.Matcher;
 import org.junit.Before;
@@ -208,7 +208,7 @@
 
     @Before
     public void openDb() {
-        mDb = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mDb = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 ForeignKeyDb.class).build();
         mDao = mDb.dao();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
index 7fe83f3..ea13845 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
@@ -29,10 +29,10 @@
 import androidx.room.integration.testapp.vo.Mail;
 import androidx.room.integration.testapp.vo.Song;
 import androidx.room.integration.testapp.vo.SongDescription;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.collect.Lists;
 
@@ -53,7 +53,7 @@
 
     @Before
     public void setup() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase = Room.inMemoryDatabaseBuilder(context, FtsTestDatabase.class).build();
         mMailDao = mDatabase.getMailDao();
         mSongDao = mDatabase.getSongDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java
index 365b681..f9e1673 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FunnyNamedDaoTest.java
@@ -23,9 +23,9 @@
 
 import androidx.arch.core.executor.testing.CountingTaskExecutorRule;
 import androidx.room.integration.testapp.vo.FunnyNamedEntity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/GenericEntityTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/GenericEntityTest.java
index 5697fd3..c228d8a 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/GenericEntityTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/GenericEntityTest.java
@@ -28,9 +28,9 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -46,7 +46,7 @@
     @Before
     public void init() {
         mDb = Room.inMemoryDatabaseBuilder(
-                InstrumentationRegistry.getTargetContext(),
+                ApplicationProvider.getApplicationContext(),
                 GenericDb.class
         ).build();
         mDao = mDb.getDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IdentityDetectionTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IdentityDetectionTest.java
index 806de1c..0cab234 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IdentityDetectionTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IdentityDetectionTest.java
@@ -27,9 +27,9 @@
 import androidx.room.integration.testapp.TestDatabase;
 import androidx.room.integration.testapp.vo.User;
 import androidx.sqlite.db.SupportSQLiteDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -100,7 +100,7 @@
     }
 
     private void openDb() {
-        mTestDatabase = Room.databaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mTestDatabase = Room.databaseBuilder(ApplicationProvider.getApplicationContext(),
                 TestDatabase.class, DB_FILE_NAME).build();
     }
 
@@ -118,7 +118,7 @@
     }
 
     private void deleteDbFile() {
-        File testDb = InstrumentationRegistry.getTargetContext().getDatabasePath(DB_FILE_NAME);
+        File testDb = ApplicationProvider.getApplicationContext().getDatabasePath(DB_FILE_NAME);
         testDb.delete();
     }
 }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IndexingTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IndexingTest.java
index c8da920..b8def48 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IndexingTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/IndexingTest.java
@@ -31,9 +31,9 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -95,7 +95,7 @@
 
     @Test
     public void verifyIndices() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         IndexingDb db = Room.inMemoryDatabaseBuilder(context, IndexingDb.class).build();
         List<IndexInfo> indices = db.sqlMasterDao().loadIndices();
         assertThat(indices.size(), is(4));
@@ -114,7 +114,7 @@
 
     @Test
     public void indexedByQuery() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         IndexingDb db = Room.inMemoryDatabaseBuilder(context, IndexingDb.class).build();
         db.entity1Dao().insert(new Entity1(1, "a", "b", "c"));
         List<Entity1> result = db.entity1Dao().indexedBy("b");
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
index ece3e42..69da2f9 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
@@ -32,9 +32,9 @@
 import androidx.room.integration.testapp.dao.UserDao;
 import androidx.room.integration.testapp.vo.Pet;
 import androidx.room.integration.testapp.vo.User;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -60,7 +60,7 @@
 
     @Before
     public void createDb() throws TimeoutException, InterruptedException {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDb = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mUserDao = mDb.getUserDao();
         mPetDao = mDb.getPetDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTrackerTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTrackerTest.java
index fcfbef7..977932a 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTrackerTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTrackerTest.java
@@ -42,9 +42,10 @@
 import androidx.room.Query;
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -75,7 +76,7 @@
     public void setup() {
         mInstrumentation = InstrumentationRegistry.getInstrumentation();
         mDb = Room.inMemoryDatabaseBuilder(
-                InstrumentationRegistry.getTargetContext(),
+                ApplicationProvider.getApplicationContext(),
                 InvalidationTestDatabase.class)
                 .build();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
index f3c0bba..3f9d5cb 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
@@ -41,11 +41,12 @@
 import androidx.room.integration.testapp.vo.Toy;
 import androidx.room.integration.testapp.vo.User;
 import androidx.room.integration.testapp.vo.UserAndAllPets;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -308,7 +309,7 @@
     @Test
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.JELLY_BEAN)
     public void withFtsTable() throws ExecutionException, InterruptedException, TimeoutException {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final FtsTestDatabase db = Room.inMemoryDatabaseBuilder(context, FtsTestDatabase.class)
                 .build();
         final MailDao mailDao = db.getMailDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MainThreadCheckTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MainThreadCheckTest.java
index 85a6b89..3ef690f 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MainThreadCheckTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MainThreadCheckTest.java
@@ -27,9 +27,10 @@
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
 import androidx.room.integration.testapp.TestDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -114,7 +115,7 @@
     }
 
     private Throwable test(boolean allowMainThread, final Function<TestDatabase, Void> fun) {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         final RoomDatabase.Builder<TestDatabase> builder = Room.inMemoryDatabaseBuilder(
                 context, TestDatabase.class);
         if (allowMainThread) {
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java
index 9d021ae..59d0809 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java
@@ -41,11 +41,12 @@
 import androidx.room.integration.testapp.database.CustomerDao;
 import androidx.room.integration.testapp.database.Product;
 import androidx.room.integration.testapp.database.SampleDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ServiceTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -88,7 +89,7 @@
 
     @Before
     public void setUp() {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         context.deleteDatabase(SampleDatabaseService.DATABASE_NAME);
     }
 
@@ -315,7 +316,7 @@
 
     private long measure(boolean multiInstanceInvalidation, boolean bulk,
             List<Customer> customers) {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         context.deleteDatabase(SampleDatabaseService.DATABASE_NAME);
         final SampleDatabase db = openDatabase(multiInstanceInvalidation);
         final CustomerDao dao = db.getCustomerDao();
@@ -348,7 +349,7 @@
     }
 
     private SampleDatabase openDatabase(boolean multiInstanceInvalidation) {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final RoomDatabase.Builder<SampleDatabase> builder = Room
                 .databaseBuilder(context, SampleDatabase.class,
                         SampleDatabaseService.DATABASE_NAME);
@@ -361,7 +362,7 @@
     }
 
     private void bindTestService() throws TimeoutException {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         mService = ISampleDatabaseService.Stub.asInterface(
                 serviceRule.bindService(new Intent(context, SampleDatabaseService.class)));
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoTest.java
index 378811f..452dd49 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoTest.java
@@ -26,9 +26,9 @@
 import androidx.room.integration.testapp.dao.UserDao;
 import androidx.room.integration.testapp.vo.AvgWeightByAge;
 import androidx.room.integration.testapp.vo.User;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,7 +43,7 @@
 
     @Before
     public void createDb() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mUserDao = db.getUserDao();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithNullRelationKeyTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithNullRelationKeyTest.java
index 87b11d0..ea71c298 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithNullRelationKeyTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithNullRelationKeyTest.java
@@ -30,9 +30,9 @@
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
 import androidx.room.Transaction;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -49,7 +49,7 @@
 
     @Before
     public void setup() {
-        mDatabase = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(),
+        mDatabase = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 NullRelationDatabase.class).build();
         mDao = mDatabase.getDao();
     }
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithRelationTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithRelationTest.java
index 2d75f8a..b22d735 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithRelationTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PojoWithRelationTest.java
@@ -31,8 +31,8 @@
 import androidx.room.integration.testapp.vo.UserAndPetsAndHouses;
 import androidx.room.integration.testapp.vo.UserIdAndPetNames;
 import androidx.room.integration.testapp.vo.UserWithPetsAndToys;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PrimaryKeyTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PrimaryKeyTest.java
index de480fd..6f62d96 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PrimaryKeyTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/PrimaryKeyTest.java
@@ -30,9 +30,9 @@
 import androidx.room.integration.testapp.vo.IntegerAutoIncPKeyEntity;
 import androidx.room.integration.testapp.vo.IntegerPKeyEntity;
 import androidx.room.integration.testapp.vo.ObjectPKeyEntity;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -48,7 +48,7 @@
 
     @Before
     public void setup() {
-        mDatabase = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mDatabase = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 PKeyTestDatabase.class).build();
     }
 
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryExecutorTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryExecutorTest.java
index 556d473..0d3ddb0 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryExecutorTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryExecutorTest.java
@@ -16,7 +16,7 @@
 
 package androidx.room.integration.testapp.test;
 
-import static androidx.test.InstrumentationRegistry.getInstrumentation;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -29,9 +29,9 @@
 import androidx.room.integration.testapp.TestDatabase;
 import androidx.room.integration.testapp.dao.PetDao;
 import androidx.room.integration.testapp.vo.Pet;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -90,7 +90,7 @@
 
         mRecordingExecutor = new RecordingExecutor();
         mTestDatabase = Room.inMemoryDatabaseBuilder(
-                InstrumentationRegistry.getContext(),
+                ApplicationProvider.getApplicationContext(),
                 TestDatabase.class)
                 .setQueryExecutor(mRecordingExecutor)
                 .build();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java
index f16c448..f88066a 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/QueryTransactionTest.java
@@ -42,8 +42,9 @@
 import androidx.room.RoomWarnings;
 import androidx.room.Transaction;
 import androidx.room.paging.LimitOffsetDataSource;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -95,7 +96,7 @@
                 () -> mLifecycleOwner.handleEvent(Lifecycle.Event.ON_START));
 
         resetTransactionCount();
-        mDb = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getTargetContext(),
+        mDb = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 TransactionDb.class).build();
         mDao = mUseTransactionDao ? mDb.transactionDao() : mDb.dao();
         drain();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java
index 2bc641f..10cdd5b 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RawQueryTest.java
@@ -32,9 +32,9 @@
 import androidx.room.integration.testapp.vo.UserAndPet;
 import androidx.sqlite.db.SimpleSQLiteQuery;
 import androidx.sqlite.db.SupportSQLiteQuery;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RelationWithReservedKeywordTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RelationWithReservedKeywordTest.java
index 529800e..58d3c05 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RelationWithReservedKeywordTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RelationWithReservedKeywordTest.java
@@ -35,9 +35,9 @@
 import androidx.room.Room;
 import androidx.room.RoomDatabase;
 import androidx.room.Transaction;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -53,7 +53,7 @@
     @Before
     public void initDb() {
         mDb = Room.inMemoryDatabaseBuilder(
-                InstrumentationRegistry.getTargetContext(),
+                ApplicationProvider.getApplicationContext(),
                 MyDatabase.class).build();
     }
 
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
index 9479f5a..8eeb0ad 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
@@ -32,11 +32,11 @@
 import androidx.room.integration.testapp.vo.Pet;
 import androidx.room.integration.testapp.vo.User;
 import androidx.room.integration.testapp.vo.UserAndAllPets;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.collect.Lists;
 
@@ -579,7 +579,7 @@
     @Test
     @SdkSuppress(minSdkVersion = Build.VERSION_CODES.JELLY_BEAN)
     public void withFtsTable_Flowable() throws InterruptedException {
-        final Context context = InstrumentationRegistry.getTargetContext();
+        final Context context = ApplicationProvider.getApplicationContext();
         final FtsTestDatabase db = Room.inMemoryDatabaseBuilder(context, FtsTestDatabase.class)
                 .build();
         final MailDao mailDao = db.getMailDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
index fa336e7..97e6476 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2WithInstantTaskExecutorTest.java
@@ -20,9 +20,9 @@
 import androidx.room.Room;
 import androidx.room.integration.testapp.TestDatabase;
 import androidx.room.integration.testapp.vo.User;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -43,7 +43,7 @@
     public void initDb() throws Exception {
         // using an in-memory database because the information stored here disappears when the
         // process is killed
-        mDatabase = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(),
+        mDatabase = Room.inMemoryDatabaseBuilder(ApplicationProvider.getApplicationContext(),
                 TestDatabase.class)
                 // allowing main thread queries, just for testing
                 .allowMainThreadQueries()
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
index 7b06936..b3187df 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
@@ -48,9 +48,9 @@
 import androidx.room.integration.testapp.vo.User;
 import androidx.room.integration.testapp.vo.UserAndAllPets;
 import androidx.room.integration.testapp.vo.UserSummary;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.base.Charsets;
 
@@ -79,7 +79,7 @@
 
     @Before
     public void createDb() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TestDatabase db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mUserDao = db.getUserDao();
         mPetDao = db.getPetDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
index e7bb412..bc535c6 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
@@ -31,7 +31,7 @@
 import androidx.room.integration.testapp.dao.UserHouseDao;
 import androidx.room.integration.testapp.dao.UserPetDao;
 import androidx.room.integration.testapp.dao.WithClauseDao;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
 
@@ -52,7 +52,7 @@
 
     @Before
     public void createDb() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
         mUserDao = mDatabase.getUserDao();
         mPetDao = mDatabase.getPetDao();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WithClauseTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WithClauseTest.java
index 94a995a..421bfbc 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WithClauseTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WithClauseTest.java
@@ -22,9 +22,9 @@
 import android.os.Build;
 
 import androidx.room.integration.testapp.vo.User;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java
index fcdbc17..3d8e607 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/WriteAheadLoggingTest.java
@@ -41,10 +41,11 @@
 import androidx.room.integration.testapp.dao.UserDao;
 import androidx.room.integration.testapp.vo.User;
 import androidx.sqlite.db.SupportSQLiteDatabase;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -71,7 +72,7 @@
 
     @Before
     public void openDatabase() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.deleteDatabase(DATABASE_NAME);
         mDatabase = Room.databaseBuilder(context, TestDatabase.class, DATABASE_NAME)
                 .setJournalMode(RoomDatabase.JournalMode.WRITE_AHEAD_LOGGING)
@@ -81,7 +82,7 @@
     @After
     public void closeDatabase() {
         mDatabase.close();
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         context.deleteDatabase(DATABASE_NAME);
     }
 
@@ -103,7 +104,7 @@
 
     @Test
     public void disableWal() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase.close();
         mDatabase = Room.databaseBuilder(context, TestDatabase.class, DATABASE_NAME)
                 .setJournalMode(RoomDatabase.JournalMode.TRUNCATE)
diff --git a/room/runtime/build.gradle b/room/runtime/build.gradle
index ad39109..35b6ace 100644
--- a/room/runtime/build.gradle
+++ b/room/runtime/build.gradle
@@ -47,6 +47,8 @@
     testImplementation(KOTLIN_STDLIB)
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
diff --git a/room/runtime/src/androidTest/java/androidx/room/RoomOpenHelperTest.java b/room/runtime/src/androidTest/java/androidx/room/RoomOpenHelperTest.java
index 1a97366..31e1921 100644
--- a/room/runtime/src/androidTest/java/androidx/room/RoomOpenHelperTest.java
+++ b/room/runtime/src/androidTest/java/androidx/room/RoomOpenHelperTest.java
@@ -26,8 +26,8 @@
 
 import androidx.sqlite.db.SupportSQLiteDatabase;
 import androidx.sqlite.db.SupportSQLiteQuery;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java b/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
index 2c2a24d..1e2bcb8 100644
--- a/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
+++ b/room/runtime/src/androidTest/java/androidx/room/migration/TableInfoTest.java
@@ -30,9 +30,9 @@
 import androidx.sqlite.db.SupportSQLiteDatabase;
 import androidx.sqlite.db.SupportSQLiteOpenHelper;
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Test;
@@ -260,7 +260,7 @@
     private static SupportSQLiteDatabase createDatabase(final String... queries) {
         return new FrameworkSQLiteOpenHelperFactory().create(
                 SupportSQLiteOpenHelper.Configuration
-                        .builder(InstrumentationRegistry.getTargetContext())
+                        .builder(ApplicationProvider.getApplicationContext())
                         .name(null)
                         .callback(new SupportSQLiteOpenHelper.Callback(1) {
                             @Override
diff --git a/room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java b/room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
index 1ca48ca..fd18717 100644
--- a/room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
+++ b/room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
@@ -26,9 +26,9 @@
 import androidx.sqlite.db.SupportSQLiteDatabase;
 import androidx.sqlite.db.SupportSQLiteOpenHelper;
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Test;
@@ -81,7 +81,7 @@
     private static SupportSQLiteDatabase createDatabase(final String... queries) {
         return new FrameworkSQLiteOpenHelperFactory().create(
                 SupportSQLiteOpenHelper.Configuration
-                        .builder(InstrumentationRegistry.getTargetContext())
+                        .builder(ApplicationProvider.getApplicationContext())
                         .name(null)
                         .callback(new SupportSQLiteOpenHelper.Callback(1) {
                             @Override
diff --git a/room/runtime/src/androidTest/java/androidx/room/util/DBUtilTest.java b/room/runtime/src/androidTest/java/androidx/room/util/DBUtilTest.java
index 31b4c8e..015b4d0 100644
--- a/room/runtime/src/androidTest/java/androidx/room/util/DBUtilTest.java
+++ b/room/runtime/src/androidTest/java/androidx/room/util/DBUtilTest.java
@@ -24,9 +24,9 @@
 import androidx.sqlite.db.SupportSQLiteDatabase;
 import androidx.sqlite.db.SupportSQLiteOpenHelper;
 import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -54,7 +54,7 @@
     private static SupportSQLiteDatabase createDatabase(final String... queries) {
         return new FrameworkSQLiteOpenHelperFactory().create(
                 SupportSQLiteOpenHelper.Configuration
-                        .builder(InstrumentationRegistry.getTargetContext())
+                        .builder(ApplicationProvider.getApplicationContext())
                         .name(null)
                         .callback(new SupportSQLiteOpenHelper.Callback(1) {
                             @Override
diff --git a/savedstate/bundle/build.gradle b/savedstate/bundle/build.gradle
index 7cdbd6c..6963997 100644
--- a/savedstate/bundle/build.gradle
+++ b/savedstate/bundle/build.gradle
@@ -18,6 +18,8 @@
     api(project(":savedstate:savedstate-common"))
 
     androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/savedstate/common/build.gradle b/savedstate/common/build.gradle
index c945dc2..5cf97a3 100644
--- a/savedstate/common/build.gradle
+++ b/savedstate/common/build.gradle
@@ -29,6 +29,8 @@
     implementation(ARCH_CORE_COMMON)
 
     testImplementation(JUNIT)
+    testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
     testImplementation(TEST_RUNNER)
     testImplementation(KOTLIN_STDLIB)
 }
diff --git a/sharetarget/build.gradle b/sharetarget/build.gradle
index 3bdfecf..e4f5596 100644
--- a/sharetarget/build.gradle
+++ b/sharetarget/build.gradle
@@ -27,6 +27,8 @@
     api(GUAVA_LISTENABLE_FUTURE)
     implementation("androidx.concurrent:concurrent-futures:1.0.0-alpha02")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
diff --git a/sharetarget/src/androidTest/java/androidx/sharetarget/ShareTargetXmlParserTest.java b/sharetarget/src/androidTest/java/androidx/sharetarget/ShareTargetXmlParserTest.java
index eeb7d14..64415ea 100644
--- a/sharetarget/src/androidTest/java/androidx/sharetarget/ShareTargetXmlParserTest.java
+++ b/sharetarget/src/androidTest/java/androidx/sharetarget/ShareTargetXmlParserTest.java
@@ -23,9 +23,9 @@
 import android.content.Context;
 import android.content.ContextWrapper;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,7 +43,7 @@
 
     @Before
     public void setup() {
-        mContext = spy(new ContextWrapper(InstrumentationRegistry.getContext()));
+        mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
         initExpectedValues();
     }
 
diff --git a/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java b/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
index 2954a9e..e8ecdf2 100644
--- a/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
+++ b/sharetarget/src/androidTest/java/androidx/sharetarget/ShortcutInfoCompatSaverTest.java
@@ -35,9 +35,9 @@
 import androidx.core.content.pm.ShortcutInfoCompatSaver;
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.sharetarget.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
@@ -75,7 +75,7 @@
 
     @Before
     public void setup() {
-        mContext = spy(new ContextWrapper(InstrumentationRegistry.getContext()));
+        mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
         mCacheUpdateService = ShortcutInfoCompatSaverImpl.createExecutorService();
         mDiskIoService = ShortcutInfoCompatSaverImpl.createExecutorService();
         mShortcutInfoSaver = new ShortcutInfoCompatSaverImpl(mContext, mCacheUpdateService,
diff --git a/slices/benchmark/build.gradle b/slices/benchmark/build.gradle
index e57e33d..27af6f0 100644
--- a/slices/benchmark/build.gradle
+++ b/slices/benchmark/build.gradle
@@ -28,6 +28,8 @@
     androidTestImplementation(project(":slice-builders"))
     androidTestImplementation(project(":benchmark"))
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java b/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
index 7753cf8..4ac3e58 100644
--- a/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
+++ b/slices/benchmark/src/androidTest/java/androidx/slice/SliceSerializeMetrics.java
@@ -37,10 +37,11 @@
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.slice.benchmark.test.R;
 import androidx.slice.core.SliceHints;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -65,7 +66,7 @@
     @Rule
     public BenchmarkRule mBenchmarkRule = new BenchmarkRule();
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testSerialization() throws Exception {
diff --git a/slices/benchmark/src/androidTest/java/androidx/slice/SliceViewMetrics.java b/slices/benchmark/src/androidTest/java/androidx/slice/SliceViewMetrics.java
index b4c017e..9b091d1 100644
--- a/slices/benchmark/src/androidTest/java/androidx/slice/SliceViewMetrics.java
+++ b/slices/benchmark/src/androidTest/java/androidx/slice/SliceViewMetrics.java
@@ -24,10 +24,11 @@
 import androidx.benchmark.BenchmarkRule;
 import androidx.benchmark.BenchmarkState;
 import androidx.slice.widget.SliceView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -79,7 +80,7 @@
         }
     };
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testCreate() {
diff --git a/slices/builders/ktx/build.gradle b/slices/builders/ktx/build.gradle
index bd15782..5bb4e95 100644
--- a/slices/builders/ktx/build.gradle
+++ b/slices/builders/ktx/build.gradle
@@ -40,6 +40,8 @@
     api(project(":slice-builders"))
     api(KOTLIN_STDLIB)
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     implementation project(":annotation")
diff --git a/slices/builders/ktx/src/androidTest/java/androidx/slice/builders/SliceBuildersKtxTest.kt b/slices/builders/ktx/src/androidTest/java/androidx/slice/builders/SliceBuildersKtxTest.kt
index 97a0cf8..f7dfb6a 100644
--- a/slices/builders/ktx/src/androidTest/java/androidx/slice/builders/SliceBuildersKtxTest.kt
+++ b/slices/builders/ktx/src/androidTest/java/androidx/slice/builders/SliceBuildersKtxTest.kt
@@ -19,20 +19,20 @@
 import android.app.PendingIntent
 import android.content.Intent
 import android.net.Uri
-import androidx.test.InstrumentationRegistry
-import androidx.test.filters.SdkSuppress
 import androidx.core.graphics.drawable.IconCompat
 import androidx.slice.SliceProvider
 import androidx.slice.SliceSpecs
 import androidx.slice.builders.ListBuilder.ICON_IMAGE
 import androidx.slice.builders.ktx.test.R
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.filters.SdkSuppress
 import org.junit.Assert.assertEquals
 import org.junit.Test
 
 @SdkSuppress(minSdkVersion = 19)
 class SliceBuildersKtxTest {
     private val testUri = Uri.parse("content://com.example.android.sliceuri")
-    private val context = InstrumentationRegistry.getContext()
+    private val context = ApplicationProvider.getApplicationContext() as android.content.Context
 
     init {
         SliceProvider.setSpecs(setOf(SliceSpecs.LIST))
diff --git a/slices/core/build.gradle b/slices/core/build.gradle
index 8826f4f..b0c132c 100644
--- a/slices/core/build.gradle
+++ b/slices/core/build.gradle
@@ -28,6 +28,8 @@
     implementation project(":appcompat")
     api(project(":remotecallback"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
diff --git a/slices/core/src/androidTest/java/androidx/slice/SliceItemTest.java b/slices/core/src/androidTest/java/androidx/slice/SliceItemTest.java
index 84a555f..6fd9163 100644
--- a/slices/core/src/androidTest/java/androidx/slice/SliceItemTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/SliceItemTest.java
@@ -24,9 +24,9 @@
 import android.text.Spanned;
 import android.text.style.StyleSpan;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/slices/core/src/androidTest/java/androidx/slice/SlicePermissionTest.java b/slices/core/src/androidTest/java/androidx/slice/SlicePermissionTest.java
index 9397dc0..bff1608 100644
--- a/slices/core/src/androidTest/java/androidx/slice/SlicePermissionTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/SlicePermissionTest.java
@@ -28,10 +28,10 @@
 import android.os.Process;
 
 import androidx.slice.compat.CompatPermissionManager;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
@@ -44,7 +44,7 @@
 public class SlicePermissionTest {
 
     private static final Uri BASE_URI = Uri.parse("content://androidx.slice.core.permission/");
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private String mTestPkg;
     private int mTestUid;
     private int mTestPid;
diff --git a/slices/core/src/androidTest/java/androidx/slice/SliceProviderCallbackTest.java b/slices/core/src/androidTest/java/androidx/slice/SliceProviderCallbackTest.java
index 260d92f..a15f6f9b 100644
--- a/slices/core/src/androidTest/java/androidx/slice/SliceProviderCallbackTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/SliceProviderCallbackTest.java
@@ -28,10 +28,10 @@
 
 import androidx.remotecallback.RemoteCallable;
 import androidx.remotecallback.RemoteCallback;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,7 +52,7 @@
     private static Integer sNullableInt;
     private static CountDownLatch sLatch;
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testRemoteCallback() {
diff --git a/slices/core/src/androidTest/java/androidx/slice/SliceTest.java b/slices/core/src/androidTest/java/androidx/slice/SliceTest.java
index b1c3077..7af2097 100644
--- a/slices/core/src/androidTest/java/androidx/slice/SliceTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/SliceTest.java
@@ -46,10 +46,10 @@
 
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.slice.core.test.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,7 +67,7 @@
     public static boolean sFlag = false;
 
     private static final Uri BASE_URI = Uri.parse("content://androidx.slice.core.test/");
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testProcess() {
diff --git a/slices/core/src/androidTest/java/androidx/slice/compat/CompatPermissionManagerTest.java b/slices/core/src/androidTest/java/androidx/slice/compat/CompatPermissionManagerTest.java
index fc1fbaa..14e5d2a 100644
--- a/slices/core/src/androidTest/java/androidx/slice/compat/CompatPermissionManagerTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/compat/CompatPermissionManagerTest.java
@@ -34,10 +34,10 @@
 import android.net.Uri;
 import android.os.Process;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -49,7 +49,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class CompatPermissionManagerTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testAutoGrant() {
diff --git a/slices/core/src/androidTest/java/androidx/slice/compat/CompatPinnedListTest.java b/slices/core/src/androidTest/java/androidx/slice/compat/CompatPinnedListTest.java
index 1b872df..b0bff92 100644
--- a/slices/core/src/androidTest/java/androidx/slice/compat/CompatPinnedListTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/compat/CompatPinnedListTest.java
@@ -27,10 +27,10 @@
 
 import androidx.collection.ArraySet;
 import androidx.slice.SliceSpec;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import junit.framework.AssertionFailedError;
 
@@ -48,7 +48,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class CompatPinnedListTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private CompatPinnedList mCompatPinnedList;
     private Set<SliceSpec> mSpecs;
 
diff --git a/slices/core/src/androidTest/java/androidx/slice/compat/SliceProviderCompatTest.java b/slices/core/src/androidTest/java/androidx/slice/compat/SliceProviderCompatTest.java
index 459963d..d559c76 100644
--- a/slices/core/src/androidTest/java/androidx/slice/compat/SliceProviderCompatTest.java
+++ b/slices/core/src/androidTest/java/androidx/slice/compat/SliceProviderCompatTest.java
@@ -38,10 +38,10 @@
 import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
 import androidx.slice.SliceSpec;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -53,7 +53,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceProviderCompatTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test
     public void testBindWithPermission() {
diff --git a/slices/test/build.gradle b/slices/test/build.gradle
index f449a0a..e481b64 100644
--- a/slices/test/build.gradle
+++ b/slices/test/build.gradle
@@ -28,6 +28,8 @@
     implementation(project(":recyclerview"))
     api(ARCH_LIFECYCLE_LIVEDATA_CORE, libs.exclude_annotations_transitive)
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
diff --git a/slices/view/build.gradle b/slices/view/build.gradle
index 219167c..a8aa16f 100644
--- a/slices/view/build.gradle
+++ b/slices/view/build.gradle
@@ -29,6 +29,8 @@
 
     androidTestImplementation(project(":slice-builders"))
     androidTestImplementation(project(":slice-test"))
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/slices/view/src/androidTest/java/androidx/slice/SliceBuilderTest.java b/slices/view/src/androidTest/java/androidx/slice/SliceBuilderTest.java
index 3f836a6..f4835bc8 100644
--- a/slices/view/src/androidTest/java/androidx/slice/SliceBuilderTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/SliceBuilderTest.java
@@ -38,10 +38,10 @@
 import androidx.slice.builders.SliceAction;
 import androidx.slice.render.SliceRenderActivity;
 import androidx.slice.widget.SliceLiveData;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -56,7 +56,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceBuilderTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private final Uri mUri = Uri.parse("content://androidx.slice.view.test/slice");
 
     @Before
diff --git a/slices/view/src/androidTest/java/androidx/slice/SliceMetadataTest.java b/slices/view/src/androidTest/java/androidx/slice/SliceMetadataTest.java
index aee6825..07232cc 100644
--- a/slices/view/src/androidTest/java/androidx/slice/SliceMetadataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/SliceMetadataTest.java
@@ -53,10 +53,10 @@
 import androidx.slice.render.SliceRenderActivity;
 import androidx.slice.widget.EventInfo;
 import androidx.slice.widget.SliceLiveData;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -78,7 +78,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceMetadataTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Before
     public void setup() {
diff --git a/slices/view/src/androidTest/java/androidx/slice/SliceViewManagerTest.java b/slices/view/src/androidTest/java/androidx/slice/SliceViewManagerTest.java
index 3abeeb8..f91dcc6 100644
--- a/slices/view/src/androidTest/java/androidx/slice/SliceViewManagerTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/SliceViewManagerTest.java
@@ -40,10 +40,10 @@
 import androidx.annotation.NonNull;
 import androidx.slice.render.SliceRenderActivity;
 import androidx.slice.widget.SliceLiveData;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,7 +59,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceViewManagerTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private SliceProvider mSliceProvider;
     private SliceViewManager mViewManager;
     private SliceManager mManager;
diff --git a/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java b/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
index f2c7262..9804365 100644
--- a/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/SliceXmlTest.java
@@ -41,10 +41,10 @@
 import androidx.slice.core.SliceHints;
 import androidx.slice.core.SliceQuery;
 import androidx.slice.view.R;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,7 +60,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceXmlTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Test(expected = IllegalArgumentException.class)
     public void testThrowForAction() throws IOException {
diff --git a/slices/view/src/androidTest/java/androidx/slice/render/RenderTest.java b/slices/view/src/androidTest/java/androidx/slice/render/RenderTest.java
index 381df6e..2660067 100644
--- a/slices/view/src/androidTest/java/androidx/slice/render/RenderTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/render/RenderTest.java
@@ -30,11 +30,12 @@
 import android.content.IntentFilter;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.GrantPermissionRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -53,7 +54,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class RenderTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
 
     @Rule
     public GrantPermissionRule mRuntimePermissionRule =
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
index bc3e16b..c6f9a6e 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/CachedSliceLiveDataTest.java
@@ -40,10 +40,11 @@
 import androidx.slice.SliceUtils;
 import androidx.slice.SliceViewManager;
 import androidx.slice.SliceViewManager.SliceCallback;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -67,7 +68,7 @@
     private static final Intent INTENT_TWO = new Intent("intent2");
     private static final Intent INTENT_THREE = new Intent("intent3");
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation();
 
     private SliceViewManager mManager = mock(SliceViewManager.class);
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
index 9de7060..73a323c 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/SliceLiveDataTest.java
@@ -42,11 +42,12 @@
 import androidx.slice.SliceUtils;
 import androidx.slice.SliceViewManager;
 import androidx.slice.SliceViewManager.SliceCallback;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Before;
@@ -70,7 +71,7 @@
     private static final Intent INTENT_TWO = new Intent("intent2");
     private static final Intent INTENT_THREE = new Intent("intent3");
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation();
 
     private SliceViewManager mManager = mock(SliceViewManager.class);
diff --git a/slices/view/src/androidTest/java/androidx/slice/widget/SliceViewTest.java b/slices/view/src/androidTest/java/androidx/slice/widget/SliceViewTest.java
index 2ba7661..eca32c1 100644
--- a/slices/view/src/androidTest/java/androidx/slice/widget/SliceViewTest.java
+++ b/slices/view/src/androidTest/java/androidx/slice/widget/SliceViewTest.java
@@ -38,11 +38,11 @@
 import androidx.slice.builders.ListBuilder;
 import androidx.slice.builders.SliceAction;
 import androidx.slice.render.SliceRenderActivity;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -60,7 +60,7 @@
 @SdkSuppress(minSdkVersion = 19)
 public class SliceViewTest {
 
-    private final Context mContext = InstrumentationRegistry.getContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
     private SliceView mSliceView;
 
     @Before
diff --git a/swiperefreshlayout/build.gradle b/swiperefreshlayout/build.gradle
index e06db480..dbf32ef2 100644
--- a/swiperefreshlayout/build.gradle
+++ b/swiperefreshlayout/build.gradle
@@ -12,6 +12,8 @@
     api("androidx.interpolator:interpolator:1.0.0")
 
     androidTestImplementation(JUNIT)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
index e276d6a..1d432a5 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/CircularProgressDrawableTest.java
@@ -30,9 +30,9 @@
 import android.graphics.Rect;
 import android.graphics.RectF;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild2Test.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild2Test.java
index c157c98..4a8593e 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild2Test.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild2Test.java
@@ -35,9 +35,9 @@
 import androidx.annotation.NonNull;
 import androidx.core.view.NestedScrollingParent2;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -59,8 +59,8 @@
 
     @Before
     public void instantiateMembers() {
-        mSwipeRefreshLayout = new SwipeRefreshLayout(InstrumentationRegistry.getContext());
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
+        mSwipeRefreshLayout = new SwipeRefreshLayout(ApplicationProvider.getApplicationContext());
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
     }
 
     @Test
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild3Test.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild3Test.java
index 1d60923..9100d76 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild3Test.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingChild3Test.java
@@ -33,9 +33,9 @@
 import androidx.annotation.NonNull;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -54,8 +54,8 @@
 
     @Before
     public void instantiateMembers() {
-        mSwipeRefreshLayout = new SwipeRefreshLayout(InstrumentationRegistry.getContext());
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
+        mSwipeRefreshLayout = new SwipeRefreshLayout(ApplicationProvider.getApplicationContext());
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
     }
 
     @Test
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent2Test.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent2Test.java
index e7431654..8a114c3 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent2Test.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent2Test.java
@@ -36,9 +36,9 @@
 import androidx.annotation.NonNull;
 import androidx.core.view.NestedScrollingParent2;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -61,9 +61,9 @@
 
     @Before
     public void instantiateMembers() {
-        mSwipeRefreshLayout = new SwipeRefreshLayout(InstrumentationRegistry.getContext());
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
-        mChild = new View(InstrumentationRegistry.getContext());
+        mSwipeRefreshLayout = new SwipeRefreshLayout(ApplicationProvider.getApplicationContext());
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
+        mChild = new View(ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent3Test.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent3Test.java
index b68850ba..e3fc182 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent3Test.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParent3Test.java
@@ -35,9 +35,9 @@
 import androidx.annotation.NonNull;
 import androidx.core.view.NestedScrollingParent3;
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -62,9 +62,9 @@
 
     @Before
     public void instantiateMembers() {
-        mSwipeRefreshLayout = new SwipeRefreshLayout(InstrumentationRegistry.getContext());
-        mParent = spy(new NestedScrollingSpyView(InstrumentationRegistry.getContext()));
-        mChild = spy(new View(InstrumentationRegistry.getContext()));
+        mSwipeRefreshLayout = new SwipeRefreshLayout(ApplicationProvider.getApplicationContext());
+        mParent = spy(new NestedScrollingSpyView(ApplicationProvider.getApplicationContext()));
+        mChild = spy(new View(ApplicationProvider.getApplicationContext()));
     }
 
     @Test
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParentTest.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParentTest.java
index 043fae3..99f514f 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParentTest.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutNestedScrollingParentTest.java
@@ -22,9 +22,9 @@
 import android.view.View;
 
 import androidx.core.view.ViewCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -47,8 +47,8 @@
 
     @Before
     public void instantiateMembers() {
-        mSwipeRefreshLayout = new SwipeRefreshLayout(InstrumentationRegistry.getContext());
-        mChild = new View(InstrumentationRegistry.getContext());
+        mSwipeRefreshLayout = new SwipeRefreshLayout(ApplicationProvider.getApplicationContext());
+        mChild = new View(ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
index 0eb2af7..fe1324e 100644
--- a/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
+++ b/swiperefreshlayout/src/androidTest/java/androidx/swiperefreshlayout/widget/SwipeRefreshLayoutTest.java
@@ -33,11 +33,11 @@
 
 import androidx.swiperefreshlayout.test.R;
 import androidx.test.espresso.action.ViewActions;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.testutils.PollingCheck;
 
 import org.junit.Before;
diff --git a/testutils/build.gradle b/testutils/build.gradle
index 6284c00..4924dca 100644
--- a/testutils/build.gradle
+++ b/testutils/build.gradle
@@ -25,7 +25,8 @@
     api(project(":fragment"))
     api(project(":appcompat"))
 
-    implementation(TEST_RUNNER)
+    implementation(TEST_EXT_JUNIT)
+    implementation(TEST_CORE)
     implementation(TEST_RULES)
     implementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     implementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
diff --git a/textclassifier/build.gradle b/textclassifier/build.gradle
index ca2c9bb..2875224 100644
--- a/textclassifier/build.gradle
+++ b/textclassifier/build.gradle
@@ -12,6 +12,8 @@
     api("androidx.collection:collection:1.0.0")
     api("androidx.core:core:1.1.0-alpha01")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(TRUTH)
diff --git a/textclassifier/integration-tests/testapp/build.gradle b/textclassifier/integration-tests/testapp/build.gradle
index 3626f7d..09f0f5f 100644
--- a/textclassifier/integration-tests/testapp/build.gradle
+++ b/textclassifier/integration-tests/testapp/build.gradle
@@ -35,6 +35,8 @@
 
 dependencies {
     implementation(project(":textclassifier"))
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE)
diff --git a/textclassifier/integration-tests/testapp/src/androidTest/java/androidx/textclassifier/integration/testapp/MainActivityTest.java b/textclassifier/integration-tests/testapp/src/androidTest/java/androidx/textclassifier/integration/testapp/MainActivityTest.java
index ff50d18..73a04cc 100644
--- a/textclassifier/integration-tests/testapp/src/androidTest/java/androidx/textclassifier/integration/testapp/MainActivityTest.java
+++ b/textclassifier/integration-tests/testapp/src/androidTest/java/androidx/textclassifier/integration/testapp/MainActivityTest.java
@@ -25,9 +25,9 @@
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/LegacyTextClassifierTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/LegacyTextClassifierTest.java
index 18cec4f..7b1722f 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/LegacyTextClassifierTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/LegacyTextClassifierTest.java
@@ -30,9 +30,9 @@
 import androidx.collection.ArraySet;
 import androidx.core.app.RemoteActionCompat;
 import androidx.core.graphics.drawable.IconCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -69,7 +69,7 @@
     @Before
     public void setUp() {
         mPendingIntent = PendingIntent.getActivity(
-                InstrumentationRegistry.getTargetContext(), 0, new Intent(), 0);
+                ApplicationProvider.getApplicationContext(), 0, new Intent(), 0);
 
         mMatchMaker = mock(MatchMaker.class);
         when(mMatchMaker.getActions(anyString(), any(CharSequence.class)))
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/MatchMakerImplTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/MatchMakerImplTest.java
index f12501a..4a2506f 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/MatchMakerImplTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/MatchMakerImplTest.java
@@ -33,9 +33,9 @@
 import android.os.UserManager;
 
 import androidx.core.app.RemoteActionCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.textclassifier.LegacyTextClassifier.MatchMakerImpl;
 import androidx.textclassifier.LegacyTextClassifier.MatchMakerImpl.PermissionsChecker;
 
@@ -75,7 +75,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mPackageManager = mock(PackageManager.class);
         when(mPackageManager.resolveActivity(any(Intent.class), anyInt())).thenReturn(RESOLVE_INFO);
         mUserRestrictions = new Bundle();
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/PlatformTextClassifierWrapperTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/PlatformTextClassifierWrapperTest.java
index b7bf166..5628096 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/PlatformTextClassifierWrapperTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/PlatformTextClassifierWrapperTest.java
@@ -22,10 +22,10 @@
 import android.os.Build;
 
 import androidx.core.os.LocaleListCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -57,7 +57,7 @@
     @Before
     public void setup() {
         mClassifier = PlatformTextClassifierWrapper.create(
-                InstrumentationRegistry.getTargetContext());
+                ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/SelectionEventTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/SelectionEventTest.java
index 16d5f65..45ccff0 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/SelectionEventTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/SelectionEventTest.java
@@ -25,10 +25,10 @@
 import android.content.Context;
 import android.os.Bundle;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -56,7 +56,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TestUtils.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TestUtils.java
index 76e92ec..2657cec 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TestUtils.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TestUtils.java
@@ -21,7 +21,7 @@
 import android.os.Build;
 import android.view.WindowManager;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 public final class TestUtils {
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationContextTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationContextTest.java
index 573b5c5..0b79c7b 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationContextTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationContextTest.java
@@ -20,9 +20,9 @@
 
 import android.os.Bundle;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationManagerTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationManagerTest.java
index 7d8607d..c58b9ab 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationManagerTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationManagerTest.java
@@ -24,7 +24,7 @@
 import android.content.pm.PackageManager;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 
@@ -54,7 +54,7 @@
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             mPlatformTextClassificationMgr =
-                    InstrumentationRegistry.getTargetContext().getSystemService(
+                    ApplicationProvider.getApplicationContext().getSystemService(
                             android.view.textclassifier.TextClassificationManager.class);
             when(mContext.getSystemService(Context.TEXT_CLASSIFICATION_SERVICE))
                     .thenReturn(mPlatformTextClassificationMgr);
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationSessionIdTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationSessionIdTest.java
index 492124b..b8a301b 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationSessionIdTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationSessionIdTest.java
@@ -19,8 +19,9 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.os.Bundle;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationTest.java
index 620f94f..7f70783 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassificationTest.java
@@ -32,10 +32,10 @@
 import androidx.core.app.RemoteActionCompat;
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.core.os.LocaleListCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -76,7 +76,7 @@
 
     @Before
     public void setup() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     private static IconCompat generateTestIcon(int width, int height, int colorValue) {
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassifierTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassifierTest.java
index 770c54d..5b00ad0 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassifierTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextClassifierTest.java
@@ -18,10 +18,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
 import androidx.textclassifier.TextClassifier.EntityConfig.Builder;
 
 import org.junit.Test;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinkSpanTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinkSpanTest.java
index 668fe42..bf1b863 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinkSpanTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinkSpanTest.java
@@ -44,9 +44,9 @@
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.textclassifier.TextLinks.TextLink;
 import androidx.textclassifier.TextLinks.TextLinkSpan;
 import androidx.textclassifier.test.R;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinksTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinksTest.java
index 8bae29d..dacc89e 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinksTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextLinksTest.java
@@ -32,10 +32,10 @@
 
 import androidx.collection.ArrayMap;
 import androidx.core.os.LocaleListCompat;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -166,7 +166,7 @@
         SpannableString text = new SpannableString(FULL_TEXT);
         TextLinks textLinks = new TextLinks.Builder(text).build();
 
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TextClassifier textClassifier = TextClassificationManager.of(context).getTextClassifier();
         int status = textLinks.apply(text, textClassifier, TextLinksParams.DEFAULT_PARAMS);
         assertThat(status).isEqualTo(TextLinks.STATUS_NO_LINKS_FOUND);
@@ -183,7 +183,7 @@
                 .addLink(START, END, Collections.singletonMap(TextClassifier.TYPE_PHONE, 1.0f))
                 .build();
 
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         TextClassifier textClassifier = TextClassificationManager.of(context).getTextClassifier();
         int status = textLinks.apply(text, textClassifier, TextLinksParams.DEFAULT_PARAMS);
         assertThat(status).isEqualTo(TextLinks.STATUS_LINKS_APPLIED);
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/TextSelectionTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/TextSelectionTest.java
index 52c7290..bc5ecc9 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/TextSelectionTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/TextSelectionTest.java
@@ -25,9 +25,9 @@
 import android.os.LocaleList;
 
 import androidx.core.os.LocaleListCompat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
index 809ed34..875c315 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/widget/FloatingToolbarTest.java
@@ -62,10 +62,10 @@
 import androidx.test.espresso.action.GeneralClickAction;
 import androidx.test.espresso.action.Press;
 import androidx.test.espresso.action.Tap;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.textclassifier.R;
 import androidx.textclassifier.TestUtils;
 
diff --git a/textclassifier/src/androidTest/java/androidx/textclassifier/widget/ToolbarControllerTest.java b/textclassifier/src/androidTest/java/androidx/textclassifier/widget/ToolbarControllerTest.java
index 61e3ccb..67a46c1 100644
--- a/textclassifier/src/androidTest/java/androidx/textclassifier/widget/ToolbarControllerTest.java
+++ b/textclassifier/src/androidTest/java/androidx/textclassifier/widget/ToolbarControllerTest.java
@@ -53,10 +53,10 @@
 import androidx.test.espresso.UiController;
 import androidx.test.espresso.ViewAction;
 import androidx.test.espresso.ViewInteraction;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.textclassifier.test.R;
 
 import org.hamcrest.BaseMatcher;
diff --git a/transition/build.gradle b/transition/build.gradle
index 24d758c..61f7c27 100644
--- a/transition/build.gradle
+++ b/transition/build.gradle
@@ -11,6 +11,8 @@
     api(project(":core"))
     compileOnly project(':fragment')
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/transition/src/androidTest/java/androidx/transition/ArcMotionTest.java b/transition/src/androidTest/java/androidx/transition/ArcMotionTest.java
index e9a5e69..5e15bfa 100644
--- a/transition/src/androidTest/java/androidx/transition/ArcMotionTest.java
+++ b/transition/src/androidTest/java/androidx/transition/ArcMotionTest.java
@@ -20,8 +20,8 @@
 
 import android.graphics.Path;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/transition/src/androidTest/java/androidx/transition/BaseTest.java b/transition/src/androidTest/java/androidx/transition/BaseTest.java
index 2a9432f..7e934e0 100644
--- a/transition/src/androidTest/java/androidx/transition/BaseTest.java
+++ b/transition/src/androidTest/java/androidx/transition/BaseTest.java
@@ -16,8 +16,8 @@
 
 package androidx.transition;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.runner.RunWith;
diff --git a/transition/src/androidTest/java/androidx/transition/BaseTransitionTest.java b/transition/src/androidTest/java/androidx/transition/BaseTransitionTest.java
index 3194489..4c43520 100644
--- a/transition/src/androidTest/java/androidx/transition/BaseTransitionTest.java
+++ b/transition/src/androidTest/java/androidx/transition/BaseTransitionTest.java
@@ -27,7 +27,7 @@
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.transition.test.R;
 
 import org.junit.Before;
diff --git a/transition/src/androidTest/java/androidx/transition/ChangeImageTransformTest.java b/transition/src/androidTest/java/androidx/transition/ChangeImageTransformTest.java
index 3031c4f..b08907c 100644
--- a/transition/src/androidTest/java/androidx/transition/ChangeImageTransformTest.java
+++ b/transition/src/androidTest/java/androidx/transition/ChangeImageTransformTest.java
@@ -37,8 +37,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.core.app.ActivityCompat;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.transition.test.R;
 
 import org.junit.Test;
diff --git a/transition/src/androidTest/java/androidx/transition/ExplodeTest.java b/transition/src/androidTest/java/androidx/transition/ExplodeTest.java
index cc1edd2..d402a8b 100644
--- a/transition/src/androidTest/java/androidx/transition/ExplodeTest.java
+++ b/transition/src/androidTest/java/androidx/transition/ExplodeTest.java
@@ -36,7 +36,6 @@
 import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Before;
-import org.junit.Test;
 import org.mockito.verification.VerificationMode;
 
 @LargeTest
diff --git a/transition/src/androidTest/java/androidx/transition/FadeTest.java b/transition/src/androidTest/java/androidx/transition/FadeTest.java
index 3fad244..9dc373e 100644
--- a/transition/src/androidTest/java/androidx/transition/FadeTest.java
+++ b/transition/src/androidTest/java/androidx/transition/FadeTest.java
@@ -40,9 +40,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.transition.test.R;
 
 import org.junit.Before;
diff --git a/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.java b/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.java
index 94e0027..0bd5cf0 100644
--- a/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.java
+++ b/transition/src/androidTest/java/androidx/transition/FragmentTransitionTest.java
@@ -37,8 +37,8 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.transition.test.R;
 
 import org.junit.Test;
diff --git a/transition/src/androidTest/java/androidx/transition/PatternPathMotionTest.java b/transition/src/androidTest/java/androidx/transition/PatternPathMotionTest.java
index 8fc0d24..117e780 100644
--- a/transition/src/androidTest/java/androidx/transition/PatternPathMotionTest.java
+++ b/transition/src/androidTest/java/androidx/transition/PatternPathMotionTest.java
@@ -21,8 +21,8 @@
 import android.graphics.Path;
 import android.graphics.RectF;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/transition/src/androidTest/java/androidx/transition/SlideBadEdgeTest.java b/transition/src/androidTest/java/androidx/transition/SlideBadEdgeTest.java
index bb689a0..90c19c5 100644
--- a/transition/src/androidTest/java/androidx/transition/SlideBadEdgeTest.java
+++ b/transition/src/androidTest/java/androidx/transition/SlideBadEdgeTest.java
@@ -20,8 +20,8 @@
 
 import android.view.Gravity;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/transition/src/androidTest/java/androidx/transition/SlideDefaultEdgeTest.java b/transition/src/androidTest/java/androidx/transition/SlideDefaultEdgeTest.java
index fd12c0a..74634a1 100644
--- a/transition/src/androidTest/java/androidx/transition/SlideDefaultEdgeTest.java
+++ b/transition/src/androidTest/java/androidx/transition/SlideDefaultEdgeTest.java
@@ -20,8 +20,8 @@
 
 import android.view.Gravity;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tv-provider/build.gradle b/tv-provider/build.gradle
index 4eccff9..2c18244 100644
--- a/tv-provider/build.gradle
+++ b/tv-provider/build.gradle
@@ -10,6 +10,8 @@
     api(project(":annotation"))
     api(project(":core"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(MOCKITO_CORE)
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelLogoUtilsTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelLogoUtilsTest.java
index aad1bdc..8c24f11 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelLogoUtilsTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelLogoUtilsTest.java
@@ -16,7 +16,7 @@
 
 package androidx.tvprovider.media.tv;
 
-import static androidx.test.InstrumentationRegistry.getContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -32,9 +32,9 @@
 import android.net.Uri;
 import android.os.SystemClock;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.tvprovider.test.R;
 
 import org.junit.After;
@@ -54,7 +54,7 @@
 
     @Before
     public void setUp() throws Exception {
-        mContentResolver = getContext().getContentResolver();
+        mContentResolver = getApplicationContext().getContentResolver();
         ContentValues contentValues = new Channel.Builder()
                 .setInputId(FAKE_INPUT_ID)
                 .setType(TvContractCompat.Channels.TYPE_OTHER).build().toContentValues();
@@ -69,32 +69,32 @@
 
     @Test
     public void testStoreChannelLogo_fromBitmap() {
-        assertNull(ChannelLogoUtils.loadChannelLogo(getContext(), mChannelId));
-        Bitmap logo = BitmapFactory.decodeResource(getContext().getResources(),
+        assertNull(ChannelLogoUtils.loadChannelLogo(getApplicationContext(), mChannelId));
+        Bitmap logo = BitmapFactory.decodeResource(getApplicationContext().getResources(),
                 R.drawable.test_icon);
         assertNotNull(logo);
-        assertTrue(ChannelLogoUtils.storeChannelLogo(getContext(), mChannelId, logo));
+        assertTrue(ChannelLogoUtils.storeChannelLogo(getApplicationContext(), mChannelId, logo));
         // Workaround: the file status is not consistent between openInputStream/openOutputStream,
         // wait 10 secs to make sure that the logo file is written into the disk.
         SystemClock.sleep(10000);
-        assertNotNull(ChannelLogoUtils.loadChannelLogo(getContext(), mChannelId));
+        assertNotNull(ChannelLogoUtils.loadChannelLogo(getApplicationContext(), mChannelId));
     }
 
     @Test
     public void testStoreChannelLogo_fromResUri() {
-        assertNull(ChannelLogoUtils.loadChannelLogo(getContext(), mChannelId));
+        assertNull(ChannelLogoUtils.loadChannelLogo(getApplicationContext(), mChannelId));
         int resId = R.drawable.test_icon;
-        Resources res = getContext().getResources();
+        Resources res = getApplicationContext().getResources();
         Uri logoUri = new Uri.Builder()
                 .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                 .authority(res.getResourcePackageName(resId))
                 .appendPath(res.getResourceTypeName(resId))
                 .appendPath(res.getResourceEntryName(resId))
                 .build();
-        assertTrue(ChannelLogoUtils.storeChannelLogo(getContext(), mChannelId, logoUri));
+        assertTrue(ChannelLogoUtils.storeChannelLogo(getApplicationContext(), mChannelId, logoUri));
         // Workaround: the file status is not consistent between openInputStream/openOutputStream,
         // wait 10 secs to make sure that the logo file is written into the disk.
         SystemClock.sleep(10000);
-        assertNotNull(ChannelLogoUtils.loadChannelLogo(getContext(), mChannelId));
+        assertNotNull(ChannelLogoUtils.loadChannelLogo(getApplicationContext(), mChannelId));
     }
 }
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelTest.java
index 8df68c1..355ec74 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ChannelTest.java
@@ -26,10 +26,10 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.tvprovider.media.tv.TvContractCompat.Channels;
 
 import org.junit.After;
@@ -46,10 +46,10 @@
 public class ChannelTest {
     @After
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         resolver.delete(Channels.CONTENT_URI, null, null);
     }
 
@@ -94,12 +94,12 @@
 
     @Test
     public void testChannelWithSystemContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         Channel fullyPopulatedChannel = createFullyPopulatedChannel();
         ContentValues contentValues = fullyPopulatedChannel.toContentValues();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, contentValues);
         assertNotNull(channelUri);
 
@@ -109,13 +109,13 @@
 
     @Test
     public void testChannelUpdateWithContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
 
         Channel fullyPopulatedChannel = createFullyPopulatedChannel();
         ContentValues contentValues = fullyPopulatedChannel.toContentValues();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, contentValues);
         assertNotNull(channelUri);
 
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelHelperTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelHelperTest.java
index 83b7cac..1e89a26 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelHelperTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelHelperTest.java
@@ -29,7 +29,7 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 
@@ -259,13 +259,13 @@
 
     @Before
     public void setUp() throws Exception {
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
 
     }
 
     @After
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         mContext.getContentResolver().delete(
@@ -279,7 +279,7 @@
      */
     @Test
     public void testPreviewChannelCreation() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -291,7 +291,7 @@
 
     @Test
     public void testLogoRequiredForChannelCreation() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -310,7 +310,7 @@
      */
     @Test
     public void testPreviewChannelCreationWithNullProviderId() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannel.Builder builder = createFullyPopulatedPreviewChannel();
@@ -352,7 +352,7 @@
      */
     @Test
     public void testAllPublishedChannelsRead() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -375,7 +375,7 @@
      */
     @Test
     public void testPreviewChannelUpdate() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -400,7 +400,7 @@
      */
     @Test
     public void testDefensiveUpdatePreviewChannel() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         final int[] channelUpdateCount = {0};
@@ -429,7 +429,7 @@
 
     @Test
     public void testPreviewResolverChannelDeletion() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -445,7 +445,7 @@
 
     @Test
     public void testPreviewProgramCreation() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -459,7 +459,7 @@
 
     @Test
     public void testPreviewProgramUpdate() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -480,7 +480,7 @@
      */
     @Test
     public void testDefensivePreviewProgramUpdateRequests() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         final int[] programUpdateCount = {0};
@@ -506,7 +506,7 @@
 
     @Test
     public void testDeletePreviewProgram() throws IOException {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -522,7 +522,7 @@
 
     @Test
     public void testWatchNextProgramCreation() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -534,7 +534,7 @@
 
     @Test
     public void testUpdateWatchNextProgram() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         PreviewChannelHelper helper = new PreviewChannelHelper(mContext);
@@ -552,7 +552,7 @@
      */
     @Test
     public void testDefensiveUpdateWatchNextProgram() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         final int[] programUpdateCount = {0};
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelTest.java
index 0ec9b90..3fde739 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewChannelTest.java
@@ -25,7 +25,7 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.tvprovider.media.tv.TvContractCompat.Channels;
@@ -61,12 +61,12 @@
     @Before
     public void setUp() throws Exception {
         super.setUp();
-        mContext = InstrumentationRegistry.getContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @After
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         ContentResolver resolver = mContext.getContentResolver();
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewProgramTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewProgramTest.java
index b6736f2..58350b9 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewProgramTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/PreviewProgramTest.java
@@ -28,10 +28,10 @@
 import android.media.tv.TvContentRating;
 import android.net.Uri;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.tvprovider.media.tv.TvContractCompat.Channels;
 import androidx.tvprovider.media.tv.TvContractCompat.PreviewPrograms;
 
@@ -54,10 +54,10 @@
 
     @After
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         resolver.delete(Channels.CONTENT_URI, null, null);
     }
 
@@ -106,14 +106,14 @@
 
     @Test
     public void testPreviewProgramWithSystemContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         Channel channel = new Channel.Builder()
                 .setInputId("TestInputService")
                 .setType(TvContractCompat.Channels.TYPE_PREVIEW)
                 .build();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, channel.toContentValues());
         assertNotNull(channelUri);
 
@@ -129,14 +129,14 @@
 
     @Test
     public void testPreviewProgramUpdateWithContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         Channel channel = new Channel.Builder()
                 .setInputId("TestInputService")
                 .setType(TvContractCompat.Channels.TYPE_PREVIEW)
                 .build();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, channel.toContentValues());
         assertNotNull(channelUri);
 
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ProgramTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ProgramTest.java
index 187fe60..9373809 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ProgramTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/ProgramTest.java
@@ -28,10 +28,10 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.tvprovider.media.tv.TvContractCompat.Channels;
 import androidx.tvprovider.media.tv.TvContractCompat.Programs;
 
@@ -52,10 +52,10 @@
 public class ProgramTest {
     @After
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         resolver.delete(Channels.CONTENT_URI, null, null);
     }
 
@@ -103,14 +103,14 @@
 
     @Test
     public void testChannelWithSystemContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         Channel channel = new Channel.Builder()
                 .setInputId("TestInputService")
                 .setType(TvContractCompat.Channels.TYPE_OTHER)
                 .build();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, channel.toContentValues());
         assertNotNull(channelUri);
 
@@ -125,14 +125,14 @@
 
     @Test
     public void testProgramUpdateWithContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         Channel channel = new Channel.Builder()
                 .setInputId("TestInputService")
                 .setType(TvContractCompat.Channels.TYPE_OTHER)
                 .build();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri channelUri = resolver.insert(Channels.CONTENT_URI, channel.toContentValues());
         assertNotNull(channelUri);
 
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/TvContractUtilsTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/TvContractUtilsTest.java
index e69cdeb..a702752 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/TvContractUtilsTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/TvContractUtilsTest.java
@@ -22,9 +22,9 @@
 import android.media.tv.TvContentRating;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/WatchNextProgramTest.java b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/WatchNextProgramTest.java
index eb2ca31..5c58865 100644
--- a/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/WatchNextProgramTest.java
+++ b/tv-provider/src/androidTest/java/androidx/tvprovider/media/tv/WatchNextProgramTest.java
@@ -28,10 +28,10 @@
 import android.media.tv.TvContentRating;
 import android.net.Uri;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.tvprovider.media.tv.TvContractCompat.WatchNextPrograms;
 
 import org.junit.Before;
@@ -53,10 +53,10 @@
 
     @Before
     public void tearDown() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         resolver.delete(WatchNextPrograms.CONTENT_URI, null, null);
     }
 
@@ -102,11 +102,11 @@
 
     @Test
     public void testChannelWithSystemContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
         WatchNextProgram fullyPopulatedProgram = createFullyPopulatedWatchNextProgram();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri watchNextProgramUri = resolver.insert(WatchNextPrograms.CONTENT_URI,
                 fullyPopulatedProgram.toContentValues());
 
@@ -117,12 +117,12 @@
 
     @Test
     public void testWatchNextProgramUpdateWithContentProvider() {
-        if (!Utils.hasTvInputFramework(InstrumentationRegistry.getContext())) {
+        if (!Utils.hasTvInputFramework(ApplicationProvider.getApplicationContext())) {
             return;
         }
 
         WatchNextProgram fullyPopulatedProgram = createFullyPopulatedWatchNextProgram();
-        ContentResolver resolver = InstrumentationRegistry.getContext().getContentResolver();
+        ContentResolver resolver = ApplicationProvider.getApplicationContext().getContentResolver();
         Uri watchNextProgramUri = resolver.insert(WatchNextPrograms.CONTENT_URI,
                 fullyPopulatedProgram.toContentValues());
 
diff --git a/versionedparcelable/build.gradle b/versionedparcelable/build.gradle
index 899bc2c..1f5ae98 100644
--- a/versionedparcelable/build.gradle
+++ b/versionedparcelable/build.gradle
@@ -27,6 +27,8 @@
     implementation("androidx.annotation:annotation:1.0.0")
     implementation("androidx.collection:collection:1.0.0")
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
diff --git a/versionedparcelable/src/androidTest/java/androidx/versionedparcelable/ParcelUtilsTest.java b/versionedparcelable/src/androidTest/java/androidx/versionedparcelable/ParcelUtilsTest.java
index a7b3810..5b92880 100644
--- a/versionedparcelable/src/androidTest/java/androidx/versionedparcelable/ParcelUtilsTest.java
+++ b/versionedparcelable/src/androidTest/java/androidx/versionedparcelable/ParcelUtilsTest.java
@@ -25,8 +25,8 @@
 import android.os.Bundle;
 import android.os.Parcel;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/viewpager/build.gradle b/viewpager/build.gradle
index aa855af..481fe67 100644
--- a/viewpager/build.gradle
+++ b/viewpager/build.gradle
@@ -11,6 +11,8 @@
     api(project(":core"))
     api(project(":customview"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerTest.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerTest.java
index 67906cad..78f5a07 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerTest.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerTest.java
@@ -26,8 +26,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
 
 import org.junit.Rule;
diff --git a/viewpager2/build.gradle b/viewpager2/build.gradle
index f1ee813..d05cb2b 100644
--- a/viewpager2/build.gradle
+++ b/viewpager2/build.gradle
@@ -30,6 +30,8 @@
     implementation(project(":appcompat"))
     implementation(project(":cardview"))
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt
index 2a4d8b7..eadd547 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/LocaleTestUtilsTest.kt
@@ -16,14 +16,15 @@
 
 package androidx.viewpager2
 
+import android.content.Context
 import android.content.res.Configuration
 import android.os.Build
 import androidx.core.os.ConfigurationCompat
 import androidx.core.view.ViewCompat.LAYOUT_DIRECTION_LTR
 import androidx.core.view.ViewCompat.LAYOUT_DIRECTION_RTL
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
-import androidx.test.runner.AndroidJUnit4
 import org.hamcrest.CoreMatchers.equalTo
 import org.hamcrest.Matchers
 import org.junit.After
@@ -40,7 +41,7 @@
 @LargeTest
 class LocaleTestUtilsTest {
     private val configuration: Configuration get() =
-        InstrumentationRegistry.getTargetContext().resources.configuration
+        (ApplicationProvider.getApplicationContext() as Context).resources.configuration
     private val Configuration.language: String get() =
         ConfigurationCompat.getLocales(this).get(0).toString()
 
@@ -49,7 +50,8 @@
 
     @Before
     fun setUp() {
-        localeUtil = LocaleTestUtils(InstrumentationRegistry.getTargetContext())
+        localeUtil =
+                LocaleTestUtils(ApplicationProvider.getApplicationContext() as android.content.Context)
         determineDefaultLayoutDirection()
     }
 
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
index a06db4d..03f9cf0 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BaseTest.kt
@@ -23,7 +23,7 @@
 import androidx.core.view.ViewCompat
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.espresso.Espresso.onView
 import androidx.test.espresso.action.CoordinatesProvider
 import androidx.test.espresso.action.GeneralLocation
@@ -71,7 +71,8 @@
 
     @Before
     open fun setUp() {
-        localeUtil = LocaleTestUtils(InstrumentationRegistry.getTargetContext())
+        localeUtil =
+                LocaleTestUtils(ApplicationProvider.getApplicationContext() as android.content.Context)
         // Ensure a predictable test environment by explicitly setting a locale
         localeUtil.setLocale(LocaleTestUtils.DEFAULT_TEST_LANGUAGE)
     }
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BasicTest.java b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BasicTest.java
index 158749a..e3a11a9 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BasicTest.java
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/BasicTest.java
@@ -26,9 +26,9 @@
 import android.os.Parcelable;
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -48,7 +48,7 @@
         mExpectedException.expect(IllegalStateException.class);
         mExpectedException.expectMessage("ViewPager2 does not support direct child views");
 
-        Context context = InstrumentationRegistry.getContext();
+        Context context = ApplicationProvider.getApplicationContext();
         ViewPager2 viewPager = new ViewPager2(context);
         viewPager.addView(new View(context));
     }
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OrientationTest.java b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OrientationTest.java
index 79828f3..b462425 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OrientationTest.java
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/OrientationTest.java
@@ -27,9 +27,9 @@
 import android.view.LayoutInflater;
 
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.viewpager2.test.R;
 
 import org.junit.Test;
@@ -40,13 +40,13 @@
 public class OrientationTest {
     @Test
     public void test_orientation_noAttrs() {
-        ViewPager2 viewPager = new ViewPager2(InstrumentationRegistry.getContext());
+        ViewPager2 viewPager = new ViewPager2(ApplicationProvider.getApplicationContext());
         assertThat(viewPager.getOrientation(), equalTo(ViewPager2.ORIENTATION_HORIZONTAL));
     }
 
     @Test
     public void test_orientation_nullAttrs() {
-        ViewPager2 viewPager = new ViewPager2(InstrumentationRegistry.getContext(), null);
+        ViewPager2 viewPager = new ViewPager2(ApplicationProvider.getApplicationContext(), null);
         assertThat(viewPager.getOrientation(), equalTo(ViewPager2.ORIENTATION_HORIZONTAL));
     }
 
@@ -73,8 +73,9 @@
     }
 
     private void assertOrientationCorrect(int layoutId, int expectedOrientation) {
-        LayoutInflater layoutInflater = (LayoutInflater) checkNotNull(InstrumentationRegistry
-                .getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE));
+        LayoutInflater layoutInflater = (LayoutInflater) checkNotNull(
+                ApplicationProvider.getApplicationContext().getSystemService(
+                        Context.LAYOUT_INFLATER_SERVICE));
         ViewPager2 viewPager = (ViewPager2) layoutInflater.inflate(layoutId, null);
         assertThat(viewPager.getOrientation(), equalTo(expectedOrientation));
     }
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeListenerTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeListenerTest.kt
index cbacc36..b07935d 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeListenerTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageChangeListenerTest.kt
@@ -20,7 +20,7 @@
 import android.view.View
 import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
 import androidx.test.filters.LargeTest
 import androidx.testutils.PollingCheck
 import androidx.viewpager.widget.ViewPager
@@ -701,7 +701,8 @@
     @Test
     fun test_setCurrentItemBeforeRender() {
         // given
-        val viewPager = ViewPager2(InstrumentationRegistry.getContext())
+        val viewPager =
+            ViewPager2(ApplicationProvider.getApplicationContext() as android.content.Context)
         val noOpAdapter = object : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
             override fun onCreateViewHolder(parent: ViewGroup, type: Int): RecyclerView.ViewHolder {
                 return object : RecyclerView.ViewHolder(View(parent.context)) {}
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageFillTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageFillTest.kt
index 76fedffe..7ee8124 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageFillTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageFillTest.kt
@@ -22,8 +22,8 @@
 import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.RecyclerView.LayoutParams
 import androidx.recyclerview.widget.RecyclerView.ViewHolder
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.viewpager2.widget.ViewPager2.ORIENTATION_HORIZONTAL
 import org.hamcrest.Matchers.containsString
 import org.junit.Assert.assertThat
diff --git a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt
index 601f54e..0702afb 100644
--- a/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt
+++ b/viewpager2/src/androidTest/java/androidx/viewpager2/widget/PageTransformerTest.kt
@@ -19,15 +19,15 @@
 import android.view.View
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.LargeTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.viewpager2.widget.BaseTest.SortOrder.ASC
 import androidx.viewpager2.widget.BaseTest.SortOrder.DESC
 import androidx.viewpager2.widget.PageTransformerTest.Event.OnPageScrolledEvent
 import androidx.viewpager2.widget.PageTransformerTest.Event.TransformPageEvent
-import androidx.viewpager2.widget.ViewPager2.OnPageChangeListener
 import androidx.viewpager2.widget.ViewPager2.ORIENTATION_HORIZONTAL
 import androidx.viewpager2.widget.ViewPager2.ORIENTATION_VERTICAL
+import androidx.viewpager2.widget.ViewPager2.OnPageChangeListener
 import androidx.viewpager2.widget.ViewPager2.PageTransformer
 import org.hamcrest.CoreMatchers.equalTo
 import org.hamcrest.CoreMatchers.instanceOf
diff --git a/wear/build.gradle b/wear/build.gradle
index c932d29..57d60df 100644
--- a/wear/build.gradle
+++ b/wear/build.gradle
@@ -13,6 +13,8 @@
     api(project(":recyclerview"))
     api(CONSTRAINT_LAYOUT, { transitive = true })
 
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
diff --git a/wear/src/androidTest/java/androidx/wear/ambient/AmbientDelegateTest.java b/wear/src/androidTest/java/androidx/wear/ambient/AmbientDelegateTest.java
index c936fb6..8f817b4 100644
--- a/wear/src/androidTest/java/androidx/wear/ambient/AmbientDelegateTest.java
+++ b/wear/src/androidTest/java/androidx/wear/ambient/AmbientDelegateTest.java
@@ -22,9 +22,9 @@
 import static org.mockito.Mockito.when;
 
 import androidx.fragment.app.FragmentActivity;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.android.wearable.compat.WearableActivityController;
 
diff --git a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeResumeTest.java b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeResumeTest.java
index 17f3516..0d9d457 100644
--- a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeResumeTest.java
+++ b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeResumeTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.widget.util.WakeLockRule;
 
 import com.google.android.wearable.compat.WearableActivityController;
diff --git a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportResumeTest.java b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportResumeTest.java
index 0da82a0..2acbbcd 100644
--- a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportResumeTest.java
+++ b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportResumeTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.widget.util.WakeLockRule;
 
 import com.google.android.wearable.compat.WearableActivityController;
diff --git a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportTest.java b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportTest.java
index dbea70d..849d193 100644
--- a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportTest.java
+++ b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeSupportTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.widget.util.WakeLockRule;
 
 import com.google.android.wearable.compat.WearableActivityController;
diff --git a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeTest.java b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeTest.java
index 60436fb..da1d1dc 100644
--- a/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeTest.java
+++ b/wear/src/androidTest/java/androidx/wear/ambient/AmbientModeTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.widget.util.WakeLockRule;
 
 import com.google.android.wearable.compat.WearableActivityController;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/BoxInsetLayoutTest.java b/wear/src/androidTest/java/androidx/wear/widget/BoxInsetLayoutTest.java
index 0e5dde1..6b8b79b 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/BoxInsetLayoutTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/BoxInsetLayoutTest.java
@@ -37,10 +37,10 @@
 import android.util.DisplayMetrics;
 import android.view.View;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 import androidx.wear.widget.util.WakeLockRule;
 
@@ -67,7 +67,7 @@
     public void testCase1() throws Throwable {
         mActivityRule.launchActivity(new Intent().putExtra(LayoutTestActivity
                 .EXTRA_LAYOUT_RESOURCE_ID, R.layout.box_inset_layout_testcase_1));
-        DisplayMetrics dm = InstrumentationRegistry.getTargetContext().getResources()
+        DisplayMetrics dm = ApplicationProvider.getApplicationContext().getResources()
                 .getDisplayMetrics();
         int boxInset = (int) (FACTOR * Math.min(dm.widthPixels, dm.heightPixels));
 
@@ -118,7 +118,7 @@
                 new Intent().putExtra(LayoutTestActivity.EXTRA_LAYOUT_RESOURCE_ID,
                         R.layout.box_inset_layout_testcase_2));
         DisplayMetrics dm =
-                InstrumentationRegistry.getTargetContext().getResources().getDisplayMetrics();
+                ApplicationProvider.getApplicationContext().getResources().getDisplayMetrics();
         int boxInset = (int) (FACTOR * Math.min(dm.widthPixels, dm.heightPixels));
 
         int desiredPadding = 0;
@@ -228,7 +228,7 @@
                 new Intent().putExtra(LayoutTestActivity.EXTRA_LAYOUT_RESOURCE_ID,
                         R.layout.box_inset_layout_testcase_3));
         DisplayMetrics dm =
-                InstrumentationRegistry.getTargetContext().getResources().getDisplayMetrics();
+                ApplicationProvider.getApplicationContext().getResources().getDisplayMetrics();
         int boxInset = (int) (FACTOR * Math.min(dm.widthPixels, dm.heightPixels));
 
         int desiredPadding = 0;
@@ -327,7 +327,7 @@
     public void testCase4() throws Throwable {
         mActivityRule.launchActivity(new Intent().putExtra(LayoutTestActivity
                 .EXTRA_LAYOUT_RESOURCE_ID, R.layout.box_inset_layout_testcase_4));
-        DisplayMetrics dm = InstrumentationRegistry.getTargetContext().getResources()
+        DisplayMetrics dm = ApplicationProvider.getApplicationContext().getResources()
                 .getDisplayMetrics();
         int boxInset = (int) (FACTOR * Math.min(dm.widthPixels, dm.heightPixels));
 
diff --git a/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutControllerTest.java b/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutControllerTest.java
index 9044136..23996aa 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutControllerTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutControllerTest.java
@@ -23,9 +23,9 @@
 
 import androidx.swiperefreshlayout.widget.CircularProgressDrawable;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutTest.java b/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutTest.java
index 419ed32..b654b46 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/CircularProgressLayoutTest.java
@@ -22,9 +22,9 @@
 
 import android.content.Intent;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 
 import org.junit.Before;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/ConfirmationOverlayTest.java b/wear/src/androidTest/java/androidx/wear/widget/ConfirmationOverlayTest.java
index 720590b..fdd9f45 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/ConfirmationOverlayTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/ConfirmationOverlayTest.java
@@ -28,9 +28,9 @@
 import android.widget.TextView;
 
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.R;
 import androidx.wear.widget.util.WakeLockRule;
 
diff --git a/wear/src/androidTest/java/androidx/wear/widget/RoundedDrawableTest.java b/wear/src/androidTest/java/androidx/wear/widget/RoundedDrawableTest.java
index c01c293..02fa31e 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/RoundedDrawableTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/RoundedDrawableTest.java
@@ -34,10 +34,10 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.os.Build;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 
 import org.junit.Before;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/ScrollManagerTest.java b/wear/src/androidTest/java/androidx/wear/widget/ScrollManagerTest.java
index 00fd22f..8ce380f 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/ScrollManagerTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/ScrollManagerTest.java
@@ -25,10 +25,10 @@
 import android.os.SystemClock;
 import android.view.MotionEvent;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.widget.util.WakeLockRule;
 
 import org.junit.Before;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/SwipeDismissFrameLayoutTest.java b/wear/src/androidTest/java/androidx/wear/widget/SwipeDismissFrameLayoutTest.java
index ae86d04..f1a345e 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/SwipeDismissFrameLayoutTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/SwipeDismissFrameLayoutTest.java
@@ -34,16 +34,16 @@
 
 import androidx.annotation.IdRes;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.espresso.ViewAction;
 import androidx.test.espresso.action.GeneralLocation;
 import androidx.test.espresso.action.GeneralSwipeAction;
 import androidx.test.espresso.action.Press;
 import androidx.test.espresso.action.Swipe;
 import androidx.test.espresso.matcher.ViewMatchers;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 import androidx.wear.widget.util.ArcSwipe;
 import androidx.wear.widget.util.WakeLockRule;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/WearableLinearLayoutManagerTest.java b/wear/src/androidTest/java/androidx/wear/widget/WearableLinearLayoutManagerTest.java
index a72a5d0..f6098c0 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/WearableLinearLayoutManagerTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/WearableLinearLayoutManagerTest.java
@@ -22,10 +22,10 @@
 import android.view.View;
 import android.widget.FrameLayout;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 import androidx.wear.widget.util.WakeLockRule;
 
diff --git a/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java b/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
index b2f95c4..9be9641 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/WearableRecyclerViewTest.java
@@ -33,15 +33,15 @@
 
 import androidx.annotation.IdRes;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.test.InstrumentationRegistry;
 import androidx.test.espresso.ViewAction;
 import androidx.test.espresso.action.GeneralLocation;
 import androidx.test.espresso.action.GeneralSwipeAction;
 import androidx.test.espresso.action.Press;
 import androidx.test.espresso.action.Swipe;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 import androidx.wear.widget.util.WakeLockRule;
 
diff --git a/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java b/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
index 2b382f8..8d0c62f 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/drawer/WearableDrawerLayoutEspressoTest.java
@@ -51,9 +51,9 @@
 import androidx.test.espresso.ViewAction;
 import androidx.test.espresso.util.HumanReadables;
 import androidx.test.espresso.util.TreeIterables;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.rule.ActivityTestRule;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.wear.test.R;
 import androidx.wear.widget.drawer.DrawerTestActivity.DrawerStyle;
 
diff --git a/wear/src/androidTest/java/androidx/wear/widget/util/ArcSwipeTest.java b/wear/src/androidTest/java/androidx/wear/widget/util/ArcSwipeTest.java
index f3fced92..afc750d 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/util/ArcSwipeTest.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/util/ArcSwipeTest.java
@@ -20,8 +20,8 @@
 
 import android.graphics.RectF;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/wear/src/androidTest/java/androidx/wear/widget/util/WakeLockRule.java b/wear/src/androidTest/java/androidx/wear/widget/util/WakeLockRule.java
index 60bdc21..f397239 100644
--- a/wear/src/androidTest/java/androidx/wear/widget/util/WakeLockRule.java
+++ b/wear/src/androidTest/java/androidx/wear/widget/util/WakeLockRule.java
@@ -20,7 +20,7 @@
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.rules.TestRule;
 import org.junit.runner.Description;
@@ -51,7 +51,7 @@
     }
 
     private WakeLock createWakeLock() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         PowerManager power = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         return power.newWakeLock(WAKELOCK_FLAGS, context.getPackageName());
     }
diff --git a/webkit/build.gradle b/webkit/build.gradle
index cca80f6..24fd75e 100644
--- a/webkit/build.gradle
+++ b/webkit/build.gradle
@@ -27,6 +27,8 @@
     api(project(':core'))
 
     androidTestImplementation(OKHTTP_MOCKWEBSERVER)
+    androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
     androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(project(":concurrent:concurrent-futures"))
 }
diff --git a/webkit/src/androidTest/java/androidx/webkit/BoundaryInterfaceTest.java b/webkit/src/androidTest/java/androidx/webkit/BoundaryInterfaceTest.java
index 36c7122..b30695b 100644
--- a/webkit/src/androidTest/java/androidx/webkit/BoundaryInterfaceTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/BoundaryInterfaceTest.java
@@ -16,8 +16,8 @@
 
 package androidx.webkit;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.webkit.internal.WebViewFeatureInternal;
 import androidx.webkit.internal.WebViewGlueCommunicator;
 import androidx.webkit.internal.WebkitToCompatConverter;
diff --git a/webkit/src/androidTest/java/androidx/webkit/IncompatibilityTest.java b/webkit/src/androidTest/java/androidx/webkit/IncompatibilityTest.java
index 009f09a..47f9ffc 100644
--- a/webkit/src/androidTest/java/androidx/webkit/IncompatibilityTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/IncompatibilityTest.java
@@ -19,9 +19,9 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.webkit.internal.WebViewFeatureInternal;
 
 import org.junit.Test;
diff --git a/webkit/src/androidTest/java/androidx/webkit/PostMessageTest.java b/webkit/src/androidTest/java/androidx/webkit/PostMessageTest.java
index 58ce7592..c4ce821 100644
--- a/webkit/src/androidTest/java/androidx/webkit/PostMessageTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/PostMessageTest.java
@@ -24,8 +24,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.concurrent.futures.ResolvableFuture;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.webkit.WebMessagePortCompat.WebMessageCallbackCompat;
 
 import junit.framework.Assert;
diff --git a/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java b/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java
index 33670bb..0f71fb0 100644
--- a/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java
@@ -24,8 +24,8 @@
 import android.webkit.WebView;
 
 import androidx.annotation.NonNull;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java b/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java
index 4a37ff9..082a112 100644
--- a/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java
@@ -18,8 +18,8 @@
 
 import android.webkit.WebSettings;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/webkit/src/androidTest/java/androidx/webkit/TracingControllerTest.java b/webkit/src/androidTest/java/androidx/webkit/TracingControllerTest.java
index 4ede065..4785c97 100644
--- a/webkit/src/androidTest/java/androidx/webkit/TracingControllerTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/TracingControllerTest.java
@@ -16,8 +16,9 @@
 
 package androidx.webkit;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.After;
 import org.junit.Assert;
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java b/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java
index 8736788..f64767f 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java
@@ -22,8 +22,8 @@
 
 import android.webkit.WebSettings;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebViewApkTest.java b/webkit/src/androidTest/java/androidx/webkit/WebViewApkTest.java
index 7ee38bf..71c9062 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebViewApkTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebViewApkTest.java
@@ -19,10 +19,11 @@
 import android.content.Context;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import org.junit.Assert;
 import org.junit.Assume;
@@ -93,7 +94,7 @@
     }
 
     private WebViewVersion getInstalledWebViewVersionFromPackage() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         // Before M42, we used the major version number, followed by other text wrapped in
         // parentheses.
         final Pattern oldVersionNameFormat =
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java b/webkit/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java
index ab82958..01fba1b 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java
@@ -26,9 +26,9 @@
 
 import androidx.annotation.NonNull;
 import androidx.concurrent.futures.ResolvableFuture;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Assert;
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebViewCompatTest.java b/webkit/src/androidTest/java/androidx/webkit/WebViewCompatTest.java
index c85184b..204db78 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebViewCompatTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebViewCompatTest.java
@@ -37,10 +37,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.concurrent.futures.ResolvableFuture;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.After;
 import org.junit.Assert;
@@ -138,7 +138,8 @@
         WebkitUtils.checkFeature(WebViewFeature.START_SAFE_BROWSING);
 
         final MockContext ctx =
-                new MockContext(InstrumentationRegistry.getTargetContext().getApplicationContext());
+                new MockContext(
+                        ApplicationProvider.getApplicationContext().getApplicationContext());
         final ResolvableFuture<Boolean> startSafeBrowsingFuture = ResolvableFuture.create();
         WebViewCompat.startSafeBrowsing(ctx, new ValueCallback<Boolean>() {
             @Override
@@ -159,7 +160,7 @@
     public void testStartSafeBrowsingWithNullCallbackDoesntCrash() throws Exception {
         WebkitUtils.checkFeature(WebViewFeature.START_SAFE_BROWSING);
 
-        WebViewCompat.startSafeBrowsing(InstrumentationRegistry.getTargetContext(), null);
+        WebViewCompat.startSafeBrowsing(ApplicationProvider.getApplicationContext(), null);
     }
 
     /**
@@ -173,7 +174,7 @@
 
         final ResolvableFuture<Boolean> startSafeBrowsingFuture = ResolvableFuture.create();
         WebViewCompat.startSafeBrowsing(
-                InstrumentationRegistry.getTargetContext().getApplicationContext(),
+                ApplicationProvider.getApplicationContext().getApplicationContext(),
                 new ValueCallback<Boolean>() {
                     @Override
                     public void onReceiveValue(Boolean value) {
@@ -331,11 +332,11 @@
     public void testGetCurrentWebViewPackage() {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
             assertNull(WebViewCompat.getCurrentWebViewPackage(
-                    InstrumentationRegistry.getTargetContext()));
+                    ApplicationProvider.getApplicationContext()));
         } else {
             assertNotNull(
                     WebViewCompat.getCurrentWebViewPackage(
-                            InstrumentationRegistry.getTargetContext()));
+                            ApplicationProvider.getApplicationContext()));
         }
     }
 }
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java b/webkit/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
index 8392839..05f2d073 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebViewOnUiThread.java
@@ -32,7 +32,8 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.platform.app.InstrumentationRegistry;
 
 import java.util.concurrent.Callable;
 
@@ -71,7 +72,7 @@
         WebkitUtils.onMainThreadSync(new Runnable() {
             @Override
             public void run() {
-                mWebView = new WebView(InstrumentationRegistry.getTargetContext());
+                mWebView = new WebView(ApplicationProvider.getApplicationContext());
                 mWebView.setWebViewClient(new WaitForLoadedClient(WebViewOnUiThread.this));
                 mWebView.setWebChromeClient(new WaitForProgressClient(WebViewOnUiThread.this));
             }
@@ -84,7 +85,7 @@
 
     public static WebView createWebView() {
         final Holder h = new Holder();
-        final Context ctx = InstrumentationRegistry.getTargetContext();
+        final Context ctx = ApplicationProvider.getApplicationContext();
         WebkitUtils.onMainThreadSync(new Runnable() {
             @Override
             public void run() {
diff --git a/webkit/src/androidTest/java/androidx/webkit/WebViewRendererTest.java b/webkit/src/androidTest/java/androidx/webkit/WebViewRendererTest.java
index 61e9a88..ef33f6f 100644
--- a/webkit/src/androidTest/java/androidx/webkit/WebViewRendererTest.java
+++ b/webkit/src/androidTest/java/androidx/webkit/WebViewRendererTest.java
@@ -23,10 +23,10 @@
 import android.webkit.WebViewClient;
 
 import androidx.concurrent.futures.ResolvableFuture;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/work/workmanager-ktx/build.gradle b/work/workmanager-ktx/build.gradle
index 7a2aa30..175802e 100644
--- a/work/workmanager-ktx/build.gradle
+++ b/work/workmanager-ktx/build.gradle
@@ -43,6 +43,8 @@
     androidTestImplementation project(':concurrent:concurrent-futures')
     androidTestImplementation project(':work:work-testing')
     androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
+    androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     testImplementation(JUNIT)
 }
diff --git a/work/workmanager-ktx/src/androidTest/java/androidx/work/CoroutineWorkerTest.kt b/work/workmanager-ktx/src/androidTest/java/androidx/work/CoroutineWorkerTest.kt
index 90518d4..902a5ff 100644
--- a/work/workmanager-ktx/src/androidTest/java/androidx/work/CoroutineWorkerTest.kt
+++ b/work/workmanager-ktx/src/androidTest/java/androidx/work/CoroutineWorkerTest.kt
@@ -19,9 +19,9 @@
 import android.arch.core.executor.ArchTaskExecutor
 import android.content.Context
 import android.util.Log
-import androidx.test.InstrumentationRegistry
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.work.impl.WorkDatabase
 import androidx.work.impl.WorkManagerImpl
 import androidx.work.impl.utils.taskexecutor.TaskExecutor
@@ -62,7 +62,7 @@
                 }
             })
 
-        context = InstrumentationRegistry.getTargetContext()
+        context = ApplicationProvider.getApplicationContext() as android.content.Context
         configuration = Configuration.Builder()
             .setExecutor(SynchronousExecutor())
             .setMinimumLoggingLevel(Log.DEBUG)
diff --git a/work/workmanager-ktx/src/androidTest/java/androidx/work/DataTest.kt b/work/workmanager-ktx/src/androidTest/java/androidx/work/DataTest.kt
index aafc8c3..2583ece 100644
--- a/work/workmanager-ktx/src/androidTest/java/androidx/work/DataTest.kt
+++ b/work/workmanager-ktx/src/androidTest/java/androidx/work/DataTest.kt
@@ -16,8 +16,8 @@
 
 package androidx.work
 
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertNotNull
 import org.junit.Test
diff --git a/work/workmanager-ktx/src/androidTest/java/androidx/work/OneTimeWorkRequestTest.kt b/work/workmanager-ktx/src/androidTest/java/androidx/work/OneTimeWorkRequestTest.kt
index 45fa3f4..e6c1be1 100644
--- a/work/workmanager-ktx/src/androidTest/java/androidx/work/OneTimeWorkRequestTest.kt
+++ b/work/workmanager-ktx/src/androidTest/java/androidx/work/OneTimeWorkRequestTest.kt
@@ -16,8 +16,8 @@
 
 package androidx.work
 
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.work.workers.TestWorker
 import org.junit.Assert.assertEquals
 import org.junit.Test
diff --git a/work/workmanager-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt b/work/workmanager-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
index 5317464..204c5f6 100644
--- a/work/workmanager-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
+++ b/work/workmanager-ktx/src/androidTest/java/androidx/work/PeriodicWorkRequestTest.kt
@@ -16,9 +16,9 @@
 
 package androidx.work
 
+import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SdkSuppress
 import androidx.test.filters.SmallTest
-import androidx.test.runner.AndroidJUnit4
 import androidx.work.workers.TestWorker
 import org.junit.Assert.assertEquals
 import org.junit.Test
diff --git a/work/workmanager-rxjava2/build.gradle b/work/workmanager-rxjava2/build.gradle
index 9b27655..e494c21 100644
--- a/work/workmanager-rxjava2/build.gradle
+++ b/work/workmanager-rxjava2/build.gradle
@@ -29,6 +29,8 @@
     api(RX_JAVA)
     testImplementation(KOTLIN_STDLIB)
     testImplementation(TEST_EXT_JUNIT)
+    testImplementation(TEST_CORE)
+    testImplementation(TEST_RUNNER)
     testImplementation(MOCKITO_CORE)
 }
 
diff --git a/work/workmanager-testing/build.gradle b/work/workmanager-testing/build.gradle
index 60502b0..096e93b 100644
--- a/work/workmanager-testing/build.gradle
+++ b/work/workmanager-testing/build.gradle
@@ -35,6 +35,8 @@
 
     androidTestImplementation "android.arch.core:core-testing:1.1.0"
     androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
+    androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
diff --git a/work/workmanager-testing/src/androidTest/java/androidx/work/testing/TestSchedulerTest.java b/work/workmanager-testing/src/androidTest/java/androidx/work/testing/TestSchedulerTest.java
index 5527f7a..092c806 100644
--- a/work/workmanager-testing/src/androidTest/java/androidx/work/testing/TestSchedulerTest.java
+++ b/work/workmanager-testing/src/androidTest/java/androidx/work/testing/TestSchedulerTest.java
@@ -21,9 +21,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Constraints;
 import androidx.work.NetworkType;
 import androidx.work.OneTimeWorkRequest;
@@ -52,7 +52,7 @@
 
     @Before
     public void setUp() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         WorkManagerTestInitHelper.initializeTestWorkManager(context);
         mTestDriver = WorkManagerTestInitHelper.getTestDriver();
         CountingTestWorker.COUNT.set(0);
diff --git a/work/workmanager-testing/src/androidTest/java/androidx/work/testing/WorkManagerInitHelperTest.java b/work/workmanager-testing/src/androidTest/java/androidx/work/testing/WorkManagerInitHelperTest.java
index a74d3a8..04dbcc6 100644
--- a/work/workmanager-testing/src/androidTest/java/androidx/work/testing/WorkManagerInitHelperTest.java
+++ b/work/workmanager-testing/src/androidTest/java/androidx/work/testing/WorkManagerInitHelperTest.java
@@ -22,9 +22,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.WorkManager;
 import androidx.work.impl.WorkManagerImpl;
 
@@ -41,7 +41,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @After
diff --git a/work/workmanager/build.gradle b/work/workmanager/build.gradle
index 45a253a..cfc271b 100644
--- a/work/workmanager/build.gradle
+++ b/work/workmanager/build.gradle
@@ -51,6 +51,8 @@
     androidTestImplementation("android.arch.core:core-testing:1.1.0")
     androidTestImplementation("android.arch.persistence.room:testing:1.1.1-rc1")
     androidTestImplementation(TEST_EXT_JUNIT)
+    androidTestImplementation(TEST_CORE)
+    androidTestImplementation(TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE)
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has its own MockMaker
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has its own MockMaker
diff --git a/work/workmanager/src/androidTest/java/androidx/work/DatabaseTest.java b/work/workmanager/src/androidTest/java/androidx/work/DatabaseTest.java
index 56b3631..6448bb9 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/DatabaseTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/DatabaseTest.java
@@ -16,7 +16,7 @@
 
 package androidx.work;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.work.impl.WorkDatabase;
 
 import org.junit.After;
@@ -30,7 +30,7 @@
 
     @Before
     public void initializeDb() {
-        mDatabase = WorkDatabase.create(InstrumentationRegistry.getTargetContext(), true);
+        mDatabase = WorkDatabase.create(ApplicationProvider.getApplicationContext(), true);
     }
 
     @After
diff --git a/work/workmanager/src/androidTest/java/androidx/work/DefaultWorkerFactoryTest.java b/work/workmanager/src/androidTest/java/androidx/work/DefaultWorkerFactoryTest.java
index 1b6940c..ce8a2cb 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/DefaultWorkerFactoryTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/DefaultWorkerFactoryTest.java
@@ -22,9 +22,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.utils.SynchronousExecutor;
 import androidx.work.impl.utils.taskexecutor.WorkManagerTaskExecutor;
 import androidx.work.worker.TestWorker;
@@ -42,7 +42,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mDefaultWorkerFactory = WorkerFactory.getDefaultWorkerFactory();
     }
 
diff --git a/work/workmanager/src/androidTest/java/androidx/work/PeriodicWorkTest.java b/work/workmanager/src/androidTest/java/androidx/work/PeriodicWorkTest.java
index 3cc6216..6823f6d 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/PeriodicWorkTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/PeriodicWorkTest.java
@@ -18,9 +18,9 @@
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.worker.TestWorker;
 
 import org.junit.Rule;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
index 46493ea..23db9be 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
@@ -39,10 +39,11 @@
 import android.os.Build;
 import android.support.annotation.NonNull;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
 import androidx.work.impl.WorkDatabase;
 import androidx.work.impl.WorkDatabaseMigrations;
 import androidx.work.impl.WorkManagerImpl;
@@ -99,8 +100,8 @@
     @Before
     public void setUp() {
         // Delete the database if it exists.
-        mContext = InstrumentationRegistry.getTargetContext();
-        mDatabasePath = InstrumentationRegistry.getContext().getDatabasePath(TEST_DATABASE);
+        mContext = ApplicationProvider.getApplicationContext();
+        mDatabasePath = ApplicationProvider.getApplicationContext().getDatabasePath(TEST_DATABASE);
         if (mDatabasePath.exists()) {
             mDatabasePath.delete();
         }
diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkManagerTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkManagerTest.java
index 1771eaa..36bcf12 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkManagerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkManagerTest.java
@@ -20,7 +20,7 @@
 import android.content.Context;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.work.impl.WorkManagerImpl;
 import androidx.work.impl.model.WorkSpec;
 
@@ -34,7 +34,7 @@
     public void clearJobs() {
         // Note: @SdkSuppress doesn't seem to work here.
         if (Build.VERSION.SDK_INT >= WorkManagerImpl.MIN_JOB_SCHEDULER_API_LEVEL) {
-            JobScheduler jobScheduler = (JobScheduler) InstrumentationRegistry.getTargetContext()
+            JobScheduler jobScheduler = (JobScheduler) ApplicationProvider.getApplicationContext()
                     .getSystemService(Context.JOB_SCHEDULER_SERVICE);
             jobScheduler.cancelAll();
         }
diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkSpecDaoTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkSpecDaoTest.java
index c874541..ee0da45 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkSpecDaoTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkSpecDaoTest.java
@@ -27,8 +27,8 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsInAnyOrder;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.model.WorkSpec;
 import androidx.work.impl.model.WorkSpecDao;
 import androidx.work.worker.TestWorker;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkSpecTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkSpecTest.java
index 5cfde80..e3d00b6 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkSpecTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkSpecTest.java
@@ -20,8 +20,8 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.greaterThan;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.worker.InfiniteTestWorker;
 
 import org.junit.Test;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/ProcessorTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/ProcessorTest.java
index 07f14e4..85eef8b 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/ProcessorTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/ProcessorTest.java
@@ -24,9 +24,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.DatabaseTest;
 import androidx.work.OneTimeWorkRequest;
@@ -47,7 +47,7 @@
 
     @Before
     public void setUp() {
-        Context appContext = InstrumentationRegistry.getTargetContext().getApplicationContext();
+        Context appContext = ApplicationProvider.getApplicationContext().getApplicationContext();
         Configuration configuration = new Configuration.Builder().build();
         mMockScheduler = mock(Scheduler.class);
         mProcessor = new Processor(
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java
index 1f43b1b..d074ab6 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/SchedulersTest.java
@@ -26,10 +26,10 @@
 import android.content.Context;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.background.systemalarm.SystemAlarmScheduler;
 import androidx.work.impl.background.systemalarm.SystemAlarmService;
 import androidx.work.impl.background.systemjob.SystemJobScheduler;
@@ -49,7 +49,7 @@
     @Before
     public void setUp() {
         mWorkManager = mock(WorkManagerImpl.class);
-        mAppContext = InstrumentationRegistry.getTargetContext();
+        mAppContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
index c9e28c1..df66ef9 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
@@ -35,10 +35,10 @@
 import android.content.Context;
 import android.support.annotation.NonNull;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.Data;
 import androidx.work.OneTimeWorkRequest;
@@ -100,7 +100,7 @@
         lifecycleOwner.mLifecycleRegistry.markState(Lifecycle.State.CREATED);
 
         mScheduler = mock(Scheduler.class);
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mConfiguration = new Configuration.Builder()
                 .setExecutor(new SynchronousExecutor())
                 .build();
@@ -290,7 +290,7 @@
 
         // TODO(sumir): I can't seem to get this kicked off automatically, so I'm running it myself.
         // Figure out what's going on here.
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         new WorkerWrapper.Builder(
                 context,
                 mConfiguration,
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplLargeExecutorTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplLargeExecutorTest.java
index fa72954..b355ccd 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplLargeExecutorTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplLargeExecutorTest.java
@@ -32,10 +32,10 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.TestLifecycleOwner;
@@ -101,7 +101,7 @@
             }
         });
 
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         BlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();
         Executor executor = new ThreadPoolExecutor(
                 MIN_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, SECONDS, queue);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
index d50e846..556278c 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkManagerImplTest.java
@@ -65,12 +65,12 @@
 import android.support.annotation.NonNull;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.BackoffPolicy;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
@@ -149,7 +149,7 @@
                 return true;
             }
         });
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mConfiguration = new Configuration.Builder()
                 .setExecutor(Executors.newSingleThreadExecutor())
                 .setMinimumLoggingLevel(Log.DEBUG)
@@ -1359,7 +1359,7 @@
     @Test
     @MediumTest
     public void testCancelAllWork_updatesLastCancelAllTime() {
-        Preferences preferences = new Preferences(InstrumentationRegistry.getTargetContext());
+        Preferences preferences = new Preferences(ApplicationProvider.getApplicationContext());
         preferences.setLastCancelAllTimeMillis(0L);
 
         OneTimeWorkRequest work = new OneTimeWorkRequest.Builder(TestWorker.class).build();
@@ -1373,7 +1373,7 @@
     @SmallTest
     @SuppressWarnings("unchecked")
     public void testCancelAllWork_updatesLastCancelAllTimeLiveData() throws InterruptedException {
-        Preferences preferences = new Preferences(InstrumentationRegistry.getTargetContext());
+        Preferences preferences = new Preferences(ApplicationProvider.getApplicationContext());
         preferences.setLastCancelAllTimeMillis(0L);
 
         TestLifecycleOwner testLifecycleOwner = new TestLifecycleOwner();
@@ -1529,7 +1529,7 @@
             throws ExecutionException, InterruptedException {
 
         final PackageManager packageManager = mock(PackageManager.class);
-        mContext = new ContextWrapper(InstrumentationRegistry.getTargetContext()) {
+        mContext = new ContextWrapper(ApplicationProvider.getApplicationContext()) {
             @Override
             public Context getApplicationContext() {
                 return this;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
index 07dd976..85a38ab 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkerWrapperTest.java
@@ -44,10 +44,10 @@
 import android.os.Build;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.ArrayCreatingInputMerger;
 import androidx.work.Configuration;
 import androidx.work.Data;
@@ -104,7 +104,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mConfiguration = new Configuration.Builder()
                 .setExecutor(new SynchronousExecutor())
                 .setMinimumLoggingLevel(Log.VERBOSE)
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/greedy/GreedySchedulerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/greedy/GreedySchedulerTest.java
index 6b27410..1466513 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/greedy/GreedySchedulerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/greedy/GreedySchedulerTest.java
@@ -23,8 +23,8 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Constraints;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.PeriodicWorkRequest;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/AlarmsTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/AlarmsTest.java
index e3f133d..de25a72 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/AlarmsTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/AlarmsTest.java
@@ -25,9 +25,9 @@
 
 import android.content.Context;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.DatabaseTest;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.impl.WorkManagerImpl;
@@ -50,7 +50,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext();
+        mContext = ApplicationProvider.getApplicationContext();
         mWorkManager = mock(WorkManagerImpl.class);
         // Set it to sometime in the future so as to avoid triggering real alarms.
         mTriggerAt = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(1);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
index aa12f7a..8ed46b9 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/SystemAlarmDispatcherTest.java
@@ -35,10 +35,10 @@
 import android.support.annotation.Nullable;
 import android.util.Log;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
 import androidx.work.DatabaseTest;
@@ -109,7 +109,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext().getApplicationContext();
+        mContext = ApplicationProvider.getApplicationContext().getApplicationContext();
         mScheduler = mock(Scheduler.class);
         mWorkManager = mock(WorkManagerImpl.class);
         mLatch = new CountDownLatch(1);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/WorkTimerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/WorkTimerTest.java
index 5ff8d94..0b211b4 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/WorkTimerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemalarm/WorkTimerTest.java
@@ -24,8 +24,8 @@
 
 import android.support.annotation.NonNull;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
index 5284a26..2ced35e 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobInfoConverterTest.java
@@ -30,10 +30,10 @@
 import android.net.Uri;
 import android.os.Build;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.BackoffPolicy;
 import androidx.work.Constraints;
 import androidx.work.NetworkType;
@@ -65,7 +65,7 @@
     @Before
     public void setUp() {
         mConverter = new SystemJobInfoConverter(
-                InstrumentationRegistry.getTargetContext());
+                ApplicationProvider.getApplicationContext());
     }
 
     @Test
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java
index 05e8448..97e7110 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobSchedulerTest.java
@@ -38,10 +38,10 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.WorkInfo;
@@ -73,7 +73,7 @@
 
     @Before
     public void setUp() {
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         Configuration configuration = new Configuration.Builder().build();
         WorkDatabase workDatabase = mock(WorkDatabase.class);
         SystemIdInfoDao systemIdInfoDao = mock(SystemIdInfoDao.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java
index ed325d2..dbb96ca 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/background/systemjob/SystemJobServiceTest.java
@@ -37,11 +37,11 @@
 import android.os.PersistableBundle;
 import android.support.annotation.NonNull;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.LargeTest;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.WorkInfo;
@@ -100,7 +100,7 @@
             }
         });
 
-        Context context = InstrumentationRegistry.getTargetContext();
+        Context context = ApplicationProvider.getApplicationContext();
         mDatabase = WorkDatabase.create(context, true);
         InstantWorkTaskExecutor taskExecutor = new InstantWorkTaskExecutor();
         Configuration configuration = new Configuration.Builder()
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
index ae7a5aa..391c554 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/WorkConstraintsTrackerTest.java
@@ -28,8 +28,8 @@
 
 import android.support.annotation.NonNull;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.controllers.ConstraintController;
 import androidx.work.impl.model.WorkSpec;
 
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
index 81cdb16..68947aa 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/controllers/ConstraintControllerTest.java
@@ -26,9 +26,9 @@
 
 import android.support.annotation.NonNull;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Constraints;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.WorkManagerTest;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
index b23bb9f..5861668 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryChargingTrackerTest.java
@@ -36,10 +36,10 @@
 import android.os.Build;
 import android.support.annotation.RequiresApi;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.ConstraintListener;
 
 import org.junit.Before;
@@ -140,7 +140,7 @@
         verify(mListener).onConstraintChanged(true);
 
         mTracker.onBroadcastReceive(
-                InstrumentationRegistry.getTargetContext(),
+                ApplicationProvider.getApplicationContext(),
                 new Intent("INVALID"));
         verifyNoMoreInteractions(mListener);
     }
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
index 6313bea..cb4a6db 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/BatteryNotLowTrackerTest.java
@@ -33,8 +33,8 @@
 import android.content.IntentFilter;
 import android.os.BatteryManager;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.ConstraintListener;
 
 import org.junit.Before;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
index d7841af..a93c5d4 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/ConstraintTrackerTest.java
@@ -24,8 +24,8 @@
 
 import android.content.Context;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.ConstraintListener;
 
 import org.junit.After;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
index 8416a49..7907368 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/NetworkStateTrackerTest.java
@@ -28,9 +28,9 @@
 import android.content.IntentFilter;
 import android.net.ConnectivityManager;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.NetworkState;
 
 import org.junit.Before;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
index 23b3a01..13d66d9 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/constraints/trackers/StorageNotLowTrackerTest.java
@@ -31,8 +31,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.constraints.ConstraintListener;
 
 import org.junit.Before;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/EnqueueRunnableTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/EnqueueRunnableTest.java
index cf608df..2c2dcad 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/EnqueueRunnableTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/EnqueueRunnableTest.java
@@ -26,8 +26,8 @@
 
 import android.content.Context;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.WorkContinuationImpl;
 import androidx.work.impl.WorkManagerImpl;
 
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java
index 487ead8..d299eda7 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/ForceStopRunnableTest.java
@@ -28,9 +28,9 @@
 import android.content.Context;
 import android.content.Intent;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.WorkDatabase;
 import androidx.work.impl.WorkManagerImpl;
 import androidx.work.impl.model.WorkSpecDao;
@@ -52,7 +52,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext().getApplicationContext();
+        mContext = ApplicationProvider.getApplicationContext().getApplicationContext();
         mWorkManager = mock(WorkManagerImpl.class);
         mWorkDatabase = mock(WorkDatabase.class);
         mWorkSpecDao = mock(WorkSpecDao.class);
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/IdGeneratorTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/IdGeneratorTest.java
index 2ba2a9f..4a8bc98 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/IdGeneratorTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/IdGeneratorTest.java
@@ -30,9 +30,9 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.impl.WorkManagerImpl;
 
 import org.junit.Before;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/LiveDataUtilsTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/LiveDataUtilsTest.java
index ac46add..7d533daf 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/LiveDataUtilsTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/LiveDataUtilsTest.java
@@ -27,8 +27,8 @@
 import android.arch.lifecycle.Observer;
 import android.support.annotation.Nullable;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.TestLifecycleOwner;
 import androidx.work.impl.utils.taskexecutor.InstantWorkTaskExecutor;
 import androidx.work.impl.utils.taskexecutor.TaskExecutor;
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/futures/FutureExtrasTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/futures/FutureExtrasTest.java
index 9e96ddf..071eb33 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/utils/futures/FutureExtrasTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/utils/futures/FutureExtrasTest.java
@@ -22,8 +22,8 @@
 import android.arch.core.util.Function;
 import android.support.annotation.NonNull;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java
index 04d65e9..e6e48dd 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/workers/ConstraintTrackingWorkerTest.java
@@ -28,10 +28,10 @@
 import android.os.Looper;
 import android.support.annotation.NonNull;
 
-import androidx.test.InstrumentationRegistry;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SdkSuppress;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 import androidx.work.Configuration;
 import androidx.work.Constraints;
 import androidx.work.Data;
@@ -93,7 +93,7 @@
 
     @Before
     public void setUp() {
-        mContext = InstrumentationRegistry.getTargetContext().getApplicationContext();
+        mContext = ApplicationProvider.getApplicationContext().getApplicationContext();
         mHandler = new Handler(Looper.getMainLooper());
         mConfiguration = new Configuration.Builder()
                 .setExecutor(new SynchronousExecutor())