おいらはAndroidあぷぷを運営している事もあって、Android系イベントなどでは「Androidっぽい」アプリ紹介をすることがあるのですが、やっぱりこういうのって、静止画や言葉ではなく、実際に使って動いている所を見てみないと、腑に落ちなかったり、なかなか凄さがわからなかったりするんじゃないかなと思っています。
やっぱり、動画を含む、動くものが伝える事ができる情報量って、凄いと思うんです。
今までの発表では、PCをプロジェクターに繋いでエミュレータで動いている所を見せるか、実機でしか動かないようなものであれば、SDKに添付されているスクリーンショット取得ツール(後述)を他の人に連続取得(ポタン連打)してもらって、そのパラパラマンガ風のスクリーンショットをプロジェクター経由で見せた事がありました。それなりに理解できるようで好評でしたが、やはり人手が必要なのは痛いですね。パラパラマンガといいつつ、更新頻度が低いので動きがわかりづらいし。
Androidの特徴は、開発ツールを含むほぼすべてがオープンソースとして提供されている点があげられますが、上記スクリーンショットを取得できるツールであるddmsというJavaの実行ファイルも、同様にオープンソースで提供されています。
仕組みとしては、PCとAndroidをUSBケーブルで繋ぎ、ddms側から任意のタイミングでスクリーンキャプチャボタンを押すと、Android SDKとAndroid内部のデバック用機能(Android Debug Bridge:adb)が呼び出され、そのときAndroidのスクリーンに映っていたものをpngファイルとしてPC側に送ってくれるような実装がされているようです。
オープンソースで提供されているものなので、該当部分のソースを抜いてきて、スクリーンショットを連続取得するように作り替えれば、PC上でAndroid実機の画面がアニメーションしているように見えるでしょうから、これでプレゼンや動画撮影できるのになぁ、と思っていたら、実際に作って公開されて方がいらっしゃったので、今回はそちらの紹介をしてみたいと思います。(と、ここまで長かったですね)
実際には2つのソフトが公開されているので、両方取り上げてみます。
Android Screen Monitor
一つ目は、Windows向けのAndroid Screen Monitor - adakodaです。
このソフトは、逆引きAndroid入門 を運営されているadakodaさんが開発・公開されているもので、Creative Commons下で利用できるものです。
こちらはWindows用の実行ファイルとして実装されており、上記ddmsのライセンス(apache license)からの干渉も無いように見えるで、ソケット経由でデバック機能を呼び出しているような実装っぽいです。(未確認)
おそらく、Android Screen Monitor(on Windows) <-> SDK添付のadb(on Java with Windows) <-USB-> Android端末のような形で動いているのかなと。(未確認)
実行には、Andorid SDK 1.5 r2以降と、(あたりまえですが)Android端末本体が必要です。SDKのインスートルはZipファイルを展開してJavaやSDK添付ツールへのパスを通すだけなので、比較的楽に使えるのではないでしょうか。
公式ページは英語ですが、書いてある事は簡単なので、試してみてはいかがでしょう。
Androcast
もう一つは、Androcastというソフトです。
Android Screen Monitorと比べると、仕組みも機能もほぼ同じなのですが、こちらはJavaで動いているので、お使いのPCがWindowsでは無い場合でも利用できます。MacやLinux系の場合は黙ってこちらですね。
こちらは上記adbの他に、Andorid SDK 1.5 r2の中に入っているddmlib.jarというファイルも必要となるので、Apache Licenseを採用しています。
Androcast with ddmlib.jar(on Java) <-> SDK添付のadb(on Java) <-USB-> Android端末のような形でしょうか。(未確認)
実行にはJava6のランタイムが必要なので、Java6を使ってない人は入れておく必要があります。
Macな方は、MacOSX 10.5の標準がJava5なので、Java6のインストールを必要とする方が多いように思います。なお、Java6インストール後にJava Preferenceというソフトを使って、起動優先順位を変更後、再起動が必要のようです。(というか普通にアップデートかけていたらインストールはされているはずなので、Java Preferenceで切り替えるだけかも)
さて、どっちがどうよ?
仕組みや機能的にはほぼ同じなのですが、細かい事を言うと、Android Screen Monitorはウィンドウがスクリーンキャプチャ分のサイズとなっており、回転やサイズ変更はキーボードのショートカットを使うような形であるのに対し、Androcastの方はサイズ変更用のボタン類があるために、スクリーンキャプチャのサイズ以上にウィンドウを大きくする必要があります。(結構余白が大きくなってしまう)
これがどこに影響を与えるかと言えば、プレゼン時の見た目の問題もあるでしょうが、どちらかというと動画撮影の際の範囲指定方が効くかなぁと。
PCの画面上の特定エリアを動画として保存できるソフトは複数ありますが、お使いのソフトが範囲指定のためにウィンドウを指定するタイプだった場合、余白も撮影されてしまうのかなと。
まぁ、Windows以外であれば自ずと選択肢は限られますし、どちらでも性能は変わらないでしょうから、好みで良いのかも知れません。
何かのスマートフォン系イベントなどで使われるようになれば、楽しさが伝わるんじゃないかと期待しています!





