android流程中,在AudioHardware::AudioStreamOutALSA::write的时候,会acquire_wake_lock (PARTIAL_WAKE_LOCK, "AudioOutLock"),这个锁如果没有释放,在睡眠前的检测环节中,将导致不能进入深度睡眠;不使用这个锁,可以在播放的时候,进入深度睡眠,唤醒睡眠后继续播放。
# cat proc/wakelocks //暂停播放,可以进入深度睡眠
name count expire_count wake_count active_since total_time sleep_time max_time last_change
"power-supply" 605 0 0 0 151670894 0 10133543 2417770315032
"KeyEvents" 506 0 0 0 54258153 0 28258959 2401090715490
"event0-90" 1 0 0 0 223208 0 223208 2401090314073
"usb_pcd" 1 0 0 0 2383999974653 0 2383999974653 2401080031865
"usb_mass_storage" 0 0 0 0 0 0 0 0
"PowerManagerService" 50 0 0 0 7929628021 0 3698752126 2371362561191
"alarm" 43 0 0 0 429276278 0 18711000 2371353584775
"AudioOutLock" 1 0 0 0 163863869111 0 163863869111 721185809963
"event1-90" 504 0 0 0 18517589 0 154084 718186723127
"i2c0" 62 0 0 0 105757791 0 22611958 557359764975
"radio-interface" 1 0 0 0 1000224126 0 1000224126 15442378166
"ApmCommandThread" 10 0 0 0 2537126 0 1651292 13275112709
"event2-90" 0 0 0 0 0 0 0 0
"mmc_delayed_work" 1 0 0 0 54929460 0 54929460 1868635686
"power-supply" 1 0 0 0 10109959 0 10109959 1781967683
"rtc_hym8563" 0 0 0 0 0 0 0 0
"alarm_rtc" 0 0 0 0 0 0 0 0
"power-supply" 1 0 0 0 237500 0 237500 1706312808
"vmac" 0 0 0 0 0 0 0 0
"bb_wakeup_ap" 0 0 0 0 0 0 0 0
"fb" 0 0 0 0 0 0 0 0
"unknown_wakeups" 0 0 0 0 0 0 0 0
"deleted_wake_locks" 0 0 0 0 0 0 0 0
"main" 1 0 0 2418315539317 2418315539317 0 2418315539317 60000005
"usb_detect" 1 1 0 0 9999057875 0 9999057875 2400990950239
# cat proc/wakelocks//正在播放,不能进入深度睡眠
name count expire_count wake_count active_since total_time sleep_time max_time last_change
"PowerManagerService" 54 0 0 0 7948937313 0 3698752126 2551358474842
"alarm" 47 0 0 0 465811110 0 18711000 2551355229801
"i2c0" 69 0 0 0 109810291 0 22611958 2549824073675
"KeyEvents" 589 0 0 0 58064399 0 28258959 2549775434093
"event1-90" 587 0 0 0 21659841 0 154084 2549775399593
"power-supply" 638 0 0 0 159990726 0 10133543 2549770377635
"event0-90" 1 0 0 0 223208 0 223208 2401090314073
"usb_pcd" 1 0 0 0 2383999974653 0 2383999974653 2401080031865
"usb_mass_storage" 0 0 0 0 0 0 0 0
"radio-interface" 1 0 0 0 1000224126 0 1000224126 15442378166
"ApmCommandThread" 10 0 0 0 2537126 0 1651292 13275112709
"event2-90" 0 0 0 0 0 0 0 0
"mmc_delayed_work" 1 0 0 0 54929460 0 54929460 1868635686
"power-supply" 1 0 0 0 10109959 0 10109959 1781967683
"rtc_hym8563" 0 0 0 0 0 0 0 0
"alarm_rtc" 0 0 0 0 0 0 0 0
"power-supply" 1 0 0 0 237500 0 237500 1706312808
"vmac" 0 0 0 0 0 0 0 0
"bb_wakeup_ap" 0 0 0 0 0 0 0 0
"fb" 0 0 0 0 0 0 0 0
"unknown_wakeups" 0 0 0 0 0 0 0 0
"deleted_wake_locks" 0 0 0 0 0 0 0 0
"AudioOutLock" 2 0 0 2475893045 166339762156 0 163863869111 2549779566676
"main" 1 0 0 2552195473466 2552195473466 0 2552195473466 60000005
"usb_detect" 1 1 0 0 9999063982 0 9999063982 2400990950239