Wear OS 6 में एक नया एपीआई, Watch Face Push पेश किया गया है. इससे वॉच फ़ेस पब्लिश करने के ज़्यादा बेहतर तरीके उपलब्ध होते हैं.
यह पता करना कि वॉच फ़ेस पुश का इस्तेमाल कब करना है
Watch Face Push, Wear OS पर मौजूद एक एपीआई है. इसकी मदद से डेवलपर, सीधे तौर पर स्मार्टवॉच की होम स्क्रीन जोड़ सकते हैं, उन्हें अपडेट कर सकते हैं या हटा सकते हैं. वॉच फ़ेस के स्टैंडर्ड वर्शन को डेवलप करने के लिए, इसकी ज़रूरत नहीं होती.
Watch Face Push के साथ इस्तेमाल किए जाने वाले वॉच फ़ेस, Watch Face Format का इस्तेमाल करके बनाए जाने चाहिए. इसमें Watch Face Designer, Watch Face Studio या किसी ऐसे टूल का इस्तेमाल करके डिज़ाइन किए गए वॉच फ़ेस शामिल हो सकते हैं जो Watch Face Format का इस्तेमाल करके वॉच फ़ेस बनाता है.
Watch Face Push API का इस्तेमाल कई तरीकों से किया जा सकता है. हालांकि, यहां दी गई टेबल में, इसके इस्तेमाल के मुख्य उदाहरणों के बारे में बताया गया है:
| इस्तेमाल का उदाहरण | अनुशंसित समाधान | जटिलता |
|---|---|---|
| मुझे अलग-अलग वॉच फ़ेस बनाने और उन्हें पब्लिश करना है. | Watch Face Format का इस्तेमाल करके, सीधे तौर पर या Watch Face Designer या Watch Face Studio जैसे टूल की मदद से वॉच फ़ेस बनाएं. इसके बाद, उन्हें Google Play पर पब्लिश करें. | कम |
| मुझे एक ऐसा फ़ोन ऐप्लिकेशन बनाना है जो लोगों को, चुने गए कलेक्शन से स्मार्ट वॉच की होम स्क्रीन चुनने की सुविधा दे. इसके अलावा, उन्हें Wear OS स्मार्ट वॉच पर सीधे तौर पर इंस्टॉल करने के लिए, होम स्क्रीन को डिज़ाइन और पसंद के मुताबिक बनाने की सुविधा भी दे. | स्मार्टवॉच और फ़ोन, दोनों के लिए एक ऐप्लिकेशन बनाएं. इसके लिए, स्मार्टवॉच पर Watch Face Push API का इस्तेमाल करें. | ज़्यादा |
मकसद
Watch Face Push API का इस्तेमाल, मार्केटप्लेस ऐप्लिकेशन बनाने के लिए किया जाता है. इस ऐप्लिकेशन की मदद से, लोग अपने फ़ोन पर चुनिंदा कलेक्शन से वॉच फ़ेस चुन सकते हैं. साथ ही, कनेक्ट की गई स्मार्टवॉच पर इन वॉच फ़ेस को सीधे तौर पर इंस्टॉल कर सकते हैं.
ज़रूरी बातें
वॉच फ़ेस बनाने के बारे में ज़्यादा जानने के लिए, Watch Face Format के दिशा-निर्देश पढ़ें. Watch Face Push का इस्तेमाल करके डिप्लॉय किए गए वॉच फ़ेस, Watch Face Format के सामान्य वॉच फ़ेस होते हैं.
वॉच फ़ेस बनाते समय, इन बातों का ध्यान रखें.
पैकेज के नाम
Watch Face Push का इस्तेमाल करके इंस्टॉल किए गए वॉच फ़ेस, इन शर्तों के मुताबिक होने चाहिए:
<app name>.watchfacepush.<watchface name>
... where <app name> is the package name of the app calling the Watch Face
Push API.
उदाहरण के लिए, com.example.mymarketplace पैकेज के नाम वाले ऐप्लिकेशन के लिए, वॉच फ़ेस के पैकेज के ये नाम मान्य हैं:
com.example.mymarketplace.watchfacepush.watchface1com.example.mymarketplace.watchfacepush.watchface2com.example.mymarketplace.watchfacepush.another_watchface
एपीआई, ऐसे वॉच फ़ेस को अस्वीकार कर देता है जो इस कन्वेंशन के मुताबिक नहीं होते.
पैकेज में मौजूद कॉन्टेंट
सिस्टम, APK के कॉन्टेंट को सख्ती से लागू करता है. तकनीकी तौर पर, Watch Face Format वाले ऐसे APK बनाए जा सकते हैं जिनमें नुकसान न पहुंचाने वाली मेटाडेटा फ़ाइलें और अन्य आर्टफ़ैक्ट शामिल हों. ऐसा हो सकता है कि Google Play इन्हें स्वीकार कर ले, लेकिन ये वॉच फ़ेस पुश की पुष्टि करने की प्रोसेस को पूरा न कर पाएं. इसके बारे में यहां बताया गया है.
स्मार्टवॉच की होम स्क्रीन वाले हर APK में सिर्फ़ ये फ़ाइलें/पाथ होने चाहिए:
/AndroidManifest.xml/resources.arsc/res/**/META-INF/**
इसके अलावा, AndroidManifest.xml फ़ाइल में सिर्फ़ ये टैग होने चाहिए:
<manifest><uses-feature><uses-sdk><application><property><meta-data>
आखिर में, पैकेज में कम से कम 33 का minSdk होना चाहिए. साथ ही, <application> टैग में android:hasCode="false" एट्रिब्यूट की वैल्यू तय होनी चाहिए.
सत्यापन
Google Play के ज़रिए डिस्ट्रिब्यूट किए जाने वाले सामान्य वॉच फ़ेस के उलट, Marketplace ऐप्लिकेशन यह पुष्टि करता है कि हर Watch Face Push वॉच फ़ेस सही तरीके से बनाया गया है और अच्छी परफ़ॉर्मेंस देता है.
वॉच फ़ेस पुश, हर वॉच फ़ेस की क्वालिटी की पुष्टि करने के लिए, पुष्टि से जुड़ी इन जांचों का इस्तेमाल करता है:
- Watch Face Push API के ज़रिए इंस्टॉल या अपडेट किए गए सभी वॉच फ़ेस को, Watch Face Push की पुष्टि करने वाले टूल की ज़रूरी शर्तें पूरी करनी होंगी.
- एपीआई के साथ इस्तेमाल करने के लिए, पुष्टि करने वाले टोकन जनरेट करने के लिए, सिर्फ़ आधिकारिक पुष्टि करने वाले टूल का इस्तेमाल करें.
- पुष्टि करने के लिए टूल का इस्तेमाल करते समय, यह ज़रूरी है कि टूल का वर्शन अप-टू-डेट हो.
अगर किसी APK में बदलाव नहीं किया गया है, तो आपको उसकी पुष्टि फिर से करने की ज़रूरत नहीं है. टोकन की समयसीमा खत्म नहीं होती. भले ही, पुष्टि करने वाले टूल का इस्तेमाल किया गया वर्शन पुराना हो गया हो.
हमारा सुझाव है कि आप समय-समय पर पुष्टि करने की प्रोसेस को फिर से चलाएं, क्योंकि पुष्टि करने वाला प्रोग्राम समय-समय पर अपडेट होता रहता है.
पुष्टि करने वाले प्रोग्राम को चलाना
पुष्टि करने वाला प्रोग्राम तीन तरह से उपलब्ध है:
- सीएलआई टूल
- JVM के साथ इस्तेमाल की जाने वाली लाइब्रेरी
- Android पर इस्तेमाल की जाने वाली लाइब्रेरी
कमांड-लाइन की पुष्टि करने वाले प्रोग्राम का इस्तेमाल
- Google की Maven रिपॉज़िटरी से पुष्टि करने वाला टूल पाएं.
टूल को इस तरह चलाएं:
java -jar validator-push-cli-1.0.0-alpha10.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>अगर पुष्टि हो जाती है, तो आउटपुट में पुष्टि करने वाला टोकन शामिल होता है. वॉच फ़ेस जोड़ने या अपडेट करने के दौरान, आपको यह टोकन Watch Face Push API को देना होगा.
अगर कोई गड़बड़ी होती है, तो आउटपुट में इस बारे में जानकारी शामिल होती है कि कौनसी खास जांच पूरी नहीं हुई.
लाइब्रेरी की पुष्टि करने वाले प्रोग्राम का इस्तेमाल
Google और Jitpack रिपॉज़िटरी शामिल करें. वैलडेटर लाइब्रेरी का इस्तेमाल करने के लिए, दोनों ज़रूरी हैं.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }अपने प्रोजेक्ट में, पुष्टि करने वाले टूल की डिपेंडेंसी शामिल करें:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")पुष्टि करने वाले प्रोग्राम को चलाएं:
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
इस लाइब्रेरी का इस्तेमाल करने का उदाहरण देखने के लिए, GitHub सैंपल देखें. पोर्टेबल ऐसेट कंपाइलर किट (पैक) लाइब्रेरी के बारे में भी जानें. यह लाइब्रेरी, डिवाइस पर APK बनाने के लिए काम की है. इसका इस्तेमाल, Android पर आधारित पुष्टि करने वाले टूल के साथ किया जा सकता है.
APK का साइज़
APK का साइज़ कम करने के लिए, Watch Face Push वॉच फ़ेस का इस्तेमाल करते समय खास ध्यान रखें: वॉच फ़ेस APK को फ़ोन ऐप्लिकेशन से स्मार्टवॉच के लिए ऐप्लिकेशन में ब्लूटूथ के ज़रिए ट्रांसफ़र किया जाता है. इसमें समय लग सकता है.
एपीके का साइज़ बहुत ज़्यादा होने पर, उसे ट्रांसफ़र होने में काफ़ी समय लग सकता है. इससे उपयोगकर्ता अनुभव खराब होता है और बैटरी भी खत्म होती है.
- इमेज फ़ाइल के साइज़ को कम से कम रखने के लिए,
pngquantजैसी सही लाइब्रेरी का इस्तेमाल करें- इसे अपनी वॉच फ़ेस कलेक्शन बिल्ड प्रोसेस में शामिल करें
- देखें कि इमेज के डाइमेंशन, उस स्केल के हिसाब से सही हों जिस पर आपको उसका इस्तेमाल करना है.
- इमेज को सही तरीके से क्रॉप किया गया हो, ताकि आस-पास का बैकग्राउंड हट जाए.
- फ़ॉन्ट फ़ाइलों का साइज़ कम करें
- उदाहरण के लिए, अगर आपको सिर्फ़ समय दिखाने के लिए किसी फ़ॉन्ट का इस्तेमाल करना है, तो
HH:MMफ़ॉर्मैट में,pyftsubsetजैसे टूल का इस्तेमाल किया जा सकता है. इससे फ़ॉन्ट फ़ाइल में सिर्फ़ ज़रूरी ग्लिफ़ शामिल किए जा सकते हैं. इससे फ़ॉन्ट फ़ाइल और APK का साइज़ काफ़ी कम हो सकता है. अन्य मामलों में, फ़ॉन्ट फ़ाइल के साइज़ को कम करने के बारे में जानकारी पाने के लिए, यह ब्लॉग पोस्ट पढ़ें.
- उदाहरण के लिए, अगर आपको सिर्फ़ समय दिखाने के लिए किसी फ़ॉन्ट का इस्तेमाल करना है, तो
APK का साइज़ कम रखने के बारे में ज़्यादा सुझाव पाने के लिए, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करने से जुड़े दिशा-निर्देश देखें.
APK पर हस्ताक्षर करना
सामान्य APK की तरह, आपको अपने सभी वॉच फ़ेस पर हस्ताक्षर करने होंगे. अपने मुख्य ऐप्लिकेशन के लिए इस्तेमाल की जाने वाली कुंजी से अलग कुंजी बनाएं. साथ ही, अपने सभी वॉच फ़ेस के लिए अलग कुंजी का इस्तेमाल करें.
वास्तुकला
सिस्टम के चार मुख्य कॉम्पोनेंट पर ध्यान दें:
- क्लाउड-आधारित स्टोरेज: कैननिकल Marketplace ऐप्लिकेशन में, वॉच फ़ेस बनाए और क्लाउड में सेव किए जाते हैं. इससे, उपयोगकर्ता उन्हें आसानी से इस्तेमाल कर पाते हैं. वॉच फ़ेस में ये प्रॉपर्टी होती हैं:
- इन्हें Watch Face Format वाले सामान्य APK के तौर पर पहले से बनाया जाता है.
- हर APK में, सिर्फ़ एक Watch Face Format पर आधारित वॉच फ़ेस होता है.
- इनकी पुष्टि, Watch Face Push की पुष्टि करने की प्रोसेस से की जाती है. साथ ही, इन्हें मंज़ूरी वाले कोड के साथ सेव किया जाता है.
- आपका फ़ोन ऐप्लिकेशन, ज़रूरत पड़ने पर उन्हें वापस ला सकता है.
- फ़ोन ऐप्लिकेशन: फ़ोन ऐप्लिकेशन, उपयोगकर्ताओं के लिए आपके सिस्टम से इंटरैक्ट करने का मुख्य तरीका है. इससे उन्हें ये काम करने की अनुमति मिलती है:
- वॉच फ़ेस का कैटलॉग ब्राउज़ करना और खोजना
- स्मार्टवॉच पर कोई वॉच फ़ेस इंस्टॉल करना या उसे बदलना
- स्मार्टवॉच के लिए ऐप्लिकेशन: ऐसा हो सकता है कि स्मार्टवॉच के लिए ऐप्लिकेशन में, उपयोगकर्ता इंटरफ़ेस न हो. यह मुख्य रूप से, फ़ोन ऐप्लिकेशन और वॉच फ़ेस पुश एपीआई के बीच एक पुल का काम करता है. इसमें ये सुविधाएं शामिल हैं:
- स्मार्ट वॉच की होम स्क्रीन को इंस्टॉल/अपडेट करने या बदलने के लिए, Watch Face Push API का इस्तेमाल करना
- ज़रूरी अनुमतियों के लिए अनुरोध करना और उपयोगकर्ता को सूचना देना
- डिफ़ॉल्ट वॉच फ़ेस उपलब्ध कराना
- वॉच फ़ेस की कम से कम कैश मेमोरी उपलब्ध कराना
- फ़ोन और स्मार्टवॉच के बीच कम्यूनिकेशन: फ़ोन और स्मार्टवॉच के लिए ऐप्लिकेशन के बीच कम्यूनिकेशन, बेहतर अनुभव के लिए बहुत ज़रूरी है. Wear OS डेटा लेयर एपीआई का इस्तेमाल करें. इनकी मदद से ये काम किए जा सकते हैं:
- इंस्टॉल किए जाने का पता लगाना: Capabilities और
CapabilityClientका इस्तेमाल करके, फ़ोन ऐप्लिकेशन स्मार्टवॉच के लिए ऐप्लिकेशन के इंस्टॉल न होने का पता लगा सकता है. इसी तरह, स्मार्टवॉच के लिए ऐप्लिकेशन भी फ़ोन ऐप्लिकेशन के इंस्टॉल न होने का पता लगा सकता है. इसके बाद, Play Store पर इंटेंट लॉन्च करके, फ़ॉर्म फ़ैक्टर इंस्टॉल किया जा सकता है. - स्टेट मैनेजमेंट:
DataClientयाMessageClientका इस्तेमाल करके, फ़ोन को स्मार्टवॉच की स्थिति के साथ सिंक किया जाता है. उदाहरण के लिए, ऐक्टिव वॉच फ़ेस की स्थिति को सिंक करना. - APK ट्रांसमिशन:
ChannelClientयाMessageClientका इस्तेमाल करके, फ़ोन से घड़ी पर APK भेजें - रिमोट इनवोकेशन:
Messageclientका इस्तेमाल करके, फ़ोन स्मार्टवॉच को Watch Face Push API को कॉल करने का निर्देश दे सकता है. उदाहरण के लिए, स्मार्टवॉच की होम स्क्रीन इंस्टॉल करने के लिए.
- इंस्टॉल किए जाने का पता लगाना: Capabilities और
ज़्यादा जानकारी के लिए, डेटा लेयर एपीआई के दिशा-निर्देश देखें.