ابزار مستقل Jetifier کتابخانههای وابسته به کتابخانههای پشتیبانی را منتقل میکند تا در عوض به بستههای AndroidX معادل تکیه کند. این ابزار به شما امکان می دهد به جای استفاده از افزونه Android Gradle همراه با Android Studio، یک کتابخانه فردی را مستقیماً منتقل کنید.
Jetifier را نصب کنید
برای نصب Jetifier فایل زیپ را دانلود کرده و اکسترکت کنید. دستگاه شما باید نسخه جاوا 1.8 یا بالاتر را نصب کرده باشد.
استفاده
برای پردازش یک کتابخانه، مسیر را به کتابخانه فعلی و مسیر فایل خروجی را که ابزار باید ایجاد کند، ارسال کنید. Jetifier از فایل های JAR، AAR و ZIP، از جمله بایگانی های تودرتو پشتیبانی می کند.
./jetifier-standalone -i <source-library> -o <output-library>
گزینه ها
جدول زیر گزینه های موجود برای دستورات ابزار Jetifier را فهرست می کند:
گزینه | مورد نیاز؟ | توضیحات |
---|---|---|
-i ، --input <path> | بله | مسیر دسترسی به کتابخانه ورودی (JAR، AAR، یا ZIP). |
-o ، --output <path> | بله | مسیر فایل خروجی اگر فایل از قبل وجود داشته باشد، Jetifier آن را بازنویسی می کند. |
-c ، --config <path> | نه | مسیر فایل پیکربندی سفارشی اختیاری. |
-l ، --log <level> | نه | سطح ورود به سیستم. مقادیر مجاز عبارتند از:
|
-r | نه | در حالت معکوس ("جت زدایی") کار کنید. |
-rebuildTopOfTree ،--rebuildTopOfTree | نه | ZIP توزیع Maven را مطابق فایل POM تولید شده بازسازی کنید. در صورت تنظیم، فرض می شود که تمام کتابخانه های بازنویسی شده بخشی از کتابخانه پشتیبانی هستند. برای jetification لازم نیست. |
-s ، --strict | نه | زمانی که قوانین از دست رفته اند به عقب ننشینید. به جای آن خطاها را پرتاب کنید. |
-stripSignatures ،--stripSignatures | نه | هنگام jetify کردن یک کتابخانه امضا شده خطا نکنید. به جای آن فایل های امضا را پاک کنید. |
-t ، -timestamp <arg> | نه | خطمشی مهرهای زمانی برای استفاده از ورودیهای بایگانی شده به عنوان زمان اصلاح شده آنها. مقادیر: دوران قبلی (پیشفرض) یا اکنون را حفظ کنید. |
مثال
مثال زیر ابزار را در library libraryToProcess.aar
در دایرکتوری فعلی اجرا می کند و خروجی را در result.aar
در همان دایرکتوری می نویسد:
./jetifier-standalone -i libraryToProcess.aar -o result.aar
نکات استفاده
Jetifier مراجع جاوا، XML، POM، و ProGuard را که به android.support.*
اشاره میکنند، تغییر میدهد تا به بستههای androidx.*
مربوطه اشاره کنند.
از آنجایی که حروف عام ProGuard برای android.support.*
همیشه مستقیماً به androidx.*
نگاشت نمیشوند، Jetifier همه جایگزینهای واجد شرایط را تولید میکند.
اگر نوعی در بسته android.support.*
وجود داشته باشد که از هیچ مصنوع کتابخانه پشتیبانی نیامده باشد، Jetifier همچنان نوع را تا زمانی که نقشهبرداری برای آن وجود دارد، منتقل میکند. با این حال، این انتقال تضمینی برای کارکردن نیست، زیرا ممکن است قوانین نقشه برداری به اندازه کافی عمومی برای پوشش همه انواع سفارشی وجود نداشته باشد.
استفاده پیشرفته
ابزار Jetifier از برخی موارد استفاده پیشرفته پشتیبانی می کند.
حالت معکوس
اگر پرچم -r
را پاس کنید، ابزار در حالت معکوس اجرا می شود. در این حالت، برنامه کاربردی API های AndroidX را به معادل های کتابخانه پشتیبانی تبدیل می کند. اگر در حال توسعه کتابخانههایی هستید که از APIهای AndroidX استفاده میکنند، اما نیاز به توزیع نسخههایی که از کتابخانه پشتیبانی استفاده میکنند، حالت معکوس مفید است.
مثال
مثال زیر ابزار را در حالت معکوس در کتابخانه myAndroidXLib.aar
در فهرست فعلی اجرا می کند و خروجی را در supportLibVersion.aar
در همان دایرکتوری می نویسد:
./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar
فایل پیکربندی سفارشی
ابزار Jetifier از یک فایل پیکربندی برای نگاشت کلاس های Support Library به معادل های AndroidX خود استفاده می کند. در صورت لزوم، می توانید یک فایل پیکربندی سفارشی ایجاد کنید که این نگاشت را تغییر می دهد. حتی میتوانید کلاسهای جدیدی را به نگاشت اضافه کنید که در واقع عضو کتابخانه پشتیبانی نیستند. به عنوان مثال، ممکن است نقشه برداری را تغییر دهید تا یکی از کلاس های خود را با یک کلاس جانشین که برای استفاده از AndroidX نوشته شده است، جایگزین کنید.
برای استفاده از یک فایل پیکربندی سفارشی:
- فایل
default.generated.config
را از فایلjetifier-core-*.jar
ابزار استخراج کرده و ذخیره کنید. - هر گونه ویرایش لازم را در کپی فایل پیکربندی خود انجام دهید.
- فایل خود را با پرچم
-c
به برنامه کاربردی منتقل کنید.
به عنوان مثال:
./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config