大学などの授業でLINEbotなどを作ってみるといったハンズオン的な演習を行っていると実行結果で静止画を出してもあんまり反応が良くないので、リアルタイムな実行の画面を出してみたいなあと思っていたのですが、今回書いているscrcpyを使用することで解決できそうです。思った以上に多機能だったので、その他にも用途はありそうです。例えばスマートフォンアプリの操作説明動画の作成でしょうか。あと、地味にすごいのはミラーリングされた表示のPC側からAndroidの操作ができる点です。
では設定してみます。
scrcpyのサイト

以下のサイトが公式のGitHubになります。
日本語のREADMEはこちら
scrcpyをWindowsへインストール
Windowsへのインストールに関しては以下に記載があります。こちらからアーカイブを取得していくことになります。
https://github.com/Genymobile/scrcpy/blob/master/README.md#windows
Version1.25(2023.02.04現在最新)
https://github.com/Genymobile/scrcpy/releases/download/v1.25/scrcpy-win64-v1.25.zip

こちらにはadbが含まれています。他のパッケージシステムのもの(例えばChocolateyなど)を使用するとadbが含まれていないので別途インストールする必要があります。
アーカイブをダウンロードして任意のフォルダに展開を行います。
自分はC:\Program Filesにscrcpyフォルダを作成して展開を行いました。このエントリではこのフォルダ構成の想定で進めます。

起動にはデスクトップにscrcpy.exeショートカットを作っておくと便利です。ショートカットにはあとから起動オプションを追加することもできるので追加機能ごとに作ることもできます。

Android側の設定
起動するにはAndroid側は開発者向け機能をONにする必要があります。開発者向け機能をONにしたら、設定アプリを起動して

【システム】を選択して

システム画面になったら画面を下にスクロールして

【開発者向けオプション】を選択します。

【開発者向けオプションの使用】をONに設定して、

更に【USBデバッグ】もONにします。

これでAndroid端末側の設定は終了です。
起動
基本はscrcpy.exeを実行するだけです。コンソールでも、ショートカットの起動でも問題ありません。忘れずにAndroid端末をUSBケーブルでPCと接続してから起動します。
コンソールの起動状態

実行(実行前にカレントパスの変更が必要)
> scrcpy.exe
起動した画面

ブラウザの起動

カメラ機能も使えます

便利そうな機能
使っていて便利だなと思った機能を抜粋してみます。
クリップボードの共有
scrcpyで連携するとAndroid側でクリップボードのコピーをした内容がWindows側でも使用できます。
これは地味に良い機能です。
ビットレートの設定
> scrcpy -b 2M
フレームレートの制限設定
最大フレームレートを制限することができます。
> scrcpy --max-fps=15
フレームレートの表示
実行するとコンソール上にフレームレートが表示されます。デフォルトはヌルヌル動くと思いますが15fps程度でも実用上は問題はないと思います。
> scrcpy --print-fps

画面の回転
画面を回転して表示することができます。この回転はWndowsの持っている回転機能とは独立した機能になります。起動後にも画面回転はできます。
> scrcpy --lock-video-orientation # 初期状態(現在状態) > scrcpy --lock-video-orientation=0 # 通常状態 > scrcpy --lock-video-orientation=1 # 90° 左回転 > scrcpy --lock-video-orientation=2 # 180° 回転(反転) > scrcpy --lock-video-orientation=3 # 90° 右回転
90° 左回転(--lock-video-orientation=1)

180° 回転(--lock-video-orientation=2)

90° 右回転(--lock-video-orientation=3)

画面の録画機能
-rでファイル名を指定することで録画を行う事ができます。mp4形式以外にmkv形式でも録画が可能です。また、録画時に画面表示を行わない事もできます。その際は-Nrを使用します。
> scrcpy -r file.mp4 #録画 > scrcpy -Nr file.mp4 #画面表示せずに録画(コンソールは表示)
録画を中断する際は【Ctrl+C】で行います。
録画したファイルは問題なく再生できます。

ワイヤレスコネクション
adbの設定でワイヤレス接続の設定を行ってあれば--tcpipを使用することでワイヤレス接続を行うことが可能です。
自分はUSB接続時にscrcpy --tcpipを実行した後無線接続ができました。このあたり設定の順番があるかもしれません。

> scrcpy --tcpip # USB接続時に一旦こちらを実行 > scrcpy --tcpip=192.168.1.1 # ポート指定がない場合にはデフォルトの5555Portが使用 > scrcpy --tcpip=192.168.1.1:5555
PCからの操作方法
PCからもAndroid端末の操作ができるので、ショートカットキーなどを記載しておきます。
| 操作 | ショートカット |
|---|---|
| ホームボタン | 【Alt+H】、またはマウスの中クリック |
| 戻るボタン | 【Alt+B】、またはマウスの右クリック |
| 画面の向きを変える | 【Alt+→】/【Alt+←】 |
| タスクの切り替え | 【Alt+S】 |
| メニューの表示 | 【Alt+M】 |
| 通知パネルの表示 | 【Alt+N】 |
| 通知パネルを閉じる | 【Alt+Shift+N】 |
| ボリューム調節 | 【Alt+↑】/【Alt+↓】 |
| 電源ボタン(画面オフ) | 【Alt+P】 |
| 画面オン | マウスの右クリック |
| コピー | 【Alt+C】 |
| 切り取り | 【Alt+X】 |
| 貼り付け | 【Alt+V】 |
おわりに
正直どれくらいのパフォーマンスのものかなと思っていたのですがかなりいい感じのアプリだと思います。scrcpyを使用することでリアルタイムな実行結果をみることができるのは非常に良いのではないかと思います。iPhoneでも同じことができるアプリがフリーであるととてもいいのですが😓見つけられていないのでしょうか。(有料はあるんですけどね)
もしご存知の方がいらっしゃれば教えていただければと思います。