App Engineerの開発ダイアリー

Flutterや開発活動に役立つツール作りなど

Android端末のキャプチャ撮ってgif変換を自動化する

モバイルアプリの開発ブログを書いているとキャプチャでイメージを伝えたいということが
良くあるのですが※例えば下記のように
f:id:Simoroid:20210401123914g:plain:w120
それらをわざわざ「端末でキャプチャを取って、それをダウンロードしてきて~」
という作業が面倒になったのでbatファイルで自動化しました。

◇前提条件(使用モジュール)
前提条件として下記2つが必要になってきます。

画像加工系の機能を色々と提供してくれるimagemagickというソフトをインストールします。
※インストール時の注意なのですが下記の赤線枠のチェックを入れなければ今回欲しい機能がインストールされません。。
http://www.imagemagick.org/script/download.php#windows
f:id:Simoroid:20210326163738p:plain:w360

  • adbコマンド

android端末にアクセスするためのコマンドになります。
インストールされていない方は下記のようなから取得できます。
https://tech.la-fra.com/2018/07/29/post-204/

◇batファイル
2つのバッチファイルを作ります。

screencap.bat
こちらは単純に今現在PCに接続されたAndroid端末に画面のキャプチャを
今回用の命名規則に従って撮影していきます。

@echo off

rem スペースを0に置換
set time_tmp=%time: =0%

rem スラッシュを置換で削除
set now=%date:/=%%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2%

adb shell screencap -p /sdcard/screen_%now%.png

pause

pullAndMakeGif.bat
命名規則に従って撮影されたキャプチャをPCに転送しgifに変換します。
最後にPCに転送した画像はAndroid端末側からは削除しておきます。

@echo off
set oput=

adb shell ls /sdcard/screen* >%CD%\usrlst.txt
FOR /F %%i in (usrlst.txt) DO adb pull %%i %CD%

:end
del %CD%\usrlst.txt
set oput=

REM 最後に全部消す
adb shell rm -rf /sdcard/screen* 

REM gif作成
convert -delay 30 -loop 0 screen_*.png movie.gif

pause

任意のフォルダにbatファイルに格納したらscreencap.bat⇒pullAndMakeGif.batの順番で実行するのみです。
f:id:Simoroid:20210401123025p:plain
この記事がお役に立てていたらうれしいです。