cm-14.1 Android系统启动过程分析(n)- 关机/重启/重置/升级的那些事(偏嵌入式方向)

news2024/9/30 13:23:08

声明

  • 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。
  • 本文参考了一些书籍的若干章节。
  • 本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编译、刷机

1 关机和重启

  按下电源键,会产生一个中断,然后该中断会被Linux内核捕获到,并被内核转换成一个输入事件,再作为一个EV_KEY/KEY_POWER/DOWN事件传给Android运行时(Runtime)。和其他所有事件一样,该事件会依次交给Android的InputReader和InputDispatcher(这两个都是system server线程),后者会把该事件传递给WindowPolicy对象。如果按键的时间足够长(这个时长是定义在 ViewConfiguration的GLOBAL_ACTIONS_KEY_TIMEOUT上的常量500毫秒)默认的WindowPolicy对象(com.android.internal.policyimpl.PhoneWindowManager)就会拦截到该事件,并(通过调用GlobalActions.showDialog()方法) 在屏幕上弹出一个菜单。
在这里插入图片描述
  如果用户确实是要关机,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-初学者系列——篇幅3_操作界面获取帮助

操作界面获取帮助-目录1、获取帮助信息-man2、获取帮助信息-help3、获取帮助信息-info上篇: Linux-初学者系列——篇幅2_系统命令界面 利用帮助命令自学:man help info1、获取帮助信息-man 查看命令和部分文件帮助说明信息 使用方法: man [参数选项]…

Linux-系统大概介绍

桌面和终端基本使用 使用CtrlAlt可以取消状态,利于TabAlt切屏 在Linux中,WIN键是Super键 打开终端,终端有点像Windows的命令行,然后Ctrlaltf2可以切换为纯命令行,Ctrlalt是调出鼠标,Ctrlaltf1切回图形用户…

Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

一、通信时会传输哪些内容 1、字符串数据 简单的字符串:比如登录请求信息,登录结果返回的信息。 用json系列化的字符串:比如上传一个表到服务器,让它写入到数据库中。 读取文件的时候,读取的是string内容。 2、二进制…

如何使用Midjourney自己设计独特的Logo,常用的提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、提示技巧二、图案标志(图形)1.最小线条标志(Minimal Line Marks)2.渐变标志(Gradient Marks)3.中式标志(Chinese Style Marks)三、抽象/几何标志四、徽章设计五、吉祥物Logo六、平面设计七、其它一些Logo八、好用的Midjourney提示词网站生成…

Java通过继承的方法来实现长方形的面积和体积

目录 前言 一、测试.java类 1.1运行流程(思想) 1.2代码段 二、Changfangxing.java类 1.1运行流程(思想) 1.2代码段 三、Jxing.java类 1.1运行流程(思想) 1.2代码段 1.3运行截图 前言 1.若有选择…

【通用篇】chrome调试技巧

一、前言 Google Chrome 是一款由 Google 公司开发的免费网页浏览器,它的特点是速度快、安全、简单易用。它的市场份额长期位居全球第一,受到了广泛的用户和开发者的欢迎。 Chrome DevTools 是 Chrome 浏览器内置的一组开发者工具,旨在帮助…

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行 使用tensorflow object detection进行训练检测 参考原始代码:https://github.com/tensorflow/models/tree/master/research 我用的是1.x的版本 所以环境必须有gpu版…

初级算法-二叉树

主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-二叉树一、递归遍历二、迭代遍历三、统一迭代法四、层序遍历五、翻转二叉树六、对称二叉树七、二叉树的最大深度八、二叉树的最小深度九、完全二叉树的节点个数十、平衡二叉树十一、二叉树…

浅说黄河三门

黄河是一首雄浑的诗。 黄河是一幅神奇的画。 她从雪域高原走来,一路接百川、纳细流,穿山越岭。 在行至内蒙古托尧托县的河口镇时,骤然调头南下,滚滚河水如一把利剑,将偌大的黄土高原一劈两半。 在秦晋两省的边界线上…

网络安全自学笔记+岗位介绍

我就在这个行业,目前湖南,薪资就没必要说了,高就对了。 这个行业优势就是工资高,缺点就需要一直学,卷得要死,不是跟别人卷,而是自己卷,一会后面细说 这个行业目前分为几个岗位&#…

Hadoop之HBase

文章目录一、HBase简介二、HBase结构1.1HBase逻辑结构1.2HBase物理结构1.3HBase基础架构三、HBase安装配置3.1单机模式3.2集群搭建四、HBase JAVA API一、HBase简介 《HBase官方文档》的原文地址是:http://hbase.apache.org/book.html W3Cschool.cn进行整理翻译 ht…

C++linux高并发服务器项目实践 day6

Clinux高并发服务器项目实践 day6exec函数族介绍execlexeclp其他进程控制进程退出孤儿进程僵尸进程进程回收wait()函数waitpid()函数exec函数族 介绍 exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说&#xff…

【路径规划】Dubins路径

简介 在无障碍物的情况下,路径规划中最简单的形式,就是将路径看作是由直线段和常曲率圆弧段组成,这就是Dubins路径。Dubins路径可以简单的理解为:在最大曲率限制下,平面内两个由方向的点间的最短可行路径是 CLC 路径或…

[STM32F103C8T6]基于LCD和DHT11、HC08的温湿度检测系统并上传服务器

项目实际图 本次项目需要整合LCD1602、DHT11、HC08、继电器 1.首先是LCD1602显示程序 封装管脚,这样的话写时序的时候不用随时都在哪儿HAL_GPIO_WritePin #define RS_GPIO_Port GPIOB #define RW_GPIO_Port GPIOB #define EN_GPIO_Port GPIOB #define RS_Pin GPI…

PP模块-生产主数据之一-物料主数据

物料主数据的配置主要在 MM 模块中进行管理,一般由MM顾问或MDM的顾问负责流程梳理、规则讨论、并主导完成数据收集工作。所以在SAP系统项目的实施过程中,根据系统对物料主数据数特有的配置对象要求,与业务负责人进行讨论并达成一致&#xff0…

FreeRTOS如何解决访问冲突/线程不安全(临界段、互斥锁、挂起调度、看门人任务)

在多任务(多线程)系统中,存在一个隐患,那就是多线程的访问(在FreeRTOS中就是任务)。当一个任务A开始访问一个资源(外设、一块内存等),但是A还没有完成访问,B任…

精通 TensorFlow 2.x 计算机视觉:第二部分

原文:Mastering Computer Vision with TensorFlow 2.x 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,…

【RabbitMQ学习日记】—— 再见RabbitMQ

一、发布确认高级篇 在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复如何才能进行 RabbitMQ 的消息可靠投递呢? 特别是在这样比较极端的情…

MYSQL:数据类型与运算符、MySQL函数

一.部分需要学会的操作(以举例形式列出): insert into tmp15 values(This is good,50); /*向tmp15插入note 为 “This is good”,price为50的元素*/ 注:需要严格对应字段和元素属性的位置 select * from tmp15 /*查…

【Diffusion Model】Learning notes

来自 扩散模型 Diffusion Model 1-1 概述 扩散模型是什么? 本质是生成模型,拟合目标分布,然后生成很多数据符合这个分布 训练测试阶段? 和 GAN 相比优势是什么? generator 和 discriminator 两者都得训练的比较均衡…