כדי ליצור חוויות משתמש מושכות ב-AR, חשוב להפעיל התאמות ב-AR מניב ביצועים טובים.
עליכם לוודא שהאפליקציה:
- ההרגשה מגיבה לקלט של משתמשים, שכולל תנועות מגע ומכשיר תנועה.
- רינדור בקצב פריימים סביר ועקבי. משתמשים באופן כללי מעדיפים קצב פריימים עקביים ונמוכים יותר על פני קצבי פריימים גבוה יותר.
- מזעור התרוקנות הסוללה, כך שהמשתמש יוכל להשתמש במכשיר שלו לבצע משימות במהלך היום, או לקיים אינטראקציה רבה יותר עם חוויית ה-AR שלכם.
- יצירה של חוויית AR מעניינת שבה מופיע תוכן שנוצר על ידי AR יציבה יחסית לסביבה, ומשתלבת באופן ריאליסטי הסביבה.
שיטות מומלצות לשיפור הביצועים
כדי ליצור חוויות AR מושכות יותר, מומלץ לעצב את הרכיבים הבאים שיטות עבודה מומלצות.
שימוש במודעות עוגן לשיפור הביצועים של המעקב
למרות שניתן למקם תוכן תלת-ממדי באמצעות קואורדינטות של מרחב עולמי, להשתמש תמיד בעוגן כשאפשר. ARCore מבטיח שעוגנים ייראו יציבים ביחס לעולם, למרות הקואורדינטות הבסיסיות של המרחב העולם משתנות ועשויות לקפוץ עם הזמן בכל פעם ש-ARCore מעדכנים את ההבנה שלו לגבי העולם.
אובייקטים וירטואליים שלא מחוברים לעוגן יופיעו מדי פעם ולא ייראה יציב ביחס לסביבה. הפעולה הזו יכולה להפוך חוויית ה-AR פחות מעניינת את המשתמשים.
התחשבות במאפייני ביצועים ספציפיים למכשיר
מכשירים שנתמכים ב-ARCore מכסים טווח רחב של מאפייני החומרה והביצועים. ביצועי המכשיר עשויים להשתנות כתוצאה מהסיבות הבאות:
- המעבד (CPU) או ה-GPU של המכשיר, מהירות השעון
- זיכרון ורוחב פס זמינים
- איכות חיישן המצלמה/IMU
- הבדלים אחרים בחומרה
- מנהלי התקנים של מערכת הפעלה ומכשירים
מומלץ לבדוק את האפליקציה בסוגים שונים של מכשירים נציג של המכשירים שבהם המשתמשים ישתמשו.
השבתת תכונות עתירות מעבד (CPU) כשהן לא בשימוש
תכונות ARCore מסוימות מגדילות את השימוש במעבד (CPU) כשהן פועלות. נקודות שכדאי להעלות אנחנו משביתים את התכונות האלה בפעמים שבהן השימוש ב-AR לא מחייב אותם. כך מחזורי המעבד (CPU) הנוספים יהיו זמינים לאפליקציה שלך, ותשתפר ביצועים תרמיים וחיי סוללה.
נכון לעכשיו, השימוש במעבד (CPU) של ARCore גדל כאשר Instant Placement ו/או Augmented Images מופעל עבור הסשן הנוכחי. מעקב לשיפור היעילות של שימוש במעבד:
ברגע שהמעקב המלא יופסק, יש להשבית את Instant Placement נוצרה. אפשר להשבית את התכונה בהגדרות הסשן.
יש להשבית את Augmented Images כאשר התכונה לא נדרשת לחוויית ה-AR שלכם. כדי להשבית תמונות מרובות, צריך להגדיר
null
או ריקון מסד הנתונים של התמונות המורחבות בהגדרת הסשן.
מעקב אחר תרמיות של מכשירים
במהלך הפיתוח ובדיקות בקרת האיכות, תוכלו להשתמש בממשקי ה-API התרמיים של Android כדי לעקוב ולעקוב אחרי הביצועים של האפליקציה במכשיר.
צריך להקפיד להשתמש בגרסת ייצור של האפליקציה (ולא בפיתוח או qa בגרסת האפליקציה שעשויה להיות עם ביצועים שונים בזמן הריצה למאפיינים.
PowerManager#getCurrentThermalStatus()
(רמת API 29)PowerManager#getThermalHeadroom(int)
(רמת API 30)
זיהוי הרעב במעבד (CPU) של ARCore
כשסשן ב-ARCore פעיל, האפליקציה שלך חייבת לשתף GPU ומעבד (CPU) מוגבלים בנייד עם ARCore. אפליקציות שקשורות למעבד (CPU) יכולות להתחרות במשאבי המעבד (CPU) שנדרש למעקב אחר תנועה.
כדי לאמת ש-ARCore לוקליזציה ומיפוי בו-זמנית (SLAM) יכול לפעול כרגיל, צריך לוודא שתדירות ה-VIO נמוכה. הודעה לא מופיעה ביומנים של מכשיר Android:
adb logcat | grep 'VIO frequency low'
מניעת הרעב במעבד (CPU) של ARCore
כשסשן ב-ARCore פעיל, האפליקציה שלך חייבת לשתף GPU ומעבד (CPU) מוגבלים בנייד מכשיר משאבים עם ARCore. אפליקציות שקשורות למעבד (CPU) יכולות להתחרות במשאבי המעבד (CPU) שנדרש למעקב אחר תנועה.
יצירה מראש של מסדי הנתונים של תמונות רבודה
כשהדבר אפשרי, כדאי ליצור מראש את מסדי הנתונים של התמונות המשופרות בזמן הפיתוח. אם אתם צריכים ליצור מסדי נתונים של תמונות רבודה בזמן ריצה או באופן דינמי להוסיף תמונות למסד נתונים קיים, להוסיף תמונות ברקע כדי למנוע חסימה של ה-thread הראשי של ממשק המשתמש.
הגבלת מספר הבקשות לסטרימינג מהמצלמה
כשמשתמשים במצלמה משותפת של Java, אפליקציות יכולות לבקש שידורי תמונה נוספים במעבד (CPU) או ב-GPU.