از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
AOSP گزینه های زیر را برای ذخیره اطلاعات پیکربندی در یک دستگاه ارائه می دهد:
ویژگی های سیستم
ویژگی های لایه انتزاعی سخت افزاری (HAL).
فایل های XML پیکربندی سیستم
همپوشانی منابع (استاتیک و زمان اجرا)
ویژگی های سیستم
ویژگی های سیستم جفت های کلید/مقدار رشته ای هستند که در فرهنگ لغت جهانی build.prop ذخیره شده اند. ویژگی های سیستم منابعی در سطح سیستم هستند که استفاده آسان و سربار عملکرد پایینی دارند. هنگام استفاده از ویژگی های سیستم، نیازی به استفاده از ارتباطات بین فرآیندی (IPC) ندارید، حتی اگر یک ویژگی سیستم در چندین فرآیند به اشتراک گذاشته شود. با این حال، ویژگیهای سیستم مشابه متغیرهای سراسری هستند و در صورت استفاده نادرست میتوانند مضر باشند. استفاده نادرست از ویژگی های سیستم می تواند منجر به مشکلاتی مانند آسیب پذیری های امنیتی و غیرقابل دسترس شدن برنامه ها برای کاربران شود. قبل از استفاده از ویژگی های سیستم برای ذخیره اطلاعات پیکربندی، سایر گزینه های پیکربندی را در نظر بگیرید.
هنگامی که منبع حقیقت برای یک پیکربندی از یک جزء سخت افزاری در یک دستگاه باشد، HAL برای سخت افزار باید اطلاعات آن جزء را ارائه دهد. یک روش HAL جدید در HAL موجود برای دسترسی به پیکربندی تعریف کنید. برای اطلاعات بیشتر در مورد ایجاد HAL، به AIDL برای HAL مراجعه کنید.
فایل های XML پیکربندی سیستم
وقتی دادههای پیکربندی ثابت اما پیچیده (ساختیافته) هستند، استفاده از XML یا فرمتهای دیگر را برای دادههای پیکربندی در نظر بگیرید. مطمئن شوید که طرح فایل ثابت باقی می ماند. برای فایلهای XML، میتوانید از xsd_config استفاده کنید تا طرحواره را ثابت نگه دارید، و از مزیت تجزیهکننده XML خود تولید شده استفاده کنید.
پوشش منابع
میتوانید از پوششهای منابع برای سفارشیسازی یک محصول استفاده کنید. دو نوع همپوشانی منابع وجود دارد:
پوشش منابع استاندارد برای سفارشی کردن یک محصول در زمان ساخت استفاده می شود. اطلاعات Foris در مورد همپوشانی های منابع استاندارد، به سفارشی سازی ساخت با پوشش های منابع مراجعه کنید.
پوشش منبع زمان اجرا (RRO) برای تغییر مقادیر منابع بسته هدف در زمان اجرا استفاده می شود. به عنوان مثال، یک برنامه نصب شده روی تصویر سیستم ممکن است رفتار خود را بر اساس مقدار یک منبع تغییر دهد. به جای اینکه مقدار منبع را در زمان ساخت کدگذاری کند، یک RRO نصب شده روی یک پارتیشن متفاوت می تواند مقادیر منابع برنامه را در زمان اجرا تغییر دهد. برای اطلاعات بیشتر در مورد RRO ها، به تغییر مقدار منابع برنامه در زمان اجرا مراجعه کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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)."]]