字节5面,4轮都让我分析 Android Framework 层的源码!这是刻意为难我吗?

如果你进阶的路上缺乏方向,可以加入我们的圈子和安卓开发者们一起学习交流!

  • Android进阶学习全套手册

    img

  • Android对标阿里P7学习视频

    img

  • BATJ大厂Android高频面试题

    img

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:

人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

字节飞书客户端二面
  • 讲一讲动态注册和静态注册

静态注册是通过包名和函数名去找方法,动态注册是通过注册方法表,其中还被问到了具体是调用哪个函数注册方法表。

  • so 的加载流程是怎样的,生命周期是怎样的

这个要从 java 层去看源码分析,是从 ClassLoader 的 PathList 中去找到目标路径加载的,同时 so 是通过 mmap 加载映射到虚拟空间的。生命周期加载库和卸载库时分别调用 JNI_OnLoad 和 JNI_OnUnload() 方法。

  • native 层怎么检测内存泄漏

我说按道理可以 hook 函数,开辟内存和释放内存的次数应该是一样的,如果不一样可以怀疑内存泄漏。面试官接着问有没有什么第三方工具或者库可以检测?我说我在公司其实也写的不多,不知道引擎组集成的是啥框架,主要擅长应用层开发。

  • 请你简述一下Zygote的启动流程

  • 请你分析一下init进程的作用

  • 请你分析一下Zygote的源码

  • eakcanary 的原理,哪些对象可以用来做 gc-root

好,你说你主要擅长应用层开发,那 Java 层的内存泄漏怎么检测,我说我们用的 leakcanary,让我说说原理,说完原理又问我是不是所有对象泄漏 leakcanary 都能检测得到,他的引用链是怎么管理的?后面问到你刚说弱引用对象在 gc 的时候会被释放,那什么时候不会被释放?我这时懵逼了,其实就是有内存泄漏的时候不会被释放,我当时脑子短路了居然没反应过来。

字节飞书客户端三面
  • Service的运行线程

(生命周期方法全部在主线程)

  • ServiceConnection里面的回调方法运行在哪个线程?

  • 简述一下进程保活的机制

  • 熟悉插件化吗?说一下实现一个插件化框架的思路

  • 说一下Bander机制的弊端

  • 手写一个简单的热修复框架

  • 请你分析一下AMS和PMS是如何进行通信的?

  • 手撕算法

字节飞书客户端四面
  • Jetpack的开发优势在哪?

  • LiveData和Databinding的源码分析

  • 单相绑定与双向绑定

  • Recycleview回收池的设计思想

  • HandlerThread的源码分析

  • 多个Handler往MessageQueue中添加数据,内部是如何保证线程是安全的呢?

  • 压轴算法题

字节飞书客户端五面
  • Activity之间传递数据最大为什么是4M?

  • 简述一下Looper的事务对调?

  • 问个简单点的?那你说一下ViewGroup的绘制流程?

  • Kotlin和Flutter

  • 压轴算法题

最后


**我最终还是没能拿到offer,但是这次的面试经历让我更加直观的了解了我和大厂Android开发之间的差距,算是收益颇丰吧。**总体面试情况感觉良好;差不多,字节也就问了这些。

经过这次是失败后,我利用空余时间进行深入学习,将这次面试中技术不足的部分进行了弥补,随手也整理一份《Android 知识点大全》的PDF学习文档,里面记录了一些大厂等各种公司的一些往年常见面试题,因文章篇幅长度缘故,我就已图片形式进行展示,如想参考学习完整的知识点,大家可以去访问我的 GitHub地址:https://github.com/733gh/Android-T3 进行参考查阅。

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

上面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

【Android高级架构视频学习资源】

**Android部分精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值