ב-Wear OS 6 מוצג API חדש, Watch Face Push, שיוצר הזדמנויות לתרחישי שימוש מתקדמים יותר בפרסום תצוגות שעון.
מתי כדאי להשתמש בהעברת תצוגת שעון
Watch Face Push הוא API ב-Wear OS שמאפשר למפתחים להוסיף, לעדכן או להסיר תצוגות שעון ישירות. ההרשאה לא נדרשת לפיתוח של לוחות שעון רגילים.
תצוגות שעון שמשמשות עם Watch Face Push חייבות להיות כתובות ב-Watch Face Format. התוכן הזה יכול לכלול תצוגות שעון שנוצרו באמצעות Watch Face Designer, Watch Face Studio או כל כלי אחר שמייצר תצוגות שעון ב-Watch Face Format.
אפשר להשתמש ב-Watch Face Push API בכמה דרכים, אבל בטבלה הבאה מפורטים תרחישי השימוש העיקריים:
| תרחיש שימוש | פתרון מומלץ | מורכבות |
|---|---|---|
| אני רוצה ליצור תצוגות שעון אישיות ולפרסם אותן. | להשתמש ב-Watch Face Format, באופן ישיר או באמצעות כלי כמו Watch Face Designer או Watch Face Studio, ולפרסם אותן ב-Google Play. | נמוכה |
| אני רוצה ליצור אפליקציה לטלפון שתאפשר למשתמשים לבחור תצוגות שעון מתוך אוסף שנבחר בקפידה, או לעצב ולהתאים אישית תצוגות שעון להתקנה ישירות בשעון Wear OS שלהם. | יוצרים אפליקציה לשעון ולטלפון באמצעות Watch Face Push API בשעון. | גבוהה |
מטרה
תרחיש השימוש הקנוני ב-Watch Face Push API הוא יצירה של אפליקציית חנות. באפליקציה הזו, המשתמשים יכולים לבחור תצוגות שעון מתוך אוסף שנבחר בקפידה בטלפון שלהם, ולשלוט ישירות בהתקנה של תצוגות השעון האלה בשעון המחובר.
שיקולים
לפרטים על יצירת תצוגות שעון, אפשר לעיין בהנחיות בנושא Watch Face Format: תצוגות שעון שנפרסות באמצעות Watch Face Push הן תצוגות שעון רגילות ב-Watch Face Format.
כשמעצבים את תצוגת השעון, כדאי להתחשב בשיקולים הבאים.
שמות של חבילות
תצוגות שעון שמותקנות באמצעות Watch Face Push צריכות להיות בהתאם למוסכמה הבאה:
<app name>.watchfacepush.<watchface name>
… where <app name> is the package name of the app calling the Watch Face
Push API.
לדוגמה, לאפליקציה עם שם החבילה com.example.mymarketplace, אלה שמות החבילות התקינים של לוחות השעון:
com.example.mymarketplace.watchfacepush.watchface1com.example.mymarketplace.watchfacepush.watchface2com.example.mymarketplace.watchfacepush.another_watchface
ה-API דוחה את פני השעון שלא עומדים במוסכמה הזו.
תכולת החבילה
המערכת אוכפת באופן קפדני את התוכן של קובצי ה-APK. מבחינה טכנית, אפשר ליצור קובצי APK בפורמט Watch Face שמכילים קובצי מטא-נתונים לא מזיקים וארטיפקטים אחרים, שאולי יתקבלו ב-Google Play אבל לא יעברו את האימות של Watch Face Push (ראו בהמשך).
כל קובץ APK של תצוגת שעון חייב להכיל רק את הקבצים או הנתיבים הבאים:
/AndroidManifest.xml/resources.arsc/res/**/META-INF/**
בנוסף, קובץ AndroidManifest.xml צריך להכיל רק את התגים הבאים:
<manifest><uses-feature><uses-sdk><application><property><meta-data>
לבסוף, בחבילה צריך לציין minSdk של לפחות 33, ובמאפיין <application> צריך לציין את המאפיין android:hasCode="false".
אימות
בניגוד לתצוגות שעון רגילות שמופצות דרך Google Play, אפליקציה מ-Marketplace אחראית לוודא שכל תצוגת שעון מסוג Watch Face Push מעוצבת היטב ופועלת בצורה יעילה.
במסגרת התכונה 'העברת עיצובים לשעון' מתבצעות בדיקות האימות הבאות כדי לוודא את האיכות של כל עיצוב לשעון:
- כל תצוגות השעון שמותקנות או מעודכנות באמצעות Watch Face Push API חייבות לעבור את כלי האימות של Watch Face Push.
- כדי ליצור אסימוני אימות לשימוש עם ה-API, צריך להשתמש רק בכלי האימות הרשמי.
- כדי להריץ את האימות, כלי האימות צריך להיות מעודכן.
אין צורך לאמת מחדש קובץ APK שלא השתנה. התוקף של הטוקנים לא פג, גם אם הגרסה של כלי האימות שבה נעשה שימוש הוחלפה.
במקביל, מומלץ להריץ מחדש את האימות מדי פעם, כי כלי התיקוף מתעדכן באופן תקופתי.
הרצת כלי התיקוף
הכלי לאימות זמין בשלוש צורות:
- כלי CLI
- ספרייה לשימוש עם JVM
- ספרייה לשימוש ב-Android
שימוש בכלי האימות משורת הפקודה
- מקבלים את כלי האימות ממאגר ה-Maven של Google.
מריצים את הכלי באופן הבא:
java -jar validator-push-cli-1.0.0-alpha10.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>אם הפעולה מצליחה, הפלט כולל אסימון אימות, שצריך לספק ל-Watch Face Push API כשמוסיפים או מעדכנים תצוגת שעון.
אם מתרחשת שגיאה, הפלט כולל פרטים על הבדיקה הספציפית שנכשלה.
שימוש בכלי התיקוף של הספריה
צריך לכלול את המאגרים של Google ו-Jitpack. כדי להשתמש בספריית האימות, צריך להשתמש בשניהם.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }כוללים את התלות של כלי האימות בפרויקט:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")מריצים את כלי התיקוף:
דוגמה לשימוש בספרייה הזו מופיעה בדוגמה ב-GitHub. כדאי לעיין גם בספרייה Portable Asset Compiler Kit (Pack), שיכולה לעזור לכם ליצור קובצי APK במכשיר, לשימוש עם כלי האימות מבוסס-Android.
גודל ה-APK
חשוב במיוחד להקפיד על מזעור גודל ה-APK של תצוגות שעון מסוג Watch Face Push, כי סביר להניח שקובץ ה-APK של תצוגת השעון יועבר מאפליקציית הטלפון לאפליקציית שעון חכם באמצעות Bluetooth, שיכול להיות איטי.
העברה של קובץ APK גדול מדי יכולה להימשך זמן רב, מה שפוגע בחוויית המשתמש וגם גורם לבזבוז סוללה.
- כדאי להשתמש בספריות מתאימות כמו
pngquantכדי לשמור על גודל קובצי התמונות ברמה המינימלית האפשרית.- הכללת התכונה הזו בתהליך build של אוסף תצוגות השעון
- בודקים שהמידות של התמונה מתאימות לקנה המידה שבו משתמשים בה.
- חיתוך התמונות בצורה מתאימה כדי להסיר את הרקע שמסביב.
- הקטנת הגודל של קובצי גופן
- לדוגמה, אם משתמשים בגופן מסוים רק כדי להציג את השעה בפורמט
HH:MM, אפשר להשתמש בכלי כמוpyftsubsetכדי להגביל את קובץ הגופן כך שיכיל רק את הגליפים הנדרשים. הפעולה הזו יכולה להקטין באופן משמעותי את הגודל של קובץ הגופן וקובץ ה-APK שמתקבלים. בפוסט הזה בבלוג אפשר לקרוא פרטים על צמצום הגודל של קובץ גופן במקרים אחרים.
- לדוגמה, אם משתמשים בגופן מסוים רק כדי להציג את השעה בפורמט
בהנחיות לאופטימיזציה של השימוש בזיכרון מופיעות הצעות נוספות לצמצום גודל ה-APK.
חתימה על קובץ APK
כמו בקובץ APK רגיל, אתם צריכים לחתום על כל תצוגות השעון. יוצרים מפתח אחר מהמפתח שבו משתמשים באפליקציה הראשית, ומשתמשים במפתח הזה לכל תצוגות השעון.
ארכיטקטורה
נבחן את ארבעת הרכיבים העיקריים של המערכת:
- אחסון בענן: באפליקציה מ-Marketplace הקנונית, אתם יוצרים ומאחסנים את תצוגות השעון בענן, והן מוכנות לשימוש של המשתמשים. תצוגות השעון כוללות את המאפיינים הבאים:
- הם בנויים מראש כחבילות APK רגילות בפורמט Watch Face Format.
- כל חבילת APK מכילה רק תצוגת שעון אחת שמבוססת על פורמט Watch Face Format.
- הם מאומתים באמצעות תהליך האימות של Watch Face Push ונשמרים עם אסימון האימות המשויך.
- אפליקציית הטלפון יכולה לאחזר אותם לפי הצורך.
- אפליקציית הטלפון: אפליקציית הטלפון היא הדרך העיקרית שבה המשתמשים יוצרים אינטראקציה עם המערכת. הם יכולים:
- איך מדפדפים ומחפשים בקטלוג תצוגות השעון
- התקנה או החלפה של תצוגת השעון בשעון
- אפליקציה לשעון חכם: בדרך כלל לאפליקציה לשעון חכם אין ממשק משתמש משמעותי. הוא משמש בעיקר כגשר בין אפליקציית הטלפון לבין ממשקי ה-API של העברת נתוני לוח השעון, עם הפונקציונליות הבאה:
- שימוש ב-Watch Face Push API כדי להתקין, לעדכן או להחליף תצוגות שעון
- בקשת ההרשאות הנדרשות והצגת הנחיה למשתמש
- הוספת תצוגת שעון שמוגדרת כברירת מחדל
- הוספת מטמון מינימלי של תצוגות שעון
- תקשורת בין הטלפון לשעון: התקשורת בין הטלפון לאפליקציית שעון חכם היא קריטית להצלחת חוויית השימוש הכוללת. שימוש בממשקי API של Wear OS Data Layer, שמאפשרים:
- זיהוי התקנה: באמצעות היכולות ו-
CapabilityClient, אפליקציית הטלפון יכולה לזהות את היעדר אפליקציית שעון חכם, ולהיפך. אחר כך אפשר להפעיל intent לחנות Play כדי להתקין את גורם הצורה החסר. - ניהול מצב: באמצעות
DataClientאוMessageClient, הטלפון נשאר מסונכרן עם מצב השעון, למשל, סנכרון המצב של תצוגת השעון הפעילה. - העברת APK: באמצעות
ChannelClientאוMessageClient, שולחים קובצי APK מהטלפון לשעון - הפעלה מרחוק: באמצעות
Messageclient, הטלפון יכול להנחות את השעון לבצע קריאה ל-Watch Face Push API, למשל כדי להתקין תצוגת שעון.
- זיהוי התקנה: באמצעות היכולות ו-
פרטים נוספים זמינים במדריך בנושא Data Layer API.