स्मार्टवॉच की होम स्क्रीन के लिए, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करें

Wear OS, मेमोरी के इस्तेमाल को ट्रैक करके बैटरी लाइफ़ को बेहतर बनाता है. Wear OS ऐप्लिकेशन की क्वालिटी के लिए बने दिशा-निर्देशों के मुताबिक, Watch Face Format का इस्तेमाल करके बनाई गई स्मार्टवॉच की होम स्क्रीन के लिए मेमोरी की सीमाएं तय की गई हैं:

  • ऐंबियंट मोड: ज़्यादा से ज़्यादा 10 एमबी मेमोरी का इस्तेमाल.
  • इंटरैक्टिव मोड: ज़्यादा से ज़्यादा 100 एमबी मेमोरी का इस्तेमाल.

मेमोरी के इस्तेमाल का हिसाब लगाना

स्मार्टवॉच की होम स्क्रीन के फ़ॉर्मैट का इस्तेमाल करके, स्मार्टवॉच की होम स्क्रीन पर मौजूद किसी इमेज या बिटमैप फ़ॉन्ट के लिए, मेमोरी के इस्तेमाल का हिसाब लगाने के लिए, सिस्टम ये काम करता है:

  1. इमेज या फ़ॉन्ट को डिकंप्रेस करें.
  2. देखें कि ये ऑप्टिमाइज़ेशन लागू होते हैं या नहीं:
    • स्क्रीन पर बेहतर तरीके से फ़िट करने के लिए, साइज़ बदलना
    • पारदर्शी पिक्सल को काटना
    • क्वालिटी में कोई बदलाव किए बिना, RGB565 में डाउनसैंपलिंग करना

बॉउंडिंग बॉक्स के आधार पर, साइज़ का हिसाब इस तरह लगाया जाता है:

  • RGBA8888 का इस्तेमाल करने वाली इमेज और फ़ॉन्ट के लिए: 4 x चौड़ाई x ऊंचाई
  • RGB565 का इस्तेमाल करने वाली इमेज और फ़ॉन्ट के लिए: 2 x चौड़ाई x ऊंचाई
  • ALPHA_8 बिटमैप कॉन्फ़िगरेशन का इस्तेमाल करने वाली इमेज और फ़ॉन्ट के लिए: चौड़ाई x ऊंचाई

इंटरैक्टिव मोड

इंटरैक्टिव मोड के लिए मेमोरी के इस्तेमाल का हिसाब लगाने के लिए, सिस्टम इन वैल्यू को जोड़ता है:

  1. किसी भी वेक्टर फ़ॉन्ट का प्रोसेस नहीं किया गया साइज़
  2. सिस्टम के डिफ़ॉल्ट फ़ॉन्ट के इस्तेमाल का अनुमान
  3. काट-छांट, साइज़ बदलने, और फिर से फ़ॉर्मैट करने के बाद, इमेज और बिटमैप फ़ॉन्ट का कुल साइज़

कॉन्फ़िगरेशन

कॉन्फ़िगरेशन वाली स्मार्टवॉच की होम स्क्रीन के लिए, सिस्टम अलग-अलग कॉन्फ़िगरेशन में स्मार्टवॉच की होम स्क्रीन के संसाधनों के कुल साइज़ का हिसाब लगाने की कोशिश करता है. अगर कॉम्बिनेशन की संख्या बहुत ज़्यादा है, तो हो सकता है कि सिस्टम एक साथ इस्तेमाल किए जाने वाले संसाधनों की संख्या का अनुमान ज़्यादा लगा दे.

ऐंबियंट मोड और लेयर

सिस्टम यह मानता है कि ऐंबियंट मोड में, ज़्यादा से ज़्यादा तीन फ़ुल-स्क्रीन लेयर इस्तेमाल की जाती हैं. इनमें से दो लेयर स्टैटिक होती हैं. लेयर में ये शामिल हैं:

  1. स्मार्टवॉच की होम स्क्रीन का बैकग्राउंड. सिस्टम इसे एक इमेज के तौर पर इस्तेमाल करता है. भले ही, बैकग्राउंड में कितनी भी इमेज शामिल हों.
  2. हाथ, डिजिटल डिसप्ले या डाइनैमिक एलिमेंट जैसे हिलते-डुलते हिस्से.
  3. सोर्स एक्सएमएल फ़ाइल के बाकी एलिमेंट.

ऐंबियंट मोड में, बड़े बिटमैप फ़ॉन्ट ज़्यादातर मेमोरी का इस्तेमाल करते हैं.

मेमोरी के इस्तेमाल को कम करने के तरीके

मेमोरी के इस्तेमाल को कम करने के लिए, इन ऑप्टिमाइज़ेशन का इस्तेमाल करें.

बिटमैप फ़ॉन्ट को काटना और उनका साइज़ बदलना

डिसप्ले के साइज़ के हिसाब से, अपनी इमेज और BitmapFont ऑब्जेक्ट काटें.

Wear OS, स्मार्टवॉच की होम स्क्रीन पर सभी इमेज को डिकंप्रेस करके दिखाता है. ज़्यादातर खाली रहने वाली स्क्रीन की इमेज का साइज़, डिस्क पर 3 केबी हो सकता है. हालांकि, 450 पिक्सल x 450 पिक्सल की स्क्रीन पर, इसका साइज़ 750 केबी या उससे ज़्यादा हो सकता है.

बिटमैप फ़ॉन्ट की हाइट एक जैसी रखें

BitmapFont का इस्तेमाल करते समय, पक्का करें कि किसी वर्ण की सभी इमेज की ऊंचाई एक जैसी हो. इसी तरह, पक्का करें कि शब्दों के लिए सभी इमेज की ऊंचाई एक ही हो.

ऐनिमेशन में एक जैसे फ़्रेम साइज़ का इस्तेमाल करना

किसी इमेज को वॉच फ़ेस पर एक जगह से दूसरी जगह ले जाने के बजाय, इमेज के एलिमेंट अपडेट करें और बॉउंडिंग बॉक्स की जगह को तय रखें. उदाहरण के लिए, अपनी स्मार्टवॉच की होम स्क्रीन पर किसी सर्कल को ऐनिमेट करने के लिए, उसे रोल करने के बजाय उसका रंग बदलें.

इस तकनीक से, ऐनिमेशन के कैलकुलेट किए गए बाउंडिंग बॉक्स का साइज़ छोटा हो जाता है.

डुप्लीकेट इमेज हटाना

किसी इमेज को कई बार दिखाने के लिए, सिर्फ़ एक इमेज रिसॉर्स शामिल करें और उसका कई बार रेफ़रंस दें.

आर्क का इस्तेमाल करके प्रोग्रेस दिखाना

अगर आपको प्रगति बार को एक मिनट या एक घंटे के बाद खत्म होने का अनुकरण करना है, तो 60 इमेज का इस्तेमाल न करें. यहां दिखाए गए तरीके के मुताबिक, Arc ऑब्जेक्ट का इस्तेमाल करें. इसमें लंबाई को कंट्रोल करने वाला एक्सप्रेशन शामिल है:

<PartDraw angle="0" width="400" height="400" name="ProgressBar"
          pivotX="0.5" pivotY="0.5 x="40" y="40">
    <Arc centerX="200" centerY="200" width="400" height="400"
         startAngle="0" endAngle="360">
        <!-- Completes a "progress loop" every minute. -->
        <Transform target="endAngle"
                   value="0 + (clamp([SECOND], 0, 60) - 0) * 6" />
        <Stroke cap="ROUND" color="#123456" thickness="10" />
    </Arc>
</PartDraw>

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

सोर्स फ़ाइल के आखिर में, स्मार्टवॉच के हाथ और कॉम्प्लीकेशन डालें

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

स्मार्टवॉच की होम स्क्रीन पर मेमोरी के इस्तेमाल का आकलन करना

स्मार्टवॉच की होम स्क्रीन पर मेमोरी के इस्तेमाल को मेज़र करने के लिए, मेमोरी फ़ुटप्रिंट का आकलन करने वाले टूल का इस्तेमाल करें. यह टूल, GitHub पर watchface डेटा स्टोर करने की जगह में उपलब्ध है.