Watch Face Format का सेटअप

इस गाइड में, उन टूल के बारे में बताया गया है जिनका इस्तेमाल करके, Watch Face Format का इस्तेमाल करके स्मार्टवॉच की होम स्क्रीन को कॉन्फ़िगर किया जा सकता है. साथ ही, इसमें प्रोजेक्ट के स्ट्रक्चर के बारे में कुछ सुझाव भी दिए गए हैं. इसके अलावा, स्ट्रक्चर बनाने के लिए टूल इस्तेमाल करने का तरीका भी बताया गया है.

ज़रूरी शर्तें

Watch Face Format का इस्तेमाल करने के लिए, डेवलपमेंट एनवायरमेंट को तैयार करने के लिए, ये सेटअप चरण पूरे करें:

  1. Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन के लिए SDK टूल इंस्टॉल करें. अगर आपकी स्मार्टवॉच की होम स्क्रीन, वर्शन 2 की खास सुविधाओं या व्यवहार पर निर्भर नहीं है, तो Android 13 (एपीआई लेवल 33) के लिए SDK टूल इंस्टॉल किया जा सकता है.

    SDK टूल में अन्य ज़रूरी टूल मौजूद हैं. इनमें aapt2 और android.jar भी शामिल हैं.

  2. इसके अलावा, Android Studio इंस्टॉल करें. इससे भी ये टूल मिल सकते हैं.

प्रोजेक्ट का स्ट्रक्चर

अगर स्मार्टवॉच की ऐसी होम स्क्रीन अपनी पसंद के मुताबिक बनाई जाती है जो Watch Face Format का इस्तेमाल करती है, तो उस Android ऐप्लिकेशन बंडल को उस Android ऐप्लिकेशन बंडल से पूरी तरह अलग होना चाहिए जिसमें स्मार्टवॉच की होम स्क्रीन वाली कस्टम फ़ाइल शामिल है. Google Play के साथ-साथ कुछ ऐप्लिकेशन स्टोर, ऐसा Android ऐप्लिकेशन बंडल अपलोड करने की अनुमति नहीं देते हैं जिसमें Wear OS लॉजिक और कस्टम स्मार्ट वॉच की होम स्क्रीन, दोनों शामिल हों.

स्मार्ट वॉच की होम स्क्रीन का बंडल बनाना

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

Watch Face Format का इस्तेमाल करने की जानकारी देना

अपने नए ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, ऐसी ऐप्लिकेशन प्रॉपर्टी जोड़ें जिससे पता चलता हो कि आपने Watch Face Format का इस्तेमाल किया है. अगर आपको Wear OS 5 या उसके बाद के वर्शन वाले डिवाइसों के लिए, अपनी स्मार्टवॉच की होम स्क्रीन के ऐक्सेस पर पाबंदी नहीं लगानी है, तो स्मार्टवॉच की होम स्क्रीन के लिए दो अलग-अलग APK बनाएं. पहला, जो वर्शन 2 के साथ काम करता हो और दूसरा, जो वर्शन 1 के साथ काम करता हो. अपने ऐप्लिकेशन के वर्शन कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानें.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest ...>
    <!--
        Use SDK version 34 for version 2 of WFF, and SDK version 33 for version
        1 of WFF
    -->
    <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"
        ...>
        <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>
    <!-- Only "Preview" is required. -->
    <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.

डिफ़ॉल्ट वैल्यू: false

MultipleInstancesAllowed

स्मार्टवॉच की होम स्क्रीन पर, एक से ज़्यादा पसंदीदा होम स्क्रीन हो सकती हैं या नहीं. यह बूलियन वैल्यू होनी चाहिए या @bool/watch_face_multiple_instances_allowed जैसी बूलियन वैल्यू का रेफ़रंस होनी चाहिए.

डिफ़ॉल्ट मान: false

Editable

स्मार्टवॉच की होम स्क्रीन में बदलाव किया जा सकता है या नहीं. इसका मतलब है कि स्मार्टवॉच की होम स्क्रीन में कोई सेटिंग है या कम से कम एक ऐसा विजेट है जिसे अपनी पसंद के मुताबिक बनाया जा सकता है. इसका इस्तेमाल, पसंदीदा सूची में स्मार्टवॉच की होम स्क्रीन के लिए बदलाव करें बटन को दिखाने या छिपाने के लिए किया जाता है.

डिफ़ॉल्ट वैल्यू: गलत

स्मार्टवॉच की होम स्क्रीन का नाम बताना

अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, android:label एट्रिब्यूट को स्मार्टवॉच की होम स्क्रीन के नाम पर सेट करें:

<application android:label="@string/watch_face_name" >

स्मार्टवॉच की होम स्क्रीन के अलग-अलग साइज़ के लिए, ऐप्लिकेशन के काम करने की जानकारी दें (ज़रूरी नहीं)

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

अपने ऐप्लिकेशन की res/xml रिसॉर्स डायरेक्ट्री में, स्मार्ट वॉच की होम स्क्रीन के उन आकारों के सेट के बारे में बताएं जो watch_face_shapes.xml में काम करते हैं:

<WatchFaces>
    <!-- The default shape is "CIRCLE". -->
    <WatchFace shape="CIRCLE" width="300" height="300"
               file="@raw/watchface"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
               file="@raw/watchface_large_circle"/>
    <WatchFace shape="RECTANGLE" width="380" height="400"
               file="@raw/watchface_rectangle"/>
</WatchFaces>

स्मार्टवॉच की होम स्क्रीन की जानकारी देना

अपने ऐप्लिकेशन की res/raw संसाधन डायरेक्ट्री में, file एट्रिब्यूट की वैल्यू के हिसाब से फ़ाइलें बनाएं. इन वैल्यू का इस्तेमाल तब किया जाता है, जब स्मार्ट वॉच की होम स्क्रीन के आकार के साथ काम करने की सुविधा का एलान किया जाता है.

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

इस पेज पर दिए गए उदाहरण का इस्तेमाल करके, रॉ एक्सएमएल फ़ाइलें इस तरह की होंगी:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml
  • res/raw/watchface_rectangle.xml

रूट एलिमेंट हमेशा WatchFace होता है:

<WatchFace width="450" height="450" clipShape="CIRCLE">
    <!-- Remainder of your Watch Face Format definition here. -->
    <!-- If this file defines a watch face for a circular device shape, place
         resources used in this file in the "/res/drawable-nodpi" directory. -->
    <!-- If this file defines a watch face for a rectangular or other
         non-circular shape, place resources ued in this file in the
         "/res/drawable-notround-nodpi" directory. -->
</WatchFace>

स्मार्टवॉच की होम स्क्रीन के पब्लिशर की पहचान करना (ज़रूरी नहीं)

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

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="{toolName}-{toolVersion}" />
</application>

स्मार्ट वॉच की होम स्क्रीन की परफ़ॉर्मेंस और सही होने की जांच करना

डेवलपमेंट के दौरान और Google Play पर अपलोड करने से पहले, पुष्टि करने वाले टूल का इस्तेमाल करके देखें कि आपके वॉच फ़ेस में कोई गड़बड़ी तो नहीं है. साथ ही, यह भी देखें कि वह मेमोरी के इस्तेमाल से जुड़े सुझावों का पालन करता है या नहीं.

स्मार्टवॉच की होम स्क्रीन का ऐप्लिकेशन बंडल बनाना

स्मार्टवॉच की होम स्क्रीन वाला Android ऐप्लिकेशन बंडल बनाने के लिए, Gradle बिल्ड सिस्टम का इस्तेमाल करें. Gradle का इस्तेमाल करके ऐप्लिकेशन बनाने के तरीके के बारे में ज़्यादा जानें.

इस बारे में GitHub के सैंपल में बताया गया है.