Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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 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 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 tuỳ chọn cấu hình khác.
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 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 rằng giản đồ tệp vẫn ổn định. Đối với tệp XML, bạn có thể sử 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) được 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.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Configuration overview\n\nAOSP offers the following options for storing configuration information on a\ndevice:\n\n- System properties\n- Hardware abstraction layer (HAL) properties\n- System config XML files\n- Resource overlays (static and runtime)\n\nSystem properties\n-----------------\n\n*System properties* are string key/value pairs stored in the `build.prop`\nglobal dictionary. System properties are system-wide resources that are easy to\nuse and have a low performance overhead. When using system properties, you don't\nneed to use interprocess communication (IPC) even if a system property is shared\nacross multiple processes. However, system properties are similar to global\nvariables and can be harmful when misused. The misuse of system properties can\nresult in issues such as security vulnerabilities and apps becoming inaccessible\nto users. Before using system properties to store configuration information,\nconsider the other configuration options.\n\nFor further information on system properties, see\n[Add system properties](/docs/core/architecture/configuration/add-system-properties)\n| **Note:** Previous to Android 10, AOSP used a ConfigStore HAL to store system properties. ConfigStore HAL is deprecated and should no longer be used. For information on the ConfigStore HAL, refer to [ConfigStore HAL](/docs/core/architecture/configuration/archive).\n\nHAL properties\n--------------\n\nWhen the source of truth for a configuration is from a hardware component on a\ndevice, the HAL for the hardware must provide the information for that\ncomponent. Define a new HAL method in the existing HAL for accessing the\nconfiguration. For further information on developing a HAL, see\n[AIDL for HALs](/docs/core/architecture/aidl/aidl-hals).\n| **Note:** Don't configure the HAL to use system properties as a side-channel communication mechanism for HALs.\n\nSystem config XML files\n-----------------------\n\nWhen the configuration data is static but complicated (structured), consider\nusing XML or other such formats for the configuration data. Ensure that the\nfile schema remains stable. For XML files, you can use\n[`xsd_config`](/docs/core/architecture/config-file-schema-api#config-build-rule)\nto keep the schema stable, and to take advantage of an autogenerated XML\nparser.\n\nResource overlay\n----------------\n\nYou can use resource overlays to customize a product. There are two types of\nresource overlays:\n\n- *Standard resource overlay* used to customize a product at build time. Foris\n information on standard resource overlays, see\n [Customizing the build with resource overlays](/docs/setup/create/new-device#use-resource-overlays).\n\n- *Runtime resource overlay (RRO)* is used to change the resource values\n of a target package at runtime. For example, an app installed on the system\n image might change its behavior based upon the value of a resource. Rather than\n hardcoding the resource value at build time, an RRO installed on a different\n partition can change the values of the app's resources at runtime. For more\n information on RROs, see\n [Change the value of an app's resources at runtime](/docs/core/runtime/rros)."]]