audio干货分享:车载audio开发必知必会的调试命令

背景:

车载Audio其实本质上就是在原来手机那一套audio基础上额外进行了扩展,如扩展了CarAudioService,所以在做车载音频子系统开发调试时候不仅仅需要使用手机音频开发调试命令如:dumpsys media.audio_flinger, dumpsys media.audio_policy, dumpsys audio等命令,还需要使用针对车机音频独享的一些音频调试命令也非常的重要,下面重点将介绍车机音频调试常用的一些命令。
在这里插入图片描述

车载音频相关命令调试输出学习

手机和车机公共音频调试命令

dumpsys media.audio_flinger

media.audio_flinger 是 Android 音频系统中负责音频数据处理和播放的核心服务之一。通过 dumpsys media.audio_flinger 命令,开发者可以获取关于音频播放、混音以及音频硬件交互等多方面的详细信息,这对于深入分析音频问题至关重要。
在这里插入图片描述

dumpsys media.audio_policy

media.audio_policy 服务主要负责管理音频策略,包括音频设备的选择、音频路由以及音频流策略的制定。dumpsys media.audio_policy 命令能够提供与音频策略相关的详细信息,帮助开发者理解和调试音频在不同场景下的行为。

在这里插入图片描述

dumpsys audio

dumpsys audio 命令提供了一个更综合、全面的音频系统信息视图,涵盖了音频服务、设备状态、音量设置等多个方面,是音频调试中常用的基础命令。
在这里插入图片描述

车机独享的命令部分

dumpsys car_service

命令介绍:
该命令主要用于与 Android 车载系统中的 car_service 进行交互,获取各类车载相关的信息,执行模拟操作,辅助开发者、测试人员对车载系统进行调试、优化以及故障排查。
在这里插入图片描述这个直接使用dumpsys car_service命令是输出车机相关的所有调试信息,所以信息量会非常巨大,如果只是对车载某个模块感兴趣完全可以只输出过滤某个模块就可以。

dumpsys car_service --list

使用 dumpsys car_service --list列出支持的各个子服务名字:

dumpsys car_service --list

执行后展示如下:

com.android.car.oem.CarOemProxyService
com.android.car.hal.VehicleHal
com.android.car.CarFeatureController
com.android.car.CarPropertyService
com.android.car.CarDrivingStateService
com.android.car.CarOccupantZoneService
com.android.car.CarUxRestrictionsManagerService
com.android.car.am.CarActivityService
com.android.car.pm.CarPackageManagerService
com.android.car.user.CarUserService
com.android.car.SystemActivityMonitoringService
com.android.car.power.CarPowerManagementService
com.android.car.user.CarUserNoticeService
com.android.car.CarPerUserServiceHelper
com.android.car.bluetooth.CarBluetoothService
com.android.car.CarInputService
com.android.car.CarProjectionService
com.android.car.garagemode.GarageModeService
com.android.car.AppFocusService
com.android.car.audio.CarAudioService
com.android.car.CarNightService
com.android.car.am.FixedActivityService
com.android.car.cluster.ClusterNavigationService
com.android.car.stats.CarStatsService
com.android.car.vms.VmsBrokerService
com.android.car.CarDiagnosticService
com.android.car.CarStorageMonitoringService
com.android.car.CarLocationService
com.android.car.CarMediaService
com.android.car.CarBugreportManagerService
com.android.car.watchdog.CarWatchdogService
com.android.car.os.CarPerformanceService
com.android.car.admin.CarDevicePolicyService
com.android.car.cluster.ClusterHomeService
com.android.car.evs.CarEvsService
com.android.car.telemetry.CarTelemetryService
com.android.car.wifi.CarWifiService
com.android.car.occupantconnection.CarRemoteDeviceService
com.android.car.occupantconnection.CarOccupantConnectionService
com.android.car.CarExperimentalFeatureServiceController

只输出某个模块的dump,可以用dumpsys car_service --services xxx服务,注意这里的xx服务一般只需要后面的名字,不需要完整的类名路径,比如com.android.car.audio.CarAudioService,就只需要CarAudioService。

dumpsys car_service --services CarAudioService

比如我们感兴趣是CarAudioService,那么就可以只展示这一部分输出,可以使用如下命令:

dumpsys car_service --services CarAudioService

在这里插入图片描述

控制操作车载音频相关命令:

如果有一些需求是需要主动改变audio一些特性情况,就需要相关的audio控制命令,那么主要使用下面命令进行控制:

adb shell cmd car_service xxx 
adb shell dumpsys car_service  xxx

两个命令是等效的,如果不知道具体dumpsys car_service有哪些可以控制操作的命令,那么可以后面加上-h参数。

帮助命令:

adb shell dumpsys car_service  -h

命令输出详情

test@test:~/disk_2T/aosp16$ adb shell dumpsys car_service  -h
//省略其他
	set-audio-zone-for-uid [zoneid] [uid]
	  Maps the audio zoneid to uid.
	reset-selected-volume-context
	  Resets the last selected volume context for volume changes.
	set-mute-car-volume-group [zoneId] [groupId] [mute\unmute]
	  mute\unmute groupId in zoneId
	set-group-volume [zoneId] [groupId] [volume]
	  sets the group volume for [groupId] in [zoneId] to %volume,
	  [volume] must be an integer between 0 to 100
	set-audio-mirror [zoneId1] [zoneId2]
	  sets audio mirror for zones [zoneId1] and [zoneId2],
	  [zoneId#] must be a valid zone id 
	unset-audio-mirror [value] [--requestId]
	  unsets audio mirror for zone [value],
	  [value] must be a valid zone id
	  use --requestId to disable a request id instead
	

//省略其他

主要介绍一下音频管理的相关命令

set-audio-zone-for-uid [zoneid] [uid]:将音频区域 ID 映射到用户 ID。

set-mute-car-volume-group [zoneId] [groupId] [mute|unmute]:在指定区域 ID 中静音或取消静音指定的音量组。

set-group-volume [zoneId] [groupId] [volume]:设置指定区域 ID 中指定音量组的音量(0 - 100)。

set-audio-mirror [zoneId1] [zoneId2]:设置两个音频区域之间的音频镜像。

unset-audio-mirror [value] [–requestId]:取消指定音频区域的音频镜像,可通过–requestId禁用指定请求 ID 的镜像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值