我是靠谱客的博主 昏睡汽车,最近开发中收集的这篇文章主要介绍Android系统稳定性----Crash发生场景发生问题的原因常见的异常(分了十大类,在开发的过程中逐渐补充):发生crash怎么办解决办法如何避免crashCrash问题的背景分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Crash、FC、froce close

发生场景

应用进程崩溃。强制关闭,android App 因为代码异常导致奔溃。

表现形式主要有两种

1.      Java 代码引起,弹出错误的提示框,JVM虚拟机退出,绝大多数的工具可以捕获。

2.      C++代码引起,没有任何提示,直接回到桌面,所谓的闪退,一般是Linux程序退出,大部分发生在视频,游戏类与底层密切相关的软件上

 

发生问题的原因

1.    Error  //程序错误

OOM(out of memory error) //内存溢出

StackOverFlowError //堆栈溢出错误

2.RuntimeException//运行时异常----需要了解Exception机制,比如空指针啦,类没有找到啦,资源没找到,就连Android API使用的顺序错误也可能导致(比如setContentView()之前进行了findViewById()操作)

常见的异常(分了十大类,在开发的过程中逐渐补充):

一.Java语法相关的异常

二.Activity相关的异常

三.序列化相关的异常

四.列表相关的异常

五.窗体相关的异常

六.资源相关的异常

七.系统碎片化相关的异常

八.SQLite相关的异常

九.不常见异常

十.其它异常

 

发生crash怎么办

获取问题发生时的堆栈信息和日志

Eclipse logcat

Adb logcat获取缓存,adb logcat –v time> d:

 

解决办法

log,定位问题

Crash问题的定位关键词,crashFatalcaused by

caused by是真正的原因,提供包名+类名+方法名+行号等的关键信息

查看日志,定位到问题是哪里抛出来的异常,什么情况下回抛出异常,这时候需要一套源代码,或者OpenGrok的网站,

http://androidxref.com/

如何避免crash

1.    在程序中重要的地方,容易出错的进行try catch捕获异常,自己捕获异常,处理异常,

2.    优化代码提高代码质量,通过各种工具如findbugs查找代码漏洞

 

Crash问题的背景分析

对于一个开发者来说,crash会带来用户的投诉,差评,甚至卸载,属于Abug,必须解决

传统的做法是:等待用户反馈,被动

先进的做法:一个健壮的APP应该能够搜集运行中所有的Crash信息,已知的异常,不严重的问题,我们可以进行捕获,但我们不可能在所有的方法中添加try……catch……进行保护,需要一个统一的方法进行一网打尽,UncaughtExceptionHandler,我们一般设计一个CrashHandler类继承自UncaughtExceptionHandler,重写UncaughtException方法,进行异常捕获并处理,注意该方法只处理未被捕获的异常,try……catch捕获的异常需要自己去处理。UncaughtExceptionHandler如何接入?我们只需要在Application初始化的时候获取实例,进行设置。

CrashHandler crashHandler = CrashHandler.getInstance();

crashHandler.init(this);

市面上应对APP线上的Crash问题一般有两种方法,记录到第三方平台或者记录到自己的数据库中。无论使用第三方或者自己的,都需要一个类作为入口进行收集crash信息,

使用第三方的SDK,收集问题,上传堆栈信息日志到平台,并且提供统计数据,帮助开发者改善用户体验,除此之外,还提供技术支持,告诉你bug怎么修复。推荐崩溃大师+腾讯bugly,这些第三方的SDK官网都有详细的说明,有空了研究下

最后

以上就是昏睡汽车为你收集整理的Android系统稳定性----Crash发生场景发生问题的原因常见的异常(分了十大类,在开发的过程中逐渐补充):发生crash怎么办解决办法如何避免crashCrash问题的背景分析的全部内容,希望文章能够帮你解决Android系统稳定性----Crash发生场景发生问题的原因常见的异常(分了十大类,在开发的过程中逐渐补充):发生crash怎么办解决办法如何避免crashCrash问题的背景分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(28)

评论列表共有 0 条评论

立即
投稿
返回
顶部