ANR和FC
来源:互联网 发布:原生js返回顶部火箭 编辑:程序博客网 时间:2024/06/07 23:31
1. ANR的定义(Application Not Responding)
翻译过来就是应用程序无响应,此时正在运行的应用程序会变得很慢,反应不灵敏(一般来说,超过100毫秒的时间用户就会感知到阻滞感)
这三点,如果你在主线程里这样做,当然会使主线程阻塞啦。
1. 创建UI控件
2. 更新UI控件状态
3. 事件处理
解决办法其实很简单,为每一个耗时的操作都开一个子线程,分别在子线程里执行,然后把结果通过Handler来传递给主线程,然后主线程负责进行做出对应的处理。
2. FC的定义(Forced Close)
翻译过来就是被迫退出,程序或ROM出现了比较严重的错误,必须退出重启。原因大概有一下
1. Error
- OOM(out of memory error) 内存耗尽
- StackOverFlowError 堆栈溢出
2. RuntimeException 运行时错误
以上的问题大多是我们写代码时犯下的逻辑错误或者优化做的非常差,这是绝对绝对不允许出现的。至于解决办法就是DEBUG你懂得。常用的方法无非就是Log打印日志或者借助工具(例如强大的curl,等我用熟了再写一篇来介绍一下它,好的),其实能够熟练运用logcat,明白log各段的大致意思、擅于运用Filter就能够解决大多数问题了。
logcat
- logcat日志中的优先级/tag标记:
android输出的每一条日志都有一个标记和优先级与其关联。
优先级是下面的字符,顺序是从低到高:
V — 明细 verbose(最低优先级)
D — 调试 debug(Log.d在这里显示)
I — 信息 info
W — 警告 warn
E — 错误 error
F — 严重错误 fatal
S — 无记载 silent - 如果想在在手机内记录logcat需要添加许可
<uses-permission android:name="android.permission.READ_LOGS" />
手机内取得log
try { ArrayList<String> commandLine = new ArrayList<String>(); commandLine.add( "logcat"); commandLine.add( "-d"); commandLine.add( "-v"); commandLine.add( "time"); commandLine.add( "-s"); commandLine.add( "tag:W"); Process process = Runtime.getRuntime().exec( commandLine.toArray( new String[commandLine.size()])); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()), 1024); String line; while ((line = bufferedReader.readLine()) != null) { log.append(line); log.append("\n"); } } catch ( IOException e) { }
0 0
- 【Android】ANR和FC
- ANR和FC
- Android两种常见错误(ANR和FC)解决办法
- Android两种常见错误(ANR和FC)
- Android两种常见错误-ANR和FC(Force close)
- Android ANR 与FC 异常总结
- ANR 与FC 异常概念理解
- Android-AsyncTask及UncaughtExceptionHandler捕获全局性异常(ANR、FC)
- fc
- FC
- FC
- ANR 是什么?怎样避免和解决 ANR
- ANR是什么?怎样避免和解决ANR
- ANR分析和实例
- ANR分析和实例
- ANR定位和修正
- ANR定位和修正
- ANR定位和修正
- KMP算法与next数组的代码初步实现
- 《高性能MySQL》
- mysql触发器+mysql_udf_http
- 《JAVA继承与多态》利用继承实现MyStack,MyStack是用组合实现的。扩展ArrayLis
- Cocos2d-x跨平台手机游戏开发学习路线图
- ANR和FC
- 限制安全角色访问特定字段
- 本地图片选择器(picasso框架)
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- java反射——运用反射生成jdk动态代理
- java GUI 图形界面编程
- SVM开发详解
- 第10、11周项目2 - 存储班长信息的学生类(2)
- URL编码与解码