共享单车Android面试回忆

今天一个朋友分享了一下他前端时间去某单车公司面试资深安卓工程师岗位的经历。

因为他也是通过朋友内推,所以并没有给他定是什么级别。一共经历了三轮技术面试,第一轮是一个高级工程师,第二轮是资深,最后一轮是一个技术manager.。

下面就是各轮面试问的问题

第一轮:   大多都是 Android 基础方面的知识

1 个人简介,主要是描述一下自己待过的公司,做过的项目以及各个项目中的技术亮点
2 Activity的启动流程,期间AMS、ActivityThread之间的流程与通信
3 两个子线程之间如何实现使用Handler通信
4 图片加载与优化策略
5 如何实现插件化以及组件化

第二轮:   因为是资深,要带某一条业务线,所以第2轮首先问了很多业务方面的理解能力

1 Android 不同设备的屏幕适配方案
2 单元测试框架,以及如何测试远程接口
3 Google Play Store上线时遇到的问题,App包超过100M该如何处理

第三轮:  偏重对项目架构的理解,计算机基础要求比较高

1 对 MVP 架构的理解,对 Clean Code 的理解
2 OkHttp实现原理与细节
3 接着又聊到http协议,Http请求头中的字段

4 tcp ip协议等,三次握手四次挥手,tcp头中的字段等
5 快速排序的思想与实现思路,时间复杂度(并没有要求手写出具体算法

总结

总的来说,面试过程中规中矩,问的大多都是常规安卓相关的问题。

前面两轮大多是考察面试者Android基础知识以及对Framework的掌握程度。最后一轮对计算机基础以及设计模式的理解要求较高。

个人感觉缺乏对Android性能优化方面的考察,此外虽说是 Android 面试,但是应该也要考察一下面试者的 Java基础,比如增加一些对JVM理解的一些问题。

共享单车Android面试回忆