MacでもAndroid端末のミラーリングが快適に行える!scrcpyのご紹介


本稿はJCB Advent Calendar 2022の12/13の記事です。

こんにちは。株式会社ジェーシービー デジタルソリューション開発部の鈴木と申します。

私が担当しているiOS/Android向けネイティブアプリの開発中、リモートによるスプリントレビューや実機確認結果の共有時に、手元にある実機端末の画面を開発端末のMacに取り込んで録画や画面共有をしたいことが多々ありました。

iOS端末では、macOS標準の動画再生ソフトウェアであるQuickTime Playerを使用することでミラーリングが容易に可能です。
しかし、Android端末の場合はmacOSに対応したソフトウェアが多くはなく、ミラーリング時の画質が実際の端末と比べて下がってしまうケースもあり、選定に悩んでおりました。

そのような状況の中、オープンソースのソフトウェアであるscrcpyを使用することで、macOSでもAndroid端末のミラーリングを高画質かつ快適に行えることが可能となったため、ご紹介いたします。

scrcpyとは

scrcpyは、フランスのGenymobile社が開発したオープンソースのソフトウェアです。
https://github.com/Genymobile/scrcpy

同社はAndroidエミュレータで著名なGenymotionを開発しており、信頼ができるソフトウェアと考えられます。
scrcpyのGitHub Star数は74000を超え(2022年12月現在)、直近のコミットも多く開発が活発です。

なお、macOS以外にWindowsやLinuxでも使用可能です。

本記事の環境

  • scrcpy v1.24
  • MacBook Pro (M1)
  • macOS v12.6.1
  • Pixel 6 (Android 12)

※scrcpyはAndroid 5.0以上で動作します

インストール

Homebrewを使用してインストールします。

$ brew install scrcpy

Android Debug Bridge(ADB)がインストールされていない場合は併せてインストールします。

$ brew install --cask android-platform-tools

使用方法

前準備

開発者向けオプションからUSBデバッグを有効にした上で、MacとAndroid端末をUSBケーブルで接続しておきます。
Android端末上でUSBデバッグの許可を求められた場合は許可をタップします。

Android端末のミラーリングを行う

以下のコマンドを実行します。

$ scrcpy

Androidエミュレータを起動している場合はADB側で端末の特定ができないため、-d オプションを使用してUSB接続済の端末であることを指定します。

$ scrcpy -d

2台以上の端末がUSB接続されている場合は、ADBからシリアルを入手し、-s オプションを使用してscrcpyに渡します。

$ adb devices
List of devices attached
123456789ABCD   device
emulator-1234   device

$ scrcpy -s 123456789ABCD

接続が成功するとscrcpyのウインドウでAndroid端末のミラーリングが開始されます。

クリックすることで画面の操作も可能です。

画面の録画を行う

こちらもコマンドで実施が可能です。
scrcpyウインドウが起動している場合は消しておくか、scrcpyを実行中のターミナルでCtrl + Cを押してプロセスを終了しておきます。

-r オプションにファイル名を与えることで録画が行えます。
拡張子はmp4またはmkvが使用可能です。

$ scrcpy -r record.mp4

操作後、scrcpyウインドウを消すか、Ctrl + Cでプロセスを終了することで実行時のディレクトリに録画ファイルが出力されます。

ちなみにscrcpyにはスクリーンショットを撮る機能は存在しないため、画像を取得する際はmacOS標準のスクリーンショット機能を使用しています。
(Command + Shift + 4 → Space → scrcpyウインドウクリック)

USB接続せずにミラーリングを行う

MacとAndroid端末を同一のWiFiに接続した上で、以下のコマンドを実行することによってUSB接続せずにミラーリングが可能です。
※5555番ポートが開放されている必要があります

$ scrcpy --tcpip    

デバイスが複数ある場合は、先ほどと同じく-s オプションでシリアルを指定します。

$ scrcpy -s 123456789ABCD --tcpip   

実際に試してみましたが、ラグや画質の劣化はなく、有線接続時と遜色ないミラーリングができました。

スプリントレビューにおける使い方

余談にはなりますが、scrcpyを使用した当チームのスプリントレビューの進め方を最後にご紹介します。

スプリントレビュー実施前に各バックログでのデモを行う内容を決めておき、チェックリストをWikiに作成しておきます。
デモを行うアプリをインストールしたiOS/Android端末をMacに接続し、iOSではQuickTime Player, Androidではscrcpyを使ってミラーリングしたウインドウを作成します。

iOS端末でQuickTime Playerを使ってミラーリングをする場合は、QuickTime Playerの「新規ムービー収録」から映像ソースを選択することで収録が可能です。

Wikiに作成したチェックリスト・iOS/Android端末のミラーリングウインドウを1画面に並べておき、スプリントレビュー時には全画面共有を行い、実機で操作をしながらチェックリストの項目を消化していきます。

以前は実機端末に各会議ツールのアプリをインストールして端末の画面共有を行っておりましたが、共有するたびに事前に用意したチェックリストの画面から離れてしまうため非効率でした。
こちらの方法によって端末画面とチェックリストを常に表示しておくことで、スムーズにスプリントレビューを行うことができており、レビューをしてもらうPO側からも好評です。

さいごに

今回はAndroid端末のミラーリングが快適に行えるscrcpyをご紹介しました。
ネイティブアプリ開発においては非常に有用なソフトウェアですので、気になる方はぜひ試してみてください。

最後になりますが、JCBでは我々と一緒に働きたいという人材を募集しています。 詳しい募集要項等については採用ページをご覧下さい。

©JCB Co., Ltd. 20︎21