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.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android 8.1 ve sonraki sürümler, ekran teknolojileri arasında tutarlı bir deneyim sağlamak için kullanılabilecek renk yönetimi desteği içerir. Android'de çalışan uygulamalar, ekran cihazından en iyi şekilde yararlanmak için geniş renk gamına sahip ekranın tüm özelliklerine erişebilir.
Önceki Android sürümleri renk yönetimi desteği içermiyordu ve bunun yerine içerik ile ekranların uyumlu olmasına (genellikle TV sektörünün yardım ettiği bir hedef) dayanıyordu. Ancak son görüntü teknolojilerinde, mevcut içeriği beklendiği gibi göstermeyen çok daha geniş kapsamlı ekranlar kullanılmaktadır. Android 8.1 ve sonraki sürümlerde, geniş renk yelpazesine sahip ekran kullanan cihazlar (ör. aktif matris organik ışık yayan diyot veya AMOLED, bazı LCD'ler) uygulamalardaki geniş renk yelpazesine sahip içerikleri görebilir.
Cihaz desteğini belirleme
Android 8.1 veya sonraki sürümleri çalıştıran geniş renk ekranlı cihazlar, renk yönetimini (geniş renk) desteklemelidir. Bu özelliği etkinleştirmeden önce cihazın aşağıdaki koşulları karşıladığından emin olun:
Cihaz ekranı, Display-P3 renk alanını destekleyen iyi karakterize edilmiş bir ekran da dahil olmak üzere donanım gereksinimlerini karşılamalıdır. Ekran bu koşulu karşılamıyorsa renk yönetimini etkinleştirmeyin. CPU ve GPU etkisini azaltmak için ekran ardışık düzeninde genişletilmiş sRGB ve HDR10 desteği istenmektedir.
Cihaz, ekran davranışındaki üretim varyansını telafi etmek için kalibrasyon verileri (cihazda depolanır) oluşturan bir fabrika kalibrasyon işlemini destekler. En azından kalibrasyon verileri, ekranın sRGB içeriğini, D65 ve D73 beyaz noktalarını doğru şekilde göstermesine olanak tanımalıdır.
Bu koşullar karşılanırsa cihazda renk yönetimi özelliğini etkinleştirebilirsiniz.
Renk yönetimini uygulama
Renk yönetimini uygulamak için öncelikle renk modlarını anlamak ve bu modları donanıma uygulamak amacıyla Donanım Bestecisi 2 (HWC2) sürücüsünü güncelleyin.
Daha açık belirtmek gerekirse HWC2 derleyicisi, Display-P3 ve sRGB renk modlarını HWCDisplay::GetColorModes kullanarak bildirmelidir.
Ardından, OpenGL renk alanlarını HAL veri alanlarına dönüştürmek için gerekli OpenGL uzantılarını ve kitaplık desteğini etkinleştirin. Gerekli OpenGL uzantıları şunlardır:
EGL_EXT_pixel_format_float.
Uygulamaların 16 bit kayan nokta renk bileşenleriyle sunulacak EGLSurface'ler oluşturmasına olanak tanır. Öncelik: yüksek (geniş renk farkında uygulamalar için varsayılan piksel biçimi budur). Sürücü desteği gerekir.
EGL_KHR_gl_colorspace.
Ekran cihazlarında sRGB oluşturmayı daha kolay hale getirmek için sRGB biçiminde varsayılan çerçeve ardışık düzenlerini kullanmak isteyen uygulamalar için bu uzantı, bu özelliği destekleyen OpenGL bağlamları tarafından sRGB olarak oluşturulacak EGLSurface'ler oluşturmaya olanak tanır. sRGB davranışı için sürücü desteği gerekir.
Android ayrıca aşağıdaki isteğe bağlı uzantıları da sağlar:
EGL_EXT_colorspace_scrgb_linear.
Bu uzantı, uygulamaların EGLSurface oluştururken seçebileceği yeni bir renk alanı seçeneği (scRGB) sunar. scRGB renk alanı, sRGB ile aynı beyaz noktaya ve renk primerlerine sahip doğrusal bir ekran referanslı alan tanımlar (ve bu nedenle sRGB ile geriye dönük uyumludur). Bu işlem için sürücü desteği gerekmez ve Android EGL sarmalayıcısında uygulanabilir. Bu uzantının yararlı olabilmesi için 16 bit kayan nokta (FP16) desteği gerekir.
EGL_EXT_gl_colorspace_display_p3
ve EGL_EXT_gl_colorspace_display_p3_linear. Ekran cihazlarında sRGB oluşturmayı daha kolay hale getirmek için Display-P3 biçimindeki varsayılan çerçeve ardışık düzenlerini kullanmak isteyen uygulamalar için bu uzantı, bu özelliği destekleyen OpenGL bağlamları tarafından Display-P3'te oluşturulacak EGLSurface'ler oluşturmaya olanak tanır.
Bu, EGL sürücü sarmalayıcısında uygulanabilir.
VK_EXT_swapchain_colorspace
(Vulkan). Uygulamaların, takas zincirlerini kullandıkları renk alanıyla etiketlemelerini sağlar. DCI-P3, Display-P3, AdobeRGB ve BT2020 gibi yaygın renk alanlarını içerir.
Özelleştirme
DCI-P3, AdobeRGB, Rec709 ve Rec2020 gibi çeşitli renk standartlarına destek ekleyerek renk yönetimi özelliğini özelleştirebilirsiniz. Diğer özelleştirmeler şunlardır:
Ekran ardışık düzeninde renk dönüştürme için donanım desteği Donanımda birden fazla renk dönüştürme işlemini destekler.
Birden fazla katmanda bağımsız renk dönüştürme desteği (örneğin, bazı katmanlar sRGB, bazıları ise her biri kendi renk ardışık düzenine sahip olan genişletilmiş sRGB olabilir). Birden fazla renk alanı göründüğünde bazı renk alanlarının ekranın renk alanına dönüştürülmesi gerekir. İdeal olarak bu dönüştürme işlemi en iyi şekilde ekran motoru tarafından sağlanır (aksi takdirde Android'in GPU kompozisyonu yapması gerekir).
Test
Renk yönetimini test etmek için opengl/tests'teki aşağıdaki kaynakları kullanın:
gl2_basic, Display-P3 renk alanı isteyen basit bir OpenGL demosudur.
EGL_test
gerekli uzantı ve yapılandırma desteğini (10:10:10:2 ve FP16) test eder.
test_wide_color, SurfaceFlinger ile aynı şekilde bir yüzey oluşturur (ör. yapılandırma, renk alanı ve piksel biçimi).
Referans uygulama
Referans uygulama için frameworks/native bölümüne bakın. Başlıklar için şu makaleleri inceleyin:
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-27 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-27 UTC."],[],[],null,["# Color management\n\nAndroid 8.1 and higher include support for color management that can be used to provide a\nconsistent experience across display technologies. Apps running on\nAndroid can access the full capabilities of a wide-gamut display to get the\nmost out of a display device.\n\nPrevious Android releases didn't include color management support and\ninstead relied on content and displays being compatible (a goal often aided by\nthe TV industry). However, recent display technologies allow for much larger\ngamut displays that don't display existing content as expected. With Android\n8.1 and higher, devices that use a wide-gamut display (for example, active-matrix organic\nlight-emitting diode or AMOLED, some LCDs) can see wide-gamut\ncontent from apps.\n\nDetermine device support\n------------------------\n\nDevices with wide-color displays running Android 8.1 or higher should support color\nmanagement (wide-color). Before enabling this feature, ensure that the device meets\nthe following requirements:\n\n- Device display meets the hardware requirements, which include a well-characterized display that supports the Display-P3 colorspace. If the display doesn't meet this requirement, don't enable color management. To reduce CPU and GPU impact, support for extended sRGB and HDR10 in the display pipeline is desirable.\n- Device supports a factory calibration process that generates calibration data (stored on the device) to adjust for manufacturing variance in display behavior. At a minimum, calibration data should allow the display to accurately display sRGB content and D65 and D73 white points.\n\nIf these requirements are met, you can enable the color management\nfeature for the device.\n\nImplement color management\n--------------------------\n\nTo implement color management, first update the\n[Hardware Composer 2 (HWC2)](/docs/core/graphics/implement-hwc) driver\nto understand color modes and to apply those modes to the hardware.\nSpecifically, the HWC2 composer must report the Display-P3 and sRGB\ncolor modes using `HWCDisplay::GetColorModes`.\n| **Key Term:** Display-P3 uses Digital Cinema Initiatives primaries and sRGB transfer function.\n\nNext, enable the necessary OpenGL extensions and library support to\ntranslate OpenGL color spaces to HAL data spaces. Required OpenGL extensions\ninclude:\n\n- [`EGL_EXT_pixel_format_float`](https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_pixel_format_float.txt). Allows apps to create presentable EGLSurfaces with 16-bit float color components. Priority: high (expect this is the default pixel format for wide-color aware apps). Requires driver support.\n- [`EGL_KHR_gl_colorspace`](https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_gl_colorspace.txt). For apps that want to use sRGB format default framebuffers to more easily achieve sRGB rendering to display devices, this extension allows creating EGLSurfaces that will be rendered to in sRGB by OpenGL contexts supporting that capability. Requires driver support for sRGB behavior.\n\nAndroid also provides the following optional extensions:\n\n- [`EGL_EXT_colorspace_scrgb_linear`](https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_gl_colorspace_scrgb_linear.txt). This extension provides a new color space option, scRGB, that apps can choose when creating an EGLSurface. The scRGB color space defines a linear display referred space with the same white point and color primaries as sRGB (and thus is backward compatible with sRGB). This shouldn't require driver support and can be implemented in the Android EGL wrapper. To be useful, this extension requires support for 16-bit floating point (FP16).\n- [`EGL_EXT_gl_colorspace_display_p3`\n and `EGL_EXT_gl_colorspace_display_p3_linear`](https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_gl_colorspace_display_p3.txt). For apps that want to use Display-P3 format default framebuffers to more easily achieve sRGB rendering to display devices, this extension allows creating EGLSurfaces that will be rendered to in Display-P3 by OpenGL contexts supporting that capability. This can be implemented in EGL driver wrapper.\n- [`VK_EXT_swapchain_colorspace`](https://www.khronos.org/registry/vulkan/specs/1.0-extensions/html/vkspec.html#VK_EXT_swapchain_colorspace) (Vulkan). Enables apps to tag swap chains with the color space they're using. Includes a number of common color spaces such as DCI-P3, Display-P3, AdobeRGB, and BT2020.\n\nCustomization\n-------------\n\nYou can customize the color management feature by including support for a\nvariety of color standards such as DCI-P3, AdobeRGB, Rec709, and Rec2020. Other\ncustomizations include:\n\n- **Hardware support for color conversion in the display\n pipeline.** Enables support for multiple color transforms in hardware.\n- **Support for independent color transform on multiple layers** (for example, some layers could be sRGB and others extended-sRGB, each with their own color pipeline). When there's more than one color space visible, some color spaces need to be converted to the color space of the display. Ideally, this transform is best provided by the display engine (otherwise Android must perform GPU composition).\n\nTesting\n-------\n\nTo test color management, use the following resources in\n`opengl/tests`:\n\n- `gl2_basic` is a simple OpenGL demo that requests a Display-P3 colorspace.\n- [`EGL_test`](https://android.googlesource.com/platform/frameworks/native/+/android16-release/opengl/tests/EGLTest/EGL_test.cpp) tests for necessary extension and config support (10:10:10:2 and FP16).\n- `test_wide_color` creates a surface in same manner as SurfaceFlinger (for example, config, color space, and pixel format).\n\nReference implementation\n------------------------\n\nFor a reference implementation, refer to `frameworks/native`. For\nheaders, refer to:\n\n- [`system/core/include/system/graphics.h`](https://android.googlesource.com/platform/system/core/+/android16-release/libsystem/include/system/graphics.h)\n- [`system/core/include/system/graphics-base.h`](https://android.googlesource.com/platform/system/core/+/android16-release/libsystem/include/system/graphics-base.h)\n - `HAL_DATASPACE_*`\n - `HAL_COLOR_MODE_*`"]]