ปลั๊กอิน Android Gradle 2.2.0 (กันยายน 2016)
- การขึ้นต่อกัน
- ใหม่:
- 
    - ใช้ Gradle 2.14.1 ซึ่งมีการปรับปรุงประสิทธิภาพ และฟีเจอร์ใหม่ รวมถึงแก้ไขช่องโหว่ด้านความปลอดภัยที่อนุญาต การเพิ่มสิทธิ์ในเครื่องเมื่อใช้ Gradle Daemon ดูรายละเอียดเพิ่มเติมได้ที่ บันทึกประจำรุ่นของ Gradle
- ตอนนี้ Gradle ช่วยให้คุณลิงก์กับแหล่งที่มาแบบเนทีฟและคอมไพล์ไลบรารีแบบเนทีฟได้โดยใช้ CMake หรือ ndk-build โดยใช้ DSL 
      externalNativeBuild {}หลังจากสร้างไลบรารีแบบเนทีฟแล้ว Gradle จะแพ็กเกจไลบรารีเหล่านั้นลงใน APK ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ CMake และ ndk-build กับ Gradle ได้ที่เพิ่มโค้ด C และ C++ ลงใน โปรเจ็กต์
- เมื่อคุณเรียกใช้ บิลด์จากบรรทัดคำสั่ง ตอนนี้ Gradle จะพยายามดาวน์โหลด คอมโพเนนต์ SDK ที่ขาดหายไปหรือการอัปเดตที่โปรเจ็กต์ของคุณต้องใช้โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่ดาวน์โหลดแพ็กเกจที่ขาดหายไปโดยอัตโนมัติ ด้วย Gradle
- ฟีเจอร์แคชเวอร์ชันทดลองใหม่ช่วยให้ Gradle เร่งเวลาบิลด์ได้โดยการ ดำเนินการ dex ล่วงหน้า จัดเก็บ และนำเวอร์ชันที่ดำเนินการ dex ล่วงหน้าของ ไลบรารีกลับมาใช้ใหม่ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ทดลองนี้ได้ในคำแนะนำสร้าง แคช
- ปรับปรุงประสิทธิภาพการสร้างโดยใช้ไปป์ไลน์การแพ็กเกจเริ่มต้นใหม่
        ซึ่งจัดการการซิป การลงนาม และzipalign ในงานเดียว คุณ
        สามารถกลับไปใช้เครื่องมือการแพ็กเกจเวอร์ชันเก่าได้โดยเพิ่ม
        android.useOldPackaging=trueลงในไฟล์gradle.propertiesขณะใช้เครื่องมือการแพ็กเกจแบบใหม่ คุณจะใช้zipalignDebugไม่ได้ อย่างไรก็ตาม คุณสามารถสร้างเองได้โดยการเรียกใช้เมธอดcreateZipAlignTask(String taskName, File inputFile, File outputFile)
- ตอนนี้การรับรอง APK ใช้ APK Signature Scheme
      v2 นอกเหนือจากการรับรอง JAR แบบเดิม แพลตฟอร์ม Android ทั้งหมดยอมรับ APK ที่ได้ การแก้ไข APK เหล่านี้หลังจากลงนามจะทำให้ลายเซ็น v2 ใช้งานไม่ได้และป้องกันการติดตั้งในอุปกรณ์
       หากต้องการปิดใช้ฟีเจอร์นี้
      ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ build.gradleระดับโมดูลGroovyandroid { ... signingConfigs { config { ... v2SigningEnabled false } } } Kotlinandroid { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } } 
- สำหรับการสร้าง Multidex ตอนนี้คุณสามารถใช้กฎ ProGuard เพื่อกำหนดคลาสที่ Gradle ควรคอมไพล์ลงในไฟล์ DEX main ของแอปได้แล้ว เนื่องจาก
      ระบบ Android จะโหลดไฟล์ DEX หลักก่อนเมื่อเริ่มต้นแอป คุณ
      จึงจัดลำดับความสำคัญของบางคลาสเมื่อเริ่มต้นได้โดยคอมไพล์คลาสเหล่านั้นลงในไฟล์ DEX
      หลัก หลังจากสร้างไฟล์การกำหนดค่า ProGuard สำหรับ
      ไฟล์ DEX หลักโดยเฉพาะแล้ว ให้ส่งเส้นทางของไฟล์การกำหนดค่าไปยัง Gradle โดยใช้
      buildTypes.multiDexKeepProguardการใช้ DSL นี้แตกต่าง จากการใช้buildTypes.proguardFilesซึ่งมีกฎ ProGuard ทั่วไป สำหรับแอปและไม่ได้ระบุคลาสสำหรับไฟล์ DEX หลัก
- เพิ่มการรองรับแฟล็ก android:extractNativeLibsซึ่งจะช่วยลดขนาดของแอปเมื่อติดตั้งใน อุปกรณ์ เมื่อตั้งค่าแฟล็กนี้เป็นfalseในองค์ประกอบ<application>ของไฟล์ Manifest ของแอป Gradle จะแพ็กเกจไลบรารีแบบเนทีฟเวอร์ชันที่ไม่ได้บีบอัดและ จัดแนวไว้กับ APK ซึ่งจะป้องกันไม่ให้PackageManagerคัดลอกไลบรารีแบบเนทีฟจาก APK ไปยังระบบไฟล์ของอุปกรณ์ในระหว่างการติดตั้ง และยังช่วยให้การอัปเดตเดลต้าของแอปมีขนาดเล็กลงอีกด้วย
- ตอนนี้คุณระบุ 
      versionNameSuffixและapplicationIdSuffixสำหรับรสชาติของผลิตภัณฑ์ได้แล้ว (ปัญหา 59614)
 
- การเปลี่ยนแปลง:
- 
  - 
    getDefaultProguardFileจะแสดงไฟล์ ProGuard เริ่มต้น ที่ปลั๊กอิน Android สำหรับ Gradle จัดเตรียมให้ และจะไม่ใช้ ไฟล์ใน Android SDK อีกต่อไป
- ปรับปรุงประสิทธิภาพและฟีเจอร์ของคอมไพเลอร์ Jack ดังนี้
    - ตอนนี้ Jack รองรับความครอบคลุมของการทดสอบ Jacoco เมื่อตั้งค่า
    testCoverageEnabledเป็นtrue
- ปรับปรุงการรองรับสำหรับโปรเซสเซอร์คำอธิบายประกอบ ระบบจะใช้ตัวประมวลผล
    คำอธิบายประกอบใน Classpath เช่น การขึ้นต่อกันของ compileโดยอัตโนมัติกับการสร้าง นอกจากนี้ คุณยังระบุตัวประมวลผลคำอธิบายประกอบในการสร้างและส่งอาร์กิวเมนต์ได้โดยใช้ DSLjavaCompileOptions.annotationProcessorOptions {}ในไฟล์ระดับโมดูลbuild.gradleดังนี้Groovyandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } } Kotlinandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } } หากต้องการใช้ตัวประมวลผลคำอธิบายประกอบในเวลาคอมไพล์ แต่ไม่รวมไว้ใน APK ให้ใช้ annotationProcessorขอบเขตการขึ้นต่อกันGroovydependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant } Kotlindependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant } 
- โดยค่าเริ่มต้น หากขนาดฮีปของ Gradle Daemon มีขนาดอย่างน้อย 1.5
GB ตอนนี้ Jack จะทำงานในกระบวนการเดียวกับ Gradle หากต้องการปรับ
ขนาดฮีปของ Daemon ให้เพิ่มโค้ดต่อไปนี้ในไฟล์
gradle.properties# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M 
 หากต้องการดูรายการพารามิเตอร์ที่ตั้งค่าได้ ให้เรียกใช้คำสั่งต่อไปนี้จากบรรทัดคำสั่ง java -jar /build-tools/jack.jar --help-properties 
- ตอนนี้ Jack รองรับความครอบคลุมของการทดสอบ Jacoco เมื่อตั้งค่า
    
 
- 
    
| เวอร์ชันขั้นต่ำ | เวอร์ชันเริ่มต้น | หมายเหตุ | |
|---|---|---|---|
| Gradle | 2.14.1 | 2.14.1 | ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle | 
| เครื่องมือสร้าง SDK | 23.0.2 | 23.0.2 | ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK | 
