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.
Ses
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android'in ses donanım soyutlama katmanı (HAL), android.media içindeki üst düzey, sese özel çerçeve API'lerini temel ses sürücüsüne ve donanıma bağlar. Bu bölümde, uygulama talimatları ve performansı iyileştirmeyle ilgili ipuçları yer alır.
Android ses mimarisi, ses işlevinin nasıl uygulandığını tanımlar ve uygulamayla ilgili kaynak kodu gösterir.
Şekil 1. Android ses mimarisi
-
Uygulama çerçevesi
-
Uygulama çerçevesi, ses donanımıyla etkileşim kurmak için android.media API'lerini kullanan uygulama kodunu içerir. Bu kod, ses donanımıyla etkileşime geçen yerel koda erişmek için dahili olarak ilgili JNI yapıştırıcı sınıflarını çağırır.
-
JNI
-
android.media ile ilişkili JNI kodu, ses donanımına erişmek için alt düzey yerel kodu çağırır. JNI,
frameworks/base/core/jni/
ve frameworks/base/media/jni
'te bulunur.
-
Yerel çerçeve
-
Yerel çerçeve, medya sunucusunun sese özgü hizmetlerine erişmek için Binder IPC proxy'lerini çağırarak android.media paketine eşdeğer bir yerel çerçeve sağlar.
Yerel çerçeve kodu
frameworks/av/media/libmedia
adresinde bulunur.
-
Cilt IPC
-
Binder IPC proxy'leri, işlem sınırları üzerinden iletişimi kolaylaştırır. Proxy'ler
frameworks/av/media/libmedia
konumundadır ve "I" harfi ile başlar.
-
Medya sunucusu
-
Medya sunucusu, HAL uygulamalarınızla etkileşime geçen gerçek kod olan ses hizmetlerini içerir. Medya sunucusu
frameworks/av/services/audioflinger
adresinde bulunuyor.
-
HAL
-
HAL, ses hizmetlerinin çağırdığı ve ses donanımınızın düzgün çalışması için uygulamanız gereken standart arayüzü tanımlar. Daha fazla bilgi için ses HAL arayüzüne ve ilgili HAL sürüm dizininin
*.hal
dosyalarındaki yorumlara bakın.
-
Çekirdek sürücüsü
-
Ses sürücüsü, donanımınız ve HAL uygulamanızla etkileşim kurar. Gelişmiş Linux Ses Mimarisi (ALSA), Açık Ses Sistemi (OSS) veya özel bir sürücü kullanabilirsiniz (HAL, sürücüye bağımlı değildir).
Not: ALSA kullanıyorsanız uyumlu lisanslaması nedeniyle sürücünün kullanıcı bölümü için external/tinyalsa
kullanmanızı öneririz (standart kullanıcı modu kitaplığı GPL lisanslıdır).
-
Open SL ES'e dayalı Android doğal sesi (gösterilmiyor)
-
Bu API, Android NDK'nın bir parçası olarak kullanıma sunulur ve android.media ile aynı mimari düzeyindedir.
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,["# Audio\n\nAndroid's audio Hardware Abstraction Layer (HAL) connects the higher-level,\naudio-specific framework APIs in [android.media](http://developer.android.com/reference/android/media/package-summary.html) to the underlying audio driver and\nhardware. This section includes implementation instructions and tips for\nimproving performance.\n\n\nAndroid audio architecture defines how audio functionality is implemented and\npoints to the relevant source code involved in the implementation.\n\n\n**Figure 1.** Android audio architecture\n\n\nApplication framework\n:\n The application framework includes the app code, which uses the [android.media](http://developer.android.com/reference/android/media/package-summary.html) APIs to\n interact with audio hardware. Internally, this code calls corresponding JNI glue\n classes to access the native code that interacts with audio hardware.\n\n\nJNI\n:\n The JNI code associated with [android.media](http://developer.android.com/reference/android/media/package-summary.html) calls lower level native code to access audio\n hardware. JNI is located in `frameworks/base/core/jni/` and\n `frameworks/base/media/jni`.\n\n\nNative framework\n:\n The native framework provides a native equivalent to the [android.media](http://developer.android.com/reference/android/media/package-summary.html) package, calling\n Binder IPC proxies to access the audio-specific services of the media server.\n Native framework code is located in `frameworks/av/media/libmedia`.\n\n\nBinder IPC\n:\n Binder IPC proxies facilitate communication over process boundaries. Proxies are\n located in `frameworks/av/media/libmedia` and begin with the letter\n \"I\".\n\n\nMedia server\n:\n The media server contains audio services, which are the actual code that\n interacts with your HAL implementations. The media server is located in\n `frameworks/av/services/audioflinger`.\n\n\nHAL\n:\n The HAL defines the standard interface that audio services call into and that\n you must implement for your audio hardware to function correctly. For more details, refer to the [audio HAL\n interface](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/audio/) and comments in the `*.hal` files of the corresponding HAL version directory.\n\n\nKernel driver\n\n: The audio driver interacts with your hardware and HAL implementation. You can use Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), or a custom driver (HAL is driver-agnostic). **Note** : If you use ALSA, we recommend\n `external/tinyalsa` for the user portion of the driver because of its\n compatible licensing (the standard user-mode library is GPL-licensed).\n\n\nAndroid native audio based on Open SL ES *(not shown)*\n:\n This API is exposed as part of\n [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html)\n and is at the same architecture level as\n [android.media](http://developer.android.com/reference/android/media/package-summary.html)."]]