27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
ConfigStore
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android'de sistem özellikleri ConfigStore sınıfında saklanır. ConfigStore, yapılandırma değerlerini tedarikçi bölümünde depolamak için derleme işaretlerini kullanır ve sistem bölümündeki bir hizmet, HIDL'yi kullanarak bu değerlere erişir.
Sistem özellikleri, sistem özelliklerini tedarikçi bölümündeki
default.prop
alanında depolamak için
PRODUCT_DEFAULT_PROPERTY_OVERRIDES
'ü, hizmet ise bu özellikleri okumak için
sysprop
'yi kullanır.
ConfigStore HAL, eski satıcı bölümlerini desteklemek için AOSP'de kalır. Android 10 çalıştıran cihazlarda surfaceflinger
önce sistem özelliklerini okur; SurfaceFlingerProperties.sysprop
'taki bir yapılandırma öğesi için sistem özelliği tanımlanmamışsa surfaceflinger
ConfigStore HAL'e geri döner.
İşaretler ve sistem özellikleri oluşturma
ConfigStore'daki her derleme işaretinin, aşağıdaki tabloda gösterildiği gibi eşleşen bir sistem özelliği vardır.
İşaret oluşturma |
Sistem özellikleri |
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
|
Yeni sistem özellikleri
Android 10 aşağıdaki yeni sistem özelliklerini içerir:
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
Bu özelliklerle ilgili ayrıntılar için frameworks/native/services/surfaceflinger/sysprop/SurfaceFlingerProperties.sysprop
bölümüne bakın.
SurfaceFlingerProperties'i kullanma
SurfaceFlingerProperties kitaplığına ait aşağıdaki örneklerde, işlev adı SurfaceFlingerProperties.sysprop
içindeki api_name
'tir.
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);
...
}
...
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-26 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-26 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```"]]