مكتبة الدعم

ملاحظة: مع إطلاق الإصدار Android 9.0 (المستوى 28 لواجهة برمجة التطبيقات)، يتوفر إصدار جديد من مكتبة الدعم باسم AndroidX وهو جزء من Jetpack. وتحتوي مكتبة AndroidX على مكتبة الدعم الحالية وتتضمّن أيضًا أحدث مكوّنات Jetpack.

يمكنك مواصلة استخدام مكتبة الدعم. ستبقى العناصر التاريخية (التي تم إصدارها في الإصدار 27 أو الإصدارات الأقدم، والمجمعة ضمن android.support.*) متاحة على Google Maven. ومع ذلك، سيتم إجراء جميع عمليات تطوير المكتبة الجديدة في مكتبة AndroidX.

ننصح باستخدام مكتبات AndroidX في جميع المشاريع الجديدة. ننصحك أيضًا بنقل المشاريع الحالية إلى AndroidX.

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

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

يقدِّم هذا المستند نظرة عامة على مكتبة الدعم لمساعدتك على فهم مكوّناتها وكيفية استخدامها بفعالية في تطبيقك.

تنبيه: بدءًا من الإصدار 26.0.0 من Support Library (تموز (يوليو) 2017)، زاد الحد الأدنى لمستوى واجهة برمجة التطبيقات المتوافق في معظم مكتبات الدعم إلى الإصدار Android 4.0 (المستوى 14 من واجهة برمجة التطبيقات) لمعظم حِزم المكتبات. ولمزيد من المعلومات، يُرجى الاطّلاع على إتاحة الإصدار وأسماء الحِزم في هذه الصفحة.

استخدامات مكتبات الدعم

هناك بعض الاستخدامات المختلفة لمكتبات الدعم. ففئات التوافق مع الإصدارات السابقة للإصدارات السابقة من النظام الأساسي ليست سوى واحدة منها. في ما يلي قائمة أكثر شمولاً بالطرق التي يمكنك من خلالها استخدام مكتبات الدعم في تطبيقك:

  • التوافق مع الأنظمة القديمة لواجهات برمجة التطبيقات الأحدث: يوفّر عدد كبير من مكتبات الدعم توافقًا مع الأنظمة القديمة لفئات وأساليب إطار عمل أحدث. على سبيل المثال، تتيح فئة الدعم Fragment إمكانية استخدام الأجزاء على الأجهزة التي تعمل بإصدارات أقدم من Android 3.0 (المستوى 11 من واجهة برمجة التطبيقات).
  • الصفوف المريحة والمساعِدة: توفّر مكتبات الدعم عددًا من الفئات المساعِدة، لا سيما في ما يتعلّق بتطوير واجهة المستخدم. على سبيل المثال، توفّر الفئة RecyclerView أداة لواجهة المستخدم لعرض وإدارة القوائم الطويلة جدًا، وهي قابلة للاستخدام على إصدارات Android من المستوى 7 من واجهة برمجة التطبيقات والإصدارات الأحدث.
  • تصحيح الأخطاء وأدوات المساعدة: هناك عدد من الميزات التي تقدّم فائدة غير الرموز البرمجية التي تدمجها في تطبيقك، بما في ذلك مكتبة support-annotations التي تساعد في تحسين عملية التحقق من صحة الرموز البرمجية لإدخالات الأساليب ودعم Multidex لضبط التطبيقات وتوزيعها باستخدام أكثر من 65,536 طريقة.

استخدام الدعم مقابل واجهات برمجة التطبيقات لإطار العمل

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

  • التوافق مع ميزة محدّدة: إذا كنت تريد إتاحة إحدى ميزات النظام الأساسي الحديثة على الأجهزة التي تعمل بإصدارات سابقة من النظام الأساسي، استخدِم الفئات والطرق المكافئة من مكتبة الدعم.
  • التوافق مع ميزات المكتبة ذات الصلة: قد تعتمد فئات مكتبات الدعم الأكثر تعقيدًا على فئة واحدة أو أكثر من فئات مكتبة الدعم الإضافية، لذا عليك استخدام فئات مكتبات الدعم لتلك التبعيات. على سبيل المثال، يجب استخدام صف الدعم ViewPager مع فئتَي الدعم FragmentPagerAdapter أو FragmentStatePagerAdapter.
  • التوافق العام مع الجهاز: إذا لم تكن لديك ميزة محدّدة للنظام الأساسي تنوي استخدامها مع تطبيقك بطريقة متوافقة مع الأنظمة القديمة، ما زال من الأفضل استخدام فئات مكتبات الدعم في تطبيقك. على سبيل المثال، قد تريد استخدام ActivityCompat بدلاً من فئة إطار العمل Activity كي تتمكّن من الاستفادة من الميزات الأحدث لاحقًا، مثل دمج نموذج الأذونات الجديد الذي تم تقديمه في المستوى 2.0 من واجهة برمجة التطبيقات (API).

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

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

دعم الإصدار وأسماء الحِزم

تحتوي بعض حِزم Support Library على أسماء حِزم للإشارة إلى الحد الأدنى من مستوى واجهة برمجة التطبيقات التي كانت متوافقة معها في الأصل، وذلك باستخدام الترميز v#، مثل حزمة support-v4. بدءًا من الإصدار 26.0.0 من Support Library (الذي تم إطلاقه في تموز (يوليو) 2017)، تم تغيير الحد الأدنى من مستوى واجهة برمجة التطبيقات المتوافق إلى الإصدار Android 4.0 (مستوى واجهة برمجة التطبيقات 14) لجميع حِزم مكتبة الدعم. ولهذا السبب، عند العمل مع أي إصدار حديث من مكتبة الدعم، يجب ألا تفترض أنّ رمز الحزمة v# يشير إلى حدّ أدنى لمستوى دعم واجهة برمجة التطبيقات. يعني هذا التغيير الذي تم إجراؤه في الإصدارات الأخيرة أيضًا أنّ حِزم المكتبات التي تتضمّن الإصدار 4 و7 متكافئة بشكل أساسي في الحدّ الأدنى من واجهات برمجة التطبيقات التي تتوافق معها. على سبيل المثال، يتيح كل من حزمة support-v4 وsupport-v7 مستوى واجهة برمجة التطبيقات 14 كحد أدنى لإصدارات Support Library من الإصدار 26.0.0 والإصدارات الأحدث.

إصدارات إصدارات مكتبة الدعم

يختلف إصدار الإصدار من Support Library، مثل 24.2.0 أو 25.0.1، عن الحد الأدنى لمستوى واجهة برمجة التطبيقات الذي تستخدمه أي مكتبة في ذلك الإصدار.يشير رقم الإصدار إلى إصدار واجهة برمجة تطبيقات النظام الأساسي الذي تم إنشاؤه استنادًا إليه، وبالتالي ما أحدث واجهات برمجة التطبيقات التي يمكن تضمينها في هذا الإصدار من المكتبات.

على وجه التحديد، يتوافق القسم الأول من رقم إصدار الإصدار، على سبيل المثال الإصدار 24 في الإصدار 24.2.0، بشكل عام مع إصدار واجهة برمجة التطبيقات للنظام الأساسي الذي تم إطلاقه عند إطلاقه. يشير مستوى إصدار مكتبة الدعم إلى أنّه يتضمّن بعض الميزات المتوفرة في مستوى واجهة برمجة التطبيقات هذا، ولكن يجب ألا تفترض أنّها توفّر التوافق مع جميع الميزات التي تم إطلاقها في الإصدار الجديد من واجهة برمجة التطبيقات للنظام الأساسي.

العناصر التابعة للمكتبة

تعتمد معظم المكتبات في حزمة مكتبة دعم Android على مكتبة واحدة أو أكثر. على سبيل المثال، تعتمد جميع مكتبات الدعم تقريبًا على حزمة support-compat. بشكل عام، لا داعي للقلق بشأن تبعيات المكتبة المتوافقة، لأنّ أداة إنشاء grale تدير تبعيات المكتبة نيابةً عنك، من خلال تضمين المكتبات التابعة تلقائيًا.

إذا كنت تريد الاطّلاع على المكتبات وتبعيات المكتبة التي يتضمّنها تطبيقك، شغِّل الأمر التالي في جذر الإصدار الخاص بمشروع تطوير تطبيقك للحصول على تقرير حول الاعتماديات الخاصة بهذا المشروع، بما في ذلك مكتبات دعم Android والمكتبات الأخرى:

gradle -q dependencies your-app-project:dependencies

لمزيد من المعلومات حول إضافة مكتبات دعم إلى مشروع التطوير باستخدام Gradle، يُرجى الاطّلاع على إعداد مكتبة الدعم. لمزيد من المعلومات حول استخدام Gradle، يمكنك الاطّلاع على ضبط تصميمك.

تجدر الإشارة إلى أنّ جميع مكتبات دعم Android تعتمد أيضًا على مستوى أساسي معيّن للنظام الأساسي، في ما يتعلق بالإصدارات الحديثة، ألا وهو الإصدار Android 4.0 (المستوى 14 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.