หากต้องการมอบประสบการณ์การใช้งานที่สอดคล้องกันและมีคุณภาพสูง รวมถึงป้องกันปัญหาที่ทำให้ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ล้มเหลว ให้ใช้หลักการของ WindowManager (WM) หลักที่อธิบายไว้ที่นี่ หลักการเหล่านี้มีผลกับ
Android รุ่นที่ใช้สถาปัตยกรรมแบบหลายหน้าต่าง ซึ่งเริ่มใน Android 14 และต่อยอดใน Android 15 ด้วย UI ที่ปรับขนาดได้
UI ที่ปรับขนาดได้ของ Android และการติดตั้งใช้งานที่กำหนดเองของคุณเอง
การใช้หลักการเหล่านี้จะช่วยให้คุณหลีกเลี่ยงปัญหาด้านการปฏิบัติตามข้อกำหนดของ CTS และการทดสอบฟังก์ชันส่วนใหญ่ได้ล่วงหน้า
คำศัพท์
- ไม่เปลี่ยนแปลง
- เงื่อนไขเชิงตรรกะที่ยังคงเป็นจริงตลอดการดำเนินการของแอป ซึ่งนำไปสู่ความสมบูรณ์ของโครงสร้าง โดยค่าคงที่จะทำหน้าที่เป็นกฎขอบเขต
- กิจกรรมพิเศษ
- กิจกรรมแอปที่สำคัญนี้ หรือที่เรียกว่ากิจกรรม UI อัตโนมัติหรือกิจกรรม UI ของระบบ จะมีพื้นที่เฉพาะบนหน้าจอที่มองเห็นได้ตลอดเวลาหรือมองเห็นได้เกือบตลอดเวลา แม้ว่าผู้ใช้จะกดหน้าแรก เช่น การนำทางหลักหรือแอปคลัสเตอร์
- กิจกรรมมาตรฐาน
- กิจกรรมในแอปมาตรฐานใดๆ ที่ไม่สำคัญต่ออินเทอร์เฟซหลักของผู้ใช้ของระบบ เช่น แอปสื่อของบุคคลที่สามที่เปิดจากตารางแอป
หลักการของ WM
ใช้หลักการเหล่านี้ในการติดตั้งใช้งาน WM เพื่อให้เป็นไปตามข้อกำหนด CTS มากที่สุด
ใช้การกำหนดค่าที่เสถียรเมื่อเปิดกิจกรรม
เปิดตัวกิจกรรมมาตรฐานใหม่ทุกรายการด้วยการเปลี่ยน WM รายการเดียวที่กำหนด ตำแหน่ง ขนาด และความหนาแน่นสุดท้าย คุณต้องไม่ทริกเกอร์การเปลี่ยนฉากครั้งที่ 2 ซึ่ง เปลี่ยนการกำหนดค่าหน้าต่างของงานพื้นฐาน (เช่น ขนาดหรือความหนาแน่น) ทันทีหลังจากครั้งแรก เนื่องจากจะทำให้เกิดการเปลี่ยนแปลงการกำหนดค่าทันทีหลังจาก สร้างกิจกรรม
ย้ายกิจกรรมมาตรฐานไปยังสถานะหยุด
เมื่อผู้ใช้ไปยังงานหรือฉากหน้าแรก คุณต้องย้ายกิจกรรมมาตรฐานที่กำลังทำงานทั้งหมดไปยังสถานะหยุดเพื่อรักษาวงจรการใช้งานแอป Android ที่คาดการณ์ได้ตามที่การทดสอบ CTS กำหนด
ป้องกันการบดบังเนื้อหากิจกรรมมาตรฐาน
ห้ามวาดการตกแต่งหรือองค์ประกอบ UI ที่กำหนดเองซึ่งบดบังเนื้อหาของ
กิจกรรมมาตรฐาน หากวาดภาพซ้อนทับที่กำหนดเอง (เช่น แถบควบคุมสภาพอากาศที่กำหนดเอง) คุณต้องรายงานขนาดต่อระบบด้วยSystemOverlay
ระยะขอบ สำหรับ Android 15 ขึ้นไป ให้ใช้ DecorPanel ใน UI ที่ปรับขนาดได้
ซ่อนการวางซ้อนในคำขอโหมดสมจริง
เมื่อแอปขอโหมดสมจริง คุณต้องซ่อนองค์ประกอบ UI ที่กำหนดเองชั่วคราวและนำSystemOverlayระยะขอบออก สิ่งกีดขวางที่คงอยู่
รบกวนการคาดการณ์พิกเซลของแอป
ใช้มุมโค้งที่ระดับการแสดงผลเท่านั้น
ใช้มุมโค้งที่ระดับการแสดงผลเท่านั้นโดยใช้การกำหนดค่าทรัพยากรที่เหมาะสมใน frameworks/base ห้ามใช้มุมโค้งที่กำหนดเองกับ
พื้นผิวของกิจกรรมมาตรฐาน
การทำเช่นนี้จะรบกวนการทดสอบองค์ประกอบ UI คุณสามารถ ระบุรัศมีมุมโค้งเดียวกันสําหรับจอแสดงผลได้ชั่วคราวเหมือนกับที่ใช้กับ พื้นผิวของกิจกรรมมาตรฐาน
คงขนาดแอปไว้เมื่อมีการขอโหมดสมจริง
เมื่อแอปขอเข้าสู่โหมดสมจริง อย่าปรับขนาดหน้าต่างของแอป การดำเนินการนี้จะทริกเกอร์การเปลี่ยนแปลงการกำหนดค่าที่รบกวน แต่หากต้องการขยายแอปให้ใหญ่สุด ให้เสนอปุ่มเต็มหน้าจอที่ผู้ใช้ควบคุมได้