AOSP cung cấp các lựa chọn sau đây để 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 chung build.prop
. Thuộc tính hệ thống là những tài nguyên trên toàn hệ thống, dễ sử dụng và có 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 giữa các 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 chung và có thể gây hại khi bị sử dụng sai mục đích. Việc sử dụng sai các 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ề các 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 dữ liệu chính 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 bài viết 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 giản đồ tệp luôn ổn định. Đối với tệp XML, bạn có thể dùng xsd_config
để giữ cho lược đồ ổ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ể dùng lớp phủ tài nguyên để tuỳ chỉnh một 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 một sản phẩm tại thời điểm tạo. Để biết thông tin về lớp phủ tài nguyên tiêu 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) được dùng để thay đổi các giá trị tài nguyên của một gói mục tiêu tại 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 dựa trên giá trị của một tài nguyên. Thay vì mã hoá cứng giá trị tài nguyên tại thời điểm tạo, 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 bài viết Thay đổi giá trị của tài nguyên ứng dụng trong thời gian chạy.