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)网络请求:网络请求很长时间内拿不到回应,需要设置重试和超时时间,并且在不同的网络情况下要进行不同关注,目前主要是在WiFi和4G下

(3)处理图片解析、视频解析等

(4)一直不停的在UI上进行更新处理,比如说网速条由很多个小点点组成,然后网速不停在变化,这些个小点点就需要不停的更新,程序需要不停的去面UI;以及下载的进度的展示,比如是通过一个圆圈或者一个横条展示进度,如果每收到一个0.1%的回调,就在UI上更新,就会导致CPU不断升高,手机很烫,最后崩溃

对于这个情况来说,如何处理呢?

网速条的小点变化,需要研究不同的IOS系统下的不同函数,出现过IOS9.3刚出现时,程序崩溃,因为系统API的兼容问题

下载进度展示:可以不用每收到一个回调就更新界面,可以等待每5%的时候,再更新UI

7、与兼容相关的问题——

不同的sdk的API,或者不同IOS系统的API,具体调用时可能会有差异,另外不同安卓手机,可能rom在厂家进行了一些处理之后,也会有差异,针对不同的情况都需要进行处理;

所以根据2-8原理,优先保证占比最多的系统和机型的兼容,之后再针对更多机型进行适配。

在安卓端,会存在很多低端机,比如几年前的老手机,本身配置较低,有些处理在这些机器上就跑不起来;或者是:操作系统的版本很低

在IOS端,目前的4S、5、5C都可以算在低端机的范畴上,IOS7就是低端系统,这些系统上很容易因为本身配置低更容易出现性能问题,表现出来的就是同样的操作,在这些机器上更容易闪退

5S以下的机器都是32位的系统,以上都是64位的系统,针对数据的处理也需要特别对待,比如后台服务器升级了,数据都升级成64位的了,那对于32位的系统要怎么处理要提前确认好

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

  1. android app启动就闪退怎么办?

    开发过程中,如遇到android app启动就闪退,不要急,直接进入调试模式运行app,就会取得出错的原因. http://blog.sina.com.cn/s/blog_44fa172f0102wg ...

  2. Android Studio Activity Intent 闪退崩溃 Toolbar

    今天写登录注册页面,点击登录页面的“注册”按钮后软件突然崩溃,直接闪退,因为是新手,只能去网上搜.虽然网上解决方法众多,但也没找到可行的.想起来可以看Logcat,马上重新运行应用,查看崩溃时的日志, ...

  3. JAVA Eclipse开发Android程序会经常闪退是怎么回事

    类没有new就直接用会闪退,比如下面我在前面声明了ClientSocket的类,点击连接按钮之后,如果不先new就直接Connect就会闪退   你在当前页面创建findViewById的时候,如果找 ...

  4. Android实现多次闪退清除数据

    背景 很多时候由于后台返回的数据异常,可能会导致App闪退.而如果这些异常数据被App本地缓存下来,那么即使杀掉进程重新进入还是会发生闪退.唯一的解决方法就是清除App数据,但是用户可能没有这个意识或 ...

  5. android 提高进程优先级 拍照永不崩溃(闪退)

    首先科普一下Android系统进程的优先级: 当系统的内存不足时, android系统将根据进程优先级选择杀死一些不太重要的进程. 进程优先级从高到低分别为: 1. 前台进程. 以下的进程为前台进程: ...

  6. 开发android过程中eclipse闪退解决

    有一次eclipse崩溃了,然后再双击就无法打开了.换了几个版本也是如此. 后来找到了这个方法:删除文件 [workspace]/.metadata/.plugins/org.eclipse.e4.w ...

  7. Android 防止切换横屏闪退

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...

  8. MacOS修复TNT和谐软件运行崩溃、闪退问题

    因为Apple删除了TNT的证书,因此部分应用程序出现了打开崩溃的情况. 目前的解决方案是自己更改签名. 第一种方法: 在终端中运行以下命令:(注意:name.app就是需要更改签名的程序) sudo ...

  9. Mac 更换桌面背景崩溃(闪退)

    更新完系统后就会出现这种情况,,其实就是用户偏好文件出了问题. 1. 在终端输入 cd /Users/YourUserName/Library/Preferences //进入文件夹 rm com.a ...

随机推荐

  1. 有向图强连通分量 Tarjan算法

    [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连通图.非强连通图有向图的极 ...

  2. 【ZJOI2004】嗅探器

    练tarjian不错的题,连WA几次后终于会记住tarjian的模板了 原题: 某军搞信息对抗实战演习.红军成功地侵入了蓝军的内部网络.蓝军共有两个信息中心.红军计划在某台中间服务器上安装一个嗅探器, ...

  3. 利用OpenMP实现埃拉托斯特尼(Eratosthenes)素数筛法并行化 分类: 算法与数据结构 2015-05-09 12:24 157人阅读 评论(0) 收藏

    1.算法简介 1.1筛法起源 筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratos ...

  4. 黑马程序员——JAVA基础之反射

      ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! -------     Java 反射是Java语言的一个很重要的特征,它使得Java具体了"动态 ...

  5. 支持向量机(SVM)基础

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  6. elasticsearch【更新】操作

    基于上一篇博文基础上,进行es的操作,document的新增比较简单,就不说了,这里主要说说更新操作. 更新操作,有两大类,一个是Replace,一个是Update,就是说一个是替换,一个是更新. 替 ...

  7. Swagger+Spring mvc生成Restful接口文档

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  8. MSSQL 获取汉字全拼 和 汉字首字母

    --获取全拼 DECLARE @str VARCHAR(max) SET @str= [dbo].[fn_Getquanpin]('中山') PRINT(@str) )) ) as begin ),) ...

  9. 通过Java Api与HBase交互(转)

    HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ...

  10. ADF_Desktop Integration系列4_ADF桌面集成入门之部署ADF Desktop Excel

    2013-05-01 Created By BaoXinjian