תצוגת השעון של Wear
הערה: Watch Face Format נדרש כדי להתקין תצוגות שעון במכשירים עם Wear OS 5 ואילך שמותקנות מראש, ולכל תצוגות השעון החדשות שיפורסמו ב-Google Play.
החל מינואר 2026, תצוגות השעון יידרשו להיות בפורמט Watch Face Format כדי שיהיה אפשר להתקין אותן בכל מכשירי Wear OS.
במאמר הזה במרכז העזרה תוכלו לקרוא מידע נוסף על השינויים שמשפיעים על המשתמשים.
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסה אלפא |
|---|---|---|---|---|
| 23 באפריל 2025 | 1.2.1 | - | - | 1.3.0-alpha07 |
הצהרת יחסי תלות
כדי להוסיף תלות ב-Wear, צריך להוסיף את מאגר Google Maven לפרויקט. למידע נוסף, אפשר לקרוא את המאמר מאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 1.3
גרסה 1.3.0-alpha07
23 באפריל 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 משוחרר. גרסת 1.3.0-alpha07 מכילה את ההוספות האלה.
תכונות חדשות
- כבר הרבה זמן אפשר להגדיר סכימה של UserStyle לתצוגת שעון, ואפשר להגדיר את
ColorUserStyleSettingב-XML.
שינויים ב-API
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך להשתמש ב-KGP 2.0.0 ואילך. (Idb6b5)
- הוספנו את Watch Face Push API, שמאפשר לאפליקציה ל-Wear OS להתקין תצוגת שעון בשעון באופן פרוגרמטי.
תיקוני באגים
- אנחנו ממליצים לספקים של תכונות מותאמות אישית להשתמש בגרסה 1.3.0-alpha06, כי תוקן באג של קריסה ב-
ComplicationDataSourceUpdateRequesterבגרסה הבאה של WearOS.
גרסה 1.3.0-alpha06
26 במרץ 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha06 משוחרר. גרסת 1.3.0-alpha06 כוללת את ההוספות האלה.
תכונות חדשות
- ממשקי ה-API לטיפול בתצוגות שעון ב-Wear (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava ו-watchface-style) הוצאו משימוש לטובת פורמט תצוגת השעון ב-Wear, ובסופו של דבר יוסרו מ-AndroidX. ממשקי ה-API של התכונות הנוספות לא הוצאו משימוש והם ימשיכו לפעול. (Ice960)
- ממשקי ה-API של התוספים יכולים עכשיו לתקשר ישירות עם
WearSDK, וזה יעיל יותר כי יש פחות קפיצות IPC.
גרסה 1.3.0-alpha05
15 בינואר 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 משוחרר. גרסת 1.3.0-alpha05 מכילה את ההוספות האלה.
תכונות חדשות
בדרך כלל, בתצוגות השעון המשתמשים יכולים לבחור צבעים באמצעות ListUserStyle. הבעיה היא שצריך לשלוח את הסמלים דרך Bluetooth לכלי העריכה הנלווה, וזה לא יעיל. לכן הוספנו את ColorUserStyleSetting, שבו עומס העבודה הוא רשימה של צבע אחד או יותר לכל סגנון, עם פורמט נתונים קומפקטי יותר.
הוספנו תכונה ל-OEM שמאפשרת לספקים של רכיבים בתצוגת השעון של יצרני ציוד מקורי להוסיף פריטים נוספים ל-ComplicationData לשימוש בתצוגות השעון של יצרני ציוד מקורי.
שינויים ב-API
- לכיתות
UserStyleSettingו-UserStyleOptionיש עכשיו בוני מודלים, והם הדרך המומלצת ליצירתן. (Iacd03) - תמיכה בהעברת פריטים נוספים ב-
ComplicationData. האפשרות הזו מיועדת לשימוש של יצרני ציוד מקורי (OEM), שבהם הם שולטים גם בספק התוספים וגם במסך השעון המקבל. כדי להגדיר תוספת, נדרשת ההרשאהcom.google.android.wearable.permission.COMPLICATION_EXTRASברמת הרשאת ה-privilege. (I4e3b2) - לרוב, בתצוגות השעון המשתמש יכול לבחור צבעים באמצעות
ListUserStyle, עם סמל לכלListOption. הסכמותUserStyleנשלחות דרך Bluetooth, ולכן חשוב שהן יהיו קטנות. זה יכול להיות בעיה אם יש עשרות אפשרויות צבעים בגלל כל הסמלים האלה. כדי לעזור בכך, הוספנו את האפשרותColorUserStyleSettingשבה האפשרות מכילה רשימה של צבעים במקום סמל, והיא הרבה יותר קומפקטית. (Ib542e) - כדי להשתמש ב-
ColorUserStyleSettingוב-ColorOptionנדרש API 34. (I8771d)
תיקוני באגים
- הספרייה הזו משתמשת עכשיו בהערות של JSpecify לגבי ערכים null, שהן שימוש בסוג. מפתחי Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זוהי ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Ifd363, b/326456246)
גרסה 1.3.0-alpha04
18 בספטמבר 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04 משוחרר. גרסת 1.3.0-alpha04 כוללת את ההוספות האלה.
תכונות חדשות
- הוספנו תמיכה בחיבור איטי (lazy loading) של סמלים ב-
UserStyleSettingsוב-UserStyleOptions, שמשפרת את הביצועים של טעינת חזיתות השעון. (Iaf43d) - נוספה אפשרות לצלם צילום מסך מעודכן בכל פעם שמתבצע שינוי בהגדרות המערכת (למשל, אם השפה או האזור השתנו) באמצעות
Watchface.setUpdateScreenshotOnConfigurationChangeהחדש. כברירת מחדל, ההגדרה הזו מושבתת. (I765a1)
תיקוני באגים
- הסרנו את התיאור הידני של הגישה לממשקי API חדשים של פלטפורמות, כי הדבר מתבצע באופן אוטומטי באמצעות בניית מודלים של API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל, R8 בגרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP 8.1 ואילך (למשל, D8 בגרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
גרסה 1.3.0-alpha03
17 באפריל 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03 משוחרר. גרסת 1.3.0-alpha03 מכילה את ההוספות האלה.
שינויים ב-API
- הוספנו את
EditorSession#setOverrideComplicationsשמגדיר באופן זמני אתComplicationDataשל מופע השעון הבסיסי במהלך העריכה. אם השינויים ב-Complications מתרחשים לעיתים רחוקות, האפשרות הזו יעילה יותר מהעברת ערכי-ברירת מחדל דרךEditorSession#renderWatchFaceToBitmap. (I19384)
תיקוני באגים
- בעבר,
selectComplicationDataForInstantקרא ל-toApiComplicationDataלכל לוחות זמנים, כלומר בדיקת השוויון של ההפניה === תמיד תיכשל. המשמעות היא שהתכונות האלה נטענו מחדש בכל פריים, מה שהוביל לירידה ברמת הטעינה של הסוללה. (717406)
גרסה 1.3.0-alpha02
3 באפריל 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 משוחרר. גרסת 1.3.0-alpha02 כוללת את ההוספות האלה.
תכונות חדשות
- עכשיו אנחנו משתמשים בשוויון של הפניה כדי להשוות בין best לבין
selectedDataכי אופרטור השוויון יקר. (446b00)
שינויים ב-API
- הוספנו ממשק API דינמי ללא חלופה ל-
GoalProgressComplicationData. (c33264)
גרסה 1.3.0-alpha01
7 בפברואר 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 כוללת את ההוספות האלה.
תכונות חדשות
- אפשר לאתחל את
WatchFaceServicesבו-זמנית, ולכן הן צריכות להיות ללא מצב (stateless). כדי לתמוך בכך, הוספנו אתStatefulWatchFaceService, שבו פריט נוסף שהוגדר על ידי משתמש ונוצר על ידיcreateExtra()מועבר לכל ההחרגות שנקראות במהלך האיפוס. - ל-
GlesRenderer2יש עכשיו עומס יתר של קונסטרוקטור שמאפשר לציין רשימה של מאפיינים לניסיון בתורו עםeglChooseConfig.
שינויים ב-API
StatefulWatchFaceServiceתומך עכשיו בשינוי שלgetComplicationSlotInflationFactory, שאליו מועבר הפריט הנוסף שהוגדר על ידי המשתמש על ידיcreateExtra(). (I82d9f)- חלק מהמסכים צריכים לשתף נתונים משניים שנוצרו במהלך
createUserStyleSchemaעם שיטות האיפוס האחרות. מכיוון שלא הייתה חלופה טובה יותר, בדרך כלל המפתחים יצרוWatchFaceServicesעם מצב (stateful). זוהי פעולה מסוכנת כי אפשר ליצור כמה מופעים בו-זמנית, דבר שעלול להוביל לבאגים. כדי לפתור את הבעיה הזו, הוספנו אתStatefulWatchFaceServiceו-StatefulWatchFaceRuntimeService, שבהם סוג שהוגדר על ידי משתמש נוצר על ידיcreateExtra()ומוענק לשיטות היצירה השונות כפרמטר. (If8a99) - הוספנו את
getUserStyleFlavorsל-InteractiveWatchFaceClient, והוא מעניין בעיקר יצרני ציוד מקורי (OEM). (I0f5d8) - ל-
GlesRenderer2יש עכשיו עומס יתר של קונסטרוקטור שמאפשר לציין רשימה של מאפיינים לניסיון בתורו עםeglChooseConfig. לדוגמה, כך תוכלו לנסות קודם תצורה עם סינון רעשי צבע, ואם צריך, לעבור לתצורה ללא סינון. (I1ba74) - החל מגרסה Android U, תתווסף תמיכה ב-
SystemDataSources.DATA_SOURCE_HEART_RATEל-WearOS. מובטח שהתוסף הזה יתמוך רק בתוספים מסוגSHORT_TEXT, אבל מומלץ שה-ComplicationSlotיתמוך גם ב-SMALL_IMAGE, כי יצרני ציוד מקורי עשויים להציג קיצור דרך לאפליקציית הבריאות שלהם במקום את הערך החי. (I34223) - הוספנו את
METADATA_KEY_CONFIG_RESTORE_SUPPORTED, שמתחיל מ-Android U ואילך קובע מה קורה כשהמערכת משוחזרת מגיבוי של מקור נתונים של complications באמצעותMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION. כברירת מחדל, המערכת מניחה ששירות מקור הנתונים של התוסף תומך בגיבוי של נתוני תצורה, אבל אם הוא לא תומך, היא יכולה להוסיף את הגדרת המטא-נתוניםMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONל-false, וכך לסמן את המקום של התוסף בתצוגה כלא מוגדר. (I6c505)
גרסה 1.2
גרסה 1.2.1
24 בינואר 2024
androidx.wear.watchface:watchface-*:1.2.1 משוחרר. גרסה 1.2.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקן קריסה ב-Samsung Galaxy Watch 4, 5 ו-6. (43f0b0)
גרסה 1.2.0
29 בנובמבר 2023
androidx.wear.watchface:watchface-*:1.2.0 משוחרר. גרסה 1.2.0 מכילה את ההוספות האלה.
שינויים חשובים מאז גרסה 1.1.0
- הוספנו תמיכה בסוגי סמלי 'הוספה לשעון' חדשים שזמינים לשימוש ב-Android T:
GoalProgressComplicationData, שדומה לפונקציהRangedValueComplicationData, אלא שהיא מייצגת את ההתקדמות לעבר יעד שבו הערך המינימלי הוא אפס באופן נסתר, והערך יכול להיות גדול מ-targetValue.WeightedElementsComplicationData, שמכיל מערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט/כותרת/תמונה אופציונליים. הנתונים האלה עשויים להופיע כתרשים עוגה, שבו הצבעים צריכים להיות משמעותיים בהתאם להקשר, כי בדרך כלל אין מקום ב-Complication להצגת תוויות.
- הוספנו תמיכה באפשרויות האופציונליות
ColorRangesעדRangedValueComplicationData. בדרך כלל, התכונות הנוספות יוצגו בצבעים שבחרתם בשעון, אבל לפעמיםComplicationDataSourceהוא המקום הטוב ביותר להגדרת הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה. - כמעט כל סוגי
ComplicationDataתומכים עכשיו ב-SmallImages. - הוספנו את
ComplicationDisplayPolicy, שבוDO_NOT_SHOW_WHEN_DEVICE_LOCKEDמורה לתצוגת שעון תואמת לא להציג את התכונה הנוספת כשהמכשיר נעול. - החל מ-Android T, יצרני ציוד מקורי יוכלו לקבוע אם בקשה להוספת רכיב מותאם אישית מגיעה מסך שעון שמופיע ברשימה שמוגדרת על ידי המטא-נתונים של
android.support.wearable.complications.SAFE_WATCH_FACESבמניפסט של הספק שלהם באמצעותComplicationRequest#isForSafeWatchFace. הספק יצטרך את ההרשאהcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEכדי לקבל משהו שאינו TargetWatchFaceSafety.UNKNOWN. - התכונה
UserStyleFlavorsהפכה לתכונה רגילה.
גרסה 1.2.0-rc01
18 באוקטובר 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 משוחרר. גרסה 1.2.0-rc01 כוללת את ההוספות האלה.
גרסה 1.2.0-beta02
6 בספטמבר 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 משוחרר. גרסה 1.2.0-beta02 מכילה את ההצהרות האלה.
תכונות חדשות
SuspendingComplicationDataSourceService#onDestroyפתוח עכשיו. לתשומת ליבכם: התמיכה ב-Complication של מזג האוויר שמוגדרת כברירת מחדל במערכת הוסרה.
שינויים ב-API
- מבטלים את האפשרות 'חשיפת מקור נתונים חדש לבעיות מזג אוויר'. (I6f335)
גרסה 1.2.0-beta01
23 באוגוסט 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 כוללת את ההצהרות האלה.
תכונות חדשות
- החל מגרסה Android T, מערכת WearOS תתמוך עכשיו ב-complication של מערכת מזג האוויר שמוגדרת כברירת מחדל.
שינויים ב-API
- הוספת ברירת מחדל למערכת מזג האוויר לתכונות נוספות. (Ia0994)
- התיקון הזה מוסיף את
WatchFaceRuntimeServiceו-WatchFaceControlClient.createWatchFaceRuntimeControlClientיחד עם חבילות guava. הן מוסיפות תמיכה בסביבות זמן ריצה של תצוגות שעון. אלה סוג מיוחד של תצוגות שעון שמטעינות את ההגדרה שלהן מחבילה אחרת. בשלב זה, WearOS תומך רק בסביבת זמן הריצה של פורמט חזית השעון של Android. (I2799f) - התיקון הזה הוא המשך של aosp/2636578, שבו שינינו את השמות של הגדרות המשתנים מסוג int כדי שלא יהיה צורך לשנות קוד שמבוסס על
WatchFaceType,CanvasType,TapTypeאוComplicationsSlotBoundsType. (I4098b) - עדכנו את קובצי ה-API כדי להוסיף הערות לגבי ביטול תאימות. (I8e87a, b/287516207)
- התיקון הזה חושף את הקבועים
WatchFaceTypeב-WatchFaceTypes, את הקבועיםCanvasTypeב-CanvasTypes, את הקבועיםTapTypeב-TapTypesואת הקבועיםComplicationsSlotBoundsTypeב-ComplicationsSlotBoundsType. (I3b85a, b/288750666) - השימוש ב-
WatchFace.OverlayStyleנמוך מאוד והוא לא נתמך היטב על ידי יצרני ציוד מקורי, לכן אנחנו מפחיתים את ערך הנכס הזה במטרה להסיר אותו במועד מאוחר יותר. (I7344a)
גרסה 1.2.0-alpha09
21 ביוני 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 משוחרר. גרסה 1.2.0-alpha09 מכילה את ההצהרות האלה.
תכונות חדשות
- עכשיו אפשר להשתמש ב-
DynamicFloatב-RangedValueComplicationData.Builder, וישDynamicComplicationTextחדש שזמין כסוג משנה שלComplicationText. בשני המקרים אפשר להשתמש בביטויים דינמיים ובקישורי פלטפורמה שמתעדכנים בקצב של 1Hz במכשירי Wear 4 נתמכים.
שינויים ב-API
- נוספו טיפוסים דינמיים למרחק היומי, לקלוריות היומיות ולקומות היומיות. המפתחות של מקורות המידע לגבי בריאות הפלטפורמה נמצאים עכשיו בקטע
PlatformHealthSources.Keys(Ib7637) - מטמיעים את
PlatformDataProviderכדי לספק נתוני דופק וצעדים יומיים. ממשקSensorGatewayהוסר מ-API הציבורי. (I55b84) - משנים את השם של
StateEntryValueל-DynamicDataValueומעדכנים את ממשקי ה-API של המצבים כך שישתמשו ב-DynamicDataKey. (If1c01) - הוספת
AppDataKeyלגישה למצב של האפליקציה שנדחף, הוספתPlatformDataKeyלגישה לנתוני הפלטפורמה, הוספת תמיכה במרחב שמות ב-StateStore. (I7985e) - השיטות
enable/disablePlatformSourceהוסרו מ-DynamicTypeEvaluator. מבצע הקריאה החוזרת צריך להיות אחראי על העדכונים. (I78c6d) - מאפשרים להגביל את הגודל של סוגי הנתונים המקושרים. (Ie2966)
גרסה 1.2.0-alpha08
19 באפריל 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 משוחרר. גרסה 1.2.0-alpha08 מכילה את ההוספות האלה.
תכונות חדשות
- החל מ-Android T, ספקי רכיבי תכונה מורכבים עם ההרשאה
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEיכולים לרשום מטא-נתונים שלandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESשמבטלים אתandroid.support.wearable.complications.SUPPORTED_TYPESעבור חזיתות שעון בטוחות. כלומר, ספק של תצוגת מידע משנית יכול לבחור להציג סוגים שונים של תצוגות מידע משניות לשעונים מהימנים לעומת שעונים לא מהימנים.
שינויים ב-API
- העברה של הכיתה
@Deprecatedלנכס (I882d1, b/271441831) - שם הפרמטר של הערך עבור
Enum.valueOfהשתנה (Ia9b89) - חריגות נוספות שהושלחו מ-valueOf של enum (I818fe)
- הסרנו את
renderWatchFaceToSurfaceלטובתcreateRemoteWatchFaceView, שנבנה על גבי SurfaceControlViewHost ומאפשר למבצע הקריאה להטמיע תצוגה מתצוגת השעון, שמרינדרת כשהלקוח קורא ל-RemoteWatchFaceViewHost#renderWatchFace. (Ib311d) - הוספנו את
renderWatchFaceToSurfaceאלInteractiveWatchFaceClient,HeadlessWatchFaceClientו-EditorSession. בדרך כלל, הביצועים יהיו טובים יותר מאשר עיבוד לרשת ביט (bitmap). (Ieacad) - השם של
ObservableStateStoreהשתנה ל-StateStore. (Ieb0e2) - הוספנו את
DynamicTypeEvaluator.Builderבמקום ארגומנטים של קונסטרוקטור כדי לאפשר יותר ארגומנטים אופציונליים, כוללObservableStateStoreשהברירת המחדל שלו עכשיו היא מאגר ריק. (I6f832) - סדר הפרמטרים ב-
DynamicTypeEvaluatorעובר שינוי. (Ic1ba4) - הוספת Executor לשיטות
DynamicTypeEvaluator.bind. (I346ab) - הוספנו את השיטה
startEvaluationל-BoundDynamicTypeכדי להפעיל את ההערכה אחרי שמקשרים את הסוג הדינמי. (I19908) - ספקי תכונות מורכבות עם ההרשאה
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEיכולים לרשום מטא-נתונים שלandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESשמבטלים אתandroid.support.wearable.complications.SUPPORTED_TYPESעבור תכונות שעון בטוחות. (Id1c73) - שינינו את השם של
CustomValueUserStyleSettings2ל-LargeCustomValueUserStyleSettings. (Ic17ac)
תיקוני באגים
DynamicTypeValueReceiver#onPreUpdateהוסר. (I2dc35)
גרסה 1.2.0-alpha07
22 בפברואר 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 משוחרר. גרסה 1.2.0-alpha07 מכילה את ההצהרות האלה.
תכונות חדשות
החל מ-Android T, יצרני ציוד מקורי יוכלו לקבוע אם בקשה להוספת רכיב מותאם אישית מגיעה מסך שעון שמופיע ברשימה שמוגדרת על ידי המטא-נתונים של
android.support.wearable.complications.SAFE_WATCH_FACESבמניפסט של הספק שלהם באמצעותComplicationRequest#isForSafeWatchFace. כדי לקבל משהו אחר מ-TargetWatchFaceSafety.UNKNOWN, לספק תצטרך את ההרשאהcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE.אפשר גם להשתמש ב-Android T
CustomValueUserStyleSetting2, שיכול להכיל עד 12.5kb. המגבלה הקודמת שלCustomValueUserStyleSettingהייתה 1KB. למרות הגבלות הגודל המורחבות, מומלץ למפתחי חזיתות השעון לשמור על נתונים קטנים, כי ההגדרות נשלחות דרך Bluetooth במהלך העריכה, ורוחב הפס של Bluetooth מוגבל.
שינויים ב-API
- הוספנו פרמטר אופציונלי
eglContextAttribListל-GlesRendererול-GlesRenderer2, שמאפשר להגדיר את הערך שלEGL14.EGL_CONTEXT_CLIENT_VERSIONשיעבור אלEGL14.eglCreateContext. (I2a83e) - הענקנו את ספריות תצוגות השעון אל
androidx.core.util.Consumerבמקום אלjava.util.function.Consumer. (I273f5) - חריגות נוספות שהושלחו ממנגנוני הגישה למאפיינים של KT (Iff9d9)
- הוספנו את
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedכדי שהלקוח יוכל לקבוע אם הוא צריך לדמות תמיכה בשם תצוגות שעון ישנות. (I24c89) - החלטנו ש-
isForSafeWatchFaceצריך להיותIntDefעם שלוש ערכים אפשריים. (Ief2f7) - עבור Android T, השקנו את
ComplicationRequest.isForSafeWatchFace, שמתאים לשימוש של יצרני ציוד מקורי (OEM) ודורשcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE. במקורות נתונים בתמונת המערכת, הפונקציה הזו תחזיר את הערך true אם לוח השעון המבקש נמצא ברשימת לוחות השעון הבטוחים שצוינה על ידי מקור הנתונים במניפסט שלו. (I0cbb6) - ב-Android T הוספנו את
CustomValueUserStyleSetting2שיכול להכיל עד 12.5kb. המגבלה הקודמת שלCustomValueUserStyleSettingהייתה 1KB. (I0b100)
גרסה 1.2.0-alpha06
25 בינואר 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 משוחרר. גרסה 1.2.0-alpha06 מכילה את ההוספות האלה.
תכונות חדשות
- אנחנו עובדים על הוספת תמיכה לקישורים של פלטפורמות של תכונות מותאמות אישית. התכונה הזו עדיין לא מוכנה לשימוש, אבל כדאי להמשיך להתעדכן.
- הוספנו תמיכה ב-XML
ComplicationSlotלסוגים החדשים של התכונות המותאמות אישית: GOAL_PROGRESS ו-WEIGHTED_ELEMENTS.
תיקוני באגים
- תיקון של דליפת מידע, שבה הכלי לעריכת תצוגות השעון לא שוחרר כראוי במכשירי Samsung. (3b5987)
- תוקן באג שגרם לכך שלפעמים התכונות הנוספות לא הוצגו כראוי כשעוברים בין תצוגות שעון עם כמה פריטים מועדפים. (b38ece)
- תוקן באג בסריאליזציה של perOptionScreenReaderNames שגרם לקריסות של תצוגות השעון. (e9f466)
גרסה 1.2.0-alpha05
7 בדצמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 משוחרר. גרסה 1.2.0-alpha05 מכילה את ההצהרות האלה.
תכונות חדשות
לפני זמן מה הוספנו תמיכה ב-
UserStyleSettingsהיררכי, ומגרסת Android T אפשר להשתמש ביותר מ-ComplicationSlotsUserStyleSettingאחד בהיררכיה. רקComplicationSlotsUserStyleSettingאחד יהיה פעיל, על סמך הבחירות של המשתמש בסגנון.אנחנו משפרים את התמיכה בקורא המסך עבור
ListOptionו-ComplicationSlotsOptionעל ידי הוספת שדהscreenReaderName. חשוב לזכור: לפני Android T, עורכי התוספים יתעלמו מהשדה הזה.
שינויים ב-API
- הוספנו שדה
screenReaderNameאופציונלי חדש ל-ListOptionול-ComplicationSlotsOptionלשימוש של עורכי תוכן – עורכי תוכן נלווים יתעלמו מהשדה במכשירים עם גרסת Android לפני T. (I75326) - החל מגרסה android T יש תמיכה בכמה
ComplicationSlotsUserStyleSettingsבהיררכיית סגנונות, כל עוד רק אחד מהם יכול להיות פעיל בכל רגע נתון. הוספנו פונקציית שירותfindComplicationSlotsOptionForUserStyleל-UserStyleSchemaכדי לעזור למצוא אתComplicationSlotsOptionהפעיל, אם יש כזה. (Ic2b06) RangedValuesTypesהועברו לאובייקט התאמה שלRangedValueComplicationDataושינו את השם ל-TYPE_UNDEFINED,TYPE_RATINGונוסףTYPE_PERCENTAGEחדש. (I55d02)- שינינו את השם של הניסוי
DynamicFloatל-FloatExpressionוסימנו אותו בתור@hide. (Idf4f1) - הוספת הערה
@JvmDefaultWithCompatibility(I8f206)
גרסה 1.2.0-alpha04
9 בנובמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 משוחרר. גרסה 1.2.0-alpha04 מכילה את ההוספות האלה.
תכונות חדשות
- ב-Android T הוספנו תמיכה בשני סוגי סמלי 'הוספה לשעון' חדשים,
GoalProgressComplicationDataו-WeightedElementsComplicationData. GoalProgressComplicationDataדומה ל-RangedValueComplicationData, אבל הערך שלו יכול לחרוג מהיעד (ב-RangedValueComplicationDataהערך מוגבל לטווח [min .. max]), ויש לכך השלכות על העיצוב החזותי שעשויות לא להתאים לכל חזיתות השעון.GoalProgressComplicationDataמוסיפה תמיכה בתרשים עוגה ובפירוטים דומים של נתונים פשוטים.- הוספנו תמיכה אופציונלית עבור
ColorRampsעדRangedValueComplicationData. - ב-Android T, הוספנו את
ComplicationPersistencePolicyואתsetCachePolicyל-ComplicationData, שמאפשרים כרגע לספק לקבוע אם רכיב מורכב יישמר או לא (כלומר, אם הוא יישמר במטמון אחרי הפעלה מחדש). ברוב התכונות לא תצטרכו להגדיר בקרה על מטמון, אבל כך תוכלו לפתור מקרים קיצוניים שבהם מוצגים נתונים מיושנים בתכונות מסוימות שמתעדכנות בתדירות גבוהה (למשל, תכונות של נתוני בריאות). הוספנו גם אתComplicationDisplayPolicy, שבוDO_NOT_SHOW_WHEN_DEVICE_LOCKEDמורה לתצוגת שעון תואמת לא להציג את התכונה הנוספת כשהמכשיר נעול. (Ic9574)
שינויים ב-API
- התכונות
GoalProgressComplicationData, WeightedElementsComplicationDataו-ColorRampכבר לא נחשבות לניסיוניות. (Ica9e2) - עכשיו
ComplicationPersistencePolicyו-ComplicationDisplayPolicyמסומנים כראוי כ-T APIs. (I31d88) - ה-constructor של
ComplicationSlotOverlay, שכבר לא בשימוש, כולל עכשיו אתDeprecationLevel.WARNINGשמאפשר לקרוא לו שוב מ-Java. (Ib308c) - תיקנו כמה בעיות תאימות ל-Java ב-
ComplicationRequestListener, ב-CanvasComplication, ב-ComplicationTapFilterוב-InteractiveWatchFaceClientעל ידי הוספת הערות באמצעות@JvmDefaultWithCompatibility(Id94fc) - הסרנו את האפשרויות הניסיוניות
ProtoLayoutComplicationDataו-ListComplicationData. הסיפור של המפתחים לגבי הבעיות האלה לא היה ברור, ואנחנו מקווים לחזור לנושא בעתיד. (I9df05) - הוספנו
ValueTypeבחזרה ל-RangedValueComplicationData. עכשיו יש תמיכה בצבע רקע ב-WeightedElementsComplicationData. הסרנו אתDiscreteRangedValueComplicationDataכי הפונקציונליות שלו היא קבוצת משנה שלWeightedElementsComplicationData. (I6446c)
תיקוני באגים
- כוללים את
isForScreenShotבקוד השווה ובקוד ה-hash. מוודאים שהשדהonRenderParametersChangedמקבל ערךisForScreenshotתקין (I04a41) - תוקנו דליפות של
WatchFaceControlServiceמלקוחות ללא ראש (headless). (e90e00)
גרסה 1.2.0-alpha03
5 באוקטובר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 משוחרר. גרסה 1.2.0-alpha03 כוללת את ההוספות האלה.
תכונות חדשות
- אין פיצ'רים חדשים, אבל תיקנו כמה באגים בכלי לעריכת תצוגות שעון.
שינויים ב-API
- הוצא משימוש
UserStyleSchema.userStyleSettingsכיrootUserStyleSettingsהפך לתכונה לא ניסיונית (Ie96e3) - העברת
rootUserStyleSettingsמגרסת הניסיון (I8d6b3) - סימנו את
WatchFaceColorsכתכונה ניסיונית כי לא כל המערכות תומכות בה (I6d75d) - חושפים את
DisconnectReasonsב-API הציבורי כדי שהוא יפעל עםIntDef. (I791f8)
תיקוני באגים
- אם
SysUIנכבה, סוגרים את כל הקבצים הפתוחים בעורך השעון. אםSysUIמושבת והעורך של תצוגת השעון לא נסגר, יכול להיות שתצוגת השעון תישאר במצב לא עקבי כי המערכת מסתמכת עלSysUIכדי לשמור שינויים בסגנון של המשתמש.(ba762a - תיקון של דליפת זיכרון ב-
ComplicationDataSourceInfoRetriever, שבו המשך של קורוטין ב-Kotlin שימש כ-GC root ושמר את הפעילות של העורך.(33ee06)
גרסה 1.2.0-alpha02
21 בספטמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 משוחרר. גרסה 1.2.0-alpha02 מכילה את ההוספות האלה.
תכונות חדשות
לחלק מהמסכים יש הגדרות מחוץ ל-
UserStyleשמשפיעות על המראה שלהם (למשל, בחירת תמונת רקע). הוספנו אתRenderer.sendPreviewImageNeedsUpdateRequestשמאפשר לתצוגת השעון לבקש תמונה מעודכנת של התצוגה המקדימה. חשוב לזכור: כדי שהתכונה הזו תפעל, צריך לעדכן את המערכת בהתאם.הוספנו גם ממשק API לתצוגות השעון כדי לחשוף את הצבעים שלהן למערכת, שעלולה לבחור את לוח הצבעים שלה על סמך זה. הערה: התכונה הזו הפכה לניסיונית בתיקון נוסף.
כמעט כל סוגי
ComplicationDataתומכים עכשיו ב-SmallImages.
שינויים ב-API
- לפעמים מנהל הטפטים יכול להתנתק ממנוע אחד וליצור מנוע אחר. הוספנו הגדרת int של
DisconnectReasonוהרחבנו אתClientDisconnectListenerבשיטה חדשה שכוללתDisconnectReason, שמאפשרת למאזין לצפות בניתוק של המנוע. (I45cce) - נוספו שני פרמטרים אופציונליים,
nameResourceIdו-screenReaderResourceId, ל-constructor שלComplicationSlotOverlay(I157e8) - הוספנו מעטפת של Guava לטעינה יתר החדשה של
getOrCreateInteractiveWatchFaceClientעםPreviewImageUpdateRequestedListener. (Ic31f0) - הוספנו את
Renderer.sendPreviewImageNeedsUpdateRequest, שמועיל לתצוגות שעון שיש להן מצב מחוץ ל-UserStyleSchemaשמשפיע על המראה שלהן (למשל, תצוגת שעון עם תמונה לרקע שניתן לבחור). בצד הלקוח הוספנו אתPreviewImageUpdateRequestedListenerכפרמטר אופציונלי ל-getOrCreateInteractiveWatchFaceClientכדי לעקוב אחרי הבקשות האלה. (Iff44a) - הפשטנו את ה-API לחשיפת
WatchFaceColors. עכשיו יש מאפיין פשוט בשםwatchFaceColorsב-Renderer ששעון החכם יכול להגדיר. צריך לעדכן את המאפיין הזה לפי הצורך, בהתאם לשינויים בסגנון. במקום להשתמש ב-WallpaperManagerכדי לראות את השינויים בצבע, הוספנו אתOnWatchFaceColorsListenerל-InteractiveWatchFaceClient. (I490bc) - הוספנו את הכיתה
WatchFaceColorsשמכילה את שלושת הצבעים הבולטים ביותר של תצוגת השעון, והוספנו את השיטות הפתוחותwatchfaceColorsו-notifyWatchFaceColorsChangedל-Renderer. השיטות האלה מאפשרות למערכת לקבל את הצבעים של תצוגת השעון דרךWallpaperManager.getWallpaperColors. (I3d611) ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData(וגםDiscreteRangedValueComplicationData, GoalProgressComplicationDataו-WeightedElementsComplicationDataהניסיוניים) תומכים עכשיו ב-SmallImages. אם בוחרים להציג בחזית השעון רכיב מידע נוסף בכמה צבעים, עכשיו יש אפשרות להשתמש ב-SmallImageרב-צבעי, במקום להשתמש בתמונה מונוכרום. (I257df)- שינוי
PreviewImageUpdateRequestedListenerל-Consumer<>במקום זאת (Ia875d) - החלפת סוג
OnWatchfaceColorsListenerשל שיטת SAM בודדת בהתאמה אישית בסוג SAM גנרי של Java (צרכן) (I0c489) - הוצאנו משימוש את השיטות הישנות
getOrCreateInteractiveWatchFaceClientו-listenableGetOrCreateInteractiveWatchFaceClientשלא מציינותPreviewImageUpdateRequestedListener. (Iec502)
תיקוני באגים
- השם של
DisconnectReason.BINDER_DIEDהשתנה ל-DisconnectReason.ENGINE_DIED. (I4eb0e)
גרסה 1.2.0-alpha01
10 באוגוסט 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 מכילה את ההוספות האלה.
תכונות חדשות
- הוספנו תמיכה ניסיונית בפורמטים שונים של תכונות מותאמות אישית חדשות. זהו תחום פיתוח פעיל. הפורמטים החדשים האלה עשויים להשתנות ללא הודעה מראש, כרגע אין תמיכה ב-
CanvasComplicationDrawableבמעבד גרפיקה. - הוספנו גם שוליים אופציונליים לחריצי התכונות המותאמות אישית, כדי שיהיה קל יותר להקיש על תכונות מותאמות אישית קטנות.
שינויים ב-API
- הכיתה הניסיונית
BoundingArcלא ניתנת לשינוי. (If624a) - יכול להיות שיהיה קשה להקיש על סמלים קטנים. כדי לצמצם את הבעיה הזו, הוספנו תמיכה בשוליים שמגדילים את האזור שניתן להקיש עליו בלי להשפיע על העיבוד. אם לא צוין אחרת (בקוד או באמצעות XML), לשדה
ComplciationSlotsיש שוליים בגודל אפס. (I14089) - שינינו את החתימה של
getComplicationSlotInflationFactory(CurrentUserStyleRepository)כדי להחזיר מופע של מפעל שאינו null. בעבר היה שגיאה להחזיר null, כך שהשינוי הזה רק מבהיר את חוזה ה-API. (I0fcc0) - הוספנו את הארגומנט
currentUserStyleRepositoryלשיטהWatchFaceService.getComplicationSlotInflationFactoryכדי לשמור על עקביות עםcreateComplicationSlotsManager. (I2ddd2) UserStyleFlavorsהפכו לתכונה לא ניסיונית. (I69cdc)- הסרנו את
ValueTypeהניסיוני מ-RangedValueComplicationDataוהוספנו במקום זאת אתDiscreteRangedValueComplicationDataהניסיוני, שהוא דומה ל-RangedValueComplicationDataמלבד טווח הערכים והערך של המספרים השלמים. הוספנו גם את הפונקציה הניסיוניתGoalProgressComplicationData, שדומה ל-RangedValueComplicationData, מלבד שהיא מייצגת את ההתקדמות לעבר יעד שבו הערך המינימלי הוא אפס באופן משתמע, והערך יכול להיות גדול מ-targetValue. הערה: בכל הווריאציות שלRangedValue, צריך לציין לפחות אחד מהפרמטרים monochromeImage, text או title. (I9590c) - הסרנו את
boundsWithMarginsמ-ComplicationSlotStateכי אין תרחיש לדוגמה לשימוש בו בתוכנת מערכת. (I42e26) - הוספנו תמיכה ניסיונית ב-
WeightedElementsComplicationData, שמכיל מערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט/כותרת/תמונה אופציונליים. הנתונים האלה עשויים להופיע כתרשים עוגה, שבו הצבעים צריכים להיות משמעותיים בהתאם להקשר, כי בדרך כלל אין מקום ב-Complication להצגת תוויות. (I87eea) - בעזרת הפרמטר הניסיוני
ColorRamps, שאפשר להשתמש בו ב-RangedValueComplicationDataוב-GoalProgressComplicationData, אפשר עכשיו לציין רצף של עד שבעה צבעים ודגל שמציין אם צריך לבצע טרנספורמציה חלקה בין הצבעים או ליצור שלבים מוצקים בגודל שווה של צבעים. (I9f5bf) - השדה
RangedValueComplicationData.drawSegmentedהשתנה ל-valueType, שהוא מספר שלם עםValueType IntDefתואם שמספק משמעות סמנטית לערך הטווח, ויכול לשמש את ה-renderer של התוסף כדי להשפיע על העיצוב. (I0616b) - הוספנו תמיכה ניסיונית באפשרויות האופציונליות
ColorRangesעדRangedValueComplicationData. בדרך כלל, התכונות הנוספות יוצגו בצבעים שבחרתם בשעון, אבל לפעמיםComplicationDataSourceהוא המקום הטוב ביותר להגדרת הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה. (I5153a) - הוספנו ל-
RangedValueComplicationDataרמזdrawSegmentedניסיוני. המשמעות היא שהמעבדים צריכים לצייר את האינדיקטור של הערך בטווח באמצעות קטעים, כאשר מקטע אחד = יחידה אחת. (I7d7c1)
תיקוני באגים
- הוספנו את היכולת להגדיר את
ComplicationSlotBoundsביחס למערכת קואורדינטות מסך מוגדרת מראש. (I0985d)
גרסה 1.1
גרסה 1.1.1
10 באוגוסט 2022
androidx.wear.watchface:watchface-*:1.1.1 משוחרר. גרסה 1.1.1 מכילה את השמירות האלה.
- זוהי גרסה עם תיקוני באגים, ומומלץ מאוד למשתמשים בגרסה 1.1.0 לשדרג.
תיקוני באגים
האתחול של תצוגת השעון הוא אסינכרוני, ואם מתקבלת תכונה מורכבת לפני שתצוגת השעון מוכנה, היא מועברת לרשימה
pendingInitialComplicationsותיושם מאוחר יותר. לצערנו,pendingInitialComplicationsהוחל מוקדם מדי, כך שבמהלך האתחול של תצוגת השעון עדיין הוספנו רכיבי Complications ל-pendingInitialComplicationsוהתעלמנו מהם. הבעיה תוקנה. בנוסף, התיקון הזה מתקן באג שבוComplicationRendererניסה בטעות לטעון placeholders באופן אסינכרוני, והניסיון נכשל וכתוצאה מכך הגרפיקה של הידור הקוד לא התעדכנה אף פעם. לבסוף, התיקון הזה מתקן באג תיאורטי, אם אפשר לקרוא לזה כך, שבו צריך למזג כמהpendingInitialComplications. (0d03ba3)תיקון נעילה מרובת משתתפים פוטנציאלית ב-
InteractiveInstanceManager, שבהgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstanceהחזיק את המנעול יותר מהזמן הנדרש. בדרך כלל, הפעולהengine.setUserStyleאמורה להתבצע במהירות, אבל אם מסיבה כלשהי היא לא מתבצעת במהירות, יכול להיות שנגיע למצב של נעילה מרובת משתתפים או ל-ANR. התיקון הזה מסיר מהנעילה עבודה מיותרת, ומבטל את האפשרות לנעילה מרובת משתמשים (deadlock). (5a2adca)תיקון כמה בעיות שגרמו לשמירת
WatchFaceService. לפעמים ה-WakeLock יכול לשמור אתWatchFaceService. הוספת קריאה ל-release()פותרת את הבעיה הזו. בנוסף, ה-StateFlowsיכול לשמור את ה-WatchFaceService. ביטול ה-CoroutineScopesהבסיסי פותר את הבעיה הזו.(fd48138)מוסיפים זמן קצוב לתפוגה ל-
awaitDeferredWatchFace* ומתקנים אתwatchfaceOverlayStyleNullPointerException. בנסיבות רגילות, הזמן הקצוב לא אמור לפוג, כולל אחרי התקנה חדשה ובתרחישיםDirectBootשבהם עומס ה-CPU גבוה. תוקן גם שגיאת NPE אםgetWatchfaceOverlayStyleנקראת אחריclose(). (a4c3a5a)
גרסה 1.1.0
15 ביוני 2022
androidx.wear.watchface:watchface-*:1.1.0 משוחרר. גרסה 1.1.0 כוללת את ההצהרות האלה על ביצוע שינויים (commits).
שינויים חשובים מאז גרסה 1.0.0
שיפורים בעריכה:
- הוספנו תמיכה בסכימות היררכיות, שמאפשרות ליצור היררכיה של סגנונות באמצעות ממשקי משתמש של עורכי טקסט. עכשיו אפשר לציין סמלים נפרדים לשימוש בממשק השעון ובעורכי האפליקציות הנלוות.
- יש תמיכה בהסכמה מראש בכמה מופעים של תצוגת שעון, לכל מופע יש מזהה ייחודי שזמין בכל ממשקי ה-API.
- עכשיו אפשר לציין שמות שקריאים לבני אדם עבור
ComplicationSlotsלשימוש בכלי עריכה. - תמיכה ניסיונית ב'סגנונות', מבחר של סגנונות שנבחרו על ידי צוות העריכה, שיהיה גלוי דרך הכלי הנלווה.
- כשעורכים שתי מכונות של חזית השעון, עכשיו אפשר למכונות של חזית השעון לשתף משאבים, וכך לחסוך בזיכרון
- כשבוחרים רכיב מורכב בתצוגת השעון, הספק הנוכחי נבחר מראש.
רכיבים משופרים:
- עכשיו אפשר לציין את
ComplicationTypeלמקורות הנתונים הראשי והמשני, וכך לתת למפתחים גמישות רבה יותר בחוויית השימוש המובנית. - הוספנו את
ComplicationDataTimeline, שמספק רצף של נתונים עם חלון זמן להצגה, שאפשר לשמור במטמון ולעדכן באופן אוטומטי. הנתונים האלה יועברו ללוח השעון. לדוגמה, תחזית מזג האוויר של היום בשעות שונות או כמה אירועים קרובים ביומן. - השדה
ComponentNameשל ספק הרכיב הוא חלק מהשדהComplicationData. - התכונות המותאמות אישית נשמרות עכשיו במטמון, וכך חוויית השימוש משתפרת כשעוברים בין חזיתות השעון.
שינויים אחרים:
- עכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך קל יותר ליצור את חזית השעון, ואפשר לבצע שאילתות מהירות יותר של מטא-נתונים מהמערכת. - עכשיו תצוגות השעון יכולות להשפיע על הצבעים שבהם נעשה שימוש לעיבוד שכבת-העל של המערכת.
גרסה 1.1.0-rc01
18 במאי 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 משוחרר. גרסה 1.1.0-rc01 כוללת את השמירות האלה.
תכונות חדשות
- ביצענו כמה שינויים בממשק המשתמש בתמיכה ב-XML של תצוגות שעון, כדי שיהיה קל יותר לציין את
ComplicationSlotBoundsואת ההפניות התומכות. אנחנו ממשיכים להתנסות בבעיית הקצהBoundingArc, ומעבירים אותה דרךdrawHighlight, אבל לא מומלץ להשתמש בה בשלב הזה.
שינויים ב-API
- הוספנו עומס יתר ניסיוני של
drawHighlightשמקבל פרמטרBoundingArc. (I705f8) - קובצי XML של שעונים חכמים תומכים עכשיו בהפניות למשאבים. היא מאפשרת להשתמש באותם קבועים גם ב-XML וגם בקוד. (I3ef61)
- הוספנו את היכולת להגדיר את
ComplicationSlotBoundsבפורמטcenter_x,center_y,size_x,size_y. עכשיו אפשר גם להשתמש ביחידות שונות (למשל dp) באמצעות הפניות למשאבים. (Iace98)
תיקוני באגים
- תיקון של
runBlockingWithTracingשבו משימות הופעלו בהקשר הלא נכון.(4f595fe) - הופכים את
BaseEditorSession.closeלסינכרוני. הבעיה בכך ש-BaseEditorSession.closeהוא אסינכרוני היא שאנחנו משחררים אתComplicationDataSourceInfoRetrieverמאוחר מדי, מה שמוביל לספאם של אזהרות ב-logcat. סביר להניח שההודעה הזו לא מזיקה, אבל ספאם ב-logcat מפריע וצריך להימנע ממנו.(35a5308)
גרסה 1.1.0-beta02
11 במאי 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 כוללת את השמירות האלה.
תכונות חדשות
- הוספנו תמיכה ניסיונית בסוגי
ComplicationDataחדשים. הם עדיין לא מוכנים לשימוש, אבל כדאי לעקוב אחרי העדכונים.
שינויים ב-API
- הוספנו את
BoundingArc, סיווג ניסיוני שמתאר את הגיאומטריה של חריץ ל-Complication בקצה המסך. הוא נוסף ל-ComplicationSlotוקישר ל-ComplicationSlotStateול-WatchFaceMetadataClient. (I61a40) - הוספנו את היכולת לקבל בירושה הגדרות ב-
UserStyleSettingXML. כך תוכלו לצמצם את כמות המידע המוצג ולשתף הגדרה בין חזיתות השעון. (Ief841) - הוספנו שני סוגים חדשים של
ComplicationDataלניסוי:ListComplicationDataו-ProtoLayoutComplicationData. בשלב הזה אין תמיכה ברינדור בשום אחד מהסוגים האלה, ומערכת WearOS לא מזהה את הסוגים האלה אם הם מתווספים למניפסטComplicationDataSource's. (I1811c)
תיקוני באגים
- תיקון הסריאליזציה של סוג
TimeLineEntry. לא ביצענו סריאליזציה של הסוגTimeLineEntry, מה שאומר ש-TimeLineEntriesששמור במטמון מסוג NoData יובן באופן שגוי כסוג של הבעיה הראשית, מה שמוביל ל-NPE כשמתבצעת גישה לשדות נדרשים שלא קיימים. (55ffdf5) - תוקן באג שגרם לכך ש-
setComplicationDataהשמיט שדות של ציר זמן(fb392f5) - תוקן באג שבו לפעמים
runBlockingWithTracingמוביל ל-NPE(12ca62e) - תוקן באג שגרם לכך שלפעמים מופיע
ClassNotFoundException: android.support.wearable.complications.ComplicationTextכשמקבלים תצוגת מידע מותאמת אישית.(217942d9) - תוקן באג ב-
GlesRenderer.backgroundThreadInitInternalשבו הקריאה ל-onBackgroundThreadGlContextCreatedהתבצעה רק אם התבצעה קריאה ל-EGL14.eglCreateContext. תוקן באג נוסף שבו היה שגיאה חזותית בצילום המסך שנגרמה על ידיverticalFlip.(c674ad2) - תיקון בדיקת גרסת ה-XML של
WatchFaceService, היא נטענת מהחבילה הלא נכונה.(dfa06f3) - פורמט ה-wire של placeholder משתמש עכשיו בחבילה פנימית. אנחנו לא רוצים שמצייני מיקום יגרמו לשיבושים במסכי שעון קיימים שעשויים להשתמש ב-a.s.w.c.ComplicationData הפנימי והמוסתר. בעבר, בפורמט הנתונים של
NoDataComplication, placeholder נשמר בשדות הרגילים (בעיה כי תצוגות שעון ישנות ייראו את מחרוזת placeholder, מה שלא נועד). עכשיו אנחנו משתמשים בחבילה פנימית כדי לבודד את זה לחלוטין.(d5e7bd2)
גרסה 1.1.0-beta01
20 באפריל 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 כוללת את השמירות האלה.
שינויים ב-API
- עכשיו השיטות
WatchFaceMetadataClient (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) ו-HeadlessWatchFaceClient.getUserStyleFlavorsגורמות להשלכת RuntimeException ללא בדיקה במקוםWatchFaceException. (I0718a) WatchFaceMetadataClient.WatchFaceExceptionהועברה מחוץ לכיתה כדי שניתן יהיה לעשות בה שימוש חוזר. (I4e869)
תיקוני באגים
WatchFaceMetadataClientלא יתקרס יותר כשנשלחComplicationSlotBoundsחלקי.(Iaafd)
גרסה 1.1.0-alpha05
6 באפריל 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 משוחרר. גרסה 1.1.0-alpha05 מכילה את ההוספות האלה.
תכונות חדשות
- עכשיו אפשר לבדוק איזה מקור נתונים שלח
ComplicationDataעל ידי בדיקתComplicationData.dataSource. תצוגות שעון מסוימות עשויות להשתמש בנתונים האלה כדי להתאים אישית את התצוגה של הרכיבים. (I44a73)
שינויים ב-API
- הוספנו את
Renderer.CanvasRenderer2ו-Renderer.GlesRenderer2במקוםRenderer.CanvasRendererו-Renderer.GlesRenderer, שתומכים ב-SharedAssetsומעבירים אותו לשיטות הרינדור. הוספנו אתListenableCanvasRenderer2וגם אתListenableGlesRenderer2ל-java interop. (I31ffa) - נוספה ל-
@WatchFaceFlavorsExperimentalהיכולת להגדיר טעמים – רשימה מוגדרת מראש של תצוגות שעון בסגנון מסוים (I04dd0) Renderer.sharedAssetsהוא עכשיו StateFlow והסרנו אתRenderer.SharedAssetsFactoryשלא בשימוש (I12ac5)- השיטה
UserStyleSchema.userStyleSettingsכבר לא הוצאה משימוש (Iba7e3) - הוספנו את
HeadlessWatchFaceClient.getUserStyleSchemaDigestHashשמאפשר ל-HeadlessWatchFaceClientלהימנע מהעלות הנמוכה יחסית של העברת הסכימה דרך AIDL לפני חישוב גיבוב הדיגסט. (I33597) - הוספנו את
isUserStyleSchemaStaticל-WatchFaceMetadataClient, והוא נכון אם ורק אם אפשר לסמוך על כך שהערך שלUserStyleSchemaלא ישתנה, אלא אם חבילת ה-APK של חזית השעון תתעדכן. (I45a3f) - הוספנו את
getDigestHashל-UserStyleSchema, שמחשב גיבוב של הסכימה. אפשר להשתמש בכך כדי לקבוע ביעילות אם הערך שלUserStyleSchemaהשתנה. (I2063d) - השם של
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDהשתנה ל-METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED(I9ba5d) - השם של
UserStyleSetting.OnWatchEditorDataהשתנה ל-UserStyleSetting.WatchFaceEditorData. הוא מכיל נתונים שמשמשים רק את העורכים של חזית השעון. (If3afb)
גרסה 1.1.0-alpha04
9 במרץ 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 משוחרר. גרסה 1.1.0-alpha04 מכילה את ההוספות האלה.
שינויים ב-API
- יכול להיות ש-
ComplicationDataהעדכני לא תמיד יהיה זמין (למשל, ComplicationData שפג תוקפו במטמון), לכן הרחבנו אתNoDataComplicationעם placeholder אופציונלי של ComplicationData והוספנו אתComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDERו-PhotoImage.PLACEHOLDER, שאפשר להשתמש בהם רק בהקשר של placeholder שלNoDataComplicationData. אם בוחרים באפשרות הזו, מומלץ להציג את הסמנים האלה בתיבות או בקטעים עקומים אפורים. (I6285d) - הוספנו את
ComplicationData.getNextChangeInstant, שמציינת את הרגע הבא אחרי הרגע של הפניה שבו כל שדה של התוסף עשוי להשתנות. המערכת משתמשת בנתון הזה באופן פנימי כדי לתזמן פריימים לעדכוני רכיבים. לדוגמה, אם תצוגת השעון מתעדכנת בדרך כלל פעם בדקה, הגדרת רכיב השעון 'כרונימטר' תגרום לעדכון פעם בשנייה. (I7ceb2) - עכשיו אפשר להשתמש ב-
EditorSession.watchFaceIdבכל רמות ה-API. בנוסף, הערך שלו יהיה עכשיו תמיד עקבי עם הערך שלWatchState.watchFaceInstanceId. (I323b9) - ממשק ה-API של
getPendingIntentForTouchEventכבר לא נדרש כי הבעיה הבסיסית תוקנה במסגרת, ולכן כל ממשקי ה-API הקשורים הוסרו. אין צורך לבצע פעולה מיוחדת בשעון כדי שהאירועPendingIntentsיופעל, גם אם לחצתם לאחרונה על לחצן דף הבית. (I1f2e8) - הוספנו את
RendererParameters.isForScreenShot, שהערך שלו יהיה True אם ה-render הוא לצילום מסך. חלק מהמסכים עם אנימציות צריכים לדעת את זה כדי לבצע התאמות ולהבטיח את התוצאות הטובות ביותר. (I96d99) - הוספנו את
WatchFaceExceptionReasonאלWatchFaceExceptionכדי לספק הקשר לגבי מה שקרה. (I01d15) - הערך
ComplicationDataSourceService.onImmediateComplicationRequestהוסר, ובמקומו נוסף הערךComplicationRequest.immediateResponseRequiredכדי לסמן שהספק צריך להגיב במהירות (רצוי תוך פחות מ-100 אלפיות השנייה). שימו לב שהפונקציונליות הזו מוגנת באמצעות ההרשאהcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEבעלת ההרשאות. (Ie6b23) - עדכון של האפשרות ל-nullability ב-core וב-appcompat בהתאם ל-Tiramisu DP2 (I0cbb7)
תיקוני באגים
- עכשיו אפליקציית חזית השעון קורסת עם חריגה אם אימות הסכימה נכשל (Ia400f)
גרסה 1.1.0-alpha03
9 בפברואר 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 משוחרר. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.
שינויים ב-API
- הוספנו תמיכה ניסיונית בסכימות של סגנונות היררכיים. הוספנו נכס חדש ל-
androidx.wear.watchface.style.UserStyleSetting.Option, childSettings, שבהתחלה משמש רק אתListOption. כך אפשר לתאר היררכיית סגנונות לשימוש בממשקי המשתמש של העורכים. סגנון המשתמש הבסיסי לא משתנה ועדיין הואMap<String, ByteArray>. (Iaf6f4) - הוספנו את
WatchFace.OverlayStyleשמאפשר לתצוגת השעון להגדיר את הרינדור של שכבת-העל של סטטוס המערכת. (I8520d) - הוספנו את
clearWithBackgroundTintBeforeRenderingHighlightLayer, פרמטר אופציונלי חדש ל-constructor שלCanvasRenderer(ברירת המחדל היא false). אם הערך של הפרמטר הזה מוגדר כ-true, הלוח יימחק בצבע הגוון של הרקע. (Ie01e5) - נוספה המפתח
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDשל המטא-נתונים, שמאפשר למקורות נתונים של תכונות מורכבות לציין שהם יכולים לספק ערך ברירת מחדל בלי הגדרה (Icc0d4) - כשעורכים תצוגת שעון, בדרך כלל יש גם מכונה אינטראקטיבית וגם מכונה ללא ראש. כדי לחסוך בזיכרון, הוספנו את
Renderer.SharedAssetsשמאפשר למעבד גרפיקה של תצוגת שעון לשתף נתונים שלא ניתן לשנות (למשל, טקסטורות ושכבות צבע) בין מכונות. השדותGlesRenderer.setEglConfigו-GlesRenderer.setEglDisplayהוצאו משימוש. אף פעם לא התכוונו שאפשר יהיה להגדיר אותם, והגדרה כזו הייתה מובילה להתנהגות לא מוגדרת. (I0d9e7) - הוספנו את
setNameResourceIdו-setScreenReaderNameResourceId(שמפנים למשאבי מחרוזות) ל-ComplicationSlot.Builderואת פונקציות ה-getter התואמות ב-androidx.wear.watchface.client.ComplicationSlotState. כך המערכת יכולה לאחזר את השמות של ComplicationSlots לשימוש בכלים לעריכה ובקוראי מסך. (If6c6a) - הפונקציות
WatchfaceMetadataClient.getUserStyleSchemaו-getComplicationSlotMetadataMapגורמות עכשיו להשלכתWatchFaceExceptionבמקוםRemoteException. (I86f11) - השם של
onSynchronousComplicationRequestוהפונקציות הקשורות ב-ComplicationDataSourceServiceהשתנה ל-onImmediateComplicationRequestוכו'. (I87ba0) - במסכי עורכי תצוגות השעון יש הרבה פחות מקום מאשר במסכים של עורכי האפליקציות הנלוות, לכן הגיוני לתמוך בסמלים שונים במסכים של עורכי תצוגות השעון. התיקון הזה מוסיף את
OnWatchEditorData(שכרגע מכיל רק סמל) לכל UserStyleSettings, ובמקרים הרלוונטיים גם את כיתות האפשרויות שלהם. (If1886) - הוספנו את
@JvmOverloadsל-constructor של ListenableGlesRenderer כדי לשפר את יכולת הפעולה ההדדית עם Java. (I2974a)
תיקוני באגים
- ה-constructor של
ListenableGlesRendererמסומן עכשיו כראוי בתור@Throws(GlesException::class), ועכשיו אפשר להרחיב את הכיתה הזו ב-Java. (Iac6d0) - תיקון באג שבו לא מטפלים בצורה נכונה ב-tapAction של
PhotoImageComplicationData(I1cc30)
גרסה 1.1.0-alpha02
12 בינואר 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.
תכונות חדשות
- כדי לעזור בניפוי באגים ובבדיקות, עכשיו יש ל-
ComplicationDataולתת-הסוגים הקשורים שיטה מעלומה של hashcode, equals ו-toString, כך שקל יותר לעבוד איתם.
שינויים ב-API
- שיטות
WatchfaceMetadataClientשוב גורמות להשלכתRemoteExceptionsבמקרים המתאימים, כך שקל יותר לקוד הלקוח לזהות שגיאות ממסך השעון. (I78785) - לכיתה
ComplicationDataולכיתות המשנה שלה יש עכשיו את הפונקציות hashcode, equals ו-toString. (I24bc6)
גרסה 1.1.0-alpha01
15 בדצמבר 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 משוחרר. גרסה 1.1.0-alpha01 כוללת את ההוספות האלה.
תכונות חדשות
עכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך קל יותר ליצור את תצוגת השעון. בנוסף, שאילתותWatchFaceMetadataClientמהירות יותר כי אין צורך לקשר אותן לשירות כדי לקבל את המטא-נתונים. ה-WatchFaceMetadataClientו-ListenableWatchFaceMetadataClientכבר לא נחשבים לניסיוניים, והם יהיו חלק מ-API היציב. המערכת תוכל לתמוך, אם רוצים, בכמה מופעים של תצוגת שעון, עם אפשרויות עיצוב ייחודיות שהוגדרו על ידי המשתמש לכל אחד מהם. הם יופיעו בבורר של תצוגות השעון. כדי להביע הסכמה לשימוש בנתונים האלה, תצוגת השעון צריכה לכלול את תג המטא-נתונים הבא במניפסט שלה.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />בחלק מתצוגות השעון יש מצב שלא מתועד ב-
UserStyle. כדי לתמוך בכך ובמכונות מרובות, מזהה המכונה של תצוגת השעון זמין עכשיו דרךWatchState.watchFaceInstanceId.ComplicationDataנשמר עכשיו במטמון כדי לאפשר הצגת התכונות האלה מיד אחרי הטעינה. לפעמים המערכת שומרת אתComplicationDataבמטמון בזיכרון, ולפעמים ספריות של צגי שעון מבצעות סריאליזציה שלו. כשמפעילים את השירות בסדרת אירועים, כל פעולת הקשה משויכת תאבד. אם זה יקרה,ComplicationData.tapActionLostDueToSerializationיחזיר את הערךtrueופנים השעון צריכים להציג את התוסף בצורה שונה (למשל, באפור או שקוף למחצה) כדי לסמן שלא ניתן להקיש עליו. המערכת תשלחComplicationDataמעודכן עםtapActionבהקדם האפשרי.חלק מה-
ComplicationDataלא צריכים להישמר במטמון למשך זמן רב. כדי לתמוך בכך, הוספנו תכונה כללית יותרComplicationDataTimeline. אפשר להשתמש באפשרות הזו כדי לספק רצף שלComplicationDataעם חלון זמן להצגה, שיישלח ללוח השעון. הנתונים האלה יכולים להישמר במטמון ולהתעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר של היום בשעות שונות או כמה אירועים קרובים ביומן. נוספה ל-ComplicationRequestListenerשיטה חדשה,onComplicationDataTimeline, שבאמצעותה אפשר להחזיר את הנתונים האלה.DefaultComplicationDataSourcePolicyהורחב כך שאפשר לציין אתComplicationTypeלמקורות הנתונים הראשי והמשני.הוספנו תמיכה בספקי סמלי שעון מסונכרנים, שבהם הסמל מתעדכן בתדירות גבוהה יותר מהרגיל, עד פעם בשנייה כשמסך השעון גלוי ולא במצב אווירה. הערה: יכול להיות שספקי ווידג'טים סינכרוניים יהיו מוגבלים בשימוש בגלל בעיות של לחץ זיכרון.
סביר להניח שהשינויים ב-
PendingIntentTapListenerיבטלו כי פתרנו את הבעיה הבסיסית (לא ניתן להפעיל פעילויות במסך השעון במשך 5 שניות אחרי לחיצה על לחצן הבית) במקום זאת במסגרת.
שינויים ב-API
- השדה
ComplicationData.isCachedהשתנה ל-tapActionLostDueToSerialization. השדה הזה שימושי יותר כשצריך לקבוע אם צריך להציג את תא התוסף בצורה שונה כדי לסמן שלא ניתן להקיש עליו. (I6de2f) ComplicationDataTimelineנוסף לקבוצהwear-complication-data-source. אפשר להשתמש באפשרות הזו כדי לספק רצף שלComplicationDataעם חלון זמן להצגה, שיישלח ללוח השעון. הנתונים האלה יכולים להישמר במטמון ולהתעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר של היום בשעות שונות או כמה אירועים קרובים ביומן. נוספה ל-ComplicationRequestListenerשיטה חדשה,onComplicationDataTimeline, שבאמצעותה אפשר להחזיר את הנתונים האלה. יש עטיפה חדשה של KotlinSuspendingTimelineComplicationDataSourceServiceלהשעיית שירותי מקורות נתונים. (Idecdc)- הוספת את
PendingIntentTapListenerואתWatchFaceControlClient.getPendingIntentForTouchEvent. התכונה הזו יכולה לעזור לתצוגות שעון שצריכות להפעיל כוונות בתגובה להקשות, כדי לעקוף בעיה שבה המסגרת חוסמת את הפעלת הפעילויות החדשות למשך 5 שניות אחרי לחיצה על לחצן הבית. (I98074) - הוספנו מטמון
ComplicationDataלכל תצוגת שעון. המטרה של האפשרות הזו היא לאפשר ללוח השעון להציג את ערכי הנתונים האחרונים של התוספים בזמן הטעינה, עד שהמערכת תהיה מסוגלת לעדכן אותם. יש שיטה חדשה של APIWatchFaceControlClient.hasComplicationCacheהמיועדת ליצרני ציוד מקורי (OEM). הדבר עשוי להשפיע על האסטרטגיה של המערכת לשליחת רכיבי 'תצוגת מידע מורחבת' לתצוגת השעון. בנוסף, ל-ComplicationDataיש מאפייןisCached, ומומלץ להציג תכונות מורכבות שנשמרו במטמון בצורה שונה כי לא ניתן לשמור אתtapActionבמטמון והוא יהיהnullבתכונה מורכבת שנשמרה במטמון. (I404b0) - מזהה המכונה של תצוגת השעון זמין עכשיו דרך
WatchState.watchFaceInstanceId. ברוב חזיתות השעון לא יהיה צורך להשתמש במאפיין הזה, אבל אם יש מצב לכל חזית שעון שלא נשמר בסכימה, זה המפתח שצריך להשתמש בו כדי לזהות את מופע חזית השעון. כדי לתמוך בכך, עכשיו אפשר לספק מזהה כשמתקשרים אלWatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98) DefaultComplicationDataSourcePolicyמורחב עם היכולת להגדיר אתComplicationTypesשמוגדרת כברירת מחדל לספק הראשי, לספק המשני ולספק המערכת החלופי. האפשרותComplicationSlot.defaultDataSourceTypeהוצאה משימוש. (If0ce3)- עכשיו אפשר לשנות את
ComplicationSlot.configExtrasוניתן לעדכן אותו לפני שמפעילים אתEditorSession.openComplicationDataSourceChooser(). (I6f852) - הוספת את
WatchFace.setComplicationDeniedDialogIntentואתsetComplicationRationaleDialogIntent. הכוונות האלה מופעלות כדי להציג תיבת דו-שיח עם הסבר לפני שמבקשים הרשאות לשימוש בתכונות מותאמות אישית, ותיבת דו-שיח נוספת שמסבירה שצריך הרשאה לשימוש בתכונות מותאמות אישית כשמנסים לערוך תכונה כזו אם ההרשאות נדחו (בורר הספקים לא ייפתח, ולכן נדרשת תיבת הדו-שיח). (I3a29c) - עכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך קל יותר ליצור את חזית השעון, וגם השאילתות שלWatchFaceMetadataClientמהירות יותר כי אין צורך לקשר אותן לשירות כדי לקבל את המטא-נתונים. (I85bfa) - הוספנו את
InteractiveWatchFaceClient.supportsPendingIntentForTouchEventכדי שהלקוח יוכל לקבוע אם תצוגת השעון תומכת ב-getPendingIntentForTouchEvent. (I0b917) - האפשרויות
WatchFaceMetadataClientו-ListenableWatchFaceMetadataClientכבר לא ניסיוניות. אפשר להשתמש בהם כדי לקבל ביעילות מטא-נתונים של תצוגת השעון, במידת האפשר בלי לפתוח מחבר לתצוגת השעון. (Ibb827) - נוספה תמיכה בספקים של רכיבי תכונה זמינים (complications) מסונכרנים, שבהם רכיב התכונה הזמין מתעדכן בתדירות גבוהה יותר מהרגיל, עד פעם בשנייה כשמסך השעון גלוי ולא במצב אווירה. כדי להשתמש באפשרות הזו, הספק צריך לכלול מטא תג
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSחדש במניפסט שלו ולשנות אתonSynchronousComplicationRequest. בהתאם לאופי של מקור הנתונים, יכול להיות שיהיה צורך גם לשנות את ההגדרות שלonStartSynchronousComplicationRequestsו-onStopInteractiveComplicationRequestsכדי לקבל התראות על המועדים שבהם התוסף עובר למצב אינטראקטיבי וממנו. (I8fe9d)
גירסה 1.0
גרסה 1.0.1
9 בפברואר 2022
androidx.wear.watchface:watchface-*:1.0.1 משוחרר. גרסה 1.0.1 כוללת את השמירות האלה.
תיקוני באגים
- תיקון באג שבו לא מטפלים בצורה נכונה ב-tapAction של
PhotoImageComplicationData(I1cc30)
גרסה 1.0.0
1 בדצמבר 2021
androidx.wear.watchface:watchface-*:1.0.0 משוחרר. גרסה 1.0.0 כוללת את ההצהרות האלה.
תכונות עיקריות בגרסה 1.0.0
החבילה androidx.wear.watchface היא הספרייה המומלצת החדשה לפיתוח תצוגות שעון ל-WearOS. היא כוללת כמה תכונות חדשות שלא היו בספריית התמיכה הקודמת של Wearable.
- הספרייה תומכת ישירות בעיצוב של משתמשים (למשל, שינוי של לוח הצבעים, הסגנון של המחוגים, המראה של סימני השעות וכו') (ראו
androidx.wear.watchface.style). עכשיו קל יותר לפתח עורך של תצוגת שעון באמצעות androidx.wear.watchface.editor, וניתן לערוך את תצוגת השעון דרך האפליקציה הנלווית למערכת בלי צורך לכתוב קוד נוסף. - שיטות מומלצות מובנות. הספרייה יוצרת באופן אוטומטי תוויות תוכן לקוראי מסך עבור התכונות הנוספות (אפשר גם להוסיף תוויות משלכם), וקצב הפריימים יורד באופן אוטומטי כשהסוללה חלשה ולא נטענת כדי לשפר את חיי הסוללה.
- נדרש פחות קוד כדי לפתח אתלוח שעון, במיוחד כשמדובר בתכונות מורכבות שבהן הרבה מהקוד הסטנדרטי הועבר לספרייה.
תיקוני באגים
- תיקון
EditorSession.userStyle.compareAndSet(I6f676) - תיקון עיכובים קצרים מאוד בתצוגת השעון (Iffb97)
- שליחת
InteractiveWatchFaceImpl.onDestroyבשרשור UI (I83340) - תיקון כמה בעיות במקלטי שידור (I7d25f)
גרסה 1.0.0-rc01
3 בנובמבר 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 כוללת את השמירות האלה.
תיקוני באגים
תיקון של dump() (שנקרא על ידי adb shell dumpsys) שנשבר בגלל העברות תהליכים. (087cf9e)
מוודאים שהזמינות של writeDirectBootPrefs נכונה. אנחנו רוצים ש-writeDirectBootPrefs תמיד תרוץ אחרי initStyleAndComplications, אחרת אנחנו עלולים לעכב את ההפעלה של שרשור ממשק המשתמש.(37650ac)
מוודאים שמתבצעת קריאה ל-Renderer.onDestroy. בתרחיש שבו ה-renderer נוצר אבל ההפעלה הראשונית של WF לא הושלמה והתרחיש שבו ה-Engine.onDestroy נקרא, צריך לקרוא ל-Renderer.onDestroy. (f9952dc)
אופטימיזציה/תיקון של isBatteryLowAndNotCharging. התיקון הזה מעביר את ההגדרה הראשונית של isBatteryLowAndNotCharging מוקדם יותר, כך שאפשר לבצע אותה במקביל ל-createWatchFace. בנוסף, אנחנו מקשיבים עכשיו ל-ACTION_POWER_DISCONNECTED. (ddffd80
הערך של InteractiveWatchFaceClientImpl.isConnectionAlive צריך להיות false אחרי סגירה (ab9774e)
גרסה 1.0.0-beta01
27 באוקטובר 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.
גרסה 1.0.0-alpha24
13 באוקטובר 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 משוחרר. גרסה 1.0.0-alpha24 מכילה את ההצהרות האלה.
שינויים ב-API
- הכיתות בחבילה
androidx.wear.watchface.complicationsהועברו לפרויקטwear:watchface:watchface-complicationsחדש. חשוב לזכור: המשמעות היא שאי אפשר לכלול את הספרייה הזו וגם גרסאות אלפא קודמות שלwear:watchface:watchface-complications-data, כי יוצגו שגיאות לגבי כיתות כפולות. (I97195) - השם של Renderer.dump השתנה ל-Renderer.onDump והוספה לו הערה עם @UiThread. (I44845)
- השם של
InteractiveWatchFaceClient.addWatchFaceReadyListenerהשתנה ל-addOnWatchFaceReadyListenerוהשם שלremoveWatchFaceReadyListenerהשתנה ל-removeOnWatchFaceReadyListener. (I48fea) - הפונקציות
getComplicationsPreviewDataו-getComplicationsDataSourceInfoשל EditorSession כבר לא הן פונקציות השהיה, אלא מאפייניStateFlow<>שהערך שלהם הוא null בהתחלה. ב-ListenableEditorSession,getListenableComplicationPreviewDataו-getListenableComplicationsProviderInfoהוסרו לטובת האובייקטים החדשים מסוגStateFlow<>מהכיתה הבסיסית. אם אתם צריכים להאזין לשינויים בקוד Java, מומלץ להשתמש ב-androidx.lifecycle.FlowLiveDataConversions.asLiveDataכדי להמיר ל-LiveData<>. (Ic5483)
גרסה 1.0.0-alpha23
29 בספטמבר 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 משוחרר. גרסה 1.0.0-alpha23 מכילה את ההצהרות האלה.
תכונות חדשות
ספריית חזית השעון היא עכשיו קבוצת ספריות אחת, וכתוצאה מכך הספריות הועברו ותצטרכו לעדכן את הייבוא של gradle באופן הבא:
| מכשיר ישן | חדש |
|---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
שינויים ב-API
- העברת הספריות הנפרדות של
androidx.wearWatchface ו-complications לקבוצת הספריותandroidx.wear.watchface. (b25f3c0) - הוספנו את EditorRequest.canWatchFaceSupportHeadlessEditing כדי לאפשר ללקוח לדעת אם עורך של תצוגת שעון תומך בעריכה ללא גוף (headless). לתשומת ליבכם: יהיו כמה תוצאות שליליות שגויות כי התמיכה נוספה ב-asop/1756809, אבל היא תחזיר את הערך הנכון לכל חזית השעון העתידיות. (ca55590)
- ל-Renderer יש עכשיו את השיטה dump(), שאפשר לשנות כדי להוסיף נתונים מותאמים אישית למידע שנוצר על ידי שירות הפעילות WatchFaceService של מעטפת ABD dumpsys. (95235f9)
- הפונקציה InteractiveWatchFaceClient.addWatchFaceReadyListener מציינת עכשיו את המבצע קודם. (563ac2f)
- ה-StateFlowCompatHelper הוסר. במקום זאת צריך להשתמש ב-asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- לא ניתן יותר לשנות את CurrentUserStyleRepository.userStyle. (I44889)
- השם של WatchFaceReadyListener השתנה ל-OnWatchFaceReadyListener. (Ic12a9)
תיקוני באגים
- צריך להשתמש ב-InteractiveInstanceManager.deleteInstance כדי לקרוא ל-onDestroy. הפעולה הזו נדרשת כדי לוודא שמערכת האיסוף האוטומטי של 'זבל' תאסוף את InteractiveWatchFaceImpl. (fce4af8, b/199485839)