Android Studio最速入門~効率的にコーディングするための使い方

第39回 デバッガについて

この記事を読むのに必要な時間:およそ 8 分

実行中のオブジェクトの値を書き換える

デバッガらしく「Variablesタブ」「Watchesタブ」でリストアップしているオブジェクトの値を変更してみましょう。変更したいオブジェクトを選択し,コンテキストメニューから"Set Value"を実行します。

図11 "Set Value"の実行例(クリックすると動きがわかります)

文字列やint, longなどのプリミティブ型の場合,代入する値は容易に想像がつくでしょう。当然,オブジェクトの値も変更可能で,以下のような代入方法があります。

  • new演算子で新しいインスタンスを生成して代入します
  • 他の変数名を代入すると,そのインスタンスの値になります
  • nullも代入できます

図12 "Set Value"でオブジェクトの値を変更する(クリックすると動きがわかります)

デバッグ中の操作(ステップ実行)

デバッガの操作は基本的にブレイクポイントで停止してからのステップ実行です。この操作はIDEに関わりなく共通しているのですが,どうゆうわけかそのショートカットキーや用語はIDEごとに微妙に異なります。この不統一感は,ほとんど嫌がらせのレベルだと思っています。

ステップ実行に関する基本的な操作は以下のとおりです。ショートカットキーは「Defaultキーマップ」のもので,参考までにEclipseとの対比も載せておきます。

Step Over
次の命令に移動します。ショートカットキーは F8 ⁠Eclipseは F6)⁠
Step Into
カーソル位置のメソッドの中に移動します。ショートカットキーは F7 ⁠Eclipseは F5)⁠
Step Out
今のメソッドから抜け,呼び出し元に移動します。ショートカットキーは SHIFT+F8(Eclipseの Step Return(F7)に相当します)⁠
Run To Cursor
カーソル位置まで処理を進めます。ショートカットキーは ALT+F9(Eclipseの Run to Line(Ctrl+R)に相当します)⁠
Resume Program
次のブレイクポイントまで処理を進めます。ショートカットキーは F9(Eclipseの Resume(F8)に相当します)

Android Studioならではの機能に "Smart Step Into"」があります。通常の"Step Into"とは異なり,ステップインする候補を選び,こちらが望んだ場所でステップインできます。

図13 "Smart Step Into"の実行例(クリックすると動きがわかります)

ライブラリにステップインする場合(ソースコードのアタッチ)

なにもデバッガに限った話ではありませんが,Anrdoi SDKや外部ライブラリにステップインするには,そのソースコードが参照可能な状態になってなければなりません。Android SDKの場合は,SDK Managerで対応するSDKのソースコードを入手可能です。

図14 Android SDK ManagerでSDKのソースコードを入手する

図14 Android SDK ManagerでSDKのソースコードを入手する

Android Studioで使っているAndroid SDKにソースコードが設定されているかどうかは,メニューバーの「File → Other Settings → Default Project Structure...」「Project Structure」設定画面の「SDKs / <Android SDKのバージョン>/ Sourcepath」で確認できます。

図15 デフォルトの「Project Structure」設定画面

図15 デフォルトの「Project Structure」設定画面

ライブラリの場合どうなるでしょう。今のところ build.gradledependencies にソースコードやJavadocを取得する記述はありません。当然のように「Project Structure」設定画面にもライブラリにソースコードを割り当てる項目がないです。

図16 Android Studioではライブラリの設定画面が隠されている

図16 Android Studioではライブラリの設定画面が隠されている

では,どうするか?と言えば,何も気にせずデバッガを実行して外部ライブラリにステップインします。ソースコードが無いライブラリにステップインすると,そのエディタタブの右上端に図17のようなメッセージが表示されます。

図17 エディタでソースコードの無いライブラリを開いた場合

図17 エディタでソースコードの無いライブラリを開いた場合

参照しているライブラリがオープンソース系でインターネット(Mavenリポジトリ)にソースコードが公開されているのであれば「Search in internet...」をクリックします。すると該当するソースコードを探し当て,そのライブラリに割り当てます。

図18 ソースコードが設定されたライブラリの例

図18 ソースコードが設定されたライブラリの例

ちなみに,この方法で入手したライブラリのソースコードは <HOME>/.ideaLibSources に保存されます<PROJECT_HOME>/.idea/libraries/<ライブラリ名>.xmlで確認できます)⁠

不幸にもインターネットに接続してない環境にいる,もしくはライブラリそのものがインターネット上にソースコードが公開されていない場合は「Attach Sources...」をクリックして,ローカルにあるソースコードを指定します。

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai

コメント

コメントの記入