当前位置: 首页 > news >正文

安卓音频之dumpsys audio

目录

概述

详述 dumpsys audio

1、音频服务生命周期的事件日志

2、音频焦点事件日志

3、音频流音量信息 

4、音量组和设备的相关信息

5、铃声模式

6、音频路由

7、其他状态信息

8、播放活动监控信息

9、录音活动记录

10、AudioDeviceBroker 的记录

11、音效(SoundEffects)信息

12、音频事件日志 - 通话状态 

13、音频事件日志 - 蓝牙

14、音频事件日志 - 用户指定设备记录

15、音频事件日志 - 音量变量记录


概述

除了音频日志,当前的音频状态。 音量,通话模式,可用音频设备,以及音频设置历史等都在AudioService中。而混音状态是在AudioFlinger中。 在音频问题定位中,这些信息是很有必要的。

详述 dumpsys audio

1、音频服务生命周期的事件日志

udio event log: audio services lifecycle
11-07 09:27:41:377 AudioService()
11-07 09:39:41:773 onAudioServerDied() audioserver died
11-07 09:39:42:274 onAudioServerDied() audioserver started
11-07 09:39:43:123 after audioserver restart: initStreamVolume succeeded
11-07 09:45:52:654 onAudioServerDied() audioserver died
11-07 09:45:53:156 onAudioServerDied() audioserver started
11-07 09:45:53:960 after audioserver restart: initStreamVolume succeeded
11-07 09:59:36:019 onAudioServerDied() audioserver died
11-07 09:59:36:521 onAudioServerDied() audioserver started
11-07 09:59:37:160 after audioserver restart: initStreamVolume succeeded

根据音频服务生命周期的事件日志,以下是记录的音频服务活动:

- 11-07 09:27:41:377:AudioService() 被调用

- 11-07 09:39:41:773:onAudioServerDied() 音频服务器关闭

- 11-07 09:39:42:274:onAudioServerDied() 音频服务器重新启动

- 11-07 09:39:43:123:音频服务器重新启动后:initStreamVolume 成功

- 11-07 09:45:52:654:onAudioServerDied() 音频服务器关闭

- 11-07 09:45:53:156:onAudioServerDied() 音频服务器重新启动

- 11-07 09:45:53:960:音频服务器重新启动后:initStreamVolume 成功

- 11-07 09:59:36:019:onAudioServerDied() 音频服务器关闭

- 11-07 09:59:36:521:onAudioServerDied() 音频服务器重新启动

- 11-07 09:59:37:160:音频服务器重新启动后:initStreamVolume 成功

2、音频焦点事件日志

Message handler (watch for unhandled messages):Handler (com.android.server.audio.AudioService$AudioHandler) {6bd4ea7} @ 3315769Looper (AudioService, tid 90) {8bb8f54}(Total messages: 0, polling=true, quitting=false)MediaFocusControl dump time: 上午10:22:45Audio Focus stack entries (last is top of stack):source:android.os.BinderProxy@c7fcefd -- pack: com.ctg.itrdc.clouddesk -- client: android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 -- gain: GAIN -- flags:  -- loss: none -- notified: true -- uid: 10094 -- attr: AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x800 tags= bundle=null -- sdk:30No external focus policyNotify on duck:  trueIn ring or call: falseAudio event log: focus commands as seen by MediaFocusControl
11-07 09:28:14:181 requestAudioFocus() from uid/pid 10094/1918 clientId=android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 callingPack=com.ctg.itrdc.clouddesk req=1 flags=0x0 sdk=30
Multi Audio Focus enabled :false

根据音频焦点事件日志,以下是记录的音频焦点相关活动:

  • 最后的音频焦点堆栈条目:source:android.os.BinderProxy@c7fcefd – pack: com.ctg.itrdc.clouddesk – client: android.media.AudioManager@9d8338dcom.iiordanov.clink.audio.i@cd11942 – gain: GAIN – flags: – loss: none – notified: true – uid: 10094 – attr: AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x800 tags= bundle=null – sdk:30

  • 外部焦点策略:无

  • 响应"duck"通知:是

  • 在振铃或通话中:否

  • Multi Audio Focus 是否启用:否

3、音频流音量信息 

Stream volumes (device: index)
- STREAM_VOICE_CALL:Muted: falseMuted Internally: falseMin: 1Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 11, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 11Devices: speaker
- STREAM_SYSTEM:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_RING:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_MUSIC:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ALARM:Muted: falseMuted Internally: falseMin: 1Max: 7streamVolume:6Current: 40000000 (default): 6Devices: speaker
- STREAM_NOTIFICATION:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_BLUETOOTH_SCO:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 20 (bt_sco_hs): 7, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 7Devices: speaker
- STREAM_SYSTEM_ENFORCED:Muted: falseMuted Internally: falseMin: 0Max: 7streamVolume:7Current: 2 (speaker): 7, 40000000 (default): 5Devices: speaker
- STREAM_DTMF:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_TTS:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ACCESSIBILITY:Muted: falseMuted Internally: falseMin: 1Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- STREAM_ASSISTANT:Muted: falseMuted Internally: falseMin: 0Max: 15streamVolume:15Current: 2 (speaker): 15, 4 (headset): 15, 20 (bt_sco_hs): 15, 80 (bt_a2dp): 15, 4000000 (usb_headset): 9, 40000000 (default): 15Devices: speaker
- mute affected streams = 0x6f

以下是不同音频流的设置:

- STREAM_VOICE_CALL(通话音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:1

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):11,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):11

  - 设备:扬声器

- STREAM_SYSTEM(系统音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:7

  - 流音量:7

  - 当前活动设备音量:2(扬声器):7,40000000(默认):5

  - 设备:扬声器

- STREAM_RING(铃声音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:7

  - 流音量:7

  - 当前活动设备音量:2(扬声器):7,40000000(默认):5

  - 设备:扬声器

- STREAM_MUSIC(音乐音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15

  - 设备:扬声器

- STREAM_ALARM(闹钟音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:1

  - 最大音量:7

  - 流音量:6

  - 当前活动设备音量:40000000(默认):6

  - 设备:扬声器

- STREAM_NOTIFICATION(通知音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:7

  - 流音量:7

  - 当前活动设备音量:2(扬声器):7,40000000(默认):5

  - 设备:扬声器

- STREAM_BLUETOOTH_SCO(蓝牙SCO音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,20(蓝牙SCO耳机):7,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):7

  - 设备:扬声器

- STREAM_SYSTEM_ENFORCED(强制系统音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:7

  - 流音量:7

  - 当前活动设备音量:2(扬声器):7,40000000(默认):5

  - 设备:扬声器

- STREAM_DTMF(DTMF音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15

  - 设备:扬声器

- STREAM_TTS(文本转语音音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15

  - 设备:扬声器

- STREAM_ACCESSIBILITY(辅助功能音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:1

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15

  - 设备:扬声器

- STREAM_ASSISTANT(助手音频流):

  - 静音:否

  - 内部静音:否

  - 最小音量:0

  - 最大音量:15

  - 流音量:15

  - 当前活动设备音量:2(扬声器):15,4(耳机):15,20(蓝牙SCO耳机):15,80(蓝牙A2DP):15,4000000(USB耳机):9,40000000(默认):15

  - 设备:扬声器

- 受静音影响的音频流:0x6f

4、音量组和设备的相关信息

Volume Groups (device: index)
- VOLUME GROUP AUDIO_STREAM_ACCESSIBILITY:Min: 1Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ALARM:Min: 1Max: 7Current: 40000000 (default): 6Devices: speaker
- VOLUME GROUP AUDIO_STREAM_DTMF:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ENFORCED_AUDIBLE:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_MUSIC:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_NOTIFICATION:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_REROUTING:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_RING:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_SYSTEM:Min: 0Max: 7Current: 40000000 (default): 5Devices: speaker
- VOLUME GROUP AUDIO_STREAM_VOICE_CALL:Min: 1Max: 15Current: 40000000 (default): 11Devices: speaker
- VOLUME GROUP AUDIO_STREAM_ASSISTANT:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker
- VOLUME GROUP AUDIO_STREAM_CALL_ASSISTANT:Min: 0Max: 15Current: 40000000 (default): 15Devices: speaker

音量组和设备的相关信息如下:

- 音频流 ACCESSIBILITY(辅助功能音频流):

  - 最小音量:1

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

- 音频流 ALARM(闹钟音频流):

  - 最小音量:1

  - 最大音量:7

  - 当前音量:40000000(默认):6

  - 设备:扬声器

- 音频流 DTMF(DTMF音频流):

  - 最小音量:0

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

- 音频流 ENFORCED_AUDIBLE(强制可听音频流):

  - 最小音量:0

  - 最大音量:7

  - 当前音量:40000000(默认):5

  - 设备:扬声器

- 音频流 MUSIC(音乐音频流):

  - 最小音量:0

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

- 音频流 NOTIFICATION(通知音频流):

  - 最小音量:0

  - 最大音量:7

  - 当前音量:40000000(默认):5

  - 设备:扬声器

- 音频流 REROUTING(重定向音频流):

  - 最小音量:0

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

- 音频流 RING(铃声音频流):

  - 最小音量:0

  - 最大音量:7

  - 当前音量:40000000(默认):5

  - 设备:扬声器

- 音频流 SYSTEM(系统音频流):

  - 最小音量:0

  - 最大音量:7

  - 当前音量:40000000(默认):5

  - 设备:扬声器

- 音频流 VOICE_CALL(通话音频流):

  - 最小音量:1

  - 最大音量:15

  - 当前音量:40000000(默认):11

  - 设备:扬声器

- 音频流 ASSISTANT(助手音频流):

  - 最小音量:0

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

- 音频流 CALL_ASSISTANT(通话助手音频流):

  - 最小音量:0

  - 最大音量:15

  - 当前音量:40000000(默认):15

  - 设备:扬声器

5、铃声模式

Ringer mode:
- mode (internal) = NORMAL
- mode (external) = NORMAL
- zen mode:ZEN_MODE_OFF
- ringer mode affected streams = 0x1a6 (STREAM_SYSTEM,STREAM_RING,STREAM_NOTIFICATION,STREAM_SYSTEM_ENFORCED,STREAM_DTMF)
- ringer mode muted streams = 0x0
- delegate = ZenModeHelper

铃声模式的相关信息如下:

- 内部铃声模式:NORMAL(正常模式)

- 外部铃声模式:NORMAL(正常模式)

- 免打扰模式(Zen Mode):ZEN_MODE_OFF(关闭免打扰模式)

- 受铃声模式影响的音频流:0x1a6(STREAM_SYSTEM、STREAM_RING、STREAM_NOTIFICATION、STREAM_SYSTEM_ENFORCED、STREAM_DTMF)

- 静音的音频流:0x0(没有音频流被静音)

- 铃声模式委托:ZenModeHelper

Zen Mode(免打扰模式)是一种在 Android 设备上提供静音和通知管理功能的特殊模式。它旨在帮助用户在特定情况下专注、放松或避免打扰。以下是 Zen Mode 的成员和功能:

Automatic rules(自动规则):Zen Mode 允许用户创建自动规则,根据时间、地点或事件来自动启用或禁用免打扰模式。例如,在特定时间段(如晚上)自动开启静音模式,或者在某个地点(如办公室)开启勿扰模式。

Notifications management(通知管理):Zen Mode 允许用户定义哪些通知可以在免打扰模式下显示,哪些通知应被完全屏蔽。用户可以自定义允许显示的应用程序和通知类型,以便只接收重要的通知。

Downtime(静默时段):Zen Mode 允许用户设置静默时段,即指定一段时期内设备完全静音并屏蔽所有通知。这可以帮助用户保持专注,如在睡眠期间或进行重要任务时。

Event-driven mode(事件驱动模式):Zen Mode 还可以根据特定的事件触发免打扰模式。例如,在与指定联系人进行通话时自动进入勿扰模式,以确保不被其他通知干扰。

Zen Mode 旨在为用户提供更好的通知和声音管理体验,帮助用户在需要时获得更好的专注和放松。用户可以根据自己的需求和偏好进行个性化配置。

6、音频路由

Audio routes:mMainType=0x0mBluetoothName=null

音频路由指的是音频信号从源设备传输到输出设备的路径。根据提供的信息,这里有两个关键的属性:

mMainType=0x0:这表示主要的音频路由类型为 0x0。

mBluetoothName=null:这表示蓝牙设备的名称为空,即没有连接任何蓝牙设备。

7、其他状态信息

Other state:mVolumeController=VolumeController(android.os.BinderProxy@260eb89,mVisible=false)mSafeMediaVolumeState=SAFE_MEDIA_VOLUME_DISABLEDmSafeMediaVolumeIndex=100mSafeUsbMediaVolumeIndex=30mSafeUsbMediaVolumeDbfs=-37.0sIndependentA11yVolume=falsemPendingVolumeCommand=nullmMusicActiveMs=0mMcc=0mCameraSoundForced=falsemHasVibrator=falsemVolumePolicy=VolumePolicy[volumeDownToEnterSilent=false,volumeUpToExitSilent=false,doNotDisturbWhenSilent=false,vibrateToSilentDebounce=400]mAvrcpAbsVolSupported=truemIsSingleVolume=falsemUseFixedVolume=falsemFixedVolumeDevices=0x1000,0x800,0x200000,0x40000,0x80000mExtVolumeController=nullmHdmiCecSink=falsemHdmiAudioSystemClient=nullmHdmiPlaybackClient=nullmHdmiTvClient=nullmHdmiSystemAudioSupported=falsemHdmiCecVolumeControlEnabled=falsemIsCallScreeningModeSupported=falsemic mute FromSwitch=false FromRestrictions=false FromApi=false from system=false
Audio policies:
Audio event log: dynamic policy events (logged when command received by AudioService)

提供的其他状态信息如下:

1. mVolumeController:音量控制器对象,用于管理音量控制。具体的实现是 VolumeController(android.os.BinderProxy@260eb89),该控制器当前不可见(mVisible=false)。

2. mSafeMediaVolumeState:安全媒体音量状态为SAFE_MEDIA_VOLUME_DISABLED,即安全媒体音量功能已禁用。

3. mSafeMediaVolumeIndex:安全媒体音量索引为100。

4. mSafeUsbMediaVolumeIndex:安全 USB 媒体音量索引为30。

5. mSafeUsbMediaVolumeDbfs:安全 USB 媒体音量的 dBFS 值为-37.0。

6. sIndependentA11yVolume:独立的无障碍音量设置为false。

7. mPendingVolumeCommand:待处理的音量命令为null,即当前没有等待处理的音量命令。

8. mMusicActiveMs:音乐活跃时间为0,表示当前没有正在播放的音乐。

9. mMcc:MCC(Mobile Country Code)为0。

10. mCameraSoundForced:相机声音被强制开启为false。

11. mHasVibrator:设备是否具有震动器为false,表示设备没有震动功能。

12. mVolumePolicy:音量策略为VolumePolicy[volumeDownToEnterSilent=false,volumeUpToExitSilent=false,doNotDisturbWhenSilent=false,vibrateToSilentDebounce=400],根据该策略进行音量调节的行为。

13. mAvrcpAbsVolSupported:支持 AVRCP 绝对音量为true。

14. mIsSingleVolume:是否使用单一音量模式为false,表示没有激活单一音量模式。

15. mUseFixedVolume:是否使用固定音量为false,表示没有启用固定音量。

16. mFixedVolumeDevices:固定音量设备为0x1000,0x800,0x200000,0x40000,0x80000。

17. mExtVolumeController:扩展音量控制器为空。

18. mHdmiCecSink:HDMI CEC(Consumer Electronics Control)Sink状态为false,表示没有连接 HDMI CEC Sink 设备。

19. mHdmiAudioSystemClient:HDMI 音频系统客户端为空。

20. mHdmiPlaybackClient:HDMI 播放客户端为空。

21. mHdmiTvClient:HDMI 电视客户端为空。

22. mHdmiSystemAudioSupported:是否支持 HDMI 系统音频为false。

23. mHdmiCecVolumeControlEnabled:HDMI CEC 音量控制是否启用为false。

24. mIsCallScreeningModeSupported:是否支持呼叫筛选模式为false。

25. mic mute FromSwitch=false FromRestrictions=false FromApi=false from system=false:麦克风静音的来源信息。

8、播放活动监控信息

PlaybackActivityMonitor dump time: 上午10:22:45playback listeners:(S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@82a67f2 (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@ce62e43players:AudioPlaybackConfiguration piid:15 type:android.media.SoundPool u/pid:1000/519 state:idle attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=nullducked players piids:muted player piids:banned uids:
Audio event log: playback activity as reported through PlayerBase
11-07 09:27:42:765 new player piid:15 uid/pid:1000/519 type:android.media.SoundPool attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
11-07 09:27:45:614 new player piid:23 uid/pid:10107/721 type:android.media.SoundPool attr:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null
11-07 09:28:14:252 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:28:14:420 player piid:31 state:started
11-07 09:28:15:883 player piid:31 state:stopped
11-07 09:28:15:992 releasing player piid:31
11-07 09:29:03:709 new player piid:47 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:29:03:721 player piid:47 state:started
11-07 09:29:34:724 player piid:47 state:stopped
11-07 09:29:34:835 releasing player piid:47
11-07 09:46:38:540 new player piid:23 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:46:38:619 player piid:23 state:started
11-07 09:47:06:022 player piid:23 state:stopped
11-07 09:47:06:126 releasing player piid:23
11-07 09:47:21:467 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:47:21:474 player piid:31 state:started
11-07 09:47:48:950 player piid:31 state:stopped
11-07 09:47:49:055 releasing player piid:31
11-07 09:47:58:426 new player piid:39 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 09:47:58:572 player piid:39 state:started
11-07 09:48:25:933 player piid:39 state:stopped
11-07 09:48:26:039 releasing player piid:39
11-07 10:01:09:253 new player piid:23 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 10:01:09:260 player piid:23 state:started
11-07 10:01:21:723 player piid:23 state:stopped
11-07 10:01:21:827 releasing player piid:23
11-07 10:04:06:598 new player piid:31 uid/pid:10094/1918 type:unknown attr:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
11-07 10:04:06:607 player piid:31 state:started
11-07 10:04:22:385 player piid:31 state:stopped
11-07 10:04:22:491 releasing player piid:31

提供的播放活动监控信息如下:

播放监听器:

- (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@82a67f2 

- (S)com.android.server.audio.PlaybackActivityMonitor$PlayMonitorClient@ce62e43

播放器:

- AudioPlaybackConfiguration piid:15 

  类型:android.media.SoundPool

  uid/pid:1000/519

  状态:空闲(idle)

  属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null

Ducked players piids(降低音量的播放器 piid):无

Muted player piids(静音的播放器 piid):无

Banned uids(禁止的 UID):无

音频事件日志(通过 PlayerBase 报告的播放活动):

- 11-07 09:27:42:765 新的播放器 piid:15 uid/pid:1000/519 类型:android.media.SoundPool 属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null

- 11-07 09:27:45:614 新的播放器 piid:23 uid/pid:10107/721 类型:android.media.SoundPool 属性:AudioAttributes: usage=USAGE_ASSISTANCE_SONIFICATION content=CONTENT_TYPE_SONIFICATION flags=0x800 tags= bundle=null

- 11-07 09:28:14:252 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 09:28:14:420 播放器 piid:31 状态:started

- 11-07 09:28:15:883 播放器 piid:31 状态:stopped

- 11-07 09:28:15:992 释放播放器 piid:31

- 11-07 09:29:03:709 新的播放器 piid:47 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 09:29:03:721 播放器 piid:47 状态:started

- 11-07 09:29:34:724 播放器 piid:47 状态:stopped

- 11-07 09:29:34:835 释放播放器 piid:47

- 11-07 09:46:38:540 新的播放器 piid:23 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 09:46:38:619 播放器 piid:23 状态:started

- 11-07 09:47:06:022 播放器 piid:23 状态:stopped

- 11-07 09:47:06:126 释放播放器 piid:23

- 11-07 09:47:21:467 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 09:47:21:474 播放器 piid:31 状态:started

- 11-07 09:47:48:950 播放器 piid:31 状态:stopped

- 11-07 09:47:49:055 释放播放器 piid:31

- 11-07 09:47:58:426 新的播放器 piid:39 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 09:47:58:572 播放器 piid:39 状态:started

- 11-07 09:48:25:933 播放器 piid:39 状态:stopped

- 11-07 09:48:26:039 释放播放器 piid:39

- 11-07 10:01:09:253 新的播放器 piid:23 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 10:01:09:260 播放器 piid:23 状态:started

- 11-07 10:01:21:723 播放器 piid:23 状态:stopped

- 11-07 10:01:21:827 释放播放器 piid:23

- 11-07 10:04:06:598 新的播放器 piid:31 uid/pid:10094/1918 类型:unknown 属性:AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null

- 11-07 10:04:06:607 播放器 piid:31 状态:started

- 11-07 10:04:22:385 播放器 piid:31 状态:stopped

- 11-07 10:04:22:491 释放播放器 piid:31

9、录音活动记录

RecordActivityMonitor dump time: 上午10:22:45
Audio event log: recording activity received by AudioService
11-07 09:28:25:984 rec update riid:39 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:28:55:776 rec stop riid:39 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:30:37:756 rec start riid:55 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:31:09:295 rec stop riid:55 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:40:32:902 rec update riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:40:51:025 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:43:10:580 rec update riid:23 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:43:17:286 rec stop riid:23 uid:10094 session:17 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:46:09:512 rec start riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 09:46:35:728 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:00:39:767 rec start riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:00:51:183 rec stop riid:15 uid:10094 session:9 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:06:44:994 rec update riid:39 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk
11-07 10:07:11:060 rec stop riid:39 uid:10094 session:33 src:VOICE_COMMUNICATION pack:com.ctg.itrdc.clouddesk

录音活动记录:

- 11-07 09:28:25:984 开始录制,riid:39,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:28:55:776 停止录制,riid:39,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:30:37:756 开始录制,riid:55,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:31:09:295 停止录制,riid:55,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:40:32:902 更新录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:40:51:025 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:43:10:580 更新录制,riid:23,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:43:17:286 停止录制,riid:23,uid:10094,session:17,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:46:09:512 开始录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 09:46:35:728 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 10:00:39:767 开始录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 10:00:51:183 停止录制,riid:15,uid:10094,session:9,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 10:06:44:994 更新录制,riid:39,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

- 11-07 10:07:11:060 停止录制,riid:39,uid:10094,session:33,来源:VOICE_COMMUNICATION,包名:com.ctg.itrdc.clouddesk

10、AudioDeviceBroker 的记录

AudioDeviceBroker(音频设备代理)是Android操作系统中的一个组件,它负责管理和控制设备之间的音频通信。它是音频服务的一部分,旨在确保音频设备(如扬声器、耳机、麦克风等)在不同的音频策略和使用场景中正常运行。

AudioDeviceBroker 通过以下方式发挥作用:

1. 设备连接和断开:当音频设备连接或断开连接时,AudioDeviceBroker将负责检测和通知系统。它可以识别和管理具有不同音频能力(例如扬声器、耳机、蓝牙设备等)的设备,并根据需要自动调整音频路由。

2. 音频策略管理: AudioDeviceBroker 跟踪当前的音频策略,并根据应用程序和系统的需求来确定适合的音频路由和音频输出设备。它可以根据当前正在运行的应用程序类型(如媒体播放器、电话通话、语音识别等)和用户设置来切换音频输入和输出设备。

3. 音频通话管理:AudioDeviceBroker 针对语音通话进行专门管理。它负责处理来自通话相关功能(如蓝牙耳机、扬声器电话、免提通话等)的请求,并确保音频通话的正常进行。

总之,AudioDeviceBroker 在 Android 系统中起着至关重要的作用,以确保音频设备的连通性、音频路由的正确配置以及音频通话的正常管理和切换。这有助于提供良好的音频体验,并为用户和应用程序提供适当的音频功能。

AudioDeviceBroker:Message handler (watch for unhandled messages):Handler (com.android.server.audio.AudioDeviceBroker$BrokerHandler) {aec4cc0} @ 3315811Looper (AudioDeviceBroker, tid 91) {27f5df9}(Total messages: 0, polling=true, quitting=false)Preferred devices for strategy:Connected devices:[DeviceInfo: type:0x80001000 (usb_device) name:USB-Audio - USB 2.0 PC Camera addr:card=20;device=0; codec: 0]APM Connected device (A2DP sink only):mForcedUseForComm: FORCE_NONEmForcedUseForCommExt: FORCE_NONEmModeOwnerPid: 0Speakerphone clients:mBluetoothHeadset: android.bluetooth.BluetoothHeadset@673113emBluetoothHeadsetDevice: nullmScoAudioState: SCO_STATE_INACTIVEmScoAudioMode: SCO_MODE_VIRTUAL_CALLSco clients:mHearingAid: nullmA2dp: android.bluetooth.BluetoothA2dp@2336b9fmAvrcpAbsVolSupported: false

消息处理程序:

- 处理程序:com.android.server.audio.AudioDeviceBroker$BrokerHandler,在3315811位置上的 Handler

- 使用 Looper:AudioDeviceBroker,线程 ID 91,标识符为 27f5df9

- 总共处理的消息数为 0,正在轮询消息,退出状态为 false

优选设备策略:

- 没有提供任何优选设备的信息

已连接设备:

- [DeviceInfo: type:0x80001000 (usb_device) name:USB-Audio - USB 2.0 PC Camera addr:card=20;device=0; codec: 0] - USB-Audio - USB 2.0 PC Camera

APM 连接的设备(仅限 A2DP 沉浸式听觉设备):

- 没有提供任何 APM 连接的设备信息

强制用于通信的设备:

- mForcedUseForComm: FORCE_NONE

- mForcedUseForCommExt: FORCE_NONE

- mModeOwnerPid: 0

扬声器电话客户端:

- 没有提供任何扬声器电话客户端的信息

蓝牙耳机:

- mBluetoothHeadset: android.bluetooth.BluetoothHeadset@673113e

- mBluetoothHeadsetDevice: null

SCO(通话相关)客户端:

- mScoAudioState: SCO_STATE_INACTIVE

- mScoAudioMode: SCO_MODE_VIRTUAL_CALL

SCO(通话相关)客户端:

- 没有提供任何 SCO(通话相关)客户端的信息

助听器设备:

- mHearingAid: null

A2DP(高级音频分发配置文件):

- mA2dp: android.bluetooth.BluetoothA2dp@2336b9f

是否支持 Avrcp 绝对音量控制:

- mAvrcpAbsVolSupported: false

11、音效(SoundEffects)信息

SoundEffects(音效)在软件和硬件系统中有多种作用,主要包括以下几个方面:

1. 用户反馈:音效能够为用户提供可听的反馈,增强用户体验。例如,在触摸屏上按下按钮时,通过播放点击音效来模拟实际按钮的感觉,让用户知道他们已成功执行了操作。

2. 事件提示:音效可用于指示某些事件的发生。例如,在收到新消息或邮件时,播放提示音效可以提醒用户注意。

3. 界面导航:音效可以用作用户界面的导航工具。例如,通过播放不同的音效来区分选项卡之间的切换,帮助用户更好地理解界面结构。

4. 系统警告:音效可以用于向用户发送警告或关键信息。例如,在低电量或错误状态下播放警告音效,以吸引用户的注意并要求采取相应的操作。

5. 游戏娱乐:音效在游戏中扮演着重要的角色,用于增强游戏体验。例如,在游戏过程中播放特殊动作、攻击或背景音效,以提供更加沉浸式的游戏体验。

总体而言,音效能够为用户提供多样的听觉体验,并在软件和硬件系统中扮演着重要的角色。它们不仅可以提供反馈和提示,还能够增强用户界面、传达警示和娱乐性,从而提升用户的参与感和满意度。

SoundEffects:Message handler (watch for unhandled messages):Handler (com.android.server.audio.SoundEffectsHelper$SfxHandler) {6a974ec} @ 3315813Looper (AS.SfxWorker, tid 89) {24ee0b5}(Total messages: 0, polling=true, quitting=false)Default attenuation (dB): -6
Audio event log: Sound Effects Loading
11-07 09:27:42:763 effects loading started
11-07 09:27:43:981 effect KeypressStandard.ogg loaded
11-07 09:27:43:985 effect Effect_Tick.ogg loaded
11-07 09:27:44:114 effect KeypressSpacebar.ogg loaded
11-07 09:27:44:131 effect KeypressDelete.ogg loaded
11-07 09:27:44:356 effect KeypressReturn.ogg loaded
11-07 09:27:44:373 effect KeypressInvalid.ogg loaded
11-07 09:27:44:373 effects loading completed

 - 消息处理程序:

  - 处理程序:com.android.server.audio.SoundEffectsHelper$SfxHandler,在3315813位置上的 Handler

  - 使用 Looper:AS.SfxWorker,线程 ID 89,标识符为 24ee0b5

  - 总共处理的消息数为 0,正在轮询消息,退出状态为 false

- 默认衰减(Default attenuation):-6 dB

- 音频事件日志(Audio event log):

  - 事件:Sound Effects Loading

  - 时间戳:11-07 09:27:42:763

  - 音效加载开始

  - 事件:effect KeypressStandard.ogg loaded

  - 时间戳:11-07 09:27:43:981

  - 音效 KeypressStandard.ogg 加载完成

  - 事件:effect Effect_Tick.ogg loaded

  - 时间戳:11-07 09:27:43:985

  - 音效 Effect_Tick.ogg 加载完成

  - 事件:effect KeypressSpacebar.ogg loaded

  - 时间戳:11-07 09:27:44:114

  - 音效 KeypressSpacebar.ogg 加载完成

  - 事件:effect KeypressDelete.ogg loaded

  - 时间戳:11-07 09:27:44:131

  - 音效 KeypressDelete.ogg 加载完成

  - 事件:effect KeypressReturn.ogg loaded

  - 时间戳:11-07 09:27:44:356

  - 音效 KeypressReturn.ogg 加载完成

  - 事件:effect KeypressInvalid.ogg loaded

  - 时间戳:11-07 09:27:44:373

  - 音效 KeypressInvalid.ogg 加载完成

  - 事件:effects loading completed

  - 时间戳:11-07 09:27:44:373

  - 音效加载完成

以上是关于音效加载的记录。它显示了音效加载的开始和完成时间,以及每个音效文件的加载情况。

12、音频事件日志 - 通话状态 

Event logs:
Audio event log: phone state (logged after successful call to AudioSystem.setPhoneState(int, int))
11-07 09:40:51:498 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:40:51:548 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918
11-07 09:40:52:133 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:43:10:368 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:43:11:338 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:43:17:486 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:43:17:557 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918
11-07 09:43:18:396 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:45:53:661 onAudioServerDied causes setPhoneState(MODE_NORMAL, uid=0)
11-07 09:46:09:387 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:46:10:175 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 09:46:36:918 setMode(MODE_NORMAL) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 09:59:37:027 onAudioServerDied causes setPhoneState(MODE_NORMAL, uid=0)
11-07 10:00:39:573 setMode(MODE_IN_COMMUNICATION) from package=com.ctg.itrdc.clouddesk pid=1918 selected mode=MODE_IN_COMMUNICATION by pid=1918
11-07 10:00:51:682 setMode(MODE_NORMAL) from package=MSG_CHECK_MODE_FOR_UID pid=1918 selected mode=MODE_NORMAL by pid=0
11-07 10:00:51:705 mode IN COMMUNICATION timeout for package=com.ctg.itrdc.clouddesk pid=1918

根据提供的事件日志,以下是对每个事件的解释:

1. 11-07 09:40:51:498 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

2. 11-07 09:40:51:548 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。

3. 11-07 09:40:52:133 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

4. 11-07 09:43:10:368 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

5. 11-07 09:43:11:338 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

6. 11-07 09:43:17:486 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

7. 11-07 09:43:17:557 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。

8. 11-07 09:43:18:396 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

9. 11-07 09:45:53:661 - "onAudioServerDied" 导致调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

10. 11-07 09:46:09:387 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

11. 11-07 09:46:10:175 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

12. 11-07 09:46:36:918 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

13. 11-07 09:59:37:027 - "onAudioServerDied" 导致调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

14. 11-07 10:00:39:573 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

15. 11-07 10:00:51:682 - 从包名为 "MSG_CHECK_MODE_FOR_UID" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

16. 11-07 10:00:51:705 - 来自包名为 "com.ctg.itrdc.clouddesk" 的进程发出了 "mode IN COMMUNICATION" 超时警告。

17. 11-07 10:00:52:295 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setPhoneState` 方法来设置手机的状态为 `MODE_NORMAL`。

18. 11-07 10:06:44:675 - 从包名为 "com.ctg.itrdc.clouddesk" 的进程调用了 `AudioSystem.setMode` 方法来设置音频模式为 `MODE_IN_COMMUNICATION`。

13、音频事件日志 - 蓝牙

Audio event log: wired/A2DP/hearing aid device connection
11-07 09:40:52:184 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:43:10:491 startBluetoothSco()) from u/pid:10094/1918
11-07 09:43:18:442 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:46:09:446 startBluetoothSco()) from u/pid:10094/1918
11-07 09:46:36:985 stopBluetoothSco()) from u/pid:10094/1918
11-07 09:47:46:379 APM failed to make unavailable A2DP device addr=64:68:76:2F:50:6A error=1
11-07 09:47:46:383 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent  state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 09:47:46:399 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_DEFAULT vol=-1
11-07 09:47:55:166 BT profile service: connecting A2DP profile
11-07 09:47:55:261 BT profile service: connecting HEADSET profile
11-07 09:47:57:271 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent  state=2 addr=64:68:76:2F:50:6A prof=2 supprNoisy=true vol=15
11-07 09:47:57:274 A2DP sink connected: device addr=64:68:76:2F:50:6A state=2 codec=AUDIO_FORMAT_SBC vol=15
11-07 09:47:57:503 A2DP device addr=64:68:76:2F:50:6A now available
11-07 09:47:57:513 onBluetoothA2dpActiveDeviceChange addr=64:68:76:2F:50:6A event=DEVICE_CONFIG_CHANGE
11-07 09:47:57:744 APM handleDeviceConfigChange success for A2DP device addr=64:68:76:2F:50:6A codec=AUDIO_FORMAT_SBC
11-07 09:48:59:027 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent  state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 09:48:59:032 broadcast ACTION_AUDIO_BECOMING_NOISY
11-07 09:49:00:033 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_SBC vol=-1
11-07 09:49:00:076 A2DP device addr=64:68:76:2F:50:6A made unavailable
11-07 10:06:22:033 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent  state=2 addr=64:68:76:2F:50:6A prof=2 supprNoisy=true vol=15
11-07 10:06:22:037 onBluetoothA2dpActiveDeviceChange addr=64:68:76:2F:50:6A event=DEVICE_CONFIG_CHANGE
11-07 10:06:22:037 A2dp config change ignored (scheduled connection change)
11-07 10:06:22:037 A2DP sink connected: device addr=64:68:76:2F:50:6A state=2 codec=AUDIO_FORMAT_SBC vol=15
11-07 10:06:22:184 A2DP device addr=64:68:76:2F:50:6A now available
11-07 10:06:44:727 startBluetoothSco()) from u/pid:10094/1918
11-07 10:07:12:348 stopBluetoothSco()) from u/pid:10094/1918
11-07 10:09:59:478 msg: setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent  state=0 addr=64:68:76:2F:50:6A prof=2 supprNoisy=false vol=-1
11-07 10:09:59:505 broadcast ACTION_AUDIO_BECOMING_NOISY
11-07 10:10:00:505 A2DP sink connected: device addr=64:68:76:2F:50:6A state=0 codec=AUDIO_FORMAT_SBC vol=-1
11-07 10:10:00:544 A2DP device addr=64:68:76:2F:50:6A made unavailable

根据提供的音频事件日志,可以看出以下设备连接和断开的时间顺序:

- 09:40:52:184:关闭蓝牙耳机设备SCO模式

- 09:43:10:491:启动蓝牙耳机设备SCO模式

- 09:43:18:442:关闭蓝牙耳机设备SCO模式

- 09:46:09:446:启动蓝牙耳机设备SCO模式

- 09:46:36:985:关闭蓝牙耳机设备SCO模式

- 09:47:46:379:无法连接A2DP设备,地址为64:68:76:2F:50:6A,出错代码为1

- 09:47:46:383:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1

- 09:47:46:399:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为默认,音量为-1

- 09:47:55:166:蓝牙配置文件服务:连接A2DP配置文件

- 09:47:55:261:蓝牙配置文件服务:连接HEADSET配置文件

- 09:47:57:271:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15

- 09:47:57:274:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15

- 09:47:57:503:A2DP设备地址为64:68:76:2F:50:6A的设备现在可用

- 09:47:57:513:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE

- 09:47:57:744:APM成功处理A2DP设备地址为64:68:76:2F:50:6A的设备配置更改,音频编码格式为SBC

- 09:48:59:027:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1

- 09:48:59:032:广播ACTION_AUDIO_BECOMING_NOISY

- 09:49:00:033:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1

- 09:49:00:076:A2DP设备地址为64:68:76:2F:50:6A的设备不可用

- 10:06:22:033:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15

- 10:06:22:037:蓝牙A2DP活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE

- 10:06:22:037:忽略A2dp配置更改(预定的连接更改)

- 10:06:22:037:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15

- 10:06:22:184:A2DP设备地址为64:68:76:2F:50:6A的设备现在可用

- 10:06:22:184:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE

- 10:06:22:192:APM成功处理A2DP设备地址为64:68:76:2F:50:6A的设备配置更改,音频编码格式为SBC

- 10:07:38:200:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1

- 10:07:38:211:关闭蓝牙设备,地址为64:68:76:2F:50:6A

- 10:07:38:350:打开蓝牙设备,地址为64:68:76:2F:50:6A

- 10:08:54:466:蓝牙配置文件服务:连接A2DP配置文件

- 10:08:54:566:蓝牙配置文件服务:连接HEADSET配置文件

- 10:08:56:647:设置蓝牙A2DP设备连接状态,状态为2,地址为64:68:76:2F:50:6A,配置文件为2,启用噪声抑制,音量为15

- 10:08:56:648:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为2,音频编码格式为SBC,音量为15

- 10:08:57:555:忽略A2dp配置更改(预定的连接更改)

- 11:12:19:827:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1

- 11:12:19:838:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1

- 11:13:00:905:A2DP设备地址为64:68:76:2F:50:6A的设备不可用

- 11:54:35:888:广播ACTION_AUDIO_BECOMING_NOISY

- 11:55:48:583:设置蓝牙A2DP设备连接状态,状态为0,地址为64:68:76:2F:50:6A,配置文件为2,关闭噪声抑制,音量为-1

- 11:55:48:591:A2DP设备连接建立,地址为64:68:76:2F:50:6A,状态为0,音频编码格式为SBC,音量为-1

- 11:56:39:635:蓝牙A2DP设备活动设备更改,地址为64:68:76:2F:50:6A,事件为DEVICE_CONFIG_CHANGE

14、音频事件日志 - 用户指定设备记录

Audio event log: force use (logged before setForceUse() is executed)
11-07 10:00:39:604 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:00:39:605 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:00:51:716 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:00:52:325 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:00:52:326 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:06:22:041 setForceUse(FOR_MEDIA, FORCE_NONE) due to setBluetoothA2dpOn(true) from u/pid:1000/519 src:onSetA2dpSinkConnectionState
11-07 10:06:44:722 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:06:44:725 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to setNewModeOwner
11-07 10:06:45:006 setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO) due to BtHelper.receiveBtEvent
11-07 10:06:45:007 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:06:45:261 setForceUse(FOR_RECORD, FORCE_BT_SCO) due to BtHelper.receiveBtEvent
11-07 10:06:45:490 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:07:12:345 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:10094/1918
11-07 10:07:12:346 setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO) due to setNewModeOwner
11-07 10:07:12:541 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to BtHelper.receiveBtEvent
11-07 10:07:12:541 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:07:12:579 setForceUse(FOR_RECORD, FORCE_NONE) due to BtHelper.receiveBtEvent
11-07 10:09:59:467 setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE) due to muteRingerModeStreams() from u/pid:1000/519
11-07 10:09:59:477 setForceUse(FOR_COMMUNICATION, FORCE_NONE) due to resetBluetoothSco
11-07 10:09:59:477 setForceUse(FOR_RECORD, FORCE_NONE) due to resetBluetoothSco

根据提供的音频事件日志,以下是发生的事件:

- 10:00:39:604:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:00:39:605:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。

- 10:00:51:716:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:00:52:325:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:00:52:326:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。

- 10:06:22:041:由于从用户/进程ID为1000/519的`onSetA2dpSinkConnectionState`中调用了`setBluetoothA2dpOn(true)`,导致了`setForceUse(FOR_MEDIA, FORCE_NONE)`。

- 10:06:44:722:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:06:44:725:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。

- 10:06:45:006:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO)`。

- 10:06:45:007:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:06:45:261:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_RECORD, FORCE_BT_SCO)`。

- 10:06:45:490:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:07:12:345:由于`muteRingerModeStreams()`从用户/进程ID为10094/1918,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:07:12:346:由于`setNewModeOwner`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_BT_SCO)`。

- 10:07:12:541:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。

- 10:07:12:541:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:07:12:579:由于`BtHelper.receiveBtEvent`的调用,导致了`setForceUse(FOR_RECORD, FORCE_NONE)`。

- 10:09:59:467:由于`muteRingerModeStreams()`从用户/进程ID为1000/519,被调用了`setForceUse(FOR_VIBRATE_RINGING, FORCE_NONE)`。

- 10:09:59:477:由于`resetBluetoothSco`的调用,导致了`setForceUse(FOR_COMMUNICATION, FORCE_NONE)`。

- 10:09:59:477:由于`resetBluetoothSco`的调用,导致了`setForceUse(FOR_RECORD, FORCE_NONE)`。

以上是根据提供的音频事件日志解释的事件。每个事件似乎都是根据特定条件来设置音频强制使用模式。具体的应用和用途可能因系统配置而异。

15、音频事件日志 - 音量变量记录

Audio event log: volume changes (logged when command received by AudioService)
11-07 09:27:48:700 adjustStreamVolume(stream:STREAM_ACCESSIBILITY dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:28:03:404 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 09:28:03:523 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:28:03:535 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 09:28:03:935 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:28:04:715 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:28:36:045 adjustStreamVolume(stream:STREAM_VOICE_CALL dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:047 adjustStreamVolume(stream:STREAM_SYSTEM dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:051 adjustStreamVolume(stream:STREAM_RING dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:055 adjustStreamVolume(stream:STREAM_MUSIC dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:058 adjustStreamVolume(stream:STREAM_ALARM dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:058 adjustStreamVolume(stream:STREAM_NOTIFICATION dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:061 adjustStreamVolume(stream:STREAM_DTMF dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:062 adjustStreamVolume(stream:STREAM_ACCESSIBILITY dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:28:36:062 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from android
11-07 09:39:43:039 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:47:46:377 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:47:46:522 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:47:48:467 setStreamVolume(stream:STREAM_MUSIC index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:511 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:520 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:47:48:525 setStreamVolume(stream:STREAM_VOICE_CALL index:14 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:121 setStreamVolume(stream:STREAM_MUSIC index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:160 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:183 adjustStreamVolume(stream:STREAM_BLUETOOTH_SCO dir:ADJUST_UNMUTE flags:0x0) from com.zte.usmartsettings
11-07 09:47:52:191 setStreamVolume(stream:STREAM_VOICE_CALL index:15 flags:0x0) from com.zte.usmartsettings
11-07 09:47:57:114 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 09:47:57:267 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:47:57:276 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 09:47:57:852 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 09:47:58:550 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 09:48:59:023 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 09:49:00:183 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 10:06:21:718 setStreamVolume(stream:STREAM_BLUETOOTH_SCO index:15 flags:0x0) from com.android.bluetooth
11-07 10:06:22:033 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 10:06:22:039 onSetA2dpSinkConnectionState dev:0x80 volIdx:150
11-07 10:06:22:193 avrcpSupportsAbsoluteVolume addr=64:68:76:2F:50:6A support=true
11-07 10:06:22:294 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)
11-07 10:09:59:476 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, muted)
11-07 10:10:00:652 VolumeStreamState.muteInternally(stream:STREAM_MUSIC, unmuted)

 这个日志记录了音量变更的事件。以下是一些关键行为的总结:

- 时间 09:27:48:700:调整辅助功能音频流的音量。

- 时间 09:28:03:404:将蓝牙通话音频流的音量设置为15。

- 时间 09:28:03:523:将音乐音频流静音。

- 时间 09:28:03:935:取消音乐音频流的静音状态。

- 时间 09:28:04:715:检测到A2DP音频设备支持绝对音量。

- 时间 09:28:36:045:取消语音呼叫音频流的静音状态。

- 时间 09:28:36:047:取消系统音频流的静音状态。

- 时间 09:28:36:051:取消铃声音频流的静音状态。

- 时间 09:28:36:055:取消音乐音频流的静音状态。

- 时间 09:28:36:058:取消闹钟音频流的静音状态。

- 时间 09:28:36:058:取消通知音频流的静音状态。

- 时间 09:28:36:061:取消DTMF音频流的静音状态。

- 时间 09:28:36:062:取消辅助功能音频流的静音状态。

- 时间 09:28:36:062:取消蓝牙通话音频流的静音状态。

- 时间 09:39:43:039:检测到A2DP音频设备支持绝对音量。

- 时间 09:47:46:377:将音乐音频流静音。

- 时间 09:47:46:522:取消音乐音频流的静音状态。

- 时间 09:47:48:467:将音乐音频流的音量设置为14。

- 时间 09:47:48:511:将蓝牙通话音频流的音量设置为14。

- 时间 09:47:48:520:取消蓝牙通话音频流的静音状态。

- 时间 09:47:48:525:将语音呼叫音频流的音量设置为14。

相关文章:

安卓音频之dumpsys audio

目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...

StableAnimator模型的部署:复旦微软提出可实现高质量和高保真的ID一致性人类视频生成

文章目录 一、项目介绍二、项目部署模型的权重下载提取目标图像的关节点图像(这个可以先不看先用官方提供的数据集进行生成)提取人脸(这个也可以先不看)进行图片的生成 三、模型部署报错 一、项目介绍 由复旦、微软、虎牙、CMU的…...

蓝桥杯真题 - 异或和 - 题解

题目链接:https://www.lanqiao.cn/problems/3549/learning/ 个人评价:难度 3 星(满星:5) 前置知识:树状数组,dfs 序 整体思路 查询以节点 x x x 为根的子树下所有节点异或和,用 …...

【ES6复习笔记】let 和 const 命令(1)

ES6 中的 let 和 const 关键字 1. let 关键字 let 关键字用于声明一个变量,它具有块级作用域,这意味着变量只在声明它的块内有效。与 var 不同,let 不允许在同一作用域内重复声明同一个变量。 2. const 关键字 const 关键字用于声明一个常…...

ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读

目录 一、概述 二、相关工作 1、稀疏视角NeRF 2、用于视角合成的回归模型 3、用于视角合成的生成模型 4、2D扩散用于3D生成 三、ReconFusion 四、实验 一、概述 提出可以利用三张图片生成实景三维重建的方法ReconFusion。并且在合成数据集和多视图数据集上进行训练&…...

企业安装加密软件有什么好处?

加密软件为企业的安全提供了很多便利,从以下几点我们看看比较重要的几个优点: 1、数据保护:企业通常拥有大量的商业机密、客户数据、技术文档等敏感信息。加密软件可以对这些信息进行加密处理,防止未经授权的人员访问。即使数据被…...

Linux(Centos 7.6)目录结构详解

Linux(Centos 7.6)是一个操作系统,其核心设计理念是将一切资源抽象为文件,即一切皆文件。比如系统中的硬件设备硬盘、网络接口等都被视为文件。Windows系统一般是分为C、D、E盘。而Linux(Centos 7.6)是以斜线"/"作为文件系统的开始目录&#x…...

GXUOJ-算法-第二次作业

1.矩阵连&#xff08;链&#xff09;乘 问题描述 GXUOJ | 矩阵连乘 代码解答 #include<bits/stdc.h> using namespace std;const int N50; int m[N][N]; int p[N]; int n;int main(){cin>>n;//m[i][j] 存储的是从第 i 个矩阵到第 j 个矩阵这一段矩阵链相乘的最小…...

BGP基础配置

使用直连接口IP地址来建立EBGP对等体关系 1、启动BGP协议 [r1]bgp 100 ----启动BGP协议&#xff0c;并且规定其AS号2、配置设备的RID数值&#xff0c;一般选择设备的loopback接口的IP地址 [r1-bgp]router-id 1.1.1.13、配置BGP对等体信息&#xff0c;包含了对等体的IP地址以及…...

瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评

RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台&#xff0c;三核Cortex-A7单核Cortex-M0多核异构设计&#xff0c;CPU频率达1.5Ghz, M0 MCU为200Mhz。 而RK3506芯片平台下的工业级芯片型号RK3506J&#xff0c;具备-40-85℃的工业宽温性能、发热量小&#…...

Alice与Bob

Alice与Bob factordb.com 用上面链接可以直接分解 得到101999和966233 按照要求让小的放前面大的放后面得到 接着进行MD5的32位小写哈希 MD5在线加密/解密/破解—MD5在线 flag{d450209323a847c8d01c6be47c81811a}...

【玩转MacBook】Git安装

Git 官网也提到了MacBook 可以使用 Homebrew 安装 Git&#xff0c;所以在此使用 Homebrew 安装。 1、安装 Homebrew 执行安装脚本 在 Terminal 中执行如下命令&#xff1a; /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.…...

【IC验证】verilog及systemverilog特殊特性的分析

verilog及systemverilog特殊特性的分析 1.概述2.赋值延迟&#xff08;0&#xff09;总结&#xff08;1&#xff09;情况一&#xff1a;initial中进行阻塞赋值和非阻塞赋值&#xff08;不延迟&#xff09;a代码b 电路图c 结果 &#xff08;2&#xff09;时钟a 代码b 电路图c 结果…...

Apollo中间件技术:从入门到精通

一、引言 在Java开发的微服务架构中&#xff0c;配置管理是一个不可或缺的重要环节。随着服务数量的增加和部署环境的复杂化&#xff0c;传统的手动配置管理方式已难以满足需求。Apollo作为一款开源的分布式配置中心&#xff0c;凭借其强大的功能和灵活的架构&#xff0c;成为…...

汽车行业的MES系统方案(附案例资料合集)

针对汽车行业的MES系统方案&#xff0c;以下是一些关键点和实施案例&#xff1a; 核心功能&#xff1a; 实时监控&#xff1a;MES系统通过传感器和物联网技术实时监控生产线上的每一个环节&#xff0c;确保信息的及时传递。数据分析&#xff1a;系统对收集的数据进行深度分析&a…...

Python入门:7.Pythond的内置容器

引言 Python 提供了强大的内置容器&#xff08;container&#xff09;类型&#xff0c;用于存储和操作数据。容器是 Python 数据结构的核心部分&#xff0c;理解它们对于写出高效、可读的代码至关重要。在这篇博客中&#xff0c;我们将详细介绍 Python 的五种主要内置容器&…...

单片机与MQTT协议

MQTT 协议简述 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布 / 订阅&#xff08;publish/subscribe&#xff09;模式的 “轻量级” 通讯协议&#xff0c;该协议构建于 TCP/IP 协议上&#xf…...

记录命令行操作树莓派Wifi的方式

打开WiFi rfkill unblock wlan 关闭WiFi rfkill block wlan 设置可连接的WiFi 方法一&#xff08;bullseye及以前版本才可用&#xff0c;bookworm版本&#xff09; sudo nano /etc/wpa_supplicant/wpa_supplicant.conf network{ssid"wifi_name"psk"wifi_pas…...

Docker 安装mysql ,redis,nacos

一、Mysql 一、Docker安装Mysql 1、启动Docker 启动&#xff1a;sudo systemctl start dockerservice docker start 停止&#xff1a;systemctl stop docker 重启&#xff1a;systemctl restart docker 2、查询mysql docker search mysql 3、安装mysql 3.1.默认拉取最新版…...

[C#] 复数乘法的跨平台SIMD硬件加速向量算法(不仅支持X86的Sse、Avx、Avx512,还支持Arm的AdvSimd)

文章目录 一、简单算法二、向量算法2.1 算法思路2.1.1 复数乘法的数学定义2.1.2 复数的数据布局2.1.3 第1步&#xff1a;计算 (a*c) (-b*d)i2.1.4 第2步&#xff1a;计算 (a*d) (b*c)i2.1.5 第3步&#xff1a;计算结果合并 2.2 算法实现&#xff08;UseVectors&#xff09;2.…...

curl 放弃对 Hyper Rust HTTP 后端的支持

curl 放弃了对使用 Rust 编写 Hyper HTTP 后端的支持&#xff0c;因为用户和开发者对此功能的需求很少。 curl 创始人兼核心开发者 Daniel Stenberg 表示&#xff0c;尽管这项工作最初由 ISRG 赞助并且看起来很有希望&#xff0c;但 Hyper 支持多年来一直处于实验阶段&#xf…...

RK3506开发板:智能硬件领域的新选择,带来卓越性能与低功耗

在现代智能硬件开发中&#xff0c;选择一款性能稳定、功耗低的开发板是确保产品成功的关键。Rockchip最新推出的RK3506芯片&#xff0c;凭借其卓越的能效比、多功能扩展性和优秀的实时性能&#xff0c;已经成为智能家电、工业控制、手持终端等领域的热门选择。而基于RK3506的Ar…...

RBAC权限控制

1、Spring Security 是一个功能强大的Java安全框架&#xff0c;它提供了全面的安全认证和授权的支持。 2 SpringSecurity配置类&#xff08;源码逐行解析&#xff09; Spring Security的配置类是实现安全控制的核心部分 开启Spring Security各种功能&#xff0c;以确保Web应…...

Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)

目录 1.rwx 对于目录和文件的区别 2.gcc 编译器 2.1编译过程 2.2gcc 的其他参数 3.动态库和静态库 3.1函数库 1.rwx 对于目录和文件的区别 r 文件的内容可以被查看。支持cat、more、head...vim &#xff1b;目录的内容可以被查看。ls、tree …...

如何使用远程控制工具管理你的计算机系统

在现代工作环境中&#xff0c;远程控制技术越来越重要&#xff0c;尤其是对于系统管理员、技术支持人员以及需要远程工作的人来说。远程控制不仅仅是便捷&#xff0c;更是提高工作效率、快速解决问题的重要手段。今天&#xff0c;我们将讨论一些常见的远程控制工具&#xff0c;…...

在K8S中,CNI有什么作用?

在kubernetes中&#xff0c;Container Network Interface(CNI)起着至关重要的作用&#xff0c;主要解决了容器网络配置及通信的问题&#xff0c;确保了Pod间网络连通性及其外部世界的通信。CNI的具体作用包括但不限于以下几个方面。 1. 网络配置自动化&#xff1a; 当kuberne…...

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称&#xff0c;被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而&#xff0c;要写出高性能的 C 语言代码&#xff0c;需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术&#xff0c;并通过…...

JS中Symbol (符号)数据类型详解和应用场景

JavaScript中Symbol数据类型详解 Symbol是ES6引入的一种原始数据类型&#xff0c;表示唯一的标识符。它是通过Symbol()函数生成的&#xff0c;每次调用都会返回一个独一无二的值。Symbol值的主要用途是为对象的属性提供唯一标识&#xff0c;以避免属性名冲突。 特点 唯一性 每…...

Go gin框架(详细版)

目录 0. 为什么会有Go 1. 环境搭建 2. 单-请求&&返回-样例 3. RESTful API 3.1 首先什么是RESTful API 3.2 Gin框架支持RESTful API的开发 4. 返回前端代码 go.main index.html 5. 添加静态文件 main.go?改动的地方 index.html?改动的地方 style.css?改…...

Linux系统 —— 进程控制系列 - 进程的等待:wait 与 waitpid

目录 1. 进程的等待 1.1 为什么需要等待 2. 进程等待的方法 1. wait 2. waitpid 3. 获取子进程status 4. 阻塞与非阻塞等待 续接前文&#xff1a; Linux系统 —— 进程控制系列 - 进程的创建与终止 &#xff1a;fork与exit-CSDN博客https://blog.csdn.net/hedhjd/artic…...

blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质

描述&#xff1a;在blender中合并的模型导出为glb&#xff0c;在threejs中导入仍显示多个mesh&#xff0c;并不是统一的整体&#xff0c;导致需要整体高亮或者使用DragControls等不能统一控制。 原因&#xff1a;模型有多个材质&#xff0c;在blender中合并的时候&#xff0c;…...

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型&#xff08;MLLMs&#xff09;的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文&#xff1a;Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…...

[Wireshark] 使用Wireshark抓包https数据包并显示为明文、配置SSLKEYLOGFILE变量(附下载链接)

wireshark 下载链接&#xff1a;https://pan.quark.cn/s/eab7f1e963be 提取码&#xff1a;rRAg 链接失效&#xff08;可能会被官方和谐&#xff09;可评论或私信我重发 chrome与firefox在访问https网站的时候会将密钥写入这个环境变量SSLKEYLOGFILE中&#xff0c;在wireshark…...

单片机实物成品-007 汽车防盗系统(代码+硬件+论文)

汽车尾气监测系统&#xff08;温度震动传感器 红外热释电GPS三个指示灯蜂鸣器正常模式防盗模式wifi传输控制送APP源码 &#xff09; 把该系统划分为两个不同设计主体&#xff0c;一方面为硬件控制主体&#xff0c;通过C语言来编码实现&#xff0c;以STM32开发板为核心控制器&a…...

redis开发与运维-redis0401-补充-redis流水线与Jedis执行流水线

文章目录 【README】【1】redis流水线Pipeline【1.1】redis流水线概念【1.2】redis流水线性能测试【1.2.1】使用流水线与未使用流水线的性能对比【1.2.2】使用流水线与redis原生批量命令的性能对比【1.2.3】流水线缺点 【1.3】Jedis客户端执行流水线【1.3.1】Jedis客户端执行流…...

windows系统下使用cd命令切换到D盘的方法

windows系统下使用cd命令切换到D盘的方法 系统环境配置 win10系统原装C盘后期自己安装的硬盘D盘 python3.8安装在D盘中 问题说明 winR打开终端&#xff0c;使用 cd d:命令&#xff0c;无法将当前目录切换到D盘 解决方法 方法一&#xff1a;使用下面这条命令 cd /d d:运…...

word参考文献第二行缩进对齐

刚添加完参考文献的格式是这样&#xff1a; ”段落“—>缩进修改、取消孤行控制 就可以变成...

Springboot关于格式化记录

日期格式化 返回前端日期需要格式化 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version> </dependency>JsonFormat(pattern "yyyy-MM-dd…...

1.business english--build rapport

build rapport with someone 建立融洽关系 Salespeople often try to build rapport with customers to boost sales. user a variety of appropriate questions. answer the question according to your experience. Do you know how to make a good connection with others…...

发明专利与实用新型专利申请过程及自助与代办方式对比

申请专利&#xff08;发明专利、实用新型专利、外观设计专利&#xff09;有两种方式&#xff1a;1、自己直接向国家知识产权局申请。2、通过专利代办处申请。以下是对这两种专利类型&#xff08;发明专利、实用新型专利&#xff09;申请过程及两种申请方式的详细介绍和对比,参考…...

设计模式-创建型-工厂方法模式

什么是工厂方法模式&#xff1f; 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是 创建型设计模式之一&#xff0c;目的是通过定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪个类。简而言之&#xff0c;工厂方法模式通过延迟对象的创建过程到子类来…...

如何判断一个学术论文是否具有真正的科研价值?ChatGPT如何提供帮助?

目录 1.创新性与学术贡献的超级加分✔ 2.科研过程中的各个环节—从0到1✔ 3.创新性与理论深度的完美结合✔ 4.论证与写作的清晰性✔ 5.数据整理和文献回顾——效率与精准并存✔ 6.创新性要求辅助✔ 总结 宝子们&#xff0c;学术论文写作的旅程是不是感觉像是走进了迷雾森…...

Linux驱动开发--字符设备驱动开发

一、概述 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节 流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI, LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 Linux 应用程序对驱动程…...

Java 网络原理 ①-IO多路复用 || 自定义协议 || XML || JSON

这里是Themberfue 在学习完简单的网络编程后&#xff0c;我们将更加深入网络的学习——HTTP协议、TCP协议、UDP协议、IP协议........... IO多路复用 ✨在上一节基于 TCP 协议 编写应用层代码时&#xff0c;我们通过一个线程处理连接的申请&#xff0c;随后通过多线程或者线程…...

828华为云征文|使用sysbench对Flexus X实例对mysql进行性能测评

目录 一、Flexus X实例概述 1.1?Flexus X实例 1.2?在mysql方面的优势 二、在服务器上安装MySQL 2.1 在宝塔上安装docker 2.2 使用宝塔安装mysql 2.3 准备测试数据库和数据库表 三、安装sysbench并进行性能测试 3.1 使用yum命令sysbench 3.2?运行?sysbench 并进行…...

数据结构:堆

目录 1.堆的概念 2.堆的结构 3.堆的初始化 4.堆的销毁 5.堆的插入 6.堆的删除 7.判断堆是否为空 1.堆的概念 堆的性质&#xff1a; 堆中某个结点的值总是不大于或不小于其父结点的值&#xff1b; 堆总是一棵完全二叉树。 以下堆的结构默认大堆 &#xff1a; 2.堆的结…...

洪水灾害多智能体分布式模拟示例代码

1. 环境定义&#xff1a;支持灾害动态、地理数据和分布式架构 import numpy as np import random import matplotlib.pyplot as plt# 新疆主要城市及邻接关系 XINJIANG_CITIES {Urumqi: [Changji, Shihezi],Changji: [Urumqi, Shihezi, Turpan],Shihezi: [Urumqi, Changji, K…...

基于 Ragflow 搭建知识库-初步实践

基于 Ragflow 搭建知识库-初步实践 一、简介 Ragflow 是一个强大的工具&#xff0c;可用于构建知识库&#xff0c;实现高效的知识检索和查询功能。本文介绍如何利用 Ragflow 搭建知识库&#xff0c;包括环境准备、安装步骤、配置过程以及基本使用方法。 二、环境准备 硬件要…...

Selenium实践总结

1.使用显示等待而不是隐式等待 隐式等待可能会导致不可预测的测试行为&#xff0c;尤其是在动态 Web 应用程序中。显式等待&#xff0c;它允许您 等待特定条件发生后再继续测试&#xff0c;这种方法提供了更多的控制和可靠性。 WebDriverWait wait new WebDriverWait(drive…...

华为麦芒5(安卓6)termux记录 使用ddns-go,alist

下载0.119bate1 安卓5和6版本,不能换源,其他源似乎都用不了,如果root可以直接用面具模块 https://github.com/termux/termux-app/releases/download/v0.119.0-beta.1/termux-app_v0.119.0-beta.1apt-android-5-github-debug_arm64-v8a.apk 安装ssh(非必要) pkg install open…...