إعداد تنسيق خلفية شاشة الساعة

يتضمّن هذا الدليل خطوات حول الأدوات التي تحتاجها لضبط خلفية شاشة الساعة باستخدام تنسيق خلفية شاشة الساعة، وبعض الاقتراحات حول بنية المشروع، وأحد الأدلة المفصّلة لتطبيق الأدوات لإنشاء هذه البنية.

المتطلّبات الأساسية

لإعداد بيئة التطوير لاستخدام تنسيق خلفية شاشة الساعة، عليك إكمال خطوات الإعداد التالية:

  1. ثبِّت حزمة تطوير البرامج (SDK) لنظام التشغيل Android 14 (المستوى 34 لواجهة برمجة التطبيقات) أو إصدار أحدث. إذا كانت خلفية شاشة الساعة لا تعتمد على ميزات أو سلوكيات خاصة بالإصدار 2، يمكنك تثبيت حزمة SDK لنظام التشغيل Android 13 (المستوى 33 لواجهة برمجة التطبيقات) بدلاً من ذلك.

    تحتوي حزمة SDK على أدوات مطلوبة أخرى، بما في ذلك aapt2 وandroid.jar.

  2. كبديل، يمكنك تثبيت استوديو Android الذي يمكنه أيضًا توفير هذه الأدوات.

بنية المشروع

عند إنشاء خلفية شاشة ساعة مخصّصة تستخدِم تنسيق خلفية شاشة الساعة، يجب أن تكون مجموعة حزمات تطبيق Android التي تتضمّن ملف خلفية شاشة الساعة المخصّصة منفصلة تمامًا عن مجموعة حزمات تطبيق Android التي تتضمّن منطق تطبيق Wear OS. تمنع بعض متاجر التطبيقات، بما في ذلك Google Play، من تحميل مجموعة حزمات تطبيق Android التي تتضمّن منطق Wear OS وخلفية شاشة ساعة مخصّصة.

إنشاء حِزمة خلفية شاشة الساعة

لإنشاء "مجموعة حزمات تطبيق Android" تحتوي على ملف لخلفية شاشة الساعة، عليك إكمال الخطوات الموضّحة في الأقسام التالية.

الإفصاح عن استخدام "تنسيق خلفية شاشة الساعة"

في ملف بيان تطبيقك الجديد (AndroidManifest.xml)، أضِف سمة تطبيق تشير إلى استخدامك لتنسيق خلفية شاشة الساعة. إذا كنت لا تريد حظر الوصول إلى خلفية شاشة الساعة على الأجهزة التي تعمل بنظام التشغيل 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 resources (ملفات مرجعية) في تطبيقك، أدخِل مجموعة أشكال خلفيات شاشة الساعة التي تتيحها في 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.

باستخدام المثال من هذه الصفحة، ستكون ملفات 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. اطّلِع على مزيد من المعلومات عن كيفية إنشاء تطبيق باستخدام IDE IDE Gradle.

ويتم توضيح ذلك في عيّنات GitHub.