Android电源管理 .

转载 2012年03月29日 16:13:53

Android电源管理方面网上资料比较多,这里就梳理下Android源码的线索,关注wake_lock和early_suspend。

使一个应用程序不进入睡眠,须在上层申请一个wakelock锁,并对该锁进行持有。在acquire()和release()间,进程保持running状态。持有锁acquire()经过framework层PowerManagerService.java到抽象层Power.cpp,实质就是在/sys/power/wake_lock里写入锁的名字,释放锁release()实质就是在/sys/power/wake_unlock里写入锁的名字。经Linux文件系统,内核对其上锁或解锁,即wake_lock()或wake_unlock(),即不准suspend或进入suspend。

搞清楚has_wake_lock_locked(),返回值>0说明有超时锁,需要在超时以后进入suspend;返回值=0说明没有锁,直接进入suspend;返回值<0说明持有永久锁,这也是最常见的一种用法,系统无法进入suspend。


使系统唤醒或休眠,上层分别使用userActivity和goToSleep,实质就是往/sys/power/state里写入on或mem,底层通过文件系统最终调用request_suspend_state()




相关文章推荐

android 电源管理相关

  • 2010年12月28日 08:40
  • 271KB
  • 下载

android电源管理显示例子

  • 2011年10月28日 10:53
  • 46KB
  • 下载

Android电源管理简介(下)

文章转载自:http://blog.csdn.net/hzdysymbol/archive/2009/03/19/4004791.aspx Kernel层 其主要代码在下列位置: ...
  • hudashi
  • hudashi
  • 2011年12月10日 09:12
  • 4984

Android电源管理文件组织结构

  • 2015年07月14日 11:38
  • 366KB
  • 下载

android 电源管理

  • 2012年09月18日 08:51
  • 107KB
  • 下载

Android 4.0 中的PowerManager(电源管理--休眠唤醒)

转发请注明出处: http://blog.csdn.net/codectq/article/details/7324879         最近,在学习让系统进入休眠的过程中,学习了电源管理的...
  • codectq
  • codectq
  • 2012年03月06日 15:07
  • 13697

android 电源管理

1.     介绍.... 4 2.     电池管理.... 4 2.1.      FrameWork.. 5 2.1.1.       监听... 5 2.1.1.1.     UEve...

电源管理之android内核suspend to disk的实现(一)

from : http://blog.csdn.net/wang_zheng_kai/article/details/18615543 最近刚刚做了一份关于电源管理中android系统sus...
  • Fybon
  • Fybon
  • 2015年09月02日 16:17
  • 760

Android电源管理(zz)

原文地址:Android电源管理(zz)作者:kevin 电源管理始终是手机等移动设备最重要的一个功能,尤其对于Android这种智能手机或者说手机电脑化的设备,电源管理更显得十分重要。Linux一直...

android 电源管理介绍

(本文讲解基于API17) 电源管理主要由PowerManagerService 负责, 那我们就先从 PowerManagerService讲起 PowerManagerService是系统核心...
  • Evan_Lo
  • Evan_Lo
  • 2016年06月28日 23:39
  • 689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android电源管理 .
举报原因:
原因补充:

(最多只允许输入30个字)