9

ADBの使い方について質問です。

私はこのコマンドを知っています:

adb shell dumpsys activity

デバイスで現在実行されているすべてのアクティビティを表示できます。

しかし、インテントが次のように表示される場合があることに気付きました。

Intent { ...some_intent/activity_name.... (has extras) }

エクストラは、何らかのパラメーターが渡されてアクティビティが開始されたことを意味します (ここで間違っている可能性があります。間違っている場合は修正してください)。

私の質問は、ADB を介してインテント/アクティビティのエクストラを取得するにはどうすればよいですか?

これが必要な理由は、次のような ADB コマンドを使用して (電話にインストールされている) apk を起動しようとしているからです。

adb shell "su -c 'am start -n com.package.name/.ActivityName'"

それは機能し、アプリケーションを起動します。アプリケーションには開始画面 (HomeActivity と呼びます) があり、ボタンをクリックしていくつかの選択 (SelectionActivity など) を行う必要があり、別の画面 (ActionActivity など) に移動します。apk を起動して ActionActivity に直行できるようにしたいです。

am start コマンドで ActionActivity を起動しようとすると、アプリケーションがクラッシュします。これは、SelectionActivity 画面からのパラメーターが必要なためだと思います。

これが、ActionActivity画面が実際に取得する「エクストラ」またはパラメーターが何であるかを確認しようとしている理由です。これにより、次のようなことができます。

adb shell "su -c 'am start -n com.package.name/.ActionActivity -e param1 val1 -e param2 val2'"

私の質問が明確であることを願っています。

どこかで間違っている場合は修正してください。

前もって感謝します!

4

1 に答える 1

2

私の理解が正しければ、あなたの目標は正しい意図で「アクション」アクティビティを開始することですが、どのようなパラメーター情報を含める必要があるかわかりませんよね?

dumpsys コマンドは、必要なものすべてをダンプするわけではないため、単純に目標を達成するには、2 つのオプションがあります (独自のファームウェアを書き込むことができるデバイスを 1 つ見つける必要があります)。

  1. AMS のダンプ メソッドを変更して、詳細情報を出力します。

  2. ActivityThread クラスのソース コードを変更して、詳細なインテント情報を出力します。

于 2013-08-30T05:56:50.470 に答える