Androidでrootを取らずに画面キャプチャする[androidアプリ開発]
エミュも入って開発環境も整ったところで、プログラムを走らせる前にちょっとしたTIPを。
アイフォーン(笑)で画面キャプチャするのはもともとそういう機能があるので簡単にできる。
でもAndroidでキャプチャしようとするとかなり難易度が高くなる。
マーケットにキャプチャアプリが出てたりするけど、対象機種がものすごく限られるうえに動作確認機種以外ではほぼ動作しない。
OSのrootを取るとキャプチャできるようにもなるけど、自作アプリがrootでは動いてノーマルだと動かないとかそういうめんどうなトラブルが出たりしたらマジめんどくさいのでrootは取らずにキャプチャしたい。
前回までの開発環境セットアップのときにAndroidSDKのUSBドライバをインストしているはずなので、まだ入れてない人は今すぐ入れよう。
ちなみにボクのスマホはHTCのDesireです。
実際の使用感ではDocomoのGaraxyより速くて申し分ないけどメモリ少なすぎるだろおい(´・ω・`)
HTCのwebサイトでHTC SyncというのをDLしてインストしておく。
Desireのドライバが含まれてるらしいのでこれでOK。
と思いきや、ぜんぜんうまくいかない。なにこれ。
調べてみると、ドライバを認識してない感じ。
AndroidSDKでUSBドライバの記述がどこかにあるので、これを探す。
webで調べたドキュメントだと、
C:\Program Files\android-sdk-windows\usb_driver
にあるらしい。
なかった(´・ω・`)
探す。
・・・・
C:\Program Files\android-sdk-windows\extras\google\usb_driver
というフォルダで発見。
SDKのバージョンによって違うのかな?
このフォルダに入ってる
android_winusb.inf
をエディタで開く。
メモ帳は無しな!
[Google.NTx86]
というセクションを探す。
そのすぐ下に
; HTC Desire
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87&MI_01
これをコピペ。
機種番号らしいです。
他の端末の場合、webで調べるとドキュメントが見つかるのでそれを参照。
何もかも至れり尽くせりのセルフサービスっぷり。こんなんで開発者育つのか。
次にスマホとPCをUSBでつなぐ。
新しいハードウェアの画面が出てくるので、ドライバを検索してインストを選ぶ。
たぶん見つからないので、手動でさっきの
C:\Program Files\android-sdk-windows\extras\google\usb_driver
を選ぶ。
これで認識完了。
スマホのほうでUSB接続時のデバッガモードを設定しておかないとキャプチャできないので設定する。
端末の「設定」-「アプリケーション」-「開発」を選ぶ。
「USBデバッグ」にチェックを入れる。
ついでに、一つ前のアプリケーション画面で不明なアプリでも実行できるようにしておく。
「不明な提供元」にチェック。これでマーケット以外でDLしたアプリが動くようになる。自己責任ってやつだ。大人だからな(´・ω・`)
さぁやっとキャプチャできるです。
スマホをUSBでつないだ状態で、
C:\Program Files\android-sdk-windows\tools
にある
ddms.bat
というバッチファイルを実行する。
コマンドプロンプトが出てしばらく応答がなくなるけど、数秒待つと
Dalvik Debug Monitor というアプリケーションが起動する。
こいつは実機の状態を監視するようなアプリです。
エミュレータが作成されているとリストに他にも端末が出てくるけど、実機のHTなんちゃら~を選ぶ。
そうすると下のウインドウにものすごい勢いで文字が流れる。
もしかして実機の全ステートを表示してるのか・・・・(´・ω・`)
あとは実機でキャプチャしたい画面を表示して、
DDMの「Device」-「Screen Capture」をクリック。
保存するかコピーするかの画面が出てくる。
保存するとローカルにpngで保存される。
解像度は実機に左右されるので、高解像度端末だとかなりきれいな画面が撮れる。
次回はいよいよプログラムやりたいです。
下準備で1週間かかってるってどゆこと・・・(´・ω・`)
アイフォーン(笑)で画面キャプチャするのはもともとそういう機能があるので簡単にできる。
でもAndroidでキャプチャしようとするとかなり難易度が高くなる。
マーケットにキャプチャアプリが出てたりするけど、対象機種がものすごく限られるうえに動作確認機種以外ではほぼ動作しない。
OSのrootを取るとキャプチャできるようにもなるけど、自作アプリがrootでは動いてノーマルだと動かないとかそういうめんどうなトラブルが出たりしたらマジめんどくさいのでrootは取らずにキャプチャしたい。
前回までの開発環境セットアップのときにAndroidSDKのUSBドライバをインストしているはずなので、まだ入れてない人は今すぐ入れよう。
ちなみにボクのスマホはHTCのDesireです。
実際の使用感ではDocomoのGaraxyより速くて申し分ないけどメモリ少なすぎるだろおい(´・ω・`)
HTCのwebサイトでHTC SyncというのをDLしてインストしておく。
Desireのドライバが含まれてるらしいのでこれでOK。
と思いきや、ぜんぜんうまくいかない。なにこれ。
調べてみると、ドライバを認識してない感じ。
AndroidSDKでUSBドライバの記述がどこかにあるので、これを探す。
webで調べたドキュメントだと、
C:\Program Files\android-sdk-windows\usb_driver
にあるらしい。
なかった(´・ω・`)
探す。
・・・・
C:\Program Files\android-sdk-windows\extras\google\usb_driver
というフォルダで発見。
SDKのバージョンによって違うのかな?
このフォルダに入ってる
android_winusb.inf
をエディタで開く。
メモ帳は無しな!
[Google.NTx86]
というセクションを探す。
そのすぐ下に
; HTC Desire
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87&MI_01
これをコピペ。
機種番号らしいです。
他の端末の場合、webで調べるとドキュメントが見つかるのでそれを参照。
何もかも至れり尽くせりのセルフサービスっぷり。こんなんで開発者育つのか。
次にスマホとPCをUSBでつなぐ。
新しいハードウェアの画面が出てくるので、ドライバを検索してインストを選ぶ。
たぶん見つからないので、手動でさっきの
C:\Program Files\android-sdk-windows\extras\google\usb_driver
を選ぶ。
これで認識完了。
スマホのほうでUSB接続時のデバッガモードを設定しておかないとキャプチャできないので設定する。
端末の「設定」-「アプリケーション」-「開発」を選ぶ。
「USBデバッグ」にチェックを入れる。
ついでに、一つ前のアプリケーション画面で不明なアプリでも実行できるようにしておく。
「不明な提供元」にチェック。これでマーケット以外でDLしたアプリが動くようになる。自己責任ってやつだ。大人だからな(´・ω・`)
さぁやっとキャプチャできるです。
スマホをUSBでつないだ状態で、
C:\Program Files\android-sdk-windows\tools
にある
ddms.bat
というバッチファイルを実行する。
コマンドプロンプトが出てしばらく応答がなくなるけど、数秒待つと
Dalvik Debug Monitor というアプリケーションが起動する。
こいつは実機の状態を監視するようなアプリです。
エミュレータが作成されているとリストに他にも端末が出てくるけど、実機のHTなんちゃら~を選ぶ。
そうすると下のウインドウにものすごい勢いで文字が流れる。
もしかして実機の全ステートを表示してるのか・・・・(´・ω・`)
あとは実機でキャプチャしたい画面を表示して、
DDMの「Device」-「Screen Capture」をクリック。
保存するかコピーするかの画面が出てくる。
保存するとローカルにpngで保存される。
解像度は実機に左右されるので、高解像度端末だとかなりきれいな画面が撮れる。
次回はいよいよプログラムやりたいです。
下準備で1週間かかってるってどゆこと・・・(´・ω・`)
2012-02-06 02:17
nice!(0)
コメント(0)
トラックバック(0)
コメント 0