Androidの実機でデバッグしている時、スクリーンショットを撮って保存したいことがあると思います。
ただ、スマホでスクショを撮影してもPCにファイルを移動させるのがなかなか手間ですよね。
そんな時にワンコマンドでPCの任意のディレクトリにスクリーンショットを保存できる便利なコマンドを紹介していきたいと思います。
前準備
- adbコマンドが使用できるか確認
adb version
とターミナル(もしくはコマンドプロンプト)と打ち込んでバージョン情報が表示されたらOKです
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as /Users/***********/Library/Android/sdk/platform-tools/adb
Running on Darwin 24.0.0 (arm64)
もし、adb command not found
などが出たら「Mac adb 導入」などで検索して導入してください。(5分もあれば終わると思います)
- スマホとPCを繋ぐ
スマホとPCを有線で繋ぎ、以下のコマンドを打ちます。
$ adb devices
List of devices attached
******** device // ←これが表示されていればOK
表示されていない場合や、unauthorized
と表示されている場合などは何かしらの設定、権限が足りていないのでよしなに対応してください。(USBデバッグの有効化など)
スクリーンショットを保存する
前置きが長くなってしまいましたが、本題です。以下のコマンドをターミナルに打ち込んでください!
adb exec-out screencap -p > ~/Pictures/$(date +"%Y-%m-%d_%H-%M-%S").png
windowsの場合
おそらくそのままでは動かないのでchatGPTなどでwindows用に変換してもらってください。動作確認はしていないですが、一応以下のコードがコマンドプロンプト用に変換されたコマンドです。for /f "tokens=1-4 delims=/ " %a in ("%date%") do for /f "tokens=1-2 delims=:." %b in ("%time%") do adb exec-out screencap -p > %userprofile%\Pictures\%a-%b-%c_%d-%e.png
成功していた場合、FinderでPictures
ディレクトリを開くとスクリーンショットが保存されていると思います。
ファイル名、保存先ディレクトリの変更はお好きなものに変更しても問題ないです。
コマンドの解説
ここからは、このコマンドの解説を少ししていきます。
各部分ごとに解説していきます。
adb
Android Debug Bridgeの略です。AndroidデバイスとPC間で通信を行うためのツールで、端末の操作やデバッグ、ファイル転送などが可能になります。便利。
exec-out
指定したコマンドの出力を標準出力に書き出すオプションです。今回の場合、screencapコマンドの出力(画像データ)がPCに送られるようになります。
screencap
スクリーンショットを撮るためのコマンドです。
-p
PNG形式でスクリーンショットを取得するscreencapんpオプションです。このオプションを付けることで、画像がPNG形式で出力されます。
>
リダイレクト演算子で、標準出力のデータをファイルに保存するために使われます。今回の場合、スクリーンショットのPNGデータが指定したファイルに保存されます。
~/Pictures/
保存先のディレクトリです。
$(date +"%Y-%m-%d_%H-%M-%S").png
現在の日付と時刻を取得し、ファイル名として使用する部分です。dateコマンドで日時をフォーマットし、%Y-%m-%d_%H-%M-%S形式で表示します。ファイル名に日時が入るため、重複を避けられますしわかりやすいです。
+
は、dateを+の後に続くフォーマットで表示するようにするプレフィックスです。
おわりに
最後までお読みいただきありがとうございました!
abd、便利ですね。もっと活用すればデバッグの時などかなり役に立ちそうです。