ปลั๊กอิน Android สำหรับ Gradle ฉบับแก้ไข 1.5.0 (พฤศจิกายน 2015)

การขึ้นต่อกัน
เวอร์ชันขั้นต่ำ เวอร์ชันเริ่มต้น หมายเหตุ
Gradle 2.2.1 2.2.1 ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle
เครื่องมือสร้าง SDK 21.1.1 21.1.1 ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK
หมายเหตุทั่วไป
  • ผสานรวมปลั๊กอิน Data Binding เข้ากับปลั๊กอิน Android สำหรับ Gradle หากต้องการเปิดใช้ ให้เพิ่มโค้ดต่อไปนี้ ในไฟล์ build.gradle ต่อโปรเจ็กต์แต่ละไฟล์ที่ใช้ปลั๊กอิน
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • เพิ่ม Transform API ใหม่ เพื่อให้ปลั๊กอินของบุคคลที่สามสามารถจัดการไฟล์ .class ที่คอมไพล์แล้วก่อนที่จะ แปลงเป็นไฟล์ .dex Transform API ช่วยให้การแทรกการจัดการคลาสที่กำหนดเองง่ายขึ้น พร้อมทั้งให้ความยืดหยุ่นมากขึ้นเกี่ยวกับสิ่งที่คุณจัดการได้ หากต้องการแทรกการแปลงลงในการสร้าง ให้สร้างคลาสใหม่ที่ใช้Transform อินเทอร์เฟซใดอินเทอร์เฟซหนึ่ง แล้วลงทะเบียนกับ android.registerTransform(theTransform) หรือ android.registerTransform(theTransform, dependencies) คุณไม่จำเป็นต้อง เชื่อมโยงงานเข้าด้วยกัน โปรดทราบข้อมูลต่อไปนี้เกี่ยวกับ Transform API
    • การแปลงสามารถใช้กับสิ่งต่อไปนี้อย่างน้อย 1 อย่าง ได้แก่ โปรเจ็กต์ปัจจุบัน โปรเจ็กต์ย่อย และไลบรารีภายนอก
    • ต้องลงทะเบียนการแปลงทั่วโลก ซึ่งจะใช้กับการแปลงทั้งหมด
    • การประมวลผลโค้ดภายในผ่านไลบรารีการครอบคลุมโค้ด Java (JaCoCo), ProGuard และ MultiDex จะใช้ Transform API แล้ว อย่างไรก็ตาม Java Android Compiler Kit (Jack) ไม่ได้ใช้ API นี้ แต่ใช้เฉพาะเส้นทางโค้ด javac/dx
    • Gradle จะเรียกใช้การแปลงตามลำดับนี้ JaCoCo, ปลั๊กอินของบุคคลที่สาม, ProGuard ลำดับการดำเนินการสำหรับปลั๊กอินของบุคคลที่สามจะตรงกับลำดับที่ปลั๊กอินของบุคคลที่สามเพิ่มการแปลง นักพัฒนาปลั๊กอินของบุคคลที่สามไม่สามารถควบคุมลำดับการดำเนินการ ของการแปลงผ่าน API ได้
  • เลิกใช้งานตัวรับ dex จากคลาส ApplicationVariant คุณไม่สามารถเข้าถึงงาน Dex ผ่าน API ของตัวแปรได้อีกต่อไป เนื่องจากตอนนี้ระบบจะดำเนินการผ่านการแปลง ปัจจุบันยังไม่มีเครื่องมืออื่นมาแทนที่การควบคุมกระบวนการ dex
  • แก้ไขการรองรับการเพิ่มขึ้นของชิ้นงาน
  • ปรับปรุงการรองรับ MultiDex โดยทำให้พร้อมใช้งานสำหรับโปรเจ็กต์ทดสอบ และ ตอนนี้การทดสอบจะมีทรัพยากร Dependency com.android.support:multidex-instrumentation โดยอัตโนมัติ
  • เพิ่มความสามารถในการสร้างบิลด์ Gradle ที่ล้มเหลวอย่างเหมาะสมและรายงานสาเหตุของข้อผิดพลาดพื้นฐาน เมื่อบิลด์ Gradle เรียกใช้ทาสก์แบบไม่พร้อมกันและเกิดข้อผิดพลาดในกระบวนการ ของ Worker
  • เพิ่มการรองรับการกำหนดค่า Application Binary Interface (ABI) ที่เฉพาะเจาะจงในตัวแปร ที่มี ABI หลายรายการ
  • เพิ่มการรองรับรายการหมายเลขซีเรียลของอุปกรณ์ที่คั่นด้วยคอมมาสำหรับตัวแปรสภาพแวดล้อม ANDROID_SERIAL เมื่อติดตั้งหรือเรียกใช้การทดสอบ
  • แก้ไขการติดตั้งที่ไม่สำเร็จในอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 20) ขึ้นไป เมื่อชื่อ APK มีช่องว่าง
  • แก้ไขปัญหาต่างๆ ที่เกี่ยวข้องกับเอาต์พุตข้อผิดพลาดของ Android Asset Packaging Tool (AAPT)
  • เพิ่มการรองรับการวัดประสิทธิภาพแบบเพิ่มของ JaCoCo เพื่อการสร้างแบบเพิ่มที่เร็วขึ้น ตอนนี้ปลั๊กอิน Android สำหรับ Gradle จะเรียกใช้เครื่องมือ JaCoCo โดยตรง หากต้องการบังคับใช้เครื่องมือวัด JaCoCo เวอร์ชันใหม่กว่า คุณต้องเพิ่มเครื่องมือวัดดังกล่าวเป็นทรัพยากร Dependency ของสคริปต์บิลด์
  • แก้ไขการรองรับ JaCoCo เพื่อให้ระบบไม่สนใจไฟล์ที่ไม่ใช่คลาส
  • เพิ่มการรองรับภาพวาดแบบเวกเตอร์เพื่อสร้าง PNG ในเวลาบิลด์เพื่อให้เข้ากันได้แบบย้อนหลัง ปลั๊กอิน Android สำหรับ Gradle จะสร้าง PNG สำหรับ Vector Drawable ทุกรายการที่พบในไดเรกทอรีทรัพยากร ซึ่งไม่ได้ระบุเวอร์ชัน API หรือระบุแอตทริบิวต์ android:minSdkVersion ที่มีค่า 20 หรือต่ำกว่าในองค์ประกอบ <uses-sdk> ในไฟล์ Manifest ของแอป คุณตั้งค่าความหนาแน่นของ PNG ได้โดย ใช้พร็อพเพอร์ตี้ generatedDensities ในส่วน defaultConfig หรือ productFlavor ของไฟล์ build.gradle
  • เพิ่มการแชร์ android.jar ที่จำลองได้ ซึ่งปลั๊กอินจะสร้างเพียงครั้งเดียวและใช้สำหรับการทดสอบหน่วย ตอนนี้โมดูลหลายโมดูล เช่น app และ lib ใช้ร่วมกัน ลบ $rootDir/build เพื่อสร้างใหม่
  • เปลี่ยนการประมวลผลทรัพยากร Java ให้เกิดขึ้นก่อนงานการปกปิดโค้ดแทนที่จะ เกิดขึ้นระหว่างการแพ็กเกจ APK การเปลี่ยนแปลงนี้จะช่วยให้งานการปกปิดมีโอกาส ปรับทรัพยากร Java ตามการปกปิดแพ็กเกจ
  • แก้ไขปัญหาเกี่ยวกับการใช้โค้ด Java Native Interface (JNI) ในปลั๊กอินไลบรารีทดลอง
  • เพิ่มความสามารถในการตั้งค่าเวอร์ชันแพลตฟอร์มแยกจากแอตทริบิวต์ android:compileSdkVersion ในปลั๊กอินไลบรารีทดลอง