Wear OS डेटा लेयर एपीआई में कई तरह के क्लाइंट होते हैं. ये अलग-अलग तरह के डेटा के लिए और कनेक्टिविटी की अलग-अलग स्थितियों में काम आते हैं.
इस पेज पर, हर तरह के क्लाइंट के बारे में बताया गया है. साथ ही, इसमें एक टेबल भी दी गई है. इस टेबल में, अलग-अलग क्लाइंट की सुविधाओं की तुलना की गई है. इस जानकारी का इस्तेमाल करके, क्लाइंट टाइप का वह सेट चुना जा सकता है जो आपके ऐप्लिकेशन के लिए सबसे सही हो.
डेटा लेयर एपीआई का इस्तेमाल कब करना चाहिए
डेटा लेयर एपीआई का इस्तेमाल तब करें, जब इंटरैक्शन सिर्फ़ लोकल वॉच और लोकल फ़ोन के बीच हो. ज़्यादा जानकारी वाले उदाहरणों के लिए, डेटा लेयर के इस्तेमाल के सामान्य उदाहरण देखें.
डेटा क्लाइंट
DataClient ऑब्जेक्ट की मदद से, DataItem या Asset में डेटा पढ़ा या लिखा जा सकता है:
हर
DataItem, जानकारी की एक यूनिट होती है. इसे ब्रॉडकास्ट किया जाता है और उपयोगकर्ता के आस-पास मौजूद सभी डिवाइसों पर सिंक किया जाता है.DataItemको हमेशा के लिए सेव किया जाता है. आपका डिवाइस, डेटा आइटम के मिटाए जाने तक इसके कॉन्टेंट को पढ़ सकता है.Assetका इस्तेमाल, बड़े डेटा पेलोड के लिए किया जाता है. जैसे, इमेज या मीडिया फ़ाइलें.
मैसेज क्लाइंट
MessageClient ऑब्जेक्ट, मैसेज भेज सकता है. साथ ही, यह रिमोट प्रोसीज़र कॉल (आरपीसी) के लिए अच्छा होता है. जैसे, Wear OS डिवाइस का इस्तेमाल करके, हैंडहेल्ड डिवाइस पर इंस्टॉल किए गए ऐप्लिकेशन के वर्शन को कंट्रोल करना.
मैसेज, sendMessage() का इस्तेमाल करके एकतरफ़ा अनुरोधों के लिए या sendRequest() का इस्तेमाल करके अनुरोध और जवाब वाले कम्यूनिकेशन मॉडल के लिए बेहतरीन होते हैं. डेटा क्लाइंट के उलट, मैसेज क्लाइंट को मैसेज भेजने के लिए, नोड को नेटवर्क से कनेक्ट करना ज़रूरी होता है.
sendMessage() मेथड, रिमोट नोड को डेटा डिलीवर करने की पूरी कोशिश करता है. साथ ही, इसमें फिर से कोशिश करने का कोई बिल्ट-इन तरीका शामिल नहीं होता. अगर नेटवर्क ट्रांसफ़र शुरू होने से पहले टारगेट डिवाइस डिसकनेक्ट हो जाता है, तो यह तरीका TARGET_NODE_NOT_CONNECTED दिखाता है.
चैनल क्लाइंट
ChannelClient ऑब्जेक्ट, डिवाइसों के बीच स्ट्रीम-ओरिएंटेड कम्यूनिकेशन की सुविधा देता है. चैनल, दो नोड के बीच दोनों तरफ़ से कम्यूनिकेशन करने का एक पाइप होता है. यह इन जैसे इस्तेमाल के उदाहरणों के लिए फ़ायदेमंद होता है:
- इंटरनेट उपलब्ध न होने पर, कनेक्ट किए गए दो या उससे ज़्यादा डिवाइसों के बीच डेटा फ़ाइलें ट्रांसफ़र करें.
ChannelClient,DataClientकी तुलना में डिस्क स्पेस बचाता है.DataClient, कनेक्ट किए गए डिवाइसों के साथ सिंक करने से पहले, लोकल डिवाइस पर ऐसेट की कॉपी बनाता है. MessageClientका इस्तेमाल करके, बहुत बड़ी फ़ाइल को भरोसेमंद तरीके से भेजें.- स्ट्रीम किया गया डेटा ट्रांसफ़र करता है. जैसे, माइक्रोफ़ोन से मिला आवाज़ का डेटा.
चैनल खोलने के बाद, डेटा को अलग-अलग DataItem यूनिट के बजाय, लगातार बाइट स्ट्रीम में भेजा और पाया जा सकता है. डेटा क्लाइंट को इसकी ज़रूरत होती है.
डेटा फ़्लो को मैनेज करने और डेटा को एक जैसा बनाए रखने की ज़िम्मेदारी आपकी है. चैनल क्लाइंट, डेटा क्लाइंट की तरह डेटा को अपने-आप सिंक करने की सुविधा नहीं देते.
क्लाइंट की तुलना
यहां दी गई टेबल में, अलग-अलग क्लाइंट की सुविधाओं की तुलना की गई है:
| क्लाइंट का टाइप | डेटा पर्सिस्टेंस | क्या यह 100 केबी से ज़्यादा के डेटा के साथ काम करता है? | इस्तेमाल किया जाने वाला नेटवर्क | क्या ऑफ़लाइन कार्य करता है? |
|---|---|---|---|---|
| डेटा क्लाइंट | डेटा को हमेशा के लिए सेव किया जाता है | हां (Asset ऑब्जेक्ट इस्तेमाल करें) |
ब्लूटूथ को प्राथमिकता दी जाती है. डेटा का बैकअप क्लाउड पर लिया जाता है. अगर ब्लूटूथ उपलब्ध है, तो यह बैकअप एसिंक्रोनस तरीके से लिया जाता है | हां, पढ़ने और लिखने, दोनों के लिए |
| मैसेज क्लाइंट | यह कुकी, सेशन के खत्म होने पर मिट जाती है और इसे फिर से सेट नहीं किया जा सकता | नहीं | ब्लूटूथ को प्राथमिकता दी जाती है, लेकिन अगर सिर्फ़ वाई-फ़ाई कनेक्शन उपलब्ध है, तो इसका इस्तेमाल किया जा सकता है | नहीं |
| चैनल क्लाइंट | कोई परसिस्टेंस नहीं (कनेक्शन-ओरिएंटेड) | हां | ब्लूटूथ को प्राथमिकता दी जाती है, लेकिन अगर सिर्फ़ वाई-फ़ाई कनेक्शन उपलब्ध है, तो इसका इस्तेमाल किया जा सकता है | नहीं |
डेटा लेयर एपीआई इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, डेटा सिंक करना गाइड देखें. Data Layer API का इस्तेमाल करते समय, बैटरी की खपत से जुड़ी बातों के बारे में जानने के लिए, बैटरी की खपत कम करना गाइड देखें.