Android按键控制音量流程

上一张图 直接表明这些相关的类作用
Android按键控制音量流程_第1张图片
AudioService.java 音频系统服务 音量调节 音量UI等控制流的具体实现
AudioSystem.java 音频控制的入口 是native层对上服务接口
AndioPolicyManager.cpp 策略管理者
AudioPolicyService.cpp 策略的具体实现

当按键按下音量加减时
AudioService.java

adjustSuggestedStreamVolume
adjustStreamVolume
setDeviceVolume
applyDeviceVolume_syncVSS
setStreamVolumeIndex

AudioSystem.java

setStreamVolumeIndexAS
setStreamVolumeIndex

AndioPolicyManager.cpp

setStreamVolumeIndex
setVolumeIndexForAttributes
onAudioVolumeGroupChanged

AudioPolicyService.cpp

onAudioVolumeGroupChanged
changeAudioVolumeGroupCommand
sendCommand
insertCommand_l

另一种实现方式 是直接JAVA层调用AudioManager

你可能感兴趣的:(深入Android框架)