- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2023年Android面试题及答案整理
如何对Android应用进行性能分析
android性能主要是指响应速度和UI刷新速度。
函数的耗时:有一个工具叫TraceView,这是AndroidSDK自带的工作,用于测量函数耗时的。
UI布局的分析:有2块,一块就是HierarchyViewer可以看到View的布局层次,以及每个View刷新加载的时间。这样可以很快定位到那块layoutView耗时最长。
通过自定义View来减少view的层次。
2.什么情况下会导致内存泄露
什么时候会发生内存泄露?内存泄露的根本原因:长生命周期的对象持有短
生命周期的对象。短周期对象就无法及时释放。
静态集合类引起内存泄露
主要是Hashmap,Vector等,如果是静态集合这些集合没有及时setNull的话,就会一直持有这些对象。
remove方法无法删除Set集里的对象,Objects.hash(firstName,lastName)经过测试,hashcode修改后,就没有办法remove了。
observer我们在使用监听器的时候,往往是addxxxlistener,但是当我们不需要的时候,忘记removexxxlistener,就容易内存leak。
广播没有unregisterrecevier
各种数据链接没有关闭,数据库contentprovider,io,sokect,cursor等。
内部类:
java中的内部类(匿名内部类),会持有宿主类的强引用this。所以如果
是newThread这种,后台线程的操作,当线程没有执行结束时,activity
不会被回收。
Context的引用,当TextView等等都会持有上下文的引用。如果有staticdrawable,就会导致该内存无法释放。
单例:单例是一个全局的静态对象,当持有某个非静态的类A时,A无法被释放,内存leak。
3.什么是OOM异常
当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到(即使做了GC操作以后),这就会抛出OutOfMemoryException也就是OOM
Android的OOM怎么样?
为了减少单个APP对整个系统的影响,android为每个app设置了一个内存上限。
HTCM7实测,192M上限。512M一般情况下,192M就是上限,但是由于某些特殊情况,android允许使用一个更大的RAM。
4.如何避免OOM
减少内存对象的占用
ArrayMap/SparseArray代替Hashmap
避免在android里面使用Enum
减少bitmap的内存占用
inSampleSize:缩放比例,在把图片载入内存之前,我们需要先计算出一个合适的缩放比例,避免不必要的大图载入。
decodeformat:解码格式,选择ARGB_8888/RBG_565/ARGB_4444/ALPHA_8,存在很大差异。
减少资源图片的大小,过大的图片可以考虑分段加载
内存对象的重复利用,大多数对象的复用,都是利用对象池的技术。
listview/gridview/recycleviewcontentview的复用
inBitmap属性对于内存对象的复用ARGB_8888/RBG_565/ARGB_4444/ALPHA_8
这个方法在某些条件下非常有用,比如要加载上千张图片的时候。
避免在ondraw方法里面new对象
StringBuilder代替+
5.Android中如何捕获未捕获的异常
通过CrashHandler,实现Thread.UncaughtExceptionHandler接口,然后是在Aapplication的oncreate里面注册。
6.ANR是什么?
ANR-ApplicationNotResponding,也就是在规定的时间内,没有响应。
三种类型:
1).KeyDispatchTimeout(5seconds)—主要类型按键或触摸事件在特定时间内无响应
2).BroadcastTimeout(10seconds)—BroadcastReceiver在特定时间内无法处理完成
3).ServiceTimeout(20seconds)—小概率类型Service在特定的时间内无法处理完成
为什么会超时:事件没有机会处理事件处理超时
7.怎样避免和解决ANR
ANR的关键是处理超时,所以应该避免在UI线程,BroadcastReceiver还有service主线程中,处理复杂的逻辑和计算而交给workthread操作。
1)避免在activity里面做耗时操作,oncreate
您可能关注的文档
- 2020年一级注册结构工程师考试《基础考试》试题及答案(附答案).docx
- 2020农民工工资支付应急预案.docx
- 2020农民工工资支付应急预案范文.docx
- 2021-2022学年山西省名校联考高二(上)期末物理试卷(附答案详解).docx
- 2021-2023北京高中合格考英语汇编:完形填空.docx
- 2021年3月青少年机器人技术等级考试理论综合试卷(四级).docx
- 2021年安全文明施工费比例.docx
- 2021年度建筑施工企业安全管理人员继续教育.docx
- 2021年检验技能竞赛笔试试题(含答案).docx
- 2021年浙江省宁波市中考英语真题(含答案).docx
- 2025-2030中国决明茶行业供需分析及发展前景研究报告.docx
- 2025-2030中国冶金化工制服行业发展分析及发展前景与投资研究报告.docx
- 牙齿拔除术护理培训.pptx
- 2025-2030中国冶金级铝土矿行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国冷冻机油行业发展分析及竞争格局与发展趋势预测研究报告.docx
- 2025-2030中国冷冻干蔬菜行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国冷冻和熟食行业市场发展趋势与前景展望战略研究报告.docx
- 2025-2030中国冷冻储罐行业市场发展趋势与前景展望战略研究报告.docx
- 牙齿治疗后护理.pptx
- 2025-2030中国冷冻疗法行业市场发展趋势与前景展望战略研究报告.docx
最近下载
- 耳穴压豆法(共34张课件).pptx VIP
- 2024年杭州市粮食收储有限公司人员招聘考试题库及答案解析.docx
- 220KV变电站电气二次部分设计毕业设计(论文).doc
- 烧结与球团生产操作与控制知识点4:造球操作造球操作.pptx
- 人力资源服务公司外包员工手册必威体育官网网址制度.docx
- 物理化学 课件第1章 热力学第一定律.ppt VIP
- 沪粤版八年级下册物理全册新质教学课件(配2025年春改版教材).pptx
- 医院培训课件:《穿脱隔离衣》.pptx
- 2006-2020 年全国地震重点监视防御区基本情况统计.pdf
- 2023年陕西国际商贸学院数据科学与大数据技术专业《数据库原理》科目期末试卷B(有答案).docx VIP
文档评论(0)