Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Androidタブレット実機でデバッグしよう!

こんばんは。kimukimuです。

最近、近所の電器店をうろついていると、Xperia acroやら、Garaxy S2とかが並んでいて壮観ですね!
加えて、Android4.0(Ice Cream Sandwich)搭載のNexus Primeの情報も徐々に公開されてきています。

今後もAndroidが熱い状況は続きそうですね!

何は無くとも、実機を使おう!

これまではAndroid仮想マシンを用いて確認を行ってきましたが、以前の記事のように、
Android仮想マシンだと使えない機能も非常に多いです。
特に、Android2.3以降は。

そのため、趣味で開発&デバッグ用に
Android3.0タブレット、ICONIA TAB A500を購入しました!

画面はこんな感じ。動作も軽快です。
これを知ってしまうと、Android3.0の仮想マシンになんて戻れません。。。。

実機デバッグに必要な準備は?

一通り感動^^;したので、実機を使ったデバッグ用の準備に入ります。

尚、実機を使ったデバッグをしたい場合の流れは各Android端末共通で下記の4ステップです。

      1. デバイスドライバをダウンロードしてくる
      2. Android端末をUSB接続時デバッグ可能にする
      3. Android端末とPCをUSBで接続する
      4. アプリケーションをインストールし、デバッグする

今回は購入したICONIA Tabの手順として説明しますね。

1. デバイスドライバをダウンロードしてくる

まずは、エイサーのページから、Windows用のドライバをダウンロードします。

ダウンロードしたら普通にインストール。下記のようにインストールが完了すればOKです。

2. Android端末をUSB接続時デバッグ可能にする

次は、実機側の設定を行います。
まずはアプリケーション一覧を表示し、『設定』をクリックします。

設定メニューが表示されますので、「アプリケーション」→「提供元不明のアプリ」と選択します。

警告メッセージが表示されますが、OKを選択して先に進みます。

「提供元不明のアプリ」にチェックが入ればOKです。
次は、「開発」を選択します。

「USBデバッグ」を選択します。

上記のように、「USBデバッグ」にチェックが入った状態になれば準備完了です。

3. Android端末とPCをUSBで接続する

※注意:この章は「Android2.3/Android3.0/Android3.1の開発環境を構築しよう!」で、
    環境構築がされ、adbコマンドやddmsコマンドが使用可能であることを前提にしています。

Android端末とPCを接続し、お互いに認識することを確認します。
まずはUSBケーブルでPCとAndroid端末を接続します。
すると、オートでいくつかドライバがインストールされ、
最終的に下記のように端末がマイコンピュータ側から見れるようになります。
ちなみに、種類からAndroidタブレットって、
「ポータブルメディアプレーヤー」かつ「デジタルカメラ」と扱われることがわかります。

認識されたら、今度はコマンドプロンプトを開き、「adb devices」とコマンドを実行します。
すると、「37c61c140e020d7」という名前で認識されていることがわかります。

次は、コマンドプロンプトから「ddms」コマンドを実行します。
すると、「Dalvik Debug Monitor」が起動し、デバイス「37c61c140e020d7」のログが確認可能です。

これで、接続確認が完了です。

4. アプリケーションをインストールし、デバッグする

3まででデバッグが可能となったため、実際にアプリケーションをインストールしてデバッグをしてみます。
デバッグ確認には、前回(ContentProviderでAlarmClockを操作してみました)に作ったアプリを使います。

まずはEclipseを起動し、デバッグ設定を表示します。

デバッグ設定で「Target」タブを選択するとデプロイをする端末が設定できます。
「Manual」となっていることを確認し、「Debug」ボタンを押下します。

すると、デプロイをする仮想マシンを聞かれますので、デバイス「37c61c140e020d7」を選択して、「OK」ボタンを押下します。

すると、タブレット側でアプリケーションが起動します。
・・・配置が微妙なのは元々携帯端末用のアプリをタブレットで動かしているからです。

起動が成功したら、Eclipse側でアラームを設定するタイミングにブレークポイントをしかけておきます。

後は、Android端末側でタイマーをセットします。

すると、Eclipse側でブレークポイントに引っ掛かります。
後は、普通のJavaアプリケーションと同じようにデバッグが可能です。

ちなみに、ブレーク後、再開するとアラーム設定ウィンドウが表示されます。
Context Provider:AlarmClockもきちんと動いていることがわかりますね。

これで、実機を使ってEclipseからデバッグが出来ることがわかりました。

Eclipseデバッグ出来ることの利点

Androidの実機をIDEであるEclipseから直接デバッグ出来る。。。とは、
つまりは実際にアプリケーションが動く環境でそのままデバッグ出来るということです。

これだけ書くとごく普通に読めてしまうかもしれませんが、違います。
ソフトウェアエンジニアを何年かやっていればわかるのですが、
『実際にシステムが動く環境』と、『開発環境』の違いは大きく、
その違いによって引き起こされる問題も多いです。

そのため、実際の環境でそのままデバッグ出来るというのは非常に貴重です。
Androidが登場するまでは携帯電話のアプリ開発というとデバッグしにくい印象しかなかったのですが、
Androidは正反対で、非常にデバッグしやすいと感じています。

これだけいい環境が揃っているのだから、後は開発者の腕の見せ所ですね!
私も頑張らないと。