您的位置:首页 > 移动开发 > Android开发

Android常见崩溃或闪退的问题描述及原因总结、及与性能相关的模块——持续更新

2015-05-09 17:35 621 查看
1、nullpointer——就是使用一个对象的时候还没有对其进行初始化导致该问题

一般在何种情况下容易出现呢?

(1)父窗口+子窗口同时出现的,父窗口因为某种原因消掉了,子窗口还在,操作子窗口找不到父窗口的pid,就会出现问题

(2)加载过程中进行刷新或者其他点击操作,可能某种资源还没有初始化成功,就会出现该问题

(3)异常情况下,比如断网了,比如需要连接的设备没有连接,则相应资源拿不到,此时点击某些按钮,也会出现该问题

2、OOM——在视频\图片的来回切换,比如横竖屏的来回切换过程中比较容易出现,因为本身机子比较卡,内存小的话,加载比较大的图片或视频就容易这个问题

解决方案:

(1)可以把加载的处理从上层挪到底层,比如从上层的Java层挪到底层的C++层,这样就会比较省内存

(2)针对不同的像素的手机做不同的适配(比如图片像素也发生变化,否则高像素的图片在低像素的手机上也没有感知)

3、卡死——遇到过很多次,开发的解释基本上都是前一个界面是一个window,后一个界面也是一个window,然后前一个界面切到后一个界面的时候,前面的window没消掉,导致覆在了后一个界面上方,结果就出现了卡死的问题

4、IOS上很容易出现一类问题——也就是安卓上的nullpointer的问题,是nil object的问题,特别容易出现的就是将nil object insert into dict中时,必然崩溃,而且这种情况很多,因为很多数据结构都用字典

5、内存不足导致的崩溃——比如说内存没有释放,一长条列表下有N个资源需要展示,不断下拉,上面的资源没有释放,所分配的内存越来越多,最后当然会崩溃

6、与性能相关的模块——

容易出现内存问题的模块——

(1)图片相关:连续发送图片和查看图片,重点是查看图片(比如可循环来回查看图片,之前的内存都不释放,就可能出现问题);尤其是查看的单张图片很大的话

(2)视频相关:不断反复观看返回继续观看,可能播放器的资源没有释放,导致内存不断增长

CPU问题——

(1)错误处理没有加超时不断重试,放在死循环里了——只要搞一个错误数据,程序就会反复请求,结果导致程序必崩

(2)网络请求

(3)处理图片解析、视频解析等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: