CTS สำหรับ Instant Apps

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

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

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

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

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

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

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

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

การทดสอบล้มเหลวในโหมด Instant Apps

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

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

การแก้ปัญหา

หากการทดสอบล้มเหลวโดยมีข้อความ Failed to install MyCtsModule.apk on DEVICE. สาเหตุ: '-116', มองหาข้อความ PackageManager ใน Logcat ตัวอย่างเช่น หากข้อความระบุว่า แทนที่แอปแบบเต็มด้วยแอป Instant ไม่ได้: your_app ให้ใช้คำสั่ง adb uninstall เพื่อถอนการติดตั้งแอปก่อน