【金三银四】2024 Android面经实录

  • 异常 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/异常.md

  • 反射 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/反射.md

  • 注解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/注解.md

  • 反射性能开销原理及优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/反射性能开销原理及优化.md

  • 《深入理解Java虚拟机》

  • JVM内存数据区域 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/1.JVM内存数据区域.md

  • HotSpot虚拟机对象 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/2.HotSpot虚拟机对象.md

  • 垃圾收集器与内存分配策略 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/3.垃圾收集器与内存分配策略.md

  • Java字节码(class文件)解读 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/4.Java字节码(class文件)解读.md

  • 字节码指令简介 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/5.字节码指令简介.md

  • 虚拟机类加载机制 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/6.虚拟机类加载机制.md

  • 虚拟机字节码执行引擎 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/7.虚拟机字节码执行引擎.md

  • 前端编译与优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/8.前端编译与优化.md

  • 后端编译与优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/9.后端编译与优化.md

  • Java内存模型与线程 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/10.Java内存模型与线程.md

  • 线程安全与锁优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/11.线程安全与锁优化.md

  • 拉钩教育-《Android 工程师进阶34讲》

  • 拉钩教育-《Java 并发编程 78 讲》

3.3 Android
  • 《安卓开发艺术探索》

  • 死磕Android_View工作原理你需要知道的一切 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_View工作原理你需要知道的一切.md

  • 死磕Android_App_启动过程(含_Activity_启动过程) https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_App_启动过程(含_Activity_启动过程).md

  • 死磕Android_Service启动流程分析(一) https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_Service启动流程分析(一).md

  • 死磕Android_Service绑定流程分析(二) https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_Service绑定流程分析(二).md

  • 死磕Android_BroadcastReceiver_工作过程 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_BroadcastReceiver_工作过程.md

  • Lifecycle_原理解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Lifecycle_原理解析.md

  • ViewModel_使用及原理解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/ViewModel_使用及原理解析.md

  • Jetpack全家桶 https://juejin.cn/post/7013640663824597005

  • 学习Android Jetpack? 实战和教程这里全都有! https://juejin.cn/post/6844903889574051848

  • Lifecycle https://juejin.cn/post/6893870636733890574

  • LiveData https://juejin.cn/post/6903143273737814029

  • ViewModel https://juejin.cn/post/6915012483421831175

  • MVVM https://juejin.cn/post/6921321173661777933

  • DataBinding https://juejin.cn/post/6923859213403979789

  • Handler机制你需要知道的一切 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler机制你需要知道的一切.md

  • 死磕Android_ContentProvider_启动 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_ContentProvider_启动.md

  • LiveData_使用及原理解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/LiveData_使用及原理解析.md

  • Window,Activity,View三者关系 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Window,Activity,View三者关系.md

  • Handler同步屏障 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler同步屏障.md

  • Choreographer原理及应用 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Choreographer原理及应用.md

  • Handler相关知识点大全 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler相关知识点大全.md

  • LeakCanary 原理探究 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/LeakCanary_原理探究.md

  • OkHttp3 原理探究 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/OkHttp3_原理探究.md

  • Retrofit 原理解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Retrofit_原理解析.md

  • Glide主流程源码解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Glide主流程源码解析.md

  • RxJava3原理解析 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/RxJava3原理解析.md

  • Android-skin-support 换肤原理详解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Android-skin-support换肤原理详解.md

  • 屏幕适配 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/屏幕适配.md

  • 插件化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/插件化.md

  • 热更新 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/热更新.md

  • Gradle系列(一) Groovy 基础 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(一)_Groovy_基础.md

  • Gradle系列(二) Gradle执行顺序和task https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(二)_Gradle执行顺序和task.md

  • Gradle系列(三) Gradle配置构建和渠道包 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(三)_Gradle配置构建和渠道包.md

  • Gradle系列(四) Gradle插件 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(四)_Gradle插件.md

  • Gradle系列 插件练习-动态移除权限 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列_插件练习-动态移除权限.md

  • 手把手教大家用Transform API和ASM实现一个防快速点击案例 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/手把手教大家用Transform_API和ASM实现一个防快速点击案例.md

  • Android进程间通信: 深入浅出AIDL https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/AIDL详解.md

  • Android进程间通信: Messenger详解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/Messenger详解.md

  • Android进程间通信: Binder详解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/Binder详解.md

  • 硬核!Android 应用启动全流程深度剖析!(进程创建+消息机制+Activity组件管理+Application和Activity初始化+UI布局与绘制+RenderThread渲染+SurfaceFlinger合成) https://mp.weixin.qq.com/s/b6-leHKQZkuxkjll-1109A

  • Choreographer原理及应用 https://blog.csdn.net/xfhy_/article/details/115436765?spm=1001.2014.3001.5502

  • 终于懂了,屏幕刷新 https://juejin.cn/post/6863756420380196877

  • View工作原理 https://juejin.cn/post/6854573212374663182

  • 编译基础 https://juejin.cn/post/6844904106545414157

  • Android插件化原理(一)Activity插件化 https://juejin.cn/post/6844903613865672718

  • ClassLoader http://liuwangshu.cn/tags/ClassLoader/

  • hencoder全部Kotlin部分 https://rengwuxian.com/tag/kotlin/

  • hencoder全部自定义View部分 https://rengwuxian.com/tag/custom-view/

  • 协程原理 https://juejin.cn/post/6862548590092140558

  • flow https://juejin.cn/post/6914802148614242312

  • 反思|官方也无力回天?Android SharedPreferences的设计与实现 https://juejin.cn/post/6884505736836022280

  • ActivityThread的理解 https://blog.csdn.net/hzwailll/article/details/85339714

  • 了解AMS http://liuwangshu.cn/tags/ActivityManagerService/

  • Android Gradle 自定义Task 详解 https://blog.csdn.net/zhaoyanjun6/article/details/76408024

  • 编译打包流程 https://juejin.cn/post/6844904106545414157

  • Android Gradle 看这一篇就够了 https://juejin.cn/post/6844903446814916621#comment

4. 技术面试真题

只记录了部分公司和部分题目,有时候面试完忘记记录了,后面就想不起来了。

公司1:

  • 包体积优化

  • handler原理

  • 如何退出app

  • synchronized和lock

  • 鸿蒙了解过吗

  • flutter了解过吗,compose呢

  • 跨进程通信,线程通信

  • 组件化是怎么做的

  • 做过的项目,主要负责什么

  • 担任的角色

  • 最难的是什么?怎么解决的

  • 开发流程是怎么样的?有做设计文档吗?

  • 职业规划,为什么做安卓?鸿蒙有了解吗?

  • 平时怎么学习的?最近学了什么?给工作带来了哪些好处?

  • 看过哪些技术书籍

  • 平时有什么爱好

  • 对你想要去的公司团队有什么要求?或者说你想去什么氛围的项目组?

公司2:

  • sleep和wait区别

  • mvp

  • 组件化

  • livedata,viewmodel原理

  • 内存优化

  • 启动优化

  • leakcanary原理

  • 换肤原理

  • 怎么hook ams

公司3:

  • volatile、synchronized、原子类的原理

  • 数据库优化是怎么做的

  • 性能优化

  • kotlin伴生对象和init

  • 斐波拉契序列

  • 反转链表

公司4:

  • fragment生命周期

  • 屏幕刷新机制

  • binder理解

  • bindService校验: 权限,包名

  • https的原理

  • 响应式编程

  • 热修复:class和资源

  • invalidate 和 postInvalidate区别

  • handler原理,sendMessageDelayed是怎么实现的,为什么不卡主线程,底层是如何通知进程这边恢复阻塞的

  • java掌握到什么程度了,kotlin呢?android呢?

  • 响应式编程

  • 看过哪些书?推荐一本你觉得不错的书,为什么不错

  • android最近这2年值得关注的框架

  • 敏捷开发模式

  • 你给你自己的水平打分,计划怎么完善和精进自己的技术栈

公司5:

  • app启动过程+activity启动过程,activity启动过程中的launchmode的原理

  • handler

  • java 方法重载问题,泛型相关

  • 卡顿优化,冷启动优化,线上监控方式

  • 慢函数线上监控

公司6:

  • 3个线程如何依次执行

  • 设计一个图片加载库,lrucache原理,linkedhashmap实现

  • lifecycle,viewmodel原理

  • view事件分发

公司7:

  • gc roots

  • JVM垃圾回收算法,Android虚拟机垃圾回收算法

  • 分代回收思想

  • Java类加载机制

  • 线程池有几种,分别是什么特征,自定义线程池需要注意什么,核心线程数是多少

  • hashmap原理(红黑树会退成链表吗?什么情况下?),ConcurrentHashMap原理,Hashtable原理

  • StringBuilder和StringBuffer原理

  • 反射原理及其优缺点

  • 泛型拿来做什么的

  • synchronized用法及原理,1.6做了哪些优化,Mark word

  • 常用的三方库原理,随便挑一个说

  • 换肤原理

  • 动画有哪几种,属性动画原理,vsync

  • View绘制流程

  • 短时间内多次调用requestLayout,哪些View会重绘

  • 冷启动优化

  • 包体积优化

  • 插件化原理,startActivity

  • mvc,mvp,mvvm

  • requestLayout流程

  • 算法1:反转单词

  • 算法2:环形链表求环入口节点,不准用快慢指针,O(1)空间复杂度,O(n)时间复杂度,可修改链表节点的指针和数据。不能在链表节点中新增属性

公司8:

  • 说一下项目的架构,哪一块是你主要负责的?说一下是怎么设计的

  • livedata原理

  • handler原理

  • 组件化传递大数据

  • 单例里面的数据线程安全

  • 内存优化,卡顿优化,冷启动优化

  • 怎么检测已发生了内存泄露的对象?不知道那个对象是谁

  • 协程和RxJava原理,区别

公司9:

  • view绘制流程

  • 事件分发流程,外部拦截法,内部拦截法

  • Kotlin协程,协程原理,怎么开协程,怎么切线程

  • viewpager内部view高度不一致,怎么解决

  • startActivity流程

  • 启动优化,包体积优化

  • livedata原理

  • gradle 马甲包

  • 换肤原理

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
15804025251)]

[外链图片转存中…(img-kCwQ8KgC-1715804025254)]

[外链图片转存中…(img-0757AxoF-1715804025255)]

[外链图片转存中…(img-m1vhWbTE-1715804025256)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 28
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值