Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Audio

Ikon Android Audio HAL

Hardware Abstraction Layer (HAL) audio Android menghubungkan API framework khusus audio dengan level yang lebih tinggi di android.media ke driver audio dan perangkat keras yang mendasarinya. Bagian ini mencakup petunjuk dan tip implementasi untuk meningkatkan kinerja.

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

Arsitektur audio

Gambar 1. Arsitektur audio Android

Kerangka aplikasi
Kerangka aplikasi menyertakan kode aplikasi, yang menggunakan API android.media untuk berinteraksi dengan perangkat keras audio. Secara internal, kode ini memanggil kelas lem JNI yang sesuai untuk mengakses kode asli yang berinteraksi dengan perangkat keras audio.
JNI
Kode JNI yang terkait dengan android.media memanggil kode native tingkat bawah untuk mengakses hardware audio. JNI terletak dalam frameworks/base/core/jni/ dan frameworks/base/media/jni .
Kerangka asli
Framework native menyediakan native yang setara dengan paket android.media , memanggil proxy Binder IPC untuk mengakses layanan khusus audio dari server media. Kode framework asli terletak di frameworks/av/media/libmedia .
Binder IPC
Proksi Binder IPC memfasilitasi komunikasi melewati batas-batas proses. Proksi terletak di frameworks/av/media/libmedia dan dimulai dengan huruf "I".
Server media
Server media berisi layanan audio, yang merupakan kode sebenarnya 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 implementasikan agar perangkat keras audio Anda berfungsi dengan benar. Untuk detail selengkapnya, lihat antarmuka audio HAL dan komentar di file *.hal dari direktori versi HAL yang sesuai.
Driver kernel
Driver audio berinteraksi dengan perangkat keras dan implementasi HAL Anda. Anda dapat menggunakan Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), atau driver khusus (HAL adalah driver-agnostik).

Catatan : Jika Anda menggunakan ALSA, kami merekomendasikan external/tinyalsa untuk bagian pengguna driver karena lisensinya yang kompatibel (pustaka 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 level arsitektur yang sama dengan android.media .