หน้าต่างเดสก์ท็อป

หน้านี้แสดงรายละเอียดฟีเจอร์และสถานการณ์การทดสอบที่เกี่ยวข้องกับหน้าต่างเดสก์ท็อป

ใน Android 17 ขึ้นไป คุณสามารถเปิดใช้หน้าต่างเดสก์ท็อป ต่อจอแสดงผลได้ ดูข้อมูลเพิ่มเติมได้ที่ หัวข้อเปิดใช้หน้าต่างเดสก์ท็อป

ฟีเจอร์เดสก์ท็อป

ส่วนนี้จะอธิบายฟีเจอร์และการกำหนดค่าที่สำคัญที่เกี่ยวข้องกับหน้าต่างเดสก์ท็อป

เปิดใช้ขีดจำกัดสำหรับงาน

วิธีกำหนดค่าจำนวนงานสูงสุดที่รองรับในหน้าต่างเดสก์ท็อป

  1. เปิดใช้หน้าต่างเดสก์ท็อป
  2. ตั้งค่าแฟล็กการวางซ้อนการกำหนดค่า config_maxDesktopWindowingActiveTasks ใน config.xml เป็นจำนวนงานสูงสุดที่รองรับ หากต้องการรองรับงานจำนวนไม่จำกัด ให้ตั้งค่าแฟล็กเป็นค่าเริ่มต้น 0 ดังนี้

    <integer name="config_maxDesktopWindowingActiveTasks">4</integer>
    

ฟีเจอร์เฉพาะเบราว์เซอร์

Android 16 ได้เปิดตัวฟีเจอร์ 2 รายการที่เฉพาะเจาะจงสำหรับเบราว์เซอร์ ได้แก่ ระยะขอบส่วนหัวที่ปรับแต่งได้ และการจัดการอินสแตนซ์ของแอป ส่วนนี้จะอธิบายสถานการณ์การทดสอบเพื่อยืนยันความเข้ากันได้ของเบราว์เซอร์ OEM ต้องยืนยันว่าการใช้งานฟีเจอร์ทำงานได้ตามที่มุ่งหวังไว้

กรณีทดสอบสำหรับระยะขอบส่วนหัวที่ปรับแต่งได้

กรณีทดสอบต่อไปนี้จะยืนยันความเข้ากันได้ของเบราว์เซอร์กับระยะขอบส่วนหัวที่ปรับแต่งได้

  • การโต้ตอบกับ UI: ยืนยันว่า UI แถบคำบรรยายของเบราว์เซอร์ยังคงโต้ตอบได้อย่างเต็มที่ในการกำหนดค่าหน้าต่างทั้งหมด (รูปแบบอิสระ หน้าจอแยก และเต็มหน้าจอ)
  • การเคลียร์ไอคอนระบบ: ยืนยันว่า UI ของเบราว์เซอร์ไม่แสดงใต้ไอคอนระบบ
  • การใช้สีพื้นหน้า: ยืนยันว่ามีการใช้สีพื้นหน้าที่ถูกต้องกับไอคอนระบบในส่วนหัวของแอปโดยอิงตามธีมของเบราว์เซอร์ ซึ่งสำคัญอย่างยิ่งเมื่อธีมของเบราว์เซอร์แตกต่างจากธีมของระบบ
  • การลากหน้าต่าง: ตรวจสอบว่าสามารถลากหน้าต่างรูปแบบอิสระได้โดยกดค้างที่พื้นที่ว่างในแนวแท็บ
  • การแสดงแท็บเมื่อปรับขนาด: ทดสอบว่าแท็บจะแสดงหรือซ่อนโดยอิงตามความกว้างของหน้าต่างเพื่อรักษาความสามารถในการใช้งานที่เหมาะสม

กรณีทดสอบสำหรับการจัดการอินสแตนซ์ของแอปด้วยลักษณะการทำงานของท่าทางสัมผัสแบบลากได้

กรณีทดสอบต่อไปนี้จะยืนยันความเข้ากันได้ของเบราว์เซอร์กับการจัดการอินสแตนซ์ของแอป

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

โหมดลักษณะการทำงานแบบเดสก์ท็อปเป็นหลักและแบบสัมผัสเป็นหลัก

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

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

โหมดเหล่านี้ไม่ใช่สภาพแวดล้อมเดสก์ท็อปที่แยกจากกัน แต่เป็นสถานะต่อจอแสดงผลที่กำหนดลักษณะการทำงานของ UI เริ่มต้น

ความแตกต่างของลักษณะการทำงาน

ตารางต่อไปนี้จะสรุปความแตกต่างที่สำคัญของ UI และฟังก์ชันการทำงานระหว่างโหมดเดสก์ท็อปเป็นหลักและโหมดสัมผัสเป็นหลัก

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

โหมดเดสก์ท็อปเป็นหลักเป็นสถานะต่อจอแสดงผล ซึ่งหมายความว่าอุปกรณ์สามารถโฮสต์จอแสดงผลภายในแบบสัมผัสเป็นหลักและจอแสดงผลภายนอกแบบเดสก์ท็อปเป็นหลักได้พร้อมกัน

ทริกเกอร์การสลับ

ระบบจะประเมินปัจจัยหลายอย่างเพื่อกำหนดโหมดที่เหมาะสมสำหรับจอแสดงผล ดังนี้

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

การใช้งานทางเทคนิค

"แหล่งข้อมูลที่เชื่อถือได้" สำหรับสถานะนี้คือโหมดหน้าต่างของจอแสดงผล ซึ่งก็คือโหมดหน้าต่างของ TaskDisplayArea ของจอแสดงผล คอมโพเนนต์ Shell และ Launcher สามารถเข้าถึงสถานะนี้ผ่าน DisplayAreaInfo หรือ WindowConfiguration ของบริบทจอแสดงผล

หน้าต่างเดสก์ท็อปต่อจอแสดงผล

ใน Android 17 ขึ้นไป สำหรับจอแสดงผลที่โฮสต์งานได้ตามที่กำหนดโดย Display.canHostTasks WindowManager (WM) จะกำหนดสิทธิ์สำหรับหน้าต่างเดสก์ท็อปโดยอิงตามเกณฑ์ที่ผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) กำหนดค่าได้ โดยค่าเริ่มต้น WM จะตรวจสอบเกณฑ์ต่อไปนี้

  • การรองรับหน้าต่างรูปแบบอิสระ
  • การเปิดใช้การตกแต่งระบบ
  • การเปิดใช้การสลับโหมดจอแสดงผลหรือโหมดเนื้อหาเริ่มต้น

เมื่อสิทธิ์ของจอแสดงผลมีการเปลี่ยนแปลง WM จะเรียก IDisplayWindowListener.onDesktopModeEligibleChanged API ที่ซ่อนไว้ WindowManager.isEligibleForDesktopMode จะแสดงผลว่าจอแสดงผลมีสิทธิ์ใช้หน้าต่างหรือไม่ Shell ของ WM จะสกัดกั้นการเรียกนี้ และหากจอแสดงผลมีสิทธิ์ ก็จะตัดสินใจว่าจอแสดงผลรองรับหน้าต่างเดสก์ท็อปหรือไม่ และจัดสรรทรัพยากรที่จำเป็น