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
android 关机流程
最新推荐文章于 2022-09-22 08:31:37 发布