Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的。

这里把Android平台程序崩溃的各种类型做一个简述和原因列举。

1.ANR(可见ANR):

发生场景:应用发生ANR。

崩溃症状:系统弹出窗口询问用户选择“Force Close”或者“Wait”。

“Force Close”将杀掉发生ANR的应用进程。“Wait”将会等待系统择机恢复此应用进程。

发生原因:(1)应用主线程卡住,对其他请求响应超时。(2)死锁。(3)系统反应迟钝。(4)CPU负载过重。


2.Force Close:

发生场景:应用进程崩溃。

崩溃症状:系统弹出窗口提示用户某进程崩溃。

发生原因:空指向异常或者未捕捉的异常。


3.Tombstones:

发生场景:Native层崩溃

崩溃症状:如果发生崩溃的native层和UI有关联(比如Browser),我们可以在UI上发现这个崩溃。

如果发生崩溃的native层是在后台并且和UI没有直接联系,那么对于用户来说是不可见的,如果是debug版本可能会有Log打印出当时的底层现场。

发生原因:各种各样,需要具体情况具体分析。


4.系统服务崩溃(System Server Crash):

发生场景:系统服务是Android核心进程,此服务进程发生崩溃。

崩溃症状:手机重启到Android启动界面

发生原因:(1)系统服务看门狗发现异常。(2)系统服务发生未捕获异常。(3)OOM。(4)系统服务Native发生Tombstone。


5.Kernel Panics:

发生场景:Linux内核发生严重错误

崩溃症状:手机从bootloader开始完全重启

发生原因:(1)Linux内核内存空间发生内存崩溃。(2)内核看门狗发现异常。(3)空指针操作内核。

更多相关文章

  1. 转:Android进程生命周期
  2. Android中添加syslog功能
  3. 系统学习android开发技术 android三部曲
  4. Audio系统综述
  5. init进程详细分析--基于android 10
  6. init进程 && 解析Android启动脚本init.rc && 修改它使不启动andr
  7. Android(安卓)系统入门
  8. Android释放内存(结束进程)
  9. 深入浅出 - Android系统移植与平台开发(四)- Android启动流程

随机推荐

  1. 企业级使用LAMP源码安装教程
  2. MySQL数据库体系架构详情
  3. 浅谈MYSQL主键约束和唯一约束的区别
  4. MySQL多实例安装开机自启动服务配置过程
  5. mysql5.7单实例自启动服务配置过程
  6. MySQL数据库主从复制原理及作用分析
  7. MySQL 基础常用命令总结
  8. MySQL示例DTID主从原理解析
  9. 为什么mysql自增主键不是连续的
  10. 浅谈Mysql主键索引与非主键索引区别