Android开发面试题

几个月前,做为iOS开发,有简单接触了下Android,当时有任务需要招聘Android高级程序员,于是经过网上一番搜索加自己的思考,定下了以下的笔试题,以及一些打算在面试时聊的话题。

主要参考的有两篇文章,第一篇是Blog,第二篇是招聘技能需求:

http://gun.io/blog/how-to-hire-android-developers/
http://www.linkedin.net/jobs2/view/9762914 (linked in被禁了,前面的net需要改为com)
 
 

有人提出,应该70% JAVA + 30% Android,这点我比较赞同。

笔试给的时间是45分钟,可能比较紧张,但在面试交谈开始的时候,还会给应聘人员一些时间以询问、补充说明等等,这样才最终确定成绩,目的是避免笔试题的可能不足。

JAVA基础知识方面:
== 和 equals的区别?hashcode和toString方法分别是干啥用的?
什么叫自动装箱(Auto Boxing)、自动拆箱?它有什么优缺点?
重载(Overload)和覆盖(Override)的区别? 
什么叫范型(Generics)?写个简单的范型的例子(方法、类都可以)。
简要介绍下接口(Interface)、抽象类(Abstract Class)、抽象方法(Abstract Method),以及他们的使用场合。
举例一些集合(Collections)类,包括具体类,多多益善,并简要说明他们的使用场合以及为何。
有哪些XML解析框架?简要说明它们的优缺点及适用场合。
简要举例介绍下知道的设计模式(Design Pattern),3-4个即可。

Android方面:
MVC模式在Android里是如何具体体现的?
Activity的生命周期(Lifecycle)有哪些(方法)?挑2-3个简要说明它们的作用。
Activity的加载模式(launchMode)有哪几种?并简要介绍区别。
有哪些布局(Layout)?简要介绍下区别。
为支持不同的手机或平板屏幕大小、密度(Density),通常有哪些做法?
为了防止OOM,我们有哪些优化策略或防止措施?按你认为重要的选2-3个简要说明,不包括图片(bitmap)加载。并就网络图片加载方面做详细措施说明(没有这方面经验则自选其他)。
Parcelable和Serializable的区别?
ANR是什么?哪些情况下会发生?开发过程中如何避免?
AsyncTask和Handler的优缺点?
什么叫nine-patch(9.png)?简要介绍下应用场景和如何制作。

Web/Http:
Get和Post的区别?
举例一些http的错误代码以及它们的含义

成长潜力方面:
都了解哪些Android 开源框架?有参与任何的吗? 

面试聊天
JAVA:
编码规范?

Android:
Dalvik和JVM有什么区别?

成长潜力:
都从哪些地方获取知识?



你可能感兴趣的:(android,面试,招聘)