CTS สำหรับ Instant Apps

Instant App เป็นฟีเจอร์หลักของ Android 10 จึงจำเป็นต้องทํางานอย่างถูกต้อง ระบบจะติดตั้งแอปด่วนโดยปริยาย ดังนั้นแอปเหล่านี้จึงมีชุดความสามารถที่จํากัดและทํางานในแซนด์บ็อกซ์ด้านความปลอดภัยที่เข้มงวดมากขึ้น เนื่องจากข้อจำกัดเหล่านี้มีอยู่ในระบบอย่างแพร่หลาย ชิ้นส่วนใดๆ ของระบบจึงมีความเสี่ยงที่จะใช้งานกับ Instant App อย่างไม่ถูกต้อง ระบบจะสร้างชุดย่อยการทดสอบ CTS เพื่อให้แน่ใจว่าลักษณะการทำงานที่ Instant Apps อนุญาตทํางานได้ แนวคิดหลักคือลดขนาดของ CTS โดยแยกชุดการทดสอบขั้นต่ำเพื่อพอร์ต CTS ที่ทำงานในโหมด Instant App หมายถึงการติดตั้ง APK ทดสอบเป็น Instant App และทำการทดสอบ

ข้อจำกัดของ Instant App

ผู้ใช้ไม่ได้ติดตั้ง Instant App ดังนั้นแอปจะทำงานในแซนด์บ็อกซ์ที่มีข้อจำกัดต่อไปนี้

  • มีสิทธิ์ได้เพียงบางสิทธิ์
  • ไม่เห็นแอปอื่นๆ เว้นแต่ว่าแอปเหล่านั้นจะมีการทำเครื่องหมายว่าแสดงใน Instant App
  • เข้าถึงการตั้งค่าระบบบางอย่างได้เท่านั้น
  • เข้าถึงได้เฉพาะพร็อพเพอร์ตี้ระบบบางรายการ
  • แสดงบริการ/ผู้ให้บริการไม่ได้
  • รับและส่งได้โดยมีกฎพิเศษเกี่ยวกับประกาศ

นอกจากนี้ Instant App ยังต้องเลือกใช้เพื่ออนุญาตให้แซนด์บ็อกซ์ความปลอดภัยใหม่เพิ่มข้อจำกัดเพิ่มเติม ลักษณะการทำงานพิเศษที่หลากหลายของ Instant App นี้ส่งผลต่อทั้งแพลตฟอร์ม จึงต้องมีวิธีตรวจสอบว่า Instant App ทำงานได้ตามที่คาดไว้สำหรับอุปกรณ์ทั้งหมดในระบบนิเวศ

การทดสอบที่ทำงานในโหมด Instant App

โมดูล CTS บางรายการไม่มีการทดสอบที่ใช้กับ Instant App ได้ หากฟังก์ชันที่โมดูลทดสอบมีการโต้ตอบกับเซิร์ฟเวอร์ระบบ การทดสอบเหล่านี้ควรทําในโหมด Instant Apps ตัวอย่างเช่น การทดสอบ OpenGL ไม่ได้โต้ตอบกับเซิร์ฟเวอร์ระบบ จึงไม่จำเป็นต้องเรียกใช้การทดสอบในโหมด Instant Apps ขณะที่การทดสอบการช่วยเหลือพิเศษโต้ตอบกับเซิร์ฟเวอร์ระบบ แต่จำเป็นต้องเรียกใช้การทดสอบในโหมด Instant Apps

นอกเหนือจากการระบุข้อบังคับที่เกี่ยวข้องแล้ว ผู้ใช้ยังต้องระบุการทดสอบในข้อบังคับเหล่านี้ที่เกี่ยวข้องด้วย ตัวอย่างเช่น การทดสอบลักษณะการทำงานเฉพาะบริการสำหรับสถาปัตยกรรมแบบปลั๊กอิน (เช่น AccessibilityService) จะใช้ไม่ได้กับโหมด Instant App เนื่องจาก Instant App ไม่สามารถแสดงบริการต่อแอปอื่นๆ (รวมถึงแพลตฟอร์ม) ได้ ขณะที่การทดสอบเพื่อตรวจสอบลักษณะการทำงานฝั่งแอปจะใช้ได้กับโหมด Instant App อีกตัวอย่างหนึ่งคือ การทดสอบที่ตรวจสอบความถูกต้องของลักษณะการทำงานที่อยู่เบื้องหลังสิทธิ์ที่ Instant App ไม่มีสิทธิ์ใช้และไม่เกี่ยวข้องในโหมด Instant App มีการทดสอบชุดหนึ่งที่ใช้กับ Instant App เท่านั้น ซึ่งจะตรวจสอบกฎเกี่ยวกับลักษณะการทํางาน เช่น ไม่แสดงบริการ หรือไม่เห็นแอปอื่นๆ โดยปกติแล้ว ไฟล์เหล่านี้จะเขียนไว้แล้วและไม่จำเป็นต้องพอร์ต

การทดสอบไม่สําเร็จในโหมด Instant App

หากการทดสอบไม่สำเร็จเนื่องจากตรวจสอบฟังก์ชันการทำงานที่ Instant App เข้าถึงไม่ได้ แสดงว่าฟังก์ชันดังกล่าวใช้ไม่ได้ในโหมด Instant App ทําเครื่องหมายการทดสอบให้ทํางานในโหมดแอปแบบเต็มเท่านั้นโดยกำกับเนื้อหาด้วย @AppModeFull คุณใช้คำอธิบายประกอบนี้กับระดับชั้นเรียนเพื่อยกเว้นการทดสอบทั้งหมดในชั้นเรียนได้

หากการทดสอบไม่สำเร็จเนื่องจากฟังก์ชันบางอย่างที่ Instant App เข้าถึงได้ใช้งานไม่ได้ ให้รายงานข้อบกพร่อง

การแก้ปัญหา

หากการทดสอบล้มเหลวโดยขึ้นข้อความว่าติดตั้ง MyCtsModule.apk ใน DEVICE ไม่สำเร็จ เหตุผล: '-116' ให้มองหาข้อความ PackageManager ใน Logcat ตัวอย่างเช่น หากข้อความระบุว่า แทนที่แอปเวอร์ชันเต็มด้วย Instant App ไม่ได้: your_app แสดงว่า adb จะถอนการติดตั้งแอปของคุณก่อน