SmartQ 5 – アプリケーション開発とデバッグ

SmartQ 5 Covia 2009/12/1 Firmwareを使ったAndroidアプリケーションのデバッグ方法についてのPostです。

個人的にAndroidの実機は欲しいけどこれ以上、回線契約もしたくないし、、、。という思いのところに出てきたSmartQ5ですので、こいつでいろいろ開発をしたい!と思っていたわけですが、adbで認識するまでが一苦労だったのでその覚書です。

いろいろ試行錯誤した結果ですが、このオペレーションは必要ない!という点等があればご指摘いただけると助かります。

全般的な注意点として、これらのデバッグ設定をしているとデバイスのハングアップ等を引き起こしやすくなるような気がする(^_^;)こと、電池の減りが異様に早くなるような気がする(^_^;;)ようなところでしょうか。

デバッグが終わったら一度設定を元に戻してRebootしたほうが良いかもしれません。

続きは以下から。

まずは私の環境

  • 開発機 – Windows7 Ultimate
  • SDK – Android SDK 2.0 Release 1
  • SmartQ 5 Firmware – Covia 2009/12/1

関係無いですけど、開発そのものはJDK1.6.0_16、Eclipseの3.5とADT0.9.4でやってます。

無線LANでのDebug方法

実機の設定

設定ポイントは以下。関係無いと思える項目もチェックしてください。

  • Dev Tools → Development Settings → Wait for debuggerをチェック
  • 設定 → アプリケーション → 開発 → USBデバッグをチェック

上記がadbで接続するのに必須で必要な点です。

更に無線LANでDebugをするなら以下の設定も変更しておいた方が良いと思います。

  • 設定 → アプリケーション → 提供元不明のアプリをチェック
  • 設定 → アプリケーション → 開発 → スリープモードにしないをチェック
  • 設定 → Covia Settings → Usb Setting → OTG Client Mode

無線LANでのDebugですが、私の環境では上記の必須の設定二点を有効にしておかないと起動して無線LANが使えるようになった後でもconnectできません。

ただし、一度connectできるようになればReboot等をしなければ設定を変更してもconnectできます。良くわかりませんが、Networkに口を開けて待ってるプロセスが起動していない感じでしょうか???(adbdってやつかなー?)

実機の設定が完了できたら一旦SmartQ5を再起動します。

adbで接続

前提条件は、コマンドプロンプトからadbが実行できること、それと当たり前ですが無線LANが繋がること。

SmartQ5は今でこそ「わりと」繋がりますが、最初は全然繋がりませんでしたので、一応(^_^;)

コマンドプロンプトから以下の斜線部をコマンド入力します。adbにはPATHを通しておくのと、smartq_ipaddressは調べたIP Addressに置き換えてください。

  1. SmartQ5のIP Addressを確認してping等で疎通を確認します。
  2. 念のためサーバをリスタート
`<em>adb kill-server</em><br />

adb start-server` 3. ip address指定で接続する

`<em>adb connect <strong>smartq5_ipaddress</strong>:5555</em>`
  1. 接続を確認する。
`<em>adb devices</em><br />

List of devices attached smartq5_ipaddress:5555 device`

少なくとも再起動後にスリープモードに一度も入っていない状況であれば繋がると思いますが、adb connectで接続できない場合があり接続できなくなる条件や再接続に必要な条件については詳細までは調べてないです(そういう場合私は再起動しちゃってます、、、)。

この方法の問題は無線LANのアクセスポイントが無いと使えないこと、、、orz

私はドトールとかのCoffee屋で作業するのが好きなので、USBが本命です。以下。

USBを使ったDebug方法

ポイント

先に書いておきますが設定間違いが無いのに繋がらない場合のポイントは2点あります。

  1. デバイスがデバイスマネージャ上から正常に「Android Phone」として認識されているか確認して、正常に認識していなければ一度USBケーブルを外して、Covia SettingsからADB Modeを指定しなおして(既に指定してあってもADB Modeを再度指定しなおして)から繋ぐと正常に認識するようになります。
ただし、この場合、Offlineで認識されることがほとんどですので更に次の手順。
  1. デバイスが正常に認識されているのに、adb devicesの表示がofflineの場合には、実機側設定のUSBデバッグのチェックを一度外してから付け直す。

とりあえず、上記を頭にいれておけば、なんとかなるかと思います。場合によってはリブート。

あと上記でUSBデバッグにチェックをつけるタイミングではUSBが繋がっていないほうが良いです。多分。

実機の設定

実機の必須設定は以下。

  • Dev Tools → Development Settings → Wait for debuggerをチェック
  • 設定 → アプリケーション → 開発 → USBデバッグをチェック
  • 設定 → Covia Settings → Usb Setting → ADB Mode

以下はお好みで。ただ、「スリープモードにしない」は設定しておいた方が良いような気がします。

  • 設定 → アプリケーション → 提供元不明のアプリをチェック
  • 設定 → アプリケーション → 開発 → スリープモードにしないをチェック

USB DriverのInstall(Windowsのみ)

初めて接続するときだけUSBのデバイスドライバをInstallする必要があります。

USBのデバイスドライバについてはsdk付属デバイスドライバを使います。

ただし、そのままでは互換性のあるデバイスだとWindowsが認識してくれないので.infファイルを書き換えてデバイス番号を変更してやります。

.infの書き換え方法については適当にGoogleを検索すれば見つかりますので詳細は省きますが、私は32bitのWindows7を使っているので以下の行を[Google.NTx86]セクションに追加しています。

<br /> [Google.NTx86]<br /> <strong>; Covia SmartQ5<br /> %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_DDDD<br /> </strong>

  1. 念のためSmartQ5を再起動する
  2. 設定 → Covia Settings → Usb Setting → ADB Mode
既に設定されていたとしても一度選択しなおしてください。すでに設定されているADB Modeを再度クリックするだけでOKです。
  1. 一呼吸
  2. USBを繋げてデバイスドライバをandroid sdkのusb_driverフォルダを指定してInstall

まぁ、わかる人なら普通にデバイスマネージャからドライバの更新でやってくださいな。

ただ、注意としてADBできちんと認識出来ていないとダメです。

adbで接続

Windowsではコマンドプロンプトを開いてadbの確認なんかを念のためしますけど、本質的にはあまり必要無いです。

  1. USBが接続されていないことを確認する
  2. 設定 → Covia Settings → Usb Setting → ADB Mode
既に設定されていたとしても一度選択しなおしてください。すでに設定されているADB Modeを再度クリックするだけでOKです。
  1. 念のためサーバをリスタート
`<em>adb kill-server</em><br />

adb start-server` 4. 設定 → アプリケーション → 開発 → USBデバッグのチェックを外す 5. 一呼吸 6. 設定 → アプリケーション → 開発 → USBデバッグをチェック 7. 一呼吸 8. USBを接続する 9. 祈る 10. 接続を確認する

`<em>adb devices</em>`

List of devices attached

0123456789ABCDE device</code>

最後に

SmartQ5 の場合タッチパネルが非常に良くないのでちょっと使いにくいところはありますけど、これで結構快適にデバッグできます。

やはり実機を使うとエミュレータでDebugするのとは雲泥の差ですね。

ってことで、この情報が 何かの お役に立てば幸いです。