アプリの起動プロセス中に発生するいくつかの問題を調査していますが、DDMS はプロセスが開始されるまでデバッグ モードを開始しません。イベントを早期にキャプチャする方法はありますか?
4 に答える
これが数年遅れていることはわかっていますが、今後の検索については次のとおりです。
コードWaitForDebugger
に挿入するのも 1 つの方法です。
[設定] で (Android デバイスのシステム情報のビルド番号をタップして) 開発者向けオプションのロックを解除すると、デバッグするアプリケーションを選択し、プログラムが起動されるたびにデバッガーを待機することを選択できます。WaitForDebugger
これにより、毎回コードを変更して再インストールすることなく、追加と削除に相当することを行うことができます。
Application を拡張し、メソッド onCreate などをオーバーライドする独自の Application クラスを実装する必要があります。このクラスは、アプリの開始点になります。
また、マニフェストでアプリケーションとして設定します。
Android は、アプリケーションが起動される前に、デバッガがアプリケーションにアタッチされるのを待つことができます。これはWait for debuggerという開発者向けオプションです。
手順
開発者向けオプションを有効にする (ビルド バージョンを 7 回タップ)
USB デバッグを有効にする
デバッグ モードを使用してデバイスにアプリケーションをインストールする
開発者向けオプション: を押しSelect debug appてアプリを選択します
アプリを起動します。
- 例: アプリの終了状態からの起動をプッシュ通知でテストする場合、そのプッシュ通知をデバイスに送信します。
- 例: Google アシスタントからアプリの起動をテストする場合は、Google アシスタントを使用してこれをトリガーします。
私の状況
興味のある方/今後の参考のために: アプリが終了状態のときにプッシュ通知メッセージを受信する Android アプリケーションをデバッグしたかったのです。これは実際には Android 上で動作する Flutter アプリだったので、これは Android と Flutter の両方に関連しています。
この GIF で公開されている API キーを無効にしました。
ヒント
Wait for debuggerが有効になっている場合、後続のアプリケーションの起動を正常に処理するには、Android Studio のデバッガーをデタッチまたはクローズして、再アタッチする必要がある場合があります。そうしないと、アプリが起動しません。
デバイス (左側のデバイス、iOS) からプッシュ通知を送信すると、プッシュ通知によってアプリが (右側のデバイス、Android) で起動されることに注意してください。次に、デバッガーをアタッチすると、プログラムは内部で設定したブレークポイントで一時停止しますFirebaseMessagingReceiver
。
これらの手順の別のバージョンをここに書きました。