monkeyrunner
를 실행하는 워크스테이션이 액세스할 수 있는 기기나 에뮬레이터를 나타내는 monkeyrunner 클래스입니다.
이 클래스는 Android 기기나 에뮬레이터를 제어하는 데 사용됩니다. 메서드는 UI 이벤트를 전송하고 정보를 검색하며 애플리케이션을 설치 및 삭제, 실행합니다.
일반적으로 MonkeyDevice
인스턴스를 생성할 필요는 없습니다. 대신
MonkeyRunner.waitForConnection()
을 사용하여 기기나 에뮬레이터 연결에서 새로운 객체를 생성합니다. 예를 들어 다음을 사용하는 대신
newdevice = MonkeyDevice()
다음을 사용합니다.
newdevice = MonkeyRunner.waitForConnection()
요약
상수 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
string | DOWN | press() 또는 touch()
의 type 인수와 함께 사용하여 DOWN 이벤트를 전송합니다.
|
|||||||||
string | UP | press() 또는 touch()
의 type 인수와 함께 사용하여 UP 이벤트를 전송합니다.
|
|||||||||
string | DOWN_AND_UP | press() 또는 touch()
의 type 인수와 함께 사용하여 DOWN 이벤트를 전송한 직후 UP 이벤트를 전송합니다.
|
메서드 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
인텐트를 애플리케이션에서 가져오는 것처럼 기기에 브로드캐스트합니다.
|
|||||||||||
이 기기의 화면에서 드래그 동작(터치, 길게 누르기, 빠른 동작)을 시뮬레이션합니다.
|
|||||||||||
|
시스템 환경 변수의 이름이 주어지면 이 기기의 값을 반환합니다.
사용할 수 있는 변수 이름은 이 메서드의 상세 설명에 나열되어 있습니다.
|
||||||||||
|
.
adb shell getprop <key>. This is provided for use
by platform developers.
와 동일한 API |
||||||||||
packageFile에 포함된 Android 애플리케이션이나 테스트 패키지를 이 기기에 설치합니다. 애플리케이션이나 테스트 패키지가 이미 설치되어 있으면 교체됩니다.
|
|||||||||||
|
Android 계측에서 지정된 구성요소를 실행하고 실행 중인 구성요소에 따라 정확한 형식이 지정된 사전에 결과를 반환합니다. 구성요소는 이미 이 기기에 존재해야 합니다.
|
||||||||||
유형별로 지정된 키 이벤트를 키 코드로 지정된 키로 전송합니다.
|
|||||||||||
이 기기를 bootloadType에서 지정한 부트로더로 재부팅합니다.
|
|||||||||||
데이터 및 캐시를 포함하여 이 기기에서 지정된 패키지를 삭제합니다.
|
|||||||||||
|
adb 셸 명령어를 실행하고 결과를 반환합니다(있는 경우).
|
||||||||||
제공된 인수로 구성된 인텐트를 전송함으로써 이 기기에서 활동을 시작합니다.
|
|||||||||||
MonkeyImage
|
기기의 전체화면 버퍼를 캡처하여 현재 디스플레이의 화면 캡처를 포함하는
MonkeyImage
객체를 생성합니다. |
||||||||||
유형별로 지정된 터치 이벤트를 x 및 y로 지정된 화면 위치로 전송합니다.
|
|||||||||||
메시지에 포함된 문자를 기기의 키보드에서 입력한 것처럼 기기로 전송합니다. 이는 키 이벤트 유형
DOWN_AND_UP 을 사용하여 message 에서 각 키 코드의 press() 를 호출하는 것과 같습니다.
|
|||||||||||
이 기기 화면의 절전 모드를 해제합니다.
|
상수
string DOWN_AND_UP
공개 메서드
void broadcastIntent ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
인텐트를 애플리케이션에서 가져오는 것처럼 기기에 브로드캐스트합니다. 인수에 관한 자세한 내용은 Intent
를 참조하세요.
인수
uri |
인텐트의 URI입니다
(Intent.setData() 참조).
|
---|---|
action | 인텐트의 작업입니다(Intent.setAction() 참조). |
data | 이 인텐트의 데이터 URI입니다(Intent.setData() 참조). |
mimetype | 인텐트의 MIME 유형입니다(Intent.setType() 참조). |
categories | 인텐트의 카테고리를 정의하는 문자열을 포함한 iterable 데이터 구조입니다(Intent.addCategory() 참조). |
extras | 인텐트의 추가 데이터 사전입니다(Intent.putExtra() 참조).각 사전 항목의 키는 string이 되어야 합니다. 항목값은 간단하거나 구조화된 데이터 유형일 수 있습니다. |
component | 이 인텐트의 구성요소입니다(ComponentName 참조). 이 인수를 사용하면 특정 Android 패키지 내의 특정 클래스로 인텐트를 보냅니다. |
flags | 인텐트 처리 방법을 제어하는 플래그가 포함된 iterable 데이터 구조입니다(Intent.setFlags() 참조). |
void drag ( tuple start, tuple end, float duration, integer steps)
이 기기의 화면에서 드래그 동작(터치, 길게 누르기, 빠른 동작)을 시뮬레이션합니다.
인수
start | x 및 y가 integer인 tuple(x, y) 형식 드래그 동작의 시작 지점입니다. |
---|---|
end | x 및 y가 integer인 tuple(x, y) 형식 드래그 동작의 종료 지점입니다. |
duration | 드래그 동작 지속 시간(초)입니다. 기본값은 1.0초입니다. |
단계 | 지점을 보간할 때 이행할 단계 수입니다. 기본값은 10입니다. |
object getProperty (string key)
시스템 환경 변수의 이름이 주어지면 이 기기의 값을 반환합니다.
인수
키 | 시스템 환경 변수의 이름입니다. 사용할 수 있는 변수 이름은 이 항목의 끝에 있는 표 1. 속성 변수 이름에 나열되어 있습니다. |
---|
반환 값
- 변수값입니다. 데이터 형식은 요청된 변수에 따라 다릅니다.
object getSystemProperty (string key)
getProperty()
의 동의어입니다.
인수
키 | 시스템 환경 변수의 이름입니다. 사용할 수 있는 변수 이름은 표 1. 속성 변수 이름에 나열되어 있습니다. |
---|
반환 값
- 변수값입니다. 데이터 형식은 요청된 변수에 따라 다릅니다.
void installPackage (string path)
packageFile에 포함된 Android 애플리케이션이나 테스트 패키지를 이 기기에 설치합니다. 애플리케이션이나 테스트 패키지가 이미 설치되어 있으면 교체됩니다.
인수
path |
설치할 .apk 파일의 정규화된 경로 및 파일 이름입니다.
|
---|
dictionary instrument ( string className, dictionary args)
Android 계측에서 지정된 구성요소를 실행하고 실행 중인 구성요소에 따라 정확한 형식이 지정된 사전에 결과를 반환합니다. 구성요소는 이미 이 기기에 존재해야 합니다.
이 메서드를 사용하여 Android의 테스트 사례 클래스 중 하나를 사용하는 테스트 사례를 시작하세요. Android 테스트 프레임워크를 사용한 단위 테스트에 관한 자세한 내용은 테스트 기본 요소를 참조하세요.
인수
className |
이 기기에 이미 설치된 Android 구성요소의 이름(표준 형식 packagename/classname)으로 packagename은 이 기기에 있는 .apk 파일의 Android 패키지 이름이고 classname은 같은 파일에 있는 Android 구성요소(활동 또는 ContentProvider, 서비스, BroadcastReceiver)의 클래스 이름입니다. packagename과 classname은 모두 정규화되어야 합니다. 자세한 내용은 ComponentName 를 참조하세요.
|
---|---|
인수 | 플래그와 그 값을 포함하는 사전입니다. 이러한 항목은 구성요소가 시작될 때 그 구성요소에 전달됩니다. 플래그가 값을 가지지 않으면 사전값을 빈 문자열로 설정하세요. |
반환 값
-
구성요소의 출력을 포함하는 사전입니다. 사전의 콘텐츠는 구성요소 자체로 정의됩니다.
componentName 인수에서 클래스 이름으로
InstrumentationTestRunner
를 사용하면 결과 사전에 단일 키 '스트림'이 포함됩니다. '스트림' 값은InstrumentationTestRunner
가 명령줄에서 실행된 것처럼 테스트 출력을 포함하는 string입니다. 이 출력의 형식은 다른 IDE에서 테스트에 설명되어 있습니다.
void press (string name, integer type)
type
으로 지정된 키 이벤트를 keycode
로 지정된 키로 전송합니다.
인수
이름 |
전송할 키 코드 이름입니다. 키 코드 이름 목록은 KeyEvent 를 참조하세요. 키 코드의 정숫값이 아닌 키 코드 이름을 사용하세요.
|
---|---|
유형 |
전송할 키 이벤트의 유형입니다. 허용되는 값은
DOWN , UP 및 DOWN_AND_UP 입니다.
|
void reboot (string bootloadType)
이 기기를 bootloadType
에서 지정한 부트로더로 재부팅합니다.
인수
into | 재부팅할 부트로더 유형입니다. 허용 값은 'bootloader', 'recovery' 또는 'None'입니다. |
---|
void removePackage (string package)
데이터 및 캐시를 포함하여 이 기기에서 지정된 패키지를 삭제합니다.
인수
package |
이 기기에 있는 .apk 파일의 Android 패키지 이름입니다.
|
---|
object shell (string cmd)
adb
셸 명령어를 실행하고 결과를 반환합니다(있는 경우).
인수
cmd |
adb 셸에서 실행할 명령어입니다. 명령어의 형식은 Android 디버그 브리지 항목에 설명되어 있습니다.
|
---|
반환 값
- 명령어의 결과입니다(있는 경우). 결과 형식은 명령어에 따라 결정됩니다.
void startActivity ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
제공된 인수로 구성된 인텐트를 전송함으로써 이 기기에서 활동을 시작합니다.
인수
uri |
인텐트의 URI입니다
(Intent.setData() 참조).
|
---|---|
action | 인텐트의 작업입니다(Intent.setAction() 참조). |
data | 이 인텐트의 데이터 URI입니다(Intent.setData() 참조). |
mimetype | 인텐트의 MIME 유형입니다(Intent.setType() 참조). |
categories | 이 인텐트의 카테고리를 정의하는 문자열을 포함한 iterable 데이터 구조입니다(Intent.addCategory() 참조). |
extras | 인텐트의 추가 데이터 사전입니다(Intent.putExtra() 참조).각 사전 항목의 키는 string이 되어야 합니다. 항목값은 간단하거나 구조화된 데이터 유형일 수 있습니다. |
component | 이 인텐트의 구성요소입니다(ComponentName 참조). 이 인수를 사용하면 특정 Android 패키지 내의 특정 클래스로 인텐트를 보냅니다. |
flags | 인텐트 처리 방법을 제어하는 플래그가 포함된 iterable 데이터 구조입니다(Intent.setFlags() 참조). |
MonkeyImage
takeSnapshot
()
기기의 전체화면 버퍼를 캡처하여 현재 디스플레이의 화면 캡처를 생성합니다.
반환 값
- 현재 디스플레이 이미지를 포함하는 MonkeyImage 객체입니다.
void touch ( integer x, integer y, string type)
유형별로 지정된 터치 이벤트를 x 및 y로 지정된 화면 위치로 전송합니다.
인수
x | 실제 기기 픽셀에서 터치의 수평 위치로 현재 방향에서 화면 왼쪽부터 시작합니다. |
---|---|
y | 실제 기기 픽셀에서 터치의 수직 위치로 현재 방향에서 화면 위부터 시작합니다. |
type |
전송할 키 이벤트의 유형입니다. 허용되는 값은
DOWN , UP 및 DOWN_AND_UP 입니다.
|
void type (string message)
메시지에 포함된 문자를 기기의 키보드에서 입력한 것처럼 기기로 전송합니다. 이것은 키 이벤트 유형 DOWN_AND_UP
을 사용하여 message
에서 각 키 코드의 press()
를 호출하는 것과 같습니다.
인수
메시지 | 전송할 문자가 포함된 문자열입니다. |
---|
void wake ()
이 기기 화면의 절전 모드를 해제합니다.
부록
속성 그룹 | 속성 | 설명 | 메모 |
---|---|---|---|
build |
board |
기기 시스템 보드의 코드명입니다. | Build 보기 |
brand |
OS가 맞춤설정된 이동통신사 또는 제공업체입니다. | ||
device |
기기 디자인 이름입니다. | ||
fingerprint |
현재 실행 중인 빌드의 고유 식별자입니다. | ||
host |
|||
ID |
변경 목록 번호 또는 라벨입니다. | ||
model |
기기의 최종 사용자가 볼 수 있는 이름입니다. | ||
product |
전체 제품 이름입니다. | ||
tags |
빌드를 설명하는 쉼표로 구분된 태그입니다(예: 'unsigned' 및 'debug'). | ||
type |
빌드 유형입니다(예: 'user' 또는 'eng'). | ||
user |
|||
CPU_ABI |
CPU 유형과 ABI 규칙의 형식으로 된 네이티브 코드 명령 집합의 이름입니다. | ||
manufacturer |
제품/하드웨어 제조업체입니다. | ||
version.incremental |
소스 제어 시스템이 이 버전의 소프트웨어를 나타내는 데 사용하는 내부 코드입니다. | ||
version.release |
사용자가 볼 수 있는 이 버전의 소프트웨어 이름입니다. | ||
version.sdk |
이 OS 버전과 연결된 사용자가 볼 수 있는 SDK 버전입니다. | ||
version.codename |
현재 개발 코드명 또는 이 소프트웨어 버전이 출시되었다면 'REL'입니다. | ||
display |
width |
기기의 디스플레이 너비(픽셀)입니다. | 자세한 내용은 DisplayMetrics 을 참조하세요. |
height |
기기의 디스플레이 높이(픽셀)입니다. | ||
density |
디스플레이의 논리적 밀도입니다. 이는 DIP(밀도 독립형 픽셀) 단위로 기기의 해상도를 조정하는 요소입니다. 1 DIP가 인치당 160픽셀 디스플레이의 1픽셀과 같도록 DIP를 조정합니다. 예를 들어 160dpi 화면에서는 밀도 = 1.0이고 120dpi 화면에서는 밀도 = 0.75입니다.
이 값이 실제 화면 크기를 정확히 따르지는 않지만 디스플레이 DPI의 큰 변화에 맞게 조정됩니다. 자세한 내용은 |
||
am.current |
package |
현재 실행 중인 패키지의 Android 패키지 이름입니다. | am.current 키가 현재 실행 중인 활동에 관한 정보를 반환합니다. |
action |
현재 활동의 작업입니다. 패키지 매니페스트에 속한 action 요소의 name 속성과 형식이 같습니다.
|
||
comp.class |
현재 활동을 시작한 구성요소의 클래스 이름입니다. 자세한 내용은 comp.package 을 참조하세요. |
||
comp.package |
현재 활동을 시작한 구성요소의 패키지 이름입니다. 구성요소는 패키지 이름과 패키지에 포함된 클래스 이름으로 지정됩니다. | ||
data |
현재 활동을 시작한 인텐트에 포함된 데이터입니다(있는 경우). | ||
categories |
현재 활동을 시작한 인텐트로 지정된 카테고리입니다. | ||
clock |
realtime |
기기가 재부팅된 이후의 밀리초 단위 시간으로, 최대 절전 모드 시간을 포함합니다. |
자세한 내용은 SystemClock 를 참조하세요.
|
uptime |
기기가 재부팅된 이후의 밀리초 단위 시간으로, 최대 절전 모드 시간을 포함하지 않습니다. | ||
millis |
UNIX 에포크 이후의 현재 밀리초 단위 시간입니다. |