WindowManager
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 22 באפריל 2026 | 1.5.1 | - | - | 1.6.0-alpha03 |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-WindowManager, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר מאגר ה-Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
מגניב
dependencies { implementation "androidx.window:window:1.5.1" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.1" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.1" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.1" // For testing implementation "androidx.window:window-testing:1.5.1" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.1") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.1") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.1") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.1") // For testing implementation("androidx.window:window-testing:1.5.1") }
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.6
גרסה 1.6.0-alpha03
22 באפריל 2026
androidx.window:window-*:1.6.0-alpha03 מופץ. גרסה 1.6.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוספת ממשקי API לשליטה במצב המעורבות. (I98a09, b/489793703)
- שינינו את השם של
transferActivityToWindowAreaל-transferToWindowAreaכדי להבהיר את ההתנהגות כשמפעילים את התכונה. בנוסף, הפעולה הזו מסירה את ההתנהגות שמבוססת על סשן עבור השיטה הזו, כי היא פעולה שמתבצעת אחרי שהתהליך שמבקש אותה מסתיים. (Ie7d6f, b/271644150, b/273807246, b/272064992, b/473870239) - הוספת שיטה בטוחה לקבלת
WindowMetrics(I2adf8, b/449386176) - עדכון שיטות בתוספים של WM למצב מעורבות לשם הבהרה. (I219a4, b/454438323)
- מוסיפים שיטות עזר כדי ליצור את
WindowSizeClassSetsבפורמט של רשת. (I4d623, b/444174274) - הוספת API כדי לקבל מצב מעורבות. (I9fef2, b/423990404)
- הוספנו מאזינים מבוססי-callback ישירות ל-
WindowLayoutInfoוהוצאנו משימוש אתWindowInfoTrackerCallbackAdapter. (I1ff17, b/423990404) - הוצאה משימוש של בנאי
WindowLayoutInfoבתוספים. (I6ab65, b/423990404) - הוספת תמיכה בתוספים לדיווח על מצב ההפעלה. (I66211, b/423990404)
תיקוני באגים
- עדכון של Compose
compileSdkל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743)
גרסה 1.6.0-alpha01
19 בנובמבר 2025
androidx.window:window-*:1.6.0-alpha01 מופץ. גרסה 1.6.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים שיטות עזר כדי ליצור את
WindowSizeClassSetsבפורמט של רשת.
שינויים ב-API
- מוסיפים שיטות עזר כדי ליצור את
WindowSizeClassSetsבפורמט של רשת. (I4d623, b/444174274)
גירסה 1.5
גירסה 1.5.1
19 בנובמבר 2025
androidx.window:window-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה
ClassCastExceptionשמתרחשת במכשירים מסוימים (4d58979)
גרסה 1.5.0
24 בספטמבר 2025
androidx.window:window-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.4.0:
- מוסיפים נקודות עצירה (breakpoints) של
WindowSizeClassלגדלים Large ו-XLarge. (I40d85) - מרחיבים את החישוב
WindowMetricsלהקשר של האפליקציה. (I8eeeb, b/360934048) - צריך לספק Getter כדי לאפשר גישה ישירה אל
WindowLayoutInfo(Ie9513) - הוספת API לשמירה אוטומטית של מצב ההטמעה ולשחזור אוטומטי של מצב ההטמעה כשמפעילים מחדש את תהליך האפליקציה. (Ie0295)
- הסרה של API ניסיוני של
WindowInsets. (I68a71)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שפונקציית
EmbeddingRuleהחזירה ערכים שונים שלhashCodeבמקרים מסוימים. (I748cc) - תוקנה בעיה שבה שגיאות בהטמעה של המכשיר עלולות לגרום ל
NullPointerException. - תיקנו את הבעיה שבה בדיקות הבטיחות של
ActivityEmbeddingנכשלו בגלל ש-Proguard הסיר מחלקות שלא נעשה בהן שימוש.
External Contribution
- הוספת כל פלטפורמות KMP אל
window-core(If3d7c)
גרסה 1.5.0-rc01
27 באוגוסט 2025
androidx.window:window-*:1.5.0-rc01 מופץ. גרסה 1.5.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה שגיאות בהטמעה של המכשיר עלולות לגרום ל
NullPointerException. - תיקנו את הבעיה שבה בדיקות הבטיחות של
ActivityEmbeddingנכשלו בגלל ש-Proguard הסיר מחלקות שלא נעשה בהן שימוש.
גרסה 1.5.0-beta02
13 באוגוסט 2025
androidx.window:window-*:1.5.0-beta02 מופץ. גרסה 1.5.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- תיקוני באגים קלים.
External Contribution
- הוספת כל פלטפורמות KMP אל
window-core(If3d7c)
גרסה 1.5.0-beta01
2 ביולי 2025
androidx.window:window-*:1.5.0-beta01 מופץ. גרסה 1.5.0-beta01 מכילה את השמירות האלה.
גרסה 1.5.0-alpha02
7 במאי 2025
androidx.window:window-*:1.5.0-alpha02 מופץ. גרסה 1.5.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- מוסיפים נקודות עצירה (breakpoints) של
WindowSizeClassלגדלים Large ו-XLarge. (I40d85) - מרחיבים את החישוב
WindowMetricsלהקשר של האפליקציה. (I8eeeb, b/360934048) - צריך לספק Getter כדי לאפשר גישה ישירה אל
WindowLayoutInfo(Ie9513) - הוספת API לשמירה אוטומטית של מצב ההטמעה ולשחזור אוטומטי של מצב ההטמעה כשמפעילים מחדש את תהליך האפליקציה. (Ie0295)
- הסרה של API ניסיוני של
WindowInsets. (I68a71) - הסתרת כמה יצרנים (I87b8d)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שפונקציית
EmbeddingRuleהחזירה ערכים שונים שלhashCodeבמקרים מסוימים. (I748cc)
גרסה 1.5.0-alpha01
12 במרץ 2025
androidx.window:window-*:1.5.0-alpha01 מופץ. גרסה 1.5.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- גרסה ראשונית של 1.5.0 הבאה.
גרסה 1.4
גרסה 1.4.0
20 במאי 2025
androidx.window:window-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.3.0
- הטמעת פעילות
- API להתאמה אישית של אנימציות ההפעלה
- קו מפריד אינטראקטיבי
ActivityStackהצמדה- עמעום של תיבת דו-שיח במסך מלא
- התקשרות חוזרת עם פרטי חלון הפעילות המוטמע
- ניהול
ActivityStackמשופר - הפעלת פעילות ב
ActivityStackמסוים
WindowMetricsCalculator- שיפור התמיכה בבדיקות
WindowMetrics- שיטות נוחות לחישוב
withDpו-heightDp - עדכון בדיקת הגבולות ל-
isAtLeastושימוש בגבולות התחתונים כדי לתמוך בהוספת ערכים חדשים
- שיטות נוחות לחישוב
WindowSizeClass- הוספת דרך לחישוב מ-
WindowMetrics
- הוספת דרך לחישוב מ-
WindowInfoTracker- הוספת API לזיהוי התנוחות הנתמכות במכשיר
גרסה 1.4.0-rc02
23 באפריל 2025
androidx.window:window-*:1.4.0-rc02 מופץ. גרסה 1.4.0-rc02 מכילה את השמירות האלה.
תיקוני באגים
- תיקון קריסה של ProGuard עבור
ActivityEmbedding.
גרסה 1.4.0-rc01
12 במרץ 2025
androidx.window:window-*:1.4.0-rc01 מופץ. גרסה 1.4.0-rc01 מכילה את השמירות האלה.
תכונות חדשות
- עדכונים ב-API של
WindowSizeClass. - עדכונים בממשקי API להטמעת פעילויות.
גרסה 1.4.0-beta02
12 בפברואר 2025
androidx.window:window-*:1.4.0-beta02 מופץ. גרסה 1.4.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- תיקון הערה שהייתה רק בנכס ולא בשיטת ה-getter.
גרסה 1.4.0-beta01
15 בינואר 2025
androidx.window:window-*:1.4.0-beta01 מופץ. גרסה 1.4.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- הוספת API כדי לאפשר התאמה אישית של
ActivityEmbeddingאנימציות. - הרחבת
WindowMetricsCalculatorממשקי ה-API לבדיקה כדי לאפשר זיוף של מדדי החלון.
שינויים ב-API
- הסתרת כמה יצרנים (I87b8d)
- אפשר לאפליקציות להתאים אישית
ActivityEmbeddingאנימציות (If31a8) - נוספה תמיכה ביעד KMP וביעד kotlin 1.9 (Icf15d, b/364652024)
watchosDeviceArm64 - חשיפת ממשקי
WindowMetricsCalculatorAPI. (I1cebf)
תיקוני באגים
- הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחים ב-Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זו ברירת המחדל החל מגרסה 2.1.0 של המהדר ב-Kotlin). (Ie69ac, b/326456246)
גרסה 1.4.0-alpha05
16 באוקטובר 2024
androidx.window:window-*:1.4.0-alpha05 מופץ. גרסה 1.4.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים פונקציות נוחות כדי לקבל את
widthDpואתheightDpמ-WindowMetrics.
שינויים ב-API
- הוספה של
widthDpושלheightDpאלWindowMetrics. (Ide026) - הסרה של API ניסיוני של
WindowInsets. (I68a71) - עדכון שמות השיטות לבדיקת גבולות ל-
isAtLeast(Ib0ab7)
גרסה 1.4.0-alpha04
2 באוקטובר 2024
androidx.window:window-*:1.4.0-alpha04 מופץ. גרסה 1.4.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוספה שיטה לחישוב
WindowSizeClassמתוךWindowMetrics. (874dba) - שינינו את השיטות
WindowSizeClassל-containsWidthDp, ל-containsHeightDpול-containsWindowSizeDpלשם הבהרה. (fa760d) - המרת
WindowAreaControllerלמחלקת בסיס מופשטת. (I90893)
תיקוני באגים
- הוספת תמיכה בגבולות יחסיים כשיוצרים בדיקה
FoldingFeature. (2e6b3e) - תיקוני באגים כלליים כשבוחרים
WindowSizeClass.
גרסה 1.4.0-alpha03
18 בספטמבר 2024
androidx.window:window-*:1.4.0-alpha03 מופץ. גרסה 1.4.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים שיטת עזר כדי לקבל
WindowSizeClassמ-WindowMetrics. (I83f1f) - שינוי השם של
isAtLeastלcontainsBreakpoint. (I85b47) - הוספת עומס יתר ל-
computeWindowSizeClassבאמצעות מספרים ממשיים. (I3dcb2, b/364677934, b/364677802, b/364680886)
תיקוני באגים
- הוספת נקודות עצירה חסרות לקבוצת נקודות העצירה שמוגדרת כברירת מחדל
WindowSizeClass. - תוקן באג שגרם לכך שבמקרים מסוימים לא נבחרו מאפיינים קומפקטיים בצורה נכונה.
גרסה 1.4.0-alpha02
4 בספטמבר 2024
androidx.window:window-*:1.4.0-alpha02 מופץ. גרסה 1.4.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
הוספת תמיכה ב-WindowSizeClass בהתאמה אישית.
- פותחים את ה-constructor של
WindowSizeClassכדי שהמפתחים יוכלו להשתמש ב-constructor משלהם. - הוספת
isAtLeastשיטות עזר כדי שמפתחים יוכלו לעבד טווח של ערכיWindowSizeClass. - מוסיפים פונקציית הרחבה ב-
Set<WindowSizeClass>כדי לחשב את ההתאמה הכי טובה מתוך הקבוצה. - מוסיפים קבועים לנקודות העצירה המומלצות ל-Android.
- מוסיפים את נקודת העצירה (breakpoint) שמתאימה לנקודות העצירה המומלצות ל-Android.
שינויים ב-API
- עדכון שמות השיטות של הגבולות עבור
WindowSizeClass. (If89a6) - עדכון של API
WindowSizeClassכדי לתמוך בהוספה של ערכי נקודות עצירה חדשים בעתיד. במקום גבולות מוחלטים, אנחנו משתמשים בגבולות התחתונים וממליצים למפתחים להשתמש בבדיקות של הגבול התחתון כשמעבדיםWindowSizeClass. הגרסאות הקיימות שלWindowWidthSizeClassו-WindowHeightSizeClassיצאו משימוש כי לא יפותחו יותר. (I014ce)
גרסה 1.4.0-alpha01
7 באוגוסט 2024
androidx.window:window-*:1.4.0-alpha01 מופץ. גרסה 1.4.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- הצמדת ActivityStack מאפשרת לאפליקציות להצמיד את התוכן במאגר אחד ולבודד את הניווט שלו מהמאגר השני.
- הקו האינטראקטיבי מאפשר לאפליקציות להציג קו קבוע או קו שניתן לגרור בין שתי הפעילויות בתצוגה מפוצלת.
- האפשרות 'הצללה של תיבת דו-שיח במסך מלא' מאפשרת לאפליקציות לציין את אזור ההצללה של תיבת הדו-שיח, כך שיוצלל כל חלון המשימה או רק המאגר שבו מוצגת תיבת הדו-שיח.
- החזרת מידע על חלון פעילות מוטמע מאפשרת לאפליקציות לקבל עדכונים שוטפים על חלון הפעילות המוטמע.
- הטמעת רקע לאנימציה מאפשרת לאפליקציות לציין את הרקע של האנימציה, וכך לשפר את האיכות של אנימציית המעבר כשמשתמשים ב-
ActivityEmbedding. - שיפור בניהול של ActivityStack מאפשר לאפליקציות לקבל יותר שליטה על
ActivityStacksכשמשתמשים ב-ActivityEmbedding, כולל: - הפעלת פעילות ב
ActivityStackמסוים - סיום של
ActivityStack
שינויים ב-API
API חדש
WindowInfoTracker#supportedPostures:- API שקובע אם המכשיר תומך במצב שולחן למכשירים מתקפלים. Adds WindowAreaSessionPresenter#getWindow
הוספת ממשקי API לתמיכה בהצמדה
ActivityStack:SplitPinRuleכיתהSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
הוספת ממשקי API כדי להפעיל ולהגדיר את המחיצה האינטראקטיבית
DividerAttributesכיתהSplitAttributes.Builder#setDividerAttributes
הוספת ממשקי API להגדרת
EmbeddingConfigurationו-DimAreaBehaviorלתיבות דו-שיחEmbeddingConfigurationכיתהDimAreaBehaviorכיתהActivityEmbeddingController#setEmbeddingConfiguration
הוספת ממשקי API לקבלת עדכונים על מידע בחלון הפעילות המוטמע
EmbeddedActivityWindowInfoכיתהActivityEmbeddingController#embeddedActivityWindowInfo
הוספת ממשקי API להגדרת הרקע של אנימציית ההטמעה
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
הוספת ממשקי API כדי לסיים
ActivityStacksActivityEmbeddingController#finishActivityStacks
הוספת ממשקי API להגדרת ההפעלה
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
ממשקי ה-API הבאים יציבים ולא ניסיוניים יותר:
ActivityEmbeddingController#invalidateVisibleActivityStacks(הועבר מ-SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
הוספת ממשקי API לגרסה 1.4. (I56774)
תיקוני באגים
- תוקן באג במכשירים מסוימים שגרם לכך שהערך UNAVAILABLE הוחזר במקום ACTIVE כשסשן היה פעיל.
- הוסרה התמיכה ב-
transferActivityToWindowAreaבמכשירים עםvendorApiLevelבערך 2 בגלל תמיכה לא יציבה ב-API. - הוספנו API שמאפשר לגרור את הקו המפריד הניתן לגרירה של הטמעת הפעילות כדי להציג את הפעילות במסך מלא. (I645c9)
- אפשר לאפליקציות להשבית אנימציות של
ActivityEmbeddingבאמצעות פרמטרים של אנימציה ל-SplitAttributes. (Idc01a) - הסרנו את האפשרות ליצור באופן ידני תרשים של הגישה לממשקי API חדשים של הפלטפורמה, כי זה קורה באופן אוטומטי באמצעות מידול API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל R8 גרסה 3.3) ובכל הבנייה כשמשתמשים ב-AGP 8.1 ואילך (למשל D8 גרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלץ לעדכן לגרסה 8.1 ואילך של D8. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
- אפשר לתת לתוספים פרמטרים של אנימציה ל-
SplitAttributesכדי שהמכשיר יוכל להשתמש בהם למעברים של אנימציה. (Iede00) - הסתרת ממשקי API של שכבות-על (Ic4251)
- הוספת ממשקי API להגדרת הקו המפריד הקבוע או הניתן לגרירה עבור הפיצול (Ia7a78)
- הוספת צפיפות ל-
WindowMetrics(Id6723) - מוסיפים API כדי לקבל את
SupportedPostures. (If557a) - הסרת
setLaunchingActivityStackמ-API ניסיוני (I191cf) - Introduce
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) - הוצאה משימוש של
#getTokenוהוספה של#getActivityStackToken(Ie0471) - הוספנו מתאם לקריאה חוזרת ל-API של זרימת
embeddedActivityWindowInfo(Ida77f) - הוספת מתאם של קריאה חוזרת ל-API של זרימת overlayInfo (I7264f)
- הוספנו את
WindowSdkExtensionsRuleכדי לבטל אתextensionsVersionלצורך בדיקה. (Ifb928) - – העברה של
#setLaunchingActivityStackל-Bundle כדי שתהיה תאימות לשימושים ב-ActivityOptionsCompat.- המשתמשים צריכים להעביר את הערך
activityOptions.toBundleבמקום את הערךActvityOptionsעצמו. - הסרה של
#setLaunchingActivityStack(Activity). המשתמשים צריכים לעבור לשימוש ב-ActivityEmbeddingController#getActivityStac(Activity)כדי לקבלActivityStackולהעביר אתActivityStackאל#setLaunchingActivityStack. (Ie0ccc)
- המשתמשים צריכים להעביר את הערך
- – הוספנו את
ActivityStack.Tokenו-SpltInfo.Tokenכמזהה לתקשורת בין WM Jetpack לבין תוספים.- הוצאה משימוש או החלפה של ממשקי API כדי לקבל או להחזיר טוקן במקום IBinder. (I12b24)
- – להציג את
ActivityEmbeddingController#invalidateVisibleActivityStacks- הסרה של
SplitController#invalidateTopVisibleSplitAttributesכי התכונה אוחדה עם#invalidateVisibleActivityStacks(I02ef5)
- הסרה של
- – הוספת API להגדרת הטמעה. (I59a4a)
- – הוספה של הצמדה/ביטול הצמדה לראש הדף
ActivityStackandroidx.Windowממשקי API- עדכון אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול הצמדה בחלק העליון
ActivityStack(I24dd3)
- עדכון אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול הצמדה בחלק העליון
- הוספה מחדש של
#finishActivityStacksו-ActivityEmbeddingOptions(Ic1ab3) - הסרה של ממשקי API לא יציבים. (Ibc534, b/302380585)
גרסה 1.3
גרסה 1.3.0
29 במאי 2024
androidx.window:window-*:1.3.0 מופץ. גרסה 1.3.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.2.0
- תמיכה ב-Kotlin Multiplatform עבור Window Size Classes.
גרסה 1.3.0-rc01
14 במאי 2024
WindowManager Jetpack 1.3 כולל תמיכה ב-Kotlin Multiplatform לתכונות של WindowSizeClass וגם תיקוני באגים רבים.
androidx.window:window-*:1.3.0-rc01 מופץ. גרסה 1.3.0-rc01 מכילה את השמירות האלה.
גרסה 1.3.0-beta02
1 במאי 2024
androidx.window:window-*:1.3.0-beta02 מופץ. גרסה 1.3.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- הסרת התמיכה ביצירה ובשימוש ב
WindowSizeClassמותאמים אישית. (Id1143)
תיקוני באגים
- תוקנה בעיה
KotlinReflectionInternalErrorשנגרמה כתוצאה מהסרת קבצים מסוימים על ידי proguard בהטמעות מסוימות של מכשירים. (I01b02)
גרסה 1.3.0-beta01
3 באפריל 2024
androidx.window:window-*:1.3.0-beta01 מופץ. גרסה 1.3.0-beta01 מכילה את השמירות האלה.
גרסה 1.3.0-alpha03
6 במרץ 2024
androidx.window:window-*:1.3.0-alpha03 מופץ. גרסה 1.3.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- פיצול
WindowSizeClassUtilלשיטות ממוקדות יותר. (Ie9292) - שחזור
WindowSizeClass#compute(I21355, b/324293374)
תיקוני באגים
- תוקנה קריסה שבה ההקשר שסופק לא נפרט בצורה נכונה. (94d10ce , b/318787482)
גרסה 1.3.0-alpha02
7 בפברואר 2024
androidx.window:window-*:1.3.0-alpha02 מופץ. גרסה 1.3.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
- בוצעו עדכונים בממשק ה-API של Window Size Class כדי לשפר את הגמישות של מפתחים שרוצים להשתמש במחלקות גודל משלהם.
שינויים ב-API
- הוספת מגבלות גובה לבורר הרוחב. (I23393)
- הוספת פונקציות עזר לבחירת
WindowSizeClassמתוך קבוצה. הוספנו פונקציות ניסיוניות לדירוג, כדי שמפתחים יוכלו לכתוב סלקטורים משלהם. מוסיפים פונקציית הרחבה של בורר כדי לבחור אתWindowSizeClassהרחב ביותר בתוך גבול נתון. (I0c944) - פותחים את ה-constructor
WindowSizeClassכדי להוסיף נקודות עצירה מותאמות אישית. (Ic1ff3) - הוספנו פונקציית נוחות ליצירת סיווג גודל מרוחב, גובה וצפיפות. (If67f4)
תיקוני באגים
- תיקון חריגה כשערך מספרי מעוגל ל-0. (272ffac)
גרסה 1.3.0-alpha01
15 בנובמבר 2023
androidx.window:window-*:1.3.0-alpha01 מופץ. גרסה 1.3.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeatureיציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכים מזויפים של
ActivityEmbeddingיציבים עכשיו. - הפונקציה
WindowLayoutInfoPublisherRuleמדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext. - התכונה 'קיפול דוחות' מאגדת נתונים לפרמטרים
UiContext.WindowInfoTracker - הצגת גרסת התוספים במכשיר.
WindowPropertiesקבועים לשינויים בהגדרות של משתמשים באפליקציות:-
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE— מודיע למערכת שהאפליקציה לא משתמשת בביטול ברירת המחדל של תאימות יחס הגובה-רוחב שמוצג למשתמש. PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE— מודיע למערכת שהאפליקציה לא משתמשת באפשרות המסך המלא של הגדרות החלפת יחסי הגובה-רוחב של המשתמש
-
גרסה 1.2
גרסה 1.2.0
15 בנובמבר 2023
androidx.window:window-*:1.2.0 מופץ. גרסה 1.2.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.1.0
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeatureיציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכים מזויפים של
ActivityEmbeddingיציבים עכשיו. - הפונקציה
WindowLayoutInfoPublisherRuleמדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext. - התכונה 'קיפול דוחות' מאגדת נתונים לפרמטרים
UiContext.WindowInfoTracker - הצגת גרסת התוספים במכשיר.
גרסה 1.2.0-rc01
1 בנובמבר 2023
androidx.window:window-*:1.2.0-rc01 מופץ. גרסה 1.2.0-rc01 מכילה את השמירות האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeatureיציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכים מזויפים של
ActivityEmbeddingיציבים עכשיו. - הפונקציה
WindowLayoutInfoPublisherRuleמדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext. - התכונה 'קיפול דוחות' מאגדת נתונים לפרמטרים
UiContext.WindowInfoTracker - הצגת גרסת התוספים במכשיר.
גרסה 1.2.0-beta04
18 באוקטובר 2023
androidx.window:window-*:1.2.0-beta04 מופץ. גרסה 1.2.0-beta04 מכילה את השמירות האלה.
שינויים ב-API
- הסרה של ממשקי API לא יציבים. (Ibc534, b/302380585)
גרסה 1.2.0-beta03
20 בספטמבר 2023
androidx.window:window-*:1.2.0-beta03 מופץ. גרסה 1.2.0-beta03 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים
RequiresApiבדיקות לממשקי API שנדרשת גרסה ספציפית של תוספים כדי שהם יפעלו בצורה תקינה. - מוסיפים API כדי לחשוף את גרסת התוספים במכשיר.
שינויים ב-API
- הוספת הערה לגבי גרסת התוסף הנדרשת של Windows SDK בממשקי API ציבוריים.
- מסירים את
isXXXSupportedברכיב Activity Embedding. (Ie3dae)
- מסירים את
- הוספנו את
WindowSdkExtensionsכדי לדווח על גרסת התוסף במכשיר.- הוספנו את
RequiresWindowSdkExtensionכדי לציין את גרסת התוסף המינימלית הנדרשת. (I05fd4)
- הוספנו את
- הופך את
WindowAreaInfo#getCapabilityללא ניתן לאיפוס. (I17048)
גרסה 1.2.0-beta01
26 ביולי 2023
androidx.window:window-*:1.2.0-beta01 מופץ. גרסה 1.2.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- חשיפת ממשקי API ניסיוניים של חלונות לגישה למסך האחורי.
- ממשקי ה-API לבדיקה ליצירת
FoldingFeatureיציבים עכשיו. - ממשקי ה-API לבדיקה להגדרת ערכים מזויפים של
ActivityEmbeddingיציבים עכשיו. - הפונקציה
WindowLayoutInfoPublisherRuleמדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext. - התכונה 'קיפול דוחות' מאגדת נתונים לפרמטרים
UiContext.WindowInfoTracker
שינויים ב-API
- סימון ממשקי API
WindowAreaכניסיוניים כדי לאפשר המשך שינויים בממשקי ה-API לקראת גרסה יציבה ב-1.3 (I857f5) - קובצי API עודכנו כדי להוסיף הערות על השבתת תאימות (I8e87a, b/287516207)
גרסה 1.2.0-alpha03
21 ביוני 2023
androidx.window:window-*:1.2.0-alpha03 מופץ. גרסה 1.2.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- הסרה של ממשקי API שהוצאו משימוש מממשק ה-API.
- הוספת ממשקי API לתמיכה בהצגה בו-זמנית.
- מוסיפים נכס כדי לבטל את ההסכמה לשינוי גודל בכפייה.
- הוספת נכס כדי לבטל את ההגדרה של יחס הרוחב-גובה המינימלי.
- הוספנו שיפורים ל-
ActivityEmbeddingRuleכדי לתמוך בבדיקות יחידה של הטמעת פעילויות.
שינויים ב-API
תיקוני באגים
- הוספת מאפיין תאימות לביטול הסכמה לשינוי גודל בכוח (Ie7ab1)
- הסרת
SESSION_STATE_CONTENT_INVISIBLEמממשק התוספים. (I6ed19) - הוספנו שיפורים ל-
ActivityEmbeddingRuleכדי לתמוך בבדיקות יחידה של הטמעת פעילויות. (I8d6b6) - הוספת מאפיין תאימות לביטול ההסכמה לשימוש ביחס גובה-רוחב מינימלי. (I66390)
- הסרה של ממשקי WindowArea API שהוצאו משימוש (Ieb67c)
- שינוי השם של מאפיין הלולאה של בקשת שינוי הכיוון ל-
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED. (Ie2fbd) - עדכון שמות הקבועים של סשן אזור החלון (I83675)
- הוספת מאפיין תאימות לביטול הסכמה שמתעלם מלולאת בקשות של כיוון כשמזהים אותה (I0a7a2)
- הוספנו
WindowAreaComponent#STATUS_ACTIVEכדי לציין שהתכונה כבר פעילה. (I62bc3) - הוספת ממשקי API של
RearDisplayPresentationMode(I0401c) - הסרת API להסרת צבע הרקע לגרסה יציבה. (I34c3e)
- הסתרת ממשקי API של אזור החלון. (I39de0)
- מוסיפים שיטות לשינוי הערך של
SplitInfoב-SplitController. מוסיפים שיטות בדיקה כדי ליצור כפילויות שלSplitInfoושלActivityStack. (Icd69f) - הופכים את התג לאופציונלי עבור
ActivityRule.Builder. (Ib0b44) - הסרה של
RatioSplitType, ExpandContainersSplitוHingeSplitType. הםSplitTypeעכשיו.- מחליפים את
#splitEqually(),#expandContainers()ו-#splitByHingeבקבועיםSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDו-SPLIT_TYPE_HINGE - הסרת הפונקציונליות להגדרת סוג חלוקה חלופי של סוג חלוקת הציר. אם אי אפשר להחיל את סוג הפיצול של הציר בגלל המצב הנוכחי של המכשיר או החלון, המערכת תחזור לפצל את מאגר המשימות של האב באופן שווה. משתמשים ב-
SplitController#setSplitAttributesCalculatorכדי להתאים אישית את סוג הפיצול החלופי. (Ifcc59)
- מחליפים את
- הוצאה משימוש
add/removeSplitCallback- העברה של
add/removeSplitCallbackאלSplitControllerCallbackAdapter - הוספת
Flowתמיכה כדי לקבל רשימה שלSplitInfo(I7f1b6)
- העברה של
- הוספת כלל בדיקה ל-
ActivityEmbeddingController(I42e9b) - שינוי השם של
ActivityOptionsCompatל-ActivityEmbeddingOptions(I89301) - מוסיפים את
splitSupportStatusכדי לציין אם אפשר להטמיע פעילות. (I10024) - הוספנו את
SplitAttributes.BackgroundColorכדי לייצג טוב יותר את הערך שלDEFAULT. הבהרה שאין תמיכה בצבע רקע לא אטום של אנימציה, ולכן כל הצבעים הלא אטומים יטופלו כברירת המחדל, כלומר ייעשה שימוש בצבע הרקע הנוכחי של חלון העיצוב. (Ic6b95) - מחליפים את
alwaysAllow()ואתalwaysDisallow()ב-ALWAYS_ALLOWוב-ALWAYS_DISALLOW. (I3057b) - הוספת ממשקי API ל-
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - מוסיפים
TestActivityStackכדי ליצורActivityStackלבדיקה- מוסיפים
TestSplitInfoכדי ליצורSplitInfoלבדיקה. (I8e779)
- מוסיפים
- הוספת דרך ליצירת
SplitAttributesCalculatorParamsמזויף כדי שמפתחים יוכלו לאמת אתSplitAttributesCalculatorהמותאם אישית שלהם (Id4a6e) - הוספה של
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)ו-WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)(I66c7f)
גרסה 1.2.0-alpha02
7 ביוני 2023
androidx.window:window-*:1.2.0-alpha02 מופץ. גרסה 1.2.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
- עדכון של API לבדיקה כדי להוסיף קבוע לתכונות קיפול לא מוגדרות.
- החלפת הערך באמצעות
WindowLayoutInfoPublishRuleתחליף את כל הערכים שלwindowLayoutInfo, כולל הערכים של Context based API.
שינויים ב-API
- הוספת קבוע לתכונה לא מוגדרת של קיפול במרכז. (I7530c)
תיקוני באגים
- צריך לעדכן את
WindowLayoutInfoPublishRuleכדי לתמוך בשינויים ב-Contextעל סמךWindowLayoutInfo. (I2037a)
גרסה 1.2.0-alpha01
24 במאי 2023
androidx.window:window-*:1.2.0-alpha01 מופץ. גרסה 1.2.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
שיפור היציבות של ממשקי API לבדיקות שקשורות להטמעת פעילויות ול-WindowLayoutInfoTracker. גרסה ActivityEmbeddingRule קודמה לגרסה יציבה.
גרסה WindowMetricsCalculatorRule קודמה לגרסה יציבה.
פונקציות השירות ליצירת FoldingFeature לבדיקה עברו לגרסה יציבה.
שינויים ב-API
- הוספנו שיפורים ל-
ActivityEmbeddingRuleכדי לתמוך בבדיקות יחידה של הטמעת פעילויות. (I8d6b6) -
WindowMetrisCalculatorTestRuleיציב ומאפשר מדדי stub לבדיקות JVM. מומלץ להשתמש באמולטור כדי לקבל תוצאות מדויקות. - הוספנו יציבות ל-APIs של בדיקות ב-
WindowLayoutInfoכדי לתמוך בבדיקות JVM. (Ie036e) - מוסיפים
IntRangeלערכים של תכונת קיפול הבדיקה. (I69f7d)
גרסה 1.1
גרסה 1.1.0
7 ביוני 2023
androidx.window:window-*:1.1.0 מופץ. גרסה 1.1.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.0.0
הטמעה של פעילות
- המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDנוסף כמאפיין בוליאני של התג<application>בקובץ מניפסט של אפליקציה. - הוצאנו משימוש את
isSplitSupportedוהחלפנו אותו ב-splitSupportStatusכדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה. - נוספה המחלקה המקוננת
SplitController.SplitSupportStatusכדי לספק קבועים של מצב לנכסsplitSupportStatus. - בוצע רפקטורינג של
SplitControllerלמספר מודולים:-
ActivityEmbeddingControllermodule forActivityorActivityStackrelated APIs. - הועבר
isActivityEmbeddedמ-SplitControllerאלActivityEmbeddingController. - מודול
RuleControllerלפעולות שקשורות ל-EmbeddingRule: - הוסרו ממשקי ה-API
SplitController: clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()- נוספו ממשקי ה-API
RuleController: -
addRule()– מוסיף כלל או מעדכן את הכלל עם אותו תג. -
removeRule()— מסיר כלל מהאוסף של כללים רשומים. -
setRules()— מגדיר אוסף של כללים. -
clearRules()— מסיר את כל הכללים הרשומים. -
parseRules()— מנתח כללים מהגדרות כללים ב-XML.
-
- כל המודולים דורשים הקשר לאתחול באמצעות method
#getInstance(), כולל:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatioכדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס הגובה-רוחב של התצוגה. - הוספנו את המחלקה
SplitAttributesכדי להגדיר את פריסת המסך המפוצל. - הוספנו פונקציות של מחשבון
SplitAttributesל-SplitControllerכדי להתאים אישית את פריסות המסך המפוצל:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()-
isSplitAttributesCalculatorSupported()כדי לבדוק אם ממשקי ה-API שלSplitAttributesCalculatorנתמכים במכשיר
- נוסף שדה
EmbeddingRule#tag. - עדכוני API ב-
SplitRule:- נוסף
defaultSplitAttributes– מגדיר את פריסת ברירת המחדל של פיצול המסך; מחליף אתsplitRatioואתlayoutDirection. - נוספה תרגום של מאפייני ה-XML
splitRatioו-splitLayoutDirectionאלdefaultSplitAttributes. - הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
- נוסף
minHeightDpעם ערך ברירת מחדל של 600dp. - הערך של
minWidthהשתנה ל-minWidthDpעם ערך ברירת המחדל 600dp. - הערך של
minSmallestWidthהשתנה ל-minSmallestWidthDpעם ערך ברירת המחדל 600dp. - נוסף
maxAspectRatioInHorizontalעם ערך ברירת המחדלALWAYS_ALLOW. - נוסף
maxAspectRatioInPortraitעם ערך ברירת מחדל 1.4. - הוגדר
FinishBehaviornested class כדי להחליף קבועים של התנהגות סיום. - השינויים בנכס הוחלו על המחלקה המקוננת Builder של
SplitPairRuleו-SplitPlaceholderRule.
- נוסף
- החלפנו את
SplitInfo#getSplitRatio()ב-SplitInfo#getSplitAttributes()כדי לספק מידע נוסף שקשור לפיצול.
WindowLayout
- הוספנו תמיכה ניסיונית בהקשר של ממשק משתמש שאינו פעילות ב-
WindowInfoTracker. - נוסף הקשר ניסיוני של ממשק משתמש ללא פעילות אל
WindowMetricsCalculator.
שלבי ההעברה
- כדי להפעיל הטמעה של פעילויות ולהציג פעילויות בתצוגה מפוצלת, האפליקציות צריכות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDלתג<application>במניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />כך המערכת יכולה לבצע אופטימיזציה של התנהגויות הפיצול עבור אפליקציה מראש. SplitInforatio- בודקים אם המסך המפוצל הנוכחי מוצג בערימה:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - בודקים את היחס הנוכחי:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- בודקים אם המסך המפוצל הנוכחי מוצג בערימה:
- העברות של SplitController:
- התפקיד של
SplitController.getInstance()שונה על ידיSplitController.getInstance(Context). - התפקיד של
SplitController.initialize(Context, @ResId int)שונה על ידיRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)). - התפקיד של
SplitController.getInstance().isActivityEmbedded(Activity)שונה על ידיActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity). - התפקיד של
SplitController.getInstance().registerRule(rule)שונה על ידיRuleController.getInstance(Context).addRule(rule). - התפקיד של
SplitController.getInstance().unregisterRule(rule)שונה על ידיRuleController.getInstance(Context).removeRule(rule). - התפקיד של
SplitController.getInstance().clearRegisteredRules()שונה על ידיRuleController.getInstance(Context).clearRules(). - התפקיד של
SplitController.getInstance().getSplitRules()שונה על ידיRuleController.getInstance(Context).getRules().
- התפקיד של
SplitRuleproperty migrations:- התגים
minWidthו-minSmallestWidthמשתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )או פשוט לחלק אתminWithפיקסלים ב-displayMetrics#density.
- התגים
- צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum
FinishBehavior:- התפקיד של
FINISH_NEVERשונה על ידיFinishBehavior.NEVER. - התפקיד של
FINISH_ALWAYSשונה על ידיFinishBehavior.ALWAYS. - התפקיד של
FINISH_ADJACENTשונה על ידיFinishBehavior.ADJACENT.
- התפקיד של
- צריך להעביר את כיוון הפריסה אל
SplitAttributes.LayoutDirection:- התפקיד של
ltrשונה על ידיSplitAttributes.LayoutDirection.LEFT_TO_RIGHT. - התפקיד של
rtlשונה על ידיSplitAttributes.LayoutDirection.RIGHT_TO_LEFT. - התפקיד של
localeשונה על ידיSplitAttributes.LayoutDirection.LOCALE. - צריך להעביר את
splitRatioאלSplitAttributes.SplitType.ratio(splitRatio).
- התפקיד של
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.-
setLayoutDirection(layoutDirection)ו-setSplitRatio(ratio)שינויים ב-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - הפונקציות
setFinishPrimaryWithSecondaryו-setFinishSecondaryWithPrimaryמקבלות את הקבועים שדומים ל-enumFinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule. - אפשר להשתמש ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)כדי להציג פיצולים במכשירים לאורך.
SplitPlaceholder.Buildermigrations:- יש לו רק פרמטרים של
filtersושלplaceholderIntent. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים במאמר בנושא 'העברות של SplitPairRule.Builder'. - הפונקציה
setFinishPrimaryWithPlaceholderמקבלת קבועים דמויי enumFinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule. - הערכים
setLayoutDirection(layoutDirection)ו-setSplitRatio(ratio)משתנים ל:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)כדי להציג פיצולים במכשירים במצב אנכי.
- יש לו רק פרמטרים של
גרסה 1.1.0-rc01
10 במאי 2023
androidx.window:window-*:1.1.0-rc01 מופץ. גרסה 1.1.0-rc01 מכילה את השמירות האלה.
תכונות חדשות
- השקת
ActivityEmbeddingכממשק API יציב. - תיקוני באגים שונים.
גרסה 1.1.0-beta02
5 באפריל 2023
androidx.window:window-*:1.1.0-beta02 מופץ. גרסה 1.1.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- תיקונים פנימיים וניקוי.
גרסה 1.1.0-beta01
22 במרץ 2023
androidx.window:window-*:1.1.0-beta01 מופץ. גרסה 1.1.0-beta01 מכילה את השמירות האלה.
הטמעה של פעילות
- המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDנוסף כמאפיין בוליאני של התג<application>בקובץ מניפסט של אפליקציה. - הוצאנו משימוש את
isSplitSupportedוהחלפנו אותו ב-splitSupportStatusכדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה. - נוספה המחלקה המקוננת
SplitController.SplitSupportStatusכדי לספק קבועים של מצב לנכסsplitSupportStatus. - בוצע רפקטורינג של
SplitControllerלמספר מודולים:-
ActivityEmbeddingControllermodule forActivityorActivityStackrelated APIs. - הועבר
isActivityEmbeddedמ-SplitControllerאלActivityEmbeddingController. - מודול
RuleControllerלפעולות שקשורות ל-EmbeddingRule: - הוסרו ממשקי ה-API של
SplitController:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
- נוספו ממשקי ה-API הבאים של
RuleController:-
addRule()– מוסיף כלל או מעדכן את הכלל עם אותו תג. -
removeRule()— מסיר כלל מהאוסף של כללים רשומים. -
setRules()— מגדיר אוסף של כללים. -
clearRules()— מסיר את כל הכללים הרשומים. - `parseRules() — מנתח כללים מהגדרות כללים ב-XML.
-
-
- כל המודולים צריכים הקשר כדי לעבור אתחול באמצעות method
#getInstance(), כולל:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- נוספה המחלקה
EmbeddingAspectRatioכדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס הגובה-רוחב של התצוגה. - הוספנו את המחלקה
SplitAttributesכדי להגדיר את פריסת המסך המפוצל. - הוספנו פונקציות של מחשבון
SplitAttributesל-SplitControllerכדי להתאים אישית את פריסות המסך המפוצל:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()-
isSplitAttributesCalculatorSupported()כדי לבדוק אם ממשקי ה-API של SplitAttributesCalculator נתמכים במכשיר
- נוסף שדה
EmbeddingRule#tag. - עדכוני API ב-
SplitRule:- נוסף
defaultSplitAttributes– מגדיר את פריסת ברירת המחדל של פיצול המסך; מחליף אתsplitRatioואתlayoutDirection. - נוספה תרגום של מאפייני ה-XML
splitRatioו-splitLayoutDirectionאלdefaultSplitAttributes. - הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
- נוסף
minHeightDpעם ערך ברירת מחדל של 600dp. - הערך של
minWidthהשתנה ל-minWidthDpעם ערך ברירת המחדל 600dp. - הערך של
minSmallestWidthהשתנה ל-minSmallestWidthDpעם ערך ברירת המחדל 600dp. - נוסף
maxAspectRatioInHorizontalעם ערך ברירת המחדלALWAYS_ALLOW. - נוסף
maxAspectRatioInPortraitעם ערך ברירת המחדל1.4. - הוגדר
FinishBehaviornested class כדי להחליף קבועים של התנהגות סיום. - השינויים במאפיין הוחלו על המחלקה המקוננת
BuilderשלSplitPairRuleו-SplitPlaceholderRule.
- נוסף
- החלפנו את
SplitInfo#getSplitRatio()ב-SplitInfo#getSplitAttributes()כדי לספק מידע נוסף שקשור לפיצול.
WindowLayout
- נוספה תמיכה בהקשר של ממשק משתמש שאינו פעילות ב-
WindowInfoTracker. - נוסף הקשר לממשק המשתמש שאינו פעילות ל-
WindowMetricsCalculator.
שלבי ההעברה
- כדי להפעיל הטמעה של פעילויות ולהציג פעילויות בתצוגה מפוצלת, האפליקציות צריכות להוסיף את המאפיין
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDלתג<application>במניפסט:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />כך המערכת יכולה לבצע אופטימיזציה של התנהגויות הפיצול עבור אפליקציה מראש. SplitInforatio- בודקים אם המסך המפוצל הנוכחי מוצג בערימה:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - בודקים את היחס הנוכחי:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- בודקים אם המסך המפוצל הנוכחי מוצג בערימה:
SplitControllermigrations:- התפקיד של
SplitController.getInstance()שונה על ידיSplitController.getInstance(Context). SplitController.initialize(Context, @ResId int)השתנה לRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).- התפקיד של
SplitController.getInstance().isActivityEmbedded(Activity)שונה על ידיActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity). - התפקיד של
SplitController.getInstance().registerRule(rule)שונה על ידיRuleController.getInstance(Context).addRule(rule). - התפקיד של
SplitController.getInstance().unregisterRule(rule)שונה על ידיRuleController.getInstance(Context).removeRule(rule). - התפקיד של
SplitController.getInstance().clearRegisteredRules()שונה על ידיRuleController.getInstance(Context).clearRules(). - התפקיד של
SplitController.getInstance().getSplitRules()שונה על ידיRuleController.getInstance(Context).getRules().
- התפקיד של
SplitRuleproperty migrations:- התגים
minWidthו-minSmallestWidthמשתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )או פשוט לחלק אתminWithפיקסלים ב-displayMetrics#density.
- התגים
- צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum
FinishBehavior:- התפקיד של
FINISH_NEVERשונה על ידיFinishBehavior.NEVER. - התפקיד של
FINISH_ALWAYSשונה על ידיFinishBehavior.ALWAYS. - התפקיד של
FINISH_ADJACENTשונה על ידיFinishBehavior.ADJACENT.
- התפקיד של
- צריך להעביר את כיוון הפריסה אל
SplitAttributes.LayoutDirection:- התפקיד של
ltrשונה על ידיSplitAttributes.LayoutDirection.LEFT_TO_RIGHT. - התפקיד של
rtlשונה על ידיSplitAttributes.LayoutDirection.RIGHT_TO_LEFT. - התפקיד של
localeשונה על ידיSplitAttributes.LayoutDirection.LOCALE. - צריך להעביר את
splitRatioאלSplitAttributes.SplitType.ratio(splitRatio).
- התפקיד של
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.- הערכים
setLayoutDirection(layoutDirection)ו-setSplitRatio(ratio)משתנים ל-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - הפונקציות
setFinishPrimaryWithSecondaryו-setFinishSecondaryWithPrimaryמקבלות את הקבועים שדומים ל-enumFinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule. - אפשר להשתמש ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)כדי להציג פיצולים במכשירים לאורך.
SplitPlaceholder.Buildermigrations:- יש לו רק פרמטרים של
filtersושלplaceholderIntent. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים במאמר בנושא 'העברות של SplitPairRule.Builder'. - הפונקציה
setFinishPrimaryWithPlaceholderמקבלת קבועים דמויי enumFinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule. - הערכים
setLayoutDirection(layoutDirection)ו-setSplitRatio(ratio)משתנים ל:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) - משתמשים ב-
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)כדי להציג פיצולים במכשירים במצב אנכי.
- יש לו רק פרמטרים של
גרסה 1.1.0-alpha06
22 בפברואר 2023
androidx.window:window-*:1.1.0-alpha06 מופץ. גרסה 1.1.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- הצגת גרסה ניסיונית של קבלת
WindowLayoutInfoמהקשר של ממשק משתמש.
שינויים ב-API
- מוסיפים את
splitSupportStatusכדי לציין אם אפשר להטמיע פעילות. (I10024) - הגדרת UI Context
WindowLayoutInfoAPI כניסיוני. (I58ee0) - הוספנו את
WindowAreaControllerואת ממשקי ה-API כדי לאפשר למצבRearDisplayלהעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (Iffcbf) - עדכון צבע הרקע שמוגדר כברירת מחדל. (I1ac1b)
- להוסיף פרמטרים של
SplitAttributes. (I18bdd) - הוספת ממשקי API ל-
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - לשפר את ממשקי ה-API שקשורים ל-
maxAspectRatio:- מחליפים את
alwaysAllow()ואתalwaysDisallow()ב-ALWAYS_ALLOWוב-ALWAYS_DISALLOW. - עדכון מאמרי העזרה של ה-API של @see עם מאמרי עזרה עצמאיים. (I3057b)
- מחליפים את
- הקונסטרוקטורים הבאים הוסרו מממשקי ה-API הציבוריים כי הם לא אמורים להיקרא על ידי אפליקציות.
SplitInfoconstructor-
ActivityStackconstructor (Ide534)
SplitRuleמקבל עכשיוmaxAspectRatioInPortrait/Landscape. הוא מאפשר רק פיצול פעילויות כשיחס הגובה-רוחב של הגבולות של רכיב האב קטן או שווה לערך המבוקשmaxAspectRatio. (Ia5990)- שינוי הערך
RuleController#parseRulesלערך סטטי (I785df) - שיפור ממשקי ה-API של ActivityEmbedding
- התאמה של שמות ה-API – שימוש בפעולות add/remove למספר מופעים:
- הערך של
registerRuleהשתנה ל-addRule - הערך של
unregisterRuleהשתנה ל-removeRule - מחליפים את
getSplitRulesב-getRulesכיActivityRuleהוא לא כלל פיצול - מוסיפים
RuleController#setRulesכדי להגדיר כמה כללים - חילוץ ממשקי API שקשורים לכלל
SplitControllerל-singletonRuleController. אלו הם: addRuleremoveRulegetRulessetRulesclearRulesparseRules- חילוץ
#isActivityEmbeddedמתוךSplitControllerאל סינגלטוןActivityEmbeddingController. אלו הם: isActivityEmbedded- הסרה של
SplitController#initialize. כדי להגדיר כללים מקובץ XML, צריך להשתמש בRuleController#parseRulesוב#setRules. לפני השינוי:SplitController.initialize(context, R.xml.static_rules)אחרי השינוי:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) - אנחנו כבר לא מבחינים בין כללים סטטיים לבין כללים בזמן ריצה. עם זאת, קריאה ל-
#clearRulesמוחקת את כל הכללים, לא משנה אם הם רשומים בהגדרות סטטיות של כללי XML או בזמן ריצה. כדי להשתמש בהתנהגות הקודמת שלSplitController#clearRegisteredRules, צריך להפעיל אתRuleController#parseRulesעם מזהה משאבי ה-XML ולהפעיל אתRuleController#setRulesכדי להגדיר מחדש את הכללים. לפני השינוי:SplitController.getInstance(context).clearRegisteredRules()אחרי השינוי:SplitController.getInstance(context).clearRegisteredRules()(Ib3967)val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- שיפור ממשקי ה-API של SplitRule:
- ב-
SplitRule, המידות המינימליות נמדדות ב-DP ולא בפיקסלים. - שינוי מבנה הקוד של
SplitRuleBuilder כדי להגדיר את המאפיינים המינימליים כאופציונליים. (I95f17)
- ב-
- העברת הקשר כדי להפעיל את
SplitController(I42549) - השם של
SplitRule#layoutDirשונה ל-#layoutDirectionוהשם שלSplitRule Builder#setLayoutDirשונה ל-Builder#setLayoutDirection. (I3f6d1)
גרסה 1.1.0-alpha04
9 בנובמבר 2022
androidx.window:window-*:1.1.0-alpha04 מופץ. גרסה 1.1.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
- חשיפת שיטה לקביעה אם
ActivityStackריק עבורActivityEmbedding. - הוסרו תגי API ניסיוניים מ-
ActivityEmbeddingAPIs. - הסתרת הבונה
ActivityRuleכיBuilderהיא הדרך המועדפת לבנייה. - מוסיפים שיטה ניסיונית כדי לקבל את
WindowInsetsב-WindowMetrics. - כדי למנוע את סיום ה-placeholder, צריך לעדכן את
SplitPlaceholderFinishBehavior. השלמת ה-placeholder גרמה להתנהגות מבלבלת.
שינויים ב-API
- הופכים את המשתנה val
isEmptyלגלוי לכולם כדי להחליף את הפונקציה funisEmpty. - משנים את השם של פעילויות הפרמטר
ActivityStackל-activitiesInProcess. (Ia5055) - הסרת
ActivityFilter#matchesClassNameו-ActivityFilter#matchesClassNameOrWildCardכי הן מבלבלות. - מוסיפים את
ActivityFilter#componentNameואתActivityFilter#intentActionכדי לאפשר למתקשר להבחין בין מסננים שונים (I41f22) - הסרה של ממשקי ה-API
@Deprecatedמממשק ה-API הניסיוני (I216b3) - הסרת
@ExperimentalWindowApiמ-Activity Embedding APIs (I69ebe) - צריך להסתיר את הבונה
ActivityRuleולהשתמש ב-Builder במקום זאת. (If4eb6) - מוסיפים ממשקי API כדי לבדוק אם פעילות מסוימת היא חלק מ-
ActivityFilter. (Ia43cf) - עדכון קובצי API כדי לשקף שינויים במחלקות
WindowMetricsו-WindowMetricsCalculatorCompat(I667fe) - עדכון של
ActivityEmbeddingProperty Javadoc ושם המחלקה (Ia1386) - הוספת שמות של תגי מאפיינים
ActivityEmbeddingלשימוש בקובץ AndroidManifest.xml (Id1ad4) - נוספו ממשקי API חדשים
SplitPlaceholderFinishBehaviorו-SplitPlaceholderRule.finishPrimaryWithPlaceholder, שמחליפים את ממשק ה-API הקייםSplitPlaceholderRule.finishPrimaryWithSecondary. ממשקי ה-API החדשים מגדירים מתי פעילויות של placeholder מסתיימות ואיך פעילויות משויכות בהטמעת פעילות צריכות להתנהג. (I64647)
תיקוני באגים
- הוספנו את
WindowAreaControllerואת ממשקי ה-API כדי לאפשר למצבRearDisplayלהעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (I388ab)
גרסה 1.1.0-alpha03
27 ביולי 2022
androidx.window:window-*:1.1.0-alpha03 מופץ. גרסה 1.1.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- מעדכנים את ערכי ברירת המחדל של כללי ההטמעה.
שינויים ב-API
- עדכון ערכי ברירת המחדל של מאפייני כלל ההטמעה. (Ic4d35)
גרסה 1.1.0-alpha02
11 במאי 2022
androidx.window:window-*:1.1.0-alpha02 מופץ. גרסה 1.1.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
- השקנו את ספריות המתאמים כדי לתמוך ב-Java וב-RxJava.
גרסה 1.1.0-alpha01
11 במאי 2022
androidx.window:window-*:1.1.0-alpha01 מופץ. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- הפצת מתאמים לתמיכה ב-Java וב-RxJava
גרסה 1.1.0-alpha01
20 באפריל 2022
androidx.window:window:1.1.0-alpha01 מופץ. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- תוקן באג שגרם לכך שהעברת אפליקציה לרקע הפסיקה את הפעלת התכונות של הקיפול.
- הרחבה של ActivityEmbedding API הניסיוני.
שינויים ב-API
- API ציבורי לבדיקה אם פעילות מוטמעת. (I39eb7)
תיקוני באגים
- הוספת ממשקי API להתאמה אישית של התנהגות הסיום של מאגרי תגים בחלוקות פעילות (I1a1e4)
- נוספה אפשרות הגדרה חדשה לכללים של פיצול פעילויות. (Iec6af)
גירסה 1.0
גרסה 1.0.0
26 בינואר 2022
androidx.window:window-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.
התכונות העיקריות בגרסה 1.0.0
- תמיכה בטלפונים מתקפלים דרך
WindowInfoTrackerו-FoldingFeature. WindowMetricsCalculatorכדי לעזור בחישוב WindowMetrics הנוכחי.
גרסה 1.0.0-rc01
15 בדצמבר 2021
androidx.window:window-*:1.0.0-rc01 מופץ. גרסה 1.0.0-rc01 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו תמיכה בטלפונים מתקפלים דרך
WindowInfoTracker. - מוסיפים שיטות לחישוב הערך הנוכחי והמקסימלי של
WindowMetrics. - הוספת ממשקי API תומכים לבדיקה.
גרסה 1.0.0-beta04
17 בנובמבר 2021
androidx.window:window-*:1.0.0-beta04 מופץ. גרסה 1.0.0-beta04 מכילה את השמירות האלה.
תכונות חדשות
- שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
- הופכים את Activity לתלות מפורשת בשיטה של WindowInfoTracker.
- הוספת TestRule פשוט ל-WindowMetricsCalculator כדי לתמוך במפתחים שמשתמשים ב-Robolectric.
שינויים ב-API
- חילוץ תוספים (I25a5f)
- הוספת isEmpty ב-ActivityStack (I5a4e6)
- שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
- מעדכנים את יחסי התלות של java/rxjava/testing כך שיתאימו. (I0da63)
- הוספת כלל בדיקה עבור WindowMetricsCalculator פשוט. (Ibacdb)
גרסה 1.0.0-beta03
27 באוקטובר 2021
androidx.window:window-*:1.0.0-beta03 מופץ. גרסה 1.0.0-beta03 מכילה את השמירות האלה.
תכונות חדשות
- הוספה של ממשקי API ניסיוניים להטמעת פעילות. גרסת הפריסה הראשונית הזו מאפשרת להציג שתי פעילויות זו לצד זו.
שינויים ב-API
- הסרנו את API הנוכחי של מדדי החלון כי אנחנו לא יכולים לספק אותו בצורה מדויקת. במקומה צריך להשתמש ב-WindowMetricsCalculator (Icda5f)
- בוצע עדכון של ה-API של התוספים. (Ica92b)
- הוספנו ממשק לתכונה חדשה שמאפשרת להטמיע פעילויות ולהציג אותן זו לצד זו בחלון המשימה הראשי. (I5711d)
- הוסתר המאפיין constructors עבור WindowMetrics ו-WindowLayoutInfo, במקומו צריך להשתמש בממשקי ה-API לבדיקה. (I5a1b5)
- הוספנו API כדי ליצור אובייקטים מזויפים של WindowLayoutInfo. (I4a2fd)
תיקוני באגים
- תוקנה דליפת זיכרון. (I3fc79, b/202989046)
גרסה 1.0.0-beta02
1 בספטמבר 2021
androidx.window:window-*:1.0.0-beta02 מופץ. גרסה 1.0.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- מוסיפים הערה ניסיונית כדי להוסיף הערות ל-API ניסיוני. (I9f1b6)
- מוסיפים שיטת בדיקה כדי ליצור FoldingFeature לבדיקה שמקבלת Rect. כך יהיה קל יותר לבדוק כשמשתמשים ב-Robolectric, בניגוד לפעילות בפועל. (Id1cca)
גרסה 1.0.0-beta01
18 באוגוסט 2021
androidx.window:window-*:1.0.0-beta01 מופץ. גרסה 1.0.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- הוסרו קבועים ישנים ו-
FoldingFeatureהפך לממשק.
שינויים ב-API
- הסרת קבועים ישנים והפיכת FoldFeature לממשק. (I9a2d5)
תיקוני באגים
- ספריות שתלויות בספרייה
Test Coreשודרגו לגרסה1.4.0ועכשיו הן פועלות עם פלטפורמת Android בגרסה S. (I88b72, b/189353863)
גרסה 1.0.0-alpha10
4 באוגוסט 2021
androidx.window:window-*:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 מכילה את השמירות האלה.
תכונות חדשות
- משנים את השם של WindowInfoRepo ל-WindowInfoRepository ומתאימים את המחלקות או הקבצים התואמים.
- המרת מדדים של החלון הנוכחי ל-Flow ב-WindowInfoRepository, כי הערך משתנה לאורך זמן.
- שינוי השם של WindowInfoRepoJavaAdapter ל-WindowInfoRepoCallbackAdapter
- הוספת שיטת עזר ליצירת אובייקטים של FoldingFeature לבדיקה
- עדכון חבילות כדי לקבץ כיתות על סמך התכונה שהן תומכות בה.
שינויים ב-API
- משנים את השם של ActivityExt ל-ActivityExtensions משנים את השם מ-Repo ל-Repository. (I61a16)
- מעדכנים חבילות לכיתות. (I23ae2)
- הסרת WindowMetrics מ-WindowInfoRepo (I24663)
- הסרה של WindowManager ושימוש ב-WindowInfoRepo
- הגדרת WindowBackend כפנימי. (I06d9a)
- המרת מדדים של חלון ל-Flow.
- שינוי השם של המתאם java ל-WindowInfoRepoCallbackAdapter
- מסירים את callbackFlow כדי שלא ייעשה יותר שימוש בממשקי API ניסיוניים. (Ia4d15)
- הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה.
- שינוי מ-occlusionMode ל-occlusionType (If4cff)
תיקוני באגים
- תוקנה שגיאת ProGuard שבה ספריית ליבה הוסרה.
- תוקנה שגיאה שבה WindowLayoutInfo לא הועבר למנויים נוספים.
- תוקנה שגיאה שגרמה לכך ששינויים בהגדרות לא הפעילו עדכונים של תכונת הקיפול.
גרסה 1.0.0-alpha09
30 ביוני 2021
androidx.window:window-*:1.0.0-alpha09 מופץ. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.
תכונות חדשות
- שינוי מקבועים מסוג מספר שלם לספירות לא חסומות.
- הוספת כלי בדיקה ליצירת תכונות קיפול לבדיקה.
שינויים ב-API
- הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה. (I3cf54)
- השינוי מ-
occlusionModeל-occlusionType.
- השינוי מ-
תיקוני באגים
- פליטת ערך ראשוני כשמוסיפים כמה צרכנים של זרמי הנתונים.
גרסה 1.0.0-alpha08
16 ביוני 2021
androidx.window:window-*:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו ארטיפקט לבדיקה כדי להקל על הבדיקה כשמשתמשים ב-WindowInfoRepository. משתמשים ב-WindowInfoRepository כדי לקבל מידע על DisplayFeatures ועל WindowMetrics. (I57f66, Ida620)
גרסה 1.0.0-alpha07
2 ביוני 2021
androidx.window:window-*:1.0.0-alpha07 מופץ. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.
תכונות חדשות
- העברת ספריית חלונות ליבה ל-Kotlin. מעכשיו נשתמש בקורוטינות ובפונקציות השהיה כדי לחשוף נתונים אסינכרוניים.
- הוספת WindowInfoRepo כנקודת האינטראקציה העיקרית לקבלת WindowMetrics והזרם של WindowLayoutInfo.
- פריט מידע חדש של
window-javaשחושף ממשקי API ידידותיים ל-Java כדי לרשום ולבטל רישום של קריאות חוזרות (callback). -
window-rxjava2ו-window-rxjava3הם ארטיפקטים חדשים שחושפים ממשקי API מותאמים של RxJava.
שינויים ב-API
- מוסיפים את
WindowServicesכדי לספק יחסי תלות באופן אחיד.- הוספת API מבוסס-קורוטינה לצריכת מידע על פריסת חלונות. (Iab70f)
- העברת ספריית הליבה של מנהל החלונות ל-Kotlin. (Icca34)
תיקוני באגים
- הוספה של מחלקת נתונים חדשה שמייצגת גבולות של תכונות. (I6dcd1)
גרסה 1.0.0-alpha06
5 במאי 2021
androidx.window:window:1.0.0-alpha06 מופץ. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- התחלנו את ההעברה שלנו ל-Kotlin ונסיימה במהדורה הבאה.
- הסרנו את DeviceState מה-API הציבורי. במקומו צריך להשתמש ב-FoldingFeature.
- הסרנו את
STATE_FLIPPEDמהמצבים של FoldingFeature כי הוא לא נתמך כרגע באף תרחיש שימוש. - הסרנו גם ממשקי API אחרים שיצאו משימוש.
שינויים ב-API
- הוספת Kotlin כתלות.
- העברה של ספריית הליבה ל-Kotlin. (Idd995)
- הכלי לבניית אתרים
DisplayFeatureהוסר. (I61fa4) - הוסר
DeviceStateמ-API ציבורי, במקומו צריך להשתמש ב-FoldingFeature. (Id6079) - הסרת קריאה חוזרת (callback) של מצב המכשיר מתוספים. (I5ea83)
- הסרת
STATE_FLIPPEDמ-FoldingFeature. (I9c4e1) - הסרה של שיטות הרשמה שיצאו משימוש. (Ib381b)
גרסה 1.0.0-alpha05
24 במרץ 2021
androidx.window:window:1.0.0-alpha05 מופץ. גרסה 1.0.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
הוספנו שיטות נוחות ל-FoldingFeature כדי שאפליקציות יוכלו לדעת אם התכונה מפרידה או מסתירה, ולקבוע את הכיוון של הציר. אנחנו גם מסתירים את סוג הציר כדי
אנחנו מסירים את שיטות הקריאה הסינכרוניות מ-WindowManager. שיטות קריאה סינכרוניות עלולות לגרום לשגיאות כי יש בהן מרוץ תהליכים מרומז. רושמים מאזינים וקריאות חוזרות (callback) כדי לקבל עדכונים לגבי WindowLayoutInfo.
שינויים ב-API
- הוספת שיטות נוחות לעבודה עם FoldingFeatures (Ie733f)
- הסרה של שיטות קריאה סינכרוניות מ-WindowManager (I96fd4)
גרסה 1.0.0-alpha04
10 במרץ 2021
androidx.window:window:1.0.0-alpha04 מופץ. גרסה 1.0.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
- תוקן באג שגרם לכך שלא הופקה WindowLayoutInfo אם לא הייתה הטמעה של OEM. עכשיו אנחנו שולחים WindowLayoutInfo ריק.
- תוקן באג שגרם לכך שהמצב לא התעדכן כראוי אם מצב הציר השתנה בזמן שהאפליקציה פעלה ברקע. עכשיו המצב צריך להיות עקבי.
- עדכון קובצי ה-proguard שלנו כדי להתעלם מאזהרות של תלות בזמן ריצה.
תיקוני באגים
- הפונקציה מחזירה ערך ריק אם ספריית ה-OEM חסרה. (Ide935)
גרסה 1.0.0-alpha03
18 בפברואר 2021
androidx.window:window:1.0.0-alpha03 מופץ. גרסה 1.0.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- פליטת ערך ריק עבור WindowLayoutInfo כשההטמעה של יצרן הציוד המקורי ריקה. כך יהיה קל יותר להשתמש בספרייה במכשירים נוספים. מכיוון שממשקי ה-API הם אסינכרוניים, עדיין מומלץ שאפליקציות יכתבו קוד הגנתי ויפלטו ערך ברירת מחדל אחרי זמן קצוב לתפוגה. אין לנו ערבויות לגבי הטמעות של יצרני ציוד מקורי, ויכול להיות שיהיה עיכוב בהצגת הערך הראשוני.
תיקוני באגים
- הפונקציה מחזירה ערך ריק אם ספריית ה-OEM חסרה. (Ide935)
גרסה 1.0.0-alpha02
27 בינואר 2021
androidx.window:window:1.0.0-alpha02 מופץ. גרסה 1.0.0-alpha02 מכילה את השמירות האלה.
תכונות חדשות
הוצאנו משימוש כמה ממשקי API כדי לייעל את ממשקי ה-API ולצמצם את הסיכוי לטעויות. דוגמאות בולטות הן הסרת פעולות קריאה סינכרוניות מ-WindowManager והוצאה משימוש של DeviceState. פעולות קריאה סינכרוניות עלולות לגרום למרוץ תהליכים ולממשק משתמש שגוי.
המרנו את DisplayFeature לממשק שתכונות אחרות יטמיעו מעכשיו והלאה. התכונה הראשונה שלנו היא FoldingFeature, שמייצגת עכשיו קיפול מסך או ציר. הוא מכיל גם את מצב הציר במקום DeviceState.
ה-API WindowMetrics הושק ב-Android 11 כדי לספק למפתחים דרך פשוטה לשליחת שאילתה לגבי מדדים של חלון, למשל המיקום והגודל שלו במסך וכל שוליים פנימיים של המערכת. הוספנו לגרסה הזו תמיכה לאחור ב-API, כדי שמפתחים יוכלו להשתמש ב-WindowMetrics ולהמשיך לתמוך בגרסאות ישנות יותר של Android. אפשר לקבל את WindowMetrics דרך ממשקי ה-API
WindowManager#getCurrentWindowMetrics()ו-WindowManager#getMaximumWindowMetrics().
שינויים ב-API
- הוצאה משימוש של ממשקי API שיוסרו בגרסת האלפא הבאה (Ib7cc4)
- עדכון
ExtensionInterfaceכדי לאשר הפניות מפורשות לפעילות. (I07ded) - הסבר על WindowMetrics API. (I3ccee)
- הסרת שיטות קריאה סינכרוניות מ-WindowManager (I69983)
- הגנה על החבילה ExtensionWindowBackend. (Ied208)
תיקוני באגים
- עדכון ממשקי ה-API של
ExtensionInterfaceכדי לקבל הקשרים חזותיים. (I8e827)
External Contribution
- מיזוג של DeviceState ו-WindowLayoutInfo כדי להקל על הגישה לנתונים. (Id34f4)
גרסה 1.0.0-alpha01
27 בפברואר 2020
androidx.window:window:1.0.0-alpha01 וגם androidx.window:window-extensions:1.0.0-alpha01
מופצים. גרסה 1.0.0-alpha01 מכילה את השמירות האלה.
זו הגרסה הראשונה של ספריית Window Manager.
תכונות חדשות
-
DisplayFeature: ה-API החדש הזה מזהה שיבושים במשטחים הרציפים והשטוחים של המסך, כמו צירים או קיפולים -
DeviceState: ה-API החדש הזה מספק את המצב הנוכחי של הטלפון מתוך רשימה של מצבים מוגדרים (לדוגמה,CLOSED,OPENED,HALF_OPENEDוכו').