본문 바로가기
카테고리 없음

파이썬으로 핸드폰 자동화 시작하기 (adb, uiautomator, 휴대폰 자동화)

by 가치정보인 2025. 4. 5.
반응형

파이썬은 데스크탑 자동화뿐 아니라 안드로이드 스마트폰 제어에도 활용됩니다. 문자 보내기, 앱 실행, 화면 캡처, 터치 입력 등 다양한 작업을 자동화할 수 있죠. 특히 ADB(Android Debug Bridge)와 uiautomator2 같은 도구를 활용하면 복잡한 앱 테스트나 반복적인 휴대폰 조작도 코드로 간단히 처리할 수 있습니다. 이 글에서는 파이썬으로 핸드폰 자동화를 시작하는 데 필요한 기본 개념과 실전 예제를 함께 소개합니다.

ADB로 스마트폰 기본 제어하기

ADB는 안드로이드 개발자 도구의 일부로, 명령어를 통해 휴대폰을 원격으로 조작할 수 있는 도구입니다. 파이썬에서는 os.system() 또는 subprocess를 통해 ADB 명령어를 실행할 수 있습니다.

import os

os.system("adb shell input text '자동화테스트'")
os.system("adb shell input keyevent 66")
os.system("adb shell monkey -p com.kakao.talk 1")

ADB는 연결된 안드로이드 디바이스에서 작동하며, USB 디버깅이 활성화되어 있어야 합니다. 또한 adb devices 명령으로 연결 상태를 먼저 확인한 후 사용하는 것이 좋습니다. 초보자도 ADB 명령어를 파이썬에서 실행하는 것만으로도 강력한 모바일 자동화를 구현할 수 있습니다.

uiautomator2로 앱 내부 조작 자동화

ADB는 터치나 텍스트 입력 같은 기본 조작은 가능하지만, UI 요소를 정확히 식별해서 조작하긴 어렵습니다. 이때 유용한 라이브러리가 uiautomator2입니다. 이 도구는 앱 내부의 버튼, 텍스트, 리스트 등 다양한 요소를 직접 제어할 수 있게 해줍니다.

pip install uiautomator2
import uiautomator2 as u2

d = u2.connect()
d.app_start("com.android.settings")
d(text="네트워크 및 인터넷").click()

uiautomator2는 앱의 구조를 파악할 수 있도록 UI hierarchy를 분석해주며, d(text="..."), d(resourceId="...") 등을 사용해 UI 요소를 탐색할 수 있습니다. 화면 캡처, 좌표 기반 클릭, 스크롤, 입력, 앱 종료 등 거의 모든 앱 조작이 가능합니다.

d = u2.connect()
d.app_start("com.android.contacts")
d(resourceId="com.android.contacts:id/floating_action_button").click()
d(text="이름").set_text("홍길동")
d(text="전화번호").set_text("01012345678")
d(text="저장").click()

위 코드는 주소록 앱을 실행하고, 새 연락처를 자동으로 등록하는 예제입니다. 테스트 자동화, 사용자 시뮬레이션, 반복 작업 등에 매우 유용합니다.

모바일 자동화의 실전 활용법

파이썬을 활용한 휴대폰 자동화는 다음과 같은 실무에 활용할 수 있습니다:

  • 앱 테스트 자동화: QA 팀에서 수작업 없이 반복 테스트 수행
  • 콘텐츠 업로드 자동화: 이미지, 텍스트, 영상 업로드 작업 간소화
  • SMS/알림 전송: 마케팅 메시지 전송 자동화
  • 모바일 게임 매크로: 일정 좌표 반복 터치 자동화
  • 모바일 리포트 캡처: 정해진 앱에서 자동으로 캡처 후 저장

자동화 정확도를 높이기 위해 화면 구조 분석이 필요한 경우, uiautomator2의 dump_hierarchy() 기능이나 uiautomatorviewer 툴을 활용해 UI 정보를 미리 파악하고 스크립트를 설계하는 것이 좋습니다.

또한 schedule 라이브러리와 함께 사용하면 지정된 시간에 앱 자동 실행도 가능합니다. 파이썬 기반 자동화는 일반 사용자도 쉽게 배울 수 있는 강력한 도구이며, 비개발자도 GUI 중심 자동화를 시도할 수 있다는 점에서 활용도가 매우 높습니다.

파이썬으로 안드로이드 스마트폰을 자동화하는 방법은 생각보다 쉽고 강력합니다. ADB 명령으로 기본 조작을, uiautomator2로 앱 내부 요소를 제어하면 거의 모든 작업을 코드로 처리할 수 있죠. 지금부터 여러분의 스마트폰 자동화를 파이썬으로 시작해보세요. 단순한 테스트를 넘어, 진짜 ‘손 안의 자동화’를 구현할 수 있습니다!

반응형