برای ایجاد تجربیات کاربر AR قانع کننده، مهم است که برنامه دارای AR شما عملکرد خوبی داشته باشد.
اطمینان حاصل کنید که برنامه شما:
- به ورودی کاربر، که شامل حرکات لمسی و حرکت دستگاه است، پاسخگو است.
- رندر با نرخ فریم معقول و ثابت. کاربران عموماً نرخهای فریم ثابت و پایینتر را نسبت به نرخهای متغیر و بالاتر ترجیح میدهند.
- تخلیه باتری را به حداقل می رساند و به کاربر این امکان را می دهد که از دستگاه خود برای کارهای دیگر در طول روز استفاده کند یا مدت زمان بیشتری با تجربه AR شما درگیر شود.
- یک تجربه AR قانعکننده ایجاد میکند که در آن محتوای تولید شده توسط AR نسبت به محیط پایدار به نظر میرسد و بهطور واقعبینانه با محیط ترکیب میشود.
بهترین شیوه های عملکرد
برای ایجاد تجربیات AR قانعکنندهتر، با در نظر گرفتن بهترین شیوههای زیر طراحی کنید.
از لنگرها برای بهبود عملکرد ردیابی استفاده کنید
اگرچه امکان قرار دادن محتوای سه بعدی خود با استفاده از مختصات فضای جهان وجود دارد، همیشه در صورت امکان از یک لنگر استفاده کنید . ARCore تضمین میکند که لنگرها نسبت به جهان پایدار به نظر میرسند، حتی اگر مختصات فضای زیرین جهان تغییر کنند و ممکن است هر زمان که ARCore درک خود از جهان را بهروزرسانی میکند، در طول زمان پرش کند.
اشیاء مجازی که به یک لنگر متصل نیستند، گهگاه به نظر میرسند که میپرند و نسبت به محیط پایدار به نظر نمیرسند. این می تواند تجربه AR را برای کاربران جذاب تر کند.
ویژگی های عملکرد خاص دستگاه را در نظر بگیرید
دستگاه های پشتیبانی شده ARCore طیف گسترده ای از ویژگی های سخت افزاری و عملکردی را پوشش می دهند. عملکرد دستگاه می تواند به دلایل زیر متفاوت باشد:
- CPU/GPU دستگاه، سرعت ساعت
- حافظه و پهنای باند موجود
- کیفیت سنسور دوربین/IMU
- سایر تفاوت های سخت افزاری
- درایورهای سیستم عامل و دستگاه ها
توصیه میکنیم برنامه خود را روی کلاسهای مختلف دستگاههایی آزمایش کنید که نماینده دستگاههایی هستند که کاربران شما استفاده میکنند.
غیرفعال کردن ویژگیهای فشرده CPU در صورت عدم استفاده
برخی از ویژگی های ARCore استفاده از CPU را در حالی که فعال هستند افزایش می دهند. در مواقعی که تجربه AR شما به آنها نیاز ندارد، این ویژگیها را غیرفعال کنید. این باعث می شود چرخه های CPU اضافی در دسترس برنامه شما قرار گیرد و عملکرد حرارتی و عمر باتری بهبود یابد.
در حال حاضر، زمانی که Instant Placement و/یا Augmented Images برای جلسه جاری فعال باشد، استفاده از CPU ARCore افزایش مییابد. برای افزایش بهره وری استفاده از CPU، این دستورالعمل ها را دنبال کنید:
پس از ایجاد ردیابی کامل، Instant Placement باید غیرفعال شود. این ویژگی را می توان در پیکربندی جلسه غیرفعال کرد.
هر زمان که این ویژگی برای تجربه AR شما مورد نیاز نباشد، Augmented Images باید غیرفعال شوند. برای غیرفعال کردن تصاویر افزوده شده، یک پایگاه داده تصاویر افزوده شده
null
یا خالی را در پیکربندی جلسه پیکربندی کنید.
مانیتور حرارتی دستگاه
در طول توسعه و آزمایش QA، میتوانید از APIهای حرارتی Android برای نظارت و ردیابی عملکرد برنامه خود در دستگاه استفاده کنید.
مطمئن شوید که از یک ساخت تولید برنامه خود استفاده می کنید (و نه توسعه یا ساخت qa از برنامه خود که ممکن است ویژگی های عملکرد زمان اجرا متفاوتی داشته باشد.
PowerManager#getCurrentThermalStatus()
(سطح API 29)PowerManager#getThermalHeadroom(int)
(سطح API 30)
گرسنگی CPU ARCore را شناسایی کنید
وقتی جلسه ARCore فعال است، برنامه شما باید منابع محدودی از CPU و GPU تلفن همراه را با ARCore به اشتراک بگذارد. برنامه های محدود به CPU می توانند با منابع CPU مورد نیاز برای ردیابی حرکت رقابت کنند.
برای تأیید اینکه محلیسازی و نقشهبرداری همزمان ARCore (SLAM) میتواند به طور عادی اجرا شود، بررسی کنید که پیام « VIO فرکانس کم » در گزارشهای دستگاه Android ظاهر نشود :
adb logcat | grep 'VIO frequency low'
از گرسنگی CPU ARCore اجتناب کنید
هنگامی که یک جلسه ARCore فعال است، برنامه شما باید CPU تلفن همراه و دستگاه منابع GPU محدود را با ARCore به اشتراک بگذارد. برنامه های محدود به CPU می توانند با منابع CPU مورد نیاز برای ردیابی حرکت رقابت کنند.
پایگاه داده های تصاویر افزوده شده را از قبل ایجاد کنید
در صورت امکان، پایگاه داده های تصویر افزوده خود را در زمان توسعه از قبل ایجاد کنید. اگر لازم است پایگاه داده های تصویر افزوده را در زمان اجرا ایجاد کنید یا به صورت پویا تصاویر را به پایگاه داده موجود اضافه کنید، مطمئن شوید که تصاویر را در یک رشته پس زمینه اضافه کنید تا از مسدود کردن رشته اصلی UI جلوگیری کنید.
تعداد جریان های دوربین درخواستی را محدود کنید
هنگام استفاده از Java Shared Camera ، برنامهها میتوانند جریان تصویر اضافی CPU یا GPU را درخواست کنند.