andrid 电源管理资料收集

1、Android WakeLock

2、Androidwakelock

3、Rexsee API介绍:Android WakeLock进程持续,阻止应用

4、Android wakelock机制

5、android wakelock申请与释放

6、Android WakeLock使用方法示例代码

7、wakelock 详解

8、Android WakeLock使用方法示例代码

9、使用WakeLock使Android应用程序保持后台唤醒

10、wakelock

wakelock在android的休眠唤醒机制中扮演着及其重要的角色,主要源码位于文件:kernel/kernel/power/wakelock.c,kernel/include/linux/wakelock.h中。

11、Android电源管理分析 
12、PowerManager源码

13、Android电源管理简介(上)

14、Android电源管理简介(下)

15、Debug Android and Linux suspend and resume (中文)

15、第十三章_Android内核驱动——电源管理

16、基于Android的Linux内核的电源管理:概述

17、Android

18、Android

19、基于Android的Linux内核的电源管理:Early Suspend 、

包括了工作流程

20、Android内核能量管理代码解读:userwakelock

21、Android在标准linux基础上对休眠唤醒的实现(二)

22、Android 中电源状态切换

23、Android的Linux内核的电源管理:Early Suspend




正常工作模式在系统规定时间内没有任何活动就进入早期睡眠earlysuspend模式。

触摸屏幕或者一些外部中断是android从earlysuspend模式进入正常工作模式。

earlysuspend进入suspend挂起模式的条件是所有锁都被释放。

挂起suspend模式进去earlysuspend模式的触发条件是当设定的外中断唤醒。。

在android系统中设定了一种特殊的电源管理模式即早期睡眠earlysuspend,他是系统进入待机的第一种状态,在android中设定了一些特殊的设备在此阶段关闭,主要是lcd及其背光。这些设备可以通过编程设定,主要实在设备的驱动程序中通过调用register_early_suspend()函数来注册。当系统在设定的空闲时间内没有任何活动事件发生时,系统就会自动进入earlysuspend状态。进入earlysuspend状态后系统会检测锁链表,看是否存在处于活动的锁,如果没有则进入挂起状态,如果有则等待。当系统进入挂起状态后,系统里的所有外设都已经处于掉电状态,这些设备挂起之前的状态都保存在内存中,当系统被设定的外中断唤醒时,这些设备均能通过设备驱动程序中已经注册的resume()函数来恢复原状态。



android电源管理待机过程分析

    系统进入earlysuspend状态后,会调用wake_unlock(&main_wake_lock),此函数主要作用是检测系统中除掉main锁以外还有没有其他活动的锁,如果没有就解开main锁进入挂起状态。其主要流程为:

suspend()---准备挂起suspend_prepare()---------冻结用户太进程和内核太任务suspend_freeze_processes()--------挂起外设suspend_devices_and_enter(state)——等待外中断唤醒。


android的电源管理主要是通过锁和定时器来切换系统的状态。


系统正常开机之后进入到AWAKE状态,Backlight会从最亮慢慢调节到用户设定的亮度,系统screen_off_timer(setting->sound & display->Display settings->Screen timeout)开始计时,计时时间到来之前,如果有任何的activity事件发生,如touch click,keyboard pressed等事件,则将reset screen off timer系统保持在AWAKE状态,


如果screen off timer时间到并且没有full wake lock或者用户按了power key,那么系统状态将被切换到NOTIFICATION,并且调用所有已经注册的g_early_suspend_handlers函数,通常会将LCD和backlight驱动注册成early suspend类型,如果有需要也可以把别的驱动注册成early suspend,这样就会在第一阶段被关闭,接下来系统会判断是否有partial wake lock acquired,如果有则等待其释放,在等待过程中如果有user activity事件发生,系统则马上回到AWAKE状态,如果没有partial wake lock acquired,则系统会马上调用函数pm_suspend关闭其他相关的驱动,让CPU进入休眠状态。


系统在sleep状态时如果检测到任何一个wakeup source,则CPU会从sleep状态被唤醒,并且调用相关的驱动的resume函数。


wakelock屏幕锁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值