
Android'in ses Donanım Soyutlama Katmanı (HAL), android.media'daki üst düzey, sese özel çerçeve API'lerini temel ses sürücüsüne ve donanımına bağlar. Bu bölüm, performansı artırmaya yönelik uygulama yönergelerini ve ipuçlarını içerir.
Android ses mimarisi, ses işlevselliğinin nasıl uygulandığını tanımlar ve uygulamada yer alan ilgili kaynak koduna işaret eder.

Ş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. Dahili olarak, bu kod, ses donanımıyla etkileşime giren yerel koda erişmek için karşılık gelen 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 daha düşük seviyeli yerel kodu çağırır. JNI,
frameworks/base/core/jni/
veframeworks/base/media/jni
içinde bulunur. - Yerel çerçeve
- Yerel çerçeve, medya sunucusunun sese özel hizmetlerine erişmek için Binder IPC proxy'lerini çağırarak android.media paketine yerel bir eşdeğer sağlar. Yerel çerçeve kodu,
frameworks/av/media/libmedia
. - bağlayıcı IPC
- Binder IPC proxy'leri, süreç sınırları üzerinden iletişimi kolaylaştırır. Proxy'ler
frameworks/av/media/libmedia
ve "I" harfiyle başlar. - Medya sunucusu
- Medya sunucusu, HAL uygulamalarınızla etkileşime giren gerçek kod olan ses hizmetlerini içerir. Medya sunucusu,
frameworks/av/services/audioflinger
. - HAL
- HAL, ses hizmetlerinin çağırdığı ve ses donanımınızın doğru çalışması için uygulamanız gereken standart arabirimi tanımlar. Daha fazla ayrıntı için, ilgili HAL sürüm dizininin
*.hal
dosyalarındaki ses HAL arabirimine ve açıklamalara bakın. - çekirdek sürücüsü
- Ses sürücüsü, donanımınız ve HAL uygulamanızla etkileşime girer. Gelişmiş Linux Ses Mimarisi (ALSA), Açık Ses Sistemi (OSS) veya özel bir sürücü (HAL sürücüden bağımsızdır) kullanabilirsiniz.
Not : ALSA kullanıyorsanız, uyumlu lisanslaması nedeniyle sürücünün kullanıcı kısmı için
external/tinyalsa
öneririz (standart kullanıcı modu kitaplığı GPL lisanslıdır). - Open SL ES'ye dayalı Android yerel sesi (gösterilmiyor)
- Bu API, Android NDK'nın bir parçası olarak sunulur ve android.media ile aynı mimari düzeyindedir.