# Tự động hóa giả lập Android: giả lập, cloud và điện thoại

> Tự động hóa giả lập Android trong Macro Automation Studio: giả lập MAS nhận ra, quy tắc cổng adb, thêm thiết bị theo cổng, thiết bị cloud và điện thoại.

Source: https://automationmacro.com/vi/docs/devices (Thiết bị, updated 2026-09-05)

Tự động hóa giả lập Android trong Macro Automation Studio (MAS) bắt đầu từ một thiết bị: giả lập Android trên máy tính này, thiết bị cloud trong cloud của MAS, hoặc, như một cách nâng cao, điện thoại của chính bạn. Trang này giải thích cách MAS tìm giả lập, cách bạn thêm một giả lập, và hai loại còn lại nằm ở đâu trong bức tranh tự động hóa giả lập Android.

## Trước khi bắt đầu

- MAS đã cài và bạn đã đăng nhập với bản dùng thử hoặc gói đang hoạt động. Xem [Cài đặt MAS](/docs/install). MAS tải miễn phí để dùng thử; lấy từ [trang tải](/download).
- Với giả lập: giả lập đang chạy và ADB đã bật trong phần cài đặt của nó. Các hướng dẫn [BlueStacks](/docs/bluestacks-setup-guide), [LDPlayer](/docs/ldplayer-setup-guide), [MuMu Player](/docs/mumu-setup-guide) và [MEmu](/docs/memu-setup-guide) chỉ rõ chỗ.
- Với thiết bị cloud: gói có phần bổ sung thiết bị cloud. Xem [Thiết bị cloud](/docs/cloud-devices).

## Cách MAS tìm cổng adb của giả lập

MAS không chạy `adb devices` để tìm giả lập. Nó quét các tiến trình đang chạy để tìm tên giả lập đã biết, đọc các cổng TCP mỗi tiến trình đang nghe, và chỉ giữ một cổng khi nó nằm trong dải đã biết của giả lập đó. Chỉ các cổng gắn với `127.0.0.1`, `0.0.0.0` hoặc mọi giao diện mới được tính. Kết quả điền vào danh sách **Cổng** trong hộp thoại **Thêm thiết bị mới**, mỗi cổng một mục kèm tên giả lập bên cạnh.

| Giả lập | Tên tiến trình MAS tìm | Cổng MAS chấp nhận |
|---|---|---|
| BlueStacks | `HD-Player`, `BlueStacks` | 5555 đến 8500 |
| LDPlayer | `LdVBoxHeadless`, `Ld9BoxHeadless`, `dnplayer`, `LDPlayer`, `VBoxNetNAT` | Cổng lẻ từ 5555 đến 5599 |
| Nox | `NoxVMHandle` | 62001 đến 63000 |
| MEmu | `MEmuHeadless`, `MEmuHyper` | 21503 và mọi cổng kết thúc bằng 3 phía trên nó, dưới 30000 |
| MuMu Player | `NemuHeadless`, `MuMu` | Cổng lẻ từ 5555 đến 5599, cổng 7555, 16384 đến 16576, hoặc 26624 đến 27264 |

Mỗi instance giả lập nghe trên cổng riêng, nên hai cửa sổ BlueStacks hiện thành hai mục. Nếu giả lập của bạn không có trong bảng, hoặc nó nghe ngoài dải, bạn vẫn có thể gõ cổng bằng tay.

> [!TIP]
> MAS quét tiến trình, nên hãy giữ cửa sổ giả lập mở trong lúc bạn thêm nó. Một instance đã dừng thì không có cổng để tìm.

## Thêm giả lập Android làm thiết bị tự động hóa

1. Trong MAS, mở **Nhóm thiết bị** và nhấn **Tạo nhóm mới**.
2. Nhập **Tên** (3 đến 255 ký tự), giữ loại **Local**, và nhấn **Tạo nhóm**.
3. Mở nhóm và nhấn **Thêm thiết bị**.
4. Nhập **Tên thiết bị** tối đa 50 ký tự.
5. Chọn cổng trong **Cổng**. Nhấn **Làm mới** để quét lại. Nếu thiếu cổng, chọn **Cổng tùy chỉnh** và gõ vào (1024 đến 65535).
6. Tùy chọn, chọn một **Macro khởi động**.
7. Nhấn **Thêm thiết bị**.

Thẻ thiết bị hiển thị cổng, macro và trạng thái của nó: Đã dừng, Đang kết nối, Đang khởi động, Đang chạy, Đang dừng hoặc Lỗi. **Bắt đầu** kết nối với giả lập bằng `adb connect 127.0.0.1:<port>` và khởi chạy macro; **Dừng** kết thúc lần chạy. Một cổng chỉ thuộc về một thiết bị; thêm lần hai sẽ thất bại với "Port is already in use". Để đổi cổng về sau, nhấn **Sửa thiết bị**.

Nhiều thiết bị trong một nhóm có thể mang macro, tham số và hồ sơ cài đặt khác nhau, và **Bắt đầu tất cả** chạy chúng lần lượt. Xem [Nhóm thiết bị](/docs/device-groups).

## Thiết bị cloud

Thiết bị cloud là một thiết bị Android mà MAS chạy cho bạn. Bạn tạo nó trên trang **Thiết bị cloud** bằng nút **Tạo**, chọn phiên bản Android, preset màn hình và DPI, những thứ giữ cố định suốt đời thiết bị. **Bắt đầu** khởi động nó, **Xem** mở màn hình trực tiếp truyền qua WebRTC, và **Chạy** khởi chạy một macro tiếp tục chạy sau khi bạn đóng ứng dụng. Thiết bị đã dừng giữ nguyên dữ liệu; mỗi tài khoản có thể giữ tối đa 20 thiết bị cloud. Mọi thứ khác, gồm cài APK và hạn mức, nằm ở trang [Thiết bị cloud](/docs/cloud-devices).

## Điện thoại của bạn

> [!WARNING]
> Điều khiển điện thoại không phải là tính năng đã được kiểm thử của ứng dụng. Các bước dưới đây suy ra từ cách MAS kết nối thiết bị, nhưng đội ngũ MAS chưa xác minh trên mọi điện thoại. Nếu không thành công, hãy hỏi trong [Discord](https://discord.gg/macroautomationstudio).

MAS thêm mọi thiết bị local theo cổng và luôn quay số `127.0.0.1`. Không có màn hình ghép nối USB và không có màn hình ghép nối không dây. Do đó điện thoại chỉ hoạt động khi daemon adb của nó truy cập được qua một cổng TCP trên máy tính này. Qua USB, bạn đạt được điều đó bằng chuyển tiếp cổng adb.

1. Trên điện thoại, bật **Tùy chọn nhà phát triển** và **Gỡ lỗi USB**, rồi cắm điện thoại vào.
2. Trên máy tính, chạy `adb devices` và chấp nhận lời nhắc ủy quyền trên điện thoại. Số sê-ri của điện thoại phải hiện là `device`.
3. Bảo daemon adb của điện thoại nghe thêm trên TCP: `adb tcpip 5555`.
4. Chuyển tiếp một cổng cục bộ tới nó: `adb forward tcp:5580 tcp:5555`. Chọn bất kỳ cổng cục bộ nào còn trống; 5580 chỉ là ví dụ.
5. Kiểm tra: `adb connect 127.0.0.1:5580` phải báo "connected".
6. Trong MAS, thêm thiết bị với **Cổng tùy chỉnh** đặt là `5580`.

Giữ điện thoại cắm dây và màn hình sáng. Kích thước màn hình và DPI lấy từ điện thoại, nên ảnh mẫu cắt trên giả lập sẽ không khớp; hãy cắt từ điện thoại trong Asset Lab.

> [!NOTE]
> MAS khởi động máy chủ adb riêng khi kết nối. Nếu một bản adb khác đứng trước trên PATH của bạn, hai máy chủ thay thế lẫn nhau và chuyển tiếp bị mất. Khởi động MAS trước, rồi thiết lập chuyển tiếp bằng đúng bản adb MAS dùng, hoặc chạy `adb kill-server` và lặp lại bước 4.

Gỡ lỗi không dây hoạt động theo cách tương tự sau khi điện thoại đã ghép nối và kết nối bằng `adb connect <phone-ip>:<port>`: chuyển tiếp một cổng cục bộ tới cổng adb của điện thoại và thêm cổng cục bộ đó trong MAS.

## Điều khiển bằng Python

SDK không quan tâm loại thiết bị nào nằm bên dưới. `mas.get_device_info()` trả về tên và kích thước màn hình, `mas.get_screen_size()` chỉ trả về kích thước, và mọi cú chạm, vuốt và chụp màn hình đi qua cùng các lời gọi. Mã được MAS khởi chạy với thiết bị đã gắn sẵn, nên không có gì phải kết nối trong mã. Bắt đầu với [Tổng quan SDK](/docs/sdk).

## Khắc phục sự cố

### Danh sách Cổng trống

Giả lập chưa chạy, ADB đang tắt trong cài đặt của nó, hoặc nó không thuộc các giả lập MAS quét. Nhấn **Làm mới** sau khi giả lập khởi động xong. Nếu vẫn trống, dùng **Cổng tùy chỉnh** với cổng hiển thị trong cài đặt của giả lập. Xem [Khắc phục sự cố ADB](/docs/adb-troubleshooting).

### Port is already in use

Một thiết bị khác trong một nhóm của bạn đã giữ cổng đó. Mỗi cổng chỉ thêm được một lần. Xóa mục cũ hoặc chọn cổng của instance kia.

### Thiết bị đứng ở Đang kết nối hoặc kết thúc bằng Lỗi

MAS không hoàn tất được `adb connect`, hoặc giả lập từ chối lệnh đầu tiên. Kiểm tra cổng, xác nhận ADB đã bật, và làm theo [Khắc phục sự cố ADB](/docs/adb-troubleshooting).
