三非本科渣渣2年面试百场成面霸,春招补招终斩获大厂喜报,这样的安卓体系面试必备

2021-03-05 10:07:05 浏览数 (1)

关注我的一个读者,在春招补招中顺利上岸,拿到了大厂 offer,我一直在强调:意识 打法是努力的前提。

拿到大厂 offer 再回来感谢的人,以及愿意分享自己这段经历的人,都是真正在我文章中受益的,这让人很暖心。

下面是作者全文,请仔细认真阅读!

个人背景

先汇报一下战果,我是某双非一本智科专业,经过两年的努力面试来了差不多100次几乎面试了所有互联网公司,终于拿到头条蘑菇街百度小米合合信息的offer,薪资的话大概是按照我写的顺序排序的,头条的薪资还是比较诱人的,但是绩效的占比会比较高,没有选头条的原因主要是因为女朋友的工作找在了杭州,所以选择了965的蘑菇街,选择方面的问题看个人权衡吧,我就不多说了。

实习秋招

因为我秋招开始的比较晚很多公司的面试都错过了,但是仍然面了很多次,尤其是头条。慢慢的经过超级多轮的面试我的小笔记本也逐渐壮大并且有了自己的体系。脑子里的知识树也逐渐清晰了起来。

笔者头条面试从19年4月找实习开始到最后拿到offer一共面试18次,前两次基本就是一面挂,一面不挂二面挂。后面就是三面挂,三面又挂,三面双挂???最后一次终于没挂哈,但是也看开了。一面挂的时候感觉自己太菜了,还要努力,二面挂的时候感觉自己有进步,还要加油。三面挂感觉...有点可惜,不甘心;三面又挂:不会吧,就这么没缘分?三面双挂:拉倒吧求我我都不去了(默默又找hr内推)。

上面说的都挺轻松哈,但是对当时的我来说,每一次挂都是很大的打击。所以现在还没心仪offer的铁子一定要坚持住嗷。学弟学妹们遇到瓶颈也不要放弃,毕竟我这种傻篮子好好努力都能有offer,你们也可以的。

学习路线

学习路线的话我经过这么多弯路以及思考大致总结了一下,不只是学习路线,也是面试准备的思路:

1.首先Java基础很重要,需要花时间对Java中数据结构,Java并发,JVM虚拟机等有比较深入的认知。

2.然后就是Android方面的知识,从四大组件到消息机制,到事件分发等等等。

3.多做项目,前提就是前面两个搞差不多,不然就是照抄代码,根本不理解。

4.Android的一些开源框架原理,学习这些原理可以提高自己对整个架构的理解,对设计模式的理解。

5.操作系统,计算机网络。Android岗位来说这部分内容其实是比较少的,应对面试的话0基础一周也能学会。当然这里是针对应届生校招哈,之后要进阶的话可能还要对Linux有一定的了解。开发设计网络框架的话也要对网络很熟悉。

6.每天做一道算法题,首先剑指offer全文背诵理解,然后再搞其他的。这个东西主要是保持手感,说实话感觉对算法题的理解要是不到一种境界,面试手撕代码都是运气占比比较大,面试官问一个你见过的,10秒思路就想起来了,没见过的五分钟不见得有思路。

学习大致路线就是这六点,关于第二点补充几本书,按顺序看即可,期间根据能力做项目拓宽眼界。《第一行代码》 入门级项目熟练掌握基础组件 《Android开发权威指南》 接触Handler,IPC的项目 《开发艺术探索》《Andriod群英传》 自学RecyclerView(需要很全面,因为很重要),MVVM、MVP架构思想,视频以及Camera等;虽然还是会有些跳跃,最后我也会尽量详细地放在简书上,供大家参考。

说来Andriod的学习并不容易,因为总体来说相较于其他的各个方向,Android的学习资源是比较散的,成体系的书比较少,每一本书之间都有较大的跨度,所以学习Android需要花费的工夫是比较大的,大家坚持就是胜利啊!

面经真题

接下来就到了大家最喜欢的面经环节,因为面试公司太多了我就不按公司分类了,直接按照我的笔记顺序从基础到进阶地给大家过一遍。

还是先说一下面试技巧,首先,下面的这些问题都搞明白,搞得清清楚楚,最好每个问题都有逐字稿。

然后就是心态要好,不管面试回答得怎么样,保持happy,不会的话也不要慌张,就当是一场梦,醒了很久还是很感动就完事儿了。说不定你今天很阳光,没说上也很阳光保持求知,给面试官留下好印象,另一个大兄弟没说上但是慌慌张张的,整个后半场都发挥不好了,你不就过了嘛。

其实大家都是人,招人也不是只看技术的,技术过关然后性格好对胃口,有一种可以以后做朋友的感觉,哪怕你技术没那么全面但是很开朗阳光,和一个极度内向或者傲气的大牛比较的话我觉得都有很大机会。

好了话不多说开始查漏补缺:

首先,Java方面的话一定要全面,各种数据结构,语言特性,并发操作都要熟悉,而且不仅要会用,还要看看关键源码理解原理。JVM也要理解,因为Android的虚拟机其实和JVM很相似,所以开发中很多技术比如热更新之类的都和JVM中的一些原理很相似。因为Java相关的面试问题实在太多太广了我就不一一写出来了。后续会上传相关所有的内容。

Android相关:
  • 四大组件,背的滚瓜烂熟先,然后注意启动模式以及场景,四大组件需要非常全面的理解。
  • 消息机制:必问!handler原理以及里面的各种小细节,这个点可以说问的问题太多了,你想象不到的问题
  • 事件分发机制,各种情况下的传递和返回。
  • 滑动冲突
  • 各种Layout差别,性能差别,特性差别
  • RecyclerView 这玩意儿太重要了铁子们,关于这个东西的缓存机制,分段加载,等等问的非常多,直接就能看出来你的实战经验丰不丰富
  • AsyncTask
  • HandlerThread,IntentService
  • LruCache:这里就可以引入LinkedHashMap
  • Activity、Window、DecorView、ViewRootImpl、AMS ...这些个东西之间的关系,一定要捋清楚。
  • View的Measure,Layout,Draw。这部分内容概念很简单,但是面试不会问你简单的概念,都是通过场景来问你怎么处理,所以结合一定的实践需要深刻理解。
  • IPC通信方法以及Binder机制 重中之重 基本必问,内容很多,大家自行选择学习方法。
  • Bitmap压缩
  • 动画 动画这部分也是看你有没有实战过的常问问题,被问了几次都不是常规的概念问题。
  • dp sp px
  • sharePreferences
Android进阶相关:
  • Android多线程端点续传
  • 全局异常捕获过吗,怎么搞的
  • MVC,MVP,MVVM
  • Binder原理,架构
  • Activity启动流程
  • 内存泄漏优化,布局优化
  • 组件化,热修复热更新原理
  • 权限机制
  • RequestLayout/Invalidate区别
  • LayoutInflater
  • 框架原理:okhttp,Retrofit,Glide,Arouter
计算机网络以及操作系统:
  • 网络分层
  • tcp、udp 重点 常问
  • http、https 重点 常问
  • DNS 常问 以及各层的常用协议
  • 线程进程 重点,包括区别,通信等等
  • 内存管理
  • 死锁,异步同步等概念

常见的问题就这么多,主要针对今年要参加秋招和明年春招的想要从事Android开发的学弟学妹们参考,其他就是平常对一些三方库的使用和原理的理解以及三方库中整个架构的设计和使用的设计模式以及思想,需要多多积累。

大家也都知道最近大环境不好,找工作属实不易,要求也越来越高,但是干这行就得时刻保持学习的状态,既然选了就尽量奥力给。

那么就说这么多,各位加油,江湖见!祝大家都能拿到自己心仪的offer~

面试前的复习路线

多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!

接下来给大家提供一个方向,进行体系化的学习:

总共分为6个部分:

  • Java 基础(★★)
  • Java 高级(★★)
  • Android 基础(★★★)
  • Android 高级(★★★)
  • Android 项目(★★★)
  • 项目面试常见问题(★★★)

一、Java 基础(★★)

  • 面向对象思想
  • 多态
  • 异常处理
  • 数据类型
  • Java 的 IO
  • 集合
  • Java 多线程

Java 高级(★★)

  • Java 中的反射
  • Java 中的动态代理
  • Java 中的设计模式&回收机制
  • Java 的类加载器

Android 基础(★★★)

  • Android 基本常识
  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider&数据库
  • Android 中的布局
  • ListView
  • JNI & NDK
  • Android 中的网络访问
  • Intent
  • Fragment

Android 高级(★★★)

  • Android 性能优化
  • Android 屏幕适配
  • AIDL
  • 自定义控件
  • Android 中的事件处理
  • Android 签名
  • Android 中的动画
  • 网络协议
  • 其他

项目面试常见问题(★★★)

  • 开发周期
  • 项目中遇到的难题
  • 项目中最大的收获
  • 项目是如何上线的
  • 项目是如何盈利的
  • 绘制项目架构图
  • 项目开发流程
  • 你在项目中的角色
  • 你负责项目中的哪些模块
  • 讲讲你负责模块的具体实现
  • 项目中都用到了哪些第三发框架
  • 有没有自己写过框架
  • 业余时间你是如何提高自己(学习)的
  • 有没有自己的技术 blog
  • 你的职业规划
  • 为什么离职
  • 为什么选择我们公司
  • 说说你们项目的亮点和不足
  • 你们的项目是如何保持风格一致的
  • 项目架构是如何搭建的
  • 屏幕适配是如何解决的
  • 都看过哪些源码
  • 项目版本是如何升级的
  • 用的什么版本控制工具
  • 你能独立开发吗
  • App 跟服务器是如何交互的
  • 需求文档写过吗
  • 接口文档写过吗
  • 云服务器都用过哪些
  • 第三方平台都用过哪些

简历 社招解答 经典HR面试解析

以上是整理总结的Android中高级面试遇到的真题解析,希望对大家有帮助;同时很多人经常也会遇到很多关于简历制作,职业困惑、HR经典面试问题回答等有关面试的问题。同样我也搜集整理了全套简历制作、金三银四社招困惑、HR面试等问题解析,有疑问,可以提供专业的解答。

Android源码解析

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

对于Android开发的朋友来说应该是最全面最完整的面试资料,为了更好地整理每个模块,我参考了很多网上的优质博文和项目,力求不漏掉每一个知识点。很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个资料也已经帮助了很多的安卓开发者,希望也能帮助到你。

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容

0 人点赞