在上一篇中讲到因为手机休眠而引发一些问题。android手机为什么要休眠呢?原因很简单:省电。
现在手机电池的容量有了一定提升,但容量还是有限的,好多智能机型都不支持换电池。在有限的电量前提下,智能机功能强,应用多,电量消耗就是一个问题。至少能做一天一充吧,不然android智能机用起来,电池就是一个很大的硬伤。
Android休眠机制
为了解决在有限电池容量条件下,尽可能提升电池的续航能力,android系统引休眠机制。PC和MAC笔记本也有这个机制,相对而言,android系统的休眠机制更复杂些。android内核基于Linux,休眠机制也是基于Linux的,但有一些不同。
Linux系统的休眠主要包括三个主要的步骤:
冻结用户态进程和内核态任务;
调用注册的设备的suspend的回调函数;
按照注册顺序休眠核心设备和使CPU进入休眠态。
进入休眠的原因:硬件中断,设置/sys/power/state为standby。用户也可以通过读写文件/sys/power/state实现控制系统进入休眠系统,从而长时间处于idle状态。比如:
echo standby > /sys/power/state 命令系统进入休眠
cat /sys/power/state 来得到内核支持哪几种休眠方式
冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文。所有的进程都还在,