หัวฉีดน้ำ

เครื่องมือ Jetifier แบบสแตนด์อโลนจะย้ายข้อมูลไลบรารีที่ขึ้นอยู่กับการสนับสนุนไปยังไลบรารี เปลี่ยนไปใช้แพ็กเกจ AndroidX ที่เทียบเท่ากันแทน เครื่องมือนี้จะช่วยให้คุณย้ายข้อมูล ไลบรารีแต่ละรายการโดยตรง แทนที่จะใช้ปลั๊กอิน Android Gradle ที่รวมอยู่ในแพ็กเกจ ด้วย Android Studio

ติดตั้ง Jetifier

หากต้องการติดตั้ง Jetifier ให้ดาวน์โหลดไฟล์ ZIP ไฟล์ และแตกข้อมูลออกมา อุปกรณ์ของคุณต้องติดตั้ง Java เวอร์ชัน 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> ไม่ ระดับการบันทึก ค่าที่ใช้ได้มีดังนี้
  • ข้อผิดพลาด
  • คำเตือน
  • info (ข้อมูล)
  • รายละเอียด
หากไม่ได้ระบุไว้ ระบบจะใช้ "คำเตือน" เป็นค่าเริ่มต้น
-r ไม่ ทำงานในโหมดย้อนกลับ ("de-jetification")
-rebuildTopOfTree,
--rebuildTopOfTree
ไม่ สร้าง ZIP ของการกระจาย Maven อีกครั้งตาม ไฟล์ POM ที่สร้างขึ้น
หากตั้งค่า ไลบรารีที่เขียนขึ้นใหม่ทั้งหมด จะได้รับเป็นส่วนหนึ่งของ Support Library ไม่จำเป็นต้องใช้สำหรับการเดินทาง
-s, --strict ไม่ ใช้ทางเลือกสำรองเมื่อไม่มีกฎ แสดงข้อผิดพลาด แทน
-stripSignatures,
--stripSignatures
ไม่ อย่าแสดงข้อผิดพลาดเมื่อ ตรวจสอบไลบรารีที่มีลายเซ็น ตัดไฟล์ลายเซ็นออก แทน
-t, -timestamp <arg> ไม่ นโยบายการประทับเวลาที่จะใช้สำหรับ รายการที่เก็บถาวรเป็นเวลาแก้ไข Value: KeepPrevious (ค่าเริ่มต้น) Epoch หรือตอนนี้

ตัวอย่าง

ตัวอย่างต่อไปนี้เรียกใช้ยูทิลิตีกับไลบรารี 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 ยังคงย้ายข้อมูลประเภท การแมปข้อมูล แต่เราไม่รับประกันว่าการย้ายข้อมูลนี้จะได้ผล เนื่องจาก อาจไม่ได้มีกฎการเชื่อมโยงที่กว้างพอที่จะครอบคลุมประเภทที่กำหนดเองทั้งหมด

การใช้งานขั้นสูง

ยูทิลิตี Jetifier รองรับกรณีการใช้งานขั้นสูงบางกรณี

โหมดย้อนกลับ

หากคุณผ่าน Flag -r ยูทิลิตีจะทำงานในโหมดย้อนกลับ ในโหมดนี้ ยูทิลิตีจะแปลง API ของ AndroidX เป็นค่าที่เทียบเท่ากับไลบรารีการสนับสนุน โหมดย้อนกลับ จะมีประโยชน์ถ้าคุณกำลังพัฒนา ไลบรารีที่ใช้ AndroidX API แต่ก็จำเป็นต้องเผยแพร่เวอร์ชันที่ใช้ ไลบรารีการสนับสนุน

ตัวอย่าง

ตัวอย่างต่อไปนี้เรียกใช้ยูทิลิตีในโหมดย้อนกลับบนไลบรารี myAndroidXLib.aar ในไดเรกทอรีปัจจุบัน และเขียนเอาต์พุตไปยัง supportLibVersion.aar ในไดเรกทอรีเดียวกัน:

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

ไฟล์การกำหนดค่าที่กำหนดเอง

เครื่องมือ Jetifier ใช้ไฟล์การกำหนดค่าเพื่อจับคู่ชั้นเรียน Support Library กับชั้นเรียน เทียบเท่ากับ AndroidX หากจำเป็น คุณสามารถสร้างไฟล์การกำหนดค่าที่กำหนดเองซึ่ง แก้ไขการแมปนี้ คุณยังสามารถเพิ่มชั้นเรียนใหม่ลงในการแมป สมาชิกของไลบรารีการสนับสนุน ตัวอย่างเช่น คุณอาจแก้ไข การทำแผนที่เพื่อแทนที่ชั้นเรียนของคุณเองด้วยชั้นเรียนที่สืบทอดซึ่งเขียนขึ้นเพื่อใช้ AndroidX

วิธีใช้ไฟล์การกำหนดค่าที่กำหนดเอง

  1. แยกไฟล์ default.generated.config จากยูทิลิตี jetifier-core-*.jar แล้วบันทึก
  2. แก้ไขสำเนาไฟล์การกำหนดค่าตามที่จำเป็น
  3. ส่งไฟล์ไปยังยูทิลิตีที่มีแฟล็ก -c

เช่น

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