تنقل أداة 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.
لاستخدام ملف إعداد مخصّص:
- استخرِج الملف
default.generated.config
من ملفjetifier-core-*.jar
في الأداة واحفظه. - أدخِل أي تعديلات ضرورية على نسختك من ملف الإعداد.
- نقْل ملفك إلى الأداة المساعدة ذات العلامة
-c
.
مثلاً:
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config