android面试

本文深入探讨了Android开发中的关键概念和技术,包括JAVA多线程、Activity生命周期管理、内容提供者(ContentProvider)使用策略等,同时提供了针对ANR、OOM等问题的诊断与解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)基础知识类

1.对JAVA多线程的理解,JAVA线程的状态机,及状态间切换

2.JAVA的四种引用是什么,有什么区别(强引用、软引用,弱引用、虚引用)(见我的其他博客)

3.Binder是什么

4.Activity的三种生命周期(完整周期,可见周期,前台周期)分别是什么

Activity的完整生命周期自第一次调用onCreate()开始,直至调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程,而在 onDestroy()销毁线程。

Activity的可视生命周期自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位于前台或者也不与用户进行交互。在这两个方法之间,我们可以保留用来向用户显示这个Activity所需的资源。例如,当用户不再看见我们显示的内容时,我们可以在onStart()中注册一个BroadcastReceiver来监控会影响UI的变化,而在onStop()中来注消。onStart() 和 onStop() 方法可以随着应用程序是否为用户可见而被多次调用。

Activity的前台生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。Activity会经常在暂停和恢复之间进行状态转换——例如当设备转入休眠状态或者有新的Activity启动时,将调用onPause() 方法。当Activity获得结果或者接收到新的Intent时会调用onResume() 方法。


5.Activity的启动模式(LaunchMode)有什么,区别是什么(SingleTop,
SingleInstance, SingleTask, Standard)(见我的其他博客)

6.ContentProvider的接口和直接使用sql语句的区别,如何选择

7.对Android多线程的理解,Android中有哪些种线程(回答了一般的Thread和
AsyncTask和handler),这些线程各自的优缺点,如何选择(见我其他博客)


(二)基本技能类(几乎每个人都被问到下列问题)

1.ANR有哪些种,什么情况会引起ANR,如何调查,如何快速定位(回答了看trace文件,
好像不是他们想要的答案)

2.OOM问题如何调查,如何快速定位(回答了看logcat,好像不是他们想要的答案)

3.出现ANR,OOM,死机等问题时如何抓取log

4.对于不易复现、大量log、长时运行导致的OOM等问题,如何分析

5.如何进行Debug、用过哪些debug工具、adb命令,如何使用adb 进行debug


(三)工作经验类

1.介绍一个以前做过的,修改过framework的功能实现

2.介绍一个以前处理过的OOM问题的实例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值