如何判断是否出现了新活动?

时间:2015-06-04 14:36:40

标签: android android-activity android-uiautomator black-box-testing

我正在进行一些黑盒测试(使用UiAutomator 2.0 btw,扩展InstrumentationTestCase),我需要知道:

1 - 创建新活动时

2 - 知道它是否是第一次创建活动

我需要这个,因为我想在新活动出现时应用一些测试,但我希望这种检测是自动的,而不是手动的。

在Android L之前有UiDevice.getCurrentActivityName()方法。但是,现在它已被弃用(此外,它们甚至不能确保它适用于以前的版本)。这也发生在通过PackageManager获取活动的选项中。

因此,我想知道:

  • 是否可以以编程方式检测新活动?如果是,可以在第一次活动发生时知道它。

  • 如果不可能,我应该如何根据其UI定义活动?我应该改变多少个小工具来结束它的不同活动?

感谢。

编辑:为了清楚起见,我不想测试创建活动时会发生什么,我希望能够确定它是否是第一次此活动在运行中发生。

1 个答案:

答案 0 :(得分:0)

以下是我目前针对此问题实现的内容,基于相同的Activity不会动态更改其UI View层次结构的假设。这对我来说没问题,似乎我只想区分UI更改,而不是活动所必需的。

1.建立签名以识别屏幕之间

signature1:FrameLayout;ListView;LinearLayout;RelativeLayout;...
signature2:FrameLayout;FrameLayout;FrameLayout;LinearLayout;...

2.然后,使用列表保留您已知的屏幕。

3.对于性能,您可以使用固定长度进行屏幕签名。

这个想法是指这个paper

如果adb对你好,你可以使用这个命令,

adb shell dumpsys activity

这是指另一篇帖子here