国庆假期已过,金九银十也接近尾声。为了让大家能够抓住招聘旺季的尾巴,紧急开更一些大厂的面经和相关的面试干货,这有一份最新字节跳动Android面经+笔记带给大家。
面试过程:
- 普本 / 软件工程 / 3年经验, 9月初通过字节工作的学长进行内推,7天的简历评估
- 11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过。
- 14号现场面试,次日收到通知,通过。
- 16号进行终面,
- 22号收到Offer,总包45W
面试结束后我把各大厂的面试经验及高频考点梳理了一遍,以下是我字节三轮面试的部分考题可以针对性的看看,另外整理了一套完整的Android面试考点总结(有PDF版在文末分享给大家),希望能够帮助到计划冲大厂的小伙伴。
字节一面部分考题:
- 插件化。启动activity的hook方式。
- okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称
- handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?
- 求二叉树中两个节点之间的最大距离。
- 206含义,未修改资源是哪个,302含义,301含义
- 多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?
- 动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理
- Application和Activity在Context的继承树上有何区别?二者使用上有何不同?
- 任意一颗二叉树,求最大节点距离
字节二面部分考题:
- 设计一个日志系统。
- 内存泄露的分类。怎么查看内存泄露的问题
- touch事件源码问题。
- 组件化的问题。module和app之间的区别。moduler通信是如何实现的。
- native奔溃的日志采集,怎么处理?
- 注解实现一个提示功能:如果int的值大于了3需要提示。
字节三面部分考题:
- 介绍下flutter的启动流程
- 介绍下flutter与weex的区别
- 组件化介绍一下
- webview中与js通信的手段有哪些?
- 介绍下flutter_boost的原理
- 适配器和装饰模式各自特点和使用场景
- 视频编解码是怎么做的
- 三色球排序
总结
- 提前刷题准备,八大排序算法要准备好,会经常被问到;面试的手撕代码环节和一面比较重要;
- 能找内推尽量内推,方便跟进进度,了解面试官情况等;
- 简历上的项目内容要精准。
除了面试字节,我还参加了阿里、美团和百度等公司的 Android 面试,有两家收到了 offer,每次的面经我都有整理,其实面试考点大致相同,只是各大厂的侧重点不一样。这些已经整理在Github,如果你有需要完整版,可点击传送门直达!
![img](https://img-blog.csdnimg.cn/img_convert/72dd846addf082cabe817a1d6e66e49c.png)
内容覆盖了jetpack、音视频、原理性知识、热修复、性能调优、组件化、Flutter、设计模式及开源框架、源码解析等技术栈。全部整理在下方文档中,共计600多页。
**为便于你理解,我会采用“知识点 + 项目实践”的讲解方式,**侧重总结工作上的实践经验,并和你分享一些疑难问题的解决思路,让你在以后的工作中,能够有方法论的指导。
感言
Android 工程师的竞争环境越来越激烈,**但 Andorid 开发仍然是一个刚需的工种,**行业对人才的需求从未终止,但与此同时也对我们提出了更高的要求。如果你仍然只是在日常开发过程中复制粘贴,或者仍以完成一个项目需求为唯一目的,只是掌握了如何去调用某个 API 或者数据结构来实现某个功能,已经不能算是合格的工程师了。
对于 Android 开发者来说,要成为优秀的 Android 开发工程师,不只能够让你在工作中更加游刃有余,同样会让你在职业发展中面临更多优质的机遇。**而一个初中级 Android 工程师在通往高级甚至是资深工程师的发展过程中,我认为这份Android面试指导手册中超过 90% 的内容都是你必须掌握,**且无法绕过的。这些已经整理在Github,如果你有需要完整版,可点击传送门直达!
|