آلة جيتيفيير

تنقل أداة Jetifier المستقلة المكتبات المعتمدة على مكتبات الدعم بدلاً من الاعتماد على حِزم AndroidX المكافئة. تتيح لك الأداة نقل مكتبة فردية مباشرةً بدلاً من استخدام مكوّن Gradle الإضافي في Android مع "استوديو Android".

تثبيت Jetifier

لتثبيت Jetifier، نزِّل ملف zip واستخرِجه. يجب تثبيت الإصدار 1.8 من لغة Java أو الإصدارات الأحدث على جهازك.

الاستخدام

لمعالجة مكتبة، عليك تمرير المسار إلى المكتبة الحالية والمسار إلى ملف المخرجات الذي يجب أن تنشئه الأداة. يدعم Jetifier ملفات JAR وAAR وZIP، بما في ذلك الأرشيفات المتداخلة.

./jetifier-standalone -i <source-library> -o <output-library>

الخيارات

يسرد الجدول التالي الخيارات المتاحة لأوامر أداة Jetifier:

Option مطلوبة؟ الوصف
-i، <path> --input نعم مسار إلى مكتبة الإدخال (JAR أو AAR أو ZIP).
-o، <path> --output نعم المسار إلى ملف الإخراج إذا كان الملف موجودًا بالفعل، فسيستبدله Jetifier.
-c، <path> --config لا مسار إلى ملف إعداد مخصص اختياري.
-l، <level> --log لا مستوى التسجيل القيم المسموح بها هي:
  • خطأ
  • تحذير
  • معلومات
  • مطوَّل
في حال عدم تحديد أي خيار، سيتم ضبط القيمة التلقائية على "تحذير".
-r لا التشغيل في الوضع العكسي ("إزالة النفاذ").
-rebuildTopOfTree،
--rebuildTopOfTree
لا أعِد إنشاء ملف ZIP لتوزيع Maven وفقًا لملف POM الذي تم إنشاؤه.
في حال ضبطها، يُفترض أن تكون كل المكتبات المُعاد كتابتها جزءًا من Support Library. غير مطلوب لتشغيل البث المباشر.
-s، --strict لا لا تتخذ إجراءات احتياطية عندما تكون القواعد مفقودة، بل اعرض الأخطاء بدلاً من ذلك.
-stripSignatures،
--stripSignatures
لا لا تعرض رسالة خطأ عند الوصول إلى مكتبة موقَّعة، بل أزِل ملفات التوقيع بدلاً من ذلك.
-t، <arg> -timestamp لا سياسة الطوابع الزمنية التي يمكن استخدامها للإدخالات المؤرشَفة كوقت تعديل لها. القيم: keepالسابق (تلقائي) الحقبة أو الآن.

مثال

يشغّل المثال التالي الأداة في المكتبة libraryToProcess.aar في الدليل الحالي ويكتب الناتج في result.aar في الدليل نفسه:

./jetifier-standalone -i libraryToProcess.aar -o result.aar

ملاحظات الاستخدام

تنقل Jetifier مراجع Java وXML وPOM وProGuard التي تشير إلى حِزم android.support.*، وتغيرها لكي تشير إلى حِزم androidx.* المقابلة.

وبما أنّ أحرف البدل في ProGuard الخاصة بـ android.support.* لا يتم ربطها مباشرةً دائمًا بحزم androidx.*، تقدّم Jetifier جميع البدائل المؤهّلة.

إذا كان هناك نوع في حزمة android.support.* غير يأتي من أي عنصر من عناصر مكتبة الدعم، تواصل Jetifier نقل النوع ما دامت هناك عملية ربط له. ومع ذلك، لا يمكن ضمان نجاح عملية نقل البيانات هذه، لأنّه قد لا تكون هناك قواعد ربط عامة بما يكفي لتغطية جميع الأنواع المخصّصة.

الاستخدام المتقدم

تدعم أداة Jetifier بعض حالات الاستخدام المتقدّمة.

الوضع العكسي

في حال تخطّيت العلامة -r، يتم تشغيل الأداة في وضع العكس. في هذا الوضع، تحوّل الأداة واجهات برمجة تطبيقات AndroidX إلى واجهات برمجة تطبيقات Support Library. ويكون الوضع العكسي مفيدًا إذا كنت تطور مكتبات تستخدم واجهات برمجة تطبيقات AndroidX ولكن تحتاج أيضًا إلى توزيع الإصدارات التي تستخدم مكتبة الدعم.

مثال

يشغّل المثال التالي الأداة في الوضع العكسي على المكتبة myAndroidXLib.aar في الدليل الحالي ويكتب الناتج إلى supportLibVersion.aar في الدليل نفسه:

./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar

ملف إعداد مخصّص

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

لاستخدام ملف إعداد مخصّص:

  1. استخرِج الملف default.generated.config من ملف jetifier-core-*.jar في الأداة واحفظه.
  2. أدخِل أي تعديلات ضرورية على نسختك من ملف الإعداد.
  3. نقْل ملفك إلى الأداة المساعدة ذات العلامة -c.

مثلاً:

./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config