ปลั๊กอิน Android Gradle 8.1.0 เป็นเวอร์ชันสำคัญที่มีฟีเจอร์ใหม่ๆ มากมาย ฟีเจอร์และการปรับปรุงต่างๆ
ความเข้ากันได้
เวอร์ชันต่ำสุด | เวอร์ชันเริ่มต้น | หมายเหตุ | |
---|---|---|---|
เกรเดิล | 8.0 | 8.0 | ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle |
เครื่องมือสร้าง SDK | 33.0.1 | 33.0.1 | ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK |
NDK | ไม่มี | 25.1.8937393 | ติดตั้งหรือกำหนดค่า NDK เวอร์ชันอื่น |
JDK | 17 | 17 | ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าเวอร์ชัน JDK |
Kotlin DSL เป็นค่าเริ่มต้นสำหรับการกำหนดค่าบิลด์
ตอนนี้โปรเจ็กต์ใหม่ใช้ Kotlin DSL (build.gradle.kts
) โดยค่าเริ่มต้นสําหรับบิลด์
การกำหนดค่า ฟีเจอร์นี้จะมอบประสบการณ์การตัดต่อที่ดีกว่า Groovy DSL
(build.gradle
) ที่มีการไฮไลต์ไวยากรณ์ การเติมโค้ด และการไปยัง
ประกาศ โปรดทราบว่าหากใช้ AGP 8.1 และ Kotlin DSL สำหรับบิลด์
คุณควรใช้ Gradle 8.1 เพื่อประสบการณ์การใช้งานที่ดีที่สุด หากต้องการทราบข้อมูลเพิ่มเติม
โปรดดูคำแนะนำในการย้ายข้อมูล Kotlin DSL
การสนับสนุนภาษาต่อแอปโดยอัตโนมัติ
ตั้งแต่ Android Studio Giraffe Canary 7 และ AGP 8.1.0-alpha07 คุณจะทำสิ่งต่อไปนี้ได้
กำหนดค่าแอปของคุณให้รองรับภาษาของแต่ละแอป
การตั้งค่าเริ่มต้นโดยอัตโนมัติ อิงตาม
ทรัพยากรของโปรเจ็กต์, ปลั๊กอิน Android Gradle สร้างไฟล์ LocaleConfig
และเพิ่มการอ้างอิงไปยังไฟล์นี้ในไฟล์ Manifest สุดท้าย คุณจึงไม่ต้อง
ด้วยตนเองก็ได้ AGP ใช้ทรัพยากรในโฟลเดอร์ res
ของโมดูลแอป
และทรัพยากร Dependency ของโมดูลไลบรารีทั้งหมดเพื่อกําหนดภาษาที่จะรวมไว้ในไฟล์
LocaleConfig
โปรดทราบว่าฟีเจอร์ภาษาที่ใช้ในแอปอัตโนมัติรองรับแอปที่ใช้ Android
13 (API ระดับ 33) ขึ้นไป หากต้องการใช้ฟีเจอร์นี้ คุณต้องตั้งค่า
compileSdkVersion
ถึง 33 ขึ้นไป วิธีกำหนดค่ากำหนดภาษาของแต่ละแอป
สำหรับ Android เวอร์ชันก่อนหน้า คุณยังต้อง
ใช้ API และเครื่องมือเลือกภาษาในแอป
หากต้องการเปิดใช้การรองรับภาษาต่อแอปโดยอัตโนมัติ ให้ระบุภาษาเริ่มต้นดังนี้
- ในโฟลเดอร์
res
ของโมดูลแอป ให้สร้างไฟล์ใหม่ชื่อresources.properties
ในไฟล์
resources.properties
ให้ตั้งค่าภาษาเริ่มต้นด้วย ป้ายกำกับunqualifiedResLocale
ในการสร้างชื่อภาษา ให้รวม รหัสภาษาที่มีสคริปต์และรหัสภูมิภาคซึ่งไม่บังคับ โดยคั่นแต่ละรายการ ด้วยเครื่องหมายขีดกลาง:- ภาษา: ใช้ตัวอักษร 2 หรือ 3 ตัว ISO 639-1 โค้ด
- สคริปต์ (ไม่บังคับ): ใช้ ISO 15924
- ภูมิภาค (ไม่บังคับ): ใช้ตัวอักษร 2 ตัว ISO 3166-1-alpha-2 หรือรหัส 3 หลัก UN_M.49 โค้ด
ตัวอย่างเช่น หากภาษาเริ่มต้นเป็นอังกฤษแบบอเมริกัน
unqualifiedResLocale=en-US
AGP จะเพิ่มภาษาเริ่มต้นนี้และภาษา
ภูมิภาคอื่น
ที่คุณระบุไว้ โดยใช้ไดเรกทอรี values-*
ในโฟลเดอร์ res
ไปยังส่วน
LocaleConfig
ที่สร้างขึ้นโดยอัตโนมัติ
การรองรับภาษาต่อแอปโดยอัตโนมัติจะปิดไว้โดยค่าเริ่มต้น หากต้องการเปิดฟีเจอร์
ใช้การตั้งค่า generateLocaleConfig
ในบล็อก androidResources {}
ของ
ไฟล์ build.gradle.kts
ระดับโมดูล (build.gradle
ไฟล์หากคุณใช้
น่าสนใจ):
Kotlin
android { androidResources { generateLocaleConfig = true } }
ดึงดูด
android { androidResources { generateLocaleConfig true } }
Android Lint มีไบต์โค้ดที่กำหนดเป้าหมายเป็น JVM 17
ตั้งแต่ AGP 8.1.0-alpha04 เป็นต้นไป Android Lint มีไบต์โค้ดที่กำหนดเป้าหมายเป็น JVM
17. ถ้าคุณเขียนการตรวจสอบ Lint แบบกำหนดเอง คุณจะต้องคอมไพล์ด้วย JDK 17 ขึ้นไป
และระบุ jvmTarget = '17'
ในตัวเลือกคอมไพเลอร์ Kotlin
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือ Lint โปรดดูที่ ปรับปรุงโค้ดโดยใช้ Lint ตรวจสอบ
ย้ายการตั้งค่าการบีบอัดไลบรารีแบบเนทีฟไปยัง DSL แล้ว
เริ่มตั้งแต่ AGP 8.1.0-alpha10 คุณจะได้รับคำเตือนหากไม่กำหนดค่า การบีบอัดไลบรารีแบบเนทีฟโดยใช้ DSL แทนไฟล์ Manifest คำแนะนำต่อไปนี้อธิบายวิธีอัปเดตการกำหนดค่าเพื่อใช้ DSL ถึง รับความช่วยเหลือในการอัปเดตเหล่านี้ ใช้ AGP Upgrade Assistant (เครื่องมือ > AGP Upgrade Assistant)
หากต้องการใช้ไลบรารีเนทีฟที่ไม่ได้บีบอัด ให้นำ android::extractNativeLibs
ออก
จากไฟล์ Manifest และเพิ่มโค้ดต่อไปนี้ในระดับโมดูล
build.gradle.kts
ไฟล์ (build.gradle
ไฟล์หากคุณใช้ Groovy):
Kotlin
android { packagingOptions { jniLibs { useLegacyPackaging = false } } }
ดึงดูด
android { packagingOptions { jniLibs { useLegacyPackaging false } } }
แฟล็กบิลด์ทดลอง
รายการเหล่านี้เป็นแฟล็กทดลองสำหรับการกำหนดค่าบิลด์ที่พร้อมใช้งานใน AGP 8.1
ตั้งค่าสถานะ | เพิ่มใน | ค่าเริ่มต้น | หมายเหตุ |
---|---|---|---|
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes |
AGP 8.0 | false |
การเปิดใช้การตั้งค่านี้โดยไม่ได้ระบุการกำหนดค่าการรับรองจะทำให้ AGP ใช้เมธอด การกำหนดค่าการลงชื่อแก้ไขข้อบกพร่องเริ่มต้นเมื่อเรียกใช้โปรไฟล์ที่สามารถแก้ไขข้อบกพร่องหรือแก้ไขข้อบกพร่องได้ งานสร้าง การตั้งค่าสถานะนี้ถูกปิดใช้งานโดยค่าเริ่มต้นเพื่อสนับสนุนผู้เขียนบิลด์ ประกาศการกำหนดค่าการลงชื่อโปรไฟล์ที่เฉพาะเจาะจง |
android.experimental.library.desugarAndroidTest |
AGP 8.0 | false |
แฟล็กนี้ช่วยให้เครื่องมือสร้างไลบรารีเปิดใช้การนำไลบรารีหลักออกสำหรับ ทดสอบ APK โดยไม่กระทบกับ AAR ที่ผลิต เช่น ผ่านการวิเคราะห์โค้ด เราวางแผนที่จะรองรับลักษณะการทำงานนี้ใน Variant API |
android.experimental.testOptions.managedDevices.customDevice |
AGP 8.0 | false |
หากเปิดใช้ อุปกรณ์ที่มีการจัดการของ Gradle จะอนุญาตอุปกรณ์ที่กำหนดเองที่ผู้ใช้กำหนดได้ ประเภทที่ปลั๊กอินระบุได้ ต้องเปิดใช้แฟล็กนี้หากคุณ ต้องการใช้ปลั๊กอิน Firebase Test Lab |
android.lint.printStackTrace |
AGP 8.0 | false |
หากเปิดใช้ Android Lint จะพิมพ์สแต็กเทรซหากข้อขัดข้อง ธงนี้
มีความสามารถเหมือนกับ LINT_PRINT_STACKTRACE
ตัวแปรสภาพแวดล้อม |
android.experimental.testOptions.managedDevices.maxConcurrentDevices |
AGP 8.0 | ไม่มี | ระบุจำนวนอุปกรณ์ที่มีการจัดการโดย Gradle พร้อมกันสูงสุด (AVD) ทำงาน ณ เวลาใดเวลาหนึ่ง หากค่าเป็น 0 หรือ เป็นลบ ไม่มีจำนวนอุปกรณ์สูงสุด |
android.experimental.testOptions.installApkTimeout |
AGP 8.0 | ไม่มี | ระยะหมดเวลาเป็นวินาทีในการติดตั้ง APK หากค่าเป็น 0 หรือลบ ก็จะมีการตั้งค่า UTP เป็นค่าเริ่มต้น |