Android Wearアプリ開発にエミュレータを利用する
Android Wearアプリを開発する際にエミュレータを利用する場合の話です。
開発中のアプリを実行してデバッグを行うためには、エミュレータなり実機なりを用意する必要があります。Wearアプリの場合、スマホとWear端末が必要になるため、普通のスマホアプリを開発するより用意するものが多くて面倒なところです。
最も簡単なのはスマホとWear端末共に実機を用意することです。既にペアリングを行った実機があれば、その2つをパソコンにUSB接続すればデバッグできます。特に設定を要しません。
一方で、片側をエミュレータ、もしくは両方をエミュレータでデバッグしたい場合は話がややこしくなります。
エミュレータではBluetooth通信まではエミュレートしてくれないので、ポートフォワーディングを利用してスマホ・Wear端末間の通信を再現します。
片方をエミュレータにする場合でも簡単なのはスマホを実機で、Wear端末はエミュレータでやる方法です。
というのもAndroid Wearとのペアリングを行うためには、スマホ側で「Android Wear」というアプリを操作する必要があります。
スマホをエミュレータに置き換えてやろうとすると、このAndroid Wearを使えるようにするのが難しいようなので大変だと思います。どうも直接apkを拾ってきてエミュレータにインストールしないといけないようなので・・・。
Android Wearアプリを開発する場合、基本的にはスマホもWear端末も実機を用意するのがオススメです。実行速度の観点からもそれが一番だと思います。
Android WearのエミュレータはAVDを利用せざるを得ず、上述のポートフォワーディングを利用してペアリングを行ったとしても、端末間の通信は実機に比べるとだいぶタイムラグが生じます。
パソコンにスマホ実機をUSBで接続し、AVDでWearエミュレータを起動した状態から始めます。
まずターミナルからポートフォワーディングを行うようコマンドを入力します。
adb -d forward tcp:5601 tcp:5601
ポート番号は何でもいいようです。(ただし現在使われていないものでないとダメ)
ちなみに-d
はUSBで接続されているデバイスという意味です。-d
をつけるか、デバイスを直接指定しないとerror: more than one device and emulator
とエラーが出ます。
特にエラーメッセージが表示されなければ成功です。
スマホからAndroid Wearアプリを起動し、右上の三点ドットをタップ→新しいウェアラブルとペア設定を選びます。(歯車アイコンの設定ではないです)
端末を選択画面が表示されるので、右上の三点ドットをタップして「エミュレータをペア設定」を選べばエミュレータと接続完了します。
どうでもいいことですが、ペアリングが完了するまでの速度だけは実機より早いです。
Wear端末(実機)とペアリングし直す場合は、エミュレータから切断を行った後、端末を選択画面から自分の使っているWear端末を選べばペアリングし直されます。
ちなみに現在adbでポートフォワードを行っているポートを確認するには以下のコマンドを使います。
adb forward --list
現在行っているポートフォワーディングを止めるには以下のコマンドを使います。
adb -d forward --remove ポート番号
全てのポートフォワーディングを解除してしまって問題ないならadb forward --remove-all
でもいけます。–remove-allの方が入力する量が少なくて楽かもしれません。