Android面试总结2017版

近期我司招聘,我去面了一些android开发的哥们,如下由近期面试总结得出的体会,以技术面试60分钟为基准,根据我去面试和面试别人的经验,我把整个面试流程大概规划为如下几个部分:android

1. 10%的时间去看自我介绍,了解基本信息,离职缘由,工做组成员状况

这里就是简历上的基本信息,基本上只要表达能清晰流利就能够了,噢,据小伙伴说有可能还要看一眼 是否是"老乡",虽然我彻底不理解这所谓的老乡关系能带来多少的安全感,离职缘由的话,其实度娘一下, 这里不须要你真正的缘由,可是须要一个合理的缘由,这里说度娘不说谷歌,是由于我发现好大一部分人对 Google的刚需没那么大,包括装了过滤广告插件的我,更有甚者,还有一部分开发人员的第二开发工具居然 不是谷歌浏览器.面试

2. 15%的时间去验证基本水平

  • 1.经常使用工具使用,Git的使用,经常使用第三方库.这里基本没人会犯错,基本名字确定能说一两个,即便不作任何面试准备.

比较离谱的是有一个哥们,问基础的时候感受答的不是很好,拿出项目我问那个模块他作的,好不容易找到一个简单的页面,问实现居然也是吞吞吐吐,因而我就很机(狡)智(猾)地问了下: 你如今用的androidStudio(第一开发工具)是什么版本的,他迟疑了一下,居然说很久没看忘记了,我心想这TM就尴尬了,连吃饭的家伙都不了解,即便是真的这样,那最近新出了一个3.0大版本,只要近半年关注了任何一个android开发相关的公众号或者网站,一定能看到这个条信息,看了以后仍是不去关注本身使用的版本的,那这职业心性基本至关于玩王者荣耀不买装备还想越塔强杀人家,分分钟回血池等复活.算法

  • 2.基础的Java知识点,包括集合,数据类型,三大特性,多线程,网络基础tcp相关;还有android基础的一些组件,基本的控件的如fragment,listView,四大组件等等,这里虽然像我本身也压根日常没有刻意关注这些,就是有个基本印象,可是做为应聘的人,这些问题起码能够看出对面试的准备和态度.

我认为无论技术如何,在应聘的时候都要从新去梳理一下基础的知识结构,这里都尚未讲到算法呢,手写最简单的冒泡排序和二分查找都能过滤一大片了,然而在面向浏览器编程的阶段,纠结于这些对于实际的结果没有什么有利的影响.编程

  • 3.态度很重要,面试并不能彻底看清楚一我的的水平,我在面对技术比我厉害的人,本身也有点心虚,可是在技术能达到要求的前提下(此处在我看来标准是吹技术不过于装逼并且能不被我拆穿的状况下),招人在能知足工做要求的前提下,固然是找看的顺眼的啦.

3. 45%的时间去聊项目

  • 1.以及项目中经常使用的技术点,不要问插件使用和第三方SDK的使用,这些看文档找博客基本能完成,前面确认了工做经历的状况以后,此处再问这些并不能体现真实的工做能力,关注的点,我认为第一个是看负责的模块的实现,去看对方的表达的思路,考虑技术实现的想法是否符合其项目履历和工做经验年限,首先是能回答出来项目的实现,而后能顺便讲讲本身在其中经历的难点和过后的思考最好了.浏览器

  • 2.涉及第三方库,如网络框架,Okhttp,Retrofit,Volley,图片处理框架Glide,Picasso,ImageLoader等,首先聊使用的场景,仍是聊遇到的问题,解决的办法.接下来问用的顺手的,问下里面的实现,okhttp有本身封装吗,拦截器了解过吗.到了图片框架,我通常问下用在什么地方,里面的一些源码看过没有,缓存的算法,以及横向的使用对比等等.缓存

  • 3.针对提到的项目点延伸出来相应的问题.能够联想到的.安全

好比简单的列表,ScrollView嵌套listView,这里能够问出滑动事件冲突的解决,view的绘制流程到自定义控件的实现思路,事件分发机制的处理机制以及相关使用,谈到glide加载图片,能够聊到数据量大的处理,图片0OOM问题的处理,线程池的理解和自定义相关微信

  • 4.问一下对一些经常使用的库或者业务技术的了解.

好比微信支付流程这个问题,我每一个人都问了,每一个人都说作过,没有一我的能完整统筹地回答出来,这个问题说大不大,说小不小,可是即便是这样,根据本身的理解老是有人能说出大概思路的,这不须要背文档,操做过以后用心去理解一下,就能变为本身的东西了.网络

  • 5.模拟具体的业务场景.这个能够举一些例子.

好比地图业务,相似摩拜单车行驶轨迹的记录怎么作,聊天业务,聊天信息为何能实时传输,聊天记录如何保持,数据持久化方面等场景,以前有一个段子说能够拿本身目前项目中没有解决的问题拿出去给对方解决一下.多线程

我以前去面试就遇到过别人问斗地主洗牌,要达成随机洗牌而后怎么发牌达到什么要求的实现思路,当时没答出来,后面想一想其实这里用集合和多线程去入手就能够解决,另一家作游戏,上来抓着多线程的问题虐的死去活来,如何实现用户多个操做同时进行,并发处理等等.

  • 6.不少人秉持说多错多的原则,我以为这里是除了技术问答的第二个能够拉开差距的地方,主动的老是比被动的好点.

像我撸着代码一头懵逼被拉去面试,问了技术以后,没准备好接下来问什么,我通常就伪装去看简历,拿对方写的几道(我就这么百度一下的题目)看看,其实问了上面的基本接下来这块就差很少了,这时候若是对方能顺着刚才的话题再串联一下技术点我以为会很好,不过没遇到过,多是我司的逼格不够了.

  • 6.哦,还有一个现象:写笔试题不少半个钟写不完8,9道基础题,字也是真的丑.

4. 20%时间去聊理解

  • 1.一个区分技术水平到哪一个程度的问题:对activity的理解.activity的生命周期基本每一个人都能说出来,哪一个方法怎么用实现什么都大概有个一二,但能不能联系实际的业务场景,以及有本身的思考,这就是在2-5年这个阶段技术分水岭之一,我以为这个问题能够看作是中级到高级的分水岭,中级是定义为能干活,高级是会干活.

有个哥们简历上.activity写了精通,我就问他对activity的理解,,,他就说几个生命周期..而后就没有而后了. 这不就至关于劝妹纸多喝热水了,这样确定追不到妹纸的....

额.而后我引导他,我说能够想一下工做中用到的场景..而后他想了一下说好像极光推送用过onResume方法..我没用过极光推送..我想了一下,我说是否是这里能够相似考虑app应用从前台到后台再回到前台的生命周期执行,而后联想到推送服务只有放在这几个方法才能保持实现..维持服务持久之类的(此处经查询得知,正确的理解应该是广播接受者相关的(捂脸状态)).

因此面试官也常常是错的嘛,面试的基本要诀和追妹纸是同样同样的,不要怂,胆大心细脸皮厚.(此处我有一个大胆的想法~~)

  • 2.这里主要考虑的就是能不能从简单介绍+业务场景+本身的思考入手,一我的说全套,相似的问题,如对http的理解,能够本身聊项目开发中跟后台交互的经验,对接口和抽象类的理解,能够谈到项目结构,谈到MVP和组件化的思路,由于咱们今天作的绝大部分业务和技术,都是有人已经踩过坑了,有的只是实现时间的长短和对搜索关键字的使用了.因此能本身独立收获到才是正解.

"我不必定要这个,但你得懂."

  • 3.个人水平有限,只能举例到这个地方,至于更深入的前沿的,我大概有几个方向,应该是大公司所考虑的,项目代码的复用性,混淆和热修复的原理,视频影音的优化,JNI的实现之类的了,

想一想平时遇到公众号推送,看下一线互联网公司的面试题,发现一半的东西看的怀疑人生了.

5. 10%的时间想有没有即兴想问的和对方有问题的东西.大概提一下业务的内容,薪资不是本身考虑的东西,只关注技术,若是过关天然接下来有人来谈业务,不过关的话那就能够回去等通知啦.

薪资不敢开12K以上还敢写精通两个字的都是傻x


总结

  • 1.无论去面试仍是面试别人,都是一次进步的机会

  • 2.找工做是实力加运气,可是加成比例也是要看运气的,多积攒人品老是没错的

  • 3.搞技术要保持危机感,不进则退

  • 4.好好努力,但愿之后本身面试或者加薪,都能义正词严

    以上.

相关文章
相关标签/搜索