关于大厂Android开发岗面试,需要准备些什么!

又到了“金九银十”换工作的高峰期,在互联网寒冬下,抓住机会就显得尤为重要了。那作为Android工程师我们应该从哪些方面去准备呢? 例如,不太熟悉的技能要不要写在简历上、要复习哪些Android组件的知识、刷算法题目有没有用,可能在面试前你都会仔细考虑这些问题。下面我就结合自身的经验和理解,帮你梳理一下关于简历、面试和算法方面需要准备的内容,分享一些我的心得体会。

简历篇

简历在面试过程会起到至关重要的作用,我们需要非常注意简历的撰写。

在面试的过程中,面试官通常会非常关注你简历中的工作经历、项目介绍、技能特长这三部分的内容,如果你面试的公司没有固定题目的话,那很多问题都会围绕你简历里这三部分内容去问。这里需要注意的一点是相关技能的书写,核心思想,想进大厂的简历,要突出自己的特色,写得要生动,能从简历看出你实力不俗。如果简历不过关,很大几率根本没有面试机会。

首先你要让面试官明确你面试的定级是什么。很多时候一个职位对应了很多个职级,在投简历的时候,你的简历需要让面试官给你一个比较明确的定级,否则面试过程会比较被动,也会影响面试官对你的判断。

关于大厂Android开发岗面试,需要准备些什么!_第1张图片

因此这部分的内容需要突出自己的特长,也要写一些现在公司相对关心的问题:

  • 比如你对插件化、热修复、组件化、性能优化等很熟悉,就可以明确的写上,但如果不是很熟悉那么尽量不要去写。
  • 如果你对Android某部分内容很熟悉就可以写得相对详细一些,比如你对Handler、Binder机制很熟悉,就可以写“熟悉Android常见机制,比如Handler、Binder机制等”。
  • 而看到你很熟悉这部分内容,面试官可能在问问题时一层层深入,因此你肯定需要提前准备一下这部分内容如何讲解,基本可以从机制的优点、重点、难点三方面去说明。

面试篇

对于Android工程师来说,面试开始的时候都会问一些算法和Android、Java的基础知识。

针对Java的基础知识,我建议你看一下《码出高效:Java 开发手册》《深入理解Java虚拟机》《Java并发编程的艺术》这三本书。这里可以分享一个之前在 github上看到的Android底层基础到架构成长笔记库,整理得很全,需要可从这里去查看!

对于Android的面试题,大多都是跟系统原理有关的内容,但也有很多没有准确答案的问题,比如四大组件的原理这样的题目,需要你从一个宏观的角度去解释一下四大组件,或者你也可以拆分开一个个去讲解。

关于Android面试高频的问点,这些你是必须要理解清楚的!如果你在准备面试,这份github上的《Android快速面试指南》肯定很适合你! 有需要可 点击这里查看!**

一些Android经常使用到的组件一定要理解清楚,比如:

  • Handler.postDelay的机制
  • 触摸事件机制
  • 自定义View
  • 如何计算View大小
  • 容器控件如何对子控件进行布局
  • 数据库基本操作
  • Binder机制
  • LMK机制

还有面试官也可能会问一些开源框架的原理,建议你也要多了解一些:

优秀的网络框架

图片加载框架

日志记录框架

EventBus

AAC框架的原理

还有性能优化,最近几年公司对性能优化关注很多,有的同学可能做过专门的性能优化或者自己开发过一些工具总结过一些方法论,这样比较好答一些。但是大部分小伙伴可能平时都在关注业务需求开发,性能优化的实战可能并不是很多。这里分享这份《Android性能优化实战笔记》,非常适合那种缺乏实战经验的小伙伴!有需要可点击这里查看**

面试的后面大多都会从项目入手,你需要在面试之前针对你的项目做详细的准备。比如面试官会:

  • 让你介绍一下你的项目
  • 你需要体现出这个项目的难点
  • 你在项目中的贡献
  • 项目的具体实现等
  • 有可能还会问到一些具体的细节,所以建议是实事求是去讲,但一定要对自己的模块非常清晰。

除了技术面试以外,有时还有可能会考察一些软技能,比如面试官会考察你跨部门协作能力、沟通能力、时间管理、任务分配和职业规划等

关于如何复习

对于复习,首先要对自己做一次自我了解,我是通过画脑图(点击地址查看)来进行这个过程的,我会整体默想一遍大概的知识体系,画成类似下图。回想每个知识点可能考到的内容,记录下自己模糊的地方,然后去看网上总结的面试题,再对每个题目都做一下回答。这是一个迭代过程。

关于大厂Android开发岗面试,需要准备些什么!_第2张图片

在你预想的问题都可以回答上来的时候,就需要深入挖掘一下技术细节和深度了,比如我工作中开发了一个PLT Hook工具,这个工具可能是我参考开源项目并封装修改过来的,但对其中的细节并没有很了解,这个时候你就要对这个开源项目所涉及的内容做一次系统学习了。

算法这一块的话,“临时抱佛脚”对于算法的学习和积累作用不是很大,因此需要我们在平时繁忙的工作中抽出一些时间来复习,你也可以去LeetCode、LintCode上刷刷题。另外,虽然大部分面试的算法题目都是LeetCode上的简单题目,但你同样也需要关注一些中等和困难难度的经典题目。

总结

这里并没有涉及太多具体的面试题,更多侧重的如何准备面试,而面试的准备其实是在我们平时工作过程中一点一滴积累的,复习只是作为一种在面试前巩固知识的手段。复习的过程主要是我们对知识点的整理和总结,你可以想一下在面试的时候可能会遇到的问题,以及该如何去表达。但是我想说,虽然“临时抱佛脚”的准备可能有时有用,但是在短时间内靠“突击”是很难理解到某个知识点更加深度层次的内容,而且知识面的广度也是需要时间和经验去积累的。所以不管你是否需要面试,在平时工作过程中都需要多思考、多训练、多总结,在有需要的时候可以厚积薄发。

你可能感兴趣的