2014年1月29日水曜日

Unityで リモートデバッグ for Kindle Fire HD8.9

一般的なAndroid機だと GooglePlayから「Unity Remote」 ダウンロード&インストールらしい。
しかしKindleは通常GooglePlayにアクセスできない(できるようにするとアマゾンの保証外になる
Amazonのアプリストアには当然無いデス。

■前提環境

  • Android SDK,、Unityがインストールされている。
  • UnityからPlayボタンでコンパイル&Android機へ読込&実行できる環境ができている。
  • ADB環境がPC、Android共にできている(できていないと実機へ読込できないと思う)。
  • つまりは基本的にUnityでAndroidアプリが開発できる環境がある。


■ダウンロード

GooglePlayにはつなげないということで直接 apkファイルをダウンロードすれば良い。

http://files.unity3d.com/ricardo/AndroidRemote.apk



■Kindle FireHD8.9にインストール

Kindle上部スワイプ>その他>端末>アプリケーションのインストールを許可>オン。

これをUSB経由でKindleに放り込み&ES3等のファイラーからインストール。
※ES3はアマゾンアプリストアにあるファイラーのアプリ。無いといろいろ不便。
※インストール後は、インストール許可をオフしても良い。


■リモートデバッグ

 Kindle本体に「Remote」というUnityマークのアプリが追加されていることを確認。タップして起動すると待機画面になる。
PC上でUnity起動。何かAndroid用プロジェクトをPlayボタンでRunさせる。
PC画面が通常通り実行画面になる。この時Kindleの画面も自動的に同じ画面がでる。


■活用について少し補足

まずちょっと注意点というか認識の違いがあった。
私的には一般的に「リモートデバッグ」だとこの場合は、
  • 主はターゲット機=Kindle
  • 副がPC=デバッガ
というのがリモートデバッグ的なもので、

  • Kindle(Android機)上でターゲットコードはRunningする。
  • それをPC側で覗きみたり、ログをモニタできる。

目的のオブジェクトコードは実機で動作しているという前提。

しかしこのアプリ「Remote」は様相が異なる。
どうもこれ、UI部分だけをRemoteアプリがフックしてUSB経由でPC側に投げている気がする。
つまりコード自体はPC上で動いている。

なぜそう思ったかというと

  • 実機なら30fpsくらいのアプリが60fps以上で常に動いてる。 
    CPUパワーありすぎ。
  • Kindle側の画面のグラフィックが荒い。
    多分Kindle上でレンダリングしていない。PC側のレンダリング結果の画面イメージを転送して表示してる感じ。
ということは、Android実機上に依存するAPI/ライブラリやその他情報にはアクセスできないような気がするのだけどどうなのか。
※追記:↑ やっぱりできないぽい。Activityへのアクセスがなんかうまくいかない。さすがにそこまでは贅沢か。


便利な点もあるがちょっと微妙な点もある。
  • Kindle(Android)側でタッチパネルをタッチするとPC側画面が反応する。加速度センサも有効。
    これは便利。
  • デバイス筐体基準の論理画面回転位置はPCのものを返すようだ。
    コードはPC上で動いているので、そのAPIはどうやらPC上での状態を返す。
    これで何が起きるかというと、Kindle側で90度回転したつもりでもPC上では90度回転しないので整合しない。この手のデバッグは無理。
    ※追記:PC画面に対して実機はなぜか180度回転して表示される。
などなど。

かなり限定的ですが実機タッチで操作できるのはちょっと便利。開発環境的に入れておいてもいいかもです。










0 件のコメント:

コメントを投稿