android hal 音频分析,Android音频(8)——HAL分析

本文深入探讨了Android系统中的音频硬件抽象层(HAL)框架,包括tiny4412平台上的HAL模块构建,HAL如何向上层提供接口,以及音频HAL的调用流程。讲解了audio_hw_hal.cpp在audio(primary).so中的角色,音频设备的打开、输出流和输入流的打开过程,以及涉及到的结构体和类继承关系。同时提到了Android源码查看资源和tinyalsa库在音频控制中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HAL之框架

1. tiny4412上HAL框架

audio.primary.tiny4412.so文件的Makefile:

device/friendly-arm/common/libaudio/Android.mk

LOCAL_SRC_FILES:= AudioHardware.cppLOCAL_MODULE := audio.primary.$(TARGET_DEVICE) #TARGET_DEVICE就是tiny4412,生成audio.primary.tiny4412.so,其中primary是在 /system/etc/audio_policy.conf中指定的module的名字。

LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw

LOCAL_STATIC_LIBRARIES:=libmedia_helper

LOCAL_SHARED_LIBRARIES:=\

libutils \

liblog \

libhardware_legacy \ # 依赖这个库

libtinyalsa \ # 依赖这个库

libaudioutils

LOCAL_WHOLE_STATIC_LIBRARIES := libaudiohw_legacy

libaudiohw_legacy依赖文件:

hardware/libhardware_legacy/audio/Android.mk

LOCAL_SRC_FILES :=\

AudioHardwareInterface.cpp\

audio_hw_hal.cpp# 4412的5.0版Android上是这个HAL,其它的可不一定了

LOCAL_MODULE :=libaudiohw_legacy

LOCAL_MODULE_TAGS :=optional

LOCAL_STAT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值