面试前的准备
有专家认为,对于一个开发者来说,不只局限于安卓开发者,面试前的准备都是非常重要的,充分的准备可以提高你赢的好工作的几率。那么我们在面试前都应该准备些什么呢?
1. 提交简历的内容一定要真实
真实的简历内容,才是你面试成功的第一要素。面试官面试的第一内容就是看你的简历,并且会根据简历内容来进行提问。如果你的内容不真实,回答的内容与简历不一致,会给面试官留下非常糟糕的印象。例如,在写技能这一项时,写着VB,VC,C++,JAVE, SQL, TCP/IP等,比如当面试官让你讲C++的多态机制时,你都讲不清楚,那么这次面试你一定会以失败告终。所以,安卓职场专家建议,简历内容一定要实事求是。
2. 了解你所应聘的公司
面试者首先就应该了解一下面试公司的具体情况,比如面试官问到:你为什么选择我们的公司,你连公司具体做什么的,招聘什么技能的人都不清楚,那么,面试官会认为你只是来试试而已,不是诚心来公司来面试的,所以要想进某家公司,一定要在面试前了解这家公司,面试之前最好上网看看你要应聘的公司的基本情况,如公司的产品、市场、客户等情况。除非技术能力很强,公司很需要,否则你对公司一无所知,公司基本是不考虑你的。
3. 简历中提到的项目自己一定要清楚
在面试时面试官会用至少20分钟时间让面试者来讲自己最近做的或自己最熟悉的项目或产品,其中包括项目的功能、架构、所用的技术等,会要求面试者能画出项目的结构图,模块间的逻辑等。当然也会问到简历中提到的每一个项目情况。所以,面试者在面试前最好回顾一下自己做过的项目。并且要清楚自己项目的每个环节。如果这个项目的某一环节你回答不上来,面试官会认为你是抄袭的,所以一定要做好这方面的准备。
4. 要有系统的知识框架
做为软件开发或测试人员,对软件工程又要一个比较系统的知识框架。了解软件开发流程,成品生命周期等知识。至少要知道什么是瀑布模型、V模型、敏捷开发;至少要知道有哪些测试类型,分别对应哪个开发阶段等知识。
具有系统的知识,会让你提升一个高度。大家最敏感的问题,就是薪资问题了,如果你熟知系统的知识框架,那么你的薪资一定会高一些,具体高多少,这就取决于你对知识框架的了解程度了。
除了上面的这些之外,也要放松心情,不要过度紧张以免影响发挥,做一个自信的面试者。
Android笔试面试指南
基础知识篇
虚拟机相关知识基础
- 虚拟机的内存管理
- 虚拟机的垃圾回收
- 虚拟机的种类:Java虚拟机、Android两种虚拟机的对比
- class与dex文件
- Class加载
Java基础
尤其需要深入理解容器、I/O、线程、反射、泛型等。尤其是容器的源码实现。
Kotlin基础
这里推荐:Bennyhuo的视频《Kotlin系统入门与进阶》
数据结构与算法
- 基本的数据结构
- 基本的排序算法
- 算法的时空复杂度
操作系统基础和计算机网络
- 操作系统方面的知识:推荐《操作系统面试重难点总结》
- 计算机网络方面,注意TCP/UDP,三次握手;HTTP/HTTPS 等知识
设计原则与设计模式、架构
推荐:《Android源码与设计模式》,谁看谁知道,好书不解释,一本就够了。
版本控制与持续集成、自动化构建、Gradle
- 版本控制推荐学习Git和GitHub,可以去看廖雪峰大神的文章。
- 持续集成、自动化构建平台搭建:有兴趣的朋友去研究jenkins
- Gradle:推荐徐宜生大神的《Android神兵利器》
Android面试常问知识篇
Android基础就不再赘述了,相信大家都比较熟悉,找一个系列的博客或者买本书籍补习即可,也推荐去看黑马的Android视频。重点关注四大组件的生命周期、Activity启动模式等等。
下面主要介绍一下Android基础知识以外的。
Android系统架构与源码分析
作为Android APP开发人员,源码不必深入掌握代码每个细节。但是有些东西,掌握了就会加深对Android的理解,这就是源码的魅力所在,它深深地吸引着笔者。这也是区分各位应聘者的门槛。
- 热修复与插件化框架源码
- Android路由、组件化源码
- 异步框架
- 新的动画框架
- 网络请求框架源码(Retrofit的话推荐去有心课堂看视频)
- 图片加载框架源码(Glide、Fresco等)
- 数据库框架源码
新技术
学习一些插件化、热修复框架,Android路由、组件化、异步框架、新的动画框架等等。
- 插件化:滴滴(任玉刚)的插件化框架VirtualAPK、奇虎360的插件化框架RePlugin等
- 热修复:阿里巴巴第三代非侵入式移动热修复解决方案(注意不是AndFix哦)等
- 路由:ARouter等
- 组件化:Atlas等
- 异步:RxJava、RxAndroid等一系列框架等(推荐有心课堂)
- 新的动画框架:Lottie等
性能优化
性能优化也是Android面试中常问的点,这里推荐一些相关资料:
- 腾讯音乐大神的书籍:《Android应用性能优化最佳实践》
- Android性能优化官方文档
- 《Android开发艺术探索》中的关于性能优化额的章节
自定义View与动画
这是Android中比较难的一部分知识,需要平时就不断积累、锻炼,相关的文章比较多,就不推荐了。
NDK开发(含JNI)
NDK开发也是用人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握NDK来筛选人才。相对来说,大公司比较喜欢使用NDK技术。
项目实战
- 推荐上菜鸟窝官网随便买一个项目视频学习
- 推荐去找个小公司实习或者接个外包
- 上网(例如GitHub)找一些成熟的、完整的项目学习,模仿
技术面
Android基础就不再赘述了,相信大家都比较熟悉,找一个系列的博客或者买本书籍补习即
首先,给出几个注意点:
- 面试中一定程度的装逼是需要的
- 适当的交谈能力是必须的,这个需要平时多练习
- 被问到不懂的时候,不必强行装逼,可以虚心请教,或者适当转移话题
- 态度一定要积极向上,对这个公司充满期待与好奇
HR面
过了HR面,你几乎可以拿到Offer了。
HR面中的注意点:
- HR主要想知道的你的工作态度、对行业的热爱程度
- 各种职场能力:沟通、决策能力等
- 穿着得体即可,不能太随便,又不能太正式。
- 一定要懂得HR的面试套路,对常见问题要有所准备,尤其针对女HR。
面试前的知识储备 & 复习
很多人准备面试的时候,大多数就会这样的,打开百度,输入 “Android 面试题”,找几个多的开始看。
这虽然看起来很自然,但是并不是一种 健康的方式,面试题的作用应当是查缺补漏,上学的时候也不是直接发习题册然后对着答案学习吧?
知乎上有个问题,叫做 如何高效学习,里面有一个回答我觉得很符合我自己的观点,就是 建立起自己的知识体系。
如果你不知道该怎么如何系统学习,可以参考下我下面分享的学习路线:
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。
从架构基础开始,分了8个模块来逐步从基础进阶到架构师的环节:
1、架构师筑基语言基础
重点内容:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
2、设计思想解读开源框架
重点内容:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
3、360°全方位性能调优
重点内容:设计思想与代码质量优化+程序性能优化+开发效率优化
4、Android框架体系架构
重点内容:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
5、NDK模块开发(音视频开发系列)
重点内容:NDK基础知识体系+底层图片处理+音视频开发
6、Flutter学习进阶
重点内容:Html5项目实战+Flutter进阶
7、微信小程序开发
重点内容:小程序介绍+UI开发+API操作+微信对接
最后分享一份面试宝典,祝每个人面试顺利。
Android BAT高级开发面试题及答案解析
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
最后以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。
结语:
- 首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。
- 更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。