Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Âm thanh

Biểu tượng Android Audio HAL

Lớp trừu tượng phần cứng âm thanh (HAL) của Android kết nối các API khung cấp cao hơn dành riêng cho âm thanh trong android.media với phần cứng và trình điều khiển âm thanh bên dưới. Phần này bao gồm hướng dẫn triển khai và mẹo để cải thiện hiệu suất.

Kiến trúc âm thanh Android xác định cách chức năng âm thanh được triển khai và trỏ đến mã nguồn liên quan có liên quan đến việc triển khai.

Kiến trúc âm thanh

Hình 1. Kiến trúc âm thanh Android

Khung ứng dụng
Khung ứng dụng bao gồm mã ứng dụng, sử dụng các API android.media để tương tác với phần cứng âm thanh. Bên trong, mã này gọi các lớp keo JNI tương ứng để truy cập mã gốc tương tác với phần cứng âm thanh.
JNI
Mã JNI được liên kết với android.media gọi mã gốc cấp thấp hơn để truy cập phần cứng âm thanh. JNI nằm trong frameworks/base/core/jni/frameworks/base/media/jni .
Khung bản địa
Khung gốc cung cấp một bản gốc tương đương với gói android.media , gọi proxy IPC của Binder để truy cập các dịch vụ dành riêng cho âm thanh của máy chủ phương tiện. Mã khuôn khổ gốc nằm trong frameworks/av/media/libmedia .
Binder IPC
Các proxy IPC liên kết tạo điều kiện giao tiếp qua các ranh giới quy trình. Các proxy được đặt trong frameworks/av/media/libmedia và bắt đầu bằng chữ cái "I".
Máy chủ phương tiện
Máy chủ phương tiện chứa các dịch vụ âm thanh, là mã thực tương tác với các triển khai HAL của bạn. Máy chủ phương tiện được đặt trong frameworks/av/services/audioflinger .
HAL
HAL xác định giao diện chuẩn mà các dịch vụ âm thanh gọi vào và bạn phải triển khai để phần cứng âm thanh của mình hoạt động bình thường. Các giao diện HAL âm thanh nằm trong hardware/libhardware/include/hardware . Để biết chi tiết, hãy xem audio.h .
Trình điều khiển nhân
Trình điều khiển âm thanh tương tác với phần cứng của bạn và triển khai HAL. Bạn có thể sử dụng Kiến trúc âm thanh nâng cao của Linux (ALSA), Hệ thống âm thanh mở (OSS) hoặc trình điều khiển tùy chỉnh (HAL là trình điều khiển bất khả tri).

Lưu ý : Nếu bạn sử dụng ALSA, chúng tôi khuyên bạn nên dùng external/tinyalsa cho phần người dùng của trình điều khiển vì giấy phép tương thích của nó (thư viện chế độ người dùng tiêu chuẩn được cấp phép GPL).

Âm thanh gốc Android dựa trên Open SL ES (không hiển thị)
API này được hiển thị như một phần của Android NDK và có cùng cấp kiến ​​trúc với android.media .