प्रदर्शन संबंधी विचार

आकर्षक एआर उपयोगकर्ता अनुभव बनाने के लिए, यह ज़रूरी है कि एआर की सुविधा वाला आपका ऐप्लिकेशन अच्छा परफ़ॉर्म करे.

पक्का करें कि आपका ऐप्लिकेशन:

  • उपयोगकर्ता के इनपुट के हिसाब से काम करती है. इसमें टच जेस्चर और डिवाइस मोशन शामिल हैं.
  • एक सही और एक जैसे फ़्रेम रेट पर रेंडर होता है. आम तौर पर, उपयोगकर्ता ऐसे फ़्रेम रेट को पसंद करते हैं जो एक जैसे और कम फ़्रेम रेट से कम होते हैं.
  • बैटरी के तेज़ी से खर्च होने को कम करती है, आपके उपयोगकर्ता को दिन भर दूसरे कामों के लिए अपने डिवाइस का इस्तेमाल करने में मदद करती है या आपके एआर अनुभव से लंबे समय तक जुड़ी रहती है.
  • एआर का बेहतरीन अनुभव देता है, जहां एआर से बनाई गई सामग्री पर्यावरण के हिसाब से स्टेबल दिखती है और असल में पर्यावरण के साथ घुल-मिल जाती है.

परफ़ॉर्मेंस के लिए सबसे सही तरीके

एआर के बेहतर अनुभव देने के लिए, नीचे दिए गए सबसे सही तरीकों को ध्यान में रखकर डिज़ाइन करें.

ट्रैकिंग की परफ़ॉर्मेंस बेहतर बनाने के लिए ऐंकर का इस्तेमाल करना

हालांकि, दुनिया भर के स्पेस का इस्तेमाल करके, 3D कॉन्टेंट पोस्ट किया जा सकता है, लेकिन जब भी संभव हो, ऐंकर का इस्तेमाल करें. ARCore यह पक्का करता है कि ऐंकर दुनिया के हिसाब से स्थिर दिखाई दें, भले ही दुनिया के अंतरिक्ष निर्देशांक बदलते हों. जब भी ARCore दुनिया के बारे में अपनी समझ अपडेट करता है, तो यह समय के साथ आगे बढ़ सकता है.

जो वर्चुअल ऑब्जेक्ट किसी ऐंकर से जुड़े नहीं होते हैं वे कभी-कभी जंप होते दिखते हैं और पर्यावरण के हिसाब से स्थिर नहीं दिखते. इससे एआर (ऑगमेंटेड रिएलिटी) का अनुभव उपयोगकर्ताओं के लिए कम आकर्षक बन सकता है.

डिवाइस के हिसाब से परफ़ॉर्मेंस की विशेषताओं पर ध्यान दें

ARCore के साथ काम करने वाले डिवाइस में कई तरह के हार्डवेयर और परफ़ॉर्मेंस से जुड़ी सुविधाएं शामिल होती हैं. डिवाइस की परफ़ॉर्मेंस इन वजहों से अलग-अलग हो सकती है:

  • डिवाइस सीपीयू/जीपीयू, क्लॉक स्पीड
  • उपलब्ध मेमोरी और बैंडविड्थ
  • कैमरा/IMU सेंसर की क्वालिटी
  • अन्य हार्डवेयर अंतर
  • ऑपरेटिंग सिस्टम और डिवाइस ड्राइवर

हमारा सुझाव है कि आप अलग-अलग तरह के डिवाइसों पर अपने ऐप्लिकेशन को टेस्ट करें. ये ऐसे डिवाइस होते हैं जिनका इस्तेमाल आपके उपयोगकर्ता करेंगे.

इस्तेमाल में न होने पर, सीपीयू की इंटेंसिव सुविधाएं बंद करें

कुछ ARCore सुविधाएं, चालू होने पर सीपीयू के इस्तेमाल को बढ़ाती हैं. जब आपके एआर अनुभव के लिए इन सुविधाओं की ज़रूरत न हो, तब इन सुविधाओं को बंद कर दें. इससे आपके ऐप्लिकेशन के लिए अतिरिक्त सीपीयू साइकल उपलब्ध होंगी और थर्मल परफ़ॉर्मेंस और बैटरी लाइफ़ बेहतर होगी.

फ़िलहाल, मौजूदा सेशन के लिए Instant Placement और/या Augmented Images चालू होने पर, ARCore सीपीयू का इस्तेमाल बढ़ जाता है. सीपीयू के इस्तेमाल को बेहतर बनाने के लिए इन दिशा-निर्देशों का पालन करें:

  • पूरी ट्रैकिंग लागू हो जाने के बाद, Instant Placement को बंद किया जाना चाहिए. सेशन कॉन्फ़िगरेशन में जाकर, इस सुविधा को बंद किया जा सकता है.

  • अगर आपके एआर अनुभव के लिए यह सुविधा ज़रूरी न हो, तो Augmented Images बंद हो जाना चाहिए. ऑगमेंटेड इमेज की सुविधा को बंद करने के लिए, सेशन कॉन्फ़िगरेशन में null या खाली ऑगमेंटेड इमेज डेटाबेस कॉन्फ़िगर करें.

डिवाइस के थर्मल पर नज़र रखें

डेवलपमेंट और QA टेस्टिंग के दौरान, Android के थर्मल एपीआई का इस्तेमाल डिवाइस पर अपने ऐप्लिकेशन की परफ़ॉर्मेंस की निगरानी करने और उसे ट्रैक करने के लिए किया जा सकता है.

अपने ऐप्लिकेशन के प्रोडक्शन बिल्ड का इस्तेमाल करें, न कि ऐप्लिकेशन का डेवलपमेंट या qa बिल्ड इस्तेमाल करें, जिसमें रनटाइम की परफ़ॉर्मेंस से जुड़ी अलग-अलग विशेषताएं हो सकती हैं.

ARCore सीपीयू की भूख का पता लगाएं

किसी ARCore सेशन के चालू होने पर, आपके ऐप्लिकेशन को ARCore के साथ सीमित मोबाइल सीपीयू और जीपीयू संसाधन शेयर करने चाहिए. सीपीयू से जुड़े ऐप्लिकेशन, मोशन ट्रैकिंग के लिए ज़रूरी सीपीयू संसाधनों से मुकाबला कर सकते हैं.

यह पुष्टि करने के लिए कि ARCore का एक साथ स्थानीय भाषा में बदलने और मैप करने (एसएलएएम) सामान्य तरीके से काम कर रहा है या नहीं, पुष्टि करें कि "वीआईओ फ़्रीक्वेंसी कम" मैसेज Android डिवाइस के लॉग में दिखता नहीं है:

adb logcat | grep 'VIO frequency low'

ARCore सीपीयू की भूख से बचने की कोशिश करें

किसी ARCore सेशन के चालू होने पर, आपके ऐप्लिकेशन को ARCore के साथ सीमित मोबाइल सीपीयू और जीपीयू संसाधन डिवाइस शेयर करने चाहिए. सीपीयू से जुड़े ऐप्लिकेशन, मोशन ट्रैकिंग के लिए ज़रूरी सीपीयू संसाधनों से मुकाबला कर सकते हैं.

ऑगमेंटेड इमेज का डेटाबेस पहले से बनाएं

जब भी मुमकिन हो, डेवलपमेंट के समय ऑगमेंटेड इमेज का डेटाबेस पहले से बनाएं. अगर रनटाइम पर ऑगमेंटेड इमेज डेटाबेस बनाना या किसी मौजूदा डेटाबेस में डाइनैमिक इमेज जोड़ना ज़रूरी हो, तो पक्का करें कि आपने बैकग्राउंड थ्रेड में इमेज जोड़ी हों. इससे मुख्य यूज़र इंटरफ़ेस (यूआई) थ्रेड को ब्लॉक होने से रोका जा सकता है.

अनुरोध की गई कैमरा स्ट्रीम की संख्या सीमित करें

Java Shared Camera का इस्तेमाल करते समय, ऐप्लिकेशन अतिरिक्त सीपीयू या जीपीयू इमेज स्ट्रीम का अनुरोध कर सकते हैं.