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

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



1.ANR(可见ANR):





发生场景:应用发生ANR。





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





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

发生原因:

(1)应用主线程卡住,对其他请求响应超时。

(2)死锁。

(3)系统反应迟钝。

(4)CPU负载过重。

2.Force Close (FC):





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





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





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





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)空指针操作内核。

Android常见Crash原因总结(二)的更多相关文章

  1. Android 常见Crash Log汇总

    一.BinderProxy@4479b390 is not valid; is your activity running? 原因分析: 因为使用了AsyncTask 异步线程在线程完成以后的onPo ...

  2. Android常见Crash类型分析(一)

    问题1.   java.lang.IllegalStateException: The specified child already has a parent. You must call remo ...

  3. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  4. android 常见内存泄漏原因及解决办法

    android常见内存泄漏主要有以下几类: 一.Handler 引起的内存泄漏. 在Android开发中,我们经常会使用Handler来控制主线程UI程序的界面变化,使用非常简单方便,但是稍不注意,很 ...

  5. Android常见UI组件之ListView(二)——定制ListView

    Android常见UI组件之ListView(二)--定制ListView 这一篇接上篇.展示ListView中选择多个项及实现筛选功能~ 1.在位于res/values目录下的strings.xml ...

  6. Android系列之网络(二)----HTTP请求头与响应头

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. Android Native crash日志分析

    在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学 ...

  8. Android常见面试笔试题目

    Android常见面试笔试题目 1.在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 答:可以处理消息循环的线程,他是一个拥 ...

  9. Android程序crash处理

    Android程序crash处理 时间 2014-11-24 13:45:37  CSDN博客 原文  http://blog.csdn.net/allen315410/article/details ...

随机推荐

  1. Asp.net core 2.0.1 Razor 的使用学习笔记(五)

    按说这里应该写关于Role角色类的笔记,但是我还没时间实验这块,所以等以后我搞定了再来分享.现在先写其他部分. Asp.net core 2.0.1 Razor 的使用学习笔记——建立模型 按照微软官 ...

  2. 面试中的Java链表

    链表作为常考的面试题,并且本身比较灵活,对指针的应用较多.本文对常见的链表面试题Java实现做了整理. 链表节点定义如下: static class Node { int num; Node next ...

  3. maven将本地jar包导入本地仓库

    从maven中央仓库下载下来的jar包手动导入本地库,如下图 以下其中maven的dependency <dependency> <groupId>org.molgenis&l ...

  4. @Controller注解

    Spring从2.5版本后开始引入注解,用户可以使用@Controller,@RequestMapping,@RequestParam,@ModelAttribute等类似这样的注解. @Contro ...

  5. 21_python集合总结

    集合 1.无序的:没有索引,不能改和删出某个元素,不能返回某个索引元素2.不可重复 : 可以利用set去重3.数学运算:交集.并集.差集,反交集,超集/子集4.里面的元素:必须是可哈希的,不可变的.他 ...

  6. wpf动画同步闪烁

    public class BlinkAnimation : Animatable { /// <summary> /// 单例,保持所有闪烁的动画同步 /// </summary&g ...

  7. iOS-Runtime之关于页面跳转的捷径【Runtime获取当前ViewController】

    写在前面 在我们操作页面跳转时,如果当前的类不是UIViewcontroller(下面用VC表示),你会不会写一个代理,或者block给VC传递信息,然后在VC里面进行 ///假如targetVc是将 ...

  8. SSD写入放大问题[转]

    原文地址:http://blog.csdn.net/cywosp/article/details/29812433 之前在SSD(Solid State Drive)上设计并实现缓存系统用于存储数据块 ...

  9. WebStorm11

    1.下载补丁 1.下载地址:http://pan.baidu.com/s/1gdnrdWv 2.拷贝下载的文件 JetbrainsCrack.jar 到 /bin目录下(是指你的软件安装根目录) 2. ...

  10. 扩展 KMP

    扩展KMP解决这样一些问题: 给定两个字符串 S 和 T(长度分别为 n 和 m),下标从 0 开始,定义extend[i]等于S[i]...S[n-1]与 T 的最长相同前缀的长度,求出所有的ext ...