Android アプリケーションの onsave/onrestore メソッドをテストしています。
これを行うには、デバイスに電話をかけ、プロセスが強制終了されることを確認してから、電話を切ります。:) アプリケーションを再起動することがわかります。
質問: 復元プロセスを実行できるように、デバッグ モードで再起動するにはどうすればよいですか? 起動時にデバッガに自動的にアタッチするように指示する方法はありますか?
Android アプリケーションの onsave/onrestore メソッドをテストしています。
これを行うには、デバイスに電話をかけ、プロセスが強制終了されることを確認してから、電話を切ります。:) アプリケーションを再起動することがわかります。
質問: 復元プロセスを実行できるように、デバッグ モードで再起動するにはどうすればよいですか? 起動時にデバッガに自動的にアタッチするように指示する方法はありますか?
アプリをデバッグモードで確実に再起動する方法はないと思います。ただし、独自のアプリをデバッグしていて、テスト用のデバッグコードを追加してもかまわない場合は、スタートアップメソッドの適切な場所にThread.sleep(5000)などを追加することをお勧めします。これにより、DDMSを介してデバッガーを再接続するのに十分な時間が与えられます。もちろん、終わったら削除してください;)
Android 設定 > 開発者向けオプション > デバッグ > デバッグするアプリを選択 に構成オプションがあります。adb に接続されていてアプリのプロジェクトが開いている場合、特定のアプリケーションが開かれるたびに eclipse デバッガーが呼び出されます。
プログラムによる:を使用しwaitForDebugger()
ます。ドキュメントはこちら。
デバッガーがアタッチするとすぐにメソッドが戻ることに注意してください。そのため、その呼び出しの直後にブレークポイントを配置することをお勧めします。さらに、 を使用してデバッガーの接続ステータスをテストできますisDebuggerConnected()
。
Eclipse の場合: Eclipseの DDMS パースペクティブを開き、デバイスで再起動したばかりのアプリを選択してから、デバッグ オプションを選択します。これにより、再起動されたインスタンスにデバッガーがアタッチされます。
デバイス上:一部の* 携帯電話には、USB デバッグが構成されている場合にデバッグするアプリを選択できる構成オプションがあります。デバイス設定の開発者向けオプションの下にあります。これにより、デバッガーが自動的にアタッチされます。
*たとえば、Galaxy S4 にはありますが、HTC Rezound にはありません。Jelly Bean 固有のオプションである可能性があると思います。