目的
Huawei Watch用のWatchFaceを作成する
開発機のUSBポートが1つでAndroid母艦を接続中のため、WearデバイスはBluetooth経由でデプロイ/デバッグしたい
関連記事
- AndroidWear Huawei Watchの簡易レビュー
- AndroidWear Huawei WatchでWatchFaceを作成 ← 現在こちらの記事
- AndroidWearとAmazon API GatewayでGithub Followerを見える化
WatchFaceの作成
Android StudioでNew Project -> Wear (API21) にチェックを入れ Activity で Watch Faceを選択
この状態で時刻のみの時計表示がされるサンプルアプリケーションとなるため、手を加えて盤面に画像表示と日付を表示しました。
下記では画像表示部分のみ記載させて頂きました。
res/drawableに配置したpngファイルを表示
// メンバ変数に追加 Bitmap mBackgroundBitmap; public void onCreate(SurfaceHolder holder) { ... Drawable backgroundDrawable = resources.getDrawable(R.drawable.[pngファイル名], null); mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap(); ... } public void onDraw(Canvas canvas, Rect bounds) { canvas.drawRect(0, 0, bounds.width(), bounds.height(), mBackgroundPaint); // 元から存在する画面クリア canvas.drawBitmap(mBackgroundBitmap, X座標, Y座標, null); ... }
完成図
母艦Androidを通じてBluetoothでデプロイ
補足
Huawei Watchはクレードルを通じてUSB接続可能ですが、USBポートがWear側にない機種であったりUSBポートが限られている場合の方法となります。
後述しますが速度面や安定性であまり手軽と言えないため個人的には有線派です。
Bluetooth vs USBのデプロイ速度
3回づつ試しましたが下記のような時間差となりました。
またBluetoothの場合しばらく時間を置くと切断されているケースもありました。
Bluetooth
Build完了後 Choose a running device からの時間
Uploading 0秒 -> install開始 42秒 -> install完了 56秒
USBクレードル
Build完了後 Choose a running device からの時間
Uploading 0秒 -> install開始 3秒 -> install完了 18秒
Huawei Watchの設定
- ビルド番号を7回クリックで、開発者向けオプションを表示しておく
- 開発者向けオプション -> ADBデバッグ を有効にする
- 開発者向けオプション -> Bluetooth経由でデバッグ を有効にする
Android端末 (スマホ/タブレットの設定)
こちらも開発者向けオプションが有効でADBデバッグが出来る状態にしておきます。
1. Android Wearアプリを立ち上げる (Wearとペアリング時に使ったアプリです)
2. Bluetooth経由のデバッグを有効にする
ここから先は adb コマンドを利用して localhostの指定ポートに Wearとの接続口を作成します。
途中でよく分からない状態になったら下記の「調子の悪い場合」を実施して下さい。
adb コマンドの場所
MacでAndroid Studioをインストールすると、下記場所に adb コマンドが入っています。
/home/[ユーザアカウント]/Library/Android/sdk/platform-tools
なので以降の作業はターミナルを開いてWorkDirを下記で進めます。
$ cd ~/Library/Android/sdk/platform-tools
現在の状態確認 (接続済みデバイス一覧を表示)
Android Studioで Runする際にどのデバイスで実行するか聞いてくるリストです
$ ./adb devices -l List of devices attached EBOKBC277928 device usb:336658432X product:WW_K01H model:K01H device:K01H
localhostの指定ポートに Wearとの接続口を作成
$ ./adb forward tcp:4444 localabstract:/adb-hub $ ./adb connect localhost:4444 connected to localhost:4444
現在の状態確認 (接続済みデバイス一覧を表示)
下記のようにならない場合はWear側・スマホ/タブレット側の設定を確認の上、下記「調子悪い場合」の実施をお薦めします。
$ ./adb devices -l List of devices attached EBOKBC277928 device usb:336658432X product:WW_K01H model:K01H device:K01H localhost:4444 device product:sturgeon model:HUAWEI_WATCH device:sturgeon
Android Studioでデプロイを実施
デプロイ完了までUSB接続に比べて 2~3倍程時間が必要と感じました、USB Hubなりあれば繋いだ方が良いかもです...
調子悪い場合
一度デプロイ出来たのになぁと思ったら 次回実行時にOffline と怒られたりした場合下記コマンドを実行してやり直し
$ ./adb kill-server $ ./adb devices -l List of devices attached
リストが空になったらAndroidタブレットのUSBを抜き差し後にもう一度 adb forward... の設定を行う
番外編 アプリケーションの削除
$ ./adb -s localhost:4444 uninstall パッケージ名 Success
参考記事
Bluetooth経由でのデプロイは下記記事を参考にさせて頂きました、ありがとうございます!
http://androidlover.net/android-wear/moto-360/moto360-bluetooth-debug-mode-on.html
公式記事
https://developer.android.com/intl/ja/training/wearables/apps/bt-debugging.html