คลาส monkeyrunner ที่แสดงถึงอุปกรณ์หรือโปรแกรมจำลองที่เข้าถึงได้โดยเวิร์กสเตชันที่กำลังทำงาน
monkeyrunner
ชั้นเรียนนี้ใช้เพื่อควบคุมอุปกรณ์หรือโปรแกรมจำลอง Android เมธอดต่างๆ ที่ส่งเหตุการณ์ UI เรียกดูข้อมูล ติดตั้งและนำแอปพลิเคชันออก และเรียกใช้แอปพลิเคชัน
โดยปกติคุณไม่จำเป็นต้องสร้างอินสแตนซ์ของ MonkeyDevice แต่คุณ
ใช้
MonkeyRunner.waitForConnection() เพื่อสร้างออบเจ็กต์ใหม่จากการเชื่อมต่อกับอุปกรณ์หรือ
โปรแกรมจำลอง ตัวอย่างเช่น แทนที่จะแสดง
โดยใช้:
newdevice = MonkeyDevice()
ที่คุณจะใช้
newdevice = MonkeyRunner.waitForConnection()
สรุป
| ค่าคงที่ | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| สตริง | ลง |
ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ
press()หรือtouch()
เพื่อส่งเหตุการณ์ DOWN
|
|||||||||
| สตริง | ขึ้น |
ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ
press()หรือtouch()
เพื่อส่งเหตุการณ์ UP
|
|||||||||
| สตริง | ลดลง |
ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ
press()หรือtouch()
เพื่อส่งเหตุการณ์ DOWN แล้วตามด้วยเหตุการณ์ "ขึ้น"
|
|||||||||
| วิธีการ | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
เผยแพร่ Intent ในอุปกรณ์เครื่องนี้ ราวกับว่า Intent มาจาก
แอปพลิเคชัน
|
||||||||||
|
|
จำลองท่าทางสัมผัสการลาก (แตะค้างไว้ และย้าย) บนหน้าจอของอุปกรณ์นี้
|
||||||||||
|
|
แสดงผลค่าสำหรับอุปกรณ์นี้ในฐานะชื่อของตัวแปรสภาพแวดล้อมระบบ
ชื่อตัวแปรที่ใช้ได้จะแสดงอยู่ในคอลัมน์
คำอธิบายโดยละเอียด ของวิธีการนี้
|
||||||||||
|
|
เทียบเท่ากับ API ของ
adb shell getprop <key>. This is provided for use
by platform developers.
|
||||||||||
|
|
ติดตั้งแอปพลิเคชัน Android หรือแพ็กเกจทดสอบที่มีในpackageFile ลงใน
อุปกรณ์ หากติดตั้งแอปพลิเคชันหรือแพ็กเกจทดสอบไว้แล้ว ระบบจะแทนที่แอปพลิเคชันดังกล่าว
|
||||||||||
|
|
เรียกใช้คอมโพเนนต์ที่ระบุในส่วนการใช้เครื่องมือ Android และแสดงผลลัพธ์
ในพจนานุกรมซึ่งมีรูปแบบที่แน่นอนตามที่กำหนดโดยคอมโพเนนต์ที่เรียกใช้
คอมโพเนนต์ต้องมีในอุปกรณ์เครื่องนี้แล้ว
|
||||||||||
|
|
ส่งเหตุการณ์สำคัญที่ระบุตามประเภทไปยังคีย์ที่ระบุโดย
รหัสคีย์
|
||||||||||
|
|
รีบูตอุปกรณ์นี้ใน Bootloader ที่ระบุโดย BootloadType
|
||||||||||
|
|
ลบแพ็กเกจที่ระบุออกจากอุปกรณ์นี้ รวมถึงข้อมูลและแคชของอุปกรณ์
|
||||||||||
|
|
เรียกใช้คำสั่ง Shell
adb และแสดงผลลัพธ์ (หากมี)
|
||||||||||
|
|
เริ่มกิจกรรมในอุปกรณ์นี้โดยการส่ง Intent ที่สร้างขึ้นจาก
อาร์กิวเมนต์ที่ระบุ
|
||||||||||
MonkeyImage
|
จับภาพบัฟเฟอร์หน้าจอทั้งหมดของอุปกรณ์นี้ โดยแสดง
ออบเจ็กต์
MonkeyImage
รายการที่มีการจับภาพหน้าจอของจอแสดงผลปัจจุบัน
|
||||||||||
|
|
ส่งเหตุการณ์การแตะที่ระบุตามประเภทไปยังตำแหน่งหน้าจอที่ระบุ
คูณ x และ y
|
||||||||||
|
|
ส่งอักขระที่อยู่ในข้อความไปยังอุปกรณ์นี้ ราวกับว่า
บนแป้นพิมพ์ของอุปกรณ์ ซึ่งเทียบเท่ากับการโทร
press() สำหรับแต่ละรหัสคีย์ใน message
โดยใช้เหตุการณ์สำคัญประเภท DOWN_AND_UP
|
||||||||||
|
|
ปลุกหน้าจอของอุปกรณ์นี้
|
||||||||||
ค่าคงที่
สตริง ลง
สตริง ขึ้น
สตริง ลง_และ_ขึ้น
วิธีการสาธารณะ
เป็นโมฆะ broadcastIntent ( URI แบบ string การดำเนินการ string สตริง string mimetype, หมวดหมู่ทำซ้ำได้ ส่วนเสริมพจนานุกรมเพิ่มเติม คอมโพเนนต์ แฟล็กที่สร้างซ้ำได้)
เผยแพร่ Intent ในอุปกรณ์เครื่องนี้ ราวกับว่า Intent มาจาก
แอปพลิเคชัน โปรดดู Intent สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
อาร์กิวเมนต์
อาร์กิวเมนต์
| URI |
URI สำหรับ Intent
(ดู Intent.setData())
|
|---|---|
| การดำเนินการ |
การดำเนินการสำหรับ Intent นี้
(ดู Intent.setAction())
|
| ข้อมูล |
URI ข้อมูลสำหรับ Intent นี้
(ดู Intent.setData())
|
| ประเภท MIME |
ประเภท MIME สำหรับ Intent
(ดู Intent.setType())
|
| หมวดหมู่ |
โครงสร้างข้อมูลที่เกิดซ้ำได้ซึ่งมีสตริงซึ่งกำหนดหมวดหมู่ในกรณีนี้
ความตั้งใจ
(โปรดดู
Intent.addCategory())
|
| เพิ่มเติม |
พจนานุกรมข้อมูลเพิ่มเติมสำหรับ Intent นี้
(ดู Intent.putExtra()
เป็นต้น)
คีย์สำหรับรายการพจนานุกรมแต่ละรายการควรเป็นสตริง มูลค่าของรายการ จะเป็นประเภทข้อมูลที่มีโครงสร้างหรือเรียบง่ายก็ได้ |
| คอมโพเนนต์ |
คอมโพเนนต์สำหรับ Intent นี้ (ดู ComponentName)
การใช้อาร์กิวเมนต์นี้จะกำหนดเส้นทาง Intent ไปยังคลาสที่เฉพาะเจาะจงภายใน
แพ็กเกจ Android
|
| Flag |
โครงสร้างข้อมูลแบบทำซ้ำได้ซึ่งมี Flag ที่ควบคุมวิธีจัดการ Intent
(ดู Intent.setFlags())
|
เป็นโมฆะ ลาก ( เริ่มต้น tuple สิ้นสุด tuple ระยะเวลาแบบลอย จำนวนเต็ม ขั้นตอน)
จำลองท่าทางสัมผัสการลาก (แตะค้างไว้ และย้าย) บนหน้าจอของอุปกรณ์นี้
อาร์กิวเมนต์
| เริ่มต้น | จุดเริ่มต้นของท่าทางสัมผัสการลากในรูปแบบของTuple (x,y) โดยที่ x และ y เป็นจำนวนเต็ม |
|---|---|
| End | จุดสิ้นสุดของท่าทางสัมผัสการลากในรูปแบบของทูเปิล (x,y) โดยที่ x และ y เป็นจำนวนเต็ม |
| ระยะเวลา | ระยะเวลาของท่าทางสัมผัสการลากเป็นวินาที ค่าเริ่มต้นคือ 1.0 วินาที |
| จำนวนก้าว | จำนวนขั้นตอนที่ต้องทำเมื่อหาค่าจุดต่างๆ ค่าเริ่มต้นคือ 10 |
ออบเจ็กต์ getProperty (คีย์ string)
แสดงผลค่าสำหรับอุปกรณ์นี้ในฐานะชื่อของตัวแปรสภาพแวดล้อมระบบ
อาร์กิวเมนต์
| คีย์ | ชื่อของตัวแปรสภาพแวดล้อมของระบบ ชื่อตัวแปรที่ใช้ได้จะแสดงใน ตาราง 1. ชื่อตัวแปรพร็อพเพอร์ตี้ในตอนท้ายของหัวข้อนี้ |
|---|
คิกรีเทิร์น
- ค่าของตัวแปร รูปแบบข้อมูลจะแตกต่างกันไปตามตัวแปรที่ขอ
ออบเจ็กต์ getSystemProperty (คีย์ string)
คำพ้องความหมายของ getProperty()
อาร์กิวเมนต์
| คีย์ | ชื่อของตัวแปรสภาพแวดล้อมของระบบ ชื่อตัวแปรที่ใช้ได้จะแสดงใน ตาราง 1. ชื่อตัวแปรพร็อพเพอร์ตี้ |
|---|
คิกรีเทิร์น
- ค่าของตัวแปร รูปแบบข้อมูลจะแตกต่างกันไปตามตัวแปรที่ขอ
เป็นโมฆะ installPackage (เส้นทาง สตริง)
ติดตั้งแอปพลิเคชัน Android หรือแพ็กเกจทดสอบที่อยู่ในpackageFile ลงในอุปกรณ์เครื่องนี้ หากมีการติดตั้งแอปพลิเคชันหรือแพ็กเกจทดสอบไว้แล้ว ระบบจะดำเนินการ แทนที่แล้ว
อาร์กิวเมนต์
| เส้นทาง |
เส้นทางและชื่อไฟล์ที่สมบูรณ์ในตัวเองของไฟล์ .apk ที่จะติดตั้ง
|
|---|
พจนานุกรม เครื่องมือ ( string className, พจนานุกรม)
เรียกใช้คอมโพเนนต์ที่ระบุด้วยการใช้เครื่องมือ Android และแสดงผลลัพธ์ ในพจนานุกรมซึ่งมีรูปแบบที่แน่นอนตามที่กำหนดโดยคอมโพเนนต์ที่เรียกใช้ คอมโพเนนต์ต้องมีในอุปกรณ์เครื่องนี้แล้ว
ใช้วิธีนี้เพื่อเริ่มกรอบการทดสอบที่ใช้คลาสกรอบการทดสอบรายการใดรายการหนึ่งของ Android ดูการทดสอบ ความรู้พื้นฐานสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบ 1 หน่วยด้วยการทดสอบ Android
อาร์กิวเมนต์
| ชื่อคลาส |
ชื่อของคอมโพเนนต์ Android ที่ติดตั้งไว้ในอุปกรณ์นี้แล้วใน
ชื่อแพ็คเกจ/ชื่อคลาสของฟอร์มมาตรฐาน โดยที่ชื่อแพ็กเกจคือชื่อ
ชื่อแพ็กเกจ Android ของไฟล์ .apk ในอุปกรณ์นี้ และ
classname คือชื่อคลาสของคอมโพเนนต์ Android (Activity,
ContentProvider, Service หรือ BroadcastReceiver) ในไฟล์นั้น ทั้ง 2 อย่าง
แพ็กเกจname และ classname ต้องเป็นชื่อแบบเต็ม โปรดดู
ComponentNameเพื่อดูรายละเอียดเพิ่มเติม
|
|---|---|
| อาร์กิวเมนต์ | พจนานุกรมที่มี Flag และค่าต่างๆ ซึ่งจะส่งต่อไปยังคอมโพเนนต์ เริ่มทำงานแล้ว หากธงไม่ใช้ค่า ให้กำหนดค่าพจนานุกรมเป็นค่าว่าง สตริง |
คิกรีเทิร์น
-
พจนานุกรมที่มีเอาต์พุตของคอมโพเนนต์ เนื้อหาของพจนานุกรม กำหนดโดยตัวคอมโพเนนต์เอง
หากคุณใช้
InstrumentationTestRunnerเป็นชื่อชั้นเรียนใน อาร์กิวเมนต์คอมโพเนนต์ชื่อ พจนานุกรมผลการค้นหาจะมี คีย์เดียว "สตรีม" ค่าของ "สตรีม" เป็นสตริงที่มี เอาต์พุตทดสอบ เสมือนว่าInstrumentationTestRunnerถูกเรียกใช้จาก บรรทัดคำสั่ง รูปแบบของผลลัพธ์นี้มีอธิบายอยู่ใน การทดสอบใน IDE อื่นๆ
เป็นโมฆะ กด (ชื่อ สตริง, ประเภทจำนวนเต็ม)
ส่งเหตุการณ์สำคัญที่ type ระบุไปยังคีย์ที่ระบุโดย
keycode
อาร์กิวเมนต์
| ชื่อ |
ชื่อของรหัสคีย์ที่จะส่ง ดูรายการของ KeyEvent
ชื่อรหัสคีย์ ใช้ชื่อรหัสคีย์ ไม่ใช่ค่าจำนวนเต็ม
|
|---|---|
| ประเภท |
ประเภทของเหตุการณ์สําคัญที่จะส่ง ค่าที่อนุญาตคือ
DOWN, UP และ
DOWN_AND_UP
|
เป็นโมฆะ รีบูต (string BootloadType)
รีบูตอุปกรณ์นี้ใน Bootloader ที่ระบุโดย bootloadType
อาร์กิวเมนต์
| เข้าสู่ | ประเภทของ Bootloader ที่จะรีบูต ค่าที่อนุญาตได้แก่ "bootloader" "recovery" หรือ "ไม่มี" |
|---|
เป็นโมฆะ นำแพ็กเกจออก (แพ็กเกจ สตริง)
ลบแพ็กเกจที่ระบุออกจากอุปกรณ์นี้ รวมถึงข้อมูลและแคชของอุปกรณ์
อาร์กิวเมนต์
| พัสดุ |
ชื่อแพ็กเกจ Android ของไฟล์ .apk ในอุปกรณ์นี้
|
|---|
ออบเจ็กต์ เชลล์ (string cmd)
เรียกใช้คำสั่ง Shell adb และแสดงผลลัพธ์ (หากมี)
อาร์กิวเมนต์
| CMD |
คำสั่งที่จะดำเนินการในเชลล์ adb รูปแบบของคำสั่งเหล่านี้คือ
ที่อธิบายไว้ในหัวข้อAndroid
Debug Bridge
|
|---|
คิกรีเทิร์น
- ผลลัพธ์ของคำสั่ง (หากมี) รูปแบบของผลลัพธ์จะกำหนดตาม คำสั่ง
เป็นโมฆะ startActivity ( URI แบบ string การดำเนินการ string สตริง string mimetype, หมวดหมู่ทำซ้ำได้ ส่วนเสริมพจนานุกรมเพิ่มเติม คอมโพเนนต์ แฟล็กที่สร้างซ้ำได้)
เริ่มกิจกรรมในอุปกรณ์นี้โดยการส่ง Intent ที่สร้างขึ้นจาก อาร์กิวเมนต์ที่ระบุ
อาร์กิวเมนต์
| URI |
URI สำหรับ Intent
(ดู Intent.setData())
|
|---|---|
| การดำเนินการ |
การดำเนินการสำหรับ Intent
(ดู Intent.setAction())
|
| ข้อมูล |
URI ข้อมูลสำหรับ Intent
(ดู Intent.setData())
|
| ประเภท MIME |
ประเภท MIME สำหรับ Intent
(ดู Intent.setType())
|
| หมวดหมู่ |
โครงสร้างข้อมูลที่สามารถทำซ้ำได้ซึ่งมีสตริงซึ่งกำหนดหมวดหมู่สำหรับ
ความตั้งใจ
(โปรดดู
Intent.addCategory())
|
| เพิ่มเติม |
พจนานุกรมข้อมูลเพิ่มเติมสำหรับ Intent
(โปรดดู
Intent.putExtra()
เป็นต้น)
คีย์สำหรับรายการพจนานุกรมแต่ละรายการควรเป็นสตริง มูลค่าของรายการ จะเป็นประเภทข้อมูลที่มีโครงสร้างหรือเรียบง่ายก็ได้ |
| คอมโพเนนต์ |
คอมโพเนนต์สำหรับ Intent
(ดู ComponentName) การใช้อาร์กิวเมนต์นี้จะกำหนดเส้นทาง
Intent ไปยังคลาสที่เฉพาะเจาะจงภายในแพ็กเกจ Android ที่เฉพาะเจาะจง
|
| Flag |
โครงสร้างข้อมูลแบบทำซ้ำได้ซึ่งมี Flag ที่ควบคุมวิธีจัดการ Intent
(ดู Intent.setFlags())
|
วันที่
MonkeyImage
TakeSnapshot
()
จับภาพบัฟเฟอร์หน้าจอทั้งหมดของอุปกรณ์นี้ โดยแสดง ภาพหน้าจอที่แสดง หน้าจอปัจจุบัน
คิกรีเทิร์น
- ออบเจ็กต์ MonkeyImage ที่มีรูปภาพของหน้าจอปัจจุบัน
เป็นโมฆะ การแตะ ( จำนวนเต็ม x, จำนวนเต็ม y, ประเภทสตริง)
ส่งเหตุการณ์การแตะที่ระบุตามประเภทไปยังตำแหน่งหน้าจอที่ระบุ คูณ x และ y
อาร์กิวเมนต์
| x | ตำแหน่งแนวนอนของการแตะในพิกเซลของอุปกรณ์จริง โดยเริ่มจากด้านซ้ายของ หน้าจอตามการวางแนวในปัจจุบัน |
|---|---|
| y | ตำแหน่งแนวตั้งของการสัมผัสในพิกเซลจริงของอุปกรณ์ โดยเริ่มจากด้านบนของ หน้าจอตามการวางแนวในปัจจุบัน |
| ประเภท |
ประเภทของเหตุการณ์สําคัญที่จะส่ง ค่าที่อนุญาตคือ
DOWN, UP และ
DOWN_AND_UP
|
เป็นโมฆะ ประเภท (ข้อความ สตริง)
ส่งอักขระที่อยู่ในข้อความไปยังอุปกรณ์นี้ ราวกับว่า
บนแป้นพิมพ์ของอุปกรณ์ ซึ่งเทียบเท่ากับการโทร
press() สำหรับแต่ละรหัสคีย์ใน message
โดยใช้เหตุการณ์สำคัญประเภท DOWN_AND_UP
อาร์กิวเมนต์
| ข้อความ | สตริงที่มีอักขระที่จะส่ง |
|---|
เป็นโมฆะ ปลุกระบบ ()
ปลุกหน้าจอของอุปกรณ์นี้
ภาคผนวก
ตาราง 1 ชื่อตัวแปรพร็อพเพอร์ตี้ที่ใช้กับ getProperty() และ getSystemProperty()
| กลุ่มสถานที่ | พร็อพเพอร์ตี้ | คำอธิบาย | หมายเหตุ |
|---|---|---|---|
build |
board |
ชื่อรหัสสำหรับบอร์ดระบบของอุปกรณ์ |
ดู Build
|
brand |
ผู้ให้บริการขนส่งหรือผู้ให้บริการที่ปรับแต่งระบบปฏิบัติการ | ||
device |
ชื่อการออกแบบอุปกรณ์ | ||
fingerprint |
ตัวระบุที่ไม่ซ้ำกันสำหรับบิลด์ที่กำลังทำงานอยู่ในปัจจุบัน | ||
host |
|||
ID |
หมายเลขหรือป้ายกำกับรายการการเปลี่ยนแปลง | ||
model |
ชื่อที่ผู้ใช้ปลายทางมองเห็นได้สำหรับอุปกรณ์ | ||
product |
ชื่อผลิตภัณฑ์โดยรวม | ||
tags |
แท็กที่คั่นด้วยเครื่องหมายจุลภาคที่อธิบายบิลด์ เช่น "ไม่ลงนาม" และ "debug" | ||
type |
ประเภทบิลด์ เช่น "ผู้ใช้" หรือ "eng" | ||
user |
|||
CPU_ABI |
ชื่อชุดคำสั่งสำหรับโค้ดแบบเนทีฟในรูปแบบ CPU รูปแบบบวก ABI Convention | ||
manufacturer |
ผู้ผลิตผลิตภัณฑ์/ฮาร์ดแวร์ | ||
version.incremental |
โค้ดภายในที่ใช้โดยระบบควบคุมแหล่งที่มาเพื่อแสดงเวอร์ชันนี้ ของซอฟต์แวร์ | ||
version.release |
ชื่อที่ผู้ใช้มองเห็นของซอฟต์แวร์เวอร์ชันนี้ | ||
version.sdk |
เวอร์ชัน SDK ที่ผู้ใช้มองเห็นได้ซึ่งเชื่อมโยงกับระบบปฏิบัติการเวอร์ชันนี้ | ||
version.codename |
ชื่อรหัสสำหรับการพัฒนาในปัจจุบัน หรือ "REL" หากซอฟต์แวร์เวอร์ชันนี้ เผยแพร่แล้ว | ||
display |
width |
ความกว้างในการแสดงของอุปกรณ์ในหน่วยพิกเซล |
โปรดดู
DisplayMetricsเพื่อดูรายละเอียด
|
height |
ความสูงที่แสดงของอุปกรณ์ในหน่วยพิกเซล | ||
density |
ความหนาแน่นเชิงตรรกะของการแสดงผล นี่เป็นปัจจัยที่ปรับขนาด
DIP (ความหนาแน่นของพิกเซลอิสระ) ตามความละเอียดของอุปกรณ์ DIP ได้รับการปรับให้
ว่า 1 DIP จะเท่ากับ 1 พิกเซลบนจอแสดงผล 160 พิกเซลต่อนิ้ว ตัวอย่างเช่น
บนหน้าจอ 160 dpi ความหนาแน่น = 1.0 ขณะที่บนหน้าจอ 120 dpi ความหนาแน่น = .75
ค่าไม่เป็นไปตามขนาดหน้าจอจริงทุกประการ แต่ปรับเป็น
สอดคล้องกับการเปลี่ยนแปลงครั้งใหญ่ใน DPI จอแสดงผล โปรดดู
|
||
am.current |
package |
ชื่อแพ็กเกจ Android ของแพ็กเกจที่กำลังใช้งาน |
คีย์ am.current จะแสดงข้อมูลเกี่ยวกับคีย์ที่กำลังทำงาน
กิจกรรม
|
action |
การทำงานของกิจกรรมปัจจุบัน มีรูปแบบเดียวกับ name
ขององค์ประกอบ action ในไฟล์ Manifest ของแพ็กเกจ
|
||
comp.class |
ชื่อคลาสของคอมโพเนนต์ที่เริ่มกิจกรรมปัจจุบัน โปรดดู
comp.packageเพื่อดูรายละเอียดเพิ่มเติม |
||
comp.package |
ชื่อแพ็กเกจของคอมโพเนนต์ที่เริ่มกิจกรรมปัจจุบัน คอมโพเนนต์ จะระบุโดยชื่อแพ็กเกจและชื่อคลาสที่อยู่ในแพ็กเกจ | ||
data |
ข้อมูล (หากมี) ที่อยู่ใน Intent ที่เริ่มต้นกิจกรรมปัจจุบัน | ||
categories |
หมวดหมู่ที่ระบุโดย Intent ที่เริ่มต้นกิจกรรมปัจจุบัน | ||
clock |
realtime |
จำนวนมิลลิวินาทีนับตั้งแต่รีบูตอุปกรณ์ รวมถึงหลับลึก |
ดูข้อมูลเพิ่มเติมได้ที่ SystemClock
|
uptime |
จำนวนมิลลิวินาทีนับตั้งแต่รีบูตอุปกรณ์ ไม่รวมถึง เวลาหลับลึก | ||
millis |
เวลาปัจจุบันตั้งแต่ UNIX Epoch ในหน่วยมิลลิวินาที |