Android

Androidの実機でスクリーンショットや動画を取得する方法

android-device

androidの開発時には実機やエミュレータを使用しますよね。
エミュレータであれば、AndroidStudioのボタンをクリックするだけでスクリーンショットや動画を撮影することができ、とても便利です。

しかし、実機で同じことをやろうとして悩んだことはありませんか?
スクリーンショットは実機の機能で取ることはできますが、画面を写した動画の撮影方法はわからない、という初心者の方もいらっしゃるのではないでしょうか。

力技で、別の実機で直接動画を撮影するという方法もありますが、スマートではありませんよね。
そういう時はadbコマンドを使用しましょう。

adbコマンドでスクリーンショットを撮影する

adbコマンドでスクリーンショットを撮影する方法は簡単です。

usbケーブルで実機とPCをつないだ状態で、以下のように打ち込むだけです。

$ adb shell screencap {保存する際のファイル名}

例えば、sdcardディレクトリの下に保存する場合はこうなります。

$ adb shell screencap /sdcard/screen.png

文頭につけている「$」ですが、これはターミナル上に打ち込んでいるということの印として付けているだけですので、打ち込まなくてOKです。

参考:Android Debug Bridge  |  Android Developers

adbコマンドで実機の画面を録画する

adbコマンドで実機の画面を撮影する方法も簡単です。
(ただし、Android4.4(APIレベル19)以降に限ります)

usbケーブルで実機とPCをつないだ状態で、以下のように打ち込むだけです。

$ adb shell screenrecord {オプション} {保存する際のファイル名}

例えば、sdcardディレクトリの下に保存する場合はこうなります。

$ adb shell screenrecord /sdcard/demo.mp4

このコマンドを打ち込んだ時点で画面の録画が始まります。
録画を終了する場合はControl+C(Windowsの場合はCommand+C)を押下してください。
手動で終了させない場合、3分経過した時点で自動的に録画がストップします。
録画時間を指定したい場合は–time-limitオプションを使用してください。(オプションについては後述をご確認ください)

一点注意する点としては、音声は録画ファイルに含まれません。
つまり、録画したビデオは無音の状態になるということですが、試験のエビデンス等に使用するのであれば問題ないでしょう。

screenrecordの各種オプションは以下の通りです。

オプション説明
–help コマンドの構文とオプションを表示
–size {width}x{height}ビデオのサイズを指定する。デフォルト値はネイティブの画面解像度に依存する。サポートされていない場合は1280×720。
–bit-rate rate撮影するビデオのビットレートをMbps単位で指定する。デフォルト値は4Mbps。指定するビットレート値が大きくなると、ファイルサイズも増加するので注意。
例(5Mbpsで指定する場合):screenrecord –bit-rate 5000000 /sdcard/demo.mp4
–time-limit time最大録画時間を秒単位で指定する。デフォルトは180秒。
–rotate出力結果を90度回転する。
–verboseログをコマンドラインに表示する

参考:Android Debug Bridge  |  Android Developers

終わりに

adbコマンドにも色々な機能があることがわかりました。
開発の際はコマンドを打った方が早いことも多いので、覚えておいて損はないと思います。
以上です。それでは。