美文网首页
Android面试复习-ANR,OOM

Android面试复习-ANR,OOM

作者: Margolu | 来源:发表于2019-07-30 21:28 被阅读0次

一.ANR

1.什么是ANR

Application Not Responding,页面无响应的对话框

2.发生ANR的条件

应用程序的响应性是由ActivityManager和WindowManager系统服务监视的,当ANR发生条件满足时,就会弹出ANR的对话框

Activity超过5秒无响应

BroadcastReceiver超过10秒无相应

Service超过20秒无响应

3.造成ANR的主要原因

主线程IO被阻塞

Activity的所有生命周期回调都是执行在主线程的

Service默认执行在主线程中

BroadcastReceiver的回调执行在主线程中

AsyncTask的回调除了doInBackground,其他都是在主线程中

没有使用子线程looper的handler的sendMessage,post(Runnable)都是执行在主线程中

4.解决ANR

使用AsyncTask处理耗时IO操作

使用Thread或HandlerThread提高优先级

使用Handler处理工作线程的耗时操作

Activity的onCreate和onResume回调尽量避免耗时操作

二.OOM

1.什么是OOM

out of memory内存溢出,当前占用内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出Out of memory

2.相关概念

内存溢出:程序在申请内存时,没有足够的空间供其使用

内存泄漏:程序分配出去的内存不再使用,无法进行回收

内存抖动:程序短时间内大量创建对象,然后回收的现象

3.解决OOM

Bitmap相关

图片压缩

加载缩略图

在滚动时不加载图片,回收Bitmap,使用inBitmap属性

捕获异常

其他相关

listView重用convertView,使用lyu

避免onDraw方法执行对象的创建

谨慎使用多线程

相关文章

  • Android面试复习-ANR,OOM

    一.ANR 1.什么是ANR Application Not Responding,页面无响应的对话框 2.发生A...

  • 【绝对干货】超全Android中高级面试复习大纲,覆盖所有面试知

    【绝对干货】超全Android中高级面试复习大纲,覆盖所有面试知识!(上篇) ANR面试题 1、什么是ANR Ap...

  • Android面试——OOM及ANR

    一、什么是oom? OOM就是当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出的...

  • Android优化总结

    极力推荐文章:欢迎收藏Android 干货分享 1.OOM和崩溃优化 1.2 ANR优化 ANR的产生需要满足三个...

  • Android ANR & OOM

    1. ANR ANR全名Application Not Responding,也就是“应用无响应”。如果你的应用程...

  • Android anr和oom

    anr 引发anr原因 antivity所有生命周期回调都是在主线程中操作的 service默认在主线程中操作的 ...

  • Android 内存泄漏

    【Android 内存泄漏】 引用: ★★★ 【知识必备】内存泄漏全解析,从此拒绝ANR,让OOM远离你的身边,跟...

  • Android超实用最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • Android最全面试大纲(三)

    文章目录: ANR面试题 OOM面试题 Bitmap面试题 UI卡顿面试题 内存泄漏面试题 内存管理面试题 一、A...

  • OOM ANR及一些优化方案

    做Android也有几年了,关于OOM和ANR的问题在面试和工作中也遇到了很多次,对二者的理解和一下解决办法很散乱...

网友评论

      本文标题:Android面试复习-ANR,OOM

      本文链接:https://www.haomeiwen.com/subject/oxvorctx.html