2011年07月26日

Microbridge/PICでAndroid端末のスクリーンショットを取得するテスト

非ルートの殆どの端末では、標準では本体のみでスクリーンショットを取得する機能はありませんが、 PCと接続した場合には、Android SDKに付いているDDMSというツールを使用すればスクリーンショット を取得する事が出来ます。内部ではADBを使用しているはずです。

従って、組み込み機器から、具体的にはMicrobridge/PICでもって、このAndroidの画面を引っ張り出せ ないかなと思いまして、実験してみました。
また、取得したデータを簡易的に表示する手段として、ドットマトリクス表示器の、ノリタケ伊勢電子製の VFDパネル SCK25616L-A http://www.noritake-itron.jp/kit/sck25616l/ を接続しました。マイコンボードはPIC ADK Miniboardと同じICですが、手作り版です。

Android端末側には一切、表示制御や画面キャプチャに関連するソフトをインストールしたりはしていません。

R1205981.JPG Android端末フレームバッファ取得装置
実際にスクリーンのデータをDDMSで取得した時内部でどのようなコマンドがやりとりされているかを調査すると、 "framebuffer:."でオープンするだけのようです。もしかしたらパラメータ等あるかもしれません。後ほどADBデーモンの ソースは調査してみたいと思います。

従って、Microbridge/PICでオープンするには、
 Connection* c;
 c = ADB_addConnection("framebuffer:.",false);
とすればOKです。
Nexus Sで検証してみると、32BPPのRGBA8888っぽいデータが一気に降ってきました。
Nexus Sのスクリーンサイズで1.5MBにも及びますので正直この規模のマイコンには取り扱いにくいです。

とりあえず、マイコン側で受信の度に必要な領域の2値ビットマップ化して、VFDに反映させてみました。
表示内容は、@titoi2 さんのAndroid用青空文庫リーダーアプリ「A・文庫」です。
Android端末画面の右上のフリガナ部がVFDに取り込まれて表示されています。

R1205979.JPG
というわけで、こんな遊び方もできるかなーと。


Android NDKネイティブプログラミング―Native Development Kit
出村 成和
秀和システム
売り上げランキング: 725

Arduino Uno
Arduino Uno
posted with amazlet at 11.08.02
スイッチサイエンス
売り上げランキング: 10101
ラベル:android DDMS ADB PIC
posted by いしいっち at 20:55| Comment(2) | TrackBack(0) | Android開発関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
日本Androidの会福岡(佐賀)支部のikuyama10です。
ちょうど同じようなことを考えていて、PIC18F2550用の
Microbrige移植を検討しているところです。
神戸支部のMicrobrige/PICは公開予定だそうですが、
いつごろの予定になりますか。宜しければ移植の
参考にさせて頂きたいと思いまして。
期待しております。
Posted by ikuyama10 at 2011年08月01日 09:21
ikuyama10様

神戸支部のMLにお入りいただければ、現在事前公開中のツリーにアクセスする情報を記載させて頂きましたので、ご参照いただけるかと思います。

今朝公開したばかりなのですが、まだ正式という位置づけではなかったもので。

よろしくお願いいたします。
Posted by 石井 at 2011年08月02日 20:34
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック