(一)基础知识类
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问题的实例