首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android休眠】之Android休眠机制

二、Android休眠 休眠是内核的核心工作,而Android是基于Linux内核的,所以Android休眠和内核有着千丝万缕的联系;由于Android的特殊应用场景:移动设备,所以Android休眠和内核又有着特别的需求...2、Android的特别需求: 比如对于自己的电脑,不用让它休眠好了;但是对于我们形影不离的手机,在休眠的时候还要睁一只眼:来电了要通知你,QQ啊微信啊什么的由信息了也要通知你,所以Android在Linux...但自从引入Autosleep后,就不在这么做了,setPowerState()方法也销声匿迹。 2、/sys/power/目录下文件 ?.../sys/power/autosleep:从Android wakelocks补丁集中演化而来,用于取代Android wakelocks中的自动休眠功能。...在Android wakelocks时代,写wake_lock获取锁,写wake_unlock释放锁;在AutoSleep时代,具体参见【Android休眠】之AutoSleep wakeup_count

4.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

【Android休眠】之Android休眠机制

二、Android休眠 休眠是内核的核心工作,而Android是基于Linux内核的,所以Android休眠和内核有着千丝万缕的联系;由于Android的特殊应用场景:移动设备,所以Android休眠和内核又有着特别的需求...2、Android的特别需求: 比如对于自己的电脑,不用让它休眠好了;但是对于我们形影不离的手机,在休眠的时候还要睁一只眼:来电了要通知你,QQ啊微信啊什么的由信息了也要通知你,所以Android在Linux...但自从引入Autosleep后,就不在这么做了,setPowerState()方法也销声匿迹。.../sys/power/autosleep:从Android wakelocks补丁集中演化而来,用于取代Android wakelocks中的自动休眠功能。...在Android wakelocks时代,写wake_lock获取锁,写wake_unlock释放锁;在AutoSleep时代,具体参见【Android休眠】之AutoSleep wakeup_count

1.9K20

Linux电源管理(7)_Wakeup events framework

前言 本文继续“Linux电源管理(6)_Generic PM之Suspend功能”中有关suspend同步以及PM wakeup的话题。...这个话题,是近几年Linux kernel最具争议的话题之一,在国外Linux开发论坛,经常可以看到围绕该话题的辩论。辩论的时间跨度和空间跨度可以持续很长,且无法达成一致。...但是,在当前这个时间点,对这个话题,Linux kernel developers和Android developers持相反的观点。...注3:在Linux kernel看来,power是系统的核心资源,不应开放给用户程序随意访问(wake lock机制违背了这个原则)。...这表现在suspend过程中频繁调用pm_wakeup_pending接口上(可参考“Linux电源管理(6)_Generic PM之Suspend功能”)。

2.8K21

Android电源管理基础知识整理

Linux系统电源状态 在Linux操作系统中,将电源划分为如下几个状态: ACPI State Linux State Description S0 On(on) Working S1 Standby...相关宏定义位于:linux/include/linux/suspend.h ?...该机制起初是早期Android为Linux内核打得一个补丁,并想合入到linux内核,但被Linux社区拒绝,后续Linux内核引入自己的Wakelock机制,Android系统也使用的是linux的Wakelock...,若不存在,则进入睡眠状态 autosleep机制,android 4.1引入该机制,亮屏时会向autosleep节点写入off,熄屏则会写入mem。...关于autosleep机制的内核源码分析,可以参考如下文章: Android autosleep机制 Early Suspend 预挂起机制是Android特有的挂起机制, 这个机制作用是关闭一些与显示相关的外设

4.8K21

Linux Epoll 一网打尽

前言 epoll同样是linux上的IO多路复用的一种实现,内核在实现时使用的数据结构相比select要复杂,但原理上并不复杂,我们力求在下面的描述里抽出主干,理清思路。...epoll也利用了上文中介绍过的Linux中的重要数据结构 wait queue, 有了上面select的基础,其实epoll就没那么复杂了。...file_can_poll(tf.file)) goto error_tgt_fput; /* Linux提供了autosleep的电源管理功能 如果当前系统支持...autosleep功能,支持休眠, 那么我们 允许用户传入EPOLLWAKEUP标志; 如果当前系统不支持这样的电源管理功能,但用户还是传入了EPOLLWAKEUP标志,...如果events里设置了EPOLLWAKEUP, 还需要为autosleep创建一个唤醒源 ep_create_wakeup_source。

1.6K10

Linux电源管理(9)_wakelocks【转】

前言 wakelocks最初出现在Android为linux kernel打的一个补丁集上,该补丁集实现了一个名称为“wakelocks”的系统调用,该系统调用允许调用者阻止系统进入低功耗模式(如idle...就像国内很多的Linux开发团队,要实现某个功能,都不去弄清楚kernel现有的机制、框架,牛逼哄哄的猛干一番。最后功能是实现了,可都不知道重复造了多少轮子,浪费了多少资源。...以阻止睡眠、注销wakelock以允许睡眠:已经由“Linux电源管理(7)_Wakeup events framework”所描述的wakeup source取代。...当系统中所有的wakelock都注销后,系统可以自动进入低功耗状态:由autosleep实现(下一篇文章会分析)。...注1:上面有关wakeup source的操作接口,可参考“Linux电源管理(7)_Wakeup events framework”。

1.7K10

Linux - Linux内存管理

为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

52.2K41
领券