深入解析Android关机
2016-04-26 20:21
459 查看
当我们长按电源按钮时,手机里究竟发了什么?
什么又是关机顺序?
Android的关机顺序与Linux桌面系统有何不同?
如何更改关机菜单?
当我们说起Android的关机顺序时,许多诸如此类的问题便会涌进我们的脑袋。 不过,在继续阅读之前,建议您首先能对开机顺序有一个了解开机顺序文章。
Android是基于Linux内核的开源操作系统。尽管x86(x86 是一系列计算机微处理器指令集及其架构的统称,这种架构基于Intel 8086 CPU)是大多数Linux系统所采用的处理器架构,然而绝大多数Android系统却运行于ARM架构之上(ARM,又称Advanced RISC Machine,其前身为Acorn RISC Machine),除了来自Intel的Xolo设备。这种移动设备使用了Atom 1. 6Ghz x86处理器。 但不论哪种架构,Android的关机顺序都区别于Linux的桌面系统,如Ubuntu、Fedora等。 本文主要介绍Android的关机顺序, 如果想更多地了解Linux桌面系统的关机顺序,请参考Linux的启动与关闭流程。
下图详细阐释了Android的关机顺序。
第一步: 按住电源按钮半秒钟(500ms)。
第二步: 之后,PhoneWindowManager.java 将捕获长按电源按钮这一事件并调用“interceptKeyBeforeQueueing”方法。
下面是处理长按电源键事件的代码片段
下面的代码展示了 interceptPowerKeyDown 函数内容, 函数将注册一个回调函数,在500毫秒超时事件(ViewConfiguration#getGlobalActionKeyTimeout())触发时启动 mPowerLongPress 线程。
第四步: 若用户选择“关闭电源“,则对系统的控制将交回给 PhoneWindowManager, 然后由PhoneWindowManager 启动关闭流程。
第五步: 整个关机过程起始于ShutdownThread模块中的shutdowninner方法。该方法首先创建一个确认对话框给用户, 用户可以选择确认关机或是取消关机操作。 如果用户选择确认,则系统将真正进入关机流程。
第六步: 如上所述,当用户点击确认按钮后beginShutdownSequence方法将被调用以启动关机顺序。
相关文章推荐
- android textview 自动链接网址 修改默认点击事件
- Android缓存处理
- Android开发之Intent.Action
- Android应用性能调试
- 使用Fresco下载图片
- Android内存优化之OOM
- Android中Touch事件的总结
- 解决Android帧动画在Oncreate中启动只显示第一帧
- android OOM分析工具LeakCanary
- Android中Canvas绘图基础详解(附源码下载)
- (4.6.11.3)告别编译运行:Instant Run ---- Android Studio 2.0 Preview发布功能
- Android自定义Dialog实现弹出它的Activity背景变暗,并自定义Dialog的大小
- android:ToolBar详解
- Android群英传--绘图机制与处理技巧(三)
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android AssetManager <1>
- 学习笔记(八)数据存储
- Android懒人专用RecyclerView+懒人专用Adapter+懒人专用animator+下拉上拉侧滑等
- Android BLE浅析
- Android读书笔记(一)Activity退出时释放内存