【Android 面经分享】阿里大佬的 5年 Android 开发的求职之路

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

  1. 浏览器输入一个地址,按下回车,这个过程是什么样的

  2. 简单介绍一下TCP

  3. 简单介绍一下Https

  4. 说说对称加密和非对称加密,说说公钥

  5. 并发操作如何保证线程安全

  6. 锁有哪些

  7. 简单介绍一下HashMap

  8. Arraylist是线程安全的吗

  9. 知道CAS、原子性吗

  10. AtomicBoolean和boolean的区别

  11. 用过哪些设计模式

  12. 介绍一下观察者模式

  13. 用过哪些排序算法

  14. 介绍一下贪心算法

  15. 介绍一下快排原理

  16. 算法,给定一个有序不重复数组,使用时间复杂度小于N方的方法,找到所有两两相加等于target值的组合:

int[] a={1,2,3,4,5,6,7,8} int target=7

美团
  1. Java对象生命周期

  2. GC机制

  3. Glide缓存机制

  4. Glide对Bitmap是怎么优化的

  5. Okhttp请求流程

  6. Retrofit中的设计模式

  7. App启动流程

  8. Apk打包流程

  9. 重构做了哪些工作

  10. 内存泄露,举例场景

  11. LeakCanary实现原理

  12. Handler消息机制

  13. 线程有哪些状态

  14. Hybrid开发介绍

  15. Js功底怎么样

  16. 未来职业规划

哔哩哔哩
  1. MVC,MVP,MVVM的区别

  2. 使用MVVM有遇到什么问题吗

  3. 协程原理

  4. 协程并发怎么处理的

  5. 热修复原理

  6. 用热修复的过程中有遇到什么问题吗

  7. 启动优化

  8. 包体积优化

  9. 绘制优化

  10. 全埋点是怎么做的

  11. Apk更新流程

  12. 多渠道打包

  13. 怎么辨别华为的包更新别的应用市场的包

  14. 算法,插入排序原理

声网
  1. 觉得做的最好的项目

  2. Jetpack用了哪些组件

  3. ViewModel如何数据共享

  4. ViewModel在Activity旋转时如何保存数据的

  5. ViewModel怎么创建的,存在哪

  6. 使用ViewModel过程中有没有遇到什么问题

  7. LiveData原理,怎么派发数据的

  8. postValue是怎么执行的

  9. 使用LiveData的过程中有没有遇到什么问题

  10. 自定义View有哪些注意事项

  11. 简单介绍一下协程

  12. 多个协程怎么保证数据安全的

  13. 算法,输入(H₂O) ×2,输出h4o2

掌门教育
  1. 笔试逻辑题

  2. Java有哪些数据结构

  3. Arraylist是线程安全的吗

  4. String,StringBuilde,StringBuffer的区别

  5. Java中的锁介绍一下,同步锁举例

  6. 四大引用区别,场景举例

  7. Activity生命周期

  8. Fragment生命周期

  9. Fragment销毁生命周期执行顺序

  10. 自定义流程,举例

  11. 自定义View刷新方式有哪些,执行流程

  12. 事件分发原理,举例,延伸

  13. 滑动冲突怎么解决

  14. 怎么自己实现一个长按事件

  15. Service是哪个线程,怎么通信

  16. Handler消息机制

  17. Handler发送消息是一定立即执行的吗

  18. Handler运行在哪个线程

  19. 子线程可以创建Handler吗,写法有哪些区别

  20. Kotlin定义变量的方式有哪些

  21. lateinit怎么确保使用时已经初始化

  22. let,run,apply介绍,区别

  23. inline原理

  24. 简单介绍下协程

  25. 协程并发怎么处理

  26. 协程底层是怎么实现的

  27. 内存泄露原理,举例场景

  28. 启动优化

传音控股
  1. 做的最有成就感的项目是哪个

  2. 印象最深刻的项目是哪个

  3. LiveData底层实现原理

  4. 启动优化

  5. 包体积优化

  6. 自定义View流程

  7. View异步加载

  8. 有用过哪些设计模式

  9. 介绍一下单例,饿汉式,懒汉式,双重锁

  10. 代理模式和装饰模式的区别

  11. 策略模式和状态模式的区别

  12. 说说观察者模式

  13. 有看过哪些三方库的源码

  14. Glide四层缓存机制

  15. AMS了解多少

得物
  1. 简单介绍一下HashMap

  2. HashMap调用put的执行流程

  3. Activity启动流程

  4. Binder机制

  5. Handler消息机制

  6. Handler是怎么实现主线程和子线程的通信的

  7. Looper卡死为什么不会造成主线程的阻塞

  8. 了解过内存泄露吗

  9. 是怎么发现内存泄露的,怎么处理的

  10. 线上的内存泄露是怎么监控的

  11. LeakCanary实现原理

  12. 软引用和弱引用的区别

  13. 了解过ANR吗

  14. 什么原因会造成ANR

  15. Activity的响应时间为什么是5s

  16. 事件分发机制

  17. 怎么解决滑动冲突的

  18. 录音功能是怎么做的

  19. 编码解码相关

  20. 包体积优化做了哪些工作

哈啰出行
  1. 挑一个项目详细说一下,以及相关技术栈

  2. 介绍一下协程机制

  3. 说一下Dispatchers,withContext,Scope他们的作用

  4. 说一下你理解的MVP,MVVM

  5. Flutter相关

  6. 性能优化做了哪些工作

  7. 编译速度怎么提升的

  8. 内存泄露

  9. LeakCanary检测原理

  10. 热修复,Sophix原理,ClassLoader

  11. Apk打包流程

  12. 多线程并发,如何保证线程安全

  13. synchronized修饰方法和修饰代码块有什么区别

小红书
  1. 技术调研你是怎么做的,会考虑哪些因素

  2. 说一下MVVM

  3. 用过Jetpack中的哪些组件

  4. LiveData是怎么做数据派发的

  5. ViewModel屏幕旋转的时候怎么做到不丢失数据的

  6. 使用MVVM的过程中有遇到什么问题吗

  7. 性能优化做了哪些工作

  8. 内存泄露有哪些场景

  9. LeakCanary检测原理

  10. 如果让你做一个自动化的工具去检测图片过大并自动压缩你会怎么做

  11. 自定义View画板是怎么做的

  12. 怎么检测页面的FPS

  13. Handler在onCreate中发送大量数据会导致主线程卡顿吗

  14. LayoutInflater.inflate有几个参数,分别是什么意思

其他厂整理补充
  1. Android中的Context了解多少

  2. Application里面可以弹窗吗

  3. Activity、Window、View三者的关系

  4. OkHttp中有哪些设计模式

  5. Retrofit中有哪些设计模式

  6. Retrofit.create做了哪些工作

  7. 自定义一个圆角View

  8. 协程launch有哪些参数

  9. 说说by关键字

  10. 代理和委托的区别

  11. 双亲委托模式

  12. 有几种获取view宽高的方式

  13. view.post为什么可以获取到

  14. getWidth和getMesureWidth的区别

  15. 手写遍历二叉树

  16. 手写双重锁单例

  17. 手写插入排序

  18. 手写双数组去重并排序

  19. 如何判断链表有环

还有一些公司的没有记,比如蔚来、中欧基金、阿里等,如果上面这些你能掌握大部分,自然也不在话下。

二面、三面技术

都是偏项目和综合能力,因人而异就直接整理了。

  1. 你负责项目中的哪些模块

  2. 介绍一下xx功能的流程

  3. 项目的架构是怎样的

  4. Kotlin和Java混编有哪些需要注意的

  5. 项目中有遇到哪些难点

  6. 如果让你重构,你会怎么做

  7. 学习的途径有哪些

  8. 你觉得什么样的代码是好代码

  9. 团队是怎么分工的

  10. 怎么做需求管理

  11. 期望什么样的团队

  12. 怎么看待大前端方向

  13. 一个新技术如何在团队里推广

  14. 未来的规划是什么,你打算怎么实现

  15. 认为自己的优点是什么,缺点是什么

  16. 为什么离职

HR面

整理。

  1. 为什么离职

  2. 介绍一下过往的工作经历

  3. 在上家公司你有什么收获吗

  4. 目前看机会会考虑哪些因素

  5. 你在之前的团队中是怎样一个角色

  6. 有什么兴趣爱好吗

  7. 最有成就感的一件事

  8. 有没有做过什么不可思议的事

  9. 你认为自己的优点是什么

  10. 最近有在看什么书吗,有什么感想

  11. 你一般遇到问题都是怎么解决的

  12. 未来的职业规划是什么

  13. 你对未来的公司有什么期望吗

  14. 目前薪资

  15. 期望薪资

  16. 还有什么想要问我的吗

技术要点


针对上面的问题,我总结了一下面试前需要掌握的一些知识点:

  1. Java基础、Kotlin基础、Android基础( 重要

  2. App启动流程

  3. Handler消息机制

  4. View绘制流程

  5. 事件分发机制

  6. Jetpack常用组件原理

  7. Kotlin协程原理

  8. 性能优化

  9. 多线程、并发

  10. 组件化开发

  11. 热修复原理

  12. 常用三方库原理

  13. 常见的设计模式

  14. 数据结构和算法

建议面前多练练手写算法,最好是拿笔在纸上写。

关于算法,不过是基于数据结构去操作数据的思想而已。 如果说限制了复杂度而想不出来的话,可以先写再看如何优化。

Author : yechaoa

市场行情


目前并不是招聘旺季,但机会还是有的。

可能有些同学看了上面的面试题觉得卷,正常的。

写在最后

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料

如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包,最后觉得有帮助、有需要的朋友可以点个赞

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

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

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

会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料**

如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包,最后觉得有帮助、有需要的朋友可以点个赞

[外链图片转存中…(img-va8V6Dg0-1713078139579)]

[外链图片转存中…(img-ALpKLzeH-1713078139579)]

[外链图片转存中…(img-CAu9OyA6-1713078139579)]

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

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-ikTQsgz8-1713078139580)]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值