gpt4 book ai didi

android - 如何判断是否出现了新的 Activity ?

转载 作者:行者123 更新时间:2023-12-02 16:11:33 24 4
gpt4 key购买 nike

我正在做一些黑盒测试(顺便说一句,使用 UiAutomator 2.0,扩展 InstrumentationTestCase),我需要知道:

1 - 创建新 Activity 时

2 - 了解是否是第一次创建 Activity

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

在 Android L 之前,存在 UiDevice.getCurrentActivityName() 方法。然而,现在它已被弃用(此外,他们甚至不确保它适用于以前的版本)。通过 PackageManager 获取 Activity 的选项也会发生这种情况。

因此,我想知道:

  • 是否可以通过编程方式检测新 Activity ?如果是这样,就可以知道该 Activity 是否是第一次发生。

  • 如果不可能,我应该如何根据 Activity 的 UI 定义它?我应该更改多少个小部件才能断定这是不同的 Activity ?

谢谢。

编辑:需要明确的是,我不想测试创建 Activity 时会发生什么,我希望能够确定这是否是此 Activity 在运行中第一次发生.

最佳答案

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

1.构建屏幕间识别签名

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

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

3.为了性能,您可以使用固定长度的屏幕签名。

思路引用这个paper

如果 adb 适合你,你可以使用这个命令,

adb shell dumpsys activity

这引用了另一篇文章here

关于android - 如何判断是否出现了新的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com