Tiến trình di chuyển DSL/API của Trình bổ trợ Android cho Gradle

Trình bổ trợ Android cho Gradle (AGP) là một hệ thống xây dựng được hỗ trợ cho các ứng dụng Android, đồng thời hỗ trợ biên dịch nhiều loại nguồn khác nhau và liên kết chúng với nhau thành một ứng dụng mà bạn có thể chạy trên thiết bị Android thực hoặc một trình mô phỏng.

Phần sau đây mô tả sự phát triển theo kế hoạch cho DSL và API của AGP. Khi các API mới được đưa vào trong bản phát hành ổn định, các API cũ sẽ được đánh dấu là không dùng nữa. Sau đó, những API không dùng nữa sẽ ngừng hoạt động trong bản phát hành chính thức tiếp theo. Dưới đây là thông tin về những thay đổi sắp tới đối với mỗi bản phát hành AGP chính.

Để biết nhật ký chi tiết hơn về việc ngừng sử dụng hoặc xóa API AGP, hãy xem thông tin cập nhật về API AGP.

AGP 8.0 (Giữa-2022)

API biến thể mới ổn định, API cũ không còn dùng nữa

  • API biến thể đang được tích hợp trong 4.1 và 4.2 là ổn định.
  • Tất cả những giao diện này đều nằm trong cấu phần phần mềm gradle-api.
  • Các giao diện và lớp trước đây được sử dụng trong API biến thể cũ hiện không được dùng nữa.

Các giao diện DSL mới là ổn định, các giao diện cũ không còn được dùng nữa.

  • Các giao diện DSL đang tiềm năng trong phiên bản 4.1, 4.2 và 7.0 hiện đã ổn định.
  • Tất cả những giao diện này đều nằm trong cấu phần phần mềm gradle-api.
  • Các giao diện và lớp trước đây được dùng trong DSL hiện đã ngừng hoạt động.

Hiện tại, khi viết trình bổ trợ, bạn chỉ nên phụ thuộc vào cấu phần phần mềm gradle-api để sử dụng các giao diện và lớp mới. Một ngoại lệ nhỏ ở đây là các lớp trình bổ trợ sẽ chuyển sang gradle-api trong 8.0:

Bạn vẫn có thể truy cập vào các lớp AGP nội bộ riêng tư

Các lớp nội bộ riêng tư của AGP, nằm trong các cấu phần phần mềm khác, vẫn có thể truy cập được trong quá trình biên dịch tệp bản dựng, nhưng bạn không nên sử dụng các lớp này vì chúng có thể thay đổi theo cách phá vỡ vào bất cứ lúc nào.

AGP 9.0 (Nửa đầu năm 2023)

API cũ đã bị xóa

  • Tất cả các giao diện và lớp trước đây được sử dụng trong DSL và API biến thể cũ đều sẽ bị xóa.
  • Cấu phần phần mềm gradle-api là cấu phần phần mềm duy nhất bạn cần có để truy cập các giao diện và loại của DSL và API biến thể, và nên sử dụng cấu phần phần mềm này khi phát triển các trình bổ trợ.
  • Bằng cách sử dụng siêu dữ liệu Gradle, cung cấp các biểu đồ phần phụ thuộc khác nhau để biên dịch và thời gian chạy, chỉ có cấu phần phần mềm gradle-api là (dùng từ rõ nghĩa hơn) trong quá trình biên dịch tệp bản dựng.

(Thông tin dự đoán) Đã xóa quyền truy cập vào các lớp AGP nội bộ riêng tư

Giờ đây, phần phụ thuộc vào cấu phần phần mềm gradle sẽ ẩn tất cả các lớp nội bộ và chỉ cấp quyền truy cập biên dịch cho các giao diện và lớp có trong cấu phần phần mềm gradle-api. Điều này tác động đến cả trình bổ trợ và quá trình biên dịch tệp.

Bạn không thể thêm phần phụ thuộc để truy cập vào các lớp nội bộ theo cách thủ công.