Android suspend之early_suspend/resume

本文探讨了Android系统中早期挂起(Early Suspend)机制的历史,该机制在早期被用来管理设备的休眠状态。然而,在Android O/P之后的源码中,这一机制已被移除,只在输入模块中保留了痕迹。文章提到了CONFIG_HAS_EARLYSUSPEND宏的使用,以及kernel社区和Android社区在wakelock机制上的分歧与融合,最终Android采用了kernel社区的wakelock实现。文章还附有早期机制的框图,展示了wakelock在用户空间设备控制中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一种过时的技术

按照网上早期的文章说,是有这么一个机制;但是在现在的Android O/P上的源码看,已经没有这个东西,仅剩下的是在input模块,也就是触摸屏这个模块有这样的字符存在。

使用宏CONFIG_HAS_EARLYSUSPEND  来控制

#if defined(CONFIG_FB) || defined(CONFIG_DRM)
	struct notifier_block fb_notif;
#elif defined(CONFIG_HAS_EARLYSUSPEND)
	struct early_suspend early_suspend;
#endif

而从out/target/product/k69v1_64/obj/KERNEL_OBJ/.config看,这个宏也是没有定义的,也就是说连touch也不会用了;

下面贴一张早期的机制框图

在早期,kernel社区拒绝wakelock机制,Android社区坚持wakelock机制,后来,kernel社区搞出了自己的一套wakelock机制,并且给Android提供了一些便利,这样Android使用kernel社区的wakelock机制重新实现了他的功能;其中sys/power/wake_lock  wake_unlock 就是妥协的产物,可以供userspace空间的一些设备直接通过这个进行suspend。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YouthTravel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值