ユーザ用ツール

サイト用ツール


opengl:androidwear

Android Wear

Device

Android Wear の腕時計型端末は、Android OS 4.4W (API Level 20) を搭載しており単体でアプリケーションが走ります。 ただし Bluetooth 4.0LE による他の端末との同期が必須で、ペアリングしないと何も出来ない仕組みになっています。

ここではペアリングした Android Smartphone/Tablet 端末を Mobile、Android Wear の腕時計型端末を Wearable と呼びます。

  • Mobile 端末の役割
    • インターネット接続
      • 音声認識
      • 各種通知の受信など
    • アプリケーションのダウンロードとインストール
    • セッティング
      • システムやアプリケーションの設定は、Wearalbe ではなく Mobile 側で行います。
      • ただしアプリの作り方に依存しています。
        • Mobile でなければ設定できないアプリ
        • Wearable , Mobile どちらからも設定できるアプリ
        • Wearable だけで完結しているアプリ、など
    • その他

明確な Host/Client の区別がないので、お互いの関係や使われ方はアプリケーションによってさまざまです。 反面、UI や使い方にも統一性がないといえるかもしれません。

SDK

SDK 及び開発環境は通常の Android と共通です。 ただしサンプルプログラムは Android Studio が用いられており、Eclipse + ADT でのプロジェクト作成も失敗するため 現状では Android Studio が必要となります。

APK

  • 基本的には Mobile 側のアプリと Wearable 側のアプリの両方が必要です。(単純な通知だけで済むアプリを除く)

Google Play にも Mobile アプリの形で掲載されるため、 Wearable だけで完結するアプリケーションでも何らかの Mobile 側のアプリケーションが必要となります。

Android Studio

debug

  • USB 接続
  • Bluetooth 経由
  • Wi-Fi 経由 (すぐに切断されるので実用的でない)

Android Wear 端末の開発者向けオプションから ADB デバッグを有効にします。

  1. 設定を開く
  2. 端末情報の中のビルド番号を連続タップする。設定の中に「開発者向けオプション」が追加される
  3. 開発者向けオプションから「ADBデバッグ」を有効にします

USB 接続

充電用のクレードル経由で直接接続できます。 通常の Android 端末と同じです。

  • 接続時に確認のダイアログが Smartphone/Tablet 側に表示されるので注意。
    • Android Wear 5.1.1 からは Android Wear 側に表示されます。

Bluetooth 経由

Smartphone/Tablet 経由で Bluetooth 接続します。 USB 接続できないデバイスでは必須となります。 またワイヤレス状態でデバッグできるので、腕に装着したままの動作確認、モーションセンサーを使ったアプリケーションのテスト等に便利です。

  1. Smartphone/Tablet を USB で PC に接続し、ADB デバッグ出来る状態にしておく
  2. Android Wear の開発者向けオプションから「Bluetooth 経由でデバッグ」を有効にする
  3. Smartphone/Tablet の Android Wear アプリから設定を開「Bluetooth経由のデバッグ」にチェックを入れる
  4. PC から下記の操作を行う
adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444

Bluetooth デバッグは低速なので大きなアプリケーションの実行には時間がかかります。 Bluetooth デバッグ状態ではスリープに移行できないため、バッテリーを消費するので注意が必要です。

Wi-Fi 経由

Wi-Fi 経由での接続も一応可能ですが、Wi-Fi 接続はスリープですぐに切断されるためあまり実用的ではありません。

  1. 一旦 Bluetooth 経由で接続しておく
  2. adb -s localhost:4444 tcpip 5555
  3. adb connect IP-ADDRESS:5555

互換性について

Android Wear SoC

SoC CPU core core GPU core
TI OMAP 3630 Cortex-A8 1.0GHz 1 PowerVR SGX530
Snapdragon 400 Cortex-A7 1.2GHz 1-4 Adreno 305
Snapdragon Wear 2100 Cortex-A7 1.2GHz 1-4 Adreno 304
Atom Atom 1.6GHz 2-? ?

Moto 360 の互換性に注意

  • 現状 Android Wear device は採用 SoC が 2種類
Moto 360 TI OMAP 3630
Moto 360 以外 Qualcomm Snapdragon 400

Moto 360 だけハードウエアが特殊

  1. SoC が違う
    • CPU, GPU 共に仕様の違いあり
    • 遅い、UI の反応から低速 (Moto 360 と LG G Watch を比べてみると、Moto 360 があまりに遅くて驚きます)
  2. タッチパネルの精度が異なる
  3. 画面の下部が切り取られている

Moto 360 はおそらく MotoActive の既存のハードウエア設計を流用したのではないかと思われます。

SoC が違う

  • Moto 360 の CPU が遅い (Cortex-A8 Single core)
    • 整数演算は同等 (ただし 1 core しかない)
    • FPU の速度が激遅、浮動小数点演算が遅い
    • ただし NEON だけは速い
device CPU core FPU (VFP) 浮動小数点演算 SIMD (NEON)
Moto 360 Cortex-A8 激遅 Cortex-A7 の 1/5~1/10 高速 (Cortex-A7 の 2倍)
Moto 360 以外 Cortex-A7 一般的な速度 遅い。FPU と変わらず SIMD の利点なし
  • Moto 360 の GPU は仕様が古くて遅い
    • OpenGL ES 2.0 のみ
device GPU core API
Moto 360 PowerVR SGX 530 OpenGL ES 2.0 iPhone 3GS 世代の下位 GPU
Moto 360 以外 Adreno 305 OpenGL ES 3.0 ShaderCore (sp) 数は少ないが新しい GPU core

タッチパネルの精度が異なる

  • Moto 360 のタッチパネルは精度 (解像度?) が低い
    • アクションゲームでスムーズな動きにならない場合があります。

画面下部が切り取られている

  • Moto 360 の画面サイズは 320×290 の横長で正方形ではない
    • 横長なので Moto 360 だけ Landscape 扱い、Moto 360 以外は Portrait
    • API 上は仮想的に 320×320 のスクリーンに見せかけている

Display size

Display サイズを取得する場合も注意が必要。下記の方法だと 320×290 が返る。

Display disp= getWindowManager().getDefaultDisplay();
int  width= disp.getWidth();
int  height= disp.getHeight(); 

下記だと 320×320

View  view= getWindow().getDecorView();
int  width= view.getWidth();
int  height= view.getHeight();

Android Wear Devices

Device (Rectangle) SoC CPU core ISA FPU GPU OpenGL RAM Screen Round Orientation GL Viewport USB debug
LG G Watch LG-W100 Snapdragon 400 MSM8226 ARM Cortex-A7 0.8GHz 1/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 280×280 Portrait (0,0,280,280) Y
Samsung Galaxy Gear Live Snapdragon 400 ARM Cortex-A7 1.2GHz? ?/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 320×320 Portrait (0,0,320,320)
Sony SmartWatch 3 SWR50 Snapdragon 400? ARM Cortex-A7 1.2GHz? 2/4 ARMv7A VFPv4+NEON Adreno 305? ES 3.0? 512MB 320×320 Portrait (0,0,320,320) Y
ASUS ZenWatch WI500Q Snapdragon 400 ARM Cortex-A7 ?/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 320×320 Portrait (0,0,320,320)
Device (Round Style) SoC CPU core ISA FPU GPU OpenGL RAM Screen Round Orientation GL Viewport USB debug
Motorola Moto 360 TI OMAP 3630 ARM Cortex-A8 1.0GHz 1/1 ARMv7A VFPv3+NEON PowerVR SGX530 ES 2.0 512MB 320×290 Y Landscape (0,-30,320,320) N
LG G Watch R LG-W110 Snapdragon 400 ARM Cortex-A7 1.2GHz? ?/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 320×320 Y Portrait (0,0,320,320)
LG G Watch Urbano Snapdragon 400 ARM Cortex-A7 1.2GHz? ?/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 320×320 Y Portrait (0,0,320,320)
Huawei Watch Snapdragon 400 APQ8026 ARM Cortex-A7 1.2GHz ?/4 ARMv7A VFPv4+NEON Adreno 305 ES 3.0 512MB 400×400 Y Portrait (0,0,400,400)
opengl/androidwear.txt · 最終更新: 2016/10/03 00:28 by oga