ปลั๊กอิน Android Gradle 3.2.0 (กันยายน 2018)
ปลั๊กอิน Android เวอร์ชันนี้ต้องใช้สิ่งต่อไปนี้
เวอร์ชันต่ำสุด | เวอร์ชันเริ่มต้น | หมายเหตุ | |
---|---|---|---|
Gradle | 4.6 | 4.6 | ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle |
เครื่องมือสร้าง SDK | 28.0.3 | 28.0.3 | ติดตั้งหรือกําหนดค่าเครื่องมือสร้าง SDK |
3.2.1 (ตุลาคม 2018)
การอัปเดตนี้ทำให้คุณไม่จําเป็นต้องระบุเวอร์ชันสําหรับเครื่องมือสร้าง SDK อีกต่อไป ตอนนี้ปลั๊กอิน Android Gradle ใช้เวอร์ชัน 28.0.3 โดยค่าเริ่มต้น
ฟีเจอร์ใหม่
-
การรองรับการสร้าง Android App Bundle: App Bundle คือรูปแบบการอัปโหลดรูปแบบใหม่ที่รวมโค้ดและทรัพยากรที่คอมไพล์แล้วทั้งหมดของแอปไว้ด้วย ขณะที่เลื่อนการสร้างและการลงนาม APK ไปยัง Google Play Store คุณไม่จําเป็นต้องสร้าง รับรอง และจัดการ APK หลายรายการอีกต่อไป และผู้ใช้จะดาวน์โหลดไฟล์ที่มีขนาดเล็กลงซึ่งเพิ่มประสิทธิภาพให้เหมาะกับอุปกรณ์ของตน อ่านข้อมูลเพิ่มเติมได้ในเกี่ยวกับ Android App Bundle
-
รองรับความเร็วในบิลด์ที่เพิ่มขึ้นเมื่อใช้โปรแกรมประมวลผลคำอธิบายประกอบ: ตอนนี้
AnnotationProcessorOptions
DSL ขยายCommandLineArgumentProvider
ซึ่งจะช่วยให้คุณหรือผู้เขียนโปรแกรมประมวลผลคำอธิบายประกอบอธิบายประกอบอาร์กิวเมนต์สำหรับโปรแกรมประมวลผลได้โดยใช้คำอธิบายประกอบประเภทพร็อพเพอร์ตี้บิลด์ที่เพิ่มขึ้น การใช้คำอธิบายประกอบเหล่านี้จะช่วยเพิ่มความถูกต้องและประสิทธิภาพของบิลด์ที่สะอาดแบบเพิ่มและแบบแคช ดูข้อมูลเพิ่มเติมได้ที่หัวข้อส่งอาร์กิวเมนต์ไปยังโปรแกรมประมวลผลคำอธิบายประกอบ -
เครื่องมือย้ายข้อมูลสำหรับ AndroidX: เมื่อใช้ Android Gradle Plugin 3.2.0 กับ Android 3.2 ขึ้นไป คุณสามารถย้ายข้อมูล Dependency ของโปรเจ็กต์ในเครื่องและ Maven เพื่อใช้ไลบรารี AndroidX ใหม่ได้โดยเลือกปรับโครงสร้าง >ย้ายข้อมูลไปยัง AndroidX จากแถบเมนู การใช้เครื่องมือย้ายข้อมูลนี้จะตั้งค่า Flag ต่อไปนี้เป็น
true
ในไฟล์gradle.properties
ด้วย-
android.useAndroidX
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android จะใช้ไลบรารี AndroidX ที่เหมาะสมแทนไลบรารีสนับสนุน หากไม่ได้ระบุ Flag นี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น -
android.enableJetifier
: เมื่อตั้งค่าเป็นtrue
ปลั๊กอิน Android จะย้ายข้อมูลไลบรารีของบุคคลที่สามที่มีอยู่ไปใช้ AndroidX โดยอัตโนมัติด้วยการเขียนไบนารีใหม่ หากไม่ได้ระบุ Flag นี้ ปลั๊กอินจะตั้งค่าเป็นfalse
โดยค่าเริ่มต้น คุณสามารถตั้งค่า Flag นี้เป็นtrue
ได้เฉพาะในกรณีที่android.useAndroidX
ได้รับการตั้งค่าเป็นtrue
ด้วย มิฉะนั้นคุณจะได้รับข้อผิดพลาดในการสร้างอ่านข้อมูลเพิ่มเติมได้ที่ภาพรวมของ AndroidX
-
-
เครื่องมือลดขนาดโค้ดใหม่อย่าง R8: R8 เป็นเครื่องมือใหม่สำหรับการลดขนาดโค้ดและการปรับให้ยากต่อการอ่าน (Obfuscate) ซึ่งมาแทนที่ ProGuard คุณเริ่มใช้ R8 เวอร์ชันตัวอย่างได้โดยใส่ข้อมูลต่อไปนี้ในไฟล์
gradle.properties
ของโปรเจ็กต์android.enableR8 = true
android.enableR8 = true
การเปลี่ยนแปลงลักษณะการทำงาน
-
ตอนนี้ระบบจะเปิดใช้การกรองน้ำตาลด้วย D8 โดยค่าเริ่มต้น
-
ตอนนี้ AAPT2 อยู่ในที่เก็บ Maven ของ Google แล้ว หากต้องการใช้ AAPT2 โปรดตรวจสอบว่าคุณมี
google()
Dependency ในไฟล์build.gradle
ดังที่แสดงด้านล่างbuildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
ตอนนี้ระบบจะเปิดใช้ MultiDex เดิมโดยค่าเริ่มต้น Android Studio เวอร์ชันเก่าเปิดใช้ MultiDex เดิมเมื่อนำแอปเวอร์ชันแก้ไขข้อบกพร่องไปติดตั้งในอุปกรณ์ที่ใช้ Android API ระดับ 21 ขึ้นไป ตอนนี้ ไม่ว่าคุณจะติดตั้งใช้งานในอุปกรณ์หรือสร้าง APK สำหรับรุ่นที่เผยแพร่ พารามิเตอร์ของปลั๊กอิน Gradle สำหรับ Android จะเปิดใช้ MultiDex ของเนทีฟสำหรับโมดูลทั้งหมดที่ตั้งค่าเป็น
minSdkVersion=21
ขึ้นไป -
ตอนนี้ปลั๊กอินบังคับใช้เวอร์ชันขั้นต่ำของปลั๊กอิน protobuf (0.8.6), ปลั๊กอิน Kotlin (1.2.50) และปลั๊กอิน Crashlytics (1.25.4) แล้ว
-
ตอนนี้ปลั๊กอินโมดูลฟีเจอร์
com.android.feature
บังคับให้ใช้เฉพาะตัวอักษร ตัวเลข และขีดล่างเมื่อระบุชื่อโมดูล เช่น หากชื่อโมดูลฟีเจอร์มีขีดกลาง คุณจะได้รับข้อผิดพลาดเกี่ยวกับการสร้าง ลักษณะการทํางานนี้ตรงกับของปลั๊กอินฟีเจอร์แบบไดนามิก
การแก้ไขข้อบกพร่อง
- ตอนนี้ JavaCompile แคชได้ในโปรเจ็กต์ที่มีการเชื่อมโยงข้อมูล (ปัญหา #69243050)
- หลีกเลี่ยงการคอมไพล์ได้ดียิ่งขึ้นสําหรับโมดูลไลบรารีที่มีการเชื่อมโยงข้อมูล (ปัญหา #77539932)
- ตอนนี้คุณเปิดใช้กำหนดค่าแบบออนดีมานด์อีกครั้งได้แล้วหากปิดใช้ในเวอร์ชันก่อนหน้าเนื่องจากข้อผิดพลาดบางอย่างของบิลด์ที่คาดเดาไม่ได้ (ปัญหา #77910727)