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任意一种都可以。
额外加分:如何检查内存泄漏、如何优化内存、多线程、自动打包、框架设计、版本管理等。