電話画面のスクリーンショットをできるだけ早く取得しようとしています。現在、私はやっています:
adb Shell screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png
ただし、速度が遅すぎて最大3秒かかります。これを行うより良い方法はありますか?ルート化されていない電話でこの機能を使用する予定です。
また、screencapに使用できるさまざまな引数は何ですか?
ありがとう。
編集(追加情報):このメソッドを使用して、PCに画面のライブフィードを取得できるようにします。現在の方法は機能しますが、遅すぎます。使用できませんadb Shell screenrecord
録画中にビデオファイルにアクセスできないためです。
OSXおよびLinuxで動作させるには
adb exec-out screencap -p > screen.png
https://stackoverflow.com/a/37191719/75579 回答がAndroid 7で何らかの形で機能しなくなった。だから私は手動でそれをしなければならないので、私はそれを共有したいと思います。
次のコードスニペットを~/.bash_profile
または~/.profile
ファイルに配置します。
snap_screen() {
if [ $# -eq 0 ]
then
name="screenshot.png"
else
name="$1.png"
fi
adb Shell screencap -p /sdcard/$name
adb pull /sdcard/$name
adb Shell rm /sdcard/$name
curr_dir=pwd
echo "save to `pwd`/$name"
}
source ~/.bash_profile
またはsource ~/.profile
コマンドを実行し、
ファイル名を指定しない使用法:
$ snap_screen
11272 KB/s (256237 bytes in 0.022s)
Saved to /Users/worker8/desktop/screenshot.png
ファイル名での使用:
$ snap_screen mega_screen_capture
11272 KB/s (256237 bytes in 0.022s)
Saved to /Users/worker8/desktop/mega_screen_capture.png
それが役に立てば幸い!
**複数のデバイスが接続されている場合、これは機能しません
PngをSDカードに保存してからプルする代わりに、stdoutからバイナリを読み取ることができます。
adb Shell screencap -p | sed 's|\r$||' > screenshot.png
これは少し時間を節約するはずですが、それほど多くはありません。
デバイスの画面の記録を開始するには、次のコマンドを実行します。
adb Shell screenrecord /sdcard/example.mp4
このコマンドは、デフォルトの設定を使用してデバイスの画面の記録を開始し、結果のビデオをデバイスの/sdcard/example.mp4ファイルに保存します。
記録が完了したら、コマンドプロンプトウィンドウでCtrl + Cを押して、画面の記録を停止します。その後、指定した場所で画面録画ファイルを見つけることができます。画面の記録は、コンピューターではなく、デバイスの内部ストレージに保存されることに注意してください。
デフォルト設定では、デバイスの標準画面解像度を使用し、4Mbpsのビットレートでビデオをエンコードし、最大画面記録時間を180秒に設定します。使用できるコマンドラインオプションの詳細については、次のコマンドを実行してください。
adb Shell screenrecord --help
これは、デバイスをルート化せずに機能します。お役に立てれば。
この記事のいくつかの知識と他のいくつかの投稿を使用して、私にとって最も効果的な方法は次のとおりであることがわかりました。
adb Shell 'stty raw; screencap -p'
私は非常に簡単なPython ADB経由で接続されたデバイスの画面を本質的にミラー化するスクリプトをGitHubに投稿しました:
screencap
単純なコマンドであり、引数をほとんど受け取らないことを教えてすみませんが、どれも時間を節約できません。これが-h
ヘルプの出力です。
$ adb Shell screencap -h
usage: screencap [-hp] [-d display-id] [FILENAME]
-h: this message
-p: save the file as a png.
-d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
コマンドscreencap
に加えて、別のコマンドscreenshot
があり、screenshot
がAndroid 5.0
から削除された理由はわかりませんが、Android 4.4
の下にあります。ソースを確認できます ここ 。これらの2つのコマンドの方が速い比較はしませんでしたが、実際の環境で試して最終決定を下すことができます。