2014/07/30
Android BayTrail ME176 で OpenGL ES 3.0 が使えない
ASUS MeMO Pad ME176 (Z3745) でいつの間にか OpenGL ES 3.0 が使えなくなっています。
おそらくシステム更新が原因ではないかと思われます。
OpenGL ES 3.0 での動作を考えている方はご注意ください。
以前の記事はこちら
・Android の新しい GPU BayTrail-T Intel HD Graphics
2014/10/12 追記: 新しいファームウエアで OpenGL ES 3.0 が復活しました
関連エントリ
・Android x86 Binary Translator を試してみる
・Android の新しい GPU BayTrail-T Intel HD Graphics
おそらくシステム更新が原因ではないかと思われます。
OpenGL ES 3.0 での動作を考えている方はご注意ください。
以前の記事はこちら
・Android の新しい GPU BayTrail-T Intel HD Graphics
2014/10/12 追記: 新しいファームウエアで OpenGL ES 3.0 が復活しました
関連エントリ
・Android x86 Binary Translator を試してみる
・Android の新しい GPU BayTrail-T Intel HD Graphics
2014/07/29
Android x86 Binary Translator を試してみる
x86 の Atom を搭載した Android Tablet も増えてきました。
本来なら NDK を使用したアプリケーションの互換性が気になるところです。
ところが実際はほとんど問題が起こらず、想像以上にそのまま動作するものが多いようです。
最初から複数のアーキテクチャに対応しているアプリももちろんありますが、
x86 未対応でも動く仕組みが用意されています。
・Bay Trailが実現する、WindowsとAndroidが共存するタブレット
x86 の Android 端末は armeabi-v7a のコードを x86 に変換して実行することができます。
実際に試してみました。
ASUS MeMO Pad 7 ME176 (BayTrail-T Atom Z3745) を使い、
ARMv7A のバイナリ (so) だけ含んだ VFP Benchmark を走らせてみました。
NDK かつ assembler を使ったプログラムながら、きちんと動作していることがわかります。
下記はそれぞれのスクリーンショット。
CPU/FPU の種類も正しく判別している点に注目です。(理由は後述)
↓armeabi-v7a バイナリのみ含む場合

↓x86 バイナリのみ含む場合

結果のまとめ
ARM コードは単精度浮動小数点数命令で x86 の 69%、
倍精度でおよそ 53% の速度となっています。
ただしこれは最善ケースのみです。
Matrix の方が比較的現実的な数値に近いと思われます。
↓他の CPU との比較。
上の表では ARM Binary Translation は同クロックの Cortex-A9 よりも
若干遅い程度、動作クロックの分だけ Cortex-A9 よりも高速な結果となっています。
最近増えてきた低価格帯デバイスの Cortex-A7 Quad core よりは、
ずっと高速に演算できるでしょう。
ただしあくまでピーク演算能力の比較なので、
実アプリケーションに則した結果ではない点に注意してください。
演算命令の分布次第で速度が異なります。
例えば下の命令単位の結果を見ると変換された vmla が特に低速であることがわかります。
vmla を多用した最適化されたプログラムほど速度が遅くなるかもしれません。
上の表は今回の用途では適切なベンチマークではないので、参考程度にお願いします。
↑ FMA は無く VFPv3-D32 NEON 相当。
● ABI
第二 ABI として armeabi-v7a が指定されています。
同じ ARM でも armeabi (ARMv5TE) は変換対象とならないようです。
実際に armeabi だけのプログラムを走らせましたが実行できませんでした。
armeabi-v7a ではなく armeabi でビルドしている古いプログラムは
動作しないことになります。
対応アプリが 100% にならない理由の一つだと思われます。
● CPU Features
NDK に付属している CPU Features Library は、SSE,NEON 等の CPU 拡張命令が
使えるかどうかを返します。
このライブラリは Hardware Register MVFR (CPUID相当) を見ているのではなく、
基本的には /proc/cpuinfo から判断しています。
そのため lib (so) バイナリを x86 に変換するだけでは互換性が不十分です。
x86 の Binary Translator は ARM コードからアクセスした場合
/proc/cpuinfo も ARM 相当に置き換えているようです。
CPU Feature を正しく認識できているのはこの機能のおかげでしょう。
armeabi-v7a のコードから見える cpuinfo は下記の通りです。
本来なら NDK を使用したアプリケーションの互換性が気になるところです。
ところが実際はほとんど問題が起こらず、想像以上にそのまま動作するものが多いようです。
最初から複数のアーキテクチャに対応しているアプリももちろんありますが、
x86 未対応でも動く仕組みが用意されています。
・Bay Trailが実現する、WindowsとAndroidが共存するタブレット
x86 の Android 端末は armeabi-v7a のコードを x86 に変換して実行することができます。
実際に試してみました。
ASUS MeMO Pad 7 ME176 (BayTrail-T Atom Z3745) を使い、
ARMv7A のバイナリ (so) だけ含んだ VFP Benchmark を走らせてみました。
NDK かつ assembler を使ったプログラムながら、きちんと動作していることがわかります。
下記はそれぞれのスクリーンショット。
CPU/FPU の種類も正しく判別している点に注目です。(理由は後述)
↓armeabi-v7a バイナリのみ含む場合

↓x86 バイナリのみ含む場合

結果のまとめ
Z3745 x86 Z3745 ARM-BT --------------------------------------------------------- SingleFP Single-thread 8.95 6.14 69% DoubleFP Single-thread 2.80 1.48 53% SingleFP MultiT-hread 35.37 24.33 69% DoubleFP MultiT-tread 11.06 5.91 53% Matrix 4x4 Single-thread 3.06 1.79 59% Matrix 4x4 Multi-thread 12.26 7.23 59% ・プロセッサのピーク演算能力 ・単位は GFLOPS、数値が大きい方が高速 ・ARM-BT = ARM Binary Translation
ARM コードは単精度浮動小数点数命令で x86 の 69%、
倍精度でおよそ 53% の速度となっています。
ただしこれは最善ケースのみです。
Matrix の方が比較的現実的な数値に近いと思われます。
↓他の CPU との比較。
clock SP DP SP-MT DP-MT ------------------------------------------------------------------- BayTrail Z3745 ARM-BT x4 1.86GHz 6.14 1.48 24.33 5.91 ** BayTrail Z3745 x86 x4 1.86GHz 8.95 2.80 35.37 11.06 BayTrail J1900 x64 x4 2.41GHz 14.48 3.62 57.90 14.47 Atom z540 x1 1.86GHz 8.92 1.81 10.93 1.85 Tegra3 Cortex-A9 x4 1.30GHz 4.78 1.20 18.91 4.72 Tegra4 Cortex-A15 x4 1.80GHz 13.37 2.66 51.35 9.86 Snapdragon S4 Pro Krait x4 1.50GHz 11.95 3.01 47.81 11.75 Snapdragon 800 MSM8974 x4 2.20GHz 17.13 4.29 67.54 16.87 Rockchip RK3066 Cortex-A9 x2 1.60GHz 6.35 1.59 12.66 3.14 MediaTek MT8125 Cortex-A7 x4 1.20GHz 2.37 1.17 9.47 4.65 Apple A5 (iPad2) Cortex-A9 x2 1.00GHz 3.97 0.99 7.83 1.96 Apple A6 (iPad4) Swift x2 1.30GHz 10.86 1.82 21.50 3.57 Apple A7 (5s) Cyclone x2 1.40GHz 20.62 10.31 40.87 20.48
上の表では ARM Binary Translation は同クロックの Cortex-A9 よりも
若干遅い程度、動作クロックの分だけ Cortex-A9 よりも高速な結果となっています。
最近増えてきた低価格帯デバイスの Cortex-A7 Quad core よりは、
ずっと高速に演算できるでしょう。
ただしあくまでピーク演算能力の比較なので、
実アプリケーションに則した結果ではない点に注意してください。
演算命令の分布次第で速度が異なります。
例えば下の命令単位の結果を見ると変換された vmla が特に低速であることがわかります。
vmla を多用した最適化されたプログラムほど速度が遅くなるかもしれません。
上の表は今回の用途では適切なベンチマークではないので、参考程度にお願いします。
// armeabi-v7a (Binary Translation) * VFP/NEON (単精度 fp) single-thread sec MFLOPS MFLOPS ---------------------------------------------------------------- VFP fmuls (32bit x1) n8 : 3.954 1011.6 1011.6 VFP fadds (32bit x1) n8 : 3.332 1200.6 1200.6 VFP fmacs (32bit x1) n8 : 8.371 955.7 955.7 VFP vfma.f32 (32bit x1) n8 : - - - NEON vmul.f32 (32bit x2) n8 : 6.009 1331.4 1331.4 NEON vadd.f32 (32bit x2) n8 : 3.816 2096.6 2096.6 NEON vmla.f32 (32bit x2) n8 : 22.824 701.0 701.0 NEON vfma.f32 (32bit x2) n8 : - - - NEON vmul.f32 (32bit x4) n8 : 6.012 2661.2 2661.2 NEON vadd.f32 (32bit x4) n8 : 3.347 4780.6 4780.6 NEON vmla.f32 (32bit x4) n8 : 16.516 1937.5 1937.5 NEON vfma.f32 (32bit x4) n8 : - - -
↑ FMA は無く VFPv3-D32 NEON 相当。
// x86 * SSE/AVX (単精度 fp) single-thread sec MFLOPS MFLOPS ---------------------------------------------------------------- SSE mulss (32bit x1) n8 : 2.203 1816.0 1816.0 SSE addss (32bit x1) n8 : 2.152 1858.6 1858.6 SSE mulps (32bit x4) n8 : 4.292 3728.2 3728.2 SSE addps (32bit x4) n8 : 2.146 7457.2 7457.2 SSE mul+addps (32bit x4) n8 : 2.146 7456.3 7456.3 SSE ml+ad+addps (32bit x4) n6 : 1.877 8949.5 8949.5 SSE mulss (32bit x1) ns4 : 2.145 1864.4 1864.4 SSE addss (32bit x1) ns4 : 2.145 1864.7 1864.7 SSE mulps (32bit x4) ns4 : 4.291 3728.9 3728.9 SSE addps (32bit x4) ns4 : 2.153 7430.9 7430.9 AVX vmulps (32bit x8) n8 : - - - AVX vaddps (32bit x8) n8 : - - - AVX vmul+addps (32bit x8) n8 : - - - AVX vml+ad+adps (32bit x8) n6 : - - -
● ABI
ro.product.cpu.abi=x86 ro.product.cpu.abi2=armeabi-v7a
第二 ABI として armeabi-v7a が指定されています。
同じ ARM でも armeabi (ARMv5TE) は変換対象とならないようです。
実際に armeabi だけのプログラムを走らせましたが実行できませんでした。
armeabi-v7a ではなく armeabi でビルドしている古いプログラムは
動作しないことになります。
対応アプリが 100% にならない理由の一つだと思われます。
● CPU Features
NDK に付属している CPU Features Library は、SSE,NEON 等の CPU 拡張命令が
使えるかどうかを返します。
このライブラリは Hardware Register MVFR (CPUID相当) を見ているのではなく、
基本的には /proc/cpuinfo から判断しています。
そのため lib (so) バイナリを x86 に変換するだけでは互換性が不十分です。
x86 の Binary Translator は ARM コードからアクセスした場合
/proc/cpuinfo も ARM 相当に置き換えているようです。
CPU Feature を正しく認識できているのはこの機能のおかげでしょう。
armeabi-v7a のコードから見える cpuinfo は下記の通りです。
Processor : ARMv7 processor rev 1 (v7l) BogoMIPS : 1500.0 Features : neon vfp swp half thumb fastmult edsp vfpv3 Processor : ARMv7 processor rev 1 (v7l) BogoMIPS : 1500.0 Features : neon vfp swp half thumb fastmult edsp vfpv3
2014/07/27
Android NDK r10 と x86 SSE 命令の出力
Android NDK r10 の gcc-4.8 (32-bit target) x86 で build すると、
-msse3 -mssse3 を指定しても sse4.1 の insertps 命令が
生成されてしまうことがわかりました。
BayTrail (Atom Z3500/Z3700) では動きますが、
旧 Atom Z2400/2500 の Tablet や AVD で問題が生じます。
-m32 を指定すると正しいコードが生成されます。
・NDK r10 x86 gcc-4.8/4.9 toolchain generate popcnt instruction by default
関連エントリ
・OpenGL ES 3.0 Android NDK r9d の gl2ext.h が GLES3/gl3.h と衝突する
-msse3 -mssse3 を指定しても sse4.1 の insertps 命令が
生成されてしまうことがわかりました。
BayTrail (Atom Z3500/Z3700) では動きますが、
旧 Atom Z2400/2500 の Tablet や AVD で問題が生じます。
-m32 を指定すると正しいコードが生成されます。
・NDK r10 x86 gcc-4.8/4.9 toolchain generate popcnt instruction by default
関連エントリ
・OpenGL ES 3.0 Android NDK r9d の gl2ext.h が GLES3/gl3.h と衝突する
2014/07/26
Android Wear VFP Benchmark
「Android Wear LG G Watch (LG-W100) の速度(実測)」で計測に使ったアプリを公開しました。
・VFP Benchmark
・Google Play: VFP Benchmark for Android Wear
命令単位の実行速度など、詳細な表は Smartphone/Tablet 側で表示することができます。
ログの書き出しも可能です。
よろしければどなたか Galaxy Gear Live の結果を教えて下さい。
Android Wear と Smartphone/Tablet の通信 API は対称で、どちらも同じコードになります。
Smartphone 側からデータを送ったり Android Wear の Activity を起動することができますし、
逆も同様に可能です。
Android Wear は Android を搭載した独立したデバイスなので、対等な扱いになっていることがわかります。
このアプリはログのビューアとして Smartphone/Tablet を利用しています。
関連エントリ
・Android Wear 3D のアナログ時計 (Watch Face)
・Android Wear の 3D 描画 と NDK r10
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
・VFP Benchmark
・Google Play: VFP Benchmark for Android Wear
命令単位の実行速度など、詳細な表は Smartphone/Tablet 側で表示することができます。
ログの書き出しも可能です。
よろしければどなたか Galaxy Gear Live の結果を教えて下さい。
Android Wear と Smartphone/Tablet の通信 API は対称で、どちらも同じコードになります。
Smartphone 側からデータを送ったり Android Wear の Activity を起動することができますし、
逆も同様に可能です。
Android Wear は Android を搭載した独立したデバイスなので、対等な扱いになっていることがわかります。
このアプリはログのビューアとして Smartphone/Tablet を利用しています。
関連エントリ
・Android Wear 3D のアナログ時計 (Watch Face)
・Android Wear の 3D 描画 と NDK r10
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
2014/07/18
Android Wear 3D のアナログ時計 (Watch Face)
OpenGL ES 2.0/3.0 でウオッチフェイスを作ってみました。
3D で動きまわります。


・Google Play "3D imclock for Android Wear"
・3D imclock
● Install 方法
連動している Smartphone/Tablet (Handheld 端末) にインストールします。
Android Wear (Wearable 端末) にも自動的に転送が行われます。
● 時計の切り替え方
時計画面の長押し、またはメニューから変更できます。
メニューの「設定」から「ウオッチフェイスの変更」
● 描画更新について
Android Wear はスリープ中も時計表示が可能ですが、
バッテリー消費を抑えるために描画の更新速度が大幅に遅くなっているようです。
およそ 1分間隔の更新となっており、それ以外は止まっています。
・通常時 60fps
・スリープ中 0.016fps
内蔵の Watch Face がスリープ中に秒の表示を消している理由がわかりました。
ただし adb で接続している間は別で、画面が暗くなっても完全には停止せずに
描画更新が行われています。
デバッガの通信のために本当の意味でのスリープに移行できないためだと思われます。
USB 接続、Bluetooth 経由の adb 接続どちらでも同じでした。
また作っていて気がついたのですが、
Bluetooth 圏内の場合はスリープへの移行に若干タイムラグがあります。
画面が暗くなったあともしばらくは描画更新が続いており、
連動端末と何らかの通信が行われている可能性があります。
Bluetooth 非接続の場合は特に何もすることがないので、
スリープに入るとすぐに描画更新が停止してしまうようです。
このアプリは平常時 30fps で動作しています。
スリープ中はアニメーションできないので、秒針を消すと同時に
基準の位置に戻す処理を入れています。
ただし Bluetooth 圏外では完全に戻りきる前に画面が止まってしまう場合があるようです。
オリジナルの Windows 版はこちら 3D IM-clock
関連エントリ
・Android Wear の 3D 描画 と NDK r10
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
3D で動きまわります。


・Google Play "3D imclock for Android Wear"
・3D imclock
● Install 方法
連動している Smartphone/Tablet (Handheld 端末) にインストールします。
Android Wear (Wearable 端末) にも自動的に転送が行われます。
● 時計の切り替え方
時計画面の長押し、またはメニューから変更できます。
メニューの「設定」から「ウオッチフェイスの変更」
● 描画更新について
Android Wear はスリープ中も時計表示が可能ですが、
バッテリー消費を抑えるために描画の更新速度が大幅に遅くなっているようです。
およそ 1分間隔の更新となっており、それ以外は止まっています。
・通常時 60fps
・スリープ中 0.016fps
内蔵の Watch Face がスリープ中に秒の表示を消している理由がわかりました。
ただし adb で接続している間は別で、画面が暗くなっても完全には停止せずに
描画更新が行われています。
デバッガの通信のために本当の意味でのスリープに移行できないためだと思われます。
USB 接続、Bluetooth 経由の adb 接続どちらでも同じでした。
また作っていて気がついたのですが、
Bluetooth 圏内の場合はスリープへの移行に若干タイムラグがあります。
画面が暗くなったあともしばらくは描画更新が続いており、
連動端末と何らかの通信が行われている可能性があります。
Bluetooth 非接続の場合は特に何もすることがないので、
スリープに入るとすぐに描画更新が停止してしまうようです。
このアプリは平常時 30fps で動作しています。
スリープ中はアニメーションできないので、秒針を消すと同時に
基準の位置に戻す処理を入れています。
ただし Bluetooth 圏外では完全に戻りきる前に画面が止まってしまう場合があるようです。
オリジナルの Windows 版はこちら 3D IM-clock
関連エントリ
・Android Wear の 3D 描画 と NDK r10
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
2014/07/17
Android Wear の 3D 描画 と NDK r10
Android Wear で flatlib3 の Model data Viewer を起動しています。
OpenGL ES 3.0 を使用。


NDK r10 で 64bit と OpenGL ES 3.1 に対応しています。
コンパイルは通りましたがテスト環境がまだありません。
ABI は下記の通り。(こちらにまとめています)
関連エントリ
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
OpenGL ES 3.0 を使用。


NDK r10 で 64bit と OpenGL ES 3.1 に対応しています。
コンパイルは通りましたがテスト環境がまだありません。
ABI は下記の通り。(こちらにまとめています)
Android --------------------------------------------------- armeabi ARMv5TE 32bit -- armeabi-v7a ARMv7-A 32bit VFPv3-D16 armeabi-v7a-hard ARMv7-A 32bit VFPv3-D16 arm64-v8a ARMv8-A 64bit AArch64 NEON x86 IA32/x86 32bit SSSE3 x86_64 AMD64/x64 64bit SSE4.2 mips MIPS32 R1 32bit FPU mips64 MIPS64 R6 64bit
iOS --------------------------------------------------- armv6 ARMv6 32bit VFPv2 armv7 ARMv7-A 32bit VFPv3-D32 NEON armv7s ARMv7-A 32bit VFPv4-D32 NEON armv64 ARMv8-A 64bit AArch64 NEON i386 IA32/x86 32bit SSE x86_64 AMD64/x64 64bit SSE
関連エントリ
・Android Wear にゲームを移植
・Android Wear LG G Watch (LG-W100) の速度(実測)
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
2014/07/13
Android Wear にゲームを移植
ゲームを Android Wear に移植してみました。

・Google Play ChiRaKS Android Wear
・解説ページ
● Install 方法
連動してる Smartphone/Tablet (Handheld 端末) の方から Google Play にアクセス
してインストールします。
Android Wear (Wearable 端末) にも自動的に転送&インストールが行われます。
● 起動手順
1. 画面を2回タップして下からシステムメニューを引き上げ
2. 一番下の 「開始...」 からアイコンを選択
● Uninstall 方法
Smartphone/Tablet (Handheld) 側でアンインストールすると
Android Wear (Wearable 端末) からも削除されます。
● アプリの中断&終了手順
画面全体を手で覆うと時計画面 (ロック画面) に戻ります。
完全に終了させるには Menu から "終了" を選んでください。
● Android Studio
SDK の Android Wear サンプルは全て Android Studio 向けです。
Eclipse+ADT ではプロジェクトの新規作成に失敗したので
サンプルを参考に Android Studio で作成しています。
もともと ZWatch で動いていたので修正は Project まわりと UI のみ。
● NDK
NDK のサンプルも Android Studio に変換できますがビルド環境も統合されます。
src 以下にあるファイルはすべてビルド対象となるようです。
C/C++ は独自の Build ツールを使用していたので分離しました。
最終的に build/intermediates/ndk/debug, release 以下にファイルが
存在していればパッケージに含まれるようです。
ただし Clean で消えます。
● 実行&デバッグ
デバッグは直接 Android Wear (Wearable 端末) 上で行えます。
adb で apk の install も可能。
アプリ管理メニューがないので削除は adb uninstall が必要です。
Round, Square 2種類あるので画面に合わせたレウアウトの調整が必要です。
サンプルにもある WatchViewStub では、それぞれ個別に layout ファイルを
持つことができます。
デフォルトでは画面のスライド(画面左から右フリック)で Back になります。
またサンプルに組み込まれている DismissOverlayView は画面長押しを判定しています。
ゲーム操作と相性が悪いので Activity の dispatchTouchEvent() で使い分けています。
画面全体を手で覆う操作 (ロック画面への復帰) はそのまま使えます。
● Handheld 側アプリの追加
アプリケーションパッケージは単体では配布できず Handheld 側のアプリが必要。
Android Studio の New Module... であとから追加することが可能。
内容は通常の Android アプリと同じです。
Wearable 側のアプリ名を wapp , Handheld 側のアプリを happ とすると、
下記のファイルを編集します。
happ/build.gradle
すでに dependencies block があるのでその最後に追加。
↓ settings.gradle にも追加
Handheld 側 happ を Release build すると assets に wapp の apk が入ります。
関連エントリ
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android LiveView MN800 プラグインの作り方

・Google Play ChiRaKS Android Wear
・解説ページ
● Install 方法
連動してる Smartphone/Tablet (Handheld 端末) の方から Google Play にアクセス
してインストールします。
Android Wear (Wearable 端末) にも自動的に転送&インストールが行われます。
● 起動手順
1. 画面を2回タップして下からシステムメニューを引き上げ
2. 一番下の 「開始...」 からアイコンを選択
● Uninstall 方法
Smartphone/Tablet (Handheld) 側でアンインストールすると
Android Wear (Wearable 端末) からも削除されます。
● アプリの中断&終了手順
画面全体を手で覆うと時計画面 (ロック画面) に戻ります。
完全に終了させるには Menu から "終了" を選んでください。
● Android Studio
SDK の Android Wear サンプルは全て Android Studio 向けです。
Eclipse+ADT ではプロジェクトの新規作成に失敗したので
サンプルを参考に Android Studio で作成しています。
もともと ZWatch で動いていたので修正は Project まわりと UI のみ。
● NDK
NDK のサンプルも Android Studio に変換できますがビルド環境も統合されます。
src 以下にあるファイルはすべてビルド対象となるようです。
C/C++ は独自の Build ツールを使用していたので分離しました。
最終的に build/intermediates/ndk/debug, release 以下にファイルが
存在していればパッケージに含まれるようです。
ただし Clean で消えます。
● 実行&デバッグ
デバッグは直接 Android Wear (Wearable 端末) 上で行えます。
adb で apk の install も可能。
アプリ管理メニューがないので削除は adb uninstall が必要です。
Round, Square 2種類あるので画面に合わせたレウアウトの調整が必要です。
サンプルにもある WatchViewStub では、それぞれ個別に layout ファイルを
持つことができます。
デフォルトでは画面のスライド(画面左から右フリック)で Back になります。
またサンプルに組み込まれている DismissOverlayView は画面長押しを判定しています。
ゲーム操作と相性が悪いので Activity の dispatchTouchEvent() で使い分けています。
画面全体を手で覆う操作 (ロック画面への復帰) はそのまま使えます。
● Handheld 側アプリの追加
アプリケーションパッケージは単体では配布できず Handheld 側のアプリが必要。
Android Studio の New Module... であとから追加することが可能。
内容は通常の Android アプリと同じです。
Wearable 側のアプリ名を wapp , Handheld 側のアプリを happ とすると、
下記のファイルを編集します。
happ/build.gradle
すでに dependencies block があるのでその最後に追加。
dependencies { ~ wearApp project( ':wapp' ) }
↓ settings.gradle にも追加
include ':happ', ':wapp'
Handheld 側 happ を Release build すると assets に wapp の apk が入ります。
関連エントリ
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android LiveView MN800 プラグインの作り方
2014/07/12
OpenGL ES 3.1 対応 GPU
Khronos より 2014/07/11 現在、OpenGL ES 3.1 に対応している GPU。
OpenGL ES 3.0 世代の GPU もそのまま 3.1 にも対応しているので、
今後増えていくと思われます。
Intel HD Graphics (BayTrail/IvyBridge 世代) は OpenGL 4.0/4.1 止まりで
ComputeShader に対応していませんでした。
OpenGL から ComputeShader を使えるようになるのは ES 3.1 の方が先かもしれません。
実際に利用するには OS/SDK/Driver 等の対応が必要になります。
Android L 以降で対応予定。
iOS の場合 ES 3.1 ではなく PowerVR G6430 向けに Metal が発表されています。
関連エントリ
・CPU 負荷が低い 新しい 3D API
・OpenGL ES 3.1 は OpenGL 4.x 相当で ComputeShader に対応
Intel HD Graphics Atom Z3700/N/J ARM Mali-T760 ARM Mali-T628 ARM Mali-T604 PowerVR Rogue G6230/6200 PowerVR Rogue G6430/6400 Vivante GC7000 NVIDIA Tegra K1 NVIDIA GeForce 600/700/800M NVIDIA Quadro K
OpenGL ES 3.0 世代の GPU もそのまま 3.1 にも対応しているので、
今後増えていくと思われます。
Intel HD Graphics (BayTrail/IvyBridge 世代) は OpenGL 4.0/4.1 止まりで
ComputeShader に対応していませんでした。
OpenGL から ComputeShader を使えるようになるのは ES 3.1 の方が先かもしれません。
実際に利用するには OS/SDK/Driver 等の対応が必要になります。
Android L 以降で対応予定。
iOS の場合 ES 3.1 ではなく PowerVR G6430 向けに Metal が発表されています。
関連エントリ
・CPU 負荷が低い 新しい 3D API
・OpenGL ES 3.1 は OpenGL 4.x 相当で ComputeShader に対応
2014/07/11
Android Wear LG G Watch (LG-W100) の速度(実測)
G Watch のスペックは Cortex-A7 1.2GHz Quad core ですが、
アプリケーションの実際のパフォーマンスは予想を大きく下回るものでした。
今回の計測結果から逆算すると 700MHz の Single core 相当となります。
VFP Benchmark による計測結果
同じ Cortex-A7 1.2GHz Quad core (MT8125) の Tablet との比較は下記の通り。
MT8125 の計測結果は 1.2GHz ほぼ想定通りの速度が出ています。
1.2(GHz) * 4(core) / 0.7(GHz) = 6.9 倍
以下詳細データ
Cortex-A7 は NEON も 32bit 単位なので VFP と同じ速度になります。
(Cortex-A7 の浮動小数点演算速度)
Krait ではなく Cortex-A7 が使われていることが結果からもわかります。
やはり cpu0 だけが 787MHz で動いているようです。(cpu1-3 は idle 状態)
ポリゴンの表示は可能です。

関連エントリ
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
・MediaTek MT8125/8389 Cortex-A7 の浮動小数点演算速度
アプリケーションの実際のパフォーマンスは予想を大きく下回るものでした。
今回の計測結果から逆算すると 700MHz の Single core 相当となります。
VFP Benchmark による計測結果
SingleThread SP 最大 : 1.360 GFLOPS MultiThread SP 最大 : 1.360 GFLOPS
同じ Cortex-A7 1.2GHz Quad core (MT8125) の Tablet との比較は下記の通り。
単精度 Float LG G Watch Yoga Tablet MSM8226 MT8125 ---------------------------------------------------------- Single Thread 1.360 GFLOPS 2.374 GFLOPS (x1.7) Multi Thread 1.360 GFLOPS 9.474 GFLOPS (x7.0) ・GFLOPS の数値が大きいほうが高速
MT8125 の計測結果は 1.2GHz ほぼ想定通りの速度が出ています。
1.2(GHz) * 4(core) / 0.7(GHz) = 6.9 倍
以下詳細データ
SingleSP Single-Thread 命令 時間(sec) MFLOPS --------------------------------------------- VFP mul 6.331 631.8 VFP add 6.011 665.5 VFP fmacs 6.062 1319.7 VFP vfma.f32 s 6.032 1326.4 NEONx2 vmla.f32 d 11.833 1352.1 NEONx2 vfma.f32 d 11.859 1349.2 NEONx4 vmla.f32 q 23.621 1354.8 NEONx4 vfma.f32 q 23.542 1359.3 ・MFLOPS の数値が大きいほうが高速
SingleSP Multi-Thread (4 Thread) 命令 時間(sec) MFLOPS --------------------------------------------- VFP mul 24.405 655.6 VFP add 24.063 664.9 VFP fmacs 24.109 1327.3 VFP vfma.f32 s 24.049 1330.6 NEONx2 vmla.f32 d 47.458 1348.6 NEONx2 vfma.f32 d 47.653 1343.0 NEONx4 vmla.f32 q 94.490 1354.6 NEONx4 vfma.f32 q 98.163 1304.0 ・MFLOPS の数値が大きいほうが高速
Cortex-A7 は NEON も 32bit 単位なので VFP と同じ速度になります。
(Cortex-A7 の浮動小数点演算速度)
Krait ではなく Cortex-A7 が使われていることが結果からもわかります。
やはり cpu0 だけが 787MHz で動いているようです。(cpu1-3 は idle 状態)
cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state 300000 0 384000 4 600000 73 787200 8799475 998400 174 1094400 109 1190400 2280
ポリゴンの表示は可能です。

関連エントリ
・Android Wear LG G Watch (LG-W100)
・Android Wear LG G Watch の GPU
・MediaTek MT8125/8389 Cortex-A7 の浮動小数点演算速度
2014/07/09
Android Wear LG G Watch (LG-W100)
Android Wear の利用には連携を行う Android 端末が別途必要です。
通信や設定管理など多くの部分を連携する Android 端末に依存しています。
しかしながら Android Wear のハードウエアは単独で動作する Android 端末と
違いはなく、OS も最新の Android 4.4W (API Level20) 。
専用アプリケーションのインストールも可能となっています。
LiveView 系 SmartWatch がホスト端末のリモートモニタとして機能していたのに対し、
Android Wear の場合は主従が逆です。
通信や操作上の都合など、足りないものを補うために連携した端末を利用している形です。
スマートウオッチには大きく分けて、単独で使用できるものと
自分ではアプリが動かないクライアントタイプの 2種類あります。
1. クライアントタイプ (ホスト端末が必要)
・通知だけ受けるタイプ
・アプリケーションはホスト側で動き、入出力だけ行うもの(SONY LiveView)
2. 単独で動作するタイプ
・機能固定 (スポーツなど特定用途向け)
・独立したコンピュータとして機能するもの
Android Wear は独立したコンピュータとして機能しますが、
連携した Android 端末が近くになければ活用できない仕組みになっています。
通知などのネット接続はもちろん、Android Wear の有効な入力手段は音声なので
ボイスコマンドやテキスト入力にもインターネットが必要になります。
逆に歩数計 (Fit) のように、ネット接続がなくても特に困らないアプリもあります。
● SmartQ Z Watch との比較

↑左が LG G Watch LG-W100, 右が SmartQ Z Watch
見た目はほぼ同じ大きさで、数値上は G Watch の方が少し小さいようです。
実際に手にすると G Watch の方が表面積が大きくだいぶ薄く感じます。
・Android Wear LG G Watch の GPU
・SmartQ Z Watch Specifications
2014/07/11修正: G Watch は 4core のうち 1core しか使われてないものと考えられます(詳細はこちら)
◎時計として
Z Watch は腕の傾きで画面を表示させるオプションがありますが、
何かと誤動作が多く不安定です。
傾き以外のスリープ解除はボタン操作なので、
腕時計としては時刻を確認しづらいのが難点。
LG G Watch は常に画面を表示させておくことが可能です。
一定時間経つと背景が暗転して輝度が落ちますが時刻表示は残ります。
時計として活用するには十分でしょう。
バッテリーの持ちが心配なら完全に画面 OFF にすることもできます。
この場合も画面に触れるだけですぐ点灯するので面倒はありません。
Z Watch 同様に腕の傾きでも復帰します。
腕につけていると知らないうちに画面が光ってる場合あり。
待機状態への移行 (画面全体を手で覆う操作) は、輝度センサーではなく
画面の広範囲のタッチで判定しているようです。
3本指のタッチでも認識します。
◎ストレージ
Z Watch は USB 接続 (MTP) で直接データを送ることが可能。
音楽データを転送すればプレイヤーとして利用できます。
G Watch の内部ストレージには直接アクセスすることができません。
端末情報にストレージや空き容量の項目が無いのでもともと想定していないようです。
adb 接続では普通にアクセス可能で、/sdcard/Music や DCIM もありました。
3GB 近く空いていることを確認。
◎アプリケーション
Z Watch は通常の Android をスマートウオッチ向けにカスタマイズしてあります。
非常に小さい Android Tablet のようなもの。
普通のアプリも動きますが、画面が小さいため使い物になるかどうかはアプリ次第です。
特に操作面で難があります。
G Watch は Android 端末側でインストールすると自動的に同期が行われます。
専用の管理画面はないので、正しくインストールされているのかどうか
少々不安になることがあります。
デバッグ実行できるので adb を使った直接 install も可能。
一見そのままアプリが動く Z Watch の方が便利そうに見えますが、
使ってみると操作上の問題が非常に大きいことがわかります。
小さい画面にレイアウトを合わせるだけではだめで、細かい操作や文字入力が苦手です。
Android Wear はこれらの問題を解決することに重点が置かれているようです。
極力操作しなくて済むよう徹底されており、文字入力は音声を用い
アプリの導入管理や設定も連携した Android 端末側で行います。
本体の操作は画面のスライドなど非常に簡単なアクションのみ。
その代わり専用に作られたアプリケーションが必要です。
当初は数が少なくても、使えるものだけ揃っていることになります。
快適さや実用度は大きく上回っていると言えます。
●トラブル等
Android 4.3 以降の条件は結構敷居が高く、日本だと半年前に発売された
スマートフォンでも使えない可能性があります。(半年前)
手持ちのスマートフォン端末にも無かったので Nexus 7 とペアリングしました。
最初アプリケーションの導入ができず、G Watch に反映されない問題ではまりました。
Android Wear アプリの再インストールや、LG G Watch の初期化(リセット)
が有効でした。
試してから気がついたのですが、メニューにある「端末をリセット」は
再起動ではなく端末の初期化(消去)のことでした。
●最後に
4 core CPU に 3D GPU 搭載と、予想以上に性能が良かったので今後登場するアプリや
さまざまな活用方法に期待できます。
Chromecast よりも総合スペックは高いです。
普段腕時計している人にとっては、時計として使える点も重要でしょう。
2014/07/11訂正: 実測結果より、cpu0 しか使われておらず実質 single core 700MHz 相当でした(詳細はこちら)
関連エントリ
・Android Wear LG G Watch の GPU
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch スマートウオッチのスペック比較表
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android SmartWatch SmartQ ZWatch (2)
・Android 4.1 SmartWatch SmartQ Z Watch
・Android LiveView MN800 プラグインの作り方
・LiveView MN800 Android のマイクロディスプレイ
通信や設定管理など多くの部分を連携する Android 端末に依存しています。
しかしながら Android Wear のハードウエアは単独で動作する Android 端末と
違いはなく、OS も最新の Android 4.4W (API Level20) 。
専用アプリケーションのインストールも可能となっています。
LiveView 系 SmartWatch がホスト端末のリモートモニタとして機能していたのに対し、
Android Wear の場合は主従が逆です。
通信や操作上の都合など、足りないものを補うために連携した端末を利用している形です。
スマートウオッチには大きく分けて、単独で使用できるものと
自分ではアプリが動かないクライアントタイプの 2種類あります。
1. クライアントタイプ (ホスト端末が必要)
・通知だけ受けるタイプ
・アプリケーションはホスト側で動き、入出力だけ行うもの(SONY LiveView)
2. 単独で動作するタイプ
・機能固定 (スポーツなど特定用途向け)
・独立したコンピュータとして機能するもの
Android Wear は独立したコンピュータとして機能しますが、
連携した Android 端末が近くになければ活用できない仕組みになっています。
通知などのネット接続はもちろん、Android Wear の有効な入力手段は音声なので
ボイスコマンドやテキスト入力にもインターネットが必要になります。
逆に歩数計 (Fit) のように、ネット接続がなくても特に困らないアプリもあります。
● SmartQ Z Watch との比較

↑左が LG G Watch LG-W100, 右が SmartQ Z Watch
見た目はほぼ同じ大きさで、数値上は G Watch の方が少し小さいようです。
実際に手にすると G Watch の方が表面積が大きくだいぶ薄く感じます。
スペック LG G Watch LG-W100 SmartQ ZWatch ------------------------------------------------------------- SoC Snapdragon 400 MSM8226 JZ4775 CPU Cortex-A7 XBurst ISA ARMv7A MIPS32-R2 Clock 1.2GHz 1.0GHz Core4 core1 core FPU VFPv4+NEON FPU 3D GPU Adreno 305 -- OpenGL ES 3.0 -- OS Android 4.4W Android 4.4 (GApps無し) RAM 512MB 512MB DDR ROM 4GB 4GB Display 280x280 (1.65inch) 240x240 (1.54inch) Bluetooth 4.0 4.0 Wi-Fi -- b/g/n Size 46.5x37.9x9.95 49.9x38.5x12.2 Weight 63g 42.5g Battery 400mAh 300mAh Application Wear専用 Android汎用 Sensor Acc,Gyro,Compass,Mic Acc,Mic Button -- Power,Back Connector 充電(USB) 3.5 Headphone(USB/充電兼)
・Android Wear LG G Watch の GPU
・SmartQ Z Watch Specifications
2014/07/11修正: G Watch は 4core のうち 1core しか使われてないものと考えられます(詳細はこちら)
◎時計として
Z Watch は腕の傾きで画面を表示させるオプションがありますが、
何かと誤動作が多く不安定です。
傾き以外のスリープ解除はボタン操作なので、
腕時計としては時刻を確認しづらいのが難点。
LG G Watch は常に画面を表示させておくことが可能です。
一定時間経つと背景が暗転して輝度が落ちますが時刻表示は残ります。
時計として活用するには十分でしょう。
バッテリーの持ちが心配なら完全に画面 OFF にすることもできます。
この場合も画面に触れるだけですぐ点灯するので面倒はありません。
Z Watch 同様に腕の傾きでも復帰します。
腕につけていると知らないうちに画面が光ってる場合あり。
待機状態への移行 (画面全体を手で覆う操作) は、輝度センサーではなく
画面の広範囲のタッチで判定しているようです。
3本指のタッチでも認識します。
◎ストレージ
Z Watch は USB 接続 (MTP) で直接データを送ることが可能。
音楽データを転送すればプレイヤーとして利用できます。
G Watch の内部ストレージには直接アクセスすることができません。
端末情報にストレージや空き容量の項目が無いのでもともと想定していないようです。
adb 接続では普通にアクセス可能で、/sdcard/Music や DCIM もありました。
3GB 近く空いていることを確認。
◎アプリケーション
Z Watch は通常の Android をスマートウオッチ向けにカスタマイズしてあります。
非常に小さい Android Tablet のようなもの。
普通のアプリも動きますが、画面が小さいため使い物になるかどうかはアプリ次第です。
特に操作面で難があります。
G Watch は Android 端末側でインストールすると自動的に同期が行われます。
専用の管理画面はないので、正しくインストールされているのかどうか
少々不安になることがあります。
デバッグ実行できるので adb を使った直接 install も可能。
一見そのままアプリが動く Z Watch の方が便利そうに見えますが、
使ってみると操作上の問題が非常に大きいことがわかります。
小さい画面にレイアウトを合わせるだけではだめで、細かい操作や文字入力が苦手です。
Android Wear はこれらの問題を解決することに重点が置かれているようです。
極力操作しなくて済むよう徹底されており、文字入力は音声を用い
アプリの導入管理や設定も連携した Android 端末側で行います。
本体の操作は画面のスライドなど非常に簡単なアクションのみ。
その代わり専用に作られたアプリケーションが必要です。
当初は数が少なくても、使えるものだけ揃っていることになります。
快適さや実用度は大きく上回っていると言えます。
●トラブル等
Android 4.3 以降の条件は結構敷居が高く、日本だと半年前に発売された
スマートフォンでも使えない可能性があります。(半年前)
手持ちのスマートフォン端末にも無かったので Nexus 7 とペアリングしました。
最初アプリケーションの導入ができず、G Watch に反映されない問題ではまりました。
Android Wear アプリの再インストールや、LG G Watch の初期化(リセット)
が有効でした。
試してから気がついたのですが、メニューにある「端末をリセット」は
再起動ではなく端末の初期化(消去)のことでした。
●最後に
4 core CPU に 3D GPU 搭載と、予想以上に性能が良かったので今後登場するアプリや
さまざまな活用方法に期待できます。
普段腕時計している人にとっては、時計として使える点も重要でしょう。
2014/07/11訂正: 実測結果より、cpu0 しか使われておらず実質 single core 700MHz 相当でした(詳細はこちら)
関連エントリ
・Android Wear LG G Watch の GPU
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch スマートウオッチのスペック比較表
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android SmartWatch SmartQ ZWatch (2)
・Android 4.1 SmartWatch SmartQ Z Watch
・Android LiveView MN800 プラグインの作り方
・LiveView MN800 Android のマイクロディスプレイ
2014/07/08
Android Wear LG G Watch の GPU (スペック)
LG G Watch を入手したので CPU/GPU を調べてみました。
プロセッサは Snapdragon 400 MSM8226、1.2GHz で 4 core あります。
GPU は Adreno 305。
Low End ですが 300番台なので OpenGL ES 3.0 に対応しています。
SmartQ ZWatch は Single Core かつ 3D GPU も無かったので、
比較すると LG G Watch がかなり高性能に見えます。
RAM 容量以外はおそらく低価格帯のスマートフォンと同等でしょう。
2014/07/11修正 (実測結果)
・Smart Watch スペック一覧
その代わり Z Watch のような Wi-Fi やヘッドホン端子は無く、単独での利用は考えられていません。
通信は Bluetooth だけ。ペアリングした親機 (Android 端末) が必要です。
Android Wear では adb も親機を介した bluetooth 経由で接続できるようになっています。
付属の充電クレードルを使えば、今までどおりの USB 接続もできるようです。
下記のページを更新しました
・CPU/GPU OpenGL ES Extension (Mobile GPU)
・SmartWatch スペック一覧
2014/07/11訂正: 実測結果より cpu0 しか使われておらず実質 single core 700MHz 相当でした(詳細はこちら)
関連エントリ
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch スマートウオッチのスペック比較表
・Android SmartWatch SmartQ ZWatch (4) アプリの管理
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android SmartWatch SmartQ ZWatch (2)
・Android 4.1 SmartWatch SmartQ Z Watch
プロセッサは Snapdragon 400 MSM8226、1.2GHz で 4 core あります。
GPU は Adreno 305。
Low End ですが 300番台なので OpenGL ES 3.0 に対応しています。
SmartQ ZWatch は Single Core かつ 3D GPU も無かったので、
比較すると LG G Watch がかなり高性能に見えます。
2014/07/11修正 (実測結果)
・Smart Watch スペック一覧
その代わり Z Watch のような Wi-Fi やヘッドホン端子は無く、単独での利用は考えられていません。
通信は Bluetooth だけ。ペアリングした親機 (Android 端末) が必要です。
Android Wear では adb も親機を介した bluetooth 経由で接続できるようになっています。
付属の充電クレードルを使えば、今までどおりの USB 接続もできるようです。
LG G Watch Android 4.4W Qualcomm Snapdragon 400 MSM8226 Cortex-A7 1.2GHz Quad core, Adreno 305 RAM 512MB ------------------- CPU ------------------- processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 3 processor : 1 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 3 processor : 2 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 3 processor : 3 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 38.40 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 3 Hardware : Qualcomm MSM 8226 DORY (Flattened Device Tree) Revision : 0007 Serial : 0000000000000000 ------------------- GPU ------------------- GL_VERSION: OpenGL ES 3.0 V@84.0 AU@ (CL@) GL_RENDERER: Adreno (TM) 305 GL_VENDOR: Qualcomm GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00 Extension: GL_AMD_compressed_ATC_texture GL_AMD_performance_monitor GL_AMD_program_binary_Z400 GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_robustness GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_NV_fence GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_depth24 GL_OES_EGL_image GL_OES_EGL_sync GL_OES_EGL_image_external GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_depth_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_vertex_type_10_10_10_2 GL_OES_vertex_array_object GL_QCOM_alpha_test GL_QCOM_binning_control GL_QCOM_driver_control GL_QCOM_perfmon_global_mode GL_QCOM_extended_get GL_QCOM_extended_get2 GL_QCOM_tiled_rendering GL_QCOM_writeonly_rendering GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_filter_anisotropic GL_EXT_multisampled_render_to_texture GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_disjoint_timer_query
下記のページを更新しました
・CPU/GPU OpenGL ES Extension (Mobile GPU)
・SmartWatch スペック一覧
2014/07/11訂正: 実測結果より cpu0 しか使われておらず実質 single core 700MHz 相当でした(詳細はこちら)
関連エントリ
・Android SmartWatch ZWatch で 3Dゲーム (ChiRaKS)
・Android SmartWatch スマートウオッチのスペック比較表
・Android SmartWatch SmartQ ZWatch (4) アプリの管理
・Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
・Android SmartWatch SmartQ ZWatch (2)
・Android 4.1 SmartWatch SmartQ Z Watch