在Linux系統中,wake_lock是一直鎖機制,只要有驅動佔用這個鎖,系統就不會進入深度休眠。linux
獲取此鎖的方法有兩種:函數
一、在adb中經過指令獲取wake_lock,系統就不會進入深度休眠spa
echo "PowerManagerService.noSuspend" > /sys/power/wake_lock
二、在驅動文件中獲取wake_lockcode
(1)添加頭文件blog
#include <linux/wakelock.h>
(2)定義 wake_lock 結構體it
static struct wake_lock wake_lock_always
(3)在 xxx_init 函數中初始化鎖class
wake_lock_init(&wake_lock_always, WAKE_LOCK_SUSPEND, "wake_lock_always");
(4)在 xxx_suspend 函數中獲取鎖方法
wake_lock(&wake_lock_always);
(5)在 xxx_resume 函數中釋放鎖static
wake_unlock(&wake_lock_always);