android 关机流程

本文详细介绍了Android系统的关机流程,从用户界面的关机提示开始,经过framework层的处理,再到native层的实现。当点击关机按钮后,会触发一系列操作,包括发送关机广播、设置sys.powerctl属性,最终由init进程处理并执行实际的关机操作。

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

1.ui 上有 关机提示,那是走framework 关机
正常关机flow :详细可参考:https://blog.csdn.net/pillarbuaa/article/details/79207242?utm_source=blogxgwz7
(1):UI行为
长按powerkey的行为被PhoneWIndowManager处理,然后调到GlobalActionDialog会创建显示关机对话框。
点击powerOFF以后,WindowManagerService这边会调到Shutdownthread的shutdown函数
(2)Framework关机
ShutdownThread.java从shutdown函数开始依次调用beginShutdownSequence,申请锁,防止系统休眠和黑屏;然后调用run函数开始发送关机广播,关闭AMS radio PMS等;然后调到PowerManagerService里面的lowlevelShutdown函数,向sys.powerctl这个property写值
“shutdown“
3167 public static void lowLevelShutdown(String reason) {
3168 if (reason == null) {
3169 reason = “”;
3170 }
3171 SystemProperties.set(“sys.powerctl”, “shutdown,” + reason);
3172 }
(3)native关机
property_service.cpp(/system/core/init/)因为在start_property_service函数里面创建了socket:/dev/socket/property_service,所以会通过socket去监听prop的改变,监听到Property的变化以后会去调用handle_property_set_fd,然后调到HandlePropertySet,
PropertySet(),继续调到/system/core/init/init.cpp的property

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值