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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ARCore सीपीयू पीड़ितों की पहचान करना

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

यह पुष्टि करने के लिए कि ARCore' एक साथ स्थानीय भाषा में बनाना और मैप करना (SLAM) सामान्य रूप से चल सकता है या नहीं, पुष्टि करें कि &&VIO फ़्रीक्वेंसीकम फ़्रीक्वेंसी &कोटेशन; मैसेज Android डिवाइस के लॉग में नहीं दिखता:

adb logcat | grep 'VIO frequency low'

ARCore सीपीयू की स्टारिंग से बचें

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

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

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

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

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