# Android エミュレータの adb 接続: エミュレータ、クラウド、スマホ

> Macro Automation Studio の Android エミュレータ自動化: 検出されるエミュレータ、adb ポートの規則、ポートによるデバイス追加、クラウドデバイスと実機の使い方を説明します。

Source: https://automationmacro.com/ja/docs/devices (デバイス, updated 2026-09-05)

Macro Automation Studio (MAS) での Android エミュレータの自動化は、adb 接続するデバイスから始まります: このコンピューター上の Android エミュレータ、MAS のクラウド上のクラウドデバイス、または上級者向けの選択肢としてお手持ちのスマホ。このページでは、MAS が Android エミュレータの adb ポートを見つける仕組み、エミュレータを追加する方法、そして残りの 2 種類の位置づけを説明します。

## 始める前に

- MAS がインストール済みで、有効なトライアルかプランでサインインしていること。[MAS のインストール](/docs/install) を参照してください。MAS はトライアル向けに無料でダウンロードできます。[ダウンロードページ](/download) から入手してください。
- エミュレータの場合: エミュレータが起動しており、設定で ADB がオンになっていること。[BlueStacks](/docs/bluestacks-setup-guide)、[LDPlayer](/docs/ldplayer-setup-guide)、[MuMu Player](/docs/mumu-setup-guide)、[MEmu](/docs/memu-setup-guide) のガイドで場所を示しています。
- クラウドデバイスの場合: クラウドデバイスのアドオン付きプラン。[クラウドデバイス](/docs/cloud-devices) を参照してください。

## MAS がエミュレータの adb ポートを見つける仕組み

MAS はエミュレータを見つけるために `adb devices` を実行しません。起動中のプロセスを既知のエミュレータ名でスキャンし、それぞれが待ち受けている TCP ポートを読み、そのエミュレータの既知の範囲内にあるポートだけを残します。`127.0.0.1`、`0.0.0.0`、またはすべてのインターフェイスにバインドされたポートだけが対象です。結果は **新しいデバイスを追加** ダイアログの **ポート** 一覧に、ポートごとにエミュレータ名付きで表示されます。

| エミュレータ | MAS が探すプロセス名 | MAS が受け付けるポート |
|---|---|---|
| BlueStacks | `HD-Player`、`BlueStacks` | 5555 から 8500 |
| LDPlayer | `LdVBoxHeadless`、`Ld9BoxHeadless`、`dnplayer`、`LDPlayer`、`VBoxNetNAT` | 5555 から 5599 の奇数ポート |
| Nox | `NoxVMHandle` | 62001 から 63000 |
| MEmu | `MEmuHeadless`、`MEmuHyper` | 21503 と、それより上で 30000 未満の末尾が 3 のすべてのポート |
| MuMu Player | `NemuHeadless`、`MuMu` | 5555 から 5599 の奇数ポート、7555、16384 から 16576、または 26624 から 27264 |

エミュレータのインスタンスはそれぞれ固有のポートで待ち受けるので、BlueStacks のウィンドウが 2 つあれば 2 つの項目として表示されます。お使いのエミュレータが表にない場合や、範囲外のポートで待ち受けている場合でも、ポートを手入力できます。

> [!TIP]
> MAS はプロセスをスキャンするので、追加する間はエミュレータのウィンドウを開いたままにしてください。停止中のインスタンスには見つけるべきポートがありません。

## Android エミュレータを自動化デバイスとして追加する

1. MAS で **デバイスグループ** を開き、**新しいグループを作成** をクリックします。
2. **名前** (3 から 255 文字) を入力し、種類は **ローカル** のままにして、**グループを作成** をクリックします。
3. グループを開き、**デバイスを追加** をクリックします。
4. 50 文字以内の **デバイス名** を入力します。
5. **ポート** でポートを選びます。再スキャンするには **更新** をクリックします。ポートがない場合は **カスタムポート** を選んで入力します (1024 から 65535)。
6. 必要なら **起動時マクロ** を選びます。
7. **デバイスを追加** をクリックします。

デバイスカードにはポート、マクロ、状態が表示されます: Stopped、Connecting、Starting、Running、Stopping、または Error。**開始** は `adb connect 127.0.0.1:<port>` でエミュレータに接続してマクロを起動し、**停止** は実行を終えます。ポートは 1 台のデバイスにしか属せません。同じポートを 2 度追加すると「Port is already in use」で失敗します。後でポートを変えるには **デバイスを編集** をクリックします。

1 つのグループ内の複数のデバイスに、それぞれ異なるマクロ、引数、設定プロファイルを持たせることができ、**すべて開始** で順番に実行します。[デバイスグループ](/docs/device-groups) を参照してください。

## クラウドデバイス

クラウドデバイスは、MAS があなたの代わりに動かす Android デバイスです。**クラウドデバイス** ページの **作成** で作り、Android バージョン、ディスプレイプリセット、DPI を選びます。これらはデバイスの寿命の間固定です。**開始** で起動し、**表示** で WebRTC 配信のライブ画面を開き、**実行** でアプリを閉じた後も動き続けるマクロを起動します。停止したデバイスはデータを保持し、1 アカウントあたり最大 20 台のクラウドデバイスを保持できます。APK のインストールや割り当てを含むその他の内容は [クラウドデバイス](/docs/cloud-devices) ページにあります。

## お手持ちのスマホ

> [!WARNING]
> スマホの操作は、アプリのテスト済み機能ではありません。以下の手順は MAS がデバイスに接続する仕組みから導いたものですが、MAS チームがすべてのスマホで検証したわけではありません。うまくいかない場合は [Discord](https://discord.gg/macroautomationstudio) で質問してください。

MAS はすべてのローカルデバイスをポートで追加し、常に `127.0.0.1` に接続します。USB ペアリング画面も無線ペアリング画面もありません。したがってスマホは、その adb デーモンにこのコンピューターの TCP ポートから到達できる場合にだけ動きます。USB では adb のポートフォワードでそれを実現します。

1. スマホで **開発者向けオプション** と **USB デバッグ** を有効にし、スマホを接続します。
2. コンピューターで `adb devices` を実行し、スマホ側の許可ダイアログを承認します。スマホのシリアルが `device` と表示される必要があります。
3. スマホの adb デーモンに TCP でも待ち受けるよう指示します: `adb tcpip 5555`。
4. ローカルポートをそこに転送します: `adb forward tcp:5580 tcp:5555`。空いているローカルポートならどれでも構いません。5580 は例です。
5. 確認します: `adb connect 127.0.0.1:5580` が「connected」と報告するはずです。
6. MAS で、**カスタムポート** を `5580` にしてデバイスを追加します。

スマホは接続したまま、画面はオンにしておきます。画面サイズと DPI はスマホから来るので、エミュレータで切り出したテンプレートは一致しません。Asset Lab でスマホから切り出してください。

> [!NOTE]
> MAS は接続時に独自の adb サーバーを起動します。PATH 上で別の adb ビルドが先にある場合、サーバーが互いに置き換わり、フォワードが失われます。先に MAS を起動し、MAS が使うのと同じ adb ビルドでフォワードを設定するか、`adb kill-server` を実行して手順 4 を繰り返してください。

無線デバッグも、スマホをペアリングして `adb connect <phone-ip>:<port>` で接続した後は同じ仕組みです: ローカルポートをスマホの adb ポートに転送し、そのローカルポートを MAS に追加します。

## Python から操作する

SDK は下にあるデバイスの種類を気にしません。`mas.get_device_info()` は名前と画面サイズを、`mas.get_screen_size()` はサイズだけを返し、すべてのタップ、スワイプ、スクリーンショットは同じ呼び出しを通ります。スクリプトはデバイスが結び付いた状態で MAS から起動されるので、コードで接続するものはありません。[SDK 概要](/docs/sdk) から始めてください。

## トラブルシューティング

### ポート一覧が空

エミュレータが動いていない、設定で ADB がオフ、または MAS がスキャンするエミュレータではありません。エミュレータの起動が終わってから **更新** をクリックしてください。それでも空なら、エミュレータ自身の設定に表示されるポートで **カスタムポート** を使います。[ADB トラブルシューティング](/docs/adb-troubleshooting) を参照してください。

### Port is already in use

グループ内の別のデバイスがすでにそのポートを持っています。各ポートは 1 度しか追加できません。古い項目を削除するか、もう一方のインスタンスのポートを選んでください。

### デバイスが Connecting のままか、Error で終わる

MAS が `adb connect` を完了できなかったか、エミュレータが最初のコマンドを拒否しました。ポートを確認し、ADB がオンであることを確かめ、[ADB トラブルシューティング](/docs/adb-troubleshooting) に従ってください。
