הגדרת Watch Face Format

הערה: בדף הזה מוצג שלב בתהליך ניהול ההגדרות של לוח השעון באופן ידני. אם אתם רוצים לעצב את תצוגת השעון באמצעות כלי בסגנון WYSIWYG (מה שאתם רואים זה מה שאתם מקבלים), כדאי קודם לעיין במדריכים של Watch Face Studio.

במדריך הזה מוסבר איך להשתמש בכלים הדרושים כדי להגדיר תצוגת שעון באמצעות Watch Face Format, מוצגות כמה הצעות לגבי מבנה הפרויקט ומוסבר איך להשתמש בכלים כדי ליצור את המבנה הזה.

דרישות מוקדמות

כדי להכין את סביבת הפיתוח לשימוש ב-Watch Face Format, מבצעים את שלבי ההגדרה הבאים:

  1. מתקינים את ה-SDK ל-Android 14 (רמת API 34) ואילך. אם חזית השעון לא מסתמכת על תכונות או התנהגות ספציפיות לגרסה 2, אפשר להתקין במקום זאת את ה-SDK ל-Android 13 (רמת API 33).

    ערכת ה-SDK מכילה כלים נדרשים אחרים, כולל aapt2 ו-android.jar.

  2. לחלופין, אפשר להתקין את Android Studio, שבו אפשר למצוא גם את הכלים האלה.

מבנה הפרויקט

כשיוצרים תצוגת שעון בהתאמה אישית שמשתמשת ב-Watch Face Format, קובץ Android App Bundle שכולל את קובץ תצוגת השעון בהתאמה אישית חייב להיות נפרד לחלוטין מקובץ Android App Bundle שמכיל את הלוגיקה של אפליקציית Wear OS. בחנויות אפליקציות מסוימות, כולל Google Play, אי אפשר להעלות קובץ Android App Bundle שכולל גם לוגיקה של Wear OS וגם תצוגת שעון מותאמת אישית.

יצירת חבילה של תצוגות שעון

כדי ליצור חבילת אפליקציות ל-Android שמכילה קובץ של לוח שעון, מבצעים את השלבים שמפורטים בקטעים הבאים.

הצהרה על שימוש ב-Watch Face Format

בקובץ המניפסט של האפליקציה החדשה (AndroidManifest.xml), מוסיפים מאפיין של האפליקציה שמציין את השימוש ב-Watch Face Format. אם אתם לא רוצים להגביל את הגישה לתצוגת השעון למכשירים עם Wear OS מגרסה 5 ואילך, עליכם ליצור 2 חבילות APK שונות של תצוגת השעון, אחת שתומכת בגרסה 2 ואחת שתומכת בגרסה 1. מידע נוסף על הגדרת גרסאות של האפליקציה

<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"
        ...>
        <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>

הצהרת מטא-נתונים של תצוגת שעון

יוצרים קובץ חדש בשם watch_face_info.xml בתיקיית המשאבים res/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
מפנה ל-drawable שמכיל תמונת תצוגה מקדימה של תצוגת השעון.
Category

מגדיר את הקטגוריה של תצוגת השעון. הערך חייב להיות מחרוזת או הפניה למחרוזת, למשל @string/ref_name. כל יצרן מכשיר יכול להגדיר קבוצה משלו של קטגוריות של חזיתות שעון.

ערך ברירת המחדל: empty_category_meta, שמקבץ את תצוגת השעון הזו עם תצוגות שעון אחרות בקטגוריה 'ריקה' בתחתית התצוגה לבחירת תצוגת שעון.

AvailableInRetail

אם תצוגת השעון זמינה במצב הדגמה לקמעונאים של המכשיר. חייב להיות ערך בוליאני או הפניה לערך בוליאני, כמו @bool/watch_face_available_in_retail.

ערך ברירת המחדל: false

MultipleInstancesAllowed

אם אפשר להוסיף כמה תצוגות שעון למועדפים. חייב להיות ערך בוליאני או הפניה לערך בוליאני, כמו @bool/watch_face_multiple_instances_allowed.

ערך ברירת המחדל: false

Editable

אם תצוגת השעון ניתנת לעריכה, כלומר אם יש לה הגדרה או לפחות תכונה נוספת אחת שלא קבועה. האפשרות הזו משמשת להצגה או להסתרה של הלחצן עריכה של תצוגת השעון ברשימת המועדפים.

ערך ברירת המחדל: 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>

אם אתם עובדים עם תצוגת שעון אחת, יוצרים את קובץ ה-XML הזה בתור res/raw/watchface.xml כשאתם יוצרים את תצוגת השעון. כדי לתמוך בצורות ובגדלים שונים של מסכים, צריך להצהיר על תמיכה במספר צורות ובגדלים.

רכיב הבסיס הוא תמיד WatchFace. הערכים height ו-width מגדירים את היקף מרחב הקואורדינטות לשימוש בתצוגת השעון, ותצוגת השעון מותאמת למסך של המכשיר שבו היא מוצגת. הערכים height ו-width לא מייצגים פיקסלים בפועל.

ב-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"/>

    <!-- Remove any references to rectangular watch faces -->
    <WatchFace shape="RECTANGLE" width="380" height="400"
               file="@raw/watchface_rectangle"/>
</WatchFaces>

לאחר מכן, מגדירים את המראה וההתנהגות של תצוגת השעון לכל צורה של תצוגת השעון. אם לא הגדרתם קובץ צורות, צריך ליצור רק קובץ אחד, watchface.xml.

לפי הדוגמה בקטע הזה, קובצי ה-XML הגולמיים יהיו:

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

זיהוי בעל התוכן הדיגיטלי של תצוגת השעון (אופציונלי)

אם רוצים, אפשר להצהיר על מחרוזת שרירותית בקובץ המניפסט של האפליקציה, שאפשר להשתמש בה כדי לזהות את בעל האפליקציה של חזית השעון, או את שם הכלי והגרסה שבהם משתמשים:

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

בדיקת הדיוק והביצועים של תצוגת השעון

במהלך הפיתוח, ולפני ההעלאה ל-Google Play, כדאי להשתמש בכלים לאימות כדי לוודא ששעון החכם לא מכיל שגיאות ושעומד בהמלצות לשימוש בזיכרון.

פיתוח חבילת האפליקציות של תצוגת השעון

כדי ליצור את Android App Bundle שמכיל את תצוגת השעון, משתמשים במערכת ה-build של Gradle. איך יוצרים אפליקציה באמצעות Gradle

אפשר לראות את הדוגמאות האלה בדוגמאות ב-GitHub.