AOSP cung cấp các tuỳ chọn sau để lưu trữ thông tin cấu hình trên thiết bị:
- Thuộc tính hệ thống
- Thuộc tính lớp trừu tượng phần cứng (HAL)
- Tệp XML cấu hình hệ thống
- Lớp phủ tài nguyên (tĩnh và thời gian chạy)
Thuộc tính hệ thống
Thuộc tính hệ thống là các cặp khoá/giá trị chuỗi được lưu trữ trong từ điển toàn cục build.prop
. Thuộc tính hệ thống là các tài nguyên trên toàn hệ thống, dễ sử dụng và có mức hao tổn hiệu suất thấp. Khi sử dụng các thuộc tính hệ thống, bạn không cần sử dụng giao tiếp liên quy trình (IPC) ngay cả khi một thuộc tính hệ thống được chia sẻ trên nhiều quy trình. Tuy nhiên, các thuộc tính hệ thống tương tự như các biến toàn cục và có thể gây hại khi bị sử dụng sai mục đích. Việc sử dụng sai thuộc tính hệ thống có thể dẫn đến các vấn đề như lỗ hổng bảo mật và người dùng không truy cập được vào ứng dụng. Trước khi sử dụng các thuộc tính hệ thống để lưu trữ thông tin cấu hình, hãy cân nhắc các lựa chọn cấu hình khác.
Để biết thêm thông tin về thuộc tính hệ thống, hãy xem phần Thêm thuộc tính hệ thống
Thuộc tính HAL
Khi nguồn đáng tin cậy cho một cấu hình là từ một thành phần phần cứng trên thiết bị, HAL cho phần cứng đó phải cung cấp thông tin cho thành phần đó. Xác định một phương thức HAL mới trong HAL hiện có để truy cập vào cấu hình. Để biết thêm thông tin về cách phát triển HAL, hãy xem phần AIDL cho HAL.
Tệp XML cấu hình hệ thống
Khi dữ liệu cấu hình là tĩnh nhưng phức tạp (có cấu trúc), hãy cân nhắc sử dụng XML hoặc các định dạng tương tự khác cho dữ liệu cấu hình. Đảm bảo rằng giản đồ tệp vẫn ổn định. Đối với các tệp XML, bạn có thể dùng xsd_config
để giữ cho giản đồ ổn định và tận dụng trình phân tích cú pháp XML được tạo tự động.
Lớp phủ tài nguyên
Bạn có thể sử dụng lớp phủ tài nguyên để tuỳ chỉnh sản phẩm. Có hai loại lớp phủ tài nguyên:
Lớp phủ tài nguyên chuẩn dùng để tuỳ chỉnh sản phẩm tại thời điểm tạo bản dựng. Để biết thông tin về lớp phủ tài nguyên chuẩn, hãy xem phần Tuỳ chỉnh bản dựng bằng lớp phủ tài nguyên.
Lớp phủ tài nguyên thời gian chạy (RRO) dùng để thay đổi giá trị tài nguyên của một gói mục tiêu trong thời gian chạy. Ví dụ: một ứng dụng được cài đặt trên hình ảnh hệ thống có thể thay đổi hành vi của ứng dụng đó dựa trên giá trị của tài nguyên. Thay vì mã hoá cứng giá trị tài nguyên tại thời điểm tạo bản dựng, một RRO được cài đặt trên một phân vùng khác có thể thay đổi giá trị của tài nguyên ứng dụng trong thời gian chạy. Để biết thêm thông tin về RRO, hãy xem phần Thay đổi giá trị của tài nguyên ứng dụng trong thời gian chạy.