トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

Lynx/ScreenCapture

INDEX

LYNX SH-10B でスクリーンキャプチャを撮る。

スクリーンキャプチャを撮る

Android端末機のスクリーンキャプチャを採る方法としては、一般的に一番簡単なのはデバッグモードでPCとUSB接続して、Android SDK にある Dalvik Debug Monitor の ScreenCapture 機能を使う。また、他の方法で行う場合もSDKは必要となる。

また、デバッグモードで接続した場合に Android ADB Interface として認識させる(ドライバのインストールが)必要があるが、LYNX SH-10B は、SDKには含まれていないので、SH Developers Square から ADB USB ドライバを取得してそれをインストールをする必要がある。

 必要なもの

※ファイル名は、Windows環境で2010-08-22時点のバージョン。

SH-10B USBドライバ (SH-10B_driver.exe)
高速転送モードで接続した場合のCOMポートとモデムのドライバ。ケータイdaSH のサポートから USBドライバ を取得する。
ADB/Fastboot USBドライバ (usb_driver_JNDK01_r1.1.zip)
デバッグモード時の Android ADB Interface ドライバ。JN-DK01(携帯端末開発者キット)とIS01(au端末)やSH-10B(docomo端末)と共通。SH Developers Squareドライバ にある上から2番目の「2. ADB/Fastboot USBドライバ(ADB/Fastboot)」から進める。
Java Runtime Environment (jre-6u21-windows-i586.exe)
DDMなど多くがjavaなので必要になる。java.com などから。
Android SDK r06 (android-sdk_r06-windows.zip)
SDK Tools, Revision 6 以上が必要。Android DevelopersSDK から。
SHARP SDK AddOn (sharp_addon-JNDK01_r1.zip)
開発環境をJN-DK01用に拡張する。スクリーンキャプチャのみなら不要。SH Developers SquareSDK AddOn から。※Android SDK Tools, revision 6 以降の SDK Tools (adb) を利用する必要がある。

 USBドライバのインストール

高速転送モードでのUSBドライバをインストールします。

  1. ダウンロードした SH-10B_driver.exe を実行し、ドライバを展開する。
  2. 展開したディレクトリの SH10B_driver.exe を実行し、ドライバのインストールをする。
  3. SH-10B をデバッグモードは OFF にして、PCとUSB接続する。
  4. *SDカードがささっている場合は「外部メモリ転送モード」になるので「高速転送モード」に変更する。
  5. プラグアンドプレイでSH-10Bが認識され、自動的にドライバがインストールされる。

 ADB/Fastboot USBドライバのインストール

  1. ダウンロードした usb_driver_JNDK01_r1.1.zip を展開する。
  2. SH-10B のデバッグモードを ON にして再びPCとUSB接続する。
  3. 新しいハードウエアが検出され、ハードウエアの更新ウィザードが起動する。

ADB/Fastboot USBドライバがインストールされるとデバッグモードでの接続が出来るようになる。

 Android SDK の準備

※SDKとしてはまともに使わないので設定とかはパス。適当なディレクトリに展開する。

 Android Composite ADB Interface の安全な取り外し

SDKなどを利用すると adb (Android Debug Bridge) のサービスが立ち上がるが、これがディバイスをつかんでいるため「ハードウェアの取り外し」で取り外す事が出来ない。

adb kill-server

と実行することで adb を止めることができる。そのあとに安全に取り外すことが出来る。

Android SDK の Dalvik Debug Monitor

Android SDK に付属する Dalvik Debug Monitor でスクリーンキャプチャが出来る。

SH-10B をデバッグモードで接続し、%SDK_HOME%/tools/ddms.bat をダブルクリックすると Dalvik Debug Monitor が起動する。

Dalvik Debug Monitor

接続したディバイスがリストに表示されているのを確認(選択)して、メニューの「Device」-「Screen Capture」を選択すると、Device Screen Capture が表示される。

Device Screen Capture

Refresh で押したタイミングの画面内容が取り込まれる。Rotate で左回りに回転する。Save でPNG形式で保存される。Copy でクリップボードにコピーされる(多分)。Done で終了する。

 参考

Android Screen Monitor

Android Screen Monitor は、adakoda 氏による Android デバイス(エミュレータ)の画面モニタツール。

Ver.1 系は、Windows アプリケーションで Android 1.5/1.6 に対応し、Ver.2 系は、Java アプリケーションに変更され、Android 1.5/1.6/2.0 に対応する。共に Android SDK Tools が必要でパスが通っている必要がある(実際に必要なのは Tools 内の adb.exe なので Adb*.dll と3つがあればよい)。

  • Ver.1 系は、コンテキストメニューがないので、自分用にメモ。
    • 画面内をダブルクリック、CTRL+R で画面の回転
    • CTRL+2 (200%), CTRL+7 (75%), CTRL+5 (50%), CTRL+1 (100%) でサイズ変更
    • CTRL+S でPNG形式で保存

Device Screen Capture Device Screen Capture

ScreenGrab

ScreenGrab は、さきら氏によるroot権限なしで単体でスクリーンショットが撮れるアプリ。

root権限がいらない分、adb shell でサービスを起動する必要がありますが、一度サービスを起動しておけば、PCと接続していなくても端末単体で撮ることが出来ます。

端末の電源を落としてしまうと再度PCとUSB接続してサービスを起動する必要があります。また、LYNX SH-10B や IS01 では縦長画面に撮れます。

 インストール

Android Market には載っていないので、さきら氏のサイト ScreenGrab からZIPファイルをダウンロードして、展開すると“ScreenGrab.apk”と“grabfb”の2ファイルが存在する。

前者“ScreenGrab.apk”は、通常のアプリケーションファイルなので端末に転送し、サードパーティのアプリのインストールに許可しておいてインストールする。

後者“grabfb”は、Android SDK を利用してコマンドラインで転送・実行する。

 grabfb の転送・実行

デバッグモードを有効にしてUSB接続し、SDKにパスを通して、grabfb を展開したディレクトリで以下のコマンドを実行して grabfb を転送する。

D:\Android\ScreenGrab>adb push grabfb /data/local/tmp/
* daemon not running. starting it now *
* daemon started successfully *
632 KB/s (0 bytes in 20242.000s)

今度はシェルを起動して、Android 端末中で作業をする(プロンプトが変わる)。

D:\Android\ScreenGrab>adb shell
$

まずは、grabfb に実行権を付与する。

$ chmod 777 /data/local/tmp/grabfb

そして、grabfb をバックグラウンドで実行する。

$ /data/local/tmp/grabfb &
GrabFB version 1.0.20100830

framebuffer device was opend.
(widht, height) = (480, 960), bpp: 16 line_len: 960
offset: 0 0
offset (r g b) = (11 5 0), len (r, g, b) = (5 6 5)
start listening

起動できたら、Ctrl+C でシェルを抜けて、adb kill-server を実行してUSB接続を外す。

D:\Android\ScreenGrab>adb kill-server

電源を落とした場合は、再度USB接続し、adb shell で “/data/local/tmp/grabfb &”を実行する。

 スクリーンショット撮影

ScreenGrab アプリを起動して、撮影するまでのインターバルと保存形式を選択して「OK」ボタンを押す。通知バーにアイコンがあるので撮影したい場面になったら、お知らせパネルの ScreenGrab を選択すると設定時間後にスクリーンショットが撮影されSDカードに保存される。再度、お知らせパネルの ScreenGrab を選ぶと撮影された画像が中央に表示され、再び「OK」ボタンを押すと撮影待機になる。

ちなみに保存先は /sdcade/DCIM/Screen/ に YYYYMMDD-HHMISS.ext で保存される。

ScreenGrab ScreenGrab

最終更新時間:2010年11月26日 00時49分37秒 指摘や意見などあればSandBoxのBBSへ。

lynx_asm1.png lynx_asm2.png lynx_ddm.png lynx_dsc.png lynx_grabfb1.png lynx_grabfb2.png