WindowManager
androidx.window
androidx.window.core
androidx.window.embedding
androidx.window.layout
androidx.window.testing.layout
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 19 نوفمبر 2025 | 1.5.1 | - | - | 1.6.0-alpha01 |
تحديد الاعتماديات
لإضافة اعتمادية على WindowManager، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
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-alpha01
19 نوفمبر 2025
تم طرح androidx.window:window-*:1.6.0-alpha01. يتضمّن الإصدار 1.6.0-alpha01 هذه التعديلات.
الميزات الجديدة
- أضِف طرقًا مساعِدة لإنشاء
WindowSizeClassSetsفي شكل شبكة.
تغييرات واجهة برمجة التطبيقات
- أضِف طرقًا مساعِدة لإنشاء
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:
- أضِف نقاط توقّف
WindowSizeClassللمقاسين الكبير جدًا والكبير. (I40d85) - توسيع نطاق حساب
WindowMetricsليشمل "سياق التطبيق" (I8eeeb، b/360934048) - Provider a Getter to enable direct access to
WindowLayoutInfo(Ie9513) - إضافة واجهة برمجة تطبيقات لحفظ حالة التضمين تلقائيًا واستعادتها تلقائيًا عند إعادة تشغيل عملية التطبيق (Ie0295)
- إزالة واجهة برمجة التطبيقات التجريبية
WindowInsets(I68a71)
إصلاح الأخطاء
- تم إصلاح مشكلة عرض
EmbeddingRuleمختلف عند استخدام الدالةhashCodeفي بعض الحالات. (I748cc) - إصلاح المشكلة التي قد يحدث فيها
NullPointerExceptionبسبب أخطاء في تنفيذ الجهاز - تم إصلاح المشكلة التي كانت تؤدي إلى تعذُّر إجراء عمليات التحقّق من الأمان في
ActivityEmbeddingبسبب إزالة Proguard للفئات غير المستخدَمة.
المساهمة الخارجية
- إضافة جميع منصات 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 هذه التعديلات.
الميزات الجديدة
- تم إصلاح أخطاء بسيطة.
المساهمة الخارجية
- إضافة جميع منصات KMP إلى
window-core(If3d7c)
الإصدار 1.5.0-beta01
2 يوليو 2022
تم طرح 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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف نقاط توقّف
WindowSizeClassللمقاسين الكبير جدًا والكبير. (I40d85) - توسيع نطاق حساب
WindowMetricsليشمل "سياق التطبيق" (I8eeeb، b/360934048) - Provider a Getter to enable direct access to
WindowLayoutInfo(Ie9513) - إضافة واجهة برمجة تطبيقات لحفظ حالة التضمين تلقائيًا واستعادتها تلقائيًا عند إعادة تشغيل عملية التطبيق (Ie0295)
- إزالة واجهة برمجة التطبيقات التجريبية
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
- تضمين الأنشطة
- واجهة برمجة التطبيقات لتخصيص الصور المتحركة عند التشغيل
- الخط الفاصل التفاعلي
ActivityStackالتثبيت- تعتيم مربّع الحوار بملء الشاشة
- دالة ردّ الاتصال الخاصة بمعلومات "نافذة النشاط المضمّنة"
- تحسين إدارة
ActivityStack - إطلاق "نشاط" في
ActivityStackمحدّد
WindowMetricsCalculator- تحسين إمكانية الاختبار
WindowMetrics- طُرق سهلة لاحتساب
withDpوheightDp - تعديل عملية التحقّق من الحدود إلى
isAtLeastواستخدام الحدود الدنيا للسماح بإضافة قيم جديدة
- طُرق سهلة لاحتساب
WindowSizeClass- إضافة طريقة احتساب من
WindowMetrics
- إضافة طريقة احتساب من
WindowInfoTracker- إضافة واجهة برمجة تطبيقات لرصد أوضاع الجهاز المتوافقة
الإصدار 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 هذه التعديلات.
الميزات الجديدة
- تعديلات على واجهة برمجة التطبيقات
WindowSizeClass - تعديلات على واجهات برمجة التطبيقات الخاصة بتضمين الأنشطة
الإصدار 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 هذه التعديلات.
الميزات الجديدة
- تمت إضافة واجهة برمجة تطبيقات للسماح بتخصيص
ActivityEmbeddingالصور المتحركة. - توسيع نطاق واجهات برمجة التطبيقات
WindowMetricsCalculatorالاختبارية للسماح بتزييف مقاييس النافذة
تغييرات واجهة برمجة التطبيقات
- إخفاء بعض الشركات المصنِّعة (I87b8d)
- السماح للتطبيقات بتخصيص صور
ActivityEmbeddingمتحركة (If31a8) - إضافة دعم لاستهداف
watchosDeviceArm64KMP واستهداف الإصدار 1.9 من Kotlin (Icf15d، b/364652024) - عرض واجهات برمجة تطبيقات
WindowMetricsCalculator(I1cebf)
إصلاح الأخطاء
- تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية في JSpecify، وهي تعليقات توضيحية خاصة بالاستخدام. على مطوّري 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.
تغييرات واجهة برمجة التطبيقات
- أضِف
widthDpوheightDpإلىWindowMetrics. (Ide026) - إزالة واجهة برمجة التطبيقات التجريبية
WindowInsets(I68a71) - تعديل أسماء طرق التحقّق من الحدود إلى
isAtLeast(Ib0ab7)
الإصدار 1.4.0-alpha04
2 أكتوبر 2024
تم طرح androidx.window:window-*:1.4.0-alpha04. يتضمّن الإصدار 1.4.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة طريقة لاحتساب
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 مخصّص
- افتح أداة الإنشاء الخاصة بـ
WindowSizeClassليتمكّن المطوّرون من استخدامها. - أضِف طرقًا مساعدة
isAtLeastليتمكّن المطوّرون من معالجة مجموعة من قيمWindowSizeClass. - أضِف دالة إضافية إلى
Set<WindowSizeClass>لاحتساب أفضل تطابق من المجموعة. - إضافة ثوابت لنقاط الإيقاف المؤقت المقترَحة في Android
- أضِف مجموعة نقاط الإيقاف التي تتوافق مع نقاط الإيقاف المقترَحة في Android.
تغييرات واجهة برمجة التطبيقات
- تعديل أسماء طرق الحدود لـ
WindowSizeClass(If89a6) - تعديل واجهة برمجة التطبيقات
WindowSizeClassلإتاحة إضافة قيم نقاط توقّف جديدة في المستقبل بدلاً من استخدام حدود مطلقة، نستخدِم الحدود الدنيا وننصح المطوّرين باستخدام عمليات التحقّق من الحدود الدنيا عند معالجةWindowSizeClass. سيتم إيقافWindowWidthSizeClassوWindowHeightSizeClassنهائيًا لأنّه لن يتم تطويرهما أكثر من ذلك. (I014ce)
الإصدار 1.4.0-alpha01
7 أغسطس 2024
تم طرح androidx.window:window-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تتيح ميزة تثبيت ActivityStack للتطبيقات تثبيت المحتوى في حاوية واحدة وعزل التنقّل فيها عن الحاوية الأخرى.
- يتيح الفاصل التفاعلي للتطبيقات عرض فاصل ثابت أو قابل للسحب بين النشاطَين في عرض مقسّم.
- تتيح ميزة تعتيم مربّع الحوار بملء الشاشة للتطبيقات تحديد منطقة تعتيم مربّع الحوار، إما لتعتيم نافذة المهمة بأكملها أو لتعتيم الحاوية التي تعرض مربّع الحوار فقط.
- يتيح Embedded Activity Window Info Callback للتطبيقات تلقّي تحديثات مستمرة لنافذة الأنشطة المضمَّنة.
- تتيح ميزة تضمين خلفية الصورة المتحركة للتطبيقات تحديد خلفية الصورة المتحركة، ما يؤدي إلى تحسين جودة الصورة المتحركة أثناء التنقّل عند استخدام
ActivityEmbedding. - تتيح إدارة ActivityStack المحسّنة للتطبيقات التحكّم بشكل أكبر في
ActivityStacksعند استخدامActivityEmbedding، بما في ذلك: - إطلاق نشاط في
ActivityStackمحدّد - إنهاء
ActivityStack
تغييرات واجهة برمجة التطبيقات
واجهة برمجة تطبيقات جديدة
WindowInfoTracker#supportedPostures:- واجهة برمجة تطبيقات لتحديد ما إذا كان الجهاز يتيح استخدام وضع "السطح المستوي" للأجهزة القابلة للطي. إضافة WindowAreaSessionPresenter#getWindow
إضافة واجهات برمجة التطبيقات لإتاحة تثبيت
ActivityStack:SplitPinRuleصفSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
إضافة واجهات برمجة التطبيقات لتفعيل الفاصل التفاعلي وضبطه
DividerAttributesصفSplitAttributes.Builder#setDividerAttributes
إضافة واجهات برمجة التطبيقات لضبط
EmbeddingConfigurationوDimAreaBehaviorلمربّعات الحوارEmbeddingConfigurationصفDimAreaBehaviorصفActivityEmbeddingController#setEmbeddingConfiguration
إضافة واجهات برمجة التطبيقات لتلقّي آخر الأخبار عن نافذة النشاط المضمّنة
EmbeddedActivityWindowInfoصفActivityEmbeddingController#embeddedActivityWindowInfo
إضافة واجهات برمجة تطبيقات لضبط خلفية الرسوم المتحركة المضمّنة
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
إضافة واجهات برمجة التطبيقات لإنهاء
ActivityStacksActivityEmbeddingController#finishActivityStacks
إضافة واجهات برمجة التطبيقات لضبط عملية الإطلاق
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
إنّ واجهات برمجة التطبيقات التالية ثابتة ولم تعُد تجريبية:
ActivityEmbeddingController#invalidateVisibleActivityStacks(تم نقلها من SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
إضافة واجهات برمجة التطبيقات للإصدار 1.4 (I56774)
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى عرض UNAVAILABLE بدلاً من ACTIVE على أجهزة معيّنة عندما تكون الجلسة نشطة.
- تمت إزالة إمكانية استخدام
transferActivityToWindowAreaعلى الأجهزة التي تحمل مستوى واجهة برمجة التطبيقاتvendorApiLevel 2 بسبب عدم استقرار واجهة برمجة التطبيقات. - إضافة واجهة برمجة تطبيقات لتفعيل ميزة السحب إلى وضع ملء الشاشة في أداة تقسيم قابلة للسحب في ميزة "تضمين الأنشطة" (I645c9)
- السماح للتطبيقات بإيقاف الصور المتحركة
ActivityEmbeddingمن خلال مَعلمات الصور المتحركةSplitAttributes(Idc01a) - تمت إزالة التحديد اليدوي لنطاق الوصول إلى واجهات برمجة التطبيقات الجديدة للمنصة، لأنّ ذلك يحدث تلقائيًا من خلال تصميم واجهة برمجة التطبيقات عند استخدام R8 مع الإصدار 7.3 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 3.3 من R8)، وجميع عمليات الإنشاء عند استخدام الإصدار 8.1 أو إصدار أحدث من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (مثل الإصدار 8.1 من D8). ننصح العملاء الذين لا يستخدمون AGP بالترقية إلى الإصدار 8.1 أو إصدار أحدث من D8. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
- السماح للإضافات بأخذ مَعلمات الرسوم المتحركة لـ
SplitAttributesحتى يتمكّن الجهاز من استخدامها في انتقالات الرسوم المتحركة (Iede00) - واجهات برمجة التطبيقات لإخفاء التراكب (Ic4251)
- إضافة واجهات برمجة تطبيقات لضبط الفاصل الثابت أو القابل للسحب في عملية التقسيم (Ia7a78)
- تمت إضافة الكثافة إلى
WindowMetrics(Id6723) - أضِف واجهة برمجة التطبيقات للحصول على
SupportedPostures. (If557a) - إزالة
setLaunchingActivityStackمن واجهة برمجة التطبيقات التجريبية (I191cf) - تقديم
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) - إيقاف
#getTokenوإضافة#getActivityStackToken(Ie0471) - إضافة أداة معالجة ردّ الاتصال لواجهة برمجة التطبيقات الخاصة بسير عمل
embeddedActivityWindowInfo(Ida77f) - إضافة محوّل معاودة الاتصال لواجهة برمجة التطبيقات overlayInfo flow (I7264f)
- أدخِل
WindowSdkExtensionsRuleلتجاوزextensionsVersionلأغراض الاختبار. (Ifb928) - - نقل
#setLaunchingActivityStackإلى حزمة لتتوافق مع استخداماتActivityOptionsCompat- على المستخدمين إدخال
activityOptions.toBundleبدلاً منActvityOptions. - إزالة
#setLaunchingActivityStack(Activity)على المستخدمين نقل بياناتهم لاستخدامActivityEmbeddingController#getActivityStac(Activity)والحصول علىActivityStack، ثم تمريرActivityStackإلى#setLaunchingActivityStack. (Ie0ccc)
- على المستخدمين إدخال
- - تقديم
ActivityStack.TokenوSpltInfo.Tokenكمعرّف للتواصل بين WM Jetpack والإضافات- إيقاف/استبدال واجهات برمجة التطبيقات لاستخدام/عرض الرمز المميز بدلاً من IBinder (I12b24)
- - تقديم
ActivityEmbeddingController#invalidateVisibleActivityStacks- إزالة
SplitController#invalidateTopVisibleSplitAttributesلأنّ الميزة سيتم دمجها في#invalidateVisibleActivityStacks(I02ef5)
- إزالة
- - إضافة واجهة برمجة تطبيقات لضبط إعدادات التضمين (I59a4a)
- - إضافة واجهات برمجة التطبيقات
ActivityStackandroidx.Windowالخاصة بتثبيت التطبيقات في أعلى الشاشة أو إزالة تثبيتها- تعديل التطبيق التجريبي للسماح بتثبيت/إلغاء تثبيت التطبيق في أعلى الشاشة
ActivityStack(I24dd3)
- تعديل التطبيق التجريبي للسماح بتثبيت/إلغاء تثبيت التطبيق في أعلى الشاشة
- إعادة إضافة
#finishActivityStacksوActivityEmbeddingOptions(Ic1ab3) - إزالة واجهات برمجة التطبيقات غير المستقرة (Ibc534، b/302380585)
الإصدار 1.3
الإصدار 1.3.0
29 مايو 2024
تم طرح androidx.window:window-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.2.0
- إتاحة استخدام Kotlin Multiplatform مع فئات أحجام النوافذ
الإصدار 1.3.0-rc01
14 مايو 2024
WindowManager يتيح الإصدار 1.3 من Jetpack استخدام 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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إزالة إمكانية إنشاء واستخدام
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 هذه التعديلات
تغييرات واجهة برمجة التطبيقات
- قسِّم
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 هذه التعديلات.
الميزات الجديدة
- تم إجراء تعديلات على مساحة واجهة برمجة التطبيقات الخاصة بـ Window Size Class API لتحسين المرونة للمطوّرين الذين يريدون استخدام فئات الحجم الخاصة بهم.
تغييرات واجهة برمجة التطبيقات
- أضِف قيود الارتفاع إلى أداة اختيار العرض. (I23393)
- إضافة دوال مساعدة لاختيار
WindowSizeClassمن مجموعة إضافة دوال تسجيل تجريبية ليتمكّن المطوّرون من كتابة أدوات الاختيار الخاصة بهم أضِف دالة إضافة أداة اختيار لاختيارWindowSizeClassالأوسع ضمن حدود معيّنة. (I0c944) - افتح الدالة الإنشائية
WindowSizeClassحتى يمكن إضافة نقاط توقّف مخصّصة. (Ic1ff3) - إضافة دالة ملائمة لإنشاء فئة الحجم من العرض والارتفاع والكثافة (If67f4)
إصلاح الأخطاء
- تم إصلاح الخطأ الذي يحدث عند اقتطاع القيمة العائمة إلى 0. (272ffac)
الإصدار 1.3.0-alpha01
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.window:window-*:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للوصول إلى الشاشة الخلفية
- أصبحت واجهات برمجة التطبيقات التجريبية لإنشاء
FoldingFeatureثابتة الآن. - أصبحت واجهات برمجة التطبيقات التجريبية لإعداد قيم
ActivityEmbeddingوهمية ثابتة الآن. - تعرض السمة
WindowLayoutInfoPublisherRuleالآن عملية التجاوز عند الحصول على قيمة منUiContext. - تجمع ميزة طيّ التقارير بيانات
WindowInfoTrackerفي مَعلماتUiContext. - عرض إصدار الإضافة على الجهاز
- ثوابت
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
- عرض واجهات برمجة التطبيقات التجريبية للوصول إلى الشاشة الخلفية
- أصبحت واجهات برمجة التطبيقات التجريبية لإنشاء
FoldingFeatureثابتة الآن. - أصبحت واجهات برمجة التطبيقات التجريبية لإعداد قيم
ActivityEmbeddingوهمية ثابتة الآن. - تعرض السمة
WindowLayoutInfoPublisherRuleالآن عملية التجاوز عند الحصول على قيمة منUiContext. - تجمع ميزة طيّ التقارير بيانات
WindowInfoTrackerفي مَعلماتUiContext. - عرض إصدار الإضافة على الجهاز
الإصدار 1.2.0-rc01
1 نوفمبر 2023
تم طرح androidx.window:window-*:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للوصول إلى الشاشة الخلفية
- أصبحت واجهات برمجة التطبيقات التجريبية لإنشاء
FoldingFeatureثابتة الآن. - أصبحت واجهات برمجة التطبيقات التجريبية لإعداد قيم
ActivityEmbeddingوهمية ثابتة الآن. - تعرض السمة
WindowLayoutInfoPublisherRuleالآن عملية التجاوز عند الحصول على قيمة منUiContext. - تجمع ميزة طيّ التقارير بيانات
WindowInfoTrackerفي مَعلماتUiContext. - عرض إصدار الإضافة على الجهاز
الإصدار 1.2.0-beta04
18 أكتوبر 2023
تم طرح androidx.window:window-*:1.2.0-beta04. يتضمّن الإصدار 1.2.0-beta04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إزالة واجهات برمجة التطبيقات غير المستقرة (Ibc534، b/302380585)
الإصدار 1.2.0-beta03
20 سبتمبر 2023
تم طرح androidx.window:window-*:1.2.0-beta03. يتضمّن الإصدار 1.2.0-beta03 هذه التعديلات.
الميزات الجديدة
- أضِف عمليات التحقّق
RequiresApiلواجهات برمجة التطبيقات التي تحتاج إلى إصدار معيّن من الإضافات لتعمل بشكلٍ صحيح. - أضِف واجهة برمجة تطبيقات لعرض إصدار الإضافات على الجهاز.
تغييرات واجهة برمجة التطبيقات
- إضافة تعليقات توضيحية إلى واجهات برمجة التطبيقات العامة بشأن إصدار إضافة حزمة تطوير البرامج (SDK) المطلوبة لنظام التشغيل Windows
- أزِل
isXXXSupportedفي مكوّن "تضمين النشاط". (Ie3dae)
- أزِل
- إضافة
WindowSdkExtensionsللإبلاغ عن إصدار الإضافة على الجهاز- إضافة
RequiresWindowSdkExtensionلتحديد الحدّ الأدنى المطلوب من إصدار الإضافة (I05fd4)
- إضافة
- يجعل
WindowAreaInfo#getCapabilityغير قابل للقيم الفارغة. (I17048)
الإصدار 1.2.0-beta01
26 يوليو 2023
تم طرح androidx.window:window-*:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للوصول إلى الشاشة الخلفية
- أصبحت واجهات برمجة التطبيقات التجريبية لإنشاء
FoldingFeatureثابتة الآن. - أصبحت واجهات برمجة التطبيقات التجريبية لإعداد قيم
ActivityEmbeddingوهمية ثابتة الآن. - تعرض السمة
WindowLayoutInfoPublisherRuleالآن عملية التجاوز عند الحصول على قيمة منUiContext. - تجمع ميزة طيّ التقارير بيانات
WindowInfoTrackerفي مَعلماتUiContext.
تغييرات واجهة برمجة التطبيقات
- وضع علامة "تجريبية" على واجهة برمجة التطبيقات
WindowAreaللسماح بمواصلة إجراء تغييرات على واجهة برمجة التطبيقات لإصدار ثابت في الإصدار 1.3 (I857f5) - تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية بشأن إيقاف التوافق (I8e87a، b/287516207)
الإصدار 1.2.0-alpha03
21 حزيران (يونيو) 2023
تم طرح androidx.window:window-*:1.2.0-alpha03. يتضمّن الإصدار 1.2.0-alpha03 هذه التعديلات.
الميزات الجديدة
- إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا من مساحة واجهة برمجة التطبيقات
- أضِف واجهات برمجة تطبيقات لدعم العروض المتزامنة.
- أضِف سمة لإيقاف تجاهل تغيير الحجم الإجباري.
- أضِف السمة لإيقاف تجاهل الحدّ الأدنى لنسبة العرض إلى الارتفاع.
- تثبيت
ActivityEmbeddingRuleلدعم اختبارات الوحدات المتعلقة بميزة "تضمين الأنشطة"
تغييرات واجهة برمجة التطبيقات
- إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا (I18d39)
- إضافة إمكانية استخدام شاشات متزامنة (Ifcbb0)
إصلاح الأخطاء
- إضافة السمة المتوافقة مع إيقاف الاشتراك لإلغاء تغيير الحجم بالقوة (Ie7ab1)
- يزيل
SESSION_STATE_CONTENT_INVISIBLEمن واجهة الإضافات. (I6ed19) - تثبيت
ActivityEmbeddingRuleلتوفير اختبارات الوحدات حول تضمين الأنشطة (I8d6b6) - إضافة سمة توافق لإيقاف الحدّ الأدنى لنسبة العرض إلى الارتفاع (I66390)
- إزالة واجهات برمجة التطبيقات WindowArea التي تم إيقافها نهائيًا (Ieb67c)
- إعادة تسمية السمة "تكرار طلب الاتجاه" إلى
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED(Ie2fbd) - تعديل أسماء الثوابت الخاصة بجلسة منطقة نافذة التحديثات (I83675)
- إضافة سمة توافق لإيقاف التتبّع تتجاهل حلقة طلب الاتجاه عند رصدها (I0a7a2)
- أضِف
WindowAreaComponent#STATUS_ACTIVEللإشارة إلى أنّ الميزة مفعّلة حاليًا. (I62bc3) - إضافة واجهات برمجة التطبيقات
RearDisplayPresentationMode(I0401c) - إزالة واجهة برمجة التطبيقات الخاصة بلون الخلفية من الإصدار الثابت (I34c3e)
- إخفاء واجهات برمجة التطبيقات الخاصة بمنطقة النافذة (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) - أضِف واجهات برمجة التطبيقات الخاصة بـ
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 هذه التعديلات.
الميزات الجديدة
- تعديل واجهة برمجة التطبيقات الاختبارية لتتضمّن ثابتًا للميزات غير المحدّدة القابلة للطي
- سيؤدي الاستبدال باستخدام
WindowLayoutInfoPublishRuleإلى استبدال جميع قيمwindowLayoutInfo، بما في ذلك واجهة برمجة التطبيقات المستندة إلى السياق.
تغييرات واجهة برمجة التطبيقات
- إضافة ثابت لميزة الطي في المنتصف غير المحدّدة (I7530c)
إصلاح الأخطاء
- تعديل
WindowLayoutInfoPublishRuleللسماح بتجاهلContextاستنادًا إلىWindowLayoutInfo(I2037a)
الإصدار 1.2.0-alpha01
24 مايو 2023
تم طرح androidx.window:window-*:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.
الميزات الجديدة
تثبيت واجهات برمجة التطبيقات الاختبارية حول ميزة "تضمين الأنشطة" وWindowLayoutInfoTracker تمت ترقية ActivityEmbeddingRule إلى الإصدار الثابت.
تمت ترقية WindowMetricsCalculatorRule إلى الإصدار الثابت.
تمت ترقية دوال الأداة المساعدة لإنشاء FoldingFeature للاختبار إلى إصدار ثابت.
تغييرات واجهة برمجة التطبيقات
- تثبيت
ActivityEmbeddingRuleلتوفير اختبارات الوحدات حول تضمين الأنشطة (I8d6b6) WindowMetrisCalculatorTestRuleثابتة، ما يسمح باستخدام مقاييس صورية لاختبارات آلة جافا الافتراضية (JVM). ننصح باستخدام محاكي للحصول على نتائج دقيقة.- تثبيت واجهات برمجة التطبيقات الاختبارية في
WindowLayoutInfoلإتاحة اختبار آلة جافا الافتراضية (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إلى عدة وحدات:- وحدة
ActivityEmbeddingControllerلواجهات برمجة التطبيقات ذات الصلة بـActivityأوActivityStack - تم نقل
isActivityEmbeddedمنSplitControllerإلىActivityEmbeddingController. - وحدة
RuleControllerللعمليات ذات الصلة بـEmbeddingRule: - تمت إزالة واجهات برمجة التطبيقات التالية:
SplitController clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()- تمت إضافة واجهات برمجة التطبيقات
RuleControllerالتالية: addRule(): لإضافة قاعدة أو تعديل القاعدة التي تحمل العلامة نفسها-
removeRule(): لإزالة قاعدة من مجموعة القواعد المسجّلة. -
setRules(): تحدّد مجموعة من القواعد. clearRules(): لإزالة جميع القواعد المسجَّلةparseRules(): يحلّل القواعد من تعريفات قواعد XML.
- وحدة
- تتطلّب جميع الوحدات سياقًا يتم إعداده باستخدام طريقة
#getInstance()، بما في ذلك:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- تمت إضافة الفئة
EmbeddingAspectRatioلتحديد الثوابت التي تتضمّن سلوكًا مشابهًا للتعداد والمتعلّقة بنسبة العرض إلى الارتفاع. - تمت إضافة الفئة
SplitAttributesلتحديد التنسيق المقسّم. - تمت إضافة وظائف الآلة الحاسبة
SplitAttributesإلىSplitControllerلتخصيص تنسيقات الشاشة المقسّمة:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()للتحقّق مما إذا كانت واجهات برمجة التطبيقاتSplitAttributesCalculatorمتوافقة مع الجهاز
- تمت إضافة الحقل
EmbeddingRule#tag. - تحديثات واجهة برمجة التطبيقات في
SplitRule:- تمت إضافة
defaultSplitAttributes: تحدّد هذه السمة التنسيق التلقائي للتقسيم، وهي تحلّ محلّsplitRatioوlayoutDirection. - أضفنا ترجمة لسمتَي XML
splitRatioوsplitLayoutDirectionإلىdefaultSplitAttributes. - تم تغيير تعريفات الحد الأدنى للأبعاد لاستخدام وحدات بكسل مستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDpبالقيمة التلقائية 600dp. - تم تغيير
minWidthإلىminWidthDpبالقيمة التلقائية 600dp. - تم تغيير
minSmallestWidthإلىminSmallestWidthDpبالقيمة التلقائية 600dp. - تمت إضافة
maxAspectRatioInHorizontalبالقيمة التلقائيةALWAYS_ALLOW. - تمت إضافة
maxAspectRatioInPortraitبالقيمة التلقائية 1.4. - تم تحديد فئة
FinishBehaviorمتداخلة لاستبدال ثوابت سلوك الإنهاء. - تم تطبيق تغييرات الموقع على فئة 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" />يسمح ذلك للنظام بتحسين سلوكيات التقسيم لتطبيق ما مسبقًا. SplitInfoنسبة- تحقَّق مما إذا كان الانقسام الحالي مكدّسًا:
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()
- تغيير
- عمليات نقل بيانات المواقع
SplitRule:- تستخدم السمتان
minWidthوminSmallestWidthالآن وحدات dp بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام الاستدعاء التالي:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )أو ببساطة تقسيمminWithبالبكسل علىdisplayMetrics#density.
- تستخدم السمتان
- يجب نقل ثوابت السلوك النهائي إلى ثوابت الفئة الشبيهة بالتعداد
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.Builder:- تغيير
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الثوابت الشبيهة بتعدادFinishBehavior. راجِع "عمليات نقل بيانات SplitRule" لمعرفة التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)لعرض الانقسامات على الأجهزة في الوضع العمودي.
- تغيير
- عمليات نقل البيانات
SplitPlaceholder.Builder:- يحتوي على المَعلمتَين
filtersوplaceholderIntentفقط. يتم نقل السمات الأخرى إلى دوال الضبط. راجِع القسم "عمليات نقل بيانات SplitPairRule.Builder" للاطّلاع على التفاصيل. - تأخذ السمة
setFinishPrimaryWithPlaceholderالثوابت المشابهة للتعدادFinishBehavior. راجِع "عمليات نقل بيانات 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كواجهة برمجة تطبيقات ثابتة - إصلاحات أخطاء متنوّعة.
الإصدار 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إلى عدة وحدات:- وحدة
ActivityEmbeddingControllerلواجهات برمجة التطبيقات ذات الصلة بـActivityأوActivityStack - تم نقل
isActivityEmbeddedمنSplitControllerإلىActivityEmbeddingController. - وحدة
RuleControllerللعمليات ذات الصلة بـEmbeddingRule: - تمت إزالة واجهات برمجة التطبيقات التالية
SplitController:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
- تمت إضافة واجهات برمجة التطبيقات
RuleController:addRule(): لإضافة قاعدة أو تعديل القاعدة التي تحمل العلامة نفسها-
removeRule(): لإزالة قاعدة من مجموعة القواعد المسجّلة. -
setRules(): تحدّد مجموعة من القواعد. clearRules(): لإزالة جميع القواعد المسجَّلة- `parseRules()`: تحلّل القواعد من تعريفات قواعد XML.
- وحدة
- تتطلّب جميع الوحدات سياقًا يتم إعداده باستخدام طريقة
#getInstance()، بما في ذلك:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- تمت إضافة الفئة
EmbeddingAspectRatioلتحديد الثوابت التي تتضمّن سلوكًا مشابهًا للتعداد والمتعلّقة بنسبة العرض إلى الارتفاع. - تمت إضافة الفئة
SplitAttributesلتحديد التنسيق المقسّم. - تمت إضافة وظائف الآلة الحاسبة
SplitAttributesإلىSplitControllerلتخصيص تنسيقات الشاشة المقسّمة:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()للتحقّق مما إذا كانت واجهات برمجة التطبيقات SplitAttributesCalculator متوافقة مع الجهاز
- تمت إضافة الحقل
EmbeddingRule#tag. - تحديثات واجهة برمجة التطبيقات في
SplitRule:- تمت إضافة
defaultSplitAttributes: تحدّد هذه السمة التنسيق التلقائي للتقسيم، وهي تحلّ محلّsplitRatioوlayoutDirection. - أضفنا ترجمة لسمتَي XML
splitRatioوsplitLayoutDirectionإلىdefaultSplitAttributes. - تم تغيير تعريفات الحد الأدنى للأبعاد لاستخدام وحدات بكسل مستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDpبالقيمة التلقائية 600dp. - تم تغيير
minWidthإلىminWidthDpبالقيمة التلقائية 600dp. - تم تغيير
minSmallestWidthإلىminSmallestWidthDpبالقيمة التلقائية 600dp. - تمت إضافة
maxAspectRatioInHorizontalبالقيمة التلقائيةALWAYS_ALLOW. - تمت إضافة
maxAspectRatioInPortraitبالقيمة التلقائية1.4. - تم تحديد فئة
FinishBehaviorمتداخلة لاستبدال ثوابت سلوك الإنهاء. - تم تطبيق تغييرات السمة على الفئة المضمّنة
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" />يسمح ذلك للنظام بتحسين سلوكيات التقسيم لتطبيق ما مسبقًا. SplitInfoنسبة- تحقَّق مما إذا كان الانقسام الحالي مكدّسًا:
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()
- تغيير
- عمليات نقل بيانات المواقع
SplitRule:- تستخدم السمتان
minWidthوminSmallestWidthالآن وحدات dp بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام الاستدعاء التالي:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )أو ببساطة تقسيمminWithبالبكسل علىdisplayMetrics#density.
- تستخدم السمتان
- يجب نقل ثوابت السلوك النهائي إلى ثوابت الفئة الشبيهة بالتعداد
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.Builder:- تغيير
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الثوابت الشبيهة بتعدادFinishBehavior. راجِع "عمليات نقل بيانات SplitRule" لمعرفة التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)لعرض الانقسامات على الأجهزة في الوضع العمودي.
- تغيير
- عمليات نقل البيانات
SplitPlaceholder.Builder:- يحتوي على المَعلمتَين
filtersوplaceholderIntentفقط. يتم نقل السمات الأخرى إلى دوال الضبط. راجِع القسم "عمليات نقل بيانات SplitPairRule.Builder" للاطّلاع على التفاصيل. - تأخذ السمة
setFinishPrimaryWithPlaceholderالثوابت المشابهة للتعدادFinishBehavior. راجِع "عمليات نقل بيانات 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من سياق واجهة المستخدم
تغييرات واجهة برمجة التطبيقات
- أضِف
splitSupportStatusللإشارة إلى ما إذا كانت ميزة "تضمين النشاط" متاحة. (I10024) - جعل واجهة برمجة التطبيقات
WindowLayoutInfoUI Context تجريبية (I58ee0) - تضيف هذه الحزمة
WindowAreaControllerوواجهات برمجة التطبيقات لتفعيل "وضعRearDisplay" لنقل النافذة الحالية إلى الشاشة التي تتوافق مع الكاميرا الخلفية. (Iffcbf) - تعديل لون الخلفية التلقائي (I1ac1b)
- أضِف مَعلمات
SplitAttributes. (I18bdd) - أضِف واجهات برمجة التطبيقات الخاصة بـ
SplitRuleوSplitAttributesوSplitAttributesCalculator. (I92d23) - تحسين واجهات برمجة التطبيقات حول
maxAspectRatio:- استبدِل
alwaysAllow()وalwaysDisallow()بـALWAYS_ALLOWوALWAYS_DISALLOW. - تعديل مستندات واجهة برمجة التطبيقات الخاصة بالوسم @see لتتضمّن مستندات مستقلة (I3057b)
- استبدِل
- تمت إزالة المنشئات التالية من واجهات برمجة التطبيقات العامة لأنّه من المفترض ألا يتم استدعاؤها من خلال التطبيقات.
SplitInfoconstructorActivityStackconstructor (Ide534)
- أصبح بإمكان
SplitRuleالآن إجراء عمليات الدفع باستخدامmaxAspectRatioInPortrait/Landscape. لا يسمح إلا بتقسيم الأنشطة عندما تكون نسبة العرض إلى الارتفاع للحدود الرئيسية أصغر منmaxAspectRatioالمطلوبة أو تساويها. (Ia5990) - تغيير
RuleController#parseRulesإلى قيمة ثابتة (I785df) - تحسين واجهات برمجة التطبيقات المتعلّقة بـ ActivityEmbedding
- تطابق أسماء واجهات برمجة التطبيقات - استخدام add/remove للعديد من الحالات:
- تغيير
registerRuleإلىaddRule - تغيير
unregisterRuleإلىremoveRule - استبدِل
getSplitRulesبـgetRulesلأنّActivityRuleليس قاعدة تقسيم. - أضِف
RuleController#setRulesلضبط مجموعة من القواعد - استخرِج واجهات برمجة التطبيقات ذات الصلة بقاعدة الاستخراج من
SplitControllerإلى العنصر الفرديRuleController. وهم: 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()بعد هذا التغيير:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- تحسين واجهات برمجة التطبيقات SplitRule:
- استخدِم الحدّ الأدنى للأبعاد بوحدات DP بدلاً من البكسل في
SplitRule. - إعادة تصميم
SplitRuleBuilder لتصبح السمة min dimensions اختيارية (I95f17)
- استخدِم الحدّ الأدنى للأبعاد بوحدات DP بدلاً من البكسل في
- تمرير سياق لإعداد
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 - تمت إزالة علامات واجهات برمجة التطبيقات التجريبية من واجهات برمجة التطبيقات
ActivityEmbedding. - إخفاء الدالة الإنشائية
ActivityRuleلأنّBuilderهي الطريقة المفضّلة للإنشاء - أضِف طريقة تجريبية للحصول على
WindowInsetsعلىWindowMetrics. - تعديل
SplitPlaceholderFinishBehaviorلمنع إكمال العنصر النائب وقد أدّى إنهاء العنصر النائب إلى حدوث بعض السلوكيات المربكة.
تغييرات واجهة برمجة التطبيقات
- اجعل val
isEmptyعامًا لاستبدال funisEmpty. - أعِد تسمية أنشطة المَعلمة
ActivityStackإلىactivitiesInProcess. (Ia5055) - أزِل
ActivityFilter#matchesClassNameوActivityFilter#matchesClassNameOrWildCardلأنّهما يسبّبان التباسًا. - أضِف
ActivityFilter#componentNameوActivityFilter#intentActionللسماح للمتصل بالتمييز بين الفلاتر المختلفة (I41f22) - إزالة واجهات برمجة التطبيقات
@Deprecatedمن واجهة برمجة التطبيقات التجريبية (I216b3) - إزالة
@ExperimentalWindowApiلواجهات برمجة التطبيقات الخاصة بتضمين الأنشطة (I69ebe) - إخفاء أداة إنشاء
ActivityRule، واستخدام أداة إنشاء بدلاً من ذلك (If4eb6) - إضافة واجهات برمجة تطبيقات للتحقّق مما إذا كان أحد الأنشطة جزءًا من
ActivityFilter(Ia43cf) - تعديل ملفات واجهة برمجة التطبيقات لتعكس التغييرات في الفئتين
WindowMetricsوWindowMetricsCalculatorCompat(I667fe) - تعديل
ActivityEmbeddingJavadoc الخاص بالخاصية واسم الفئة (Ia1386) - إضافة أسماء علامات السمة
ActivityEmbeddingلاستخدامها في ملف AndroidManifest.xml (Id1ad4) - تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين
SplitPlaceholderFinishBehaviorوSplitPlaceholderRule.finishPrimaryWithPlaceholder، وهذا يحلّ محلّSplitPlaceholderRule.finishPrimaryWithSecondaryالحالية التي تحدّد وقت انتهاء الأنشطة النائبة وكيفية عمل الأنشطة المرتبطة في "تضمين الأنشطة". (I64647)
إصلاح الأخطاء
- تضيف هذه الحزمة
WindowAreaControllerوواجهات برمجة التطبيقات لتفعيل "وضعRearDisplay" لنقل النافذة الحالية إلى الشاشة التي تتوافق مع الكاميرا الخلفية. (I388ab)
الإصدار 1.1.0-alpha03
27 يوليو 2022
تم طرح androidx.window:window-*:1.1.0-alpha03. يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.
الميزات الجديدة
- عدِّل القيم التلقائية لقواعد التضمين.
تغييرات واجهة برمجة التطبيقات
- تعديل القيم التلقائية لخصائص قاعدة التضمين (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
تغييرات واجهة برمجة التطبيقات
- واجهة برمجة تطبيقات عامة للتحقّق مما إذا كان يتم تضمين نشاط. (I39eb7)
إصلاح الأخطاء
- إضافة واجهات برمجة تطبيقات تخصّص سلوك الإنهاء للحاويات في تقسيمات الأنشطة (I1a1e4)
- تمت إضافة خيار إعداد جديد لقواعد تقسيم الأنشطة. (Iec6af)
الإصدار 1.0
الإصدار 1.0.0
26 يناير 2022
تم طرح androidx.window:window-*:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.
الميزات الرئيسية في الإصدار 1.0.0
- إتاحة استخدام الهواتف القابلة للطي من خلال
WindowInfoTrackerوFoldingFeatureWindowMetricsCalculatorللمساعدة في احتساب WindowMetrics الحالية.
الإصدار 1.0.0-rc01
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.window:window-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.
الميزات الجديدة
- إتاحة استخدام الهواتف القابلة للطي من خلال
WindowInfoTracker - أضِف طرقًا لاحتساب
WindowMetricsالحالي والأقصى. - أضِف واجهات برمجة تطبيقات اختبار داعمة.
الإصدار 1.0.0-beta04
17 نوفمبر 2021
تم طرح androidx.window:window-*:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
الميزات الجديدة
- إعادة تسمية WindowInfoRepository إلى WindowInfoTracker
- اجعل النشاط من التبعيات الصريحة لطريقة WindowInfoTracker.
- إضافة TestRule بسيطة إلى WindowMetricsCalculator لمساعدة المطوّرين الذين يستخدمون Robolectric
تغييرات واجهة برمجة التطبيقات
- استخراج الإضافات (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 هذه التعديلات.
الميزات الجديدة
- إضافة واجهات برمجة تطبيقات تجريبية لدمج الأنشطة يتيح إصدار التصميم الأولي هذا عرض نشاطَين جنبًا إلى جنب.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة واجهة برمجة التطبيقات currentWindowMetrics لأنّنا لا يمكننا توفيرها بدقة. يُرجى استخدام WindowMetricsCalculator بدلاً من ذلك (Icda5f)
- تم تعديل واجهة برمجة التطبيقات الخاصة بالإضافات. (Ica92b)
- تمت إضافة واجهة لميزة جديدة تتيح تضمين الأنشطة وعرضها جنبًا إلى جنب في نافذة المهمة الرئيسية. (I5711d)
- تم إخفاء دوال الإنشاء الخاصة بفئتَي WindowMetrics وWindowLayoutInfo، يُرجى استخدام واجهات برمجة التطبيقات الخاصة بالاختبار بدلاً من ذلك. (I5a1b5)
- أضِف واجهة برمجة تطبيقات لإنشاء عناصر WindowLayoutInfo وهمية. (I4a2fd)
إصلاح الأخطاء
- تم إصلاح مشكلة تسرّب الذاكرة. (I3fc79، b/202989046)
الإصدار 1.0.0-beta02
1 سبتمبر 2021
تم طرح androidx.window:window-*:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
الميزات الجديدة
- أضِف تعليقًا توضيحيًا تجريبيًا لإضافة تعليقات توضيحية إلى واجهات برمجة التطبيقات التجريبية. (I9f1b6)
- أضِف طريقة اختبار لإنشاء FoldingFeature اختبارية تقبل Rect. سيؤدي ذلك إلى تسهيل الاختبار عند استخدام Robolectric بدلاً من Activity الفعلي. (Id1cca)
الإصدار 1.0.0-beta01
18 أغسطس 2021
تم طرح androidx.window:window-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
الميزات الجديدة
- تمت إزالة الثوابت القديمة وتحويل
FoldingFeatureإلى واجهة.
تغييرات واجهة برمجة التطبيقات
- إزالة الثوابت القديمة وتحويل FoldFeature إلى واجهة (I9a2d5)
إصلاح الأخطاء
- تمت ترقية المكتبات التي تعتمد على المكتبة
Test Coreإلى الإصدار1.4.0، وستعمل الآن مع الإصدار S من نظام التشغيل Android. (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 الاختبارية
- عدِّل الحِزم لتجميع الصفوف استنادًا إلى الميزة التي تدعمها.
تغييرات واجهة برمجة التطبيقات
- إعادة تسمية ActivityExt إلى ActivityExtensions تغيير Repo إلى Repository (I61a16)
- تعديل حِزم الصفوف (I23ae2)
- إزالة WindowMetrics من WindowInfoRepo (I24663)
- إزالة WindowManager واستخدام WindowInfoRepo
- جعل WindowBackend داخليًا (I06d9a)
- تحويل مقاييس النافذة إلى Flow
- إعادة تسمية محوّل Java إلى WindowInfoRepoCallbackAdapter
- أزِل callbackFlow حتى لا يتم استخدام أي واجهات برمجة تطبيقات تجريبية أخرى. (Ia4d15)
- إضافة طريقة مساعدة لإنشاء ميزات العرض التجريبية
- التغيير من occlusionMode إلى occlusionType (If4cff)
إصلاح الأخطاء
- تم إصلاح خطأ Proguard الذي كان يؤدي إلى إزالة المكتبة الأساسية.
- تم إصلاح الخطأ الذي لم يتم فيه تسليم WindowLayoutInfo إلى المشتركين الإضافيين.
- تم إصلاح الخطأ الذي كان يؤدي إلى عدم تفعيل تحديثات ميزة الطي عند إجراء تغييرات في الإعدادات.
الإصدار 1.0.0-alpha09
30 حزيران (يونيو) 2021
تم طرح androidx.window:window-*:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
الميزات الجديدة
- تغيير الثوابت الصحيحة إلى تعدادات غير محدودة
- أضِف أداة اختبار لإنشاء ميزات الطي الاختبارية.
تغييرات واجهة برمجة التطبيقات
- إضافة طريقة مساعدة لإنشاء ميزات العرض التجريبية (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جديد لعرض واجهات برمجة تطبيقات متوافقة مع Java لتسجيل عمليات رد الاتصال وإلغاء تسجيلها - عنصران جديدان
window-rxjava2وwindow-rxjava3لعرض واجهات برمجة التطبيقات المتوافقة مع RxJava
تغييرات واجهة برمجة التطبيقات
- أضِف
WindowServicesلتوفير التبعيات بشكل موحّد.- إضافة واجهة برمجة تطبيقات مستندة إلى إجراءات روتينية مشتركة لاستهلاك معلومات تنسيق النافذة (Iab70f)
- نقل مكتبة "مدير النوافذ الأساسي" إلى Kotlin (Icca34)
إصلاح الأخطاء
- أضِف فئة بيانات جديدة لتمثيل حدود الميزة. (I6dcd1)
الإصدار 1.0.0-alpha06
5 أيار (مايو) 2021
تم طرح androidx.window:window:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
الميزات الجديدة
- لقد بدأنا عملية نقل البيانات إلى Kotlin وسننتهي منها في الإصدار التالي.
- تمت إزالة DeviceState من واجهة برمجة التطبيقات العامة، لذا يُرجى استخدام FoldingFeature بدلاً منها.
- لقد أزلنا
STATE_FLIPPEDمن حالات FoldingFeature لأنّها غير متوافقة مع أي حالة استخدام في الوقت الحالي. - لقد أزلنا أيضًا واجهات برمجة التطبيقات الأخرى التي تم إيقافها نهائيًا.
تغييرات واجهة برمجة التطبيقات
- إضافة Kotlin كعنصر تابع
- نقل المكتبة الأساسية إلى Kotlin (Idd995)
- تمت إزالة أداة إنشاء
DisplayFeature. (I61fa4) - تمت إزالة
DeviceStateمن واجهة برمجة التطبيقات المتاحة للجميع، لذا يُرجى استخدامFoldingFeatureبدلاً منها. (Id6079) - إزالة معاودة الاتصال بحالة الجهاز من الإضافات (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. إنّ طرق القراءة المتزامنة معرَّضة لحدوث أخطاء لأنّ هناك حالة سباق ضمنية. تسجيل أدوات المعالجة وعمليات رد الاتصال لتلقّي آخر المعلومات عن WindowLayoutInfo
تغييرات واجهة برمجة التطبيقات
- إضافة طرق سهلة الاستخدام للتعامل مع FoldingFeature (Ie733f)
- إزالة طرق القراءة المتزامنة من WindowManager (I96fd4)
الإصدار 1.0.0-alpha04
10 مارس 2021
تم طرح androidx.window:window:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.
الميزات الجديدة
- تم إصلاح الخطأ الذي لا يتم فيه إصدار WindowLayoutInfo إذا لم يكن هناك تنفيذ من الشركة المصنّعة للجهاز الأصلي. الآن، نرسل WindowLayoutInfo فارغًا.
- تم إصلاح الخطأ الذي كان يؤدي إلى عدم تعديل الحالة بشكل صحيح إذا تغيّرت حالة المفصلة أثناء تشغيل التطبيق في الخلفية. من المفترض أن تكون الحالة متسقة الآن.
- تعديل ملفات Proguard لتجاهل التحذيرات من التبعيات في وقت التشغيل
إصلاح الأخطاء
- إرسال قيمة فارغة عند عدم توفّر مكتبة الشركة المصنّعة للجهاز الأصلي (Ide935)
الإصدار 1.0.0-alpha03
18 شباط (فبراير) 2021
تم طرح androidx.window:window:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
الميزات الجديدة
- إصدار قيمة فارغة لـ WindowLayoutInfo عندما يكون تنفيذ الشركة المصنّعة للمعدّات الأصلية فارغًا من المفترض أن يسهّل ذلك استخدام المكتبة على المزيد من الأجهزة. بما أنّ واجهات برمجة التطبيقات غير متزامنة، لا يزال يُنصح بأن تكتب التطبيقات بعض الرموز البرمجية الدفاعية وأن تصدر قيمة تلقائية بعد انتهاء المهلة. ليس لدينا أي ضمانات بشأن عمليات التنفيذ من قِبل الشركات المصنّعة للمعدات الأصلية، وقد يتأخر ظهور القيمة الأولية.
إصلاح الأخطاء
- إرسال قيمة فارغة عند عدم توفّر مكتبة الشركة المصنّعة للجهاز الأصلي (Ide935)
الإصدار 1.0.0-alpha02
27 يناير 2021
تم طرح androidx.window:window:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
الميزات الجديدة
أوقفنا نهائيًا بعض واجهات برمجة التطبيقات للمساعدة في تبسيطها وتقليل الأخطاء. وتتضمّن بعض الأمثلة البارزة إزالة عمليات القراءة المتزامنة من WindowManager وإيقاف DeviceState نهائيًا. يمكن أن تؤدي عمليات القراءة المتزامنة إلى حدوث حالات تعارض وعرض واجهة مستخدم غير صحيحة.
لقد حوّلنا DisplayFeature إلى واجهة ستنفّذها الميزات الأخرى من الآن فصاعدًا. الميزة الأولى هي FoldingFeature التي تمثّل الآن طي الشاشة أو المفصلة. يحتوي هذا العنصر أيضًا على حالة المفصلة التي تحلّ محل DeviceState.
تم طرح WindowMetrics في نظام التشغيل Android 11 لتزويد المطوّرين بطريقة بسيطة للاستعلام عن مقاييس حول نافذة، مثل موضعها وحجمها على الشاشة وأي حواف داخلية للنظام. لقد أعدنا توفير واجهة برمجة التطبيقات في هذا الإصدار لكي يتمكّن المطوّرون من الاستفادة من WindowMetrics ومواصلة توفير الدعم لإصدارات Android القديمة. يمكن الحصول على WindowMetrics من خلال واجهتَي برمجة التطبيقات
WindowManager#getCurrentWindowMetrics()وWindowManager#getMaximumWindowMetrics().
تغييرات واجهة برمجة التطبيقات
- إيقاف واجهات برمجة التطبيقات التي ستتم إزالتها في الإصدار الأولي التالي (Ib7cc4)
- تعديل
ExtensionInterfaceلقبول مراجع Activity الواضحة. (I07ded) - توضّح هذه الصفحة WindowMetrics API. (I3ccee)
- إزالة طرق القراءة المتزامنة من WindowManager (I69983)
- جعل حزمة ExtensionWindowBackend محمية. (Ied208)
إصلاح الأخطاء
- تعديل واجهات برمجة التطبيقات
ExtensionInterfaceلقبول السياقات المرئية (I8e827)
المساهمة الخارجية
- دمج 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: تحدّد واجهة برمجة التطبيقات الجديدة هذه أي انقطاعات في أسطح الشاشة المسطّحة المتواصلة، مثل المفصّلات أو الطيّات. -
DeviceState: توفّر واجهة برمجة التطبيقات الجديدة هذه وضعية الهاتف الحالية من قائمة أوضاع محدّدة (على سبيل المثال،CLOSEDوOPENEDوHALF_OPENEDوما إلى ذلك).