기기
MuMu Player 12 ADB 포트 확인과 MAS 연결 설정
MuMu Player 12의 ADB 포트를 찾아 Macro Automation Studio에 연결하고, 모든 인스턴스를 기기로 추가하며, 조작 녹화 대신 MAS 매크로를 실행하는 방법을 설명합니다.
- Windows
- Mac
- 에뮬레이터
- 스튜디오
- Python SDK
이 페이지의 내용
이 가이드는 MuMu Player 12 ADB 포트를 찾아 인스턴스를 Macro Automation Studio(MAS)에 연결하는 방법과, MAS 매크로가 MuMu의 Operation Recording과 어떻게 다른지 설명합니다. MuMu Player 12 ADB 포트 확인 절차는 Windows 기준이며, Mac 빌드는 짧은 절에서 다룹니다.
시작하기 전에
- Windows 10 또는 11, 또는 Apple Silicon Mac에 MAS가 설치되어 있고 로그인한 상태. 체험용 MAS는 다운로드 페이지에서 무료로 받을 수 있습니다.
- mumuplayer.com에서 MuMu Player 12를 설치하고 한 번 실행한 상태.
- 인스턴스가 Android 홈 화면까지 완전히 부팅된 상태.
- 자동화할 앱이 MuMu Player 안에 설치되어 있고 로그인된 상태.
1. MuMu Player 12 설치
- 공식 사이트에서 MuMu Player 12를 받아 설치 프로그램을 실행합니다.
- MuMu Player를 시작하고 홈 화면을 기다립니다.
- MAS에 기기를 추가하기 전에 자동화할 앱을 설치하고 로그인합니다.
2. 고정 해상도 설정
MAS는 템플릿 이미지를 픽셀 단위로 비교하므로 해상도를 한 번 정하고 유지하세요.
- MuMu Player 창 오른쪽 위의 Settings를 클릭합니다.
- Display를 열고 사용자 지정 해상도를 고릅니다.
- 너비 540, 높이 960, DPI 240을 입력합니다. 이것이 MAS 기준선입니다. 직접 쓴 매크로는 Asset Lab에서 캡처한 해상도를 기대합니다.
- 저장하고 MuMu Player가 요청하면 인스턴스를 다시 시작합니다.
3. MuMu Player 12에서 ADB 켜기
공식 ADB 안내에는 MuMu Player 12용 토글이 없습니다. 실행 중인 인스턴스는 별도 설정 없이 자기 포트에서 adb에 응답하므로, 필요한 것은 포트 번호입니다:
- 인스턴스 하나라면 창 오른쪽 위의 메뉴를 열고 Issues Diagnostic을 선택합니다. 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 범위는 주 인스턴스와 그다음 여섯 개를 다룹니다. 7555와 5555 범위는 이전 MuMu 버전에서 온 것입니다. 조건에 맞는 포트는 Add New Device 대화 상자에 MuMu 레이블로 나타납니다. 예를 들어 16384 - MuMu입니다. MAS는 기기 그룹을 열 때와 Refresh를 클릭할 때마다 스캔합니다.
5. MAS에서 MuMu Player ADB 연결
- 사이드바에서 Device Groups를 열고 그룹을 열거나 새로 만듭니다.
- Add Device를 클릭합니다.
- 최대 50자의 Device Name을 입력합니다.
- Port에서 이 인스턴스의
MuMu항목을 고릅니다. 목록이 비어 있으면 Refresh를 클릭합니다. - Issues Diagnostic에 표시된 포트가 위 규칙에 맞지 않으면 Custom Port를 선택하고 입력합니다. MAS는 1024부터 65535까지 받습니다.
- 필요하면 Startup Macro를 고릅니다.
- Add Device를 클릭한 뒤 기기 카드에서 Start를 클릭합니다.
카드가 Connecting을 거쳐 Running으로 바뀝니다. MAS는 자체 adb 서버를 시작하고, 127.0.0.1:<port>의 오래된 항목을 제거한 뒤, 그 주소로 adb connect를 실행합니다.
MuMu Player의 매크로
MuMu의 Operation Recording은 탭을 녹화해 파일에서 재생하며, 세 가지 정지 조건(Execute x times to stop, Execute xx time to stop, Infinite loop to manual stop)과 Cycle interval이 있습니다. 재생 시 해상도가 녹화 때와 같아야 한다고 공식 문서가 경고합니다. 파일은 화면을 보지 않고 고정 좌표를 재생하므로, 느린 로딩, 팝업, 위치가 바뀐 버튼이 순서를 깨뜨리고, MuMu Player 안에서만 실행됩니다.
MAS 매크로는 행동하기 전에 화면을 확인하는 파이썬 스크립트입니다. 템플릿 매칭으로 버튼을 찾고, OCR로 텍스트를 읽고, 재시도로 기다리고, 본 것에 따라 분기합니다. MAS가 모든 기기를 adb로 조작하므로 같은 스크립트가 MuMu Player, 다른 에뮬레이터, 클라우드 기기에서 수정 없이 실행됩니다.
- 녹화를 화면 인식 매크로로 다시 만들려면 이미지 인식 매크로를 따라 하세요.
- 조건이 충족될 때까지 반복하거나 예약 실행하려면 반복, 정지 조건, 예약 실행을 읽어 보세요.
여러 MuMu 인스턴스
오른쪽 위의 도구 상자 아이콘에서 MuMuPlayer Multi-instance 12를 엽니다. +New가 인스턴스를 만들고 Device setting이 성능과 디스플레이를 정하므로, 모든 인스턴스에 같은 해상도를 주세요. 인스턴스마다 이전 것보다 32 큰 자기 포트로 수신합니다. 같은 기기 그룹에 각각 별도 기기로 추가하고, 기기별로 매크로와 설정 프로필을 지정한 뒤, 그룹의 Start All과 Stop All을 사용하세요. 여덟 번째 인스턴스부터는 포트가 16576을 넘어 MAS 목록에 더 이상 나타나지 않으므로 Custom Port로 추가하세요. 기기별 인수와 프록시는 기기 그룹을 참고하세요.
Mac에서의 MuMu Player
MuMu는 Apple Silicon Mac용 빌드도 제공합니다. 공식 안내에 따르면 거기서는 ADB가 메뉴 바에 있습니다. 기기가 실행 중일 때 Tools를 열고 **Open ADB (device port number)**를 선택합니다. 항목에 포트가 표시되며 기본값은 역시 16384입니다. MAS의 스캔에 나타나지 않으면 Custom Port로 추가하세요.
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 항목이 없거나, 표시된 항목이 다른 인스턴스의 것입니다.
- Issues Diagnostic 또는 MuMuPlayer Multi-instance 12의 ADB 아이콘에서 포트를 읽어 기기 카드와 비교하고 Edit Device로 고치세요.
- 16384부터 인스턴스마다 32씩, 포트가 사용 중이었다면 1을 더해 세어 보세요(16384 대신 16385).
- 인스턴스가 아직 부팅 중이라 포트가 아직 열리지 않았습니다. 홈 화면을 기다리고 Refresh를 클릭하세요.
- 포트가 16576보다 크거나 스캔 규칙 밖입니다. Custom Port를 선택하고 입력하세요.
MuMu ADB 연결 실패
기기 카드에 “Failed to start device”와 함께 Error가 표시되거나, 로그에 “unable to connect to device”가 나오거나, adb가 “cannot connect” 또는 “connection refused”를 출력합니다.
- 그 포트에서 수신하는 것이 없습니다. 위 방법으로 번호를 확인하고 인스턴스가 실행 중인지 확인하세요.
- 두 번째 adb 서버가 오래된 항목을 갖고 있습니다. 자체 adb 서버를 실행하는 다른 도구를 닫고 Stop을 클릭한 뒤 인스턴스를 다시 시작하고 Start를 클릭하세요. MAS가 처음부터 다시 연결합니다.
adb devices에 포트가offline으로 나옵니다. 인스턴스를 다시 시작하고, 계속 offline이면 MAS를 다시 시작해 adb 서버를 깨끗하게 시작하세요.- 스캔이 “Failed to scan emulator ports”를 표시했습니다. MAS를 다시 시작하고 대화 상자를 다시 여세요.
adb의 원본 응답을 보려면 터미널에서 adb connect 127.0.0.1:16384를 실행하세요. 더 많은 해결법은 ADB 문제 해결에 있습니다.
MuMu에서의 매크로 반복
Infinite loop to manual stop으로 설정된 녹화는 반복을 계속해야 하는지 판단할 수 없어 목표에 도달하거나 팝업이 떠도 계속 탭합니다. MAS 매크로는 파이썬에서 정지 조건과 함께 반복합니다: 나타나는 템플릿, OCR로 읽은 숫자, 반복 횟수. 반복, 정지 조건, 예약 실행에 패턴이 있습니다. MAS 반복이 멈추면 기기 카드의 Logs를 여세요. ImageNotFoundError와 TimeoutError가 실패한 단계를 알려 주며, 보통 원인은 템플릿과 더 이상 맞지 않는 해상도입니다.
파이썬으로 제어
카드가 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 개요에서, 완전한 첫 스크립트는 파이썬으로 안드로이드 에뮬레이터 제어하기에서 읽어 보세요.
다음 단계
관련 페이지
감사합니다. 잘못된 내용이 있으면 Discord에서 알려 주세요.
궁금한 점이 있으신가요? Discord에서 질문하기