ध्यान दें: इस पेज पर, वॉच फ़ेस कॉन्फ़िगरेशन को मैन्युअल तरीके से मैनेज करने की प्रोसेस का एक चरण दिखाया गया है. अगर आपको WYSIWYG (आपको जो दिखता है वही मिलता है) स्टाइल वाले टूल का इस्तेमाल करके, स्मार्टवॉच की होम स्क्रीन डिज़ाइन करनी है, तो पहले Watch Face Studio की गाइड देखें.
इस गाइड में, Watch Face Format का इस्तेमाल करके वॉच फ़ेस को कॉन्फ़िगर करने के लिए ज़रूरी टूल के बारे में बताया गया है. साथ ही, प्रोजेक्ट स्ट्रक्चर के बारे में कुछ सुझाव दिए गए हैं. इसके अलावा, उस स्ट्रक्चर को बनाने के लिए टूल इस्तेमाल करने के बारे में चरण-दर-चरण निर्देश दिए गए हैं.
Android Studio का इस्तेमाल शुरू करना
वॉच फ़ेस को मैन्युअल तरीके से डेवलप करने के लिए, Android Studio का इस्तेमाल करना सबसे आसान तरीका है. वॉच फ़ेस की सुविधा, कैनरी चैनल में उपलब्ध है.
- फ़ाइल > नया प्रोजेक्ट पर क्लिक करें
- Wear OS में जाकर, वॉच फ़ेस चुनें
इससे, पूरी तरह से काम करने वाले वॉच फ़ेस के लिए ज़रूरी स्ट्रक्चर तैयार होता है.
प्रोजेक्ट का स्ट्रक्चर
Watch Face Format का इस्तेमाल करके कस्टम वॉच फ़ेस बनाने पर, कस्टम वॉच फ़ेस फ़ाइल वाला Android ऐप्लिकेशन बंडल, Wear OS ऐप्लिकेशन के लॉजिक वाले Android ऐप्लिकेशन बंडल से पूरी तरह अलग होना चाहिए. Google Play जैसे कुछ ऐप्लिकेशन स्टोर, आपको ऐसा Android ऐप्लिकेशन बंडल अपलोड करने से रोकते हैं जिसमें Wear OS लॉजिक और कस्टम वॉच फ़ेस, दोनों शामिल हों.
Watch Face Format के वर्शन की जानकारी देना
अपने नए ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, ऐप्लिकेशन प्रॉपर्टी की जांच करें. इससे पता चलता है कि आपने Watch Face Format का इस्तेमाल किया है.
वॉच फ़ेस फ़ॉर्मैट की कुछ सुविधाएं, सिर्फ़ बाद के वर्शन में उपलब्ध हैं. इस प्रॉपर्टी को उस सबसे कम वैल्यू पर सेट करें जो आपकी ज़रूरत की सुविधाओं के साथ काम करती है. इससे ज़्यादा से ज़्यादा डिवाइसों पर ऐप्लिकेशन काम करेगा. साथ ही, minSdkVersion को भी इसी वैल्यू पर सेट करें. अपने ऐप्लिकेशन के वर्शन कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानें.
<manifest ...>
<!--
Use SDK version 33 to support Watch Face Format (WFF) version 1 and
higher, SDK version 34 to support WFF version 2 and higher, and so on.
-->
<uses-sdk
android:minSdkVersion="34"
android:targetSdkVersion="34" />
<!--
WFF is a resource-only format, so the hasCode attribute should be set to
false to reflect this.
-->
<application
android:label="@string/watch_face_name"
android:hasCode="false"
...>
<meta-data android:name="com.google.android.wearable.standalone"
android:value="true" />
<property
android:name="com.google.wear.watchface.format.version"
android:value="2" />
</application>
</manifest>
वॉच फ़ेस के मेटाडेटा के बारे में जानकारी देना
आपके ऐप्लिकेशन की res/xml रिसॉर्स डायरेक्ट्री में, watch_face_info.xml नाम की एक फ़ाइल मौजूद है. यहां स्मार्टवॉच की होम स्क्रीन का मेटाडेटा तय किया जाता है:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
<Preview value="@drawable/watch_face_preview" />
<Category value="CATEGORY_EMPTY" />
<AvailableInRetail value="true" />
<MultipleInstancesAllowed value="true" />
<Editable value="true" />
</WatchFaceInfo>
इस फ़ाइल में मौजूद फ़ील्ड, यहां दी गई जानकारी दिखाते हैं:
Preview- यह उस ड्रॉएबल को रेफ़रंस करता है जिसमें स्मार्टवॉच की होम स्क्रीन की झलक वाली इमेज होती है.
Categoryइससे स्मार्टवॉच की होम स्क्रीन की कैटगरी तय होती है. यह स्ट्रिंग या स्ट्रिंग का रेफ़रंस होना चाहिए, जैसे कि
@string/ref_name. डिवाइस बनाने वाली हर कंपनी, वॉच फ़ेस की कैटगरी का अपना सेट तय कर सकती है.डिफ़ॉल्ट वैल्यू:
empty_category_meta. इससे इस वॉच फ़ेस को "खाली कैटगरी" वाले अन्य वॉच फ़ेस के साथ ग्रुप किया जाता है. ये वॉच फ़ेस, वॉच फ़ेस चुनने वाले व्यू में सबसे नीचे दिखते हैं.AvailableInRetailयह जानकारी कि वॉच फ़ेस, डिवाइस के रीटेल डेमो मोड में उपलब्ध है या नहीं. यह बूलियन वैल्यू या बूलियन वैल्यू का रेफ़रंस होना चाहिए. जैसे,
@bool/watch_face_available_in_retail.डिफ़ॉल्ट वैल्यू:
falseMultipleInstancesAllowedक्या स्मार्टवॉच की होम स्क्रीन पर एक से ज़्यादा पसंदीदा आइटम हो सकते हैं. यह बूलियन वैल्यू होनी चाहिए या बूलियन वैल्यू का रेफ़रंस होना चाहिए. जैसे,
@bool/watch_face_multiple_instances_allowed.डिफ़ॉल्ट वैल्यू:
falseEditableक्या स्मार्टवॉच की होम स्क्रीन में बदलाव किया जा सकता है. इसका मतलब है कि स्मार्टवॉच की होम स्क्रीन में कोई सेटिंग है या कम से कम एक ऐसा विजेट है जिसे बदला जा सकता है. इस कुकी का इस्तेमाल, पसंदीदा सूची में मौजूद वॉच फ़ेस के लिए बदलाव करें बटन को दिखाने या छिपाने के लिए किया जाता है.
डिफ़ॉल्ट वैल्यू: false
वॉच फ़ेस का नाम बताना
अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, android:label एट्रिब्यूट को अपने वॉच फ़ेस के नाम पर सेट करें:
<application android:label="@string/watch_face_name" >
वॉच फ़ेस की जानकारी देना
WFF वॉच फ़ेस दस्तावेज़ का बुनियादी स्ट्रक्चर इस तरह होता है:
<WatchFace width="450" height="450">
<Scene>
<!-- Content to be rendered -->
</Scene>
</WatchFace>
Android Studio का टेंप्लेट, res/raw/watchface.xml में एक बुनियादी दस्तावेज़ उपलब्ध कराता है. स्क्रीन के अलग-अलग साइज़ और शेप के हिसाब से कॉन्टेंट बनाने के लिए, कई साइज़ और शेप के लिए सहायता का एलान करें.
रूट एलिमेंट हमेशा WatchFace होता है. height और width, आपके वॉच फ़ेस में इस्तेमाल किए जाने वाले कोऑर्डिनेट स्पेस की सीमा तय करते हैं. साथ ही, वॉच फ़ेस को उस डिवाइस के हिसाब से स्केल किया जाता है जिस पर उसका इस्तेमाल किया जा रहा है. height और width, असल पिक्सल को नहीं दिखाते.
Watch Face Format, आपकी स्मार्टवॉच की होम स्क्रीन के बारे में कई तरह की जानकारी व्यवस्थित करता है:
- मेटाडेटा, जैसे कि आपकी घड़ी के डायल की झलक वाली इमेज में दिखने वाला समय और कदमों की संख्या.
- उपयोगकर्ता के कॉन्फ़िगरेशन, जैसे कि वॉच फ़ेस के लिए अलग-अलग रंग वाली थीम, उपयोगकर्ता के टॉगल किए जा सकने वाले एलिमेंट, और कई एलिमेंट में से किसी एक को चुनने का विकल्प. Watch Face Format के वर्शन 2 में फ़्लेवर की सुविधा दी गई है. ये फ़्लेवर, उपयोगकर्ता के कॉन्फ़िगरेशन में दिख सकते हैं. हर फ़्लेवर में, उपयोगकर्ता के लिए पहले से सेट किया गया कॉन्फ़िगरेशन होता है. इसमें यह जानकारी होती है कि आपकी स्मार्टवॉच की होम स्क्रीन पर समय के साथ कौनसे एलिमेंट दिखेंगे और उनकी स्टाइल क्या होगी. इन प्रीसेट की मदद से, ऐसे एलिमेंट के ग्रुप आसानी से बनाए जा सकते हैं जो देखने में अच्छे लगें. Wear OS के कंपैनियन ऐप्लिकेशन में, लोगों को आपकी स्मार्टवॉच की होम स्क्रीन के अलग-अलग वर्शन, स्क्रोल की जा सकने वाली लाइन में दिखते हैं.
- एक सीन, जिसमें वॉच फ़ेस के विज़ुअल एलिमेंट शामिल होते हैं. सीन के आखिर में दिखने वाले एलिमेंट, दूसरे एलिमेंट के ऊपर दिखते हैं. इसलिए, आम तौर पर इनका क्रम इस तरह होता है:
- ऐनालॉग घड़ी की सुइयां या डिजिटल घड़ी का टेक्स्ट
- कॉम्प्लिकेशन, जिनमें अतिरिक्त जानकारी दिखती है. जैसे, हफ़्ते का दिन या उपयोगकर्ता के कदमों की संख्या
- ऐसे अन्य ग्राफ़िक जिनसे वॉच फ़ेस को दिलचस्प बनाया जा सकता है या सजाया जा सकता है. जैसे, कैंपसाइट की इमेज
- एलिमेंट के ग्रुप, जिनकी मदद से एक ही समय में कई एलिमेंट में बदलाव किया जा सकता है. किसी सीन में इन ग्रुप के वैरिएंट बनाए जा सकते हैं. इससे, सिस्टम के पावर-सेविंग ऐम्बिएंट मोड में आने पर, कॉन्टेंट को चुनिंदा तौर पर छिपाया या बदला जा सकता है.
एट्रिब्यूट को टाइप किया जाता है. साथ ही, वॉच फ़ेस बनाते समय ज़्यादातर गड़बड़ियों से बचने के लिए, फ़्रीक्वेंसी और मान्य वैल्यू से जुड़े दिशा-निर्देशों का पालन किया जाता है.
वॉच फ़ेस के साइज़ के लिए सहायता की जानकारी देना (ज़रूरी नहीं)
यह चरण सिर्फ़ तब ज़रूरी है, जब आपको वॉच फ़ेस के अलग-अलग साइज़ के लिए अलग-अलग व्यवहार को सपोर्ट करना हो. अगर आपको स्मार्टवॉच के साइज़ के हिसाब से होम स्क्रीन का साइज़ बदलना है, तो इस चरण को छोड़ दें.
अपने ऐप्लिकेशन की res/xml रिसॉर्स डायरेक्ट्री में, स्मार्ट वॉच की होम स्क्रीन की उन शेप के बारे में बताएं जिन्हें watch_face_shapes.xml में इस्तेमाल किया जा सकता है:
<WatchFaces>
<WatchFace shape="CIRCLE" width="300" height="300"
file="@raw/watchface"/>
<WatchFace shape="CIRCLE" width="450" height="450"
file="@raw/watchface_large_circle"/>
<WatchFaces>
इसके बाद, हर वॉच फ़ेस के आकार के लिए, वॉच फ़ेस के दिखने और काम करने का तरीका तय करें.
अगर आपने शेप फ़ाइल तय नहीं की है, तो आपको सिर्फ़ एक फ़ाइल की ज़रूरत होगी,
watchface.xml.
इस सेक्शन में दिए गए उदाहरण का इस्तेमाल करके, रॉ एक्सएमएल फ़ाइलें इस तरह दिखेंगी:
res/raw/watchface.xmlres/raw/watchface_large_circle.xml
वॉच फ़ेस पब्लिश करने वाले की पहचान करना (ज़रूरी नहीं)
आपके पास यह विकल्प है कि ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में, कोई ऐसी स्ट्रिंग का एलान करें जिसका इस्तेमाल वॉच फ़ेस के पब्लिशर की पहचान करने के लिए किया जा सकता है. इसके अलावा, इसका इस्तेमाल उस टूल के नाम और वर्शन की पहचान करने के लिए भी किया जा सकता है जिसका इस्तेमाल किया जा रहा है:
<application ...>
...
<property
android:name="com.google.wear.watchface.format.publisher"
android:value="<var>{toolName}-{toolVersion}</var>" />
</application>
स्मार्ट वॉच की होम स्क्रीन की परफ़ॉर्मेंस और उसके सही होने की जांच करना
वॉच फ़ेस को डेवलप करने के दौरान और Google Play पर अपलोड करने से पहले, यह पक्का करें कि उसमें सिंटैक्स से जुड़ी कोई गड़बड़ी न हो. इसके लिए, Android Studio में पहले से मौजूद Watch Face Format की पुष्टि करने की सुविधा का इस्तेमाल करें. यह आपके कोड में मौजूद गड़बड़ियों को अपने-आप हाइलाइट करता है. साथ ही, यह वर्शन के बारे में जानकारी देता है.
आपको यह भी देखना चाहिए कि आपकी स्मार्टवॉच की होम स्क्रीन, मेमोरी के इस्तेमाल से जुड़ी ज़रूरी शर्तों को पूरा करती हो. इसके लिए, मेमोरी फ़ुटप्रिंट टूल का इस्तेमाल करें.
- पब्लिश करने से पहले, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करने और मेमोरी के इस्तेमाल की जांच करने के बारे में ज़्यादा जानें.
- डेवलपमेंट साइकल के दौरान, एक्सएमएल वैलिडेटर का इस्तेमाल करने के बारे में ज़्यादा जानें.
स्मार्टवॉच के लिए बने ऐप्लिकेशन का बंडल बनाना
Android Studio की मदद से, वॉच फ़ेस को आसानी से बनाया और डिप्लॉय किया जा सकता है. इसमें वॉच फ़ेस रन कॉन्फ़िगरेशन के लिए, पहले से ही सहायता उपलब्ध होती है. चलाएं बटन पर क्लिक करने के बाद, Android Studio वॉच फ़ेस को डिवाइस या एम्युलेटर पर डिप्लॉय करता है. साथ ही, इसे ऐक्टिव वॉच फ़ेस के तौर पर सेट करता है.
वॉच फ़ेस के सैंपल
वॉच फ़ेस फ़ॉर्मैट प्रोजेक्ट के अन्य सैंपल, GitHub पर उपलब्ध हैं.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक का टेक्स्ट दिखता है
- AAPT2
- Jetpack Compose की बुनियादी बातें
- CameraX का इस्तेमाल शुरू करना