โปรเจ็กต์: /studio/_project.yaml สมุดภาพ: /studio/_book.yaml คำอธิบาย: หน้านี้อธิบายการพัฒนา DSL และ API ของปลั๊กอิน Android Gradle ตามแผนที่วางไว้
ปลั๊กอิน Gradle ของ Android (AGP) เป็นระบบการสร้างที่รองรับสำหรับแอปพลิเคชัน Android รวมถึงรองรับการคอมไพล์แหล่งที่มาหลายประเภทและลิงก์เข้าด้วยกันเป็นแอปพลิเคชันที่คุณสามารถเรียกใช้ได้บนอุปกรณ์ Android จริงหรือโปรแกรมจำลอง
ส่วนต่อไปนี้จะอธิบายวิวัฒนาการที่วางแผนไว้ของ DSL และ API ของ AGP เมื่อมีการเปิดตัว API ใหม่ในรุ่นที่เสถียร ระบบจะทําเครื่องหมาย API เก่าว่าเลิกใช้งาน จากนั้น API ที่เลิกใช้งานเหล่านั้นจะใช้งานไม่ได้ในรุ่นที่ใช้งานจริงรุ่นถัดไป ด้านล่างนี้คือข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่กําลังจะเกิดขึ้นใน AGP เวอร์ชันหลักแต่ละเวอร์ชัน
ดูบันทึกการเลิกใช้งานหรือการนำ AGP API ออกอย่างละเอียดได้ที่การอัปเดต AGP API
AGP 9.0 (ครึ่งหลังของปี 2025)
Variant API ใหม่มีความเสถียร ส่วน API เก่าเลิกใช้งานแล้ว
- Variant API ที่พัฒนาใน 4.1 และ 4.2 นั้นเสถียรแล้ว
- อินเทอร์เฟซทั้งหมดเหล่านี้อยู่ในอาร์ติแฟกต์
gradle-api
- อินเทอร์เฟซและคลาสก่อนหน้านี้ที่ใช้ใน Variant API เวอร์ชันเก่าได้เลิกใช้งานแล้ว
อินเทอร์เฟซ DSL ใหม่เสถียร ส่วนอินเทอร์เฟซเก่าเลิกใช้งานแล้ว
- อินเทอร์เฟซ DSL ที่พัฒนาใน 4.1, 4.2 และ 7.0 ทำงานได้อย่างเสถียรแล้ว
- อินเทอร์เฟซทั้งหมดเหล่านี้อยู่ในอาร์ติแฟกต์
gradle-api
- อินเทอร์เฟซและคลาสก่อนหน้าที่ใช้ใน DSL เลิกใช้งานแล้ว
ชั้นเรียน AGP ภายในแบบส่วนตัวจะยังคงเข้าถึงได้
คลาสภายในส่วนตัวจาก AGP ซึ่งอยู่ในอาร์ติแฟกต์อื่นๆ จะยังคงเข้าถึงได้ในระหว่างการคอมไพล์ไฟล์บิลด์ แต่เราไม่แนะนําให้ใช้คลาสดังกล่าวเนื่องจากอาจเปลี่ยนแปลงในลักษณะที่ทำให้เกิดข้อขัดข้องได้ทุกเมื่อ
AGP 10.0 (2026)
นํา API เก่าออก
- ระบบจะลบอินเทอร์เฟซและคลาสทั้งหมดก่อนหน้านี้ที่ใช้ใน DSL และ Variant API เวอร์ชันเก่า
- อาร์ติแฟกต์
gradle-api
คืออาร์ติแฟกต์เดียวที่คุณต้องใช้เข้าถึงอินเทอร์เฟซและคลาส DSL และ API ของตัวแปร และควรใช้เมื่อพัฒนาปลั๊กอิน - เมื่อใช้ข้อมูลเมตาของ Gradle ซึ่งมีกราฟ Dependency ที่แตกต่างกันสําหรับการคอมไพล์และรันไทม์ จะมีเฉพาะอาร์ติแฟกต์
gradle-api
เท่านั้นที่ใช้ได้ในระหว่างการคอมไพล์ไฟล์บิลด์
(รอดำเนินการ) นำสิทธิ์เข้าถึงชั้นเรียน AGP ภายในส่วนตัวออก
ตอนนี้การพึ่งพาอาร์ติแฟกต์ gradle
จะซ่อนคลาสภายในทั้งหมดและให้การเข้าถึงการคอมไพล์เฉพาะอินเทอร์เฟซและคลาสที่มีอยู่ในอาร์ติแฟกต์ gradle-api
ซึ่งจะส่งผลต่อทั้งการคอมไพล์ปลั๊กอินและไฟล์บิลด์
คุณไม่สามารถเพิ่มการพึ่งพาด้วยตนเองเพื่อเข้าถึงคลาสภายในได้