Đối với hệ thống xây dựng của mình, tôi cần phải tạo một số biến thể ứng dụng, mỗi biến thể yêu cầu một nhóm quyền khác nhau. Làm thế nào điều này có thể được thực hiện với Gradle, mà không cần gọi một kịch bản riêng biệt?Gradle: Cách tùy chỉnh quyền đối với Tệp kê khai Android?
Trả lời
Tôi chỉ cố gắng làm điều này bằng cách có hương vị khác nhau trong tập tin gradle tôi:
free {
packageName 'com.sample.free'
buildConfigField "boolean", "HAS_AD", "true"
}
paid {
packageName 'com.sample.paid'
buildConfigField "boolean", "HAS_AD", "false"
}
và sau đó tôi đã tạo ra một thư mục mới dưới src gọi là "tự do" và theo đó một thư mục có tên "res"
src/
+ free/
| + res/
+ src/
và trong thư mục đó tạo ra một tập tin mới "AndroidManifest.xml" với đoạn mã sau vào nó:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
Theo Gradle Plugin User Guide trên Android Site Công cụ dự án:
tương tự để xây dựng các loại, hương vị sản phẩm cũng góp phần mã và nguồn lực thông qua sourceSets riêng của họ.
và
Các quy tắc sau được sử dụng khi giao dịch với tất cả các sourcesets sử dụng để xây dựng một APK duy nhất:
- Tất cả các mã nguồn (src/*/java) được sử dụng cùng nhau như nhiều thư mục tạo ra một đầu ra duy nhất.
- Tệp kê khai tất cả được hợp nhất với nhau thành một tệp kê khai duy nhất. Điều này cho phép Product Flavors có các thành phần khác nhau và/hoặc quyền, tương tự như Build Types.
- Tất cả tài nguyên (phân bổ và nội dung Android) được sử dụng bằng mức độ ưu tiên lớp phủ trong đó Loại xây dựng ghi đè Hương vị sản phẩm, trong đó ghi đè nguồn chính.
- Mỗi Biến thể xây dựng tạo lớp R của riêng nó (hoặc mã nguồn được tạo khác) từ các tài nguyên. Không có gì được chia sẻ giữa các biến thể .
có nghĩa là bạn có thể tạo thư mục với mỗi tên hương vị dưới src và đặt các tệp tùy chỉnh của bạn vào. Nếu tệp được nói là một lớp học AndroidManifest sẽ hợp nhất nó với tệp kê khai trong chính.
- 1. Tùy chỉnh build.xml Android để đổi tên gói kê khai
- 2. Ant ghi đè tệp kê khai tùy chỉnh
- 3. Lỗi ứng dụng Android Studio Tệp kê khai lỗi trong Gradle
- 4. Plugin Android Gradle - thêm thuộc tính hương vị tùy chỉnh?
- 5. Cách sử dụng quyền tùy chỉnh trong Android?
- 6. Vài câu hỏi về quyền tùy chỉnh trong Android
- 7. Cách đăng ký intentfilter tùy chỉnh cho bộ thu phát sóng trong tệp kê khai?
- 8. Cấu hình tệp kê khai Android?
- 9. ACTION_USER_PRESENT trong tệp kê khai với BroadcastReceiver
- 10. cách khai báo hai gói với hoạt động của họ trong tệp kê khai android?
- 11. triển khai rsync và quyền đối với tệp/thư mục
- 12. Lắp ráp với quyền tùy chỉnh
- 13. Sử dụng MsBuild để tạo tệp kê khai MsDeploy tùy chỉnh (Mục tiêu gói)
- 14. AdMob với Android: không thể phân tích cú pháp android: configChanges trong tệp kê khai
- 15. Android Studio/Gradle build không thể tìm thấy lớp Ứng dụng tùy chỉnh
- 16. Quyền đối với tệp Nodejs
- 17. Trình nhận báo thức và Tệp kê khai Android
- 18. Android lưu mảng đối tượng tùy chỉnh
- 19. Tải android: versionName phần tử tệp kê khai trong mã
- 20. Gradle: Cách tải tệp JAR tùy chỉnh lên kho lưu trữ Maven
- 21. Làm thế nào để bạn xây dựng một JAR trong nhật thực với một tệp kê khai tùy chỉnh?
- 22. Thiết lập tệp kê khai SDK Dropbox Android
- 23. Không bắt tệp kê khai
- 24. Có cách nào để giữ siêu dữ liệu trong tệp kê khai Android riêng tư với gói không?
- 25. Triển khai COM tùy chỉnh?
- 26. CORS Chrome Extension với phiên bản tệp kê khai 2
- 27. Make nhiệm vụ tùy chỉnh người trả boolean trong Gradle
- 28. cách thêm thông tin tùy ý vào tệp kê khai từ plugin lắp ráp maven
- 29. Android - cách hủy đăng ký người nhận được tạo trong tệp kê khai?
- 30. Thêm quyền vào tệp kê khai ứng dụng theo chương trình