Upgrade to Pro — share decks privately, control downloads, hide ads and more …

More Android Studio Debugger

More Android Studio Debugger

2018/10/31に開催された Shibuya.apk #29 にて発表した「More Android Studio Debugger」のスライドです。

Yoshihiro WADA

October 31, 2018
Tweet

More Decks by Yoshihiro WADA

Other Decks in Programming

Transcript

  1. 自己紹介 • Yoshihiro Wada a.k.a. @e10dokup • 大体左のアイコンで息をしています • CyberAgant

    Inc. / Ameba • つい最近Ameba Blogを作ることになりました • カメラ沼 • 財布の透過率が高いのが最近の悩み
  2. デバッガーの起動 • Debug ‘<module>’ でデバッグ用にアプリを実行する • Ctrl + D •

    Attach Debugger to Android Processで起動中のアプリに
 デバッガーをアタッチする • デバッグ用に実行していなくても通常のRunでアタッチできる
  3. ステップオーバー・ステップイン・ステップアウト • 左から… • ステップオーバー:次の行に進む • ステップイン:指定しているメソッド・関数に入る • 強制ステップイン:ステップインで無視されているメソッド・関数に無理やり入る •

    Android StudioのBuild, Execution, Deployment > Debugger > Stepping
 から無視するパッケージを設定できる。デフォルトはJDK由来のものとか • ステップオーバー:ステップインしたメソッド・関数から出る
  4. Exception Breakpoint • 任意、ないしは指定のExceptionが発生した瞬間にブレークできる • 任意のExceptionでブレークするとき • Breakpoints画面から「Java Exception Breakpoints

    > Any exception」を有効にする • 指定のExceptionでブレークするとき • Breakpoints画面から + ボタンで「Java Exception Breakpoints」を選んでException
 クラスを選択する
  5. Non-Suspend Breakpoint • 到達しても停止しないBreakpoint • Suspendを無効にすると到達時に停止しなくなる • 単体だと意味がない • Evaluation/Logging

    Breakpointと組み合わせると自動で
 ログを出したり強制的に値を設定したりできる • 入力テキストや入力値を固定したり • 強制的にAPIの値を書き換えたり
  6. 最後に • 知っていると便利かもしれないデバッガの機能でした • Android ProfilerもAndroid Studio 3.2でまともになったのでAndroid Studioだけでも全然 デバッグに苦労しなくなってきた

    • 以前はEditTextにフォーカスを当てた後に画面遷移するとAndroid Profilerのキー入力の
 ロガーが原因で無条件でクラッシュする不具合が… • Evaluate + Non-suspend Breakpointを思い出せるようにしておくとデバッグ時の入力がそ れなりに楽になるので個人的にはおすすめです