Android面试需要考察的方面

主要三方面:

1.技术水平,主要是候选人的编程技术水平。

2.领域知识,主要是候选人对业务的了解程度。

3.软性技能,包括沟通能力、抗压能力、性格。


技术水平考察:对于App而言,分为三个方向:

1.应用类,比如说京东、携程、大众点评、美团这样的App,它们共同的特点是页面多,都需要频繁地调用MobileAPI获取数据,都涉及支付流程,所以这类App的开发人员需要对UI、网络、登录、支付流程都非常熟悉。应用市场也属于这一类,比如豌豆荚。

2.手机管家类。这类App虽然也算是应用类,但是很少调用MobileAPI,它更多关注的是手机系统内部数据的读写,所以这类App的开发人员需要对ActivityManager、Service、BroadcastReceiver之类的知识很熟悉。

3.游戏类,必须对动画引擎很熟悉,比如说Cocos2d和Lua。

此外,还有一类Android从业人员,是在华为、三星这样的硬件厂商做手机系统的二次开发,包括手机系统上自带的一些软件,严格地说,不属于App开发。


Android面试一般考察以下几个方面:

1.Activity的生命周期。

2.Activity的4种启动方式及使用场合。

3.做过的项目中,Activity是否有基类,如果有,封装了哪些共用的逻辑》

4.事件的各种使用方式及优缺点。

5.与HTML5页面的相互调用。

6.UI线程的阻塞与解决方案(Runnable与Handler)。

7.采用什么姿势调用MobileAPI并解析返回的数据。

8.怎样做列表的分页和刷新。

9.登录的实现,包括从哪儿来、到哪儿去的页面跳转机智,记住密码的逻辑设计。

10.性能调优,包括Layout调优、Activity中如何使用CONST常量、时间换空间策略、ViewHolder、图集的优化策略、数据缓存和图片缓存,等等。

11.全局变量过多怎么办?

12.写过UT没?

13.是否做过自动打包?Ant、Maven或Gradle任意一种都可以。

额外加分:如何检查内存泄漏、如何优化内存、多线程、自动打包、框架设计、版本管理等。