หลักเกณฑ์ด้านคุณภาพของแอป 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 มิติ / เชิงพื้นที่ Anchor และ UI เชิงพื้นที่อื่นๆ เช่น Orbiters

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

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

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

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

แอปบนอุปกรณ์เคลื่อนที่ที่ใช้ร่วมกับ Android XR ได้

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

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

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

แอปหน้าจอขนาดใหญ่ระดับที่ 1 หรือระดับที่ 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 ซึ่งรวมถึงข้อกำหนดของ Hand Raycast และการรองรับท่าทางสัมผัสสำหรับองค์ประกอบพื้นฐานของอินพุต

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

Boundary (เดิมคือ Guardian)

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

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

ประสิทธิภาพ

การแสดงภาพ

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

ความละเอียด

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

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

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

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

  • Cold Start โดยเฉลี่ย: ต่ำกว่า 2 วินาที
  • Warm Start โดยเฉลี่ย: ต่ำกว่า 1 วินาที

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

ANR

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

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

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

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

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

พื้นฐานของแอป Android (แตกต่างจาก XR)

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

XR พื้นฐาน

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

แผงเชิงพื้นที่

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

สภาพแวดล้อม

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

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

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

แผงเชิงพื้นที่

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

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

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

ฟังก์ชันการทำงานของวิดีโอ / สื่อ

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

Spatial Player (Android เท่านั้น)

แอปของคุณอนุญาตให้ผู้ใช้ดูเนื้อหาใน Full Space

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

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

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

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

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

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

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

สภาพแวดล้อม

เมื่อเล่นเนื้อหาใน Full Space แอปของคุณจะอนุญาตให้ผู้ใช้ลดความสว่างของฟีเจอร์ส่งผ่านหรือเลือกสภาพแวดล้อมเสมือน


OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร