หลักเกณฑ์ด้านคุณภาพของแอป Android XR

คำจำกัดความของระดับความเข้ากันได้

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

รายการตรวจสอบและการทดสอบจะกำหนดชุดข้อกำหนดด้านคุณภาพที่ครอบคลุมสำหรับแอป Android เกือบทุกประเภท

แอปบนอุปกรณ์เคลื่อนที่ที่เข้ากันได้กับ Android XR

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

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

แอปบนอุปกรณ์เคลื่อนที่ที่เข้ากันได้กับ Android XR จะเลือกใช้โดยอัตโนมัติและพร้อมให้บริการใน Google Play Store แอปที่เข้ากันไม่ได้เนื่องจากข้อกำหนดฟีเจอร์ที่ไม่รองรับจะติดตั้งผ่าน Play Store ไม่ได้

แอปหน้าจอขนาดใหญ่ที่เข้ากันได้กับ Android XR

แอปหน้าจอขนาดใหญ่ที่เข้ากันได้กับ Android XR แสดงแอปหน้าจอขนาดใหญ่ระดับ 1 หรือ 2 ที่ใช้การเพิ่มประสิทธิภาพเลย์เอาต์สำหรับหน้าจอทุกขนาดและการกําหนดค่าอุปกรณ์ (เช่น หน้าจอขนาดใหญ่นอกเหนือจากอุปกรณ์เคลื่อนที่) พร้อมการรองรับอุปกรณ์อินพุตภายนอกและการทํางานหลายอย่างพร้อมกันที่ปรับปรุงแล้ว แอปหน้าจอขนาดใหญ่ที่รองรับ Android XR จะเลือกใช้โดยอัตโนมัติและพร้อมให้บริการใน Play Store

แอปหน้าจอขนาดใหญ่ที่เข้ากันได้กับ Android XR จะทำงานแบบเต็มหน้าจอบนแผงเชิงพื้นที่ในสภาพแวดล้อมของผู้ใช้ที่ 1024dp × 720dp ผู้ใช้จะโต้ตอบกับแอปได้อย่างเป็นธรรมชาติโดยใช้สายตาและมือ แต่โดยรวมแล้วแอปจะคล้ายกับแอปบนหน้าจอขนาดใหญ่มาก

แอปที่แตกต่างสำหรับ Android XR

แอปที่แตกต่างสำหรับ Android XR มีประสบการณ์ของผู้ใช้ที่ออกแบบมาเพื่อ XR โดยเฉพาะและใช้ฟีเจอร์ที่มีให้บริการใน XR เท่านั้น คุณใช้ประโยชน์จากความสามารถของ Android XR ได้อย่างเต็มที่และสร้างความแตกต่างให้กับประสบการณ์การใช้งานแอปด้วยการเพิ่มฟีเจอร์ XR (เช่น แผงเชิงพื้นที่) การเพิ่มเนื้อหา XR (เช่น วิดีโอ 3 มิติ) ลงในแอปพลิเคชันโดยการพัฒนาด้วย Android Jetpack XR SDK, Unity หรือ OpenXR

คุณสามารถใช้ Jetpack XR SDK เพื่อมอบความสามารถเฉพาะ XR ซึ่งรวมถึงแผงพื้นที่ สภาพแวดล้อม โมเดล 3 มิติ เสียงรอบทิศทาง วิดีโอ / รูปภาพ 3 มิติ / พื้นที่ หมุด และ UI พื้นที่อื่นๆ เช่น กล้องมองรอบตัว

แอปต้องใช้งานฟีเจอร์หรือเนื้อหาเฉพาะ XR อย่างน้อย 1 รายการจึงจะถือว่าเป็นแอปที่แตกต่างออกไปสำหรับ Android XR สำหรับบางกรณีการใช้งาน อาจมีฟีเจอร์และข้อกำหนดด้านเนื้อหาเพิ่มเติม ดูรายละเอียดด้านล่าง

แอปทั้งหมดที่สร้างด้วย Unity หรือ OpenXR จะถือว่ามีความแตกต่างกัน แอปที่สร้างด้วย Unity หรือ OpenXR ต้องเป็นไปตามเมตริกคุณภาพและข้อกำหนดขั้นต่ำจึงจะถือว่าเป็นแอปที่แตกต่างจาก Android XR เช่น แอปที่มีอัตราเฟรมต่ำ ขัดข้อง หรือให้ประสบการณ์การใช้งานที่ไม่ดีแก่ผู้ใช้จะไม่ตรงตามข้อกำหนด

รายการตรวจสอบความเข้ากันได้กับ Android XR

รายการตรวจสอบความเข้ากันได้เหล่านี้จะกำหนดเกณฑ์เพื่อช่วยคุณประเมินระดับการรองรับ XR ของแอป ระดับการสนับสนุนมีดังนี้

แอปบนอุปกรณ์เคลื่อนที่ที่เข้ากันได้กับ Android XR

แอปของคุณต้องเป็นไปตามข้อกําหนดคุณภาพของแอปหลัก

จะไม่มีผลกับแอป XR

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

แอปหน้าจอขนาดใหญ่ที่เข้ากันได้กับ Android XR

แอปหน้าจอขนาดใหญ่ระดับ Tier 1 หรือ Tier 2 จะถือว่าเป็นแอปหน้าจอขนาดใหญ่ที่เข้ากันได้กับ Android XR หลักเกณฑ์ด้านคุณภาพของแอปหน้าจอขนาดใหญ่นำเสนอแนวทางที่มีโครงสร้างเพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์การใช้งานที่ยอดเยี่ยมบน Android XR แต่ไม่จำเป็นต้องคำนึงถึงสถานะของอุปกรณ์ เช่น การหมุนหรือพับ/กางออก ในทำนองเดียวกัน Android XR ก็ไม่รองรับสไตลัส

แอปที่แยกความแตกต่างสำหรับ Android XR

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

ประเภทแอป / กรณีการใช้งาน

หมวดหมู่

พื้นที่

คำแนะนำ

ข้อกำหนดพื้นฐานทั่วไป (Android และ OpenXR)

ความเป็นส่วนตัวและความปลอดภัย

การลงชื่อเข้าใช้บัญชี (UX ครั้งแรก)

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

ความปลอดภัยและความสะดวกสบาย

การใช้แสง

คุณควรลดความเสี่ยงของผลลัพธ์ที่กะพริบภายในแอปพลิเคชันเพื่อความปลอดภัยและความผาสุกของผู้ใช้ทุกคน

หลีกเลี่ยงการใช้องค์ประกอบการออกแบบที่อาจทำให้เกิดภาพสั่น

1. หากจำเป็นต้องใช้เอฟเฟกต์การใช้แสงอย่างหลีกเลี่ยงไม่ได้ ให้ตรวจสอบว่าอัตราการกะพริบต่ำมาก (น้อยกว่า 3 ครั้งต่อวินาที) และพื้นที่ที่กะพริบมีขนาดเล็กและสังเกตได้ยาก

2. พิจารณาให้ผู้ใช้ปิดใช้ผ่านการตั้งค่าหรือค่ากําหนดได้

3. แสดงข้อความเตือนที่ชัดเจนก่อนที่จะเกิดแสงกะพริบ

หลีกเลี่ยงอาการเมารถ

โปรดทำตามหลักเกณฑ์ต่อไปนี้เพื่อหลีกเลี่ยงอาการเมารถในผู้ใช้

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

อินพุต

ขนาดของเป้าหมายการโต้ตอบ

เป้าหมายที่โต้ตอบได้มีขนาดขั้นต่ำและขนาดที่แนะนำโดยอิงตามระยะการโต้ตอบที่ต้องการ ดังนี้

  • ขนาดขั้นต่ำ: DistanceInM x 0.868 x 48 = M
  • ขนาดที่แนะนำ: DistanceInM x 0.868 x 56 = M ขึ้นไป

เมื่อใช้ Jetpack XR SDK เราขอแนะนำให้ใช้ขนาดขั้นต่ำ 48 x 48dp โดยแนะนำให้ใช้ขนาดเป้าหมายการแตะ 56 x 56dp ขึ้นไป

ฟังก์ชันการทำงานทางเทคนิคของ XR

การป้อนข้อมูลด้วยมือ

แอปของคุณรองรับอินพุตด้วยมืออย่างเป็นธรรมชาติเป็นวิธีการโต้ตอบพื้นฐานสําหรับ Android XR ซึ่งรวมถึงข้อกําหนดของ Raycast ด้วยมือและการรองรับท่าทางสัมผัสสําหรับองค์ประกอบพื้นฐานของอินพุต

แอปของคุณเล่นได้หรือใช้งานได้โดยไม่ต้องใช้ตัวควบคุม แต่สามารถเสริมด้วยการใช้ตัวควบคุมได้หากต้องการ

ขอบเขต (เดิมคือ Guardian)

หากแอปคาดหวังว่าผู้ใช้จะย้ายจากจุดเริ่มต้น (เมื่อเปิดแอป) ไปยังพื้นที่จริง แอปจะขอสิทธิ์เข้าถึงแบบ Passthrough หรือประกาศ PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE ในไฟล์ Manifest

หากแอปใช้ XR_BOUNDARY_TYPE_LARGE ผู้ใช้จะเล่นแอปได้อย่างเต็มที่โดยที่ขอบเขตไม่แสดง (ภายในรัศมี 2.0 ม. โปรดทราบว่าการอนุญาตให้ข้ามขอบเขตจะเริ่มปรากฏที่รัศมี 1.5 ม.)

ประสิทธิภาพ

การแสดงภาพ

แอปของคุณแสดงผลแต่ละเฟรมระหว่าง 11.1 มิลลิวินาที (90 Hz) ถึง 13.8 มิลลิวินาที (72 Hz)

ความละเอียด

แอปของคุณมีความละเอียดอย่างน้อย 2364 x 2880 ต่อตา

เวลาเริ่มต้นของแอป

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

ดูระยะเวลาเป้าหมายด้านล่าง

  • ค่าเฉลี่ยของ Cold Start: ต่ำกว่า 2 วินาที
  • ค่าเฉลี่ยของเวลา Warm Start: ต่ำกว่า 1 วินาที

โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อเวลาเริ่มต้นของแอป

ANR

แอปไม่ขัดข้องหรือบล็อกเธรด UI ซึ่งทำให้เกิดข้อผิดพลาด ANR ("Android ไม่ตอบสนอง")

แอปของคุณมี ANR น้อยกว่า 1 ครั้งในเซสชันรายวัน 99.5%

แอปของคุณใช้รายงานก่อนการเปิดตัวของ Google Play เพื่อระบุปัญหาด้านความเสถียรที่อาจเกิดขึ้น หลังจากการทําให้ใช้งานได้ ให้ตรวจสอบหน้า Android Vitals ใน Google Play Console

อัตราการขัดข้อง

อย่าใช้ทรัพยากรระบบมากเกินไปซึ่งส่งผลต่อระบบส่วนที่เหลือและแอปอื่นๆ โดยให้อัตราการขัดข้องอยู่ที่ประมาณ 1%

พื้นฐานของแอป Android (แยกความแตกต่างสำหรับ XR)

ภาพและประสบการณ์ของผู้ใช้

XR พื้นฐาน

แอปของคุณใช้ฟีเจอร์หรือเนื้อหาเฉพาะ XR อย่างน้อย 1 รายการเพื่อปรับปรุงประสบการณ์ของผู้ใช้ ซึ่งอาจรวมถึงยานอวกาศ แผงเชิงพื้นที่ สภาพแวดล้อม หรือวัตถุ 3 มิติอย่างน้อย 1 รายการ

แผงเสียงรอบทิศทาง

เมื่อทำงานหลายอย่างพร้อมกัน (นั่นคือ ทำงานอย่างน้อย 2 อย่างพร้อมกัน) ด้วยแผง ให้สร้างแผงพื้นที่แยกต่างหาก เช่น คุณอาจสร้างแผงพื้นที่แยกต่างหากสำหรับหน้าต่างและรายการแชท

สภาพแวดล้อม

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

การเปลี่ยนระหว่างพื้นที่หน้าแรก (HSM) กับพื้นที่เต็ม (FSM)

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

แผงเสียงรอบทิศทาง

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

การเลื่อนเมนู / รายการ

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

ฟังก์ชันวิดีโอ / สื่อ

ภาพและประสบการณ์ของผู้ใช้

โปรแกรมเล่นเสียงรอบทิศทาง (Android เท่านั้น)

แอปของคุณอนุญาตให้ผู้ใช้ดูเนื้อหาในโหมดเต็มหน้าจอ

นำตัวควบคุมการเล่นออกจากการวางซ้อนบนเนื้อหา แล้ววางไว้ในแผงหรือออบบิทเฉพาะแทน

สำหรับแผงที่มีการเล่นวิดีโอ ให้ตั้งค่าสัดส่วนภาพเพื่อนำแถบดำด้านบนและด้านล่างออก

เสียงรอบทิศทาง

ลองรองรับเสียงรอบทิศทาง ซึ่งรวมถึงเสียงที่ล็อกไว้กับแผงหรือเสียงเซอร์ราวด์

การดูวิดีโอพร้อมกัน

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

  • สตรีมวิดีโอใดที่ให้เอาต์พุตเสียง
  • ตัวควบคุมการเล่นใดส่งผลต่อสตรีมวิดีโอใด

สภาพแวดล้อม

เมื่อเล่นเนื้อหาในโหมดพื้นที่เต็ม แอปของคุณอนุญาตให้ผู้ใช้หรี่โหมดการส่งผ่านหรือเลือกสภาพแวดล้อมเสมือนจริง