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