3

私はいくつかのブラックボックステストを行っています(UiAutomator 2.0 btwを使用して、InstrumentationTestCaseを拡張しています)、次のことを知る必要があります:

1 - 新しいアクティビティが作成されたとき

2 - アクティビティが作成されるのが初めてかどうかを知る

新しいアクティビティが表示されたときに適用したいテストがいくつかあるため、これが必要ですが、この検出を手動ではなく自動にしたいのです。

Android L より前は、UiDevice.getCurrentActivityName() メソッドがありました。ただし、現在は推奨されていません (さらに、以前のバージョンで動作することさえ保証されていません)。これは、PackageManager を介してアクティビティを取得するオプションでも発生しました。

そのため、私は知りたいです:

  • 新しいアクティビティをプログラムで検出することは可能ですか? その場合、アクティビティが初めて発生したかどうかを知ることができます。

  • それが不可能な場合、UI に従ってアクティビティを定義するにはどうすればよいですか? 別のアクティビティであると結論付けるには、いくつのウィジェットを変更する必要がありますか?

ありがとう。

編集:明確にするために、アクティビティが作成されたときに何が起こるかをテストしたくありません。このアクティビティが実行で初めて発生するかどうかを識別できるようにしたいのです。

4

1 に答える 1

0

これは、同じアクティビティが UI ビュー階層を動的に変更しないという前提に基づいて、この問題に対して現在実装しているものです。これは私には問題ありません。UI の変更を区別したいだけで、アクティビティには必要ないようです。

1.画面間を識別するための署名を作成する

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

2.次に、リストを使用して、既に知っている画面を保持します。

3.パフォーマンスのために、画面の署名に固定長を使用できます。

アイデアはこの論文を参照してください

adb が問題ない場合は、次のコマンドを使用できます。

adb shell dumpsys activity

これは別の投稿を参照してください

于 2015-11-20T06:36:16.850 に答える