المجموعة
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأولي |
|---|---|---|---|---|
| 14 يناير 2026 | 1.5.0 | - | 1.6.0-beta01 | - |
تحديد الاعتماديات
لإضافة اعتمادية على Collection، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
رائع
dependencies { def collection_version = "1.5.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.5.0" implementation("androidx.collection:collection:$collection_version") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.6
الإصدار 1.6.0-beta01
14 يناير 2026
تم طرح androidx.collection:collection-*:1.6.0-beta01. يتضمّن الإصدار 1.6.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة الإضافتين
.toScatterSet()و.toScatterMap(). توفّر هذه الدوال بديلاً للقراءة فقط لدوال التحويل القابلة للتغيير، وتعرض كائنات فردية غير قابلة للتغيير عندما تكون المجموعة المصدر فارغة. (I1769a، b/459867876) - استبدِل الدالتَين الإنشائيتَين الزائفتَين
MutableScatterMap(source)وMutableScatterSet(source)بدالتَي الإضافة العاديتَين.toMutableScatterMap()و.toMutableScatterSet(). يتوافق ذلك مع اصطلاحات Kotlin بشأن عمليات تحويل المجموعات. (Ic9ca6، b/459867876) - أضِف دالتَي المصنع
MutableScatterMap(Map)وMutableScatterSet(Set). استخدِم هذه الدوال لإنشاء مجموعة مبعثرة بسهولة معبأة مسبقًا بمحتوى مجموعة حالية. (I51d70)
إصلاح الأخطاء
- تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية في JSpecify، وهي تعليقات توضيحية خاصة بالاستخدام. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح:
-Xjspecify-annotations=strict(هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من المترجم البرمجي للغة Kotlin) (I05181، b/326456246)
الإصدار 1.6.0-alpha01
27 أغسطس 2025
تم طرح androidx.collection:collection-*:1.6.0-alpha01. يتضمّن الإصدار 1.6.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)
إصلاح الأخطاء
- في السابق، كانت الدالة
SparseArrayCompatتعرضnullللوسيطة valueAt وkeyAtعند تمرير فهرس يندرج ضمن النطاق المخصّص، ولكن خارج النطاق المُدرَج0..size -1. وكما هو موضّح في المستندات، لم يكن من المتوقّع حدوث هذا السلوك أبدًا، وهو خارج نطاق الإدخال الصالح، ويحلّ هذا التغيير هذه المشكلة من خلال عرض الخطأIndexOutOfBoundsبدلاً من ذلك عند تمرير فهرس غير صالح. (I68453)
المساهمة الخارجية
نشكر "جيك وارتون" على المساهمات التالية:
- تعديل سلوك
joinToStringليتوافق مع مجموعات المنصات من خلال إضافة فاصلة قبل مؤشر الاقتطاع واللاحقة بعده عند الحدّ من العناصر المضمّنة (I1b7e8) - لم يعُد
ScatterSet.hashCodeيوفّر الحماية من التكرار (أي إضافة المجموعة إلى نفسها). يؤدي ذلك إلى توافق سلوكه معScatterMapوHashSetوالمجموعات الأساسية المستندة إلى التشتيت (مثلLongSet). يُرجى العِلم أنّ طريقةequalsكانت معرَّضة للتكرار، وأنّtoStringتحمي من ذلك، وكلا السلوكين يتوافقان مع المجموعات الأخرى. (I9c84a) - أصبحت الدالة
ScatterSet.retainAllمضمّنة الآن لتجنُّب إنشاء مثيل lambda. (Ifa4b7) ScatterSet.hashCodeلم يعُد يستخدم سعته في احتساب التجزئة، ما يضمن أنّه حتى إذا كانت السعات مختلفة، سيتم إنتاج القيمة نفسها. (Ic863b)- يتم الآن عرض الخطأ
IllegalStateExceptionإذا استدعيتremove()قبلnext()على مكرّر لمجموعاتkeysأوvaluesأوentriesمنScatterMap.asMap()أوScatterSet.asSet(). يؤدي ذلك إلى تطابق سلوكها مع سلوك الخريطة العادية والمجموعة. (I71694)
الإصدار 1.5
الإصدار 1.5.0
12 مارس 2025
تم طرح androidx.collection:collection-*:1.5.0. يتضمّن الإصدار 1.5.0 هذه التعديلات.
الإصدار 1.5.0-rc01
26 فبراير 2025
تم طرح androidx.collection:collection-*:1.5.0-rc01. يتضمّن الإصدار 1.5.0-rc01 هذه التعديلات.
الإصدار 1.5.0-beta03
29 يناير 2025
تم طرح androidx.collection:collection-*:1.5.0-beta03. يتضمّن الإصدار 1.5.0-beta03 هذه التعديلات.
الإصدار 1.5.0-beta02
15 يناير 2025
تم طرح androidx.collection:collection-*:1.5.0-beta02. يتضمّن الإصدار 1.5.0-beta02 هذه التعديلات.
الإصدار 1.5.0-beta01
11 ديسمبر 2024
تم طرح androidx.collection:collection-*:1.5.0-beta01. يتضمّن الإصدار 1.5.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة دعم لاستهداف
watchosDeviceArm64KMP واستهداف الإصدار 1.9 من Kotlin (Icf15d، b/364652024)
الإصدار 1.5.0-alpha06
13 نوفمبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha06. يتضمّن الإصدار 1.5.0-alpha06 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح عُطل كان يمكن أن يحدث في
SieveCacheوOrderedScatterSetعند إضافة العديد من العناصر التي تتسبّب في حدوث تعارضات متكرّرة في المفاتيح. (Iaaf3d، b/375607736) - إضافة هدف wasm إلى مكتبة المجموعة (I66fe3، b/352722444)
الإصدار 1.5.0-alpha05
30 أكتوبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha05. يتضمّن الإصدار 1.5.0-alpha05 هذه التعديلات.
الإصدار 1.5.0-alpha04
16 أكتوبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha04. يتضمّن الإصدار 1.5.0-alpha04 هذه التعديلات.
الإصدار 1.5.0-alpha03
2 أكتوبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha03. يتضمّن الإصدار 1.5.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تحديث إصدار Kotlin إلى 1.9 (I1a14c)
المساهمة الخارجية
- مواصلة السير في اتجاه
containsللوصول إلىcontainsKeyشكرًا "جيك وارتون". (I9362b) - إضافة أدوات إنشاء حاويات للمجموعات المتخصّصة في القيم العددية شكرًا "جيك وارتون". (I13179)
الإصدار 1.5.0-alpha02
18 سبتمبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha02. يتضمّن الإصدار 1.5.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تضيف هذه السمة إمكانية استهداف منصة
watchosDeviceArm64. (I1cc04، b/364652024)
الإصدار 1.5.0-alpha01
4 سبتمبر 2024
تم طرح androidx.collection:collection-*:1.5.0-alpha01. يتضمّن الإصدار 1.5.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
-
OrderedScatterSetهي مجموعة جديدة مرتبة ولا تتطلّب تخصيصًا (Ic4178) -
SieveCacheهو بديل جديد لا يتطلّب تخصيصًا لـLruCache، ويوفر خصائص أفضل لمعدّل التطابق. (I50a17) - تم عرض التمثيل الداخلي
packedValueلكل منIntIntPairوFloatFloatPair. (Ifeb75، b/331853566) - إضافة إذن الوصول إلى مصفوفة المحتوى في مجموعات القوائم (I899d5، b/333903173)
- أضِف
DoubleList، وهي بنية بيانات تشبه القائمة وتم تحسينها لقيم Double. (Ia10d1، b/315127635)
إصلاح الأخطاء
- سيتم نقل مكتبة المجموعات إلى الإصدار 1.9 من Kotlin (I0782f)
- تحسين العديد من المجموعات لتكون أكثر فعالية (Ic0566)
الإصدار 1.4
الإصدار 1.4.5
30 أكتوبر 2024
تم طرح androidx.collection:collection-*:1.4.5. يتضمّن الإصدار 1.4.5 هذه التعديلات.
الإصدار 1.4.4
18 سبتمبر 2024
تم طرح androidx.collection:collection-*:1.4.4. يتضمّن الإصدار 1.4.4 هذه التعديلات.
إصلاح الأخطاء
- حلّ المشكلة
ArrayIndexOutOfBoundsعند ترتيب مجموعة فارغة (I65245)
الإصدار 1.4.3
7 أغسطس 2024
تم طرح androidx.collection:collection-*:1.4.3. يتضمّن الإصدار 1.4.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تلف البيانات التي يمكن أن تحدث في
ScatterMapوScatterSetومتغيراتهما الأساسية. (I38a4a، b/352560465) - تحسينات في الأداء على وجه الخصوص:
- استبدِل طلبات
check()وrequired()بصيغ لا تعرض استثناءات مضمّنة. يؤدي ذلك إلى تقليل حجم الملف الثنائي النهائي، والأهم من ذلك أنّه يخفّف قليلاً من الضغط على ذاكرة التخزين المؤقت i-cache. - تم تحسين
removeDeletedMarkers()في مجموعة "المخططات المبعثرة". يمحو الإصدار الجديد علامات الحذف بمعدل 8 علامات في المرة الواحدة ويتخطى عمليات الكتابة الأكثر تكلفة أثناء العملية. (Ic0566)
- استبدِل طلبات
الإصدار 1.4.2
24 يوليو 2024
تم طرح androidx.collection:collection-*:1.4.2. يتضمّن الإصدار 1.4.2 هذه التعديلات.
الميزات الجديدة
- تتضمّن أهدافًا إضافية من Kotlin Multiplatform:
watchosوtvosوlinuxArm64. (b/352543988)
الإصدار 1.4.1
10 يوليو 2024
تم طرح androidx.collection:collection-*:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.
إصلاح الأخطاء
- إزالة العلامات المحذوفة من الخريطة/المجموعة عند تغيير الحجم (7a996c5، b/345960092)
الإصدار 1.4.0
24 يناير 2024
تم طرح androidx.collection:collection-*:1.4.0. يتضمّن الإصدار 1.4.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.3.0
تمت إضافة مجموعات جديدة عالية الكفاءة لتخزين الأنواع الأساسية بدون تحويلها إلى كائنات:
-
MutableScatterMapوScatterMap- فئات تتضمّنMutableMapوواجهة برمجة تطبيقات تشبه الخريطة MutableScatterSet&ScatterSet- الفئات التي تتضمّنMutableSetوواجهة برمجة تطبيقات تشبه المجموعة-
MutableObjectListوObjectList- فئات تتضمّنMutableListوواجهة برمجة تطبيقات تشبه القائمة
على سبيل المثال، الخريطة التي تحتوي على مفتاح عدد صحيح وقيمة من النوع المرجعي هي IntObjectMap<T>. الخريطة التي تحتوي على مفتاح طويل وقيمة عائمة هي LongFloatMap. لا يتوفّر إصدار بالاسم ObjectObjectMap لأنّ ScatterMap/MutableScatterMap يغطّي هذا الاسم.
الإصدار 1.4.0-rc01
10 يناير 2024
تم إصدار androidx.collection:collection-*:1.4.0-rc01 بدون أي تغييرات. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الإصدار 1.4.0-beta02
29 نوفمبر 2023
تم طرح androidx.collection:collection-*:1.4.0-beta02. يتضمّن الإصدار 1.4.0-beta02 هذه التعديلات.
الميزات الجديدة
- تحسين أداء
FloatFloatPair(If5537)
إصلاح الأخطاء
- تعرض الدالة التكرارية
ScatterMap.asMap()الآن مثيلات جديدة (I28932، b/310365754)
الإصدار 1.4.0-beta01
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.collection:collection-*:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة
ListIteratorالتي كانت تضبط القيم بشكل غير صحيح فيObjectList، ما كان يؤدي إلى حدوث عطل بسببIndexOutOfBoundsException. (I3bd8a، b/307049391)
الإصدار 1.4.0-alpha02
18 أكتوبر 2023
تم طرح androidx.collection:collection-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمّت إضافة تحميل زائد للدالة
putيعرض القيمة السابقة عند استبدالها بجميع المجموعات الأساسية، مثلFloatFloatMap. - تحويل طرق
removeIfفي المجموعات الأساسية، مثلMutableFloatFloatMap، إلى طرق مضمّنة يضمن ذلك عدم تخصيص دالة lambda لـremoveIf.
الإصدار 1.4.0-alpha01
4 أكتوبر 2023
تم طرح androidx.collection:collection-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
الميزات الجديدة
تمت إضافة مجموعات جديدة عالية الكفاءة تتضمّن تكلفة تخصيص منخفضة وأداءً عاليًا:
-
MutableScatterMapوScatterMap- فئات تتضمّنMutableMapوواجهة برمجة تطبيقات تشبه الخريطة MutableScatterSet&ScatterSet- الفئات التي تتضمّنMutableSetوواجهة برمجة تطبيقات تشبه المجموعة-
MutableObjectListوObjectList- فئات تتضمّنMutableListوواجهة برمجة تطبيقات تشبه القائمة
تمت إضافة مجموعات جديدة عالية الكفاءة لتخزين الأنواع الأساسية بدون تحويلها إلى كائنات:
-
Mutable[Int|Float|Long]List: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهةMutableList<Int|Float|Long>. يتوفّر أيضًا[Int|Float|Long]Listللقراءة فقط. على سبيل المثال، يمكن تخزين الأعداد الصحيحة فيIntList. -
Mutable[Int|Float|Long]Set: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهةMutableSet<Int|Float|Long>. يتوفّر أيضًا[Int|Float|Long]Setللقراءة فقط. على سبيل المثال، يمكن الاحتفاظ بالأعداد الصحيحة في IntSet. -
Mutable[Int|Float|Long|Object][Int|Float|Long|Object]Map: فئات تتضمّن واجهة برمجة تطبيقات مشابهة لواجهةMutable<Int|Float|Long,T, Int|Float|Long|T>. يتوفّر أيضًا[Int|Float|Long|Object][Int|Float|Long|Object]Mapللقراءة فقط. على سبيل المثال، الخريطة التي تحتوي على مفتاح عدد صحيح وقيمة من النوع المرجعي هيIntObjectMap<T>. الخريطة التي تحتوي على مفتاح طويل وقيمة عائمة هيLongFloatMap. لا يتوفّر إصدار بالاسمObjectObjectMapلأنّScatterMap/MutableScatterMapيغطّي هذا الاسم.
الإصدار 1.3.0
الإصدار 1.3.0
4 أكتوبر 2023
تم طرح androidx.collection:collection-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.2.0
- يمكنك الآن استخدام "المجموعات" في مشاريع Kotlin Multiplatform. يُرجى العِلم أنّ استهداف "المجموعات" على الأنظمة الأساسية غير Android لا يزال تجريبيًا، ولكن قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين لها.
- تم نقل كل الرمز المصدر إلى Kotlin. وفي إطار هذا التغيير، تم الآن تحديد أنواع العديد من واجهات برمجة التطبيقات بشكل صحيح من حيث القيمة الخالية، وأصبح عدد قليل من الأعضاء الخاصين بالحزمة
internal. تتوفّر قائمة بالتغييرات الدقيقة في ملاحظات الإصدار الثانوي 1.3.x أدناه. - بالإضافة إلى عملية نقل البيانات إلى Kotlin، تم دمج
collection-ktxمع العنصر الرئيسي للمجموعة. يمكنك بأمان إزالة أي تبعيات علىcollection:collection-ktxواستخدامcollection:collectionبدلاً منها، لأنّcollection-ktxأصبحت فارغة الآن.
الإصدار 1.3.0-rc01
6 سبتمبر 2023
تم إصدار androidx.collection:collection-*:1.3.0-rc01 بدون أي تغييرات. يتضمّن الإصدار 1.3.0-rc01 هذه التعديلات.
الإصدار 1.3.0-beta01
9 أغسطس 2023
تم طرح androidx.collection:collection-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.
الإصدار 1.3.0-alpha04
24 مارس 2023
تم طرح androidx.collection:collection-*:1.3.0-alpha04.
إصلاح الأخطاء
- تمت إزالة قيود التبعية من عناصر Maven لتجنُّب مشكلة في الإصدار في Kotlin Native Targets (b/274786186، KT-57531).
الإصدار 1.3.0-alpha03
22 مارس 2023
تم طرح androidx.collection:collection-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات.
الميزات الجديدة
- يمكنك الآن استخدام "المجموعات" في مشاريع KMM. يُرجى العِلم أنّ استهداف "المجموعات" على الأنظمة الأساسية غير Android لا يزال تجريبيًا، ولكننا قرّرنا دمج الإصدارات لتسهيل تجربة المطوّرين لها.
تغييرات واجهة برمجة التطبيقات
- تستخدم
ArraySetالآنMutableCollectionsبدلاً منAbstractMutableCollectionللسماح بتنفيذtoArray(I1ac32) بشكل أكثر فعالية من حيث استخدام الذاكرة.
إصلاح الأخطاء
- تتوفّر
ArraySet.toArrayالآن على JVM فقط، إذ كانت دائمًا مضمّنة فقط للتوافق مع Java. على مستخدمي Kotlin استخدام أدوات.toTypedArrayالمساعدة في مكتبة stdlib بشكل عام، لأنّها توفّر الوظيفة نفسها تمامًا مع إضافة ميزة أمان الأنواع. (I2c59b)
الإصدار 1.3.0-alpha02
27 يوليو 2022
تم طرح androidx.collection:collection:1.3.0-alpha02 وandroidx.collection:collection-ktx:1.3.0-alpha02. يتضمّن الإصدار 1.3.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أصبحت
SparseArrayCompatمتاحة الآن للأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (Ic9bd0 وb/219589118 وb/228347315) - أصبحت
CircularIntArrayمتاحة الآن للأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (I3d8ef، b/228344943) - أصبحت
LongSparseArrayمتاحة الآن للأنظمة الأساسية غير المستندة إلى JVM من العنصر المشترك (I73149، b/228347315)
الإصدار 1.3.0-alpha01
29 يونيو 2022
تم طرح androidx.collection:collection:1.3.0-alpha01 وandroidx.collection:collection-ktx:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم نقل إضافات
collection-ktxإلى عنصر مجموعات البيانات الرئيسي،androidx.collection:collection. يوفّر هذا التغيير إمكانية وصول مستخدمي Kotlin إلى إضافات ktx الحالية بدون الحاجة إلى تبعية ktx، مع الحفاظ على التوافق مع المستخدمين الحاليين. لم يعُد من المفيد الاحتفاظ بهذه الإضافات في عنصر ktx منفصل، لأنّ العنصر الرئيسي انتقل إلى Kotlin. (I6eef2)
تغييرات واجهة برمجة التطبيقات
- توسّع
ArraySetالآنAbstractMutableCollectionولم يعُد ينفّذ واجهة Collection مباشرةً. (If6da0، b/230860589) - تم تحويل
ArraySetإلى Kotlin. بسبب الكتابة الأكثر صرامة، قد لا يتم تجميع بعض استدعاءات Kotlin. (Id68c1، b/230860589)- تتضمّن عمليات الاستدعاء التالية نوع الوسيطة
T، وليسT?:ArraySet<T>.contains(null)ArraySet<T>.add(null)ArraySet<T>.remove(null)
- تتضمّن عمليات الاستدعاء التالية نوع الإرجاع
T?، وليسT!:ArraySet<T?>.valueAt(n)ArraySet<T?>.removeAt(n)ArraySet<T?>().iterator().next()
- لم يعُد من الممكن إجراء عمليات الاستدعاء التالية من Kotlin:
-
set.toArray()- استخدامset.toTypedArray() -
set.toArray(array)- استخدامset.forEachIndexed(array::set)
-
- تتضمّن عمليات الاستدعاء التالية نوع الوسيطة
- دمج أداة الإنشاء المحمّلة بشكل زائد لـ
SparseArrayCompatكمعلَمة اختيارية لمستخدمي Kotlin (If8407، b/227474719) - إزالة بنية عامل التشغيل لـ
SparseArrayCompat.get(key, defaultValue).ملاحظة: يتيح ذلك استخدام بنية عامل التشغيل لـ.get(key)، ولكنّه يربط بشكل أفضل مساحة واجهة برمجة التطبيقات الخاصة بـSparseArrayCompatبالفئات الأخرى في هذه المكتبة. (I9a38d) - نقل حِزم
LongSparseArrayإلى العنصر الرئيسي، androidx.collection:collection يوفّر هذا التغيير إمكانية وصول مستخدمي Kotlin إلى إضافات ktx الحالية بدون الحاجة إلى تبعية ktx، مع الحفاظ على التوافق مع المستخدمين الحاليين. لم يعُد من المفيد الاحتفاظ بهذه الإضافات في عنصر ktx منفصل، لأنّ العنصر الرئيسي انتقل إلى Kotlin. (I8659a) - حوِّل
LongSparseArrayإلى Kotlin. يضيف هذا التغيير قيمة فارغة صريحة إلى أنواعه، وهو تغيير متوافق مع النظام الثنائي، ولكن قد يتسبب في عدم توافق المصدر. على وجه الخصوص: لم يعُد بإمكانك الوصول إلى *.isEmptyكسمة، بل يجب الوصول إليها كاستدعاء دالة في Kotlin -.isEmpty()(Idfd0f) - حوِّل
SimpleArrayMapإلى Kotlin. يؤدي هذا التغيير إلى حدوث بعض التغييرات غير المتوافقة، وذلك نتيجة إمكانية التشغيل التفاعلي بين Java وKotlin وإمكانية تحديد قيمة null بشكل صحيح لأنواع البيانات في المصدر.- تمت إزالة إمكانية الوصول إلى واجهات برمجة التطبيقات الخاصة بالحزمة،
.mSizeو.mArrayو.mHashesو.indexOf()و.indexOfNull()و.indexOfValue()، وهذا تغيير غير متوافق مع الرمز الثنائي، ولكنّه يعكس مستوى الظهور المقصود لهذه الحقول وهو أقرب ما يمكننا تحقيقه في Kotlin لأنّها لا تتضمّن طريقة لتحديد مستوى الظهور الخاص بالحزمة. - تم الآن تحديد قيمة بعض الأنواع بشكل صحيح، والطرق المتأثرة هي:
.getOrDefaultو.keyAtو.valueAtو.setValueAtو.putو.putIfAbsentو.removeAtو.replace. - بالنسبة إلى مستخدمي Kotlin، أصبحت
.isEmpty()متاحة الآن كدالة فقط بدلاً من توفّرها أيضًا من خلال الوصول إلى السمة. (I271b7، b/182813986)
- تمت إزالة إمكانية الوصول إلى واجهات برمجة التطبيقات الخاصة بالحزمة،
حوِّل
CircularArrayإلى Kotlin. التغييرات البارزة:- يصحّح قيمة Null الخاصة بالأنواع العامة لتصبح غير Null، وهو ما كان يتعذّر الإعلان عنه سابقًا، ولكن تم فرضه في جميع واجهات برمجة التطبيقات العامة.
- بسبب إمكانية التشغيل التفاعلي بين Kotlin وJava، كان من الممكن سابقًا الوصول إلى بعض الطرق كسمات أو دوال. ومع ذلك، كان من الضروري إزالة هذه العناصر للحدّ من التكرار مع الحفاظ على التوافق الثنائي، وهذا تغيير غير متوافق مع المصدر. المكالمات المتأثرة هي:
.isEmptyو.getLast()و.getFirst(). (Ifffac)
حوِّل
CircularIntArrayإلى Kotlin. بسبب إمكانية التشغيل التفاعلي بين Kotlin وJava، كان من الممكن سابقًا الوصول إلى بعض الطرق كسمات أو وظائف. ومع ذلك، للحدّ من التكرار مع الحفاظ على التوافق الثنائي، كان من الضروري إزالة هذه العناصر، وهو تغيير غير متوافق مع المصدر. المكالمات المتأثرة هي:.isEmptyو.getLast()و.getFirst(). (Ie36ce)تحويل
LruCacheإلى Kotlin (Ia2f19)حوِّل
SparseArrayCompatإلى Kotlin. (If6fe8)تمت إضافة تغيير بسيط في السلوك إلى
SparseArrayCompat.valueAt()، والذي لم يعُد يعرضnullبشكل غير صحيح للمكالمات غير المهيأة خارج حدودsize()ولكن ضمن السعة الأولية المتوفّرة.يقدّم هذا التغيير أيضًا قيمة صحيحة لبعض الأنواع التي لم تكن متوفّرة سابقًا.
.get(): E?->.get(): E.replace(Int, Int?): Int?->.replace(Int, Int): Int?.replace(Int, Int?, Int?): Boolean->.replace(Int, Int, Int): Boolean.put(Int, Int?)->.put(Int, Int).putIfAbsent(Int, Int?): Int?->.putIfAbsent(Int, Int): Int?.setValueAt(index: Int, value: Int?)->.setValueAt(index: Int, value: Int).indexOfValue(value: Int?): Int->.indexOfValue(value: Int): Int.containsValue(value: Int?): Boolean->.containsValue(value: Int): Boolean.append(key: Int, value: Int?)->.append(key: Int, value: Int)
الإصدار 1.2.0
الإصدار 1.2.0
1 كانون الأول (ديسمبر) 2021
تم طرح androidx.collection:collection:1.2.0 وandroidx.collection:collection-ktx:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.1.0
- أضِف أداة إنشاء مصفوفة إلى
ArraySet. (Id7f19) - جعل
entrySet()متوافقًا مع واجهة برمجة التطبيقات من خلال تنفيذentrySet().toArray()وremove()وremoveAll()وretainAll()وإزالة تنفيذentrySet().addAll()(I5d505)
الإصدار 1.2.0-rc01
17 نوفمبر 2021
تم طرح androidx.collection:collection:1.2.0-rc01 وandroidx.collection:collection-ktx:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- لم يتم إجراء أي تغييرات مقارنةً بالإصدار التجريبي السابق.
الإصدار 1.2.0-beta01
13 أكتوبر 2021
تم طرح androidx.collection:collection:1.2.0-beta01 وandroidx.collection:collection-ktx:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تعديل
entrySet()ليتوافق مع واجهة برمجة التطبيقات من خلال تنفيذentrySet().toArray()وremove()وremoveAll()وretainAll()وإزالة تنفيذentrySet().addAll()(I5d505)
الإصدار 1.2.0-alpha01
16 كانون الأول (ديسمبر) 2020
تم طرح androidx.collection:collection:1.2.0-alpha01 وandroidx.collection:collection-ktx:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف أداة إنشاء مصفوفة إلى
ArraySet. (Id7f19)
الإصدار 1.1.0
الإصدار 1.1.0
5 يونيو 2019
تم طرح androidx.collection:collection:1.1.0 وandroidx.collection:collection-ktx:1.1.0. يمكنك الاطّلاع على التعديلات في الإصدار 1.1.0 هنا.
في ما يلي ملخّص للتغييرات من الإصدار 1.0.0 إلى الإصدار 1.1.0:
الميزات الجديدة
- استخدام تنفيذ أكثر كفاءة للدالتَين
containsوisNotEmptyفي العنصر collection-ktx (aosp/866529)
التغييرات في واجهة برمجة التطبيقات
- إضافة
putIfAbsentإلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772608) - إضافة
getOrDefaultإلىSimpleArrayMap(aosp/772607) - إضافة الدالة
removeذات الوسيطَين إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompatإيقاف إضافات KTX المقابلة لهذه الوظيفة نهائيًا (aosp/772482) - إضافة
replaceذات الوسيطتَين إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772483) - إضافة
replaceبثلاث وسيطات إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772484) - إيقاف استخدام طرق
deleteالمكرّرة تقدّم طريقةremoveواجهة برمجة التطبيقات والوظائف نفسها وتتطابق مع واجهة برمجة التطبيقات المستخدَمة في "خرائط Google" غير المتخصّصة. (aosp/866053)
إصلاح الأخطاء
- تغيير
SimpleArrayMapلمزامنة ذاكرة التخزين المؤقت العامة الداخلية للمصفوفات علىSimpleArrayMap.classبدلاً منArrayMap.classيضمن ذلك أنّه في حال استخدامSimpleArrayMapفقط، يمكن إزالةArrayMapباستخدام أدوات تصغير الرموز البرمجية. (aosp/934557)
الإصدار 1.1.0-rc01
7 أيار (مايو) 2019
تم طرح androidx.collection:collection:1.1.0-rc01 وandroidx.collection:collection-ktx:1.1.0-rc01. يمكنك الاطّلاع على التعديلات في هذا الإصدار هنا.
الميزات الجديدة
- استخدام تنفيذ أكثر كفاءة للدالتَين
containsوisNotEmptyفي العنصر collection-ktx (aosp/866529)
الإصدار 1.1.0-beta01
3 أبريل 2019
تم طرح androidx.collection:collection:1.1.0-beta01 وandroidx.collection:collection-ktx:1.1.0-beta01. يمكنك الاطّلاع على التعديلات في هذا الإصدار هنا.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة الطريقة المذكورة في ملاحظات الإصدار alpha03 والتي تم تغيير قيمة
@RestrictToفيها. لم يتم استخدامها في أي مكتبة AndroidX (سواء حاليًا أو في السابق)، ولم تقدّم أي وظائف غير متوفّرة في واجهة برمجة التطبيقات العامة.
إصلاح الأخطاء
- تغيير
SimpleArrayMapلمزامنة ذاكرة التخزين المؤقت العامة الداخلية للمصفوفات علىSimpleArrayMap.classبدلاً منArrayMap.classيضمن ذلك أنّه في حال استخدامSimpleArrayMapفقط، يمكن إزالةArrayMapباستخدام أدوات تصغير الرموز البرمجية. (aosp/934557)
الإصدار 1.1.0-alpha03
13 مارس 2019
تم طرح androidx.collection:collection:1.0.0-alpha03 وandroidx.collection:collection-ktx:1.0.0-alpha03.
يمكنك الاطّلاع على القائمة الكاملة للتعديلات في هذا الإصدار هنا.
التغييرات في واجهة برمجة التطبيقات
- تم تغيير طريقة
ArraySetالتي تم وضع علامة@RestrictTo(LIBRARY_GROUP)عليها سابقًا إلى@RestrictTo(LIBRARY_GROUP_PREFIX). ويتم ذلك لتوفير إمكانية الاستخدام السابق من خلال مكتبات AndroidX الأخرى التي أصبحت الآن في معرّفات مجموعات Maven مختلفة. سيتم إتاحة هذه الطريقة للجميع أو إزالتها في الإصدار 1.1.0-alpha04، لأنّه يجب ألا تحصل مكتبات AndroidX الأخرى على واجهات برمجة تطبيقات خاصة لا يمكن للمطوّرين الآخرين استخدامها.
الإصدار 1.1.0-alpha02
30 يناير 2019
تم طرح androidx.collection:collection 1.1.0-alpha02 وandroidx.collection:collection-ktx 1.1.0-alpha02.
التغييرات في واجهة برمجة التطبيقات
- إيقاف استخدام طرق
deleteالمكرّرة توفّر طرقremoveواجهة برمجة التطبيقات والوظائف نفسها، وتتطابق مع واجهة برمجة التطبيقات المستخدَمة في "خرائط Google" غير المتخصّصة. (aosp/866053)
الإصدار 1.1.0-alpha01
3 كانون الأول (ديسمبر) 2018
التغييرات في واجهة برمجة التطبيقات
- إضافة
putIfAbsentإلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772608) - إضافة
getOrDefaultإلىSimpleArrayMap(aosp/772607) - إضافة الدالة
removeذات الوسيطَين إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompatإيقاف إضافات KTX المقابلة لهذه الوظيفة نهائيًا (aosp/772482) - إضافة
replaceذات الوسيطتَين إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772483) - إضافة
replaceبثلاث وسيطات إلىLongSparseArrayوSimpleArrayMapوSparseArrayCompat(aosp/772484)