Lời nói đầu: đây không phải là câu hỏi về cách sử dụng loại xây dựng và hương vị sản phẩm trong ứng dụng Android. Tôi hiểu các khái niệm cơ bản liên quan. Câu hỏi này liên quan nhiều hơn đến việc cố gắng hiểu cấu hình nào sẽ được chỉ định trong loại bản dựng, cấu hình nào sẽ được chỉ định trong hương vị sản phẩm và liệu có bất kỳ sự phân biệt nào thực sự cần thiết hay không.
Tuần này, tôi đã tìm hiểu thêm về cấu hình lớp cho các ứng dụng Android. Ban đầu tôi nghĩ rằng tôi đã xử lý tốt các loại xây dựng so với hương vị sản phẩm, nhưng càng đi sâu vào tài liệu tôi càng nhận ra sự khác biệt giữa hai loại này đối với tôi không rõ ràng.
Vì có một hệ thống phân cấp được xác định rõ (theo nghĩa các thuộc tính được chỉ định trong các loại xây dựng được ưu tiên hơn các loại được chỉ định trong các hương vị sản phẩm), tôi không hiểu tại sao cần phải phân biệt giữa các loại xây dựng và hương vị sản phẩm. Sẽ không tốt hơn nếu hợp nhất tất cả các thuộc tính và phương thức vào đối tượng DSL hương vị sản phẩm, và sau đó chỉ coi loại xây dựng là thứ nguyên hương vị (mặc định)?
Một số ví dụ cụ thể dẫn đến sự nhầm lẫn của tôi:
Các
signingConfig
bất động sản có thể được thiết lập trong cả xây dựng các loại và hương vị sản phẩm ... nhưngminifyEnabled
(và, tôi giả sử,shrinkResources
?) Chỉ có thể được cấu hình trong xây dựng các loại.applicationId
chỉ có thể được chỉ định trong hương vị sản phẩm ... vàapplicationIdSuffix
chỉ có thể được chỉ định trong các loại bản dựng!?
Câu hỏi thực tế :
Cho các ví dụ trên: có sự phân biệt rõ ràng giữa vai trò của các loại xây dựng và hương vị sản phẩm không?
Nếu vậy, cách tốt nhất để hiểu nó là gì?
Nếu không, kế hoạch cuối cùng là hợp nhất các loại xây dựng và hương vị sản phẩm thành một đối tượng DSL có thể cấu hình được không?
applicationId
, chẳng hạn.