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.
Donanım soyutlama katmanı (HAL), donanım satıcılarının uygulayabileceği standart bir arayüze sahip bir soyutlama katmanı türüdür. HAL, donanım tedarikçilerinin daha üst düzey katmanlardaki kodu etkilemeden veya değiştirmeden daha alt düzeyde, cihaza özgü özellikleri uygulamasını sağlar.
Zorunlu şartlar
Belgenin bu bölümünde kullanılan terimlerin tanımlarını aşağıda bulabilirsiniz:
Android Arayüz Tanımlama Dili (AIDL)
Arayüzleri, kullanılan programlama dilinden bağımsız bir şekilde tanımlamak için kullanılan Java benzeri bir dil. AIDL, HAL istemcileri ile HAL hizmetleri arasında iletişime olanak tanır.
Bağlayıcı HAL
Bağlayıcı işlemler arası iletişim (IPC) çağrılarını kullanarak diğer işlemlerle iletişim kuran bir HAL. Bağlayıcılı HAL'ler, bunları kullanan istemciden ayrı bir işlemde çalışır.
Bağlayıcı HAL'ler, istemcilerin özelliklerine erişebilmesi için bir hizmet yöneticisine kaydedilir. Android 8 ve sonraki sürümler için yazılan HAL'ler bağlayıcıya bağlanır.
HAL istemcisi
HAL hizmetine erişen işlem.
HAL arayüzü
Hem HAL istemcisi hem de hizmeti tarafından iletişim kurmak için kullanılan ortak arayüz.
HAL hizmeti
Donanıma özgü kod (ör. belirli cihazınızın kamerasıyla iletişim kuran kod). Tedarikçi firma bölümünüzde hedeflediğiniz sürüm için uyumluluk matrisinde listelenen tüm gerekli HAL'leri uygulamanız gerekir.
Uyumluluk matrisleri hakkında daha fazla bilgi için Uyumluluk matrisleri başlıklı makaleyi inceleyin.
Donanımınızın benzersiz özelliklerini desteklemek için yeni bir HAL arayüzü oluşturabilir veya bir HAL arayüzünü genişletebilirsiniz.
Donanım Arayüzü Tanımlama Dili (HIDL)
Arayüzleri, kullanılan programlama dilinden bağımsız bir şekilde tanımlamak için kullanılan bir dil. HIDL, HAL istemcileri ile HAL hizmetleri arasında iletişimi sağlar.
Aynı Süreç (SS) HAL
Sınırlı sayıda sarmalanmış HAL. Grup üyeliği Google tarafından kontrol edilir. SP HAL'leri şunları içerir:
Kararlı C mapper 5 HAL
OpenGL
Vulkan
android.hidl.memory@1.0 (Android sistemi tarafından sağlanır, her zaman sarmalanır)
android.hardware.renderscript@1.0
Sarmalanmış HAL
Android 8'den önce oluşturulmuş ancak Android 8 ve sonraki sürümlerle çalışabilmesi için bir AIDL veya HIDL sarmalayıcısına yerleştirilmiş bir HAL hizmeti.
Sırada ne var?
HAL hizmetinin nasıl uygulanacağını öğrenmek için HAL'ler için AIDL başlıklı makaleyi 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,["# Hardware abstraction layer (HAL) overview\n\nA *hardware abstraction layer (HAL)* is type of abstraction layer with a\nstandard interface for hardware vendors to implement. A HAL allows hardware\nvendors to implement lower-level, device-specific features without affecting or\nmodifying code in higher-level layers.\n| **Note:** HALs existed before Android 8. However, Android 8 ensured each HAL had a standard interface. For an explanation of HAL architecture before Android 8, refer to [Legacy HALs](/docs/core/architecture/hal/archive).\n\nRequired terms\n--------------\n\nFollowing is a list of definitions for terms used in this section of\ndocumentation:\n\n*Android Interface Definition Language (AIDL)*\n: A Java-like language used to define interfaces in a way that is independent of\n the programming language being used. AIDL allows communication between\n HAL clients and HAL services.\n\n*Binderized HAL*\n: A HAL that communicates with other processes\n using\n [binder inter-process communication (IPC)](/docs/core/architecture/hidl/binder-ipc)\n calls. Binderized HALs run in a separate process from the client that uses them.\n Binderized HALs are registered with a service manager so that clients can\n access their capabilities. HALs written for Android 8 and higher are\n binderized.\n\n*HAL client*\n: The process that accesses the HAL service.\n\n*HAL interface*\n: The common interface used by both the HAL client and service to communicate.\n\n*HAL service*\n\n: The hardware-specific code, such as the code that talks to your specific\n device's camera. You must implement all required HALs listed in the\n compatibility matrix for the release you target in your vendor partition.\n For further information on compatibility matrixes, see\n [Compatibility matrixes](/docs/core/architecture/vintf/comp-matrices).\n\n You can also create a new HAL interface, or extend the interface of a HAL, to\n support your hardware's unique capabilities.\n\n*Hardware Interface Definition Language (HIDL)*\n\n: A language used to define interfaces in a way that is independent of the\n programming language being used. HIDL enables communication between\n HAL clients and HAL services.\n\n | **Note:** As of Android 13, HIDL has been deprecated. Instead of HIDL, you should use Android Interface Definition Language (AIDL) for HALs. HALs previously written using [HIDL](/docs/core/architecture/hidl) are supported.\n\n*Same Process (SP) HAL*\n\n: A restricted set of wrapped HALs. Membership in the set is controlled by\n Google. SP HALs include:\n\n - Stable C mapper 5 HAL\n - OpenGL\n - Vulkan\n - android.hidl.memory@1.0 (provided by the Android system, always wrapped)\n - android.hardware.renderscript@1.0\n\n | **Note:** Some HAL implementations wrap legacy interfaces, such as those in `libhardware`, in an AIDL or HIDL wrapper.\n\n*Wrapped HAL*\n\n: A HAL service that was created before Android 8, but has been wrapped in an\n AIDL or HIDL wrapper to work with Android 8 and higher.\n\nWhat's next?\n------------\n\n- To learn how to implement a HAL service, refer to [AIDL for HALs](/docs/core/architecture/aidl/aidl-hals).\n- To learn how to create or extend an existing HAL, refer to [Attached extended interfaces](/docs/core/architecture/aidl/aidl-hals#attached-extensions)."]]