ปลั๊กอิน Android Gradle 9.2 เป็นรุ่นย่อยที่มีฟีเจอร์และการปรับปรุงใหม่ๆ มากมาย
ความเข้ากันได้
ระดับ API สูงสุดที่ปลั๊กอิน Android Gradle 9.2 รองรับคือระดับ API 36.1 ข้อมูลอื่นๆ เกี่ยวกับความเข้ากันได้มีดังนี้
| เวอร์ชันขั้นต่ำ | เวอร์ชันเริ่มต้น | หมายเหตุ | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle |
| เครื่องมือสร้าง SDK | 36.0.0 | 36.0.0 | ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK |
| NDK | ไม่มี | 28.2.13676358 | ติดตั้งหรือกำหนดค่า NDK เวอร์ชันอื่น |
| JDK | 17 | 17 | ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าเวอร์ชัน JDK |
รายงานความครอบคลุมและการทดสอบแบบรวม
AGP 9.2.0-alpha07 มีงานที่สร้างแดชบอร์ด HTML ซึ่งรวบรวมผลการทดสอบและความครอบคลุมจากการทดสอบประเภทต่างๆ (หน่วยและการวัดคุม) โมดูล และตัวแปรบิลด์ เพื่อให้ภาพรวมที่ครอบคลุมในแดชบอร์ดเดียว ดูข้อมูลเพิ่มเติมได้ที่สร้างรายงานการครอบคลุมของโค้ดแบบรวม และดูรายงานการทดสอบแบบรวม
การเปลี่ยนแปลง R8
การเปลี่ยนแปลง R8 ต่อไปนี้รวมอยู่ใน AGP 9.2.0
-keepattributes ความหมายที่เข้มงวดมากขึ้นสำหรับการเก็บคำอธิบายประกอบที่มองไม่เห็นในรันไทม์
อ่านคำอธิบายประกอบที่มองไม่เห็นรันไทม์ในรันไทม์ไม่ได้ ดังนั้น D8 จึง นำคำอธิบายประกอบที่มองไม่เห็นในรันไทม์ออกโดยไม่มีเงื่อนไข และไม่มีตัวเลือกในการเปลี่ยนแปลง การดำเนินการนี้
R8 รองรับการส่งออกคำอธิบายประกอบที่มองไม่เห็นในรันไทม์เพื่อให้เข้ากันได้กับ ProGuard แต่เมื่อคอมไพล์เป็น DEX โดยทั่วไปแล้ว ไม่ควรเก็บคำอธิบายประกอบที่มองไม่เห็นรันไทม์ไว้
อย่างไรก็ตาม แนวทางปฏิบัติทั่วไปคือการรวมกฎที่สะดวก -keepattributes *Annotation* (ทั้งทางตรงและทางอ้อมจากกฎการเก็บรักษาสำหรับผู้บริโภค) ไว้เพื่อให้ R8 เก็บคำอธิบายประกอบที่มองเห็นได้ในรันไทม์
แต่การดำเนินการนี้จะทำให้คำอธิบายประกอบที่มองไม่เห็นในรันไทม์ยังคงอยู่ด้วย
เพื่อลดปัญหานี้และให้ตรงกับลักษณะการทำงานของ D8 มากขึ้น -keepattributes
รูปแบบที่มีไวลด์การ์ดจะไม่ตรงกับ RuntimeInvisibleAnnotations
RuntimeInvisibleParameterAnnotations และ RuntimeInvisibleTypeAnnotations อีกต่อไป
ด้วยเหตุนี้ ระบบจะเก็บคำอธิบายประกอบที่มองไม่เห็นในรันไทม์ไว้ก็ต่อเมื่อมีการกล่าวถึงชื่อแอตทริบิวต์อย่างชัดเจนโดยไม่มีอักขระไวด์การ์ด
ตอนนี้ไม่มีกฎต่อไปนี้ที่จะทำให้คำอธิบายประกอบที่มองเห็นได้ในรันไทม์ยังคงมองเห็นได้
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
หากต้องการซ่อนคำอธิบายประกอบที่รันไทม์ ให้ใช้กฎต่อไปนี้
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
การรองรับชื่อที่ปฏิเสธในกฎของสมาชิก
เราได้ขยายภาษาการกำหนดค่าเพื่อให้คุณสามารถจับคู่กับ รูปแบบชื่อสมาชิกที่ปฏิเสธได้แล้ว
เช่น หากต้องการจับคู่เมธอดทั้งหมดที่ไม่ได้ลงท้ายด้วย "ForTesting" ให้ใช้กฎต่อไปนี้
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
นอกจากนี้ คุณยังปฏิเสธรูปแบบชื่อสมาชิกในเงื่อนไขเบื้องต้นของ-if
กฎได้ด้วย หากรูปแบบชื่อสมาชิกที่ปฏิเสธมีไวลด์การ์ด คุณจะอ้างอิงไวลด์การ์ดดังกล่าวใน-if กฎที่ตามมาไม่ได้
ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle 9.2.0-alpha04
| ปัญหาที่แก้ไขแล้ว | |||
|---|---|---|---|
| ปลั๊กอิน Android Gradle |
|
||
ปลั๊กอิน Android Gradle 9.2.0-alpha03
| ปัญหาที่แก้ไขแล้ว | |||
|---|---|---|---|
| ปลั๊กอิน Android Gradle |
|
||
| เครื่องมือวิเคราะห์ซอร์สโค้ด |
|
||
| การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด |
|
||
ปลั๊กอิน Android Gradle 9.2.0-alpha02
| ปัญหาที่แก้ไขแล้ว | ||||
|---|---|---|---|---|
| ปลั๊กอิน Android Gradle |
|
|||
| การผสานรวมเครื่องมือวิเคราะห์ซอร์สโค้ด |
|
|||
ปลั๊กอิน Android Gradle 9.2.0-alpha01
| ปัญหาที่แก้ไขแล้ว | |||||
|---|---|---|---|---|---|
| ปลั๊กอิน Android Gradle |
|
||||
| เครื่องมือวิเคราะห์ซอร์สโค้ด |
|
||||