הערה: בדף הזה מוצג שלב בתהליך ניהול ההגדרות של לוח השעון באופן ידני. אם אתם רוצים לעצב את תצוגת השעון באמצעות כלי בסגנון WYSIWYG (מה שאתם רואים זה מה שאתם מקבלים), כדאי קודם לעיין במדריכים של Watch Face Studio.
במדריך הזה מוסבר איך להשתמש בכלים הדרושים כדי להגדיר תצוגת שעון באמצעות Watch Face Format, מוצגות כמה הצעות לגבי מבנה הפרויקט ומוסבר איך להשתמש בכלים כדי ליצור את המבנה הזה.
דרישות מוקדמות
כדי להכין את סביבת הפיתוח לשימוש ב-Watch Face Format, מבצעים את שלבי ההגדרה הבאים:
מתקינים את ה-SDK ל-Android 14 (רמת API 34) ואילך. אם חזית השעון לא מסתמכת על תכונות או התנהגות ספציפיות לגרסה 2, אפשר להתקין במקום זאת את ה-SDK ל-Android 13 (רמת API 33).
ערכת ה-SDK מכילה כלים נדרשים אחרים, כולל
aapt2
ו-android.jar
.לחלופין, אפשר להתקין את 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, כדאי להשתמש בכלים לאימות כדי לוודא ששעון החכם לא מכיל שגיאות ושעומד בהמלצות לשימוש בזיכרון.
- מידע נוסף על אופטימיזציה של שימוש בזיכרון ועל בדיקת שימוש בזיכרון לקראת פרסום
- מידע נוסף על השימוש במאמת ה-XML כחלק מתהליך הפיתוח
פיתוח חבילת האפליקציות של תצוגת השעון
כדי ליצור את Android App Bundle שמכיל את תצוגת השעון, משתמשים במערכת ה-build של Gradle. איך יוצרים אפליקציה באמצעות Gradle
אפשר לראות את הדוגמאות האלה בדוגמאות ב-GitHub.
מומלץ עבורך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- AAPT2
- יסודות של Jetpack פיתוח נייטיב
- תחילת העבודה עם CameraX