ปลั๊กอิน 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 |
|
||||
| เครื่องมือวิเคราะห์ซอร์สโค้ด |
|
||||