背景
本人毕业于二本渣院,由于带学院结尾,被网易认为三本不给面试机会。广东人,说起普通话来很重的口音,面试时紧张的时候别人更是听不清楚我说什么,很吃亏。
按时间顺序目前面试了cvte,吉比特,小米,字节跳动,阿里,腾讯WXG,七牛云,拿到七牛云HR,腾讯的offer,阿里offer。
面试情况
腾讯一面
(一面面试官很nice,但是发短信约时间之后,鸽了我4个小时,我上课时打过来,约晚上,结果鸽了我三天,之后我主动发短信约时间,答应了之后结果又鸽了我。。。orz)
1.自我介绍
2.自我介绍时说过自己看过EventBus源码,然后让我谈谈事件总线的理解。
3.EventBus会有什么问题吗?
4.EventBus、接口回调、观察者模式的使用场景说一下。
5.项目什么地方用到数据的持久化,说一下。
6.Activity的生命周期,弹出dialog和一个activity的dialog生命周期有什么区别?
7.Activity的启动模式,应用场景,然后举了很多微信的场景,让我去选择用那种启动模式,说下理由。
8.Activity进程的优先级。
9.如何防止微信不被系统杀死?
10.service两种启动模式,区别
11.两种启动模式,如果我在退出Activity的时候没有退出service会怎么样。
12.设计一个图片浏览框架,(线程池,lru缓存,brabra的说了一堆)。
13.有一个很大很大的图片加载到内存上,不能降低清晰度和压缩图片你怎么解决?(提示我局部显示?我没懂)
14.如何适配不同厂商的手机,然后设计模式,brara又说了一大堆,最后还说到jetkins自动部署上面去了
15.AsyncTask源码分析,每个方法在哪个线程执行的?
(一面面试官真的很好,有些你不懂的他还举例教你,一面我觉得难度比较大,常规的背题肯定会不满意的,题目比较少,引申出来的知识点却很多,大部分时间都是我在谈自己的解决思路然后分析到知识点的源码上面去,比如说像如何防止微信不被杀死这种,其实我说了常用的进程保活思路,它还要我分析其他情况)
面试官说我不错,叫我明天准备二面,电话一挂,我就愉快地去吃饭,吃着饭看状态灰了,这谁顶得住啊~
回去看完电影之后,再查一下状态,变成了复试,估计之前是到时间简历被释放了。
腾讯二面
(二面总监/面委,由于开会,鸽我半个小时)
1.上来大数相乘,我做的眼泪都快流出来了。
2.put和post的区别,应用场景。
3.看了我的flutter项目,我改了一个框架,问我这个框架。
4.让你设计一个跨平台的框架,你怎么设计(这里我谈了flutter的架构)。
5.https的流程。
6.fragment的懒加载。
7.一个商场里有一个电影院,你会把厕所建设在哪里,说一下你的理由?
hr面
(鸽了我20分钟,腾讯都是大猪蹄子?哈哈~~开玩笑,面试官真的很忙,有时候换位思考一下,心态好点)
1.自我介绍
2.为什么选择微信?
3.对我们了解吗?
4.愿不愿意来
5.家里的情况
6.什么时候可以来实习,可以实习到什么时候
(入职)
阿里一面
1.自我介绍
2.自己看过的源码,说一下?
3.接下来就EventBus的东西了,还是老问题,优缺点,有没有什么问题,列举了很多场景,我看源码看的比较细,根据自己看过的东西做回答和分析,然后还是,接口回调和观察者模式之间的选择。
4.问我你看过这么多源码,你觉得什么东西最重要?
5.答了源码中看到了大量的反射使用,多线程方面,Collections,数据结构这些。
6.问我多线程,引申出handler,我从handler的源码去解释
7.handler引申出的内存泄漏,为什么静态内部类不会持有外部对象
8.接下来还是场景题,图片框架的实现,涉及到的Lru缓存,线程池,线程池该如何分配线程数量。
9.APP从打开到显示之间发生的事情。
10.为什么java可以调用c/c++的函数,调用jni发生的事情说一下。
11.动画种类,使用动画的步骤,有没有看过动画框架的源码。
(面试官说我在应用层上基础知识很好,懂得去看源码学习,但是android深度不够,应该要往Framework和c/c++那边学习)
阿里二面
1.自我介绍
2.还是自己对EventBus的理解。
3.学习Android的过程
4.项目遇到的问题,怎么解决的
5.回答过程中提到csrf,问原理
6.对公司有什么要求
7.IPC
8.socket的连接过程
(说我这方面的技术和兴趣不错,但是缺少大型项目的经验,考虑不够全面,如果有一个机会给我就很好了。)
阿里三面
1.自我介绍
2.详细说我第一个项目
3.http缓存
4.如何把ip地址存储在一个int 变量里面?
5.详细介绍第二个项目
(30min,面试官说我自己对技术的热情很不错,让我保持下去,口头直接让我过,让我等hr)
阿里HR面
1.上来突然莫名其妙问我一堆与专业无关的,还问我这个专业跟计算机有什么关系(我是软件工程),
我:
我有点懵(原来看错简历了)
2.从小到大最有压力的事
3.数学怎么样
4.你考上这个学校是正常发挥吗? 我回答的是!/(ㄒoㄒ)/~~ 很凉
5.什么事情让你觉得自己喜欢移动端
6.哪里人,想去哪里
(hr面只有15分钟,感觉不太好)
(昨天收到offer意向书,整个流程横跨两个月)
总结
我也不是什么大佬,最后唠叨几句。希望各位没拿到offer的真的不要灰心,可能你之前所有的失败都是你成功的垫脚石,我面头条一面挂的时候也曾经自闭过,但更多的是反思,如何调整自己的复习计划。在复习的时候一定要有自己的强项,能把这个知识点理解的很透彻并且把相关的知识点拓展出去。另一方面就是让面试官看到你对这个岗位的热情,能够自发性地去学习与岗位相关的东西。
最后
下面是有几位Android行业大佬整理有我收录的一些进阶架构资料。有【Android架构视频+BATJ面试专题PDF+学习笔记等资料】希望能够帮助到大家提升技术。
《Android八大模块进阶指南》
这份笔记一共8大模块、729个知识点,3382页,66万字,可以说覆盖了当下Android开发最前沿的技术点以及阿里、腾讯、字节跳动这些大厂面试时最看重的技术。笔记都是根据高级工程师知识体系来整理的,需要的朋友点击这里免费领取,保证免费分享!
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
一、架构师筑基必备技能
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……
二、Android百大框架源码解析
1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程
…
三、Android性能优化实战解析
腾讯Bugly:对字符串匹配算法的一点理解
爱奇艺:安卓APP崩溃捕获方案——xCrash
字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
百度APP技术:Android H5首屏优化实践
支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
携程:从智行 Android 项目看组件化架构实践
网易新闻构建优化:如何让你的构建速度“势如闪电”?
…
四、高级kotlin强化实战
1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
- Kotlin 写 Gradle 脚本是一种什么体验?
- Kotlin 编程的三重境界
- Kotlin 高阶函数
- Kotlin 泛型
- Kotlin 扩展
- Kotlin 委托
- 协程“不为人知”的调试技巧
五、Android高级UI开源框架进阶解密
1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel 使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
…
六、NDK模块开发
1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习
七、Flutter技术进阶
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)
…
八、微信小程序开发
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
篇幅有限,需要Android学习资料的小伙伴点击这里免费领取!保证免费分享!