Xamarin から Android の実機を動かす

Androidのシミュレータが遅いので実機を使います…っていうんですが、なかなかしんどいので手順を残しておきます。

■実機を用意する

手元に実機がないので、何でもいいのですが タブレット Diginnos Tablet DG-D07S|ドスパラ公式通販サイト を買いました。Andoroid ver.4.2だそうだから、程よく新しくてまあ中華パッドだけどよいかという感じで。ちなみにこのタブレットは Google Play が入っていません。後から入れることも可能らしいので買ったのですが、また実験しておりません。まあ、しばらくはデバック機として過ごす予定です(今はビデオが流れていますが)。

■VMWare上に Xamarin Studio と Visual Studio を用意する

XamarinからiOSシミュレータを起動する | Moonmile Solutions Blog の環境として、VMWare 8 上に英語版 Windows 8.1 を入れておきます。結論から言うと、Win8.1 をホストにして VMWare 8(最新は 10)+ Win8.1 で Android 実機につなげられます。

■Android の ADB用USBドライバーをインストール

Android SDK Manager を起動して「Google USB Driver」をインストールします。Visual Studio の上にあるアイコンをクリックするか、C:Users<ユーザー名>AppDataLocalAndroidandroid-sdk のフォルダの「SDK Manager」を開きます。

image

下のほうにある Extras フォルダの「Google USB Driver」をチェックしてインストール。

image

■実機のドライバーをインストールする

Windows 8でAndroidのADB用USBドライバーをインストールする方法 とか Google USB DriverでAndroid端末をWindowsに認識させる – Yahoo!知恵袋 とかを参考にしてドライバをインストールします。

  • 大抵の場合 android_winusb.inf ファイルを修正して %SingleAdbInterface% と %CompositeAdbInterface% を追加する。ベンダー ID を指定しないとインストールできない模様。

DG-D07S の場合は、

;DG-D07S
%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0010
%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01

を [Google.NTx86] と [Google.NTamd64] の両方に追加します。

  • google の usb ドライバーには署名が入っていないので、bcdedit /set testsigning on を実行してテストモードでインストール。元に戻す時は bcdedit /set testsigning off にする。

単に署名のないドライバーをインストールするだけなので「安全」です。もちろん、Googleを信用するってのが前提ですが。

■実機のUSBデバッグを有効にする

Windows に Xamarin.Android をインストール : XLsoft エクセルソフト のように、実機の「USBデバッグ」を有効にします。機種によって違うのですが「アプリ開発者用」とかのカテゴリにあります。

■VMWare上から実機へ接続する

うまく認識すると、下のように「Android Composite ADB Interface」が表示されます。VMWare上でこれが出ないときは、

image

「取り外し可能デバイス」のところで Android の実機を切り離してやります。何かタイミング(順序?)があるらしく、「ホストから切断」(VMWareに接続)した状態で、何回かUSBを抜き差しすると認識します。USB認識があるので、抜き差しの間に10秒ぐらい置くとうまくいきます。

同じUSBポートにハブでつなぐとうまくいくけど、別のUSBポートだとダメな感じですね。VMWare 10 だとうまく動くのかもしれません。

→ VMWare Workstation 10 にバージョンアップをすると、確実につながるようになりました。10 から USB が 3 ポートサポートされているので、おそらく 8 の場合は1つだけだったのかも(USB接続のキーボードとマウスとの競合っぽい)。となると、最新の VMWare Player 6 でもうまくいくかも。

image

■ADO devices で確認する

必須かどうか不明なのですが USB接続でadbコマンドを使う – forzando@net を参考にして、

  • adb start-server サーバーを起動
  • adb kill-server サーバーを止める
  • adb debices 接続デバイスの一覧を表示

ここにデバイスマネージャで表示されている実機が出てこない場合は、何か adb.exe がおかしいパターンが多いです。

私の場合、 DG-D07SのADB認識について | AndroidのQ&A【OKWave】 と同じ現象で、google のではなく、配布されている adb.exe と *.dll を差し替える(C:UsersmasudaAppDataLocalAndroidandroid-sdkplatform-tools にコピーする)とうまく動きました。

adb devices でデバイス表示をさせると、自動的にサーバーが起動します。

■Xamarin Studio から実機へ起動させる

プロジェクトの「Run With」(日本語だと何?)から実機を選択します。「Mono Soft Debugger for Android」のはシミュレータですね。Windows に Xamarin.Android をインストール : XLsoft エクセルソフト のように、Genymotion Emulator を使ってもよいのですが、私のPCは Intel VTを動かせない(VMWareと競合する)ので試していません。

実機の接続を切ってしまうと、ここのリストに出てこないので、Xamarin Studio を再起動させます。

image

■Visual Studio から実機を動かす

ツールバーにターゲットが表示されます。「rockchip DG-D075」というのが実機です。これも USB を抜いてしまうと実機を認識しないので、Visual Studio を再起動します。

image

というわけで、VMWare 上の Xamarin から実機へのデバッグ実行ができました。実機の画面キャプチャがないのは、私が「実機の画面キャプチャの方法を知らない」からです(苦笑)。だって、Andoroidを触ってまだ1日目ですから。

そうそう、実機へのデプロイ時に Android のバージョンが異なるとエラーになるので、当然ですがそろえておきます。

Set Up Device for Development | Xamarin を見ていくと WiFi 経由でデバッグ実行ができるみたいなんですよね。USB ケーブルの場合、VMWare の認識でややこしいので無線LAN経由でやりたいところです。この設定はあとから試してみます。SmartQ 5 – アプリケーション開発とデバッグ | Scenery and Fish とか、Wifi接続でadbコマンドを使う – forzando@net があるので。

カテゴリー: Xamarin パーマリンク

Xamarin から Android の実機を動かす への1件のコメント

  1. ピンバック: Xamarin StudioからAndroidデバイスで実機デバッグする方法 | 技術 | K-TechL@bo

コメントは停止中です。