2021金九银十面试讴歌系列,Android面试不可不看的经验,android网络层框架设计实战

  • 技术博客或者github主页没有什么内容也写到简历里。记住技术博客或者github主页这一类的,本来都属于加分项,可有可无的,但是如果你写了,面试官誓必会满怀期待地点进去看,如果这个时候呈现给他的却是空白页或者寥寥几行内容的话,这种一落千丈的感受会给面试官留下非常不好的印象。

  • 简历中填写很多对求职无关的内容。与职位要求无关的内容就不需要写到简历里去了。因为你的简历是拿去找工作用的,任何一个与找工作无关的内容写到简历里只会浪费你简历的空间。例如你的一些兴趣爱好或者无关证件。

自我介绍要背得滚瓜烂熟

自我介绍可以说是面试的必要环节,无论你参加什么形式的面试,面试官一定会首先让你做一个简单的自我介绍,所以自我介绍这一关一定要准备充分,最好做到烂熟于心。

自我介绍不是简历的重复背诵。我们在做自我介绍的时候,一定要把握好重点,切忌过长或者过短。

自我介绍的过程,也是一个自我推销的过程。你可以把面试官当作你的顾客,而把你自己当作推销的产品。你要做的就是使用最真诚的方式,把你个人的工作经验、优点、能力与面试公司的岗位需求紧密结合起来,让面试官相信招这个人进来确实可以分担工作的压力。

那么我们在做自我介绍的时候,需要介绍哪些内容呢?下面我简单列举一些内容供大家参考:

  • 个人基本信息。个人信息的介绍要突出重点。我们需要把重点放在与 「公司需求」 匹配的信息上,如果该信息匹配或有关联,那么我们就说,如果完全没关联,那就一句话带过或者不说。

  • 工作经历。如果你的工作经历非常丰富,那么简单挑1~2家和目前应聘公司类似的简单介绍一下即可,其实底层的逻辑就是过去经历是否与目前应聘岗位相匹配或有关联。

  • 项目经历。项目经历不要讲太多,挑一个匹配的或者印象最深刻的重点讲一下即可,其他的可以一笔带过。项目经历可以简单从四个维度展开:项目的背景、项目的内容、你在项目中承担的角色和工作、项目的成果或者业绩。

  • 未来愿景。说一些积极向上的内容,进一步说明自身与岗位相匹配,描绘未来愿景,从而更好地打动面试官。(要让面试官觉得招你进来是非常有价值的,小伙子不仅是冲着钱来的,还是有追求讲情怀的)

自我介绍不易过长,准备2~3分钟即可。与此同时,你平时还需要多加练习,根据不同的公司、不同的场合以及面试的不同岗位,进行不同内容的自我介绍。

面试前多刷刷面试题

面试前多刷面试题,是对面试最起码的尊重。

虽然我在这里不提倡大家临时抱佛脚,但是适当地抱一抱佛脚也比那些什么都不准备,就直接裸面的人要好很多,至少你的态度是端正的。

**金九银十,很多人开始蠢蠢欲动了,**这段时间面试的时候,我就经常能够面到几个啥都不准备,直接甩两膀子就过来面试的。面试基本上是一问三不知,要么就是说之前看过忘了…更有甚者直接就说,我就是出来面个试感受一下面试气氛以及最新行情的…

拜托,能不能给予面试最起码的尊重?你来面试也是需要花费面试官时间的,简单准备一下不香嘛?万一你运气好,恰好这家公司职位扩充,降低面试要求了呢?你这么随便,岂不是把白花花的机会全都给浪费掉了嘛!

面试前先了解一下应聘的公司及职位

提前了解一下应聘的公司及职位内容,可以避免一些不必要的尴尬:

“你知道我们公司是做什么的吗?”

“emm…”

“你知道我们这个岗位的工作内容吗?”

“emm…”

(老哥!你真的是来面试的吗?!)

如果你是面试官,你会用一个都不知道公司和岗位职责是什么的人吗?这至少说明了2个问题:

  • 1.他对这次面试是不重视的!(那他怎么会对他的工作重视呢?)

  • 2.录用他的风险很高!(他要是工作一段时间发现不适合怎么办?)

所以我们在面试前,一定要先在网上搜索一下应聘公司的详细资料以及职位信息:百度、脉脉、企查查、看准网,企业官网等都可以获取到。

那么提前了解这些信息对我们面试会有哪些方面的帮助呢?

  • 1.方便我们准备与之匹配的简历。如果你应聘的是一家做手机Rom定制开发的公司,那么你的简历就需要围绕着手机Rom定制以及Android Framework开发展开。

  • 2.方便我们准备自我介绍的重点。如果你应聘的是一个手机蓝牙开发的职位,那么你在自我介绍的时候就需要突出你在设备通讯以及bluetooth、ble方面的经验和能力。

  • 3.方便我们准备与面试相关的面试题。如果你应聘的部门是做技术中台的,那么你可能就需要多准备一些技术中台、设计模式、框架设计、算法方面的知识。

  • 4.方便我们准备面试时提问的问题。如果你对应聘企业的一些规章、福利或者工作内容有疑问的可以提前准备一些相关问题。

image

面试过程中需要注意的点


保持良好的心态

只要我们在面试之前做好充足的准备,那么我们就应该有足够的信心去面对接下来的各种提问,我们唯一需要做的就是保持良好的心态,下面我简单归纳几点:

  • 淡化成败意识。我们要以一个正常的心态去面对面试,毕竟这不同于研究生面试或者公务员面试那种考试性质的面试,即使没面上你也不会损失什么,何况还能积累面试的经验,所以我们有什么可以担心的呢,就权当是和面试官聊聊天,讨论讨论技术罢了。

  • 保持自信。很多面试官在面试的时候,喜欢采用 “你确定吗?” 这一类的反问句去反问应聘者的回答,以核实应聘者对知识的掌握是否牢靠。如果这个时候你就开始怀疑自己,出现举棋不定的情况的话,那么面试官可能就会认为你之前的回答只是道听途说,或者就是瞎猜的,根本就没有掌握这个知识点。

  • 不要紧张。紧张的表现主要包括:说话结巴,语无伦次,逻辑混乱,神情慌张,下意识做很多小动作,目光斜视等。这些在面试官看来都是紧张的表现,如果遇到好的面试官可能还会提醒你一下,否则面试基本是凉凉了。

  • 冷静思考。在考官提问问题之后一定要先冷静思考,理清思路,不要急于回答。当遇到问题不清楚或者疑惑的时候,可以主动询问面试官,表达自己的疑惑。这样一方面显得比较沉着冷静,稳重得体。另一方面也可以给自己留出时间理清思路清晰回答。

注意基本礼仪

无论任何时候,我们在与别人交谈的过程中都应当遵守最基本的礼仪。

  • 面试一定要准时,遇事提前沟通,不可随意放别人鸽子。

  • 说话一定要注意语速,不可过快或过慢,口齿要清晰。

  • 面试过程保持一定的严肃性,不可过于散漫甚至笑场。

  • 不要随意打断面试官的话,这是非常不礼貌的行为,

  • 回答面试官提出的问题时一定要有条理,逐句回答。

  • 视频或者电话面试的时候,一定要选择在一个相对安静的环境下进行。

合理运用表达技巧

一个人的语言表达艺术标志着你的成熟和素养。尤其是在大厂中,很多问题其实是可以通过沟通来解决的,所以一个人的语言表达能力往往也是面试官需要考核的内容。

我们应该学会在面试过程中合理运用表达技巧

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

,去凸显自己的语言表达能力。

那么我们应该怎么做呢,这里我仅仅是简单列举一些供大家参考:

  • 吐字清晰、大方得体、语速适中。

  • 说话的语气要平和,不可忽高忽低,也不能过于情绪化。

  • 认真聆听面试官的发言,注意面试官一些细微的表情变化以及手势动作。

  • 必要时可以使用一些机智、幽默的话术。

  • 当语言并不能完全表达意思的时候,可以加上手势或者书面的形式加以描述。

多做一些积极的沟通

我们在面试过程中,难免会遇到一些我们平时从未接触过的内容,如果这个时候你只是简单地回复"我没做过"、“我不了解”、"之前工作没有这方面的要求"之类的消极回答,最终的面试总评可能会被标上不善于思考和分析问题,从而导致面试分数大打折扣,因为没有哪个面试官是喜欢不善于思考和分析的应聘者的,尤其你应聘的还是一个研发岗位。

这里我建议大家在面试过程中最好还是多做一些积极的回答,少做一些消极的回答,除非你对这个问题是彻底不了解。

这里我们可以先和面试官通个气,表明自己平时对这块接触得不多,不过可以简单分析一下。如果这个时候面试官没有明确你不需要继续进行下去的话,你就可以简单思考和分析一下,然后提出你的观点。如果遇到一些好一点的面试官,说不定还会提醒你一下,或者和你一起分析,这就非常棒了。

面试禁忌

我们在面试的过程中,一定要注意避雷,以下列举出来的禁忌一定不要去尝试触碰!

  • 切勿答非所问,偷换概念。当面试官提出一个你并不是很了解的问题时候,即使冷场也不要答非所问,进行偷换概念。因为面试最讲究的就是 真诚 二字。你这样做只会加深面试官对你的厌恶。

  • 切勿侃侃而谈。有很多人在面试时,为了能够在面试官面前一展"风采",常常是夸夸其谈,口若悬河,殊不知这其实是犯了大忌的。因为在面试官眼里,你这样啪啦啪啦没完没了地讲下去,面试官可能会有如下四种理解:

  • 没有快速答到要点,认为你并没有get到这个问题的本质,对这块掌握得不够。

  • 卖弄自己的知识,日后和这种人合作起来会不会很费力?

  • 废话连篇,浪费我的时间,这样的人工作起来效率是否会打折扣?

  • 知识掌握得还是比较详细的。(这可能是唯一一个为数不多的正面评价吧)

  • 切勿进行不当的反问。在一个不恰当的时机进行一个不恰当的反问,势必会导致很多麻烦。我们在面试过程中,一定不要和面试官进行争论或者反问面试官(虚心求教还是可以的)。如果面试官的水平或者度量还好的话可能没什么关系,但是也不能排除哪些个水平一般或者度量较小的面试官,你和他争论是没有任何好处的。你来这儿面试是为了找工作的,不是去争个对与错的,得罪了面试官没有任何好处。

  • 切勿套近乎。面试过程中,一定要注意保持与面试官的距离,不要上来就套近乎,整得好像你跟面试官很熟似的。即使问题答不上来也不要笑场,记住面试是一件非常严肃的事情,不要过于儿戏!

  • 切勿问与面试结果相关的问题。这里我需要明确的一点是,一轮面试下来,如果你是合适人选的话,面试官一定会告诉你下面面试的流程。你那样急吼吼地想要知道面试结果,非但没有任何意义,反而会加深面试官对你的厌恶。

image

Android技术面试一般涉及的要素


上文主要讲解了一些面试通用的技巧,下面就让我来简单讲解一下Android技术面试中主要涉及的内容有哪些。

Java基础

面试Android岗位,Java基础那是必问的。如果项目中使用kotlin比较多的话,可能还会问一些kotlin相关的问题。

Java, 作为一门基础语言,考核的是应聘者是否具备扎实的基本功。很多培训班或者非科班出身的人,经常会栽在这一环节。一般这个环节的问题答不上来的话,基本上是提前结束了。

那么常见面试的Java基础问题有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Java集合类List,Map,Set相关的实现原理。

  • 2.Java线程池的实现原理和使用

  • 3.Java线程同步相关的知识点。

  • 4.Java锁机制,以及死锁产生的原因以及解决方案。

  • 5.Java反射、泛型、注解相关的知识点以及使用。

  • 6.Java类加载机制。

  • 7.Java虚拟机的资源回收机制以及算法。

以上基本上是面试Android岗位的常见考点,所以我们必须重视对Java语言的学习和理解,即便你在平时工作中使用kotlin较多,也不能忽视对Java基础知识的巩固和学习。

设计模式

设计模式其本身其实也是属于Java基础范畴的,只不过部分大厂对设计模式的要求较高,所以会单独拧出来进行考察。

很多大厂都喜欢招那些对代码有洁癖,有高追求的人进来。在他们眼里,追求的并不是这个功能如何实现,而是这个功能如何更好地实现。只要性能不佳或者扩展性不够强的话,结局基本上就是推翻重构。

其实设计模式的考核因人而异,面试官并不会过于为难你,因为设计模式其本身就是个非常虚的东西,很多人即使是了解设计模式,在平时的工作中也不一定会使用它们。所以设计模式的考核更多的是加分项,并不是必要项,所以即使答不上来其实也是没什么关系的。

但是如果你在简历中写了 “熟悉/精通常用的设计模式” 的时候,那么你就要小心了,因为你可能将会面临一波直击灵魂深处的拷问。

那么设计模式一般会考察哪些内容呢?下面我们简单列举一些供大家参考:

  • 1.java设计模式的六大设计原则以及它们的关系。

  • 2.单例模式、适配器模式、装饰者模式、代理模式、外观模式、策略模式、观察者模式、责任链模式、命令模式、状态模式、中介者模式。这十一种常用的设计模式是考核的重点,你需要掌握它们的优缺点以及使用的场景。

  • 3.适配器模式,装饰者模式,外观模式它们之间的区别是什么。

  • 4.代理模式、策略模式、状态模式它们之间的区别是什么。

  • 5.外观模式、中介模式它们之间的区别是什么。

  • 6.静态代理和动态代理的区别,什么场景使用,实现动态代理的几种方式。

  • 7.简单列举几个Android源码中使用到设计模式的例子。

以上我只是简单列举了一些设计模式常见的考点,因为设计模式的考核相对灵活,因此还是以实际应用场景为主。

例如,面试官可能会问你:简单列举几个你常用的设计模式,谈谈它们的优缺点以及使用的场景。

这个时候,大多数做Android开发的人脑海里可能只剩下单例模式、观察者模式这些个常常被他们滥用的设计模式。

这里我并不推荐大家说这两种设计模式,为什么呢?因为这两种设计模式并不能很好地诠释设计模式的美。而且你要知道任何东西听多了,人的心理是受不了的,这很容易导致面试官心态崩溃。

就拿我来说,只要一有人无脑回答单例模式或者观察者模式的时候,我都会情不自禁地提高问题的难度。你要知道,就是一个简简单单的单例模式,我也能给你问到心态崩溃。

所以听我的劝,不要一提到设计模式,你脑海里就只剩下单例模式或者观察者模式,多了解了解其他设计模式,对你会有很大的帮助。

注意:对设计模式不够了解的,可以参考我开源的 architect-java 项目,里面有我自己整理的一些简单的算法和设计模式的讲解,可以说非常实用。

Android基础

Android基础,不用说这是面试Android岗位必须要问的内容。要是连这个都答不上来,基本你的面试就提前结束了。

Android基础是任何Android面试都需要考核的内容。不过这也是按级别而定,一般高级开发工程师的面试,Android基础只是一笔带过。

那么Android基础有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Handler机制以及相关知识。

  • 2.Activity和Fragment生命周期。

  • 3.Android四大组件相关的知识。

  • 4.Android进程间通信的方式。

  • 5.Context相关的知识。

  • 6.Activity的启动模式。

  • 7.Android动画相关知识。

  • 8.Android自定义组件相关知识。

  • 9.Android事件分发机制以及触摸事件冲突的处理。

  • 10.ANR产生的原因以及避免ANR的方式。

  • 11.内存泄漏产生的原因以及定位解决的方式。

  • 12.OOM产生的原因以及解决的方式。

  • 13.Android页面渲染机制以及优化方式。

  • 14.LinearLayout、FrameLayout、RelativeLayout和ConstraintLayout的理解和性能对比。

  • 15.Android各版本的特性。

  • 16.Android屏幕适配的技巧。

  • 17.MVC,MVP,MVVM的理解与实践。

  • 18.Android的主题、样式、属性相关的内容。

  • 19.JNI相关的知识。

以上内容是作为一名合格Android开发工程师所必备的知识点,也是常见的考点,请务必每条都要清楚掌握,这样你在面试过程中才能游刃有余。

Android源码分析

Android源码分析,算是要求较高的考核。不过这在大厂面试中非常普遍,因为很多大厂对Android源码的分析和理解都有相当高的要求。

那么常见的Android源码分析有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Android系统的启动流程分析。

  • 2.APP启动的流程分析。

  • 3.Activity的启动流程分析。

  • 4.Zygote进程的创建和启动流程分析。

  • 5.Window窗口创建和加载的流程分析。

  • 6.Dalvik和ART的理解。

  • 7.RecyclerView的源码分析。

阅读源码是一件相对枯燥的事情,如果平时工作中涉及不到的话就很难坚持下去,因此需要非常强的毅力。不过话又说回来,如果你能够熟练地掌握Android源码的话,那么就非常有机会进入大厂了。

Android进阶技能

这部分一般是对Android高级开发工程师的考核,主要涉及的点主要是一些性能优化,技术细节方面的问题。

要想成为一名高级开发工程师,性能优化以及架构设计永远都是绕不开的话题。做技术如果只是广而不深的话,是不可能成为一名高级开发工程师的。只有不断提升自己的不可替代性,才能提高自己的价值。

那么常见的Android进阶技能有哪些呢?下面我们简单列举一些供大家参考:

  • 1.App稳定性优化。(crash、性能以及体验等)

  • 2.App启动速度优化。

  • 3.App内存优化。

  • 4.App界面绘制优化。

  • 5.App瘦身优化。

  • 6.App安全优化。

  • 7.网络请求优化。

  • 8.WebView使用优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值