AndroidのScreenCaptureを取るまでがとっても面倒

Androidの画面キャプチャを取るまでが、とっても面倒だった、というお話。
インストール先のPCは32bit Windowsなので、下記のページから「Recommended(おすすめ)」となっているWindows用のインストーラー(exe形式)をダウンロードし、実行した。
すると、2つめの画面でJava SE(Standard Edition) SDKがないというメッセージが表示され、それ以上インストールが進まない。
そこでその画面にあるOracleサイトへのボタンをクリックすると、Webブラウザが立ち上がってOracleのJava Standard Edition SDKのダウンロード画面が開く。
そのページを少しスクロールすると、Java Standard Editionの「JDKダウンロード」という、赤字に白文字のボタンがあるので、これをクリック。(これを書いている時点でのJDKのバージョンは6)
すると、英語のダウンロード・ウィザード画面に遷移するので、まず「Platform」欄で「Windows」を選択し、「I agree to the Java SE Development Kit 6u24 License Agreement」にチェックマークを入れ、「Continue」ボタンをクリック。
画面が切り替わり、「jdk-6u24-windows-i586.exe」というファイルへのリンクがあるので、これをクリックしてダウンロード。ダウンロード後のファイルを実行してJDKをインストールする。
ここまでは、いちおう順調。
JDKのインストールが完了したので、先程のAndroid SDKのインストーラーをダブルクリックして起動する。
ところが、やっぱり2つめの画面でJava SE(Standard Edition) SDKがないというメッセージが表示され、インストールを進められない。
過去にJDKをインストールした経験から、たぶんJDKのコンパイラのあるbinフォルダにWindowsのPATHが通っていないのではと思い、環境変数を確認してみる。
すると、PATHという環境変数にちゃんとjavac.exeのあるbinフォルダへのパスが設定されているではないか。しかし、よく見ると設定されているパスが、一つマイナーバージョンの古いパスになっている。
どうやら、過去に別バージョンのJDKをインストールしたマシンの場合、旧バージョンのbinフォルダへのパスが残ったままとなり、新バージョンのパスが追加されないことが分かった。
そこで、環境変数PATHに設定されているbinフォルダを、いまインストールしたJDKのバージョンに手で書き換えると、無事、コマンドラインプロンプトで、「javac」と入力するだけでJavaコンパイラが実行できた。
これで大丈夫だろうということで、もう一度Android SDKのインストーラーをダブルクリックして起動するが、やっぱり2つめの画面でJava SE SDKがないというメッセージが表示され、インストールが進まない。
なので、インストーラでのインストールは断念して、Android SDKのWindows用インストーラ(exe形式)ではなく、zip形式のファイルをダウンロードし、C:Program Files直下に展開した。
たぶん、C:Program Filesandroid-sdk-windows内のSDK Manager.exeを起動すればいいのだろうと思って、起動すると、追加モジュールをインストールするように、という画面が出てきた。
それを受け入れると、Android開発用の追加モジュールやヘルプドキュメントのダウンロードが始まる。これがかなり時間がかかる。
ようやく終わったところで、スクリーンショットをとるための「ddms.bat」が、「C:Program Filesandroid-sdk-windowstools」配下に見つかる。
いよいよAndroid端末側で、USB接続の設定のデバッグモードをONにし、PCに接続すると、「新しいハードウェアの検索ウィザード」が始まってしまった。
要するに、Android端末用のドライバがまだインストールされていないのだ。(ちなみにここではWindows XP SP3のPCを前提としている)
僕の手持ちのAndroid端末はHTC Desire IIだが、HTC Syncという付属のソフトウェアをPCにインストールしていない状態だと、Android SDKで端末を認識させるためのドライバがない状態らしい。
そこでウェブを検索してみたところ、非常にトリッキーなことをやらなければならないことが分かった。
「C:Program Filesandroid-sdk-windowsextrasgoogleusb_driver」内にある「android_winusb.inf」というファイルの、[Google.NTx86]セクションに、以下の3行を追加しなければいけないらしいのだ。
;HTC Desire
%SingleAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87
%CompositeAdbInterface% = USB_Install, USBVID_0BB4&PID_0C87&MI_01
取りあえずこの3行を追加してから、改めてAndroid端末をPCに接続する。
「新しいハードウェアの検索ウィザード」が開始されたら、「はい、今すぐおよびデバイスの接続時には毎回接続します」を選択し、「次へ(N)」をクリック。
「一覧または特定の場所からインストールする」を選択し、「次へ(N)」をクリック。
「次の場所で最適のドライバを検索する」を選択し、「次の場所を含める」にチェックマークが入った状態で「参照(R)」ボタンをクリック。先ほど書き換えたINFファイルのある「C:Program Filesandroid-sdk-windowsextrasgoogleusb_driver」を選択し、「次へ(N)」をクリック。
するとHTC Desire II用のドライバのインストールが無事に始まる。このドライバのインストールはOSの再起動は必要ない。
インストールが終わると、Android端末がAndroid SDKからアクセス可能な状態で接続される。

ここまで来てやっと、「C:Program Filesandroid-sdk-windowstools」配下の「ddms.bat」を起動する。
すると、CUIの黒いウィンドウとともに、「Dalvik Debug Monitor」というウィンドウが立ち上がり、接続中の端末がデバイスとして認識され、黒いウィンドウにAndroid端末の動作ログがずらずらと書き出され、スクロールしていく。
ここで、Dalvik Debug Monitorのメニューにある「Device」⇒「Screen capture」をクリックすると、画面キャプチャを表示するためのウィンドウが立ち上がある。
あとはAndroid端末側でキャプチャを取りたい画面を表示させた状態で、画面キャプチャをとるためのウィンドウの左上「Refresh」ボタンをクリックしてから、右上「Copy」ボタンをクリックする。
そして、Windowsの「ペイント」なり、Excelなりに貼りつけると、画面キャプチャを画像ファイルとして保存できる。
いやいや、たかが画面キャプチャを取るだけのために、ここまで時間をかけなければいけない理由がよく分からない。
まあでもAndroid端末には、それを上回るだけの利便性と将来性があるので、良しとしよう。ははは。