Android-茫茫9个月求职路,终于拿满意offer,2024最新Android开发面试大全

写在前面

本人2016年10月底以菜鸡的水平进入薯片公司手机团队做Android 应用开发。2018年底,公司出现危机,开始“优化”,本组一个小兄弟被“优化”,于是我也着手开始做准备,将来若轮到我被“优化”,出去面试时也好打个有准备的仗。这里我可以交代一下,我从开始面试到拿到满意的offer,大概是9个月时间,2019年9月16号才拿到满意的offer,时间跨度非常的长,大概参与了25家公司的面试,因为基本上是骑驴找马,并不急,我只想拿到满意的offer。

准备工作

主要是明确自己想要加入的公司,并开始做技术准备。目标公司是BAT,我需要到更大的平台和更优秀的人做更好的项目,正常来说加入BAT以后可以让自己的实力和眼界得到提升,并且有一线大厂的光环对以后都是蛮重要的。

有人说去哪里都一样,去了大厂也是个螺丝钉,我想说我宁愿做航空母舰上的螺丝钉也不愿意做拖拉机上的螺丝钉。其实在求职的过程中一次又一次的失败曾经让我放弃BAT了,转而投向其他我认为有前景的公司,不过最初我真的是非常想去BAT!做梦都想去。

关于技术准备,主要是包含下面几项:

  • 项目经历
  • Java基础
  • 设计模式
  • 算法
  • 网络相关知识
  • Android基础
  • Android源码
  • Android性能优化
  • 开源库源码

整个技术准备过程与面试过程是交替进行的,一边面试一边查缺补漏,如此往复。我当时是每天早上7点起床坐班车去公司,8点半吃完早餐就在工位上学习,一直学到9点半左右。然后10点开始办公,18时吃完晚餐,19时到20时,如果工作忙的话就办公,不忙的话就接着学习,后期公司任务变少了,有时候全天都在学习。

在这个过程中我真的是学的越多越觉得自己真是菜啊,一是觉得不知道的东西太多了,即广度太窄,二是知道的东西掌握的又不深,即深度不够。

面试进行时

准备了一段时间后我觉得自己准备的差不多了,就在拉勾上&boss上注册账号,公开了简历,前期我没有主动投递,有哪家让我去面试,我才去。后期就主动开始投简历了,这里不得不吐槽一下拉钩的star法则,以及万年不匹配。我面试的公司较多,摘取几个有代表性的公司拿出来分享下。

蓝厂

一面就挂了,主要是以下几个问题:

  • 事件分发流程
  • View的渲染机制
  • 动画的原理,底层如何给上层信号
  • 编译打包的过程
  • Android有多个资源文件夹,应用在不同分辨率下是如何查找对应文件夹下的资源的,描述整个过程
  • ANR的原理(回答主线程5秒阻塞是不行的,要读源码)

面试官是做framework的,所以问的东西偏framework,最后他说“虽然你是做应用的,但是不能浮于表面,要深入研究”,我觉得他说的很有道理。

度娘

晚上八点半,在雨中打着伞接到电话,进行电话面试,一面就挂了。

  • Bitmap 使用时候注意什么?
  • Oom 是否可以try catch ?
  • 内存泄露如何产生?
  • 适配器模式,装饰者模式,外观模式的异同?
  • ANR 如何产生?
  • String buffer 与string builder 的区别?
  • 如何保证线程安全?
  • java四中引用
  • Jni 用过么?
  • 多进程场景遇见过么?
  • 关于handler,在任何地方new handler 都是什么线程下
  • sqlite升级,增加字段的语句
  • bitmap recycler 相关
  • 强引用置为null,会不会被回收?
  • glide 使用什么缓存?
  • Glide 内存缓存如何控制大小?
  • 如何保证多线程读写文件的安全?

面试官声音略显慵懒疲惫……我怀疑他是不是面了太多人已经麻木了

某海外直播公司

一面:

  • 线程和进程的区别?
  • 为什么要有线程,而不是仅仅用进程?
  • 算法判断单链表成环与否?
  • 如何实现线程同步?
  • hashmap数据结构?
  • arraylist 与 linkedlist 异同?
  • object类的equal 和hashcode 方法重写,为什么?
  • hashmap如何put数据(从hashmap源码角度讲解)?
  • 简述IPC?
  • fragment之间传递数据的方式?
  • 简述tcp四次挥手?
  • threadlocal原理
  • 内存泄漏的可能原因?
  • 用IDE如何分析内存泄漏?
  • OOM的可能原因?
  • 线程死锁的4个条件?
  • 差值器&估值器

二面:

  • 简述消息机制相关
  • 进程间通信方式?
  • Binder相关?
  • 触摸事件的分发?
  • 简述Activity启动全部过程?
  • okhttp源码?
  • RxJava简介及其源码解读?
  • 性能优化如何分析systrace?
  • 广播的分类?
  • 点击事件被拦截,但是相传到下面的view,如何操作?
  • Glide源码?
  • ActicityThread相关?
  • volatile的原理
  • synchronize的原理
  • lock原理

三面:

  • 三道算法题,要求在一个小时之内做完。
  • 翻转一个单项链表 1->2->3->4->5->null =====> 5->4->3->2->1->null
  • string to integer
  • 合并多个单有序链表(假设都是递增的)

**四面: **

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

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

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

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

本文在开源项目GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

目前已经更新的部分资料,需要的自己取:



资料,需要的自己取:**

[外链图片转存中…(img-6RKn6Oks-1711323392925)]
[外链图片转存中…(img-oc0neVJk-1711323392925)]
[外链图片转存中…(img-zkLTc0Ik-1711323392926)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值