デバイス
MuMu Player の ADB ポートと接続設定: MAS 向け
MuMu Player 12 の ADB ポートを確認し、Macro Automation Studio に接続して各インスタンスをデバイスとして追加し、レコーダーの代わりに MAS マクロを実行します。
- Windows
- Mac
- エミュレータ
- Studio
- Python SDK
このページの内容
このガイドでは、MuMu Player 12 の ADB ポートを確認してインスタンスを Macro Automation Studio (MAS) に接続する方法と、MAS のマクロが MuMu の操作録画とどう違うかを説明します。手順は Windows 向けで、Mac 版は短い節で扱います。
始める前に
- Windows 10 か 11、または Apple Silicon Mac に MAS がインストール済みでサインインしていること。MAS はトライアル向けに無料でダウンロードできます。ダウンロードページ から入手してください。
- mumuplayer.com から MuMu Player 12 をインストールし、1 度起動してあること。
- インスタンスが Android のホーム画面まで完全に起動していること。
- 自動化したいアプリが MuMu Player 内にインストールされ、サインイン済みであること。
1. MuMu Player 12 をインストールする
- ベンダーサイトから MuMu Player 12 をダウンロードし、インストーラーを実行します。
- MuMu Player を起動し、ホーム画面を待ちます。
- MAS にデバイスを追加する前に、自動化したいアプリをインストールしてサインインします。
2. 解像度を固定する
MAS はテンプレート画像をピクセル単位で照合するので、解像度は一度決めたら変えないでください。
- MuMu Player のウィンドウ右上の 設定 をクリックします。
- ディスプレイ を開き、カスタム解像度を選びます。
- 幅 540、高さ 960、DPI 240 を入力します。これが MAS の基準です。自分で書くマクロは、Asset Lab で取り込んだ解像度を前提とします。
- 保存し、MuMu Player に求められたらインスタンスを再起動します。
3. MuMu Player 12 で ADB を有効にする
ベンダーの ADB ガイドには、MuMu Player 12 のトグルは載っていません。起動中のインスタンスは設定なしでそのポートの adb に応答するので、必要なのはポート番号です:
- 単一インスタンスなら、ウィンドウ右上のメニューを開いて 問題診断 を選びます。ADB デバッグポートがそこに表示されます。
- 複数インスタンスなら、MuMuPlayer Multi-instance 12 を開き、起動中のインスタンスの ADB アイコンをクリックするとポートが表示されます。
4. MuMu Player の ADB ポートと MAS のスキャン方法
MuMu Player 12 はメインインスタンスにポート 16384 を与え、追加のインスタンスごとに 32 を足します: 16416、16448 など。ポートが使用中のときは MuMu が 1 を足すので、16385 が現れることもあります。MAS はエミュレータを検出するために adb devices を使いません。起動中のプロセスをスキャンし、次のすべてを満たすポートを残します:
- プロセス名に
nemuheadlessかmumuが含まれる。 - ポートが 16384 から 16576 の間、26624 から 27264 の間、ちょうど 7555、または 5555 から 5599 の間の奇数である。
- ソケットが
127.0.0.1、0.0.0.0、またはすべてのインターフェイスで待ち受けている。
16384 から 16576 の範囲はメインインスタンスと次の 6 個をカバーします。7555 と 5555 の範囲は古い MuMu バージョン向けです。該当するポートは 新しいデバイスを追加 ダイアログに MuMu のラベル付きで表示されます (例: 16384 - MuMu)。MAS はデバイスグループを開いたときと、更新 をクリックするたびにスキャンします。
5. MAS で MuMu Player を ADB 接続する
- サイドバーで デバイスグループ を開き、グループを開くか作成します。
- デバイスを追加 をクリックします。
- 50 文字以内の デバイス名 を入力します。
- ポート で、このインスタンスの
MuMu項目を選びます。一覧が空なら 更新 をクリックします。 - 問題診断 に表示されたポートが上の規則に合わない場合は、カスタムポート を選んで入力します。MAS は 1024 から 65535 を受け付けます。
- 必要なら 起動時マクロ を選びます。
- デバイスを追加 をクリックし、デバイスカードの 開始 をクリックします。
カードは Connecting、次に Running と表示されます。MAS は独自の adb サーバーを起動し、127.0.0.1:<port> の古い項目を削除し、それに対して adb connect を実行します。
MuMu Player でのマクロ
MuMu の 操作録画 はタップを記録してファイルから再生します。停止条件は 3 つ (x 回実行して停止、xx 時間実行して停止、手動停止まで無限ループ) で、サイクル間隔 もあります。ベンダーは、再生時の解像度が録画時と一致している必要があると注意しています。ファイルは画面を見ずに固定座標を再生するため、遅い読み込み、ポップアップ、位置の変わったボタンで手順が崩れ、しかも MuMu Player の中でしか動きません。
MAS のマクロは、動く前に画面を確認する Python スクリプトです: テンプレートマッチングでボタンを見つけ、OCR で文字を読み、リトライで待ち、見えたものに応じて分岐します。MAS はすべてのデバイスを adb で操作するため、同じスクリプトが MuMu Player、他のエミュレータ、クラウドデバイスで編集なしに動きます。
- 録画を画面を認識するマクロに作り直すには、画像認識マクロ に従ってください。
- 条件を満たすまでループさせたり、スケジュール実行したりするには、ループ、停止条件、スケジュール実行 をお読みください。
複数の MuMu インスタンス
右上のツールボックスアイコンから MuMuPlayer Multi-instance 12 を開きます。+新規 でインスタンスを作り、デバイス設定 でパフォーマンスとディスプレイを設定するので、すべてのインスタンスに同じ解像度を与えてください。各インスタンスは前のものより 32 大きい固有のポートで待ち受けます。同じデバイスグループに別々のデバイスとして追加し、デバイスごとにマクロと設定プロファイルを割り当て、グループの すべて開始 と すべて停止 を使います。8 番目のインスタンスからはポートが 16576 を超え、MAS の一覧に出なくなるので、カスタムポート で追加します。デバイスごとの引数とプロキシについては デバイスグループ を参照してください。
Mac の MuMu Player
MuMu は Apple Silicon Mac 向けのビルドも提供しています。そこではベンダーのガイドによると ADB はメニューバーにあります: デバイスの起動中に ツール を開き、ADB を開く (デバイスポート番号) を選びます。この項目にポートが表示され、既定はここでも 16384 です。MAS のスキャンに表示されない場合は、カスタムポート で追加します。
Mac の MAS には adb バイナリが必要です: アプリバンドル内、次に PATH、その次に Homebrew のフォルダーを探します。MAS が「ADB executable not found. Please install ADB using your package manager」と表示したら、Homebrew で adb をインストールして MAS を再起動します:
brew install android-platform-toolsMAS は常に 127.0.0.1 に接続するので、MuMu Player は同じ Mac で動いている必要があります。
トラブルシューティング
MuMu の ADB ポート
MAS に MuMu の項目が表示されないか、表示された項目が別のインスタンスのものです。
- 問題診断 か MuMuPlayer Multi-instance 12 の ADB アイコンからポートを読み取り、デバイスカードと比べます。デバイスを編集 で直します。
- 16384 からインスタンスごとに 32 ずつ数え、ポートが使用中だった場合は 1 を足します (16384 の代わりに 16385)。
- インスタンスがまだ起動中で、ポートがまだ開いていません。ホーム画面を待って 更新 をクリックします。
- ポートが 16576 より上か、その他の理由でスキャン規則の外です。カスタムポート を選んで入力します。
MuMu の ADB 接続に失敗する
デバイスカードが「Failed to start device」で Error になる、ログに「unable to connect to device」と出る、または adb が「cannot connect」か「connection refused」を出力します。
- そのポートで待ち受けているものがありません。上記の方法で番号を確認し、インスタンスが動いていることを確かめます。
- 2 つ目の adb サーバーが古い項目を持っています。独自の adb サーバーを動かす他のツールを閉じ、停止 をクリックし、インスタンスを再起動して 開始 をクリックします。MAS は最初から接続し直します。
adb devicesにポートがofflineと表示されます。インスタンスを再起動します。それでも offline のままなら、MAS を再起動して adb サーバーをまっさらな状態で立ち上げます。- スキャンが「Failed to scan emulator ports」と報告しました。MAS を再起動してダイアログを開き直します。
adb の生の応答を見るには、ターミナルで adb connect 127.0.0.1:16384 を実行します。その他の対処は ADB トラブルシューティング にあります。
MuMu でのマクロループ
手動停止まで無限ループ に設定した録画は、ループを続けるべきかどうか判断できないため、目標に達した後やポップアップが出た後もタップし続けます。MAS のマクロは Python で停止条件付きのループを組みます: 表示されるテンプレート、OCR で読んだ数値、または周回数。ループ、停止条件、スケジュール実行 にパターンがあります。MAS のループが止まる場合は、デバイスカードの ログ を開きます。ImageNotFoundError と TimeoutError が失敗したステップを示し、よくある原因はテンプレートと一致しなくなった解像度です。
Python から操作する
カードが Running の状態で、マクロの src/app.py が mas パッケージを通してインスタンスを操作します。ポートは MAS が選ぶので、スクリプトがポートを参照することはありません。
import mas
size = mas.get_screen_size()
mas.log(f"MuMu screen is {size.width}x{size.height}")
match = mas.find_object_retry(1234, total_tries=3, time_sleep=2.0)
if match:
mas.click(match.x, match.y)すべての名前空間は SDK 概要 を、完全な最初のスクリプトは Python から Android エミュレータを操作する をお読みください。
次のステップ
関連ページ
ありがとうございます。誤りがあればDiscordでお知らせください。
質問がありますか? Discordで質問する