MonkeyDevice

คลาส monkeyrunner ที่แสดงถึงอุปกรณ์หรือโปรแกรมจำลองที่เข้าถึงได้โดยเวิร์กสเตชันที่กำลังทำงาน monkeyrunner

ชั้นเรียนนี้ใช้เพื่อควบคุมอุปกรณ์หรือโปรแกรมจำลอง Android เมธอดต่างๆ ที่ส่งเหตุการณ์ UI เรียกดูข้อมูล ติดตั้งและนำแอปพลิเคชันออก และเรียกใช้แอปพลิเคชัน

โดยปกติคุณไม่จำเป็นต้องสร้างอินสแตนซ์ของ MonkeyDevice แต่คุณ ใช้ MonkeyRunner.waitForConnection() เพื่อสร้างออบเจ็กต์ใหม่จากการเชื่อมต่อกับอุปกรณ์หรือ โปรแกรมจำลอง ตัวอย่างเช่น แทนที่จะแสดง โดยใช้:

newdevice = MonkeyDevice()

ที่คุณจะใช้

newdevice = MonkeyRunner.waitForConnection()

สรุป

ค่าคงที่
สตริง ลง ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ press()หรือtouch() เพื่อส่งเหตุการณ์ DOWN
สตริง ขึ้น ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ press()หรือtouch() เพื่อส่งเหตุการณ์ UP
สตริง ลดลง ใช้อาร์กิวเมนต์นี้กับอาร์กิวเมนต์ type ของ press()หรือtouch() เพื่อส่งเหตุการณ์ DOWN แล้วตามด้วยเหตุการณ์ "ขึ้น"
วิธีการ
เป็นโมฆะ broadcastIntent (URI ที่ใช้ สตริง, สตริง สตริง สตริง mimetype, หมวดหมู่ที่เขียนใหม่ได้ พจนานุกรมเพิ่มเติม คอมโพเนนต์ คอมโพเนนต์ แฟล็กที่แก้ไขได้)
เผยแพร่ Intent ในอุปกรณ์เครื่องนี้ ราวกับว่า Intent มาจาก แอปพลิเคชัน
เป็นโมฆะ ลาก (เริ่มต้น tuple สิ้นสุด tuple ระยะเวลา ลอย จำนวนเต็ม)
จำลองท่าทางสัมผัสการลาก (แตะค้างไว้ และย้าย) บนหน้าจอของอุปกรณ์นี้
ออบเจ็กต์ getProperty (คีย์ สตริง)
แสดงผลค่าสำหรับอุปกรณ์นี้ในฐานะชื่อของตัวแปรสภาพแวดล้อมระบบ ชื่อตัวแปรที่ใช้ได้จะแสดงอยู่ในคอลัมน์ คำอธิบายโดยละเอียด ของวิธีการนี้
ออบเจ็กต์ getSystemProperty (คีย์ สตริง)
เทียบเท่ากับ API ของ adb shell getprop <key>. This is provided for use by platform developers.
เป็นโมฆะ installPackage (เส้นทาง สตริง)
ติดตั้งแอปพลิเคชัน Android หรือแพ็กเกจทดสอบที่มีในpackageFile ลงใน อุปกรณ์ หากติดตั้งแอปพลิเคชันหรือแพ็กเกจทดสอบไว้แล้ว ระบบจะแทนที่แอปพลิเคชันดังกล่าว
พจนานุกรม เครื่องมือ (สตริง className, พจนานุกรม)
เรียกใช้คอมโพเนนต์ที่ระบุในส่วนการใช้เครื่องมือ Android และแสดงผลลัพธ์ ในพจนานุกรมซึ่งมีรูปแบบที่แน่นอนตามที่กำหนดโดยคอมโพเนนต์ที่เรียกใช้ คอมโพเนนต์ต้องมีในอุปกรณ์เครื่องนี้แล้ว
เป็นโมฆะ กด (ชื่อ สตริง, ประเภทพจนานุกรม)
ส่งเหตุการณ์สำคัญที่ระบุตามประเภทไปยังคีย์ที่ระบุโดย รหัสคีย์
เป็นโมฆะ รีบูต (สตริงลงใน)
รีบูตอุปกรณ์นี้ใน Bootloader ที่ระบุโดย BootloadType
เป็นโมฆะ นำแพ็กเกจออก (แพ็กเกจสตริง)
ลบแพ็กเกจที่ระบุออกจากอุปกรณ์นี้ รวมถึงข้อมูลและแคชของอุปกรณ์
ออบเจ็กต์ เชลล์ (สตริง cmd)
เรียกใช้คำสั่ง Shell adb และแสดงผลลัพธ์ (หากมี)
เป็นโมฆะ startActivity (URI ที่ใช้ สตริง, สตริง สตริง สตริง mimetype, หมวดหมู่ที่เขียนใหม่ได้ พจนานุกรมเพิ่มเติม คอมโพเนนต์ คอมโพเนนต์ ธง)
เริ่มกิจกรรมในอุปกรณ์นี้โดยการส่ง Intent ที่สร้างขึ้นจาก อาร์กิวเมนต์ที่ระบุ
MonkeyImage takeSnapshot()
จับภาพบัฟเฟอร์หน้าจอทั้งหมดของอุปกรณ์นี้ โดยแสดง ออบเจ็กต์ MonkeyImage รายการที่มีการจับภาพหน้าจอของจอแสดงผลปัจจุบัน
เป็นโมฆะ การแตะ (จำนวนเต็ม x, จำนวนเต็ม y, ประเภทจำนวนเต็ม)
ส่งเหตุการณ์การแตะที่ระบุตามประเภทไปยังตำแหน่งหน้าจอที่ระบุ คูณ x และ y
เป็นโมฆะ ประเภท (ข้อความ สตริง)
ส่งอักขระที่อยู่ในข้อความไปยังอุปกรณ์นี้ ราวกับว่า บนแป้นพิมพ์ของอุปกรณ์ ซึ่งเทียบเท่ากับการโทร press() สำหรับแต่ละรหัสคีย์ใน message โดยใช้เหตุการณ์สำคัญประเภท DOWN_AND_UP
เป็นโมฆะ ปลุกระบบ ()
ปลุกหน้าจอของอุปกรณ์นี้

ค่าคงที่

สตริง ลง

press() หรือ touch() ระบุว่าควรส่งประเภทเหตุการณ์ "ลง" ไปยังอุปกรณ์ ซึ่งสอดคล้องกับ การกดปุ่มลงหรือแตะหน้าจอ

สตริง ขึ้น

press() หรือ touch() ระบุว่าควรส่งประเภทเหตุการณ์ UP ไปยังอุปกรณ์ ซึ่งสอดคล้องกับ ปล่อยแป้นหรือยกนิ้วขึ้นจากหน้าจอ

สตริง ลง_และ_ขึ้น

press(), touch()หรือ type() ระบุว่าควรส่งประเภทเหตุการณ์ "ลง" ตามด้วยประเภทเหตุการณ์ "ขึ้น" ไปยัง อุปกรณ์ตามการพิมพ์แป้นหรือการคลิกหน้าจอ

วิธีการสาธารณะ

เป็นโมฆะ 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 ()

จับภาพบัฟเฟอร์หน้าจอทั้งหมดของอุปกรณ์นี้ โดยแสดง ภาพหน้าจอที่แสดง หน้าจอปัจจุบัน

คิกรีเทิร์น

เป็นโมฆะ การแตะ ( จำนวนเต็ม 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 จอแสดงผล โปรดดู densityเพื่อดูรายละเอียดเพิ่มเติม

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 ในหน่วยมิลลิวินาที