أرشيف مراجعة مكتبة الدعم

تقدم هذه الصفحة تفاصيل حول إصدارات حزمة Support Library الأقدم. للحصول على أحدث إصدارات Support Library، يمكنك الاطّلاع على المراجعات الحديثة من مكتبة الدعم.

النسخة التجريبية 26.0.0 من الإصدار التجريبي 2

(حزيران/يونيو 2017)

يُرجى ملاحظة أن الإصدار 26.0.0-beta2 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.

ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.

واجهات برمجة تطبيقات جديدة

اختلافات واجهة برمجة التطبيقات

إصلاح الأخطاء

  • بسبب انخفاض حزمة تطوير البرامج (SDK) لنظام التشغيل Android O، فقدان الخط المائل في TextViews
  • استثناء قيمة فارغة عند الاتصال بـ MediaBrowserServiceCompat
  • يجب أن يضبط TextInputLayout تلميحات على onprovideAutofill تفعيله()
  • تجاوز حجم التكدس عند استخدام الحجم التلقائي لـ TextView على O

الإصدار 26.0.0 التجريبي 1

(أيار/مايو 2017)

يُرجى ملاحظة أن الإصدار 26.0.0-beta1 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.

ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.

تغييرات مهمة

  • تمّت إزالة FragmentActivity.setSupportMediaController() وFragmentActivity.getSupportMediaController(). يُرجى استخدام الطريقتَين الثابتتَين MediaControllerCompat.setMediaController() وMediaControllerCompat.getMediaController() الجديدتَين.
  • يستدعي BottomNavigationView الآن onNavigationItemReselected() عند اختيار عنصر محدّد بدلاً من استدعاء onNavigationItemSelected().
  • تعرض جميع مثيلات الطريقة findViewById() الآن <T extends View> T بدلاً من View. ينتج عن هذا التغيير ما يلي:
    • قد يؤدي ذلك إلى أن يكون للرمز الحالي نوع عرض غامض الآن، على سبيل المثال إذا كان هناك كل من someMethod(View) وsomeMethod(TextView) يأخذ نتيجة الاستدعاء إلى findViewById().
    • عند استخدام لغة مصدر Java 8، يتطلب ذلك بثًا صريحًا إلى View عندما يكون نوع الإرجاع غير محدود (على سبيل المثال، assertNotNull(findViewById(...)).someViewMethod()).
    • في حال إلغاء طُرق findViewById() غير النهائية (مثل Activity.findViewById())، يجب تعديل نوع الإرجاع الخاص بها.

واجهات برمجة تطبيقات جديدة

  • يتضمّن FragmentManager وFragment طريقة isStateSaved() للسماح بالاستعلام عما إذا كان سيتم السماح بالمعاملة بدون فقدان الحالة. ويُعدّ هذا الإجراء مفيدًا على وجه التحديد عند التعامل مع حدث onClick() قبل تنفيذ أي معاملة.
  • تتوفّر حركة المسار في AnimatedVectorDrawableCompat. من خلال "حركة المسار"، يمكن لعارض كائن واحد تغيير خاصيتَين في الوقت نفسه استنادًا إلى مسار واحد، ويتم تحديد المسار على النحو التالي: android:pathData في ملف XML الخاص بأداة الرسوم المتحركة.
  • الصور المتحركة المستندة إلى الفيزياء:
    • FlingAnimation جديدة تتيح إنشاء لقطات متحرّكة بسرعة مبدئية وتبطئ بسلاسة
    • تتيح الفئات الفرعية من DynamicAnimation إمكانية تحريك خاصية مخصّصة لأي عنصر.
    • يمكن الآن لكل من SpringAnimation وFlingAnimation تحريك قيمة عائمة بدون الحاجة إلى ربط View أو Object بها.

    للحصول على مزيد من المعلومات، اطّلِع على صفحتَي معاينة الصور المتحركة في الربيع والصور المتحركة المتحركة.

  • الخطوط في XML:
    • تسمح ResourcesCompat.getFont بتحميل موارد الخطوط، بما في ذلك ملفات XML لمجموعة الخطوط، التي يمكن استخدامها مع TextView.setTypeface().
    • عند استخدام AppCompat، يتيح TextView تحديد مورد خط أو ملف XML لمجموعة الخطوط من خلال سمة XML android:fontFamily.
    • استخدِم مجموعة خطوط XML لإنشاء مجموعات خطوط بأنماط مختلفة ووزن. (إذا كنت تستخدم فئات مكتبة الدعم لإجراء ذلك، استخدِم سمات app: بالإضافة إلى سمات android:).
  • الخطوط القابلة للتنزيل:
    • ميزة FontsContractCompat جديدة تتيح لك طلب الخطوط من موفّر خطوط بدلاً من تجميعها في تطبيقك.
    • يمكن أيضًا طلب الخطوط في XML واستخدامها في التنسيقات.
  • مكتبة التوافق مع الرموز التعبيرية:
    • بإمكان "EmojiCompat" معالجة CharSequence وإضافة EmojiSpans.
    • EmojiTextView وأدوات أخرى لعرض الرموز التعبيرية.
    • FontRequestEmojiCompatConfig لطلب خط الرموز التعبيرية من موفّر خطوط
  • تغيير حجم TextView تلقائيًا:
    • طُرق جديدة في TextViewCompat بالإضافة إلى سمات XML للتحكّم في تغيير الحجم التلقائي في TextView.
  • عناصر التحكم في التشغيل Leanback مع طلب الدعم:
    • PlaybackTransportRowPresenter جديد يعرض عناصر التحكّم في التشغيل باستخدام شريط SeekBar
    • جهاز PlaybackTransportControlGlue جديد يعمل مع PlaybackTransportRowPresenter ويتوافق مع ميزة "التقديم/الترجيع"
    • فئة أساسية جديدة PlaybackSeekDataProvider للتطبيق لتوفير صور مصغّرة لـ PlaybackTransportControlGlue.
  • مخزن بيانات الإعدادات المفضّلة:
    • يتيح لك PreferenceDataStore الآن ضبط إعدادات مساحة التخزين المفضّلة لديك، وذلك من خلال طرق جديدة في Preference وPreferenceManager.

المشاكل المعروفة

  • لا يعمل دمج الخطوط والرموز التعبيرية القابلة للتنزيل مع "خدمات Google Play" إلا على "خدمات Google Play" الإصدار 11 أو الأحدث، والذي يتوفّر حاليًا من خلال البرنامج التجريبي "خدمات Google Play".

إصلاح الأخطاء

  • MediaBrowserCompat.search() API لا تعمل (مشكلة AOSP 262170)
  • طرح ViewCompat.postInvalidateOnAnimation() استثناء (مشكلة AOSP 80146)
  • استدعت onActivityCreated() بعض الأجزاء في النشاط الذي تم إتلافه.
  • من المفترض أن تعرض السمة RecyclerView.isComputingLayout() القيمة "صحيح" أثناء الجلب المُسبَق.
  • عند مقاطعة انتقال Fade وعكسه، يبدأ View الصورة المتحركة من البداية. (إصلاح عملية النقل من Android Framework).
  • يتجاهل Transition.Fade ألفا الأولي لـ View (مشكلة AOSP 221820)

الإصدار 26.0.0 ألفا 1

(آذار/مارس 2017)

يُرجى ملاحظة أن الإصدار 26.0.0-alpha1 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.

تغييرات مهمة

ملاحظة: تمت زيادة الحد الأدنى من إصدار حزمة تطوير البرامج (SDK) إلى 14. نتيجةً لذلك، تم نهائيًا إيقاف العديد من واجهات برمجة التطبيقات التي كانت متوفّرة فقط لتوافق واجهة برمجة التطبيقات < 14. ويجب نقل عملاء واجهات برمجة التطبيقات هذه إلى إطار العمل المكافئ لها كما هو موضّح في الصفحة المرجعية لكل واجهة برمجة تطبيقات تم إيقافها.

  • تم إيقاف وحدة النسبة المئوية للدعم. على عملاء هذه الوحدة نقل بياناتهم إلى أداة ConstraintLayout الجديدة، التي يتم توفيرها كأداة منفصلة في "أداة إدارة SDK".
  • لم تعُد وحدة أجزاء الدعم تعتمد على وحدة support-media-compat.

واجهات برمجة تطبيقات جديدة

تمت إضافة العديد من الفئات والطرق والثوابت الجديدة لتوفير توافق متوافق مع الإصدارات القديمة لواجهات برمجة التطبيقات للنظام الأساسي التي تمت إضافتها في معاينة O.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: يمكن لأدوات IME رصد علامات "لا يمكن التعلُّم" للتطبيقات التي تحتوي على الوضع الخاص، مثل المتصفحات. وتساعد هذه الميزة أدوات IME في معرفة ما إذا كان التطبيق في الوضع الخاص، كي يمكنها إيقاف وظائف التعلم أو الوظائف التكيفية عندما يكون التطبيق في ذلك الوضع.

للحصول على قائمة كاملة بالتغييرات في واجهة برمجة التطبيقات بين الإصدارين 25.2.0 و26.0.0-alpha1، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة التطبيقات الخاصة بمكتبة الدعم.

إصلاح الأخطاء

  • في بعض الحالات، يمكن أن تتم مقاطعة حركة AutoTransition المتحركة البسيطة من خلال عرض "القفزات". (مشكلة AOSP 221816)

الإصدار 25.4.0

(حزيران/يونيو 2017)

ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.

تغييرات مهمة

  • لا يُسمح بالمكالمات executePendingTransactions() وcommitNow() وpopBackStackImmediate() وغيرها من الطلبات المرتبطة بالمعاملات المشابهة أثناء تغييرات الحالة FragmentManager. إنّ تنفيذ المعاملات من جديد غير آمن، ويفرض FragmentManager الآن ذلك أثناء تغييرات الحالة.
  • بالتزامن مع إصدار مكتبة الدعم هذا، سنطلق أيضًا الإصدار 1.0.2 من multidex. يتضمّن هذا الإصدار التغييرات المهمة التالية:
    • تسمح هذه السياسة بالتصحيح المتعدد لحزمة APK للأدوات.
    • سيتم إيقاف ميزة MultiDexTestRunner (يجب استخدام AndroidJUnitRunner بدلاً من ذلك).
    • توفير حماية أفضل من بعض أساليب استخراج الأرشيف غير الصالحة للتطبيق
    • إصلاح خطأ قد يؤدي إلى ترك الملفات المؤقتة.
    • يوفر إمكانية تثبيت أسرع عند إجراء العملية المتزامنة.
    • إصلاح خطأ تثبيت في واجهة برمجة التطبيقات 19 و20.

واجهات برمجة التطبيقات الجديدة والمعدَّلة

يعتمد تشكيل المسار واستيفاء المسار في AnimatedVectorDrawableCompat. يسمح تحويل المسار بتغيير الأشكال من مسار واحد (تم تحديده باسم android:valueFrom) إلى مسار آخر (تم تحديده على أنّه android:valueTo)، وذلك لتحقيق تأثيرات بصرية معقدة وجذابة. تسمح عملية الاستيفاء للمسار بتحديد عناصر الاستيفاء لـ AnimatedVectorDrawableCompat كمسارات (المحددة بالرمز android:pathData في ملف XML الخاص بأداة الاستيفاء).

اختلافات واجهة برمجة التطبيقات

المشاكل التي تم إصلاحها

  • استثناء قيمة فارغة عند الاتصال بـ MediaBrowserServiceCompat
  • واجهة برمجة التطبيقات MediaBrowserCompat.search() لا تعمل (مشكلة AOSP 262170)
  • تصفحFragment onItemClicked معاودة الاتصال غير الصالحة في الإصدار 25.3.0
  • NullPointerException أثناء التمرير لأعلى ولأسفل في VerticalGridView في الإصدار 25.3.1
  • ClassCastException في SimpleArrayMap.allocArrays()

الإصدار 25.3.1

(آذار/مارس 2017)

المشاكل التي تم إصلاحها

  • يتطلّب الإصدار SwitchCompat الإصدار 14 كحدّ أدنى من حزمة تطوير البرامج (SDK) أو إصدارًا أحدث. (مشكلة AOSP 251302)
  • تتخطّى الصورة المتحركة المستندة إلى الفيزياء updateListener الإطار الأول.
  • الصورة المتحركة لتصنيف BottomNavigationView معطّلة.

الإصدار 25.3.0

(آذار/مارس 2017)

تغييرات مهمة

ستتم تلقائيًا إضافة البيانات الوصفية لإصدار Support Library إلى "AndroidManifest.xml" عند إنشائها من خلال Gradle، ما يبسّط تتبُّع الإصدارات في الإصدارات المتاحة للجميع. مثلاً:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

عمليات الإيقاف

تم إيقاف عدد من الطرق والفئات في هذا الإصدار. ستتم إزالة واجهات برمجة التطبيقات التي تم إيقافها نهائيًا في إصدار مستقبلي، وعلى مطوّري البرامج بدء استخدامها. لمزيد من المعلومات حول كيفية الانتقال من واجهة برمجة تطبيقات محددة، راجع وثائقها.

ExifInterface
تم إيقاف الطريقة المنطقية getLatLong(float[]) نهائيًا. بدلاً من ذلك، استخدِم الطريقة الجديدة getLatLong() التي لا تستخدم أي وسيطات وتعرض double[].
mediacompat
تم إيقاف PlaybackStateCompat.Builder.setErrorMessage(CharSequence) نهائيًا. بدلاً من ذلك، استخدِم الطريقة الجديدة setErrorMessage(int, CharSequence)، التي تمرر رمز خطأ ووصفًا اختياريًا.
تم إيقاف
EXTRA_SUGGESTION_KEYWORDS نهائيًا. بدلاً من ذلك، يمكنك استخدام وظيفة البحث MediaBrowserCompat.
v7.recyclerview
تمت إعادة تسمية LinearLayoutManager.getInitialItemPrefetchCount() إلى LinearLayoutManager.getInitialPrefetchItemCount(). لا يزال الاسم القديم متاحًا، ولكن ستتم إزالته في إصدار مستقبلي.

واجهات برمجة التطبيقات الجديدة والمعدَّلة

appcompat-v7
تعمل الطريقة الجديدة ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) على تبسيط عملية إيقاف الصورة المتحركة لرمز التبديل في لائحة التنقل.
customtabs
تمت إضافة دعم لقنوات الرسائل. يمكنك الاطّلاع على مرجعَي CustomTabsService.requestPostMessageChannel() وCustomTabsService.postMessage() للحصول على مزيد من التفاصيل.
dynamic-animation
مكتبة صور متحركة جديدة مستندة إلى الفيزياء وتوفّر مجموعة من واجهات برمجة التطبيقات لإنشاء صور متحركة تتفاعل بشكل ديناميكي مع إدخالات المستخدم.
leanback-v17
تمت إضافة إمكانية استخدام خلفيات اختلاف المنظر. يمكنك الاطّلاع على مرجع Parallax للحصول على التفاصيل.
تمت إضافة تطبيق TimePicker المصغّر لاختيار الأوقات المتاحة على واجهة التلفزيون.
mediacompat
تمت إضافة وظيفة البحث. يمكنك الاطّلاع على مرجعَي MediaBrowserCompat.search() وMediaBrowserServiceCompat.onSearch() للحصول على مزيد من التفاصيل.
أتحنا استخدام أوضاع التبديل وتكرار التكرار. يمكنك الاطّلاع على مرجعَي MediaSessionCompat.setRepeatMode() وsetShuffleModeEnabled() للحصول على مزيد من التفاصيل.

المشاكل التي تم إصلاحها

الإصدار 25.2.0

(فبراير 2017)

تغييرات مهمة

المشاكل التي تم إصلاحها

  • يعالج هذا الإصدار مشكلة خطيرة في جهاز توجيه الوسائط قد يؤدي فيها استخدام جهاز A2DP وواجهات برمجة تطبيقات توجيه الوسائط إلى توقُّف الجهاز عن الاستجابة، ما يتطلب إعادة تشغيل الجهاز.
  • أصبحت الفئة FragmentManager.FragmentLifecycleCallbacks ثابتة الآن.

المشاكل التي تم إصلاحها

  • يؤدي عرض عرض تقديمي للشرائح مع النسخ المطابق للشاشة إلى انقطاع اتصال الجهاز بشبكة Wi-Fi.
  • لم يتعامل زر الوسائط بشكل صحيح مع تطبيقات الوسائط التي لم تسجِّل نفسها في setMediaButtonReceiver().
  • خطأ واحد (VectorDrawable) في مورد السلسلة (مشكلة AOSP 232407)
  • تلميح مركّبات TextInputLayout ونصّ في حال ضبط النص بتنسيق XML (مشكلة AOSP 230171)
  • تسرّب الذاكرة في MediaControllerCompat (مشكلة AOSP 231441)
  • تعطُّل "RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()"
  • تعطُّل RecyclerView عند إعادة تدوير حاملات الملفات الشخصية (مشكلة AOSP 225762)
  • تعرض القيمة getAllowGeneratedReplies() القيمة false بشكل غير صحيح عند تنفيذ الإجراءات داخل WearableExtender

الإصدار 25.1.1

(كانون الثاني/يناير 2017)

ملاحظة مُهمّة: هناك خطأ معروف في الفئة android.support.v7.media.MediaRouter في الإصدارَين 25.1.1 و25.1.0 من Support Library. إذا كان تطبيقك يستخدم الإصدار 7 MediaRouter، يجب التحديث إلى الإصدار Support Library Revision 25.2.0 الذي يعمل على إصلاح هذا الخطأ.

تغييرات مهمة

  • يمكن الآن تحسين المعاملات التي يتم إجراؤها باستخدام تجزئة ضمن المعاملات المختلفة. يمكن أن يؤدي تحسين العمليات المُجزأة للمعاملات إلى استبعاد العمليات التي يتم إلغاؤها. على سبيل المثال، لنفترض أنّه تم تنفيذ معاملتين معًا، إحداهما تضيف الجزء أ والأخرى تستبدل الجزء أ بالجزء "ب". في هذه الحالة، قد يتم إلغاء العملية الأولى وإضافة الجزء "ب" فقط. وهذا يعني أنّ الجزء "أ" قد لا يمر بدورة حياة الإنشاء/التدمير.

    ومن الآثار الجانبية لهذا التحسين أنّ الأجزاء قد تتغير حالة الأجزاء غير المتوقَّعة. على سبيل المثال، لنفترض أنّ إحدى المعاملات تضيف الجزء "أ"، والثانية تضيف الجزء "ب"، والثالثة تزيل الجزء "أ". بدون تحسين، من المتوقّع أن يكون الجزء "ب" أثناء إنشائه متوفّرًا أيضًا بسبب إزالة الجزء "أ" بعد إضافة الجزء "ب". في حال إجراء عملية التحسين، لا يمكن أن يتأكّد الجزء "ب" من توفُّر الجزء "أ" أثناء إنشاء الجزء "ب"، لأنّ عملية إنشاء الجزء "أ" وإتلافه قد تتم إزالتهما بواسطة التحسين.

    ويتم إيقاف عملية التحسين هذه تلقائيًا. لتفعيل عملية التحسين، اطلب FragmentTransaction.setAllowOptimization(true).

  • يمكن للأجزاء الآن تأجيل عمليات النقل والصور المتحركة إلى أن تصبح جاهزة باستخدام Fragment.postponeEnterTransition() وFragment.startPostponedEnterTransition(). تشبه واجهة برمجة التطبيقات هذه واجهة برمجة التطبيقات Activity.postponeEnterTransition() وActivity.startPostponedEnterTransition() التي يتم استخدامها مع عمليات نقل الأنشطة.

المشاكل التي تم إصلاحها

  • تعذُّر تنفيذ MediaSessionCompatTest مع IllegalArgumentException
  • لم يتم استدعاء DetailsFragment.installTitleView() في الإصدار 25.1.0
  • تُبقي معاملة التجزئة العرض المفرغ المحدد عند الخروج (مشكلة AOSP 230679)
  • يجب إضافة مسافة بين رمز العنصر والنص في BottomNavigationView (مشكلة AOSP 230653).
  • أدوات الاستماع المحدّدة غير متوفّرة في الإصدارَين الجديدَين PlaybackFragment وPlaybackSupportFragment
  • لا يتغير تركيز TextInputLayout بشكل صحيح في المحاكي من إصدار 25.1.0 لمكتبة الدعم (مشكلة AOSP 230461)
  • لا يمكن استبدال قائمة BottomNavigationView (مشكلة AOSP 230343)
  • RecyclerView مع أعطال StaggeredGridLayoutManager مع عناصر كاملة (مشكلة AOSP 230295)
  • تعطُّل في MediaSessionCompat عند استخدام setCallback(null)
  • لا يتم إرسال إشعارات من PlaybackGlueHostOld وPlaybackSupportGlueHostOld إلى معاودة الاتصال عند تغيير صف التشغيل.
  • مثال من PlaybackOverlayFragment يتعذّر بدء تشغيل /test.
  • يتعذّر تنفيذ RecyclerViewFocusRecoveryTest على واجهة برمجة التطبيقات 15
  • تركيز صف "لقطات الشاشة" على أعلى الشاشة
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() أعطال على واجهة برمجة التطبيقات 15
  • setActions() في onSubactionClicked() معطّلة
  • تعطُّل "RecyclerView" عند إعادة تدوير بعض حاملات الملفات الشخصية

الإصدار 25.1.0

(كانون الأول/ديسمبر 2016)

ملاحظة مُهمّة: هناك خطأ معروف في الفئة android.support.v7.media.MediaRouter في الإصدارَين 25.1.1 و25.1.0 من Support Library. إذا كان تطبيقك يستخدم الإصدار 7 MediaRouter، يجب التحديث إلى الإصدار Support Library Revision 25.2.0 الذي يعمل على إصلاح هذا الخطأ.

تغييرات مهمة

  • أمّا عملاء أدوات RecyclerView المضمَّنة (مثل قائمة التمرير العمودي لقوائم التمرير الأفقي)، فيمكنهم الاستفادة من مزايا كبيرة في الأداء من خلال الإشارة إلى مدراء تنسيقات أدوات RecyclerView الداخلية في عدد العناصر المطلوب تحضيرها قبل الانتقال إلى الأسفل على الشاشة. يمكنك الاتصال بـ LinearLayoutManager.setInitialPrefetchItemCount(N)، حيث يشير الرقم N إلى عدد المشاهدات المرئية لكل عنصر داخلي. على سبيل المثال، إذا كانت القوائم الداخلية والأفقية تعرض ما لا يقل عن ثلاثة ونصف مشاهدات للسلع في المرة الواحدة، يمكنك تحسين الأداء من خلال طلب LinearLayoutManager.setInitialPrefetchItemCount(4). يسمح هذا الإجراء لـ RecyclerView بإنشاء جميع المشاهدات ذات الصلة مبكرًا، أثناء تنقّل RecyclerView الخارجي، ما يقلّل بشكل كبير من مقدار التقطّع أثناء عمليات التمرير.
  • تم إيقاف السمتَين FragmentActivity.setSupportMediaController() وFragmentActivity.getSupportMediaController() نهائيًا. يُرجى استخدام طريقتَي MediaControllerCompat.setMediaController() الثابتة وMediaControllerCompat.getMediaController() الثابتة الجديدتَين.
  • عندما يحدِّد العميل درجة لون عنصر واجهة المستخدم من خلال تطبيق التلوين المتوافق مع التطبيق (على سبيل المثال، appcompat:buttonTint)، يكون العميل مسؤولاً عن توفير جميع الحالات اللازمة (مثل "تم الإيقاف" و"تم الضغط" وما إلى ذلك). ويتوافق هذا مع كيفية تحديد درجات الألوان في التطبيقات المصغّرة عند استخدام درجات لون إطار العمل.

واجهات برمجة التطبيقات الجديدة والمعدَّلة

المشاكل التي تم إصلاحها

  • تعذّر تبديل إمكانية رؤية كلمة المرور في اختبارات إمكانية الوصول.
  • لا تمتثل Appcompat لـ state_enabled على الأجهزة التي تسبق إصدار L.
  • تمت إضافة آلية استرداد التركيز إلى "RecyclerView". تم أيضًا إصلاح أجزاء معيّنة متوافقة مع المحتوى المفضّل، ما يؤدي إلى تعطُّل التركيز عند استخدام "أزرار الاتجاهات والتنقّل"، مثل أجهزة Android TV.
  • Leanback: يتعطل التصفّحFragment مع إيقاف الرؤوس والمحوّل الفارغ.
  • توافق التطبيق: AlertDialog عريض جدًا.
  • يطلب InputContentInfoCompat requestPermission() عندما يكون من المفترض الاتصال بـ releasePermission().
  • عدد الأعطال: MediaBrowserCompat
  • تقيس CoordinatorLayout/تحدد طرق العرض عند ضبط مستوى الرؤية على GONE.
  • تعذّر تلوين AnimatedVectorDrawableCompat على مستوى واجهة برمجة التطبيقات الأقل من 24.
  • تؤدي مكتبة Leanback إلى حدوث أخطاء كاذبة في الوبر
  • تسببت مكتبة لوحة الألوان في إخفاقات الاختبار على كل مستوى من مستويات واجهة برمجة التطبيقات
  • تعذّر RecyclerView اختبار على Leanback
  • تعطُّل RecyclerView عند إعادة تدوير حاملات الملفات الشخصية (مشكلة AOSP 225762)
  • لم يتم استدعاء Fragment.onDestroy() للجزء في حزمة Backstack.
  • لا يتم رسم إطار حاجب CollapsingToolbarLayout عند تصغيره.
  • رمية "CoordinatorLayout.offsetChildByInset()" لكرة IllegalArgumentException
  • تؤدي الصور المتحركة لعناصر RecyclerView إلى فصل RecyclerView الداخلية، ومنع عمليات الجلب المُسبق في المستقبل.
  • لا يمكن جلب RecyclerView العناصر المرفقة من خلال الجلب المُسبق.
  • يتم تجاهل بيانات الجلب المُسبَق لعناصر RecyclerView المُدمجة أثناء التنسيق الأول.
  • يتعذّر الجلب المُسبَق لـ RecyclerView في حال وصول حدثَي سحب إلى الموضع نفسه.
  • من المفترض أن يتم تنسيق RecyclerView بشكلٍ مثالي أثناء عرض RenderThread
  • لا تتم دائمًا الإزالة النهائية بشكل صحيح لموارد الألوان التي تم ضبطها في الليل والتي تم تحويلها إلى "قابلة للرسم" من ذاكرة التخزين المؤقت للموارد.
  • FloatingActionButton: لا يعمل الإعداد الآلي خلفيةTintList بشكل صحيح (مشكلة AOSP 227428)
  • TextInputLayout: لم يتم ضبط نمط الخط في عرض الخطأ (مشكلة AOSP 227803)
  • يتم دائمًا استخدام واجهة برمجة التطبيقات TextInputLayout إلى لون الخطأ الفاتح أسفل واجهة برمجة التطبيقات 23 (مشكلة AOSP 221992).
  • يتم عرض FloatingActionButton عند الضغط عند مغادرة المؤشر

تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.

عمليات الإيقاف

تم إيقاف عدد من الطرق والفئات في هذا الإصدار. ستتم إزالة واجهات برمجة التطبيقات التي تم إيقافها نهائيًا في إصدار مستقبلي، وعلى مطوّري البرامج نقلها منها. لمزيد من المعلومات حول كيفية الانتقال من واجهة برمجة تطبيقات معيّنة، يمكنك مراجعة المستندات المتعلّقة بذلك.

الإصدار 25.0.1

(تشرين الثاني/نوفمبر 2016)

المشاكل التي تم إصلاحها

  • تم إيقاف مفتاح تبديل كلمة مرور TextInputLayout تلقائيًا الآن لتجنُّب استبدال العناصر النهائية التي يحددها المطوّرون بدون الحاجة إلى ذلك. ويمكن تفعيلها يدويًا باستخدام سمة XML passwordToggleEnabled.
  • تم تغيير سطر واحد (BottomNavigationView) إلى سطر واحد لمطابقة مواصفات المادة.
  • يتعطّل RecyclerView أثناء الجلب المسبق إذا كان مدير التنسيق فارغًا.
  • تم ضبط ارتفاع BottomNavigationView الآن بشكل صحيح. (مشكلة AOSP 226182)
  • يتعطّل BottomNavigationView عند إضافة عناصر في القائمة بشكل آلي. (مشكلة AOSP 225731)
  • احرِص على تثبيت TextInputLayout مادة عرض مركبة على اليمين واليسار. (مشكلة AOSP 225836)
  • يتعطّل RecyclerView عند إعادة تدوير حاملات الملفات الشخصية. (مشكلة AOSP 225762)
  • Leanback: كثيرًا ما تعرض ميزة TalkBack الكلمة "فارغ" في طرق عرض وضع تقسيم الشاشة.
  • RecyclerView: مشاكل العرض في "استوديو Android" (مشكلة AOSP 225753)
  • يظلّ BottomNavigationView يعرض عنصر القائمة على النحو المحدّد بعد أن يعرض onNavigationItemSelected() القيمة false. (مشكلة AOSP 225898)
  • تطرح RedirectListener NoSuchMethodError. (مشكلة AOSP 225647)
  • ولا يعرض TextInputEditText تلميحات في وضع استخراج أداة IME. (مشكلة AOSP 221880)

تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.

الإصدار 25.0.0

(تشرين الأول/أكتوبر 2016)

تغييرات مهمة

  • تمت حماية دالة إنشاء ContextCompat. يجب ألا يتم إنشاء نسخة افتراضية من هذه الفئة علنًا، ولكن قد يتم توسيعها من خلال مكتبات الدعم التي تستهدف مستويات أحدث من واجهات برمجة التطبيقات.
  • تمت حماية دالة إنشاء ActivityCompat. يجب ألا يتم إنشاء نسخة افتراضية من هذه الفئة علنًا، ولكن قد يتم توسيعها من خلال مكتبات الدعم التي تستهدف مستويات أحدث من واجهات برمجة التطبيقات.
  • تم جعل getReferrer(Activity) ثابتًا.
  • تمّت إزالة android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V). يجب إزالة أي عمليات تنفيذ من جانب العملاء لهذه الطريقة.
  • تمّت إزالة android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object). يجب استبدال الاستخدامات بالطريقة المسماة الأكثر ملاءمة fromMediaSession().
  • تمت إزالة android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object). يجب استبدال الاستخدامات بالطريقة المسماة الأكثر ملاءمة MediaSessionCompat.QueueItem#fromQueueItem.
  • تمّت إزالة android.support.v7.widget.Space. يجب استبدال الاستخدامات بـ android.support.v4.widget.Space.

واجهات برمجة تطبيقات جديدة

  • فئة android.support.design.widget.BottomNavigationView تنفِّذ نمط التنقل السفلي من مواصفات التصميم المتعدد الأبعاد.
  • تتضمّن حزمة android.support.v13.view.inputmethod الجديدة صفوفًا للوصول إلى ميزات android.view.inputmethod.InputConnection المقدَّمة بعد المستوى 13 من واجهة برمجة التطبيقات.
  • تتيح الفئة android.v7.widget.RecyclerView.DividerItemDecoration تنفيذًا أساسيًا للفواصل العمودية أو الأفقية بين العناصر.
  • تتوفر أنماط جديدة ذات تصميم جديد في android.support.v7.app.NotificationCompat وDecoratedCustomViewStyle وDecoratedMediaCustomViewStyle، وتمت إضافة فئات مماثلة في واجهة برمجة التطبيقات 24 للنظام الأساسي.

المشاكل التي تم إصلاحها

تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.

الإصدار 24.2.1

أيلول (سبتمبر) 2016

المشاكل التي تم إصلاحها:

تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.

الإصدار 24.2.0

آب (أغسطس) 2016

يحتوي الإصدار 24.2.0 على التغييرات التالية:

ملاحظة: يزيل الإصدار 24.2.0 التوافق مع نظام التشغيل Android 2.2 (مستوى واجهة برمجة التطبيقات 8) والإصدارات الأقدم. تم الآن وضع علامة على الفئات والطرق التي تقتصر على عرض إصدارات النظام هذه على أنّها متوقّفة نهائيًا ويجب عدم استخدامها بعد الآن. وقد تتم إزالة هذه الفئات والطرق المتوقّفة نهائيًا في إصدار مستقبلي.

الإصدار 4 من قسم "مكتبة الدعم"

ومن خلال هذا الإصدار، تم تقسيم مكتبة دعم الإصدار 4 إلى عدة وحدات أصغر حجمًا:

support-compat
توفر برامج تضمين متوافقة مع واجهات برمجة التطبيقات الجديدة لإطار العمل، مثل Context.getDrawable() وView.performAccessibilityAction().
support-core-utils
توفِّر عددًا من فئات الخدمات، مثل AsyncTaskLoader وPermissionChecker.
support-core-ui
تنفيذ مجموعة متنوعة من المكوّنات ذات الصلة بواجهة المستخدم، مثل ViewPager وNestedScrollView وExploreByTouchHelper.
support-media-compat
أجزاء من إطار عمل الوسائط، بما في ذلك MediaBrowser وMediaSession.
support-fragment
تعمل هذه الميزة على إعادة تحميل إطار عمل الأجزاء. تعتمد هذه الوحدة على أنظمة التشغيل support-compat وsupport-core-utils وsupport-core-ui وsupport-media-compat.

للتوافق مع الأنظمة القديمة، إذا أدرجت support-v4 في نص Gradle البرمجي، فسيتضمن ملف APK جميع هذه الوحدات. ولتقليل حجم ملف APK، ننصحك بإدراج الوحدات المحددة التي يحتاجها تطبيقك.

تحديثات واجهة برمجة التطبيقات

  • ويمكن للعملاء الذين يستخدمون علامات التبويب المخصَّصة التحكّم في إمكانية فتح التطبيقات الفورية. (ملاحظة: التطبيقات الفورية ليست متوفرة بعد بشكل عام). لتفعيل التطبيقات الفورية أو إيقافها، يمكنك طلب CustomTabsIntent.Builder.setInstantAppsEnabled() أو تحديد EXTRA_ENABLE_INSTANT_APPS. بشكل تلقائي، سيتم تفعيل "التطبيقات الفورية" في "علامات التبويب المخصّصة" تلقائيًا، عندما تتوفّر هذه الميزة.
  • تتيح ميزة TextInputLayout خيار إمكانية رؤية كلمة المرور من مواصفات التصميم المتعدد الأبعاد.
  • تعمل حزمة android.support.transition الجديدة على نقل إطار عمل عمليات النقل إلى المستوى 14 من واجهة برمجة التطبيقات والمستويات الأعلى. لمزيد من المعلومات، يمكنك الاطّلاع على مرجع android.support.transition.
  • تتيح مكتبة دعم علامات التبويب المخصَّصة استخدام RemoteViews في شريط الأدوات الثانوي. تم إيقاف طريقة setToolbarItem() الحالية نهائيًا.
  • يضيف AppCompatResources إمكانية تحميل <vector> (على المستوى 9 من واجهة برمجة التطبيقات والمستويات الأعلى) أو <animated-vector> (على المستوى 11 من واجهة برمجة التطبيقات والمستويات الأعلى) من رقم تعريف مورد، وذلك باستخدام طريقة getDrawable() الجديدة.
  • تتيح CoordinatorLayout الآن تحديد طرق عرض الإدخالات، وتحديد أن الملفات الشخصية الأخرى يجب أن تتجنب طرق العرض الداخلية. يسمح هذا الإجراء للتطبيقات بتكرار أنماط سلوك مشابهة للطريقة التي ينتقل بها FloatingActionButton بعيدًا عن Snackbar، ولكن لأي عناصر ثانوية فرعية. لمزيد من المعلومات، اطّلِع على المستندات المرجعية للسمتَين LayoutParams.insetEdge و LayoutParams.dodgeInsetEdges.
  • يمكن لفئة DiffUtil الجديدة احتساب الفرق بين مجموعتَين، وإرسال قائمة بعمليات التعديل المناسبة ليتم استخدامها في RecyclerView.Adapter.
  • تمت إضافة RecyclerView.OnFlingListener لدعم السلوك المخصَّص استجابةً للسرعة. توفّر فئة SnapHelper عملية تنفيذ خاصة بالتقاط طرق العرض الثانوية، وتوسّع فئة LinearSnapHelper عملية التنفيذ هذه لتوفير سلوك محاذاة من خلال محاذاة إلى الوسط مشابه لسلوك ViewPager.
  • تسمح مكتبة "علامات التبويب المخصّصة" الآن للعملاء بطلب واجهة المستخدم العادية للمتصفّح، بدلاً من واجهة المستخدم الخاصة بعلامات التبويب المخصّصة، من خلال طلب CustomTabsIntent.setAlwaysUseBrowserUI(). ويكون هذا السلوك مفيدًا في الحالات التي يكون فيها الإعداد التلقائي للمتصفّح هو واجهة المستخدم الخاصة بعلامات التبويب المخصّصة، لكن المستخدم أبدى تفضيله لواجهة المستخدم العادية الخاصة بالمتصفّح.

تغييرات السلوك

  • إذا كنت تستخدم وظيفة النهار والليل في مكتبة التطبيقات، سيعيد النظام الآن إنشاء نشاطك تلقائيًا كلما تغيّر الوضع الليلي/النهاري (إما بسبب الوقت أو بسبب الاتصال بـ AppCompatDelegate.setLocalNightMode()).
  • يظهر Snackbar الآن خلف شريط التنقل إذا كان شريط الحالة شبه شفاف.

مكتبة MediaRouter

لم تعد الأجهزة التي تتضمّن بلوتوث مُدرَجة كمسارات للوسائط. يتم الآن التحكّم في توجيه الصوت إلى الأجهزة التي تتضمّن بلوتوث على مستوى نظام Android فقط.

عمليات الإيقاف

تخضع الفئات والطرق المتوقفة نهائيًا للإزالة في إصدار مستقبلي. وعليك نقل البيانات من واجهات برمجة التطبيقات هذه في أقرب وقت ممكن.

  • كان مطلوبًا استخدام عدة طرق في الفئات التالية مع واجهة برمجة التطبيقات 8 والإصدارات الأقدم فقط، ويجب عدم استخدامها بعد الآن. بدلاً من ذلك، يمكنك استخدام عمليات تنفيذ إطار العمل.
    • android.support.v4.view.KeyEventCompat: استبدال بـ KeyEvent
    • android.support.v4.view.MotionEventCompat: استخدام MotionEvent
    • android.support.v4.view.ViewCompat: استخدام View
    • android.support.v4.view.ViewConfigurationCompat: استخدام ViewConfiguration
  • تم إيقاف السمة AccessibilityServiceInfoCompat.getDescription() نهائيًا لصالح السمة AccessibilityServiceInfoCompat.loadDescription() التي تعرض وصفًا مترجمًا بشكل صحيح.
  • يجب عدم إنشاء مثيل للفئة ActivityCompat مباشرةً. وسيتم جعل طريقة getReferrer(Activity) غير الثابتة ثابتة في إصدار قادم.
  • تم إيقاف واجهة برمجة التطبيقات CoordinatorLayout.Behavior.isDirty() نهائيًا ولم يعُد يتم طلبها من قِبل CoordinatorLayout. يجب إزالة أي عمليات تنفيذ، بالإضافة إلى أي طلبات موجَّهة إلى هذه الطريقة.
  • تم إيقاف السمة MediaSessionCompat.obtain() نهائيًا واستبدالها بالطريقة fromMediaSession() التي تحمل الاسم الأنسب.
  • تم إيقاف السمة MediaSessionCompat.QueueItem.obtain() نهائيًا واستبدالها بالطريقة fromQueueItem() التي تحمل اسمًا أكثر ملاءمة.
  • وقد تم إيقاف العديد من الفئات المجرّدة واستبدالها بواجهات تعكس بشكل أكبر العناصر المقابلة لإطار العمل الخاص بها.
  • تم إيقاف واجهة برمجة التطبيقات CustomTabsSession.setToolbarItem() نهائيًا واستبدالها بنظام التشغيل setSecondaryToolbarViews() المستنِد إلى RemoteViews.

إصلاح الأخطاء

تم إصلاح المشكلات المعروفة التالية باستخدام الإصدار 24.2.0:

  • تأكَّد من عرض مؤشر SwipeRefreshLayout عند استدعاء setRefreshing(true) قبل اجتياز أول عملية قياس (مشكلة AOSP 77712).
  • منع ظهور وميض TabLayout عند تغيير الصفحات (مشكلة AOSP 180454)
  • تجنَّب استخدام ClassNotFoundException عند إلغاء تنظيم SavedState على المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأقدم (مشكلة AOSP 196430).

تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.

الإصدار 24.1.1

تموز (يوليو) 2016

المشاكل التي تم إصلاحها:

  • إصلاح مشكلة في الإصدار 24.1.0 أثرت في معرّفات الموارد التي تتم مشاركتها بين مكتبات الدعم. تسبّبت هذه المشكلة في مواجهة التطبيقات التي كانت تعتمد على مكتبات الدعم التي تتضمّن موارد (مثل التصميم وappcompat) مشاكل ناتجة عن عدم تطابق معرّفات الموارد.

الإصدار 24.1.0

تموز (يوليو) 2016

التغييرات في مكتبة دعم الإصدار 4:

المشاكل التي تم إصلاحها:

  • نتائج TabLayout.setCustomView(null) تظهر في NullPointerException (مشكلة AOSP 214753)
  • TabLayout يميّز علامات التبويب المخصَّصة بشكل غير صحيح (مشكلة AOSP 214316)
  • تستخدم AppCompatTextHelper مصفوفة سمات تم ترتيبها بشكل غير صحيح (مشكلة AOSP 214366)
  • تعذّر الإشارة إلى VectorDrawable من حاوية XML قابلة للرسم عند استخدام ContextWrapper (مشكلة AOSP رقم 214055)
  • ViewDragHelper.saveLastMotion() طرح ArrayIndexOutOfBoundsException (مشكلة AOSP 212945)
  • يتم توسيع BottomSheetBehavior إلى ارتفاع المحتوى القديم عند استخدام setState(STATE_EXPANDED) (مشكلة AOSP 213660)
  • لا تتعامل أداة CollapsingToolbarLayout مع العناصر الثانوية القابلة للتثبيت التي بها هوامش عليا أو سفلية (مشكلة AOSP 213001)
  • لا يتوافق عنوان تصفح Leanback مع محاذاة RTL (مشكلة AOSP 213461)
  • اختفاء PagerTabStrip بسبب عدم توفّر تعليق توضيحي موروث (مشكلة AOSP 213359)
  • يؤدي ربط البيانات إلى طرح NullPointerException عند استخدام القيمة المنطقية لضبط العلامات الشرطية (مشكلة AOSP 191841)
  • لا يستجيب CoordinatorLayout إلى setFitsSystemWindows() (مشكلة AOSP 212720)
  • تعطُّل BottomSheetBehavior عند إعداد الحالة الأولية (مشكلة AOSP 203114)
  • يتخطّى ViewPager الصفحات إذا كان فهرس الصفحات كبيرًا (مشكلة AOSP 211734)
  • لا تعمل أداة BottomSheetBehavior مع التنسيقات الديناميكية (مشكلة AOSP 205226).

الإصدار 24.0.0

حزيران (يونيو) 2016

التغييرات في مكتبة دعم الإصدار 4:
  • تمت إضافة Fragment.commitNow() للالتزام المتزامن.
  • تمت إضافة NotificationCompat.MessagingStyle للمحادثات المتعددة الأطراف
  • تمت إضافة NotificationManagerCompat.areNotificationsEnabled() وgetImportance().
  • يعكس MediaSessionCompat الآن وظائف MediaSession ولم يعُد يستدعي setMediaButtonReceiver() تلقائيًا.

ملاحظة: لا يتوافق الإصدار MediaBrowserServiceCompat فقط من الإصدار 24.0.0 مع الإصدارات المستقبلية من Android إلا في الإصدار 24 من API 24. إذا كنت تستخدم إصدارات سابقة، يُرجى التحديث إلى هذا الإصدار لضمان التوافق.

التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة إمكانية الإشارة إلى عناصر ColorStateList ذات مواضيع معيّنة من ملف XML.
التغييرات في مكتبة دعم التصميم:
تغييرات مكتبة الإصدار 17 من Leanback:
  • تمت إضافة ميزة "OnboardingFragment" لتوفير عملية الترحيب وبدء عملية الإعداد لأول مرة.
التغييرات التي تطرأ على علامات التبويب المخصّصة:
  • تمت إضافة إمكانية توفير تسلسل RemoteViews الهرمي لشريط الأدوات الثانوي.
  • تمت إضافة السمة CustomTabsClient.connectAndInitialize() لإكمال عملية الإعداد من سطر واحد.

الإصدار 23.4.0

أيار (مايو) 2016

التغييرات في مكتبة دعم الإصدار 4:
  • تم إصلاح المشكلة المتمثلة في إضافة الأجزاء بترتيب غير صحيح. (المشكلة 206901)
  • تم إصلاح المشكلة المتمثلة في عدم رسم شريط التطبيق بعد الانتقال خارج الشاشة. (المشكلة 178037)
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
التغييرات في مكتبة دعم التصميم:
التغييرات في مكتبة Vector Drawable:

الإصدار 23.3.0

نيسان (أبريل) 2016

التغييرات في مكتبة دعم الإصدار 4:
  • تمت إضافة AppLaunchChecker للمساعدة في تتبُّع كيفية تشغيل المستخدم لتطبيقك في السابق. تتيح لك ميزة hasStartedFromLauncher() معرفة ما إذا كان المستخدم قد شغّل تطبيقك من الشاشة الرئيسية من قبل، أو ما إذا كان قد بدأ تشغيله فقط بوسائل أخرى (على سبيل المثال، لعرض عناوين URL محدّدة على الويب).
  • تم إصلاح تسرّب الذاكرة في MediaBrowserServiceCompat.mConnections. (المشكلة 205220)
  • تم إصلاح مشكلة لا تأخذ ViewPager في الاعتبار هوامش الصفحة عند قلب الصفحة. (المشكلة 203816)
  • يتم تسليم Fragment.onRequestPermissionsResult() الآن إلى الأجزاء الثانوية.
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
تغييرات الإصدار 7 من مكتبة Mediarouter:
تغييرات في مكتبة الإصدار 7 من الإعدادات المفضّلة:
تغييرات الإصدار 7 من مكتبة recyclerview:
التغييرات في مكتبة دعم التصميم:

الإصدار 23.2.1

آذار (مارس) 2016

التغييرات في مكتبة دعم الإصدار 4:
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
  • تم إلغاء الاعتمادية على مواد عرض المتجهات حتى لا يضطر المطوّرون الذين يستخدمون مكتبة appcompat إلى استخدام VectorDrawable وعلامات الإصدار المرتبطة بها.
  • تم إصلاح مشكلة التوافق مع "الوضع الليلي" والمستوى 23 من واجهة برمجة التطبيقات. (الإصدار 201910)
  • تم إصلاح مشكلة التوافق مع SwitchCompat والمستوى 7 من واجهة برمجة التطبيقات. (الإصدار 201942)
  • تم إصلاح مشكلة متعلقة بنشر قيم الإعداد في كائنات الموارد. المشكلة 201928
  • تم إصلاح مشكلة التوافق حيث يصبح زر الإلغاء android.support.v7.app.NotificationCompat.MediaStyle غير مرئي على المستوى 21 من واجهة برمجة التطبيقات والمستويات الأدنى. (المشكلة 202156)
  • تم إصلاح عطل في التوافق مع AppCompatSpinner على المستوى 21 من واجهة برمجة التطبيقات والإصدارات الأقدم. (المشكلة 202246)
  • تم إصلاح المشكلة المتمثلة في عدم عمل نمط app:textAllCaps = "false". (المشكلة 202117)
  • تم إصلاح عطل كان يحدث عند استعادة SearchView. (المشكلة 201836)
  • تم إصلاح تسرّب الذاكرة الذي يحدث عند تلوين الموارد القابلة للرسم باستخدام AppCompat. (المشكلة 202379)
  • تم إصلاح مشكلة KeyEvent على المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأقدم. (المشكلة 202939)
تغييرات مكتبة الإصدار 7 من Cardview:
تغييرات الإصدار 7 من مكتبة recyclerview:
تغييرات الإصدار 7 من مكتبة Mediarouter:
تغييرات الإصدار 17 من Leanback Library:
  • تم حل مشكلة في GridLayout.onAddFocusables() أدّت إلى اختيار العنصر غير الصحيح.
  • تم إصلاح المشكلة المتمثلة في اختفاء إجراءات GuidedStepFragment بعد تصغير الإجراء.
التغييرات في مكتبة دعم التصميم:
تغييرات VectorDrawableCompat:
  • تم إصلاح الخطأ المتمثل في قراءة المتغير الخطأ في android:tintMode. (الإصدار 201907)

الإصدار 23.2.0

شباط (فبراير) 2016

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة MediaBrowserCompat لدعم MediaBrowser وMediaBrowserServiceCompat لدعم MediaBrowserService. ويكون ذلك مفيدًا عند ربط خدمة الخلفية لتطبيق وسائط بمكوّنات واجهة المستخدم والدمج مع Android Auto وAndroid Wear بدون الحاجة إلى المستوى 21 من واجهة برمجة التطبيقات أو مستوى أعلى.
  • يطلب النظام الآن السمة onActivityResult() لسمة FragmentActivity مدمجة.
تغييرات الإصدار 7 من مكتبة AppCompat:
  • تمت إضافة وظيفة "الوضع الليلي" إلى المستوى 14 من واجهة برمجة التطبيقات والإصدارات الأحدث. يمكنك التبديل بين المظهرَين Material Light وMaterial Dark بناءً على الوقت أو الإعداد الخاص بالتطبيق.
    • يمكن العثور على المظاهر ليلاً ونهارًا هنا: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml.
    • AppCompatDelegate.setDefaultNightMode(): لضبط الوضع التلقائي للتطبيق من خلال تمرير أحد الثوابت التالية:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): لإلغاء إعداد الوضع الليلي لمكوِّن التطبيق المحلي.
    • AppCompatDelegate.getDefaultNightMode(): لعرض الوضع الليلي التلقائي.
تغييرات مكتبة Mediarouter v7:
التغييرات التي تم إجراؤها على مكتبة دعم التصميم:
  • تمت إضافة دعم أوراق البيانات السفلية. يتيح المكوِّن الإضافي للتفاعل، BottomSheetBehavior، عرضًا ثانويًا لـ CoordinatorLayout ليكون بمثابة بطاقة سفلية. توفّر الفئة الأساسية BottomSheetCallback طلبات استدعاء لمراقبة أحداث البطاقة السفلية.
التغييرات في مكتبة دعم علامات التبويب المخصّصة:
  • تسمح علامات التبويب المخصّصة في Chrome الآن للتطبيقات بتضمين شريط سفلي مع أزرار إجراءات بالإضافة إلى زر الإجراء العلوي الحالي.
  • CustomTabsIntent.Builder.addToolBarItem(): يضيف زر إجراء إلى علامة تبويب مخصّصة. يمكنك استخدام هذا لإضافة أزرار متعددة.
  • CustomTabsSession.setToolBarItem(): لتحديث العناصر المرئية لعناصر شريط الأدوات. لن تنجح هذه الطريقة إلا إذا تم منحها معرّف صالح وكانت جلسة المتصفّح في المقدّمة.
تمت إضافة مكتبة دعم VectorDrawable:
  • الصفوف المُضافة:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • يضيف هذا الخيار مواد عرض VectorDrawable إلى التطبيقات التي تعمل على المستوى 7 من واجهة برمجة التطبيقات أو مستوى أعلى. تتوفّر AnimatedVectorDrawable مواد عرض أيضًا على المستوى 11 من واجهة برمجة التطبيقات أو مستوى أعلى. يمكن أن تكون مواد عرض المتجه أصغر بكثير من مواد عرض الصور، ويجب أن تساعد في تقليل حجم التطبيق عن طريق تقليل مقدار مواد العرض المطلوبة للتوافق مع شاشات متعددة للأجهزة.
  • أصبحت هذه المكتبة الآن تابعة لمكتبة AppCompat للإصدار 7، ما يتيح للمطوّرين وAppCompat استخدام أشكال المتّجهات القابلة للرسم بسهولة. لاستخدام VectorDrawableCompat ضمن ImageButton أو ImageView، استخدِم السمة app:srcCompat XML أو طريقة setImageResource().
  • للاستمرار في الإشارة إلى معرّفات السمات على المستوى 20 لواجهة برمجة التطبيقات أو مستوى أدنى، أضِف علامة appt التالية إلى ملف build,gradle:
    • إذا كنت بصدد إنشاء مكوّن Android Plugin for Gradle 1.5.0 أو الإصدارات الأقدم، أضِف ما يلي إلى ملف build.gradle:
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • إذا كنت بصدد إنشاء مكوّن Android الإضافي لبرنامج Gradle 2.0.0 أو الإصدارات الأحدث، أضِف ما يلي إلى ملف build.gradle:
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
تغييرات مكتبة الإصدار 17 من Leanback:
  • تمت إضافة إمكانات جديدة إلى GuidedStepFragment، وهو مكوّن يرشد المستخدمين خلال قرار أو سلسلة من القرارات:
    • تمت إضافة إجراءات الزر إلى GuidedAction:
      • GuidedStepFragment.setButtonActions(): يحدّد قائمة بأزرار GuidedAction التي قد يختارها المستخدم من طريقة عرض "الإجراءات".
    • حقول الوصف قابلة للتعديل الآن:
      • GuidedAction.Builder.descriptionEditable(): عند تمرير true، يتم ضبط وصف الإجراء ليكون قابلاً للتعديل.
      • GuidedAction.getEditDescription(): لعرض الوصف القابل للتعديل على أنّه CharSequence.
    • تمت إضافة قوائم منسدلة للإجراءات الفرعية:
      • GuidedAction.setSubActions(): لتعيين قائمة GuidedAction كقائمة منسدلة بالإجراءات الفرعية.
  • تمت إضافة التطبيق المصغّر GuidedDatePickerAction لوظائف DatePicker:
    • يتم اختيار التاريخ باستخدام أعمدة السنة والشهر واليوم، ويكون له نطاق قابل للتخصيص.
    • GuidedDatePickerAction.Builder: فئة أداة الإنشاء للعنصر GuidedDatePickerAction
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): يمكنك ضبط تنسيق التاريخ المطلوب من خلال تمرير String الملائم المكوّن من ثلاثة أحرف، مثل “YMD” أو “MDY”. يمكنك أيضًا استخدام السمة datePickerFormat XML.
تغييرات مكتبة الإصدار 7 من RecyclerView:
  • يتضمّن RecyclerView الآن ميزة الموافقة المسماة القياس التلقائي والتي تسمح لـ RecyclerView.LayoutManager بلف المحتوى بسهولة أو التعامل مع مواصفات القياس المختلفة التي يوفّرها العنصر الرئيسي RecyclerView. ويتيح هذا الإجراء جميع إمكانات الصور المتحركة الحالية في RecyclerView.
    • إذا كانت لديك واجهة برمجة تطبيقات RecyclerView.LayoutManager مخصّصة، يمكنك استدعاء setAutoMeasureEnabled(true) لبدء استخدام واجهة برمجة التطبيقات Automeasure API الجديدة. إنّ جميع كائنات RecyclerView.LayoutManager المدمجة تتيح ميزة القياس التلقائي بشكل تلقائي.
    • لم يعُد RecyclerView.LayoutManager يتجاهل بعض إعدادات RecyclerView.LayoutParams، مثل MATCH_PARENT في اتجاه التمرير.

      ملاحظة: قد تؤدي هذه القيود التي تم رفعها إلى حدوث سلوك غير متوقَّع في تنسيقاتك. احرص على تحديد معلمات التنسيق الصحيحة.

  • عند تعديل RecyclerView.ViewHolder بمعلومات حمولة البيانات، يوقف DefaultItemAnimator الآن تغيير الصور المتحركة.
  • يمكنك الآن تعديل سرعة الإفلات في ItemTouchHelper للتحكّم في حساسية التمرير السريع. لتسهيل التمرير السريع أو جعله أصعب، يمكنك إلغاء getSwipeEscapeVelocity(float defaultValue) وتعديل defaultValue.

الإصدار 23.1.1

تشرين الثاني (نوفمبر) 2015

تغييرات الإصدار 7 من مكتبة recyclerview:
  • تم إصلاح عطل يحدث عند تنفيذ إجراء "التمرير السريع للإغلاق" الذي توفِّره فئة الأداة المساعدة ItemTouchHelper، ثم إضافة عنصر. (المشكلة 190500)
تغييرات تم إجراؤها على مكتبة الإعدادات المفضّلة للإصدار 7:
تغييرات في مكتبة دعم الإصدار 17 من Leanback:
  • تم إصلاح عدد من المشاكل الداخلية في هذه المكتبة.
تغييرات في مكتبة دعم التصميم:
  • تمت إضافة طريقة getHeaderView إلى الصف NavigationView.
  • تم إصلاح مشكلة شفافة في الخلفية لعنصر FloatingActionButton على الأجهزة التي تعمل بنظام التشغيل Android 4.0 (المستوى 15 من واجهة برمجة التطبيقات) والإصدارات الأقدم. (المشكلة 183315)

الإصدار 23.1.0

تشرين الأول (أكتوبر) 2015

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة إمكانية استخدام واجهة OnScrollChangedListener إلى التطبيق المصغّر NestedScrollView. يتيح لك هذا الخيار تلقّي استدعاءات عند تغيير موضعَي التمرير "س" أو "ص".
  • تمت إضافة صف MediaButtonReceiver لإعادة توجيه عناصر التحكّم في التشغيل المُستلَمة إلى خدمة تدير الفئة MediaSessionCompat. وتحتوي الفئة MediaSessionCompat على دالة إنشاء يمكنها العثور تلقائيًا على أداة استقبال زر الوسائط في البيان. ويشكّل جهاز استقبال أزرار الوسائط جزءًا أساسيًا من عملية التعامل مع عناصر التحكّم في التشغيل من الأجهزة أو عناصر التحكّم التي تعمل بالبلوتوث.
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة التصميم المتعدد الأبعاد Seekbar وImageButton تطبيق مصغّر.
  • تم تعديل التطبيق المصغّر "ImageView" لإتاحة ميزة درجات الألوان.
  • تم تعديل مظهر تطبيق SwitchCompat المصغّر وأسلوبه.
تغييرات الإصدار 7 من مكتبة Mediarouter:
  • تمت إضافة الميزات التالية إلى الصف "MediaRouteChooserDialog":
    • عرض صفحة تحميل أثناء اكتشاف مقدمي مسارات الوسائط.
    • يتضمن رمز نوع الجهاز لتحديده بسهولة.
    • يرتب المسارات وفقًا لمعدل الاستخدام في التطبيق الحالي.
    • إتاحة الوضع الأفقي
  • تمت إضافة الميزات التالية إلى الصف "MediaRouteControllerDialog":
    • يتعرّف على بث الشاشة ويقدّم وصفًا مناسبًا.
    • كما يتيح استخدام أحجام مختلفة لصورة الألبوم ونِسب عرض إلى ارتفاعها، كما يتيح تحميل الصورة بشكل غير متزامن.
    • يتم اختيار لون المحتوى تلقائيًا استنادًا إلى اللون الأساسي للتطبيق.
    • يضبط تنسيق مربّع الحوار استنادًا إلى مساحة الشاشة المتاحة على الجهاز.
    • إتاحة الوضع الأفقي
التغييرات التي تم إجراؤها على مكتبة لوحات الإصدار 7:
  • تمت إضافة الطريقة setRegion() لإتاحة استخراج اللون من منطقة محدّدة من عنصر Bitmap.
تغييرات الإصدار 7 من مكتبة recyclerview:
  • تمت إضافة واجهة برمجة تطبيقات محسّنة للصور المتحركة إلى الصف ItemAnimator للحصول على خيارات تخصيص أفضل:
    • إنّ تغيير الصور المتحركة لم يعُد يفرض نسختين من العنصر ViewHolder، ما يؤدي إلى تفعيل الصور المتحركة لمحتوى العنصر. بالإضافة إلى ذلك، يحدّد الكائن ItemAnimator ما إذا كان يريد إعادة استخدام كائن ViewHolder نفسه أو إنشاء كائن جديد.
    • تتيح واجهة برمجة التطبيقات الجديدة لسجلّ المعلومات للفئة ItemAnimator المرونة في جمع البيانات عند المرحلة الصحيحة من مراحل نشاط التصميم. ويتم نقل هذه المعلومات لاحقًا إلى عمليات معاودة الاتصال المتحركة.
  • توفير خطة انتقال سهلة لهذا التغيير غير المتوافق مع الأنظمة القديمة في واجهة برمجة التطبيقات:
    • إذا سبق لك تمديد الصف ItemAnimator، يمكنك تغيير الفئة الأساسية إلى SimpleItemAnimator ويجب أن يعمل الرمز على النحو المعتاد. توفّر الفئة SimpleItemAnimator واجهة برمجة التطبيقات القديمة من خلال إضافة إغلاق واجهة برمجة التطبيقات الجديدة.
    • تمت إزالة بعض الطرق من الفئة ItemAnimator. ولن يتم تجميع الرمز التالي:
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      يمكنك استبداله بـ:

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
التغييرات التي تم إجراؤها على مكتبة تفضيل v7 وv14 وv17:
  • تمت إزالة واجهات برمجة التطبيقات للتحكّم في مربّعات حوار EditText.
تغييرات في مكتبة دعم الإصدار 17 من Leanback:
  • تمت إضافة نسخة من فئة GuidedStepFragment لمكتبة الدعم (مع امتداد android.support.v4.app.Fragment)، بالإضافة إلى صور متحركة وانتقالات محسَّنة.
  • تم تعديل الصف GuidedStepFragment بحيث يمكن وضعه فوق المحتوى الحالي.
  • تمت إضافة إمكانية إضافة تعليقات توضيحية إلى أنواع مختلفة من عمليات البحث المكتملة إلى الصف SearchFragment.
  • تمت إضافة إمكانية النقل المتدرّج للشرائح إلى الصف VerticalGridFragment.
تغييرات في مكتبة دعم التصميم:
  • تمت إضافة إمكانية عدد الأحرف إلى التطبيق المصغّر TextInputLayout.
  • تمت إضافة دعم محاذاة الحواف إلى الفئة AppBarLayout من خلال إضافة الثابت SCROLL_FLAG_SNAP. عند انتهاء التمرير، إذا كان العرض مرئيًا جزئيًا فقط، يتم تصغير العرض وتمريره إلى أقرب حافة له.
  • تمت إتاحة طرق العرض المخصّصة للفئة NavigationView باستخدام السمة app:actionLayout أو الطريقة MenuItemCompat.setActionView().
تغييرات في مكتبة دعم علامات التبويب المخصَّصة:
  • تمت إضافة طريقة enableUrlBarHiding() إلى الصف CustomTabsIntent. فهو يتيح للعميل تخصيص ما إذا كان يجب إخفاء شريط عنوان URL تلقائيًا عند الانتقال للأسفل.
  • تمت إضافة طريقة setActionButton() إلى الصف CustomTabsSession. ويسمح ذلك للعميل بتغيير رمز زر إجراء مخصّص في علامة تبويب مخصّصة سبق أن تم إطلاقها.
  • تمت إضافة الثوابت TAB_SHOWN وTAB_HIDDEN كأحداث جديدة لطريقة onNavigationEvent من الفئة CustomTabsCallback.

الإصدار 23.0.1

أيلول (سبتمبر) 2015

التغييرات التي تم إجراؤها على مكتبة الإصدار 7 ومكتبة التفضيلات v14:
  • تمت إضافة تخطيط التصميم متعدد الأبعاد وملفات النمط. (المشكلة 183376)
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
  • تم إصلاح مشاكل الأعطال للفئة Fragment من خلال حصر استخدام طبقات الأجهزة على الإصدار Android 4.1 (المستوى 16 لواجهة برمجة التطبيقات) والإصدارات الأحدث. (المشكلة 183896)
  • تم إصلاح المشكلة المتمثلة في عدم عمل أزرار الأجهزة عندما ضبط أحد الأنشطة فئة Toolbar لتكون بمثابة ActionBar باستخدام طريقة setSupportActionBar(). (المشكلة 183334)
  • تم تعديل الفئة AppCompatDialogFragment لكي لا تعرض الخطأ Windows feature must be requested before adding content بعد الآن. (المشكلة 183186)
تغييرات في مكتبة دعم التصميم:
تغييرات في مكتبة دعم علامات التبويب المخصَّصة:

النسخة رقم 23

أغسطس 2015

تمت إضافة مكتبات دعم جديدة:

للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.

الإصدار 22.2.1

تموز (يوليو) 2015

تغييرات في مكتبة دعم التصميم:
  • تمت إضافة الطريقتَين hide() وshow() إلى الفئة FloatingActionButton للتشغيل الآلي للصور المتحركة.
  • تمت إضافة الثابت LENGTH_INDEFINITE إلى الفئة Snackbar لعرض شريط للوجبات الخفيفة إلى أن يتم إغلاقه أو حتى يتم عرض شريط نصي آخر. وتمت أيضًا إضافة الطريقتَين setActionTextColor(int) وsetActionTextColor(ColorStateList).
  • تمت إضافة الطريقة getSelectedTabPosition() إلى الصف TabLayout لاسترداد علامة التبويب المحدّدة حاليًا.
  • تم توفير واجهة برمجة تطبيقات كاملة اللغة للفئة android.support.v7.app.NotificationCompat.MediaStyle لتسلسل الطرق.
  • تمت إضافة طرق ملائمة إلى RecyclerView لإدراج العناصر بشكل مجمّع.

للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.

الإصدار 22.2.0

أيار (مايو) 2015

تمت إضافة مكتبة دعم التصميم:
  • تمت إضافة السمة TextInputLayout لعرض نص التلميح EditText والخطأ كتصنيفات عائمة.
  • تمت إضافة FloatingActionButton لتنفيذ إجراء أساسي على واجهتك كزر إجراء عائم، يتوافق مع الحجم التلقائي أو المصغّر.
  • تمت إضافة Snackbar لتقديم ملاحظات بسيطة مع إجراء اختياري في شريط وجبات خفيفة متحرك.
  • تمت إضافة ميزة TabLayout لتنفيذ علامات تبويب ثابتة وقابلة للتمرير، بالإضافة إلى إمكانية الدمج السهلة مع ViewPager.
  • تمت إضافة ميزة NavigationView لتنفيذ محتوى درج التنقّل، بما في ذلك إمكانية تضخيم عناصر القائمة عبر مورد قائمة.
  • تمت إضافة CoordinatorLayout، وهو تنسيق للأغراض العامة، يُستخدم لإنشاء تبعيات بين طرق العرض التابعة والسماح بتفاعلات التمرير السهل بين المكونات عبر CoordinatorLayout.Behavior. ويعتمد العديد من مكوّنات مكتبة التصميم على عناصر فرعية للسمة CoordinatorLayout.
  • تمت إضافة AppBarLayout، وهي حاوية لـ Toolbar وطرق عرض أخرى (مثل TabLayout) للتفاعل مع تمرير الأحداث من خلال التمرير خارج الشاشة، أو الظهور ضمن التفاعل مع تمرير للأسفل، أو إمكانية تصغير/إلغاء تصغير قبل التمرير خارج/على الشاشة.
  • تمت إضافة CollapsingToolbarLayout للتحكم في كيفية تصغير Toolbar. يمكن أن يتم تصغير شريط الأدوات من خلال: تثبيت المكونات في أعلى الشاشة أثناء تصغيرها، أو تقديم التمرير المحوري للمكوّنات، مثل ImageView، أو إضافة لون شريط لاصق المحتوى عند تصغير العرض جزئيًا.
التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
تغييرات الإصدار 7 من مكتبة التطبيقات:

للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.

الإصدار 22.1.0

نيسان (أبريل) 2015

التغييرات في مكتبة التعليقات التوضيحية:
  • تمت إضافة مكتبة التعليقات التوضيحية لتوفير الدعم لعمليات فحص الرموز المحسَّنة. تتم إضافة التعليقات التوضيحية على شكل علامات بيانات وصفية تُرفِقها بالمتغيّرات والمَعلمات وقيم الإرجاع لفحص القيم المعروضة للطريقة والمَعلمات التي تم تمريرها والمتغيرات والحقول المحلية.
التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
تغييرات الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة إمكانية استخدام تلوين على التطبيقات المصغّرة المتوافقة، ومنها AppCompatAutoCompleteTextView وAppCompatButton وAppCompatCheckBox وAppCompatCheckedTextView وAppCompatEditText وAppCompatMultiAutoCompleteTextView وAppCompatRadioButton وAppCompatRatingBar وAppCompatSpinner وAppCompatTextView.
  • تم تعديل AppCompatActivity لتكون الفئة الأساسية للأنشطة التي تستخدم ميزات شريط إجراءات مكتبة الدعم. وتحلّ هذه الفئة محلّ ActionBarActivity المتوقّفة نهائيًا.
  • تمت إضافة واجهة AppCompatCallback المطلوب تنفيذها لتطبيق AppCompat ليتمكّن من إجراء عمليات معاودة الاتصال.
  • تمت إضافة الفئة الموجزة AppCompatDelegate كتفويض يمكنك استخدامه لتوسيع نطاق دعم AppCompat ليشمل أي نشاط.
  • تمت إضافة فئة AppCompatDialog كفئة أساسية لمربّعات الحوار المستوحاة من AppCompat.
  • تمت إضافة صفّ AlertDialog وAlertDialog.Builder نمط الدوران لتوفير سمة AlertDialog مستوحاة من AppCompat.
  • تمت إضافة الفئة Palette.Builder لإنشاء Palette مثيل.
    • تمت إضافة الإجراء from(Bitmap) إلى الفئة Palette لبدء إنشاء لوحة ألوان باستخدام مثيل Palette.Builder الذي تم عرضه.
    • تم إيقاف الإجراءَين Palette.generate() وPalette.generateAsync() نهائيًا.
  • تمت إضافة الطريقة getAbsoluteAlignment() إلى الفئة GridLayout.Spec.
  • تم إيقاف استخدام app:theme للنمط Toolbar. يمكنك الآن استخدام android:theme لأشرطة الأدوات على جميع الأجهزة من المستوى 7 والإصدارات الأحدث من واجهة برمجة التطبيقات وandroid:theme مع جميع التطبيقات المصغّرة على الأجهزة من المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأحدث.
تغييرات الإصدار 17 من مكتبة leanback:
تغييرات الإصدار 7 من مكتبة recyclerview:
  • تمت إضافة SortedList صفوف لعرض العناصر بترتيب القائمة وتقديم إشعار بالتغييرات التي تطرأ على القائمة.
  • تمت إضافة الفئة SortedListAdapterCallback التي يمكنها ربط قائمة تم ترتيبها بالفئة RecyclerView.Adapter.
التغييرات في مكتبة الإصدار 8 من Renderscript:
  • تمت إضافة الفئة ScriptIntrinsicHistogram لاستخدامها كفلتر مدرج تكراري.
  • تمت إضافة الفئة ScriptIntrinsicResize لإجراء تغيير حجم التخصيص الثنائي الأبعاد.

النسخة رقم 22

مارس 2015

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تم تعديل طريقة getDrawable() لعرض عنصر قابل للرسم لرقم تعريف مورد محدّد، وكثافة الشاشة، والمظهر.
  • تمت إضافة طريقة setImportantForAccessibility() حتى تتمكّن من الإشارة إلى ما إذا كان يجب أن تؤدي المشاهدة إلى تشغيل الأحداث المخصّصة لتسهيل الاستخدام.
  • تمت إضافة طريقة getStatusBarBackgroundDrawable() بحيث يمكنك الحصول على خلفية قابلة للرسم في شريط الحالة.
  • تمت إضافة طرق إلى الفئة NotificationCompat.CarExtender.UnreadConversation ليتمكّن تطبيقات المراسلة على Android Auto من استرداد بيانات الإشعارات الإضافية.
  • تمت إضافة الطريقة getProgressCircleDiameter() لعرض قطر التخطيط الدائري.
  • تم تغيير لون شريط الحالة DrawerLayout التلقائي إلى colorPrimaryDark.
تغييرات الإصدار 7 من مكتبة التطبيقات:
تغييرات الإصدار 17 من مكتبة leanback:
  • تمت إضافة طريقتَي getRecycledPoolSize() وsetRecycledPoolSize() لإتاحة أحجام مخصّصة لحمامات السباحة المُعاد تدويرها.
  • تمت إضافة السمة WRAP_CONTENT إلى إعداد عرض التنسيق لإتاحة المحتوى الملتف لرموز العناوين.
  • تم تحديد R.transition في ملف XML لتحسين تعديلات عمليات النقل.
  • تم تفعيل التوافق مع التنسيقات من اليمين إلى اليسار.
  • تمت إضافة ميزة التشغيل والإيقاف المؤقت للأحداث الرئيسية في الوسائط إلى الصف PlaybackOverlayFragment.
  • تمت إضافة انتقالات الإدخال والرجوع إلى الصفَّين BrowseFragment و DetailsFragment.
  • تمت إضافة الطريقة replace() لاستبدال العناصر في مصفوفة محوِّل العنصر.
تغييرات الإصدار 7 من مكتبة Mediarouter:
تغييرات الإصدار 7 من مكتبة recyclerview:

الإصدار 21.0.3

كانون الأول (ديسمبر) 2014

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:

الإصدار 21.0.2

تشرين الثاني (نوفمبر) 2014

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
تغييرات الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة الدالة الإنشائية PopupMenu لإتاحة القوائم المنبثقة الجديدة.
  • تمت إتاحة استخدام وصف رمز التصغير في الصف Toolbar.
  • تم تعديل التطبيق المصغّر SearchView لإتاحة عرض commitIcon.
  • تمت إزالة السمة buttonGravity من الفئة Toolbar.
تغييرات الإصدار 7 من مكتبة Cardview:
تغييرات مكتبة الإصدار 7 من recyclerview:
تغييرات الإصدار 17 من مكتبة leanback:
  • تمت إضافة إمكانية إنشاء أجزاء الرمز v4.
  • تم تغيير لون النص الثانوي في CardView.

الإصدار 21.0.1

تشرين الثاني (نوفمبر) 2014

تمت إضافة مكتبة دعم متعدد الاستخدامات لإتاحة ملفات متعددة في Dalvik قابلة للتنفيذ (DEX) لإتاحة استخدام الملفات المتعددة الوسائط قبل الإصدار Android 5.0.

النسخة رقم 21

تشرين الأول (أكتوبر) 2014

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة إتاحة عمليات نقل Fragment للأجهزة التي تعمل بنظام التشغيل Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات). يُرجى العلم أنّ عمليات النقل ليس لها أي تأثير على الأجهزة التي تعمل بنظام التشغيل Android 4.4 والإصدارات الأقدم.
  • تمت إضافة DocumentFile لتسهيل الانتقال من File أثناء العمل مع مجموعات المستندات. تتطلّب هذه الفئة تكاليف معالجة إضافية مقارنةً بواجهة برمجة التطبيقات DocumentsContract للنظام الأساسي التي تمت إضافتها في الإصدار Android 4.4 (المستوى 19 من واجهة برمجة التطبيقات). لذا، عليك التبديل إلى استخدام DocumentsContract عند استخدام نظام التشغيل Android 4.4 والإصدارات الأحدث.
تغييرات الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة دعم لواجهات مستخدم التصميم متعدد الأبعاد.
  • تمت إضافة السمة Toolbar التي تعمِّم وظائف ActionBar للاستخدام ضمن تنسيقات التطبيقات.
  • تم تعديل السمة ActionBarDrawerToggle التي تحتوي على الصورة المتحركة من قائمة إلى سهم.
  • تم تحديث أدوات واجهة المستخدم الشائعة لإتاحة تعديل الألوان عبر سمات المظهر عند التشغيل على أجهزة تعمل بالإصدار 5.0 من نظام التشغيل Android.
  • تمت إضافة SwitchCompat، وهو عبارة عن خلفية لأداة Switch التي تمت إضافتها في Android 4.0 (مستوى واجهة برمجة التطبيقات 14).
الإصدار 7 من مكتبة Cardview الجديدة:
  • تمت إضافة التطبيق المصغّر CardView الذي يوفّر عملية تنفيذ متوافقة مع التصميم المتعدد الأبعاد لعرض عناصر البيانات.
مكتبة الإصدار 7 من recyclerview الجديدة:
  • تمت إضافة التطبيق المصغَّر RecyclerView الذي يوفّر طريقة عرض قائمة مرنة لتوفير نافذة محدودة في مجموعة بيانات كبيرة.
مكتبة لوحة الإصدار 7 الجديدة:
  • تمت إضافة الفئة Palette التي تتيح لك استخراج ألوان بارزة من صورة.
مكتبة leanback الإصدار v17 الجديدة:

النسخة رقم 20

تموز (يوليو) 2014

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة دعم إضافي للإشعارات على Android Wear في NotificationCompat.WearableExtender، ما يتيح لك تحديد الميزات الخاصة بالأجهزة القابلة للارتداء في إشعاراتك.
  • تمت إضافة NotificationCompat.Action.WearableExtender، ما يتيح إضافة الإجراءات على إشعارات الأجهزة القابلة للارتداء.
  • تمت إضافة ميزة NotificationManagerCompat، والتي تتيح لك إصدار إشعارات تتوافق مع الميزات القابلة للارتداء بشكل صحيح.
  • تمت إضافة السمة RemoteInput، والتي تسمح للأجهزة المحمولة باليد بتلقّي إدخال صوتي من إشعار يظهر على الجهاز القابل للارتداء.
  • تم تحسين معالجة الملاحظات التي تتم باللمس في SwipeRefreshLayout.

الإصدار 19.1.0

مارس 2014

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • وتمت إضافة الفئة SwipeRefreshLayout التي تتيح للمستخدمين إعادة تحميل محتوى العرض بإيماءة التمرير السريع عمودي.
  • تم إصلاح مشاكل إمكانية الوصول في أدراج التنقل.
التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
  • تم إصلاح مشاكل الخلفية في شريط الإجراءات.

الإصدار 19.0.1

كانون الأول (ديسمبر) 2013

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تم تحسين PrintHelper عن طريق إضافة معالجة غير متزامنة للطباعة.
  • تم إصلاح تقريب الفئة DrawerLayout للطريقة addChildrenForAccessibility().
  • ميزة النسخ المطابق القابل للرسم للشرائح في ActionBarDrawerToggle
  • تم حل مشكلة واحدة تلو الأخرى عند إزالة عنصر من تكرار مجموعة.
تغييرات لمكتبة Mediarouter v7:
التغييرات في مكتبة الإصدار 8 من Renderscript
  • تمت إضافة عملية نشر الخطأ لطبقة تعتيم RenderScript.

المراجعة 19

تشرين الأول (أكتوبر) 2013

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تم توفير واجهات برمجة تطبيقات مساحة التخزين الخارجية من خلال getObbDirs() وgetExternalFilesDirs() وgetExternalCacheDirs() وgetStorageState(). تعرض طُرق المساعدة هذه دائمًا عنصر ملف واحد على الأجهزة التي تعمل بالإصدار 4.3 من نظام التشغيل Android (المستوى 18 من واجهة برمجة التطبيقات) والإصدارات الأقدم. وعند استخدام نظام التشغيل Android 4.4 (المستوى 19 لواجهة برمجة التطبيقات) والإصدارات الأحدث، قد تعرض هذه الطرق أكثر من عنصر ملف واحد.
  • تمت إضافة الصف PrintHelper الذي يعمل مع واجهات برمجة تطبيقات الطباعة لطباعة الصور باستخدام الحدّ الأدنى من الرموز.
  • تمت إضافة دعم واجهة المستخدم للسحب للفتح للقوائم المنبثقة. لمزيد من المعلومات، يمكنك الاطّلاع على PopupMenuCompat وListPopupWindowCompat.
  • تم تحسين تسهيل الاستخدام من خلال إضافة طريقة findFocus() في AccessibilityNodeProviderCompat والطريقة getLiveRegion() في AccessibilityNodeInfoCompat.
  • تمت إضافة فئة المساعدة ScaleGestureDetectorCompat للوصول إلى طرق إيماءات التوسعة الجديدة.
  • تم حل مشكلة اللغة ActionBarDrawerToggle المعروضة من اليمين إلى اليسار.
  • تم تعديل خيار AutoScrollHelper لاستخدام أحداث اللمس أو السماح بتمريرها إلى طرق عرض أخرى.
تغييرات لمكتبة Mediarouter v7:
  • تمت إتاحة إضافة الوسائط إلى "قائمة المحتوى التالي" وضبط قيم عناوين HTTP ومدة تشغيل الوسائط.
  • تمت إضافة إجراءات واضحة لبدء الجلسة والحصول عليها وانتهائها لإدارة جلسات تشغيل الوسائط بوضوح باستخدام جهاز توجيه الوسائط.

النسخة رقم 18

تموز (يوليو) 2013

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • واجهة المستخدم
    • تمت إضافة السمة BidiFormatter لمعالجة السلاسل النصية التي تجمع النص من اليمين إلى اليسار ومن اليمين إلى اليسار.
    • تم تعديل ViewPager للتعامل بشكل أفضل مع الحالات التي يكون فيها جهاز النداء صفريًا أثناء معالجة التنسيق الأولية.
    • تم تعديل DrawerLayout وSlidingPaneLayout لعدم طرح استثناءات للقياس أثناء تعديل رمز المشروع.
  • تسهيل الاستخدام
    • تمت إضافة السمة ExploreByTouchHelper لتبسيط عملية تنفيذ تسهيل الاستخدام لطرق العرض المخصّصة.
    • تم إصلاح مشكلة متعلّقة بتعبئة ViewPager بشكل غير صحيح لأحداث تسهيل الاستخدام في TYPE_VIEW_SCROLLED.
    • تم إصلاح استثناء مؤشر فارغ في ViewPager عند تعبئة حدث تسهيل الاستخدام.
    • تم تبسيط AccessibilityNodeInfoCompat من خلال تغيير إدخالات CharSequence إلى String عنصر.
    • تم إيقاف دالة إنشاء AccessibilityRecordCompat التي استخدمت Object كإدخال.
  • الوسائط
    • تمت إضافة فئة المساعد TransportMediator لإدارة عناصر التحكّم في نقل الوسائط، مثل التشغيل والإيقاف المؤقت والتخطي وإجراءات الوسائط الأخرى.
    • تمت إضافة DisplayManagerCompat لإدارة إخراج الشاشة على شاشة جهاز واحدة أو أكثر.
  • التغييرات الأخرى
    • تمت إضافة فئة المساعد WakefulBroadcastReceiver لتنفيذ نمط شائع يتمثل في رصد حدث تنشيط الجهاز وتمرير العمل إلى Service مع ضمان عدم عودة الجهاز إلى وضع السكون قبل اكتمال عملية التسليم.
    • تمت إضافة واجهتَي برمجة تطبيقات جديدتَين، هما commitContentChanged() وrollbackContentChanged()، إلى AsyncTaskLoader للمساعدة في التعامل مع التعديلات في الخلفية لتغييرات البيانات التي سيتم إلغاؤها لاحقًا.
الإصدار 7 من مكتبة التطبيقات:
  • تمت إضافة ActionBar للسماح بتنفيذ نمط تصميم واجهة المستخدم في شريط الإجراءات بدءًا من Android 2.1 (مستوى واجهة برمجة التطبيقات 7) والإصدارات الأحدث. لاستخدام هذا الصف، يجب تنفيذ نشاطك من خلال تمديد صف ActionBarActivity الجديد.
مكتبة Mediaroute الجديد من الإصدار 7:

تمت إضافة مكتبة جديدة لجهاز توجيه الوسائط توفّر دعمًا لمعاينة مطوّري برامج Google Cast. توفّر واجهات برمجة التطبيقات لمكتبة Mediarouter v7 وسيلة للتحكم في توجيه قنوات الوسائط وعمليات البث من الجهاز الحالي إلى الشاشات الخارجية ومكبّرات الصوت وأجهزة الوجهة الأخرى، مع التوافق مع الإصدار Android 2.1 (المستوى 7 من واجهة برمجة التطبيقات). راجِع مكتبة جهاز توجيه الوسائط V7 للحصول على مزيد من المعلومات.

تخضع واجهات برمجة التطبيقات الإصدار 7 من مكتبة Mediarouter في الإصدار r18 من مكتبة الدعم للتغيير في الإصدارات اللاحقة من "مكتبة الدعم". نقترح في الوقت الحالي استخدام المكتبة فقط مع معاينة المطور على Google Cast.

النسخة 13

أيار (مايو) 2013

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
مكتبة الإصدار 7 الجديد من الشبكة:
  • تمت إضافة GridLayout لتوفير الدعم لكائن التنسيق GridLayout.
  • تمت إضافة السمة android.support.v7.widget.Space التي يمكن استخدامها لإنشاء مناطق فارغة داخل كائن التنسيق GridLayout.

النسخة 12

شباط (فبراير) 2013

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تم تحسين سلوك التفاعل لتطبيق "ViewPager".
  • تم إصلاح الخلل الذي قد يتسبب في اختيار ViewPager للصفحة غير الصحيحة.
  • تم إصلاح استخدام طريقة removeView() أثناء تنسيق ViewPager.
  • تم إصلاح مشكلة في SearchViewCompat تؤدي إلى عدم محو نص البحث عند استخدام زر الرجوع للإغلاق. لا ينطبق هذا الإصلاح إلّا على مستويات واجهة برمجة التطبيقات المضيفة 14 والمستويات الأعلى.

النسخة 11

تشرين الثاني (نوفمبر) 2012

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • واجهة المستخدم
    • تمت إضافة الدعم لصفوف Fragment المدمَجة.
    • تمت إضافة تحسينات على تصحيح الأخطاء في FragmentManager.
    • تم إصلاح مشكلة في FragmentTabHost كانت تؤدي إلى فقدان حالة ListView عند التفاعل مع الأجزاء وعلامة التبويب.
    • تم إصلاح المشكلة المتعلقة بالتلميح المرئي للمستخدم في FragmentStatePagerAdapter.
    • تمت إضافة واجهة PageTransformer إلى ViewPager للسماح للتطبيقات بتوفير سلوك انتقال مخصّص للتمرير.
    • تمت إضافة ميزات وإصلاحات جديدة إلى الإصدار TaskStackBuilder من الإصدار الحالي.
    • تم إصلاح أخطاء PagerTitleStrip لتتبُّع PagerAdapter المستخدمة حاليًا بشكل صحيح.
    • تم إصلاح المشاكل المتعلقة بالوميض وتحديد الموضع واقتصاص النص في الشاشة في PagerTitleStrip.
    • تم إصلاح PagerTabStrip لمراعاة المساحة المتروكة بشكل صحيح عند رسم تسطير.
  • تسهيل الاستخدام
    • تمت إضافة الدعم لأنواع أحداث اللمس والإيماءات لتسهيل الاستخدام الجديدة في AccessibilityEventCompat.
    • تمت إضافة الدعم لواجهات برمجة التطبيقات الجديدة لتسهيل الاستخدام في ViewCompat.
    • تمت إضافة إمكانية استخدام طريقة performAccessibilityAction() إلى ViewCompat.
  • تمت إضافة إمكانية استخدام الإيماءات من خلال GestureDetectorCompat.
  • تمت إضافة إمكانية إجراء العمليات البسيطة على الملفات باستخدام فئة AtomicFile جديدة.
  • تمت إتاحة المجموعة الكاملة من طُرق make في IntentCompat.
  • تمت إضافة طريقة trimToSize() في فئة الأداة LruCache.
  • تم تحديث ConnectivityManagerCompat للحصول على NetworkInfo من بث CONNECTIVITY_ACTION.

النسخة 10

أغسطس 2012

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة دعم لميزات الإشعارات التي تم تقديمها في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات) مع إضافات إلى NotificationCompat.

النسخة 9

حزيران (يونيو) 2012

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • دعم واجهة المستخدم
    • تمت إضافة دعم PagerTabStrip، مما يوفر وظائف محسَّنة بخلاف PagerTitleStrip.
    • تم إصلاح أخطاء مختلفة في PagerTitleStrip وPagerTabStrip، بما في ذلك خيار setAllCaps ومحاذاة العنوان وتحسينات المظهر والحد الأدنى لقيود العرض ومشاكل التنقّل باللمس.
    • تمت إضافة دعم هامش توثيق صفحات ViewPager، والذي يساعد الفئة ViewPager على توفير دعم الصفحات للمحتوى الذي يتضمّن نطاق تمرير أفقي كبير، مثل الخريطة.
    • تم إصلاح العديد من الأخطاء في ViewPager، بما في ذلك مشاكل تغيير الحجم ومجموعة البيانات، وتحديد موضع الصفحات، وتفاعل المستخدم، وتتبع التمرير، ومشاكل التنقّل باستخدام لوحة المفاتيح.
    • تم إصلاح العديد من الأخطاء في Fragment، بما في ذلك المعالجة السليمة لـ onActivityResult() عندما لا يعود الجزء المستهدف متوفرًا، وإرسال أحداث التحديد إلى أجزاء غير مرئية، وتحسين سلوك FragmentTransaction.replace()، وإضافة معالجة أفضل للحالة التي يتم نقلها خارج إطار العرض.
    • تمت إضافة إمكانية استخدام طريقة postOnAnimation() في ViewCompat.
    • تم تحديث NavUtils لاستخدام وظيفة Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات) لأعلى وظائف التنقّل عند توفّرها.
  • تسهيل الاستخدام
    • تم تحديث فئات دعم تسهيل الاستخدام، بما في ذلك AccessibilityNodeInfoCompat، لاتّباع الإصلاحات التي تم إجراؤها في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات).
    • تمت إضافة دعم لإجراءات التمرير لتسهيل الاستخدام في ViewPager.
  • تحسينات عامة

النسخة 8

نيسان (أبريل) 2012

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • علامات الأهداف الثابتة لكائنات PendingIntent التي تم إنشاؤها بواسطة TaskStackBuilder.
  • تمت إزالة السمات غير المستخدَمة من مشاريع مكتبة الشبكات الشبكية للتأكّد من إمكانية إنشاء المكتبة بالمستوى 7 من واجهة برمجة التطبيقات والإصدارات الأحدث.
  • تمت إضافة ملفَّي .classpath و.project لمشروع المكتبة لتنسيق الشبكة.

النسخة 7

آذار (مارس)، 2012

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة ShareCompat التي توفّر صفوفًا مساعدة لإرسال المحتوى وتلقّيه في تطبيقات المشاركة على الشبكات الاجتماعية، بما في ذلك البيانات الوصفية الجديدة لنسب البيانات التي تمت مشاركتها إلى التطبيق المصدر. توفّر هذه الصف أيضًا عملية دمج متوافقة مع الإصدار الجديد من ShareActionProvider في Android 4.0.
  • تمت إضافة NavUtils وTaskStackBuilder لتوفير الدعم لتنفيذ إرشادات تصميم Android للتنقل. تتضمن هذه الإضافات طريقة لتنفيذ الزر السهم لأعلى في شريط الإجراءات عبر الإصدارات. للحصول على مثال لتنفيذ هذا النمط، يُرجى الاطّلاع على نموذج App Navigation في (<em><sdk></em>/samples/<em><platform></em>/AppNavigation).
  • تمت إضافة NotificationCompat.Builder لتوفير التوافق مع الفئة المساعِدة Notification.Builder في Android 3.0 لإنشاء إشعارات النظام الموحّدة.

النسخة السابقة

كانون الأول (ديسمبر)، 2011

ملاحظة: يتوفّر الآن مرجع واجهات برمجة التطبيقات لمكتبة الدعم مع مراجع أُطر العمل، مثل: android.support.v4.app.

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • التغييرات على ViewPager:
    • تمت إضافة دعم إضافي لطريقة العرض المزخرفة لـ ViewPager. يمكن تقديم طرق العرض الزخرفية كطرق عرض ثانوية لجهاز النداء بتنسيق XML.
    • تمت إضافة السمة PagerAdapter.getPageTitle() لتوفير سلاسل العناوين للصفحات، مع العلم بأنّه يتم ضبط القيمة التلقائية على عدم توفّر عنوان لكل صفحة.
    • تمت إضافة PagerTitleStrip، وهو شريط عناوين غير تفاعلي يمكن إضافته كعنصر ثانوي في ViewPager. ويمكن للمطوّرين توفير مظهر النص ولونه، بالإضافة إلى معلومات عن حجم التنسيق والجاذبية.
    • تم تعديل طرق PagerAdapter لأخذ كائنات ViewGroup بدلاً من العرض لتجنُّب إرسال الفئة في عمليات تنفيذ المحوِّلات.
    • تم تعديل ViewPager لاستخدام أسلوب تبادل الرسائل الإلكترونية بنمط مشغّل التطبيقات.
    • إصلاح الأخطاء المتعلقة بتفاعل واجهة المستخدم والتشغيل الآلي للاختبار.
  • دعم الأجزاء:
    • تم تغيير طريقة setStartDeferred() إلى setUserVisibleHint(boolean).
    • تمت إضافة ميزة "البدء المؤجَّل" للصفحات التي لا تظهر على الشاشة من أجل تحسين الأداء.
  • دعم واجهات برمجة التطبيقات Accessibility API:
    • تم تعديل طُرق AccessibilityDelegateCompat لعرض القوائم الفارغة بدلاً من القيم الفارغة.
    • تمت إضافة واجهات برمجة تطبيقات جديدة مطلوبة من نماذج الإصدار 4.

النسخة السابقة

كانون الأول (ديسمبر)، 2011

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:

النسخة السابقة

تشرين الأول (أكتوبر) 2011

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • تمت إضافة EdgeEffectCompat لدعم EdgeEffect.
  • تمت إضافة LocalBroadcastManager للسماح للتطبيقات بالتسجيل بسهولة في الطلبات واستلامها ضمن تطبيق واحد بدون بثها على مستوى العالم.
  • تمت إضافة دعم هذه الميزة في ViewCompat للتحقق من أوضاع التمرير الزائد وضبطها لـ View على نظام التشغيل Android 2.3 والإصدارات الأحدث.
  • التغييرات التي تطرأ على واجهات برمجة التطبيقات Fragment API:
    • تمت إضافة واجهات برمجة تطبيقات جديدة للتحكّم في إمكانية رؤية القوائم الجديدة.
    • تمت إضافة واجهات برمجة تطبيقات الصور المتحركة المخصّصة.
    • تمت إضافة واجهات برمجة التطبيقات في FragmentActivity للاحتفاظ ببيانات المثيل المخصصة التي لم يتم إعدادها.
    • إصلاحات أخطاء متنوعة.
  • تم إصلاح خطأ Loader الذي تسبّب في حدوث مشاكل في إلغاء AsyncTask عند التشغيل على Froyo والإصدارات الأقدم من النظام الأساسي. يستخدم رمز الدعم الآن إصداره الخاص من AsyncTask للحفاظ على السلوك نفسه في جميع إصدارات الأنظمة الأساسية.

النسخة السابقة

تموز (يوليو) 2011

التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
  • إتاحة استخدام "Fragment.SavedState"
  • إضافة MotionEventCompat لدعم واجهات برمجة تطبيقات MotionEvent الأحدث
  • إضافة VelocityTrackerCompat لدعم واجهات برمجة تطبيقات VelocityTracker أحدث
  • إضافة ViewConfigurationCompat لدعم واجهات برمجة تطبيقات ViewConfiguration أحدث
  • جميع واجهات برمجة التطبيقات الجديدة (المتوفرة في مكتبة الدعم فقط) التي تسمح لك بإنشاء واجهات مستخدم باستخدام صفحات أفقية، ما يسمح للمستخدمين بالتمرير سريعًا لليسار واليمين بين طرق عرض المحتوى. وتشمل الصفوف التي تدعم ذلك ما يلي:
    • ViewPager: عنصر ViewGroup يدير تنسيق طرق العرض الثانوية، التي يمكن للمستخدم التمرير بينها.
    • PagerAdapter: محوِّل يملأ ViewPager بالملفات الشخصية التي تمثّل كل صفحة.
    • FragmentPagerAdapter: إضافة من PagerAdapter إلى التقليب بين الأجزاء.
    • FragmentStatePagerAdapter: إضافة من PagerAdapter للتنقل بين الأجزاء التي تستخدم دعم المكتبة مع Fragment.SavedState.
مكتبة دعم الإصدار 13 الجديد:
  • تتضمن FragmentPagerAdapter وFragmentStatePagerAdapter لإتاحة عملية التقسيم على صفحات أفقية.

    وهي مماثلة تمامًا لواجهات برمجة التطبيقات التي تمت إضافتها إلى مكتبة دعم الإصدار 4، ولكنها تعتمد على مكونات النظام الأساسي الأخرى في Android 3.2. يُرجى استخدام هذه المكتبة بدلاً من الإصدار 4 إذا كنت تطوِّر نظام التشغيل Android 3.2 والإصدارات الأحدث (جميع واجهات برمجة التطبيقات الأخرى المتوفّرة في مكتبة الإصدار 4 متوفّرة بالمستوى 13 من واجهة برمجة التطبيقات).

النسخة السابقة

أيار (مايو) 2011

التغييرات التي تم إجراؤها على مكتبة الإصدار 4:

النسخة السابقة

مارس 2011

هو الإصدار الأولي مع مكتبة الإصدار 4.