このページの本文へ

前へ 1 2 3 4 次へ

これで作れる! Androidのアプリケーション 第2回

開発したアプリをエミュレーターやデバッガ上でテストする

2010年07月08日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

デバッガでアプリを実行する方法を知る

 デバッガを使ってプログラムを実行させると、指定した場所で実行を一時停止させたり、1行単位で実行するなどの機能が利用できるようになります。実行方法は、通常のエミュレーターや実機での実行と同じです。ただし「実行」ボタンではなく「デバッグ」ボタンを使い、「デバッグの構成」で「構成」を作成します(実行構成と「構成」を共有することも可能)。

 まずは、ソースコードにブレークポイントをつけてみましょう。前回(関連記事)作成したソースコード(MyMainActivity.java)をエディターに表示させます。今後のことを考えて行番号が表示されるようにしておきます。「ウィンドウ」メニューの「設定」を開き、表示されたウィンドウの左側の領域から「一般」→「エディタ」→「テキスト・エディタ」を開きます。

エディタで行番号を表示させるには、「設定」で「一般」→「エディタ」→「テキスト・エディタ」を開き、右側の領域で「行番号の表示」のチェックボックスをオンにする

 右側の領域に「行番号の表示」というチェックボックスがあるので、これをオンにします。これでエディターに行番号が表示されるようになりました。では、onCreateメソッドにある「Toast.makeText……」の行にカーソルを持っていき、行番号の左側のところで右クリックします。表示されたメニューに「ブレークポイントの切り替え」というのがあるのでこれを選択します。

ブレークポイントを設定するには、ソースコード上で行を選び、左端で右クリック。メニューにある「ブレークポイントの切り替え」を選択する。ブレークポイントが設定された行には青い丸がつく

 すると、そこに青い丸が表示されるようになります。これがブレークポイントで、デバッガで実行させると、ここでプログラムが一旦停止します。

 ついでに、デバッグ用のメッセージを組み込んでみましょう。いまの行の次に以下のコードを挿入してください(全体は記事の最後に付属しています)。

Log.d("onCrate","Running");

 これは、デバッガのログにメッセージを表示させるためのコードです。このようなコードを埋め込んでおくと、いちいち停止させなくても、どの場所を通過したかがわかるようになります。ただし、このコードのためにはLogオブジェクトをインポートしておかねばなりません。行頭の×印のところで右クリックし、「Logをインポート」を選択してimport文を自動追加させておいてください。

Log.d文を指定したあとは、行頭の×マークをクリックして、候補から「'Log'をインポートします」を選択する

 その後、ツールバーにある虫のボタン(デバッグボタン)を押し、適当なエミュレーターで起動してみます。うまくデバッガが起動すると、Eclipseの画面が切り替わります。

デバッグで準備ができると、自動的にパースペクティブがデバッグ用に切り替わる。このときに確認がなされ左下のチェックボックスをオンにすれば、次回からは質問なしで自動的に切り替わるようになる

 Eclipseは目的に応じてウィンドウを配置した「パースペクティブ」という設定を複数持つことができます。切り替わるのはデバッグ用のパースペクティブです。

 ウィンドウ左側の中程にソースコードが表示されていて、緑のラインが引かれています。

デバッグを起動すると、アプリケーションが起動し、先ほど指定した行にあるブレークポイントで実行が中断される

 ここが先ほどブレークポイントを設定したところで、現在そこで停止しています。では、1行進めてみましょう。画面左上の「デバッグウィンドウ」のところにあるツールバーで実行の制御ができます。矢印が逆U字型になっている「ステップオーバー」(ファンクションキーならF6)を使って1行実行させます。すると現在のプログラム位置を表す緑の表示が次の行に移るはずです。

デバッグ用パースペクティブでは、「デバッグ」ウィンドウのツールバーで実行の制御ができる。またパースペクティブを元に戻すには、ウィンドウ右上のボタンを使う

 では、実行をそのまま継続させましょう。同じツールバーにある緑色の三角マークである「再開」(F8)をクリックします。これでプログラムは通常の実行状態に戻ります。ただし、デバッガによりいつでも止められる状態なので、通常の実行よりもスピードは遅くなっています。

 このとき、ウィンドウ右下の「LogCat」を見ると、先ほど「Log.d」文で指定したメッセージが表示されているはずです。

 実行を完全に停止させるには、同じくツールバーにある赤い四角(終了、Ctrl+F2)を押します。プログラムを修正する場合には実行を止める必要があります。

 さて、切り替わったパースペクティブを戻す方法ですが、各パースペクティブに対応するボタンはウィンドウの右上に並んでいます。いまは、虫のアイコンがついた「デバッグ」が選択されています。通常の状態に戻すには、その隣にある「Java」ボタンを押します。

 今回は実行とデバッグのやり方を解説しました。ここまでできれば、あとは実際にコードを書くだけです。次回は、今回作ったコードを見ながら、Androidのアプリケーションの基本的な動作を見ていきます。


リスト

package com.tyrell_replicants.sample01;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class MyMainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT).show();
Log.d("onCreate","Running");
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Toast.makeText(this, "onDestory", Toast.LENGTH_SHORT).show();
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show();
}

@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
Toast.makeText(this, "onRestart", Toast.LENGTH_SHORT).show();
}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Toast.makeText(this, "onResume", Toast.LENGTH_SHORT).show();
}

@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Toast.makeText(this, "onStart", Toast.LENGTH_SHORT).show();
}

@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Toast.makeText(this, "onStop", Toast.LENGTH_SHORT).show();
}
}

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン