Android开发收到两家大厂的Offer是怎样的感受?这篇总结来解密(1)

这篇文章详细描述了作者在字节跳动和腾讯的Android面试经历,涉及基础技术、项目优化、IO操作、内存管理、算法、网络原理、并发控制等内容,提供了面试技巧和常见问题解答,对Android开发者寻求突破有指导价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


字节面试一共4面。字节的面试风格偏向基础的内容,以及简历上知识点的扩展。

字节1面

  • 自我介绍,项目经历,项目上的优化项以及原因

  • 为什么使用mmap优化io读写,mmap和传统读写有什么区别?为什么选择它?

  • Object 中有什么方法?

  • Object 的equal实现?重写equal需要注意的方面。

  • synchronized 原理。

  • volatile原理

  • ui优化

  • 内存优化与LeakCanary的源码?以及LeakCanary的缺点和如何解决。

  • 算法:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字(Leetcode原题)。

字节2面

  • 自我介绍,项目经历,项目上的优化项以及优化的原因

  • Rxjava源码原理,以及项目中你是如何将Rxjava流进行复用。

  • 你项目中高度自定义了DiskLRUCache。问LRUCache的实现?问LinkedHashMap的实现?问DiskLruCache的实现?问Glide中实现的DiskLruCache的运用。

  • Handler的原理

  • volatile原理

  • synchronize 锁的转化流程。

  • ReentrantLock 实现。

  • ui 优化,首屏渲染时机优化

  • 启动优化,与AlphaManager的实现。

  • 插桩的原理以及运用。

  • ASM

  • Javapoet

  • 动态代理

  • LiveData 和 ViewModel的源码实现

  • x2c 源码实现

  • DNS 原理

  • https的原理

  • 算法:判断一个字符串是否是回文串(注意保证原字符串不可改变,可用O(n)的空间复杂度)。

方向:栈的考究。

字节3面 Leader面

  • 1.工作软技能的考核,以及团队中的定位

  • 2.如何进行io 优化,指标是什么,优化后的结果以及参数是多少?

方向:可以使用/proc/pid/stat读取cpu的idle,iowait等。使用mmap优化后的结果。

  • 3.算法:在一个单链表中,每k个节点进行反转,无法被反转的部分放在末尾。

腾讯面试


腾讯的面试风格,普遍是基于你的简历上项目经历,往细节往深处问。我是面试因算法失败了一次,后面第二次就成功了。

总结一下2次腾讯面试

腾讯第一次面试1面

  • 自我介绍,项目经历,项目上的优化项以及原因

  • ARouter 源码实现,项目中对ARouter的扩展实现详细设计

  • ui 优化,启动优化,首屏展示时机优化

  • volidate 实现

  • Java异常捕获

  • DNS 原理

  • https的原理

  • jni 中JNIEnv 和线程的关系

  • jni中有几种注册native方法。

  • Native异常捕获

腾讯第一次面试2面

  • 自我介绍,项目经历,项目上的优化项以及原因

  • ARouter的实现,以及自定义扩展ARouter的实现

  • 项目中的io 优化,以及为什么用mmap于io优化

  • mmap的实现

  • mmkv 中 对应 mmap 断电时候的处理机制

  • mmap没调用msync时候,落盘时机。

  • 算法:合并三个单链表(可参考leetcode 合并多个单链表)

因为自己画蛇添足,把每一个节点拷贝了一次,还没有往后迭代,实在是错漏百出就挂了。脑袋还是不够清醒,结果饮恨而归。

腾讯第二次面试1面

  • 自我介绍,项目经历,项目上的优化项以及原因

  • ARouter 的实现,以及扩展的实现

  • 启动优化,以及ARouter的启动优化方式,ARouter的分区方式

  • Navigation的源码解析

  • 基于Navigation 编写路由框架NavigationRouter 的源码实现,以及实现的优点

  • Navigation 实现的路由框架中如何处理Activity和Fragment 嵌套启动的方式

  • class的加载流程

  • Handler的实现(最好能回答到epoll和eventfd的层面)

  • 实现一个多线程下的消费者生产者模式

腾讯第二次面试2面

  • 自我介绍,项目经历,项目上的优化项以及原因

  • io 优化 与 使用mmap的优势和缺点

  • ARouter 的实现,以及扩展的实现

  • 多进程实现的路由

  • 如何进行多进程的同步调用,此时另一个进程还没有启动?

  • 数据结构中不支持多线程的数据结构,如果使用多线程操作会造成什么结构

  • ArrayMap 实现

  • HashMap 与 ArrayMap比较,两者的优缺点

  • handler 的原理

  • handler 是怎么进行postDelay 延时操作。

  • 当handler 只有一个延时的message时候,Looper中是如何运行。

  • volidate 原理

  • 当没有添加volidate 修饰属性的时候,数据什么时候从缓存行刷新到主存。

  • 算法题:在一个n*n的方格中。有两种方格,1代表阻塞不能经过,0代表可达。两点坐标,a和b。问a到b的最短路径。

腾讯第二次面试3面和4面

腾讯3面和4面是联系到一起的,这里一起说了

  • 自我介绍,项目经历,项目上的优化项以及原因

  • mmap 实现原理和io优化

  • View的绘制流程,从 setContentView 解析xml到View的绘制结束。

  • 硬件渲染流程

  • SurfaceFlinger 在 View绘制流程中扮演的角色

  • Choregrapher 的工作原理

  • OOM 如何优化,内存爆满是虚拟内存容易先爆掉还是物理内存容易,一口气映射4g的内存是否会发生异常。

  • Bitmap 如何优化避免OOM,为什么放在native中bitmap不容易OOM

  • 一个进程最多可以使用多少fd

结尾

  • 腾讯T4级别Android架构技术脑图;查漏补缺,体系化深入学习提升

img

  • 一线互联网Android面试题含详解(初级到高级专题)

这些题目是今年群友去腾讯、百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。并且大多数都整理了答案,熟悉这些知识点会大大增加通过前两轮技术面试的几率

img

有Android开发3-5年基础,希望突破瓶颈,成为架构师的小伙伴,可以关注我
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

结尾

  • 腾讯T4级别Android架构技术脑图;查漏补缺,体系化深入学习提升

[外链图片转存中…(img-p121ujC6-1714734005211)]

  • 一线互联网Android面试题含详解(初级到高级专题)

这些题目是今年群友去腾讯、百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。并且大多数都整理了答案,熟悉这些知识点会大大增加通过前两轮技术面试的几率

[外链图片转存中…(img-qfnX5jvd-1714734005212)]

有Android开发3-5年基础,希望突破瓶颈,成为架构师的小伙伴,可以关注我
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值