المجموعة
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 23 سبتمبر 2026 | 1.6.0 | 1.7.0-rc01 | - | - |
تحديد الاعتماديات
لإضافة اعتمادية على Collection، يجب تضمين مستودع Maven من Google في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
رائع
dependencies { def collection_version = "1.6.0" implementation "androidx.collection:collection:$collection_version" }
Kotlin
dependencies { val collection_version = "1.6.0" implementation("androidx.collection:collection:$collection_version") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.7
الإصدار 1.7.0-rc01
23 سبتمبر 2026
تم طرح androidx.collection:collection-*:1.7.0-rc01. يتضمّن الإصدار 1.7.0-rc01 هذه التعديلات.
الإصدار 1.7.0-alpha01
9 سبتمبر 2026
تم طرح androidx.collection:collection-*:1.7.0-alpha01. يتضمّن الإصدار 1.7.0-alpha01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة الدوال
sortWithوsortByوsortByDescendingإلىMutableObjectList، بالإضافة إلى خوارزمياتbinarySearchعلىObjectListوفئات القوائم الأساسية (FloatListوIntListوLongListوDoubleList). تمت إضافة عمليات تحميل زائدةbinarySearchباستخدام أنواع المكونات الدقيقة لكل منFloatListوLongListوDoubleListبالإضافة إلى طرقIntالحالية. (Ied6f7) - لدى "
androidx.benchmark" الآنminSdkيبلغ 24. (Ic2a85) - تحسين
ScatterMap.getOrPut()الأداء (I6e46b) - تمت إضافة
@JvmOverloadsإلى دوال تقليص فئات القوائم (I24410، b/481371562) - تمت إضافة الإضافة "
.toOrderedScatterSet()". يوفر ذلك بديلاً للقراءة فقط لوظيفة التحويل القابلة للتغيير ويعرض عنصرًا واحدًا غير قابل للتغيير بدون تخصيص عندما تكون المجموعة المصدر فارغة. (I1b767)
إصلاح الأخطاء
- تم تحسين التجزئة في
ScatterMapوالمجموعات الأساسية للحدّ من حالات التعارض في مفاتيحFloat. (I7d2ac، b/528428583) - نفِّذ
toString()للمفتاحScatterMap.asMapوالقيمة وعمليات عرض الإدخالات. ويوفّر ذلك للمطوّرين إمكانية أفضل في عرض تصحيح الأخطاء عند استخدامهم برنامج تضمينasMap(). (I64791)
الإصدار 1.6
الإصدار 1.6.0
11 مارس 2026
تم طرح androidx.collection:collection-*:1.6.0. يتضمّن الإصدار 1.6.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.5.0:
- تمت إضافة نسخة من الدالة trim لا تتضمّن وسيطة للقيم
MutableFloatListوMutableDoubleListوMutableIntList. - أضِف دوال الامتداد
toMutableOrderedScatterSetوtoOrderedScatterSetوtoMutableScatterMapوtoScatterMapوtoMutableScatterSetوtoScatterSet. - تحسينات في أداء
ScatterMapوScatterSet - أصبح إصدار
minSdkالآن 23.
الإصدار 1.6.0-rc01
11 فبراير 2026
تم طرح androidx.collection:collection-*:1.6.0-rc01. يتضمّن الإصدار 1.6.0-rc01 هذه التعديلات.
الإصدار 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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة دعم لإصدار
watchosDeviceArm64المستهدف من KMP والإصدار المستهدف 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()ولكن ضمن السعة الأولية المتوفّرة.يقدّم هذا التغيير أيضًا قيمة null الصحيحة لبعض الأنواع التي كانت مفقودة سابقًا.
.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)