デバイス
LDPlayer の ADB 接続とポート設定: MAS 向け
LDPlayer 9 で ADB デバッグを有効にし、ADB ポートを確認してインスタンスを Macro Automation Studio に接続し、レコーダーを画面認識マクロに置き換えます。
- Windows
- エミュレータ
- Studio
- Python SDK
このページの内容
このガイドでは、LDPlayer 9 を ADB 接続で Macro Automation Studio (MAS) につなぐ方法と、MAS のマクロが LDPlayer の操作レコーダーとどう違うかを説明します。LDPlayer は Windows 専用なので、以下の手順はすべて Windows のものです。
始める前に
- Windows 10 か 11 に MAS がインストール済みでサインインしていること。MAS はトライアル向けに無料でダウンロードできます。ダウンロードページ から入手してください。
- ldplayer.net から LDPlayer 9 をインストールし、1 度起動してあること。
- インスタンスが Android のホーム画面まで完全に起動していること。
- 自動化したいアプリが LDPlayer 内にインストールされ、サインイン済みであること。
1. LDPlayer 9 をインストールする
- ベンダーサイトから LDPlayer 9 をダウンロードし、インストーラーを実行します。
- LDPlayer を起動し、ホーム画面を待ちます。
- MAS にデバイスを追加する前に、自動化したいアプリをインストールしてサインインします。
2. 解像度を固定する
MAS はテンプレート画像をピクセル単位で照合するので、解像度は一度決めたら変えないでください。
- LDPlayer のツールバーの歯車アイコンをクリックして 設定 を開きます。
- ディスプレイ を開き、カスタム解像度のオプションを選びます。
- 幅 540、高さ 960、DPI 240 を入力します。これが MAS の基準です。自分で書くマクロは、Asset Lab で取り込んだ解像度を前提とします。
- 設定を保存 をクリックし、LDPlayer に求められたらインスタンスを再起動します。
3. LDPlayer 9 で ADB デバッグを有効にする
LDPlayer は、開くまで ADB を閉じたままにします。ベンダーはこのスイッチをその他の設定の下に記載しています:
- 設定 を開きます。
- その他の設定 をクリックします。
- ADB デバッグ を ローカル接続を開く にします。
- 設定を保存 をクリックします。
- インスタンスを再起動します。設定は再起動後に有効になります。
4. LDPlayer の ADB ポートと MAS のスキャン方法
最初の LDPlayer インスタンスは 5555 で待ち受けます。MAS はエミュレータを検出するために adb devices を使いません。起動中のプロセスをスキャンし、次のすべてを満たすポートを残します:
- プロセス名に
ldvboxheadless、ld9boxheadless、dnplayer、ldplayer、またはvboxnetnatが含まれる。 - ポートが 5555 から 5599 の間の奇数である: 5555、5557、5559 など。
- ソケットが
127.0.0.1、0.0.0.0、またはすべてのインターフェイスで待ち受けている。
該当するポートは 新しいデバイスを追加 ダイアログに LD Player のラベル付きで表示されます (例: 5555 - LD Player)。MAS はデバイスグループを開いたときと、更新 をクリックするたびにスキャンします。追加のインスタンスは次の奇数ポートを取るため、規則は 5599 まで続きます。これで 23 個の起動中インスタンスをカバーします。
5. MAS で LDPlayer を ADB 接続する
- サイドバーで デバイスグループ を開き、グループを開くか作成します。
- デバイスを追加 をクリックします。
- 50 文字以内の デバイス名 を入力します。
- ポート で、このインスタンスの
LD Player項目を選びます。一覧が空なら 更新 をクリックします。 - LDPlayer が上の規則に合わないポートを使っている場合は、カスタムポート を選んで入力します。MAS は 1024 から 65535 を受け付けます。
- 必要なら 起動時マクロ を選びます。
- デバイスを追加 をクリックし、デバイスカードの 開始 をクリックします。
カードは Connecting、次に Running と表示されます。MAS は独自の adb サーバーを起動し、127.0.0.1:<port> の古い項目を削除し、それに対して adb connect を実行します。
LDPlayer でのマクロ
LDPlayer の 操作レコーダー (ツールバーのボタン、または Ctrl + 8) は、タップ、スワイプ、文字入力を記録し、スクリプトとして再生します。そのスクリプト設定には 実行ループ (ループ回数まで、時間まで、手動停止まで)、ループ間隔、加速 があります。できないのは画面を見ることです。すべてのタップは記録した座標で再生されるため、読み込みの遅れ、ポップアップ、位置の変わったボタンがあると次のタップは空振りし、それでもループは続きます。また、スクリプトは LDPlayer の中でしか動きません。
MAS のマクロは、動く前に画面を確認する Python スクリプトです。テンプレートマッチングでボタンを見つけ、OCR で文字を読み、リトライで待ち、見えたものに応じて分岐します。MAS はデバイスを adb で操作するため、同じスクリプトが LDPlayer、他のエミュレータ、クラウドデバイスで編集なしに動きます。
- 記録したルーチンを画面を認識するマクロに作り直すには、画像認識マクロ に従ってください。
- レコーダーでは表現できない停止条件で、条件を満たすまでループさせたり、スケジュール実行したりするには、ループ、停止条件、スケジュール実行 をお読みください。
- Marketplace のマクロは MAS のマクロとしてインストールされ、割り当てたデバイスで動きます。
複数の LDPlayer インスタンス
LDMultiplayer (ツールバーの マルチプレイヤー ボタン、その後 新規プレイヤー か プレイヤーを複製) で作ったインスタンスは、それぞれ固有のポートで待ち受けます。同じデバイスグループに別々のデバイスとして追加し、デバイスごとにマクロと設定プロファイルを割り当て、グループの すべて開始 と すべて停止 を使います。すべてのインスタンスでテンプレートが一致するよう、マネージャーの 設定 でインスタンスごとに解像度を設定してください。デバイスごとの引数とプロキシについては デバイスグループ を参照してください。
トラブルシューティング
LDPlayer の ADB device not found
デバイスカードが「Failed to start device」で Error になる、ログに「unable to connect to device」と出る、または MAS に LD Player の項目が表示されません。次の原因を順に確認します:
- ADB デバッグ が ローカル接続を開く になっていないか、変更後にインスタンスを再起動していません。設定して保存し、再起動します。
- インスタンスがまだ起動中です。ホーム画面を待ってから、更新 と 開始 をもう一度クリックします。
- ポートが別のインスタンスのものです。カードの デバイスを編集 で直します。
- スキャンが「Failed to scan emulator ports」と報告しました。MAS を再起動してダイアログを開き直します。
- デバイスログに adb が「connection refused」か「cannot connect」を出力しました。そのポートで待ち受けているものがありません。ターミナルで
adb connect 127.0.0.1:5555を実行して確認します。
LDPlayer が offline と表示される
adb devices に 127.0.0.1:<port> offline と表示され、コマンドが固まります。インスタンス内の adb デーモンが応答しなくなっています。原因は通常、スリープ、アップデート、またはマシン上の 2 つ目の adb サーバーです。カードの 停止 をクリックし、LDPlayer のインスタンスを再起動し、独自の adb サーバーを動かす他のツールを閉じてから 開始 をクリックします。MAS は開始のたびに古い項目を切断して接続し直します。それでも offline のままなら、MAS を再起動して adb サーバーをまっさらな状態で立ち上げます。その他の対処は ADB トラブルシューティング にあります。
LDPlayer 9 の ADB ポートを確認する
ベンダーの ADB ガイドには、LDPlayer の設定内でポートが表示される場所の記載がないため、MAS か adb から読み取ります。MAS では 新しいデバイスを追加 を開いて 更新 をクリックします。見つかったすべてのポートが LD Player 付きで小さい順に並ぶので、最初のインスタンスは 5555、次は 5557、5559 と続きます。ターミナルでは、adb connect 127.0.0.1:5555 が有効なポートには「connected」、無効なポートには「cannot connect」と答えます。ポートが分かれば、インスタンスを同じ順番で起動する限り同じままです。
マクロが動かない
この言葉には 2 つの異なる問題が含まれます。
- 記録した LDPlayer のスクリプトが違う場所をタップする、または効果のないままループする。記録時から解像度が変わった、アプリの読み込みが遅くなった、またはポップアップがボタンの上にあります。記録したスクリプトはこれらのどれからも回復できません。画像認識マクロ でルーチンを MAS のマクロとして作り直してください。
- MAS のマクロが止まる、または終了する。デバイスカードの ログ を開きます。
ImageNotFoundErrorとTimeoutErrorが失敗したステップを示します。インスタンスがテンプレートを取り込んだ解像度で動いていること、デバイスカードが Running であること、LDPlayer のスクリプトが同時に入力を送っていないことを確認してください。
Python から操作する
カードが Running の状態で、マクロの src/app.py が mas パッケージを通してインスタンスを操作します。ポートは MAS が選ぶので、スクリプトがポートを参照することはありません。
import mas
size = mas.get_screen_size()
mas.log(f"LDPlayer 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で質問する