הנחיות איכות לאפליקציות ל-Android XR

הגדרות של רמות תאימות

כדי לוודא שהאפליקציה מספקת חוויית משתמש מעולה במשקפי XR ובאוזניות XR, כדאי לעיין ברשימות הבדיקה ובבדיקות התאימות הבאות.

רשימות הבדיקה והבדיקות מגדירות קבוצה מקיפה של דרישות איכות לרוב סוגי האפליקציות ל-Android.

אפליקציה לנייד שתואמת ל-Android XR

אפליקציה לנייד שתואמת ל-Android XR היא אפליקציית נייד קיימת שלא עברה שינוי כדי להתאים למסך גדול או לכל גורם צורה אחר. אפליקציות מהסוג הזה תואמות אוטומטית ל-Android XR, כל עוד הן לא דורשות תכונות שלא נתמכות, כמו טלפוניה. המשתמשים יכולים להשלים תהליכי משימות קריטיים, אבל חוויית המשתמש פחות אופטימלית בהשוואה לאפליקציה ייעודית ל-Android XR.

אפליקציה מהסוג הזה פועלת במסך מלא בחלונית בסביבת המשתמש, אבל הפריסה שלה לא תמיד אידיאלית בגדלים גדולים יותר. אפליקציות שמציינות גדלים קומפקטיים במניפסט מוצגות בהתאם. האפליקציה לא פועלת במצב תאימות ולכן לא מוצגת עם פסי שוליים. האפליקציה מספקת חוויה פונקציונלית של אמצעי הקלט העיקריים שמוצעים על ידי Android XR (מעקב אחרי העיניים + תנועות או ידיים עם raycast) ותמיכה בסיסית במכשירי קלט חיצוניים, כולל מקלדת, עכבר, משטח מגע ובקרי משחקים. יכול להיות שאפשר לשנות את הגודל שלו, אבל לא בטוח.

אפליקציות לנייד שתואמות ל-Android XR מצטרפות אוטומטית לתוכנית וזמינות בחנות Google Play. אי אפשר להתקין דרך חנות Play אפליקציה שלא תואמת בגלל דרישות תכונה שלא נתמכות.

אפליקציה למסך גדול שתואמת ל-Android XR

אפליקציה עם מסך גדול שתואמת ל-Android XR היא אפליקציה ברמה 1 או ברמה 2 שמותקנת במכשיר עם מסך גדול, שבוצעו בה אופטימיזציות של פריסה לכל גדלי המסך ולכל תצורות המכשיר (לדוגמה, מסכים גדולים בנוסף לניידים), ושיש בה תמיכה משופרת במכשירי קלט חיצוניים ובריבוי משימות. אפליקציות למסכים גדולים שתואמות ל-Android XR מופעלות באופן אוטומטי וזמינות בחנות Play.

אפליקציה למסך גדול שתואמת ל-Android XR פועלת במסך מלא בחלונית מרחבית בסביבת המשתמש בגודל ‎1024dp × 720dp. המשתמשים יוכלו לקיים אינטראקציה עם האפליקציה באופן טבעי באמצעות העיניים והידיים, אבל האפליקציה תהיה דומה מאוד לאפליקציה למסך גדול.

אפליקציה ייחודית ל-Android XR

אפליקציה מובחנת ל-Android XR היא אפליקציה שחוויית המשתמש שלה מיועדת במפורש ל-XR, והיא כוללת תכונות שזמינות רק ב-XR. כדי ליהנות מכל היתרונות של Android XR ולבדל את חוויית השימוש באפליקציה שלכם, אתם יכולים להוסיף תכונות XR (למשל, חלוניות מרחביות) ותוכן XR (למשל, סרטון תלת-ממדי) לאפליקציות שלכם באמצעות פיתוח עם Android Jetpack XR SDK,‏ Unity או OpenXR.

אתם יכולים להשתמש ב-Jetpack XR SDK כדי לספק יכולות ספציפיות ל-XR, כולל פאנלים מרחביים, סביבות, מודלים תלת-ממדיים, אודיו מרחבי, סרטונים ותמונות תלת-ממדיים או מרחביים, נקודות עיגון וממשק משתמש מרחבי אחר כמו רכיבי תצוגה מסתובבים.

כדי שאפליקציה תיחשב לאפליקציה ייחודית ל-Android XR, היא צריכה להטמיע לפחות תכונה אחת או פריט תוכן אחד שספציפיים ל-XR. יכול להיות שיהיו דרישות נוספות לגבי תכונות ותוכן במקרים מסוימים. פרטים נוספים מופיעים בהמשך.

כל האפליקציות שנוצרו באמצעות Unity או OpenXR נחשבות לדיפרנציאליות. אפליקציות שנוצרו באמצעות Unity או OpenXR צריכות לעמוד במדדי איכות ובדרישות מינימליות כדי להיחשב לאפליקציה ייחודית ל-Android XR. לדוגמה, אפליקציה עם קצב פריימים נמוך, קריסות או חוויות משתמש שליליות אחרות לא תעמוד בדרישות.

רשימת משימות לבדיקת תאימות ל-Android XR

רשימות התאימות האלה מגדירות קריטריונים שיעזרו לכם להעריך את רמת התמיכה של האפליקציה ב-XR. רמות התמיכה כוללות את האפשרויות הבאות:

אפליקציה לנייד שתואמת ל-Android XR

האפליקציה צריכה לעמוד בדרישות האיכות הבסיסיות.

האפליקציה צריכה לעמוד גם בכל ההנחיות הרלוונטיות בנושא נגישות לגורמי צורה אחרים, כמו טלפונים וטאבלטים (לדוגמה, ניגודיות צבעים).

אפליקציה למסך גדול שתואמת ל-Android XR

כל אפליקציה ברמה 1 או ברמה 2 למסך גדול נחשבת לאפליקציה למסך גדול שתואמת ל-Android XR. הנחיות האיכות לאפליקציות למסך גדול מציעות גישה מובנית להבטחת חוויה מצוינת ב-Android XR, אבל לא נדרש להתייחס למצב המכשיר, כמו סיבוב או קיפול ופתיחה.

אפליקציה ייחודית ל-Android XR

אפליקציות Android XR הן מאוד מובחנות, ולכן חלק מהיכולות שמפורטות כאן רלוונטיות רק לסוגים מסוימים של אפליקציות. בוחרים את היכולות שמתאימות לאפליקציה. אפליקציות ל-Android צריכות לעמוד גם בהנחיות ל-Android למסכים גדולים ולניידים. כדאי לעיין בדרישות שרלוונטיות לאפליקציה שלכם (חלק מהדרישות האלה עשויות להפוך לעדכוני מדיניות פוטנציאליים).

סוג האפליקציה / תרחיש השימוש

קטגוריה

אזור

הנחיות

דרישות בסיסיות כלליות (Android ו-OpenXR)

פרטיות ואבטחה

כניסה לחשבון (חוויית משתמש ראשונית)

אם באפליקציה נעשה שימוש במערכת כניסה, צריך להציג בבירור את פרטי הכניסה של המשתמש (למשל, פרטי שם המשתמש) אחרי אימות מוצלח. כך אנחנו יכולים לוודא שאתם בעלי החשבון. בנוסף, צריך לכלול תפריט או דף הגדרות שנגישים בקלות, שמאפשרים למשתמשים לראות ולנהל את פרטי החשבון שלהם בכל שלב.

בטיחות ונוחות

הבהוב

כדי להבטיח את הבטיחות והרווחה של כל המשתמשים, חשוב לצמצם את הסיכון לאפקטים של הבהוב באפליקציה.

אל תשלבו בכוונה אלמנטים עיצוביים שעלולים לגרום להבהוב.

1. אם אפקט הריצוד הכרחי, צריך לוודא שקצב ההבהוב נמוך מאוד (מתחת ל-3 הבהובים בשנייה), ושהאזור המהבהב קטן ועדין.

2. מומלץ לספק אפשרות להשבית את התכונה דרך ההגדרות או ההעדפות.

3. הצגת הודעת אזהרה ברורה לפני כל הבהוב.

איך להימנע ממחלת נסיעה

כדי למנוע גרימת בחילות למשתמשים, חשוב לפעול לפי ההנחיות הבאות:

  • כדי לתת עדיפות לנוחות הצפייה, מומלץ להימנע מתנועות פתאומיות של המצלמה. חשוב לשמור על מסגרת התייחסות עקבית כדי שהמשתמש לא יתבלבל.
  • לא לסובב את המצלמה לאורך זמן. אם הכיוון של המצלמה משתנה, המצלמה עוברת לאוריינטציה החדשה.

קלט

גודל משטחי המגע

למשטחי מגע יש גודל מינימלי וגודל מומלץ על סמך מרחק האינטראקציה המיועד:

  • גודל מינימלי: DistanceInM x 0.868 x 48 = M
  • גודל מומלץ: DistanceInM x 0.868 x 56 = M or larger

כשמשתמשים ב-Jetpack XR SDK, מומלץ להגדיר גודל מינימלי של 48‎ x 48dp, או גודל מומלץ של 56‎ x 56dp ומעלה לאזור של לחצן ההקשה.

פונקציונליות טכנית של XR

קלט באמצעות הידיים

האפליקציה שלכם תומכת בקלט טבעי של הידיים כשיטת אינטראקציה בסיסית ל-Android XR, כולל דרישות ל-raycast של הידיים ותמיכה במחוות לפרימיטיבים של קלט.

אפשר לשחק באפליקציה או להשתמש בה בלי בקרים, אבל אפשר גם להשתמש בהם אם רוצים.

Boundary (לשעבר Guardian)

אם האפליקציה מצפה שהמשתמשים יזוזו מנקודת ההתחלה שלהם (בזמן הפעלת האפליקציה) במרחב הפיזי שלהם, היא מבקשת העברה או מצהירה על PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE במניפסט.

אם האפליקציה משתמשת ב-XR_BOUNDARY_TYPE_LARGE, אפשר לשחק בה באופן מלא בלי שהסביבה התחומה תוצג (בתוך רדיוס של 2.0 מ'). שימו לב: העברת סיגנל ללא שינוי של הסביבה התחומה מתחילה להפוך לשקוף בהדרגה ברדיוס של 1.5 מ'.

ביצועים

רינדור

האפליקציה שלכם מציגה כל פריים בין <11.1ms‏ (90Hz) לבין < 13.8ms‏ (72Hz).

רזולוציה

הרזולוציה של האפליקציה היא לפחות ‎1,856 x 2,160 לכל עין.

זמן ההפעלה של האפליקציה

המשתמשים רוצים ליצור אינטראקציה עם האפליקציה או המשחק שלכם כמה שיותר מהר. ההגדרה של זמן הפעלה או טעינה טוב משתנה בהתאם לקטגוריה, אבל באופן כללי מומלץ לצמצם את הזמן שחולף בין ההפעלה לבין האינטראקקציה הראשונה.

משך היעד מפורט בהמשך:

  • הפעלה במצב התחלתי (cold start) ממוצעת: פחות מ-2 שניות
  • הפעלה במצב ביניים (warm start) ממוצעת: פחות משנייה

מידע נוסף זמין במאמר בנושא זמן ההפעלה של אפליקציות.

מקרי ANR

האפליקציה לא קורסת ולא חוסמת את שרשור ה-UI, מה שגורם לשגיאות ANR ('Android לא מגיבה').

באפליקציה שלך יש פחות ממקרה ANR אחד ב-99.5% מימי השימוש באפליקציה.

האפליקציה שלך משתמשת בדוח טרום-השקה של Google Play כדי לזהות בעיות פוטנציאליות ביציבות. אחרי הפריסה, כדאי לעיין בדף 'תפקוד האפליקציה' ב-Google Play Console.

שיעור הקריסות

לא לצרוך משאבי מערכת מוגזמים שמשפיעים על שאר המערכת ועל אפליקציות אחרות, ולשמור על שיעור קריסה של כ-1%.

Android App Baseline (עם הבדלים בין מכשירי XR)

חוויית משתמש ועיצוב

XR בסיסי

האפליקציה מטמיעה לפחות תכונה אחת ספציפית ל-XR או פריט תוכן ספציפי ל-XR כדי לשפר את חוויית המשתמש. הם יכולים לכלול תצוגה היקפית, חלונית מרחבית אחת או יותר, סביבות או אובייקטים תלת-ממדיים.

חלוניות מרחביות

כשמבצעים ריבוי משימות (כלומר, משלימים שתי משימות או יותר בו-זמנית) באמצעות חלוניות, כדאי ליצור חלוניות נפרדות. לדוגמה, אפשר ליצור חלוניות נפרדות של מרחב לשיחות ולרשימות.

סביבה

כשמציגים סביבה וירטואלית, בהירות יכולה להסיח את הדעת ולגרום לעייפות. האפליקציה שלך מציגה טווח גוונים בטוח ללא שיאים של בהירות שמתנגשים עם ממשק המשתמש או עלולים לגרום לעייפות המשתמשים. ממשק המשתמש קריא בכל הכיוונים, במיוחד ברצועה האופקית האמצעית של מבט המשתמש. (בעתיד נוסיף קישור להנחיות מפורטות)

מעבר בין מרחב הבית (HSM) לבין מרחב מלא (FSM)

כשמעבירים משתמשים למרחב המלא, האפליקציה כוללת נקודת כניסה שמאפשרת למשתמשים לעבור במהירות בין המרחב הראשי למרחב המלא. מומלץ להשתמש בסמל או בתווית, ולמקם את הלחצן במקום שקל לגשת אליו.

חלוניות מרחביות

ממקמים תפריטים, נכסים ואמצעי בקרה בחלונית ייעודית או ב-orbiter. אל תכללו את הרכיבים האלה בחלונית העריכה הראשית.

גלילה בתפריט או ברשימה

האפליקציה מעדכנת את אינטראקציות הגלילה (במיוחד דרך קרוסלות או רשימות אנכיות) כדי להוסיף להן פיזיקה או תנופה. לדוגמה, בגלילה יש תנופה, ולכן התוכן בקרוסלות וברשימות ממשיך לנוע לזמן קצר אחרי אינטראקציה של המשתמש, לפני שהוא נעצר בהדרגה (במקום לעצור בדיוק כשקלט המשתמש מסתיים).

פונקציונליות של סרטונים או מדיה

חוויית משתמש ועיצוב

נגן מרחבי (Android בלבד)

האפליקציה מאפשרת למשתמשים לצפות בתוכן במרחב מלא.

להסיר את אמצעי השליטה בהפעלה משכבת-על שמוצגת מעל התוכן, ולהציב אותם במקום זאת בחלונית ייעודית או בלחצן צף.

בחלוניות עם הפעלת סרטונים, מגדירים את יחס הגובה-רוחב כדי להסיר את הפסים השחורים.

אודיו מרחבי

כדאי לתמוך באודיו מרחבי, כולל אודיו שמוצמד לחלונית או צליל סראונד.

צפייה בו-זמנית בסרטונים

אם האפליקציה תומכת בכמה שידורי וידאו בו-זמנית, ממשק המשתמש צריך להציג את המידע הבא בצורה ברורה:

  • אילו שידורי וידאו מספקים פלט אודיו
  • אילו אמצעי בקרה להפעלה משפיעים על אילו סטרימינג של סרטונים

סביבה

כשמפעילים תוכן במצב 'מרחב מלא', האפליקציה מאפשרת למשתמשים להחליש את ההעברה או לבחור סביבות וירטואליות.


‫OpenXR™‎ והלוגו של OpenXR הם סימנים מסחריים בבעלות The Khronos Group Inc. ‎ והם רשומים כסימן מסחרי בסין, באיחוד האירופי, ביפן ובבריטניה.