程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


这两年移动端发展的越来越快,在ios上特别明显,而Android也是遭遇到了很多打击

特别随着初中级Android开发的逐渐饱和,也让企业在甄选Android面试候选人时变得格外严格,恨不得找一位Android开发做所有的事

我在平时的工作中也是一直接触较多候选人,就这里想和大家说下我对于Android面试的一些看法


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


1.首先对于Android基础知识的掌握必须要通透!


我把Android基础知识分为:四大组件Activitiy、service、广播、内容提供者,还有fragment,当然这些知识点也不是独立的,每个之间都有融合再一起的知识

比如Activity这个知识点,首先我们需要掌握Activity的使用场景

最常见的在这个Activity中通过嵌入fragment来进行整个项目UI架构的搭建,这时候这个Activity就是整个项目的一个外壳

我们还需要了解整个Activity的生命周期,要知道在那些方法中可以做耗时操作,哪些方法是不可以做耗时操作

在掌握Activity时,我们还需要注意Context的使用,区分在哪些场景可以使用Application context,哪些场景我们尽量使用Activity context

接下来我们还需要掌握Activity的启动模式,知道哪些场景下使用singleTask、哪些场景下使用singTop。


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


我们回到我们的面试,掌握好了以上Activity的几个知识点之后,我们还应该知道如何让Activity和其他组件进行通信,比如Service和Activity之间

因为我们在自己的项目中往往会通过启动一个service来进行某些后台运算,当计算完成我们需要通过通知Activity来进行UI的更新,我们的Activity也可以和service进行交互来进行添加逻辑的操作,Activity和Fragment之间的通信就会更频繁了

因为我们刚才说过现在一种比较流行的UI架构就是在一个外壳Activity中通过底部切换来进行子Fragment之间的切换显示,我们看到就一个Activity也包括了很多知识点


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


当然如果我们进行扩展和延伸的话 还会有很多

比如如果对于一个繁杂的Activity进行重构,MVP、mVC模式中Activity的不同作用,在性能优化中为什么Activity能够造成内存泄漏,怎么解决?会不会用常用的性能优化工具:leakcanary、systrace、traceView等,这些扩展的知识点往往都会在面试进行中,随着面试官的思路不断延伸出来,这时候我们应该怎么去应对这样的问题呢?


其实最好的办法就是在平时积累,大家自己一定要有一个自己的笔记,这样你才不会学到后面发现自己什么都没学到!


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


2.Android开源框架的知识学习


据我在这个行业不短的了解,现在很多公司对于开源框架的考察的比重都是越来越重,比如新浪微博关于开源框架的考察就是必须的,阿里、腾讯也都会经常考察候选人有关开源框架的问题

所以说大家对于开源框架也是需要很好的掌握,当然对于开源框架的学习也是有策略的

大家一定要谨记绝对不要深入源码而不能自拔,要根据整个框架的总体流程来进行梳理

最好在面试前自己对于在简历中提到的框架有一个自己的头脑梳理,你起码要在脑子中把这个框架的点都过一下


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


这里提到了简历,看过很多份简历

大家都有一个很大的问题,就是个人技能写的太多,我真的不建议大家写这么多,特别熟悉、掌握、了解这些用词都是需要谨慎的

我建议大家对于自己掌握特别熟悉的知识点才能用上掌握、还有一些最基本的知识点才可以用到掌握

如果自己在面试前还是觉得没有太大把握的尽量用熟悉和了解,在简历中大家可以把自己特别熟悉的开源框架写在前面,这样也更容易让面试官根据你的简历来问答

大家在回答的时候还是要注意一点:有些问题你有可能真的不知道,但是你最好表现出思考的过程

比如你可以这么回答:这个框架我在项目中确实没有用到过,但是另外一个框架retrofit我用的比较多,要在面试过程中学会引导面试官转到你擅长的话题上!

总之这是一个斗智斗勇的过程!


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


3.Android系统源码的学习


对于系统源码我又一个最重要的建议,C++基础不好的同学,源码的学习到JAVA层就可以,一般也没有哪些公司的面试会问到这么深

如果你找的是Framework开发那就另当别论了,但是对于大多数应用层开发的同学还是去碰这部分了

因为我们毕竟是要参加面试的,面试复习的话肯定需要将就一个性价比,我们不可能有无限的时间来复习,所以要把时间用到刀刃上。

系统源码:大家可以从这几个角度来进行复习:binder、AMS、Application启动、Activity启动、View绘制、SurfaceFlinger这几个角度去复习

当然系统源码包括很多,但是这些是问到频率最高的几个了!

特别是binder,他可以说是整个Android系统的核心,也是整个进程间通信的枢纽。

关于这部分的内容,我总结了一些面试题,集中学习成文档


程序员面试:跳过大厂面试中的陷阱,轻松去腾讯阿里新浪等大厂


领取方式:关注+转发,点赞私信我【面试】

最最最后

真心祝大家能通过自身的努力提高自己的技术

同时也要找到更高的offer来回报自己!大家加油!


分享到:


相關文章: