前言
笔者是前腾讯Android高工,曾经多次担任面试官,现在在字节code。
从毕业到现在,被别人面试过,也面试过别人,大大小小的面试,一两百次,也算久经沙场。
现在,我以腾讯非在职员工的身份来和大家分享一下腾讯、字节等大厂Android岗面试的流程、攻略以及一些建议,希望能帮到看见这篇文章的有缘人。
都是干货,赶紧收藏,三连走起。
提笔初衷
写这篇文的初衷是有很多朋友都在问我腾讯面试相关的问题(嗯哼,不少都是来打探面试真题的)。通过交流得知,不管是老猿还是新手,大家或多或少都有些害怕面试,尤其是大厂的面试。所以,在这里详细的讲一下。
PS:本文涉及的范围很广,对多数面试腾讯的人来说都有参考价值,即便是准备面试其他公司,也有很多相通的地方。相信大家看完本文之后,一定会有所收获。
关于工作的Q&A
应届生的话,这里就不多说了,只有一个建议:去大厂(大厂都可以,都能学到东西,薪资条件什么的自己看着选)。
这里主要给已经有3~5年的Android开发经验的朋友心中的一些疑惑做一些解答。
我现在到底该不该跳槽?
首先你需要想清楚,你想要的待遇薪资、公司平台、团队氛围、老板实力是什么样子。这些因素在综合影响着你的工作和发展,如果只是厌烦当下的工作,没有目标就跳槽的话成本太高了。
第二个需要思考的问题就是:你为面试做好准备了吗?
简历优化好了吗?面试前要准备的技能知识复习好了吗?算法题刷的怎么样了?项目准备好如何去说了吗?如果你的回答是NO,八成会成为炮灰。
腾讯(大厂)面试要怎么准备?
设个问题涉及的内容很多,下面的版块会展开进行详细讲解。
面试流程
大厂的部门一般比较多,岗位类型多,职级差异也大,所以大家的面试流程都是不一样的。
一般来说,针对高开,大部分的大厂面试都会经历2轮技术面,1轮领导面,1轮HR面,如果面试情况有争议(或者面的特别好的情况)会有一轮加面,总体来讲总共会有4轮面试。
以字节为例,基本上所有面试都会在线上进行,一面2轮技术面,2面领导面(也会有一些技术的考察),3面就是HR面谈薪资和定级了。
这里图解说一下普适性的面试流程。
(PS:面试如打怪升级,大家要先通关前面才能进入后面。大家可以通过这张图来看自己打到了那里。)
学习路线以及思路
大家可以先从下面几个方面来准备技术面试:
如下示例,非常详细!!!
- 泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶
- 注解原理丶注解原理丶序列化
- Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)
- 代码框架结构优化(数据结构丶排序算法丶设计模式)
- APP性能优化(用户体验优化丶适配丶代码调优)
- 热修复丶热升级丶Hook技术丶IOC架构设计
- NDK(c编程丶C++丶JNI丶LINUX)
- 如何提高开发效率?
- MVC丶MVP丶MVVM
- jetpack组件库
- 微信小程序
- Hybrid
- Flutter
分享一份由几位大佬一起收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料分享出来,希望可以帮助到大家提升进阶。
获取方式
以上完整学习笔记pdf全部免费分享,需要的朋友可以一键三连(点赞+收藏+关注)后,扫描下方二维码领取全套的学习资料以及面试题。
部分学习资料
架构师筑基必备技能
知识要点:
- 1、深入理解Java泛型
- 2、注解深入浅出
- 3、并发编程
- 4、数据传输与序列化
- 5、Java虚拟机原理
- 6、高效IO
设计思想解读开源框架
知识要点:
- 1、热修复设计
- 2、插件化框架设计
- 3、组件化框架设计
- 4、图片加载框架
- 5、网络访问框架设计
- 6、RXJava响应式编程框架设计
- 7、IOC 架构设计
- 8、Android 架构组件 Jetpack
360°全方位性能调优
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
Android框架体系架构
本篇知识要点:
- 1、高级UI晋升
- 2、Android内核组件
- 3、大型项目必备IPC
- 4、数据持久与序列化
- 5、Framework内核解析
NDK模块开发(音视频系列)
- 本篇知识要点:
- 1、NDK开发之C/C++入门
- 2、JNI模块开发
- 3、Linux编程
- 4、底层图片处理
- 5、音视频开发
- 6、机器学习
Flutter学习进阶
本篇知识要点:
- 1、Flutter跨平台开发概述
- 2、Windows中Flutter开发环境搭建
- 3、编写你的第一个Flutter APP
- 4、Flutter Dart语言系统入门
微信小程序开发
知识要点:
- 1、小程序概述及入门
- 2、小程序UI开发
- 3、API操作
- 4、购物商场项目实战
Android相关源码解读
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
部分面试题
高级开发面试题1.0
- 1、Handler相关知识
- 2、Activity 相关
- 3、 Fragment
- 4、Service相关
- 5、Android布局优化之ViewStub.include.merge
- 6、 BroadcastReceiver相关
- 7、AsyncTask 相关
- 8、Android 事件分发机制
- 9、Android View 绘制流程
- 10、Android Window、Activity、 DecorView 以及 ViewRoot
- 11、Android 的核心 Binder 多进 程 AIDL
- 12、Android 高级必备 : AMS,WMS,PMS
- 13、Android ANR
- 14、Android内存相关
- 15、Android屏幕适配
- 16、Android缓存机制
- 17.Android 性能优化
- 18、 Android MVC.MVP、MVVM
- 19、Android Gradle知识
- 20、RxJava
- 21.OKHTTP和Retrofit
- 22、最流行图片加载库:Glide
高级开发面试题2.0
- 1.Activity
- 2.Service
- 3.BroadcastReceiver
- 4.ContentProvider
- 5.Handler
- 6.View绘制
- 7.View事件分发
- 8.RecycleView
- 9.Viewpager&Fragment
- 10.Webview
- 11.动画
- 12.Bitmap
- 13.mvc&mvp&mvvm
- 14.Binder
- 15.内存泄漏&内存溢出
- 16.性能优化
- 17.Window&WindowManager
- 18.AMS
- 19.系统启动
- 20.App启动&打包&安装
- 21.序列化
- 22.Art & Dalvik及其区别
- 23.模块化&组件化
- 24.热修复&插件化
- 25.AOP
- 26.jectpack
- 27.开源框架