Android:直接启动正在开发的活动/片段

时间:2017-02-17 13:31:53

标签: android

有时您必须向现有应用程序添加新活动/片段。此活动/片段可以嵌套,以便为了访问它,用户必须打开应用程序并在到达之前浏览UI的多个部分。

在开发这个新活动/片段时,每次进行更改时,我都必须重新编译整个应用程序,启动它并导航到显示新活动/片段的位置。这很乏味,也会减慢这个过程。

有没有办法直接启动当前正在开发的活动/片段?

附录:

许多人建议修改现有代码或清单,以便应用首先启动新活动/片段:

必须修改现有代码才是我想要避免的。这对我来说听起来不对。 所以我想我可以为此目的编写一个espresso测试,并直接从中启动活动/片段。问题是espresso仅在测试期间保持活动/片段,因此它在几分之一秒内可见,然后消失。

3 个答案:

答案 0 :(得分:3)

由于@ Code-Apprentice的答案以及其他答案,我能够提出这个问题:JUnit - stop it from exiting on finish?

@RunWith(AndroidJUnit4.class)
public class VanillaActivityTest {

@Rule
public final ActivityTestRule<VanillaActivity> activityTestRule =
        new ActivityTestRule<>(VanillaActivity.class, false, false);

@Test
public void blockingTest() throws Exception {
    Intent intent = new Intent();
    // Add your own intent extras here if applicable.
    activityTestRule.launchActivity(intent);
    CountDownLatch countdown = new CountDownLatch(1);
    countdown.await();
}

}

答案 1 :(得分:1)

执行此操作的最佳方法可能是编写检测测试。这样,您不仅可以启动所需的活动,还可以自动检查其行为方式。您可以使用Getting Started with Testing了解有关自动化测试的更多信息。

如果要启动手动测试活动,可以使用ActivityTestRule constructor which has the launchActivity flag。如果将此值设置为false,则可以完全控制活动何时启动以及何时完成。只需使用@BeforelaunchActivity()方法中手动启动它。

答案 2 :(得分:0)

您可以使用adb在命令行上启动特定的活动。该过程将是:

  1. 进行代码更改并构建您的应用程序(构建不是“运行”)
  2. 将应用程序上传到设备上。
  3. 直接启动特定活动: adb shell am start -n com.company.MyApp/.SpecificActivity

更多信息:How to run a specific Android app using Terminal?