เพิ่มการปฏิบัติตามข้อกำหนดในการทดสอบด้วยค่าคงที่ของ WindowManager

หากต้องการมอบประสบการณ์การใช้งานที่สอดคล้องกันและมีคุณภาพสูง รวมถึงป้องกันปัญหาที่ทำให้การทดสอบความเข้ากันได้ (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 คุณสามารถระบุรัศมีมุมโค้งเดียวกันสำหรับจอแสดงผลกับที่ใช้กับพื้นผิวของกิจกรรมมาตรฐานเป็นการชั่วคราวได้

รักษาสัดส่วนของแอปเมื่อมีการขอโหมดเต็มหน้าจอ

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