Android培训
美国上市Android培训机构

400-111-8989

热门课程

Android笔试面试指南

  • 时间:2017-10-25
  • 发布:小楠总
  • 来源: 郭霖

最近开始秋招了,最近也陆陆续续看到了很多后辈分享的面试经历,想当年身边的大神也分享过各种各样的(奇葩)面经,自身也看过、经历过,因此有感而发,写一篇总结性的文章,希望能够帮到正在找工作的朋友们,尤其是针对于正在忙于春招和秋招的大学生。

写这篇文章最初的想法是自己最近在研究 Android源码的时候,发现一个有趣的问题:

为什么Intent(或者说Bundle)中携带的数据需要支持序列化呢?

对于这个问题,相信很多初学者根本就不会去思考它,看似简单,但是这其中就涉及到了Binder机制的内容。万一被问到,公司还是能够区分出真正深入理解 Android 的人的。首先,Intent 是四大组件之间通信的桥梁,也被称作为信使。Intent 可以用于不同进程间组件的通信,由于进程间通信只支持一些比较基本的数据类型以及实现了序列化的类型,因此Intent 中的数据需要符合进程间通信的规范。

首先在这里说明一下:

下面内容并不都是本人原创的内容,但是这里并非属于广告性质,只要是对大家有所帮助的,我都将分享给大家。

笔者推荐的文章/书籍一般都比较浅显易懂(尤其是指笔者自己的文章),不会有过多深奥的内容,如果需要深入,请百度一下。

Android技术博大精深,一篇文章不可能总结完。

基础知识篇

虚拟机相关知识基础

重点关注:

虚拟机的内存管理

虚拟机的垃圾回收

虚拟机的种类:Java虚拟机、Android两种虚拟机的对比

class与dex文件

Class加载

这里推荐笔者的文章:

虚拟机:

http://www.jianshu.com/p/e00971e07e14

class与dex文件:

http://www.jianshu.com/p/2eb518941681

Class加载:

http://www.jianshu.com/p/37cad7a901b1

Java基础

尤其需要深入理解容器、I/O、线程、反射、泛型等。尤其是容器的源码实现。

相关文章网上比较多,笔者只推荐一小部分:

笔者自己的文章:

http://www.jianshu.com/p/aaf8594e02eb

《Java面试宝典》

《北京圣思园JAVA视频教程全套》

http://download.csdn.net/detail/jiexiaoai/5760705

Kotlin基础

这里推荐:

Bennyhuo的视频《Kotlin系统入门与进阶》

http://coding.imooc.com/class/108.html

也可以直接看笔者看视频总结的文章《Kotlin 学习之旅》

http://www.jianshu.com/nb/14405738

更多新知识,关注Bennyhuo的Kotlin公众号,直接微信添加公众号搜“Kotlin”

数据结构与算法

这里重点关注:

基本的数据结构

基本的排序算法

算法的时空复杂度

推荐:

书籍:《大话数据结构》

视频:《小甲鱼数据结构》

有条件的看动脑学院Danny的《算法数据结构》

笔者的排序总结:

http://www.jianshu.com/p/7d70a9b4c3da

算法题:牛客网左程云的算法视频、他的相关书籍《程序员代码面试指南》

操作系统基础和计算机网络

这个就不用作太多介绍了,大学的基础课。

其中,值得注意的是:

操作系统方面的知识:推荐《操作系统面试重难点总结》

http://www.jianshu.com/p/d254b138de03

计算机网络方面,注意TCP/UDP,三次握手;HTTP/HTTPS 等知识

最后,还是推荐微信公众号『码个蛋』特约作者--Ruheng

http://www.jianshu.com/u/0fa6f5d09040

设计原则与设计模式、架构

推荐:

《Android源码与设计模式》,谁看谁知道,好书不解释,一本就够了。

架构、思想方面的知识,推荐去看潭州学院的架构视频,也推荐上有心课堂学习Stay的架构课程。

版本控制与持续集成、自动化构建、Gradle

版本控制推荐学习Git和GitHub,可以去看廖雪峰大神的文章。也可以看笔者总结的文章《Git学习笔记》:

http://www.jianshu.com/p/7eb0f4667cc1

另外,想去手机厂商的朋友,最好也掌握以下Repo。

持续集成、自动化构建平台搭建:有兴趣的朋友去研究jenkins

Gradle:推荐徐宜生大神的《Android神兵利器》

Android面试常问知识篇

Android基础就不再赘述了,相信大家都比较熟悉,找一个系列的博客或者买本书籍补习即可,也推荐去看黑马的Android视频。重点关注四大组件的生命周期、Activity启动模式等等。

推荐:

郭霖大神的《第一行代码第二版》

任玉刚大神《Android开发艺术探索》,这本书讲解面试常见的基本知识之余,作了一定的拓展。

下面主要介绍一下Android基础知识以外的。

Android系统架构与源码分析

招聘信息上面经常写“熟悉Android系统架构”,那么到底什么是系统架构呢,参考文章:

笔者的《Android 源码分析之旅》系列文章

http://www.jianshu.com/nb/10424206

包建强的源码分析系列文章《写给Android App开发人员看的Android底层知识》:

http://jax.cnblogs.com/

《Android开发艺术探索》中关于源码、机制的相关章节

注:作为Android APP开发人员,源码不必深入掌握代码每个细节。但是有些东西,掌握了就会加深对Android的理解,这就是源码的魅力所在,它深深地吸引着笔者。这也是区分各位应聘者的门槛。

至于其它的一般的框架源码的话,例如:

热修复与插件化框架源码

Android路由、组件化源码

异步框架

新的动画框架

网络请求框架源码(Retrofit的话推荐去有心课堂看视频)

图片加载框架源码(Glide、Fresco等)

数据库框架源码(留意2017年新出的框架)

这些其实都应该重点关注一下的,面试的时候大致能够说出一个流程或者原理。侧重点看什么需要根据公司而定,如果公司是搞电商的,那么网络请求、图片加载肯定少不了。

每样挑一个比较牛逼、或者比较新的框架去研究即可。最好其它框架也要懂个大致的原理、会使用。

新技术

学习一些插件化、热修复框架,Android路由、组件化、异步框架、新的动画框架。

例如:

插件化:滴滴(任玉刚)的插件化框架VirtualAPK、奇虎360的插件化框架RePlugin等

热修复:阿里巴巴第三代非侵入式移动热修复解决方案(注意不是AndFix哦)等

路由:ARouter等

组件化:Atlas等

异步:RxJava、RxAndroid等一系列框架等(推荐有心课堂)

新的动画框架:Lottie等

以上只是列出一些比较常见、比较新的框架,具体深入修行需要靠个人。应付面试的话,只需要大致能说出原理、使用体验过也就差不多了。资料网上比较多,就不逐个推荐了。

性能优化

性能优化也是Android面试中常问的点,这里推荐一些相关资料:

腾讯音乐大神的书籍:《Android应用性能优化最佳实践》

笔者的系列博客《Android 性能优化之旅》:

http://www.jianshu.com/nb/10374109

Android性能优化官方文档

《Android开发艺术探索》中的关于性能优化额的章节

自定义View与动画

这是Android中比较难的一部分知识,需要平时就不断积累、锻炼,相关的文章比较多,就不推荐了。

NDK开发(含JNI)

NDK开发也是用人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握NDK来筛选人才。相对来说,大公司比较喜欢使用NDK技术。

相关推荐文章:

笔者的《Android NDK开发之旅》系列博客:

http://www.jianshu.com/nb/10785521

各种C/C++、Linux资料,网上比较多

注:如果想去手机厂商的话,最好懂一些Linux的基本命令、adb命令、Ubuntu/MAC的使用

项目实战

推荐上菜鸟窝官网随便买一个项目视频学习

推荐去找个小公司实习或者接个外包

上网(例如GitHub)找一些成熟的、完整的项目学习,模仿

笔试篇

这里推荐大家上牛客网

https://www.nowcoder.com/

刷题,笔试离不开上面的基础知识的积累,因此这里不再赘述。

常见招聘网站

下面介绍一些笔者知道的常见的招聘网站:

智联招聘

拉勾网

海投网:这个主要针对应届毕业生,上面很多宣讲会消息

各个公司的官网的招聘版块

最好都对应装一个APP,及时掌握最新的招聘信息,及时投简历过去、参加宣讲会、笔试。

最后,重点推荐一个网站:看准网,这个网站上面有各种各样、各个公司的面试经历。面试前上去看看,搜一下,往往能够找到很多面经,提前准备面试。

简历篇

推荐:

在线简历制作平台:五百丁,最好开一个永久会员,可以下载制作好的简历

有能力的,找一些比较好的PS格式的简历,自己用PS去修改

不缺钱的,上淘宝找人做

另外,关于简历的书写与包装,一定要多参考牛逼的人的简历,下面给出两篇参考文章:

《你的Android简历都差在哪里》:

http://www.jianshu.com/p/bc428793c114?mType=Group

《Android 求职简历》:

http://www.jianshu.com/p/5a46c2b7e9f0

最后,晒出当年笔者的渣渣简历(其实也就是去年,哈哈):

我的简历

PS:

头像只是展示用(这是展示版本),实际投出去的简历千万不能这么吊,因为这是对HR的一种不尊重,这是值得重视的。

简历与你所准备的内容一定要充实、注重能力与技术,而不是各种校园、社会经历,因为这是技术简历,你不是去应聘销售。

一定要积极向上,体现你对这个行业的热爱(例如笔者给自己的简历P了好多Android机器人,哈哈)。

笔者当年的水平也就那样了,别喷!

简历一定要学会包装。

技术面

Android基础就不再赘述了,相信大家都比较熟悉,找一个系列的博客或者买本书籍补习即

首先,给出几个注意点:

面试中一定程度的装逼是需要的

适当的交谈能力是必须的,这个需要平时多练习

被问到不懂的时候,不必强行装逼,可以虚心请教,或者适当转移话题

态度一定要积极向上,对这个公司充满期待与好奇

下面给出一些推荐资料:

笔者的《Android面试--纸上谈兵系列》:

http://www.jianshu.com/p/8500d42e3c91

黑马程序员论坛上面的一些面试经历,例如:

http://bbs.itheima.com/thread-196394-1-1.html

http://bbs.itheima.com/thread-260207-1-1.html

http://bbs.itheima.com/thread-223527-1-1.html

(笔者当年可是全部都看完,并且用Word文档保存起来了)

黑马程序员论坛Java板块上面的一些笔记,着重推荐《阳哥的Android面试宝典》:

http://bbs.itheima.com/forum.php?mod=viewthread&tid=345460&highlight=%E9%9D%A2%E8%AF%95

另外还有其他的一些笔记,例如:

http://bbs.itheima.com/forum.php?mod=viewthread&tid=345460&highlight=%E9%9D%A2%E8%AF%95

注意:

《阳哥的Android面试宝典》与黑马程序员出版的书籍《Android 面试宝典》是一样的,有条件的同学推荐去买本书。书上补充了很多知识,例如简历、面试过程。

HR面

终于来到最后一个环节了,过了HR面,你几乎可以拿到Offer了。

HR面中的注意点:

HR主要想知道的你的工作态度、对行业的热爱程度

各种职场能力:沟通、决策能力等

穿着得体即可,不能太随便,又不能太正式。

一定要懂得HR的面试套路,对常见问题要有所准备,尤其针对女HR。

这里,推荐笔者自己写的一篇关于HR面试的文章:《HR面试小总结--不定期更新》

http://www.jianshu.com/p/6ba84767c5d3

希望能够帮到大家。

结束语

笔者的水平与能力有限,只能帮大家到这里了,Android知识体系博大精深,一篇文章不可能完全掌握,这里只介绍了一些面试常见的知识点。

最后,给大家喂点鸡汤:

http://www.jianshu.com/nb/14294090

希望大家在在准备、宣讲会、笔试、面试的过程中能够得心应手,拿到自己心目之中最理想的Offer。

本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除!

上一篇:Android 面试:如何理解 Activity 的生命周期
下一篇:关于 Android 架构选择的一点思考

2017年Android 校招面试总结

我的 Android 面试故事 | 13家面试记录

走心的Android工程师跳槽经验分享

2017年 Android 校招面试经验总结和分享

选择城市和中心
贵州省

广西省

海南省