文章目录
背景:
车载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 的镜像。
2177

被折叠的 条评论
为什么被折叠?



