稳定就是不出错,不崩溃
Android有两类Crash
· JavaCrash
· NativeCrash
Java crash
一般都是java曾代码触发,一般的crash工具也能捕获到,系统也有api提供。在开发过程中,通过logcat就可以看打印出来的堆栈信息。简单的话,这样就可以解决了。稍微复杂点,就需要查看更多的log,很多时候某一个crash并不是起因,那就需要再往上继续查。这种情况就复杂了,如果log完整,还是可以找到crash的原因。如果只是知道Error,但并不知为何挂,就需要在大概的多加log打印信息。从Framework层来讲,像intel,mtk的framework还是稳定的。而其他的平台比如全智、RK增加功能的方式比较粗暴。解决具体问题时,比如window token null,就检查下添加时机如何。
1 首先看崩溃的类型,是否是比较特定的那几种
拿BadTokenException举个例子:你大致就能确定一个activity正在被销毁或被销毁后dialog再去展示,造成的。这种很容易让人联想到一些不确定时长的异步操作(比如请求网络)之后才能显示的。然后,对应程序逻辑代码加上log很容易找。
2 检测是否有异常处理
有一些错误类型是不太正常的,比如执行到一个方法内发生了异常,但他对异常的一些处理导致了这段代码虽然异常,但仍然执行过去了,程序没有crash,但导致之后传递的结果或者调用产生了问题。
3 查看用户操作轨迹
这次崩溃是否由某些所特定的连锁操作做成的。
4 检查崩溃的机型,rom信息
看是否是厂商给开发者留的坑而被我们忽略了,还有一些是个人制作的rom留下了一些比较难以预料的这种坑。

本文深入探讨了Android应用的稳定性问题,包括Java和Native Crash的分类、原因及处理策略。从崩溃类型、异常处理、用户操作轨迹、机型与ROM影响、混淆配置、OpenGL注意事项等方面详细阐述了Java Crash的分析方法。对于Native Crash,文章讨论了其特点、测试工具、库缺失问题以及分析工具的使用。此外,还提到了编码实践中确保稳定性的各种思考,如日志记录、异常处理、Crash恢复和第三方工具的使用。
最低0.47元/天 解锁文章
1881

被折叠的 条评论
为什么被折叠?



