来自粉丝朋友的21年年终面经总结(Android 篇)

Posted 涂程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自粉丝朋友的21年年终面经总结(Android 篇)相关的知识,希望对你有一定的参考价值。

作者:小何

个人介绍

  • 95后,学历大专,专业计算机应用技术。
  • 工作已有5年,前面两年做的java,后面转成android 开发。
  • 无大厂光鲜履历以及较好项目,技术板块(Flutter、小程序、H5、Java、kotlin等……)

求职路线

1.BOSS/拉钩/智联:提前查询好公司信息,提前避坑。
2.内推:个人推荐有底气的直接选择较好的。个人建议是先线上谈,然后在线下约谈,这样双方都节省时间。

唠叨一下

对于跳槽,个人其实相对比较抵触,相比来来回回跳,内心更趋向于随着公司的成长而成长…
可事实岂能如人愿?

此想法还是太过于理想主义,但至少这是个简单、真挚且内心一直期望的小梦想…

不过也是,及时的从温水区离开,走向更远的地方,看更多的风景,未尝不是一种更好的选择…

这里特别奉劝各位小伙伴,一定、一定、一定要有自己明确的规划,以及及时止损!!!

真的是狗血鸡汤,总要苦过一阵子…

这次找工作,的的确确被锤很久,遇到过暖心面试官,也遇到过无良公司,还好一直坚持想找个自己相对喜欢的公司,还好结果还不错。

面试,无非就是一场技术交流。遇到不会的很正常,积极响应面对,主动尝试分析,尽力就好。这面试是否成功,有时候还真不是实力决定,不过实力有时候确实也能决定很多东西。

不管如何,一起加油~

面经之旅

Keep(硬件)⭐️⭐️⭐️⭐️

13:30 进 15:46 出来,Keep 公司环境蛮不错的,望京南附近,接待的小姐姐很友好,流程处理很快,门口保安大哥蛮贴心,给了一瓶水。Keep 分两个面试官先后面试,具体第一个面试官职称忘记了,简称软件面试官吧,应为后续的面试官是硬件方向的,希望小哥哥看到我这么描述别干我,😂

面试内容:

软件面试官

  • 自我介绍、工作履历简述。
  • SVN 和 Git 区别?描述下 Git 提交过程以及什么是工作区和暂存区?
  • Git 中 merge 作用?和 rebase 有什么区别?
  • Java 中强引用、软引用、弱引用、虚引用区别。
  • Https 和 Http 区别,内部使用哪儿些算法。
  • 对称加密和非对称加密区别。
  • Jetpack 实际项目中用过哪儿些?
  • 简述 Apk 包大小优化思路。
  • Kotlin 拓展函数怎么实现的?基于什么原理。
  • Kotlin 属性委托怎么实现的?基于什么原理。
  • 简述 SharePreferences 以及过程中遇到的问题。
  • 为什么选择 MMKV,MMKV 有什么优势,内部原理是什么?
  • 简述 Handler 以及原理。泄漏怎么解决?

硬件面试官

  • Flutter 实际开发经验有多久?使用/了解过 Flutter 混编吗?
  • 怎么优化的 Flutter 包大小?
  • Flutter 中 Element、Widget 简述。
  • Android Compose 了解过吗?简述一下。
  • so 库动态加载有了解过吗?
  • 简述 MMKV 原理。
  • SharePreferences 有什么缺陷?支持跨进程吗?
  • 在不使用任何三方库,如何实现弹幕功能?如何保证低端机上流畅性。
  • 自定义弹幕中,你 Model 怎么设计?View 又怎么设计?
  • RecyclerView 和 ListView 有什么区别?
  • RecyclerView 缓存原理。
  • 在不使用任何三方库以及系统提供控件,如何实现 RecyclerView 下拉刷新?
  • 直播是什么实现的?需要注意的有什么?使用过的视频格式有什么?如何保证视频以及文字/语音同步性?
  • 开发过音频相关吗?用的是什么?音频格式是什么?
  • 微信小程序使用什么开发的?Vue 还是?

面试感受:

  • 公司环境很 nice,整栋楼都是,我还在下面找了半天。
  • 面试官很不错,一面面试官我都能感受到尴尬了,问啥啥不会,扎心的一批,没好好背,面试官一进来直接后背全湿透了,手动滑稽。二面面试官问的很全面,有技术、有业务、也会现场出场景,回答对应方案,以及其中存在的不足。整理来看很不错,强烈推荐小伙伴去 Keep,全程友好到极致。
  • 所谓的八股文还是要背的,不然仅仅使用还是不够的。白白错失好的机会,蛮可惜的。

快手(架构组)⭐️⭐️⭐️⭐️

牛客网线上面试,煎熬的 22 分钟,都能感觉到面试官的无语,也算是一场经历吧。

面试内容

  • 自我介绍以及学历简述。
  • HashMap 内部存储是怎样的?
  • hash 冲突是个什么概念?冲突之后怎么解决?
  • 哈希桶是什么结构?
  • 链表结构节点是怎样的?
  • Java 中的 volatile 是线程安全的吗?如果对他做自增操作,例如 a++。
  • Handle 中的 postDelay 实现原理是怎样的,它是怎么实现的延迟处理?
  • 优化线上 Apk 大小都了什么操作?做完 Apk 大小之后从多少降低到多少?
  • 下载转换率怎么统计的?
  • 假设现在给你个需求,需要在打包的过程中去处理图片,你有什么思路?在哪儿个 task 去做 hook?
  • 资源编译的流程是什么样的?
  • 360 加固原因是什么?
  • 你觉得加固或者安全方面,应该从哪儿个方面入手?Dex 层怎么处理能防止反编译?
  • so 加固你知道有什么方案吗?
  • 你比较擅长什么?设计或者某个技术有比较深的了解?
  • 责任链模式简述,一般用于什么场景下。
  • 你怎么理解的依赖倒置设计,具体在什么场景下使用?

面试感受:

  • 只能说个人平时对底层关注较少,很多东西了解的不够透彻。感谢老哥最后仍不放弃,尝试问我有什么优势或者哪儿些我擅长的地方没有问到,感谢~

58 ⭐️⭐️⭐️⭐️⭐️

  • 58 得坐公交,下地铁还有六站地,搞得有点晕车。环境没得说,高大上。对于我这小司简直是刘姥姥进入了大观园。58 面试官很不错,很贴心,一场面试,一场交流,非常感谢。祝面试官早日晋升,超神吧~

强烈推荐大家来试试~

面试内容

  • 自我介绍、学历说明。团队规模多大,团队角色。项目为什么做的这么杂?
  • Flutter 实际经验有多久?有混编经验吗?
  • 和 RN 对比后怎么会选择的 Flutter?Flutter 相比 RN 有什么优势?Flutter 不支持热更你怎么看?
  • 如果现有项目想接入 Flutter,需要做一些什么样的前提准备?或者是否考虑混合方式?
  • 在 Flutter 中遇到过一些什么问题?
  • Flutter 地狱嵌套有什么好的解决方案?
  • Flutter 有涉及到状态管理方面吗?具体说下。
  • Flutter App 针对应用崩溃是如何监控的?
  • 假如说我们现在有款产品需要快速迭代,在不考虑人力成本的前提下,你是如何决策使用某种技术以及原因。
  • 你了解的大厂混编方式有哪儿些?
  • Java 迁移 Kotlin 是什么时候进行?是你主导迁移吗?基础组件也迁移了吗?你是如何说服领导进行技术升级?
  • 迁移过程中遇到过哪儿些问题,团队怎么磨合?升级过程中是否涉及到版本升级这块内容,怎么处理?
  • Kotlin 协程有用过吗?简单描述。
  • 协程挂起组装和 RxJava 有什么区别吗?
  • 协程的挂起和我们平时使用的线程挂起有什么区别吗?
  • App 中有开启多进程操作吗?有多进程开发经验吗?
  • 插件化、组件化了解过吗?
  • 模块化是怎么划分的?划分的模块复用率是怎样的?
  • 页面间的通信是怎么做的?
  • 性能上优化是怎么操作的?
  • 内存优化以及统计怎么处理的?
  • 内存泄漏怎么处理的,什么情况下导致泄漏?
  • 图片优化怎么做的?
  • Glide 原理底层是什么样的,说说简单理解。
  • 关于图片缓存有没有做过一些处理?
  • 你了解一张图片在内存中和硬盘中所占空间大小吗?
  • 是否在布局这块有过优化?具体怎么操作的?使用过约束布局吗?简单描述。
  • 项目中有做过一些统计、埋点吗?怎么操作吗?有研究过一些静态 hook 方案吗?
  • 关于 Android 中插桩、注入有了解过吗?
  • Apk 瘦身具体是什么操作吗?
  • 关于自定义 View,有没有比较做过比较好的?常用的方式是什么样的?
  • 个人 Github 大概内容是什么样类型的?

面试感受:

  • 58 真的是有史以来体验最棒的,全程面试官一直在试图给我总结亮点,挖掘优势,甚至多次提到,有什么你擅长的东西我没问到的吗?很平易近人,很好,很贴心。老大也说过,好的面试官是回去挖掘你的优势。聊了很多吧,发散面很广泛,大厂老哥说话很精简,基本是我啰啰嗦嗦废话一通,老哥几个关键词概括,而且有理有据。给我提了很多建议,很不错,很贴心的一个老哥。从 58 出来很开心,默默看了 58 好久,突然爱了。😂 再次感谢面我的老哥~也希望互联网多一些和老哥一样的人。
  • 真的是,知道而为实践,终究还是纸上得来终觉浅。感谢老哥,学习到很多。强烈推荐去 58 看看,哪儿怕和我一样被挂了,也能学到不少东西。

掌心

相对面试前期很简陋,一条短信,电话邀约不到一分钟,整个人很懵逼…

高德地图导航导到另外一个地方,索性离得不远,找半天,都想回家了…

D 座爬上三楼,走过天台,进入 B 座,再爬到六楼…

体验差到了极限…上来看项目,没带手机…

两轮面试… 没问点啥…

面试内容

  • 公司做什么业务?
  • Kotlin 熟练度怎么样?聊一下协程。
  • MVC、MVP、MVVM 区别是什么?
  • 项目中主要负责什么模块?
  • 聊一下性能优化。
  • 大致聊下 LeakCanary 怎么使用。
  • Handler 通常是什么情况下会导致泄漏。
  • 视频直播、即时通讯用的是什么?
  • 有做过微信语音类似功能吗?
  • Retrofit 简单聊一下。

面试感受:

  • 没法说,有点儿,ummm,懂得都懂。

微软

微软是直接下来一轮笔试,一帮人坐在会议室,刷刷写。

当时旁边有个小姐姐,上来一通写,给我整懵了,感觉好强。然而好景不长,开始涂了,随后各种唉声叹气。整的我无语到了极限…

算法貌似有四道,就记住两道,剩下忘干净了,瞧我这脑子啊…

算法内容

  • 写个方法,接受一个字符串,输出反转后的字符串。
  • 假定现在有 s1 和 s2 两个字符串,求最长公共值。

Android 内容

  • Android 动画有几种?区别是什么?版本发布前推荐使用什么动画?和用户交互推荐使用什么动画?如果两者都要兼顾呢?说明理由。
  • 如何实现代码封装,如何保证团队多人开发代码复用。
  • Android 中 UI 适配的方式有什么?举例说明。
  • 项目中的 Log 模块如何设计?
  • 手写实现 event bus 关键部分。
  • MVP 是什么?有什么优势?手写关键部分。

面试感受:

  • 环境蛮不错,贼老大。可以和鸡老大吹水了,我也是进过微软的男人啦~

映客直播

面试内容

  • 你之前是做什么项目的?是个什么业务呢?
  • 考虑换工作的原因是什么?
  • 你现在考虑的公司类型是什么样子的。
  • 对直播有了解吗?
  • 能简单介绍下对于某个技术研究比较深入或者对某些方案有深入研究的。
  • 瘦身用到了哪儿些技术呢?
  • so 是否可以热加载,如何操作?加载如何打开 so 库呢。
  • svg 为什么体积会比较小?为什么是可伸缩的?是否可以无损缩放?
  • svg 是否可以放一张照片,为什么?
  • 你对网络协议熟悉吗?比如 https 原理是什么。
  • https 连接建立后,数据传输是加密还是非加密?是对称加密还是非对称加密?
  • 对称加密主要用于什么场景。
  • 菲波列数如何求第 n 项值。
  • 递归时间复杂度。

面试感受:

  • 面试老哥教我半天 2 的 10 次方,尴尬了。😂 还教我老半天时间复杂度是什么。感谢老哥,有所收获。

百度 - 小度大商业部

面试内容

  • 自我介绍、学历/工作经验说明。
  • 求一个有序数组中最小绝对值。
  • HashTable 数据结构。
  • 简单说下散列表。
  • 扩容是什么?为什么要扩容?不扩容行不行?
  • 假设现在内存 200MB,需要读取 10 个文件获取用户搜索高频前五个关键词,每个文件 1GB,你怎么操作?

面试感受:

  • 手撕算法,直接趴下。面完小度最大的感受是,并不是说算法、数据结构这些八股文没用,只是目前接触不到,存在即合理,还是要摆正自己心态。百度 hr 贼不错,很贴心,百度办公环境真好,传说中互联网工位百度最好,果然不一样。羡慕了,来个柠檬酸。
  • 回去复盘录音,各种嘈杂,面试官声音较低,有点听不清,只能靠着记忆去回想当时提问内容了,各位见谅~

百家云

面试内容

  • 简单介绍下你做 Android 的一个经历吧。
  • 简单说下 Activity 生命周期。
  • 日常工作中一般在 onCreate()、onStop()、onDestroy() 中会做什么操作?
  • 调用 onPause() 后一定会调用 onStop() 吗?在什么情况下调用 onPause() 不会调用 onStop()?
  • Activity 启动模式。
  • 你常用的 Intent Flag 有哪儿些?
  • 简单说下 Activity 的启动过程。假设 Activity A 通过 startActivity 方式启动 Activity B,那么在 A 中执行 startActicity B 到 B 中 onCreate() 方法期间,系统会执行哪儿些操作?
  • 你如何解决 Fragment 中 getActivity 为空的情况?
  • 自定义 View 中一般会在哪儿些方法中进行操作?
  • 简单介绍自定义 View 中的测量模式。
  • 在自定义 View 如何处理事件?
  • 简单介绍下 Android 事件分发机制。
  • ViewGroup 中嵌套了 View,目前实现效果如下,首先 View 进行消费事件,滚动到一定距离后让 ViewGroup 继续消费这个事件,如何处理?
  • 当子 View 不再消费此事件后,如何通知 ViewGroup 继续消费事件?
  • 组件化有使用过吗?
  • Android 中实现多线程的方法有哪儿些?
  • Handler 如何实现多线程?
  • 用过线程池吗?
  • AsyncTask 实现多线程的原理。
  • 多线程中如何实现线程同步?
  • 简单描述下你了解的 Handler。
  • sendMessage 到 handleMessage 期间发生了什么?
  • Http 和 Https 区别。
  • Https 加密流程。
  • 你对 Java 中垃圾回收机制算法了解有多少?
  • 简单说下 Android 中进程间通信方式。
  • AIDl 实现步骤。
  • 内存泄露发生的场景有哪儿些?
  • 你是如何检测内存泄漏的呢?
  • Android 中发生 ANR 的情况有哪儿些?
  • 如何调试 Android 中的 ANR?
  • OOM 会在什么情况下触发,如何避免?
  • 你对 App 作用哪儿些性能优化?
  • 你是如何对 Apk 进行瘦身?
  • 在布局 UI 方面做过哪儿些优化呢?
  • 针对布局优化,你会使用哪儿些工具进行检测?
  • 假设我现在有个列表,用于展示推送消息,你是如何保证列表不卡顿?

面试感受:

  • 电话沟通,不晓得啥情况,一卡一卡的,整的心态都崩溃了。问的很基础,很全面的,大部分内容都有涉及到。面试官很随和,中间因为断断续续整的心态波动了下,后期面试官给了一些中肯建议,蛮好的。公司新业务 ar 方向。

百家云二面

面试内容

  • 从哪儿过来的,住哪儿?自我介绍。
  • 博客写了多久了?为什么写博客?
  • 最近一家公司主要做什么 App,App 访问量多少?团队多大?
  • 应用商店上架流程大概是什么样子?
  • 谷歌是怎么检测你 App 有热更代码,有了解过吗?
  • 你的 App 做过性能测试么?或者性能优化,讲讲?
  • 直播用的哪儿家的。
  • 第一学历是什么?高中哪儿年毕业的。
  • 打工都干过什么?去过哪儿些地方。
  • 什么原因想让你去学的安卓开发?
  • 这个学历平时是如何学习的呢?这个模式是怎样的?
  • 个人职业规划是怎样的呢?
  • 平时下班后会干嘛呢?
  • 我看你现在蛮喜欢学习,为什么高中之后不继续读书呢?
  • 你现在的薪资待遇多少,期望多少?
  • 你现在公司规模多大?
  • 历任公司工资多少?
  • 为什么从第二家公司离职的呢?现在这家为什么想离职?
  • 你了解过我们公司么?你感觉如何?
  • 如果我们给你发 offer,薪资待遇能不能考虑(降低)下?

面试感受:

  • 面试官侧重学历方面,问的比较多,着实有点尴尬。面试官蛮不错的,聊了很多,其中个人部分回答有点失误,公司环境也不错,再走走就是大百度园区了,关键离家还近,三站地铁,走路 20 分钟。

最后

小编的初衷不是来分享面试题答案,只是想跟大家来分享自己的一段面试经历,为一些即将面试跳槽的朋友作参考。

其实自己也没有想到在2021这一年里我可以经历这么多家公司面试,虽然有过失败也有过成功,但是通过这一年的面试我知道的市场的一个基本行情,也让我有了往后的规划,怎么去弥补自己的技术薄弱区。

最后在这里将自己面试前所复习的一些学习文档分享给大家进行参考,可能现在还不是很全面,但我还在不断的持续更新,我能给大家带来帮助~

如果你有需要的话,可以私信回复我【666】或直接点击下方小卡片进行访问查阅


以上是关于来自粉丝朋友的21年年终面经总结(Android 篇)的主要内容,如果未能解决你的问题,请参考以下文章

yechaoa5年Android开发的2021年终总结,实现Flag的一年

yechaoa5年Android开发的2021年终总结,实现Flag的一年

21年Android面经分享,内容太过真实

年终总结-2019年,我的副业元年?

2019年终总结:10场演讲内推20人公众号2万粉丝Code Runner 1000万下载

2021年Android开发岗面经汇总(腾讯网易哔哩哔哩等)