可能导致Android手机死机的原因

死机现象:

1. 死机/phong hang 定义
当手机长时间无法再被用户控制操作时,我们称为死机或者hang 机。
在这里我们强调长时间,如果是短时间,我们归结为Perfomance 问题,即性能问题.

2. 死机表现
* 用户操作手机无任何响应, 如触摸屏幕,按键操作等.
* 手机屏幕黑屏, 无法点亮屏幕.
* 手机界面显示内容和用户输入风马牛不相及.

可能导致Android手机死机的原因:

1. 系统简图
当用户对手机进行操作时, 对应的数据流将是下面一个概括的流程图.

* HW 如传感器, 触摸屏(TP), 物理按键(KP)等感知到用户操作后,触发相关的中断(ISR) 传递给Kernel, Kernel 相关的driver 对这些ISR 进行处理后,转化成标准的InputEvent.  
* User Space 的System Server 中的Input System 则持续监听Kernel 传递上来的原始InputEvent, 对其进行进一步的处理后, 变成上层APP 可直接处理的Input Event, 如button 点击, 长按, 滑动等等.
* APP 对相关的事件进行处理后,请求更新相关的逻辑界面,而这个则由System Server 中的WMS 等来负责.
* 相关的逻辑界面更新后(Z-Window), 则会请求SurfaceFlinger 来产生FrameBuffer 数据, SurfaceFlinger 则会利用GPU 等来计算生成.
* Display System/Driver 则会将FrameBuffer 中的数据更新显示出来, 这样用户才能感知到他的操作行为.
 
2. 可能死机的原因
原则上上面流程中,每一步出现问题,都可能引发死机问题. 大的方面将,可以分成硬件HW 和 软件SW 两个层次, 硬件HW 不在我们的讲诉之内.
软件SW 上,死机的原因可以分成两种:
(1). 逻辑行为异常
 ** 逻辑判断错误
 ** 逻辑设计错误
 
(2). 逻辑卡顿(block)
 * 死循环 (Deadloop)
 * 死锁 (Deadlock)
 
从具体的原因上将,可以进一步分成:
(1). Input Driver
* 无法接收HW 的中ISR,产生原始的InputEvent, 或者产生的InputEvent 异常.
(2). Input System
* 无法监听Kernel 传递上来的原始InputEvent, 或者转换与传递异常.
(3). System Logic
* 无法正常响应Input System 传递过来的InputEvent, 或者响应出错.
(4). WMS/Surfaceflinger 行为异常
* WMS/SF 无法正确的对Z-Window 进行叠加转换
(5). Display System
* 无法更新Framebuffer 数据,或者填充的数据错误
(6). LCM Driver
* 无法将Framebuffer 数据显示在LCM 上
 
对应硬件HW hang, 经常见得的情况有:
* Power  
* Clock
* Memory & Memory Controller
* Fail IC



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值