audio

Ikon Android Audio HAL

Hardware Abstraction Layer (HAL) audio Android menghubungkan API kerangka kerja audio-spesifik tingkat yang lebih tinggi di android.media ke driver audio dan perangkat keras yang mendasarinya. Bagian ini mencakup petunjuk implementasi dan tip untuk meningkatkan kinerja.

Arsitektur audio Android mendefinisikan bagaimana fungsionalitas audio diimplementasikan dan menunjuk ke kode sumber yang relevan yang terlibat dalam implementasi.

Arsitektur audio

Gambar 1. Arsitektur audio Android

Kerangka aplikasi
Kerangka kerja aplikasi menyertakan kode aplikasi, yang menggunakan API android.media untuk berinteraksi dengan perangkat keras audio. Secara internal, kode ini memanggil kelas glue JNI yang sesuai untuk mengakses kode asli yang berinteraksi dengan perangkat keras audio.
JNI
Kode JNI yang terkait dengan android.media memanggil kode asli tingkat yang lebih rendah untuk mengakses perangkat keras audio. JNI terletak di frameworks/base/core/jni/ dan frameworks/base/media/jni .
Kerangka kerja asli
Kerangka kerja asli menyediakan asli yang setara dengan paket android.media , memanggil proxy Binder IPC untuk mengakses layanan khusus audio dari server media. Kode kerangka kerja asli terletak di frameworks/av/media/libmedia .
IPC pengikat
Proksi Binder IPC memfasilitasi komunikasi melewati batas proses. Proxy terletak di frameworks/av/media/libmedia dan dimulai dengan huruf "I".
Server media
Server media berisi layanan audio, yang merupakan kode aktual yang berinteraksi dengan implementasi HAL Anda. Server media terletak di frameworks/av/services/audioflinger .
HAL
HAL mendefinisikan antarmuka standar yang dipanggil oleh layanan audio dan yang harus Anda terapkan agar perangkat keras audio Anda berfungsi dengan benar. Untuk detail lebih lanjut, lihat antarmuka audio HAL dan komentar di file *.hal dari direktori versi HAL yang sesuai.
Pengemudi kernel
Driver audio berinteraksi dengan perangkat keras Anda dan implementasi HAL. Anda dapat menggunakan Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), atau custom driver (HAL adalah driver-agnostic).

Catatan : Jika Anda menggunakan ALSA, kami merekomendasikan external/tinyalsa untuk porsi pengguna driver karena lisensinya yang kompatibel (library mode pengguna standar berlisensi GPL).

Audio asli Android berdasarkan Open SL ES (tidak ditampilkan)
API ini diekspos sebagai bagian dari Android NDK dan berada pada tingkat arsitektur yang sama dengan android.media .