wakel_lock:Android的一种休眠唤醒机制
使用场景:在LCD或TP关闭的时候,依然需要运行的关键代码,如电量统计、charger探测、音乐播放等,即使在休眠状态下也是需要正常运行的
主要思想:只要系统中存在有效锁,就阻止AP(可认为是ARM处理器)进入休眠状态,即不让处理器挂起,只有系统中所有锁都被释放之后系统才进入休眠状态
分类:suspend休眠锁、Idle空闲锁
底层实现:底层仍然使用驱动来实现该机制,具体参考如下链接
http://blog.csdn.net/g_salamander/article/details/7978772
底层接口:
1. void wake_lock_init(struct wake_lock *lock, int type, const char *name);
2. void wake_lock_destroy(struct wake_lock *lock);
3. void wake_lock(struct wake_lock *lock); //激活锁
4. void wake_lock_timeout(struct wake_lock *lock, long timeout);
5. void wake_unlock(struct wake_lock *lock); //释放锁
6. int wake_lock_active(struct wake_lock *lock);