Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
ConfigStore
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
В Android системные свойства хранятся в классе ConfigStore. ConfigStore использует флаги сборки для хранения значений конфигурации в разделе поставщика, а служба в системном разделе получает доступ к этим значениям с помощью HIDL.
Системные свойства используют
PRODUCT_DEFAULT_PROPERTY_OVERRIDES
для хранения системных свойств в
default.prop
в разделе поставщика, а служба использует
sysprop
для чтения этих свойств.
ConfigStore HAL остается в AOSP для поддержки устаревших разделов поставщика. На устройствах под управлением Android 10 surfaceflinger
сначала считывает системные свойства; если системное свойство не определено для элемента конфигурации в SurfaceFlingerProperties.sysprop
, surfaceflinger
возвращается к ConfigStore HAL.
Флаги сборки и свойства системы
Каждый флаг сборки в ConfigStore имеет соответствующее системное свойство, как показано в следующей таблице.
Флаги сборки | Свойства системы |
---|
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS | ro.surface_flinger.force_hwc_copy_for_virtual_displays |
TARGET_HAS_HDR_DISPLAY | ro.surface_flinger.has_HDR_display |
TARGET_HAS_WIDE_COLOR_DISPLAY | ro.surface_flinger.has_wide_color_display |
NUM_FRAMEBUFFER_SURFACE_BUFFERS | ro.surface_flinger.max_frame_buffer_acquired_buffers |
MAX_VIRTUAL_DISPLAY_DIMENSION | ro.surface_flinger.max_virtual_display_dimension |
PRIMARY_DISPLAY_ORIENTATION | ro.surface_flinger.primary_display_orientation |
PRESENT_TIME_OFFSET_FROM_VSYNC_NS | ro.surface_flinger.present_time_offset_from_vsync_ns |
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK | ro.surface_flinger.running_without_sync_framework |
SF_START_GRAPHICS_ALLOCATOR_SERVICE | ro.surface_flinger.start_graphics_allocator_service |
TARGET_USE_CONTEXT_PRIORITY | ro.surface_flinger.use_context_priority |
USE_VR_FLINGER | ro.surface_flinger.use_vr_flinger |
VSYNC_EVENT_PHASE_OFFSET_NS | ro.surface_flinger.vsync_event_phase_offset_ns |
SF_VSYNC_EVENT_PHASE_OFFSET_NS | ro.surface_flinger.vsync_sf_event_phase_offset_ns |
Новые системные свойства
Android 10 включает в себя следующие новые системные свойства:
-
ro.surface_flinger.default_composition_dataspace
-
ro.surface_flinger.default_composition_pixel_format
-
ro.surface_flinger.use_color_management
-
ro.surface_flinger.wcg_composition_dataspace
-
ro.surface_flinger.wcg_composition_pixel_format
-
ro.surface_flinger.display_primary_red
-
ro.surface_flinger.display_primary_green
-
ro.surface_flinger.display_primary_blue
-
ro.surface_flinger.display_primary_white
-
ro.surface_flinger.protected_contents
-
ro.surface_flinger.set_idle_timer_ms
-
ro.surface_flinger.set_touch_timer_ms
-
ro.surface_flinger.use_smart_90_for_video
-
ro.surface_flinger.protected_contents
-
ro.surface_flinger.support_kernel_idle_timer
Подробную информацию об этих свойствах можно найти в frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
.
Использовать SurfaceFlingerProperties
В следующих примерах для библиотеки SurfaceFlingerProperties имя функции — api_name
в SurfaceFlingerProperties.sysprop
.
cc_binary {
name: "cc_client",
srcs: ["baz.cpp"],
shared_libs: ["SurfaceFlingerProperties"],
}
java_library {
name: "JavaClient",
srcs: ["foo/bar.java"],
libs: ["SurfaceFlingerProperties"],
}
import android.sysprop.SurfaceFlingerProperties;
...
static void foo() {
...
boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);
...
}
...
#include <SurfaceFlingerProperties.sysprop.h>
using namespace android::sysprop;
...
void bar() {
...
bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);
...
}
...
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","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 UTC."],[],[],null,["# ConfigStore\n\nIn Android, system properties are stored in the ConfigStore class. ConfigStore uses build flags\nto store config values in the vendor partition, and a service in the system partition accesses\nthose values using HIDL.\nSystem properties use `PRODUCT_DEFAULT_PROPERTY_OVERRIDES` to store system properties in `default.prop` in the vendor partition, and the service uses `sysprop` to read those properties.\n\n\u003cbr /\u003e\n\n\nThe ConfigStore HAL remains in AOSP to support legacy vendor partitions. On\ndevices running Android 10,\n`surfaceflinger` reads system properties first; if no system\nproperty is defined for a config item in\n`SurfaceFlingerProperties.sysprop`, `surfaceflinger`\nfalls back to the ConfigStore HAL.\n\nBuild flags and system properties\n---------------------------------\n\n\nEach build flag in ConfigStore has a matching system property, as shown in the\nfollowing table.\n\n| Build flags | System properties |\n|-----------------------------------------|----------------------------------------------------------|\n| `TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS` | `ro.surface_flinger.force_hwc_copy_for_virtual_displays` |\n| `TARGET_HAS_HDR_DISPLAY` | `ro.surface_flinger.has_HDR_display` |\n| `TARGET_HAS_WIDE_COLOR_DISPLAY` | `ro.surface_flinger.has_wide_color_display` |\n| `NUM_FRAMEBUFFER_SURFACE_BUFFERS` | `ro.surface_flinger.max_frame_buffer_acquired_buffers` |\n| `MAX_VIRTUAL_DISPLAY_DIMENSION` | `ro.surface_flinger.max_virtual_display_dimension` |\n| `PRIMARY_DISPLAY_ORIENTATION` | `ro.surface_flinger.primary_display_orientation` |\n| `PRESENT_TIME_OFFSET_FROM_VSYNC_NS` | `ro.surface_flinger.present_time_offset_from_vsync_ns` |\n| `TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK` | `ro.surface_flinger.running_without_sync_framework` |\n| `SF_START_GRAPHICS_ALLOCATOR_SERVICE` | `ro.surface_flinger.start_graphics_allocator_service` |\n| `TARGET_USE_CONTEXT_PRIORITY` | `ro.surface_flinger.use_context_priority` |\n| `USE_VR_FLINGER` | `ro.surface_flinger.use_vr_flinger` |\n| `VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_event_phase_offset_ns` |\n| `SF_VSYNC_EVENT_PHASE_OFFSET_NS` | `ro.surface_flinger.vsync_sf_event_phase_offset_ns` |\n\nNew system properties\n---------------------\n\n\nAndroid 10 includes the following new system\nproperties:\n\n- `ro.surface_flinger.default_composition_dataspace`\n- `ro.surface_flinger.default_composition_pixel_format`\n- `ro.surface_flinger.use_color_management`\n- `ro.surface_flinger.wcg_composition_dataspace`\n- `ro.surface_flinger.wcg_composition_pixel_format`\n- `ro.surface_flinger.display_primary_red`\n- `ro.surface_flinger.display_primary_green`\n- `ro.surface_flinger.display_primary_blue`\n- `ro.surface_flinger.display_primary_white`\n- `ro.surface_flinger.protected_contents`\n- `ro.surface_flinger.set_idle_timer_ms`\n- `ro.surface_flinger.set_touch_timer_ms`\n- `ro.surface_flinger.use_smart_90_for_video`\n- `ro.surface_flinger.protected_contents`\n- `ro.surface_flinger.support_kernel_idle_timer`\n\n\nFor details on these properties, refer to\n`frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop`.\n\nUse SurfaceFlingerProperties\n----------------------------\n\n\nIn the following examples for the SurfaceFlingerProperties library, the\nfunction name is `api_name` in\n`SurfaceFlingerProperties.sysprop`. \n\n```carbon\ncc_binary {\n name: \"cc_client\",\n srcs: [\"baz.cpp\"],\n shared_libs: [\"SurfaceFlingerProperties\"],\n}\njava_library {\n name: \"JavaClient\",\n srcs: [\"foo/bar.java\"],\n libs: [\"SurfaceFlingerProperties\"],\n}\n``` \n\n```python\nimport android.sysprop.SurfaceFlingerProperties;\n...\n\nstatic void foo() {\n ...\n boolean temp = SurfaceFlingerProperties.vsync_event_phase_offset_ns().orElse(true);\n ...\n}\n...\n``` \n\n```arduino\n#include \u003cSurfaceFlingerProperties.sysprop.h\u003e\nusing namespace android::sysprop;\n\n...\n\nvoid bar() {\n ...\n bool temp = SurfaceFlingerProperties::vsync_event_phase_offset_ns(true);\n ...\n}\n...\n```"]]