查看原文
其他

最新出炉|2021 Android 面试被锤之旅

贺利权 AndroidPub 2022-07-13
本文来自公众号贺利权,这是一份超两万字的面经,作者根据亲身经历悉心整理,其中有大厂也有创业公司,极具参考价值,建议收藏!



3,2,1,走你~


终于做了这个决定

别人怎么说我不理

只要你也一样的肯定

我愿意天涯海角都随你去

我知道一切不容易

我的心一直温习说服自己

最怕你忽然说要放弃

跳槽真的需要勇气

来面对流言蜚语

只要你一个 Offer 肯定

我的跳槽就有意义

我们都需要勇气

去相信会在一起

人潮拥挤我能感觉你

放在我手心里你的 Offer


随着五音不全的歌喉,2021 年面(被)试(锤)正式开始...


个人简介


  • 5 年工作经验,后将近三年技术栈野蛮生长(Flutter、微信小程序、PHP、H5、后台 Api、PS 等...)

  • 96 非本非专,高中学历。已报名成人函授,24 年 1 月下证;

  • 无大厂光鲜履历以及较好项目,小公司,项目类型杂乱;


求职渠道


  • BOSS/拉勾:记得提前查询公司信息,提前避坑;

  • 内推:个人推荐有底气的直接走这个较好。建议优先线上,节省双方时间,后续可以约线下。


碎碎念


对于跳槽,个人其实相对比较抵触,相比来来回回跳,内心更趋向于随着公司的成长而成长...


可事实岂能如人愿?


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


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


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


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


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


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


不管如何,一起加油~


本来想着记录面试过程以及尽自己努力去搜寻对应较好的面试答案,当个笔记和参考留存,奈何个人能力有限,也不想简简单单的就是背背题、抄个答案或者误导他人。知其然而不知其所以然,还是想后续抽空好好亲自测试走一下,真正的去掌握,所以本文不会单独的为每个面试官问我的问题特别注明对应的答案,我还是希望各位看官,尤其和我一样的小白,可以认真的思索下,假如面试官这样问你,你的答案会是什么?还有没有更好的回答?


虽然个人能力有限,但是还是希望做出一些正确引导,至少自己认为正确就好。


或者说,初心不变吧...


在此别过,江湖再见,祝君更好~! 


面试题以及答案推荐


下面是自己收集以及好友提供部分,仅供参考:


  • 链接: pan.baidu.com/s/1IKGwEfpx…  密码: pff5


强烈推荐如下文章,作者很贴心了:


  • 2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(计算机基础篇)

  • 2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Java篇)

  • 2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android基础篇)

  • 2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android高级篇上)

  • 2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android高级篇下)


剩下的各位老铁自己寻找吧,有不错的记得分享哈~(其实这块都能单独拆分一篇文章,仔仔细细将自己的笔记相关分享下,但是的确最近有点疲惫了,先不整理了,后期自己慢慢进行学习分享吧)


漫漫坎坷面试路...


以下面试题并不完善,有一些由于紧张忘记了,😂 大家见谅...

一起加油,努力找到自己喜欢的公司~!!!


关于 Title 公司五星说明:


  • 58 最棒!感谢 58 面试官,全程平易近人,全程都是在找我个人的优势,帮我总结,另外后续很贴心的指出简历上存在的不足,包括对个人的一些建议,全程由好到爆,而且面试老哥实打实的从我个人的角度出发,去替我认认真真分析。感觉不像是面试,更多的是学习。强烈推荐 Android 小伙伴参与投递,还是要有一些学历哈,技术贼牛掰的大佬除外。

  • 亚洲创新集团、Keep、中科物栖、微爱面试老哥也是蛮不错的,贼老贴心,最后还不忘记鼓励以及提出建议,强烈推荐~ 


2021-3-1 雅识(做老年人产品)


电话沟通大概 30 分钟左右,整体来看面试官相对较为随和。


面试内容:


  • 你是如何跨地区协调处理开发相关事宜,痛点是什么,如何解决,请详细列举说明。

  • 关于任务安排,我们想具体了解任务细化的范围,请详细列举说明。

  • 关于前后端配合,这块有什么痛点,你又是如何解决的?

  • 针对你个人经验,来谈谈 Flutter 和移动端的优劣势,排除性能相关。

  • 工作中会编写测试用例吗?用过哪儿些?自动化测试工具呢?

  • 举例说明你在工作中最有成就感、最有难度的一个事儿。

  • 我看你最近在应用上架,简单聊聊目前应用上架需要注意的细节以及槽点。

  • 平时工作中会去关注卡顿率么?你是如何处理卡顿?

  • Code Review 你们是怎么做的?为什么这么做,请说明原因。

  • 简单聊下你为什么会选择离职以及为什么选择我们公司的原因。


面试感受:


  • 对于回答面试官的答复,条理性还是有些欠缺,下次脑子里先过一遍,有个轮廓在慢条斯理答复。面试官感觉蛮友好的。😂


2021-3-2 乐友集团(电商)


线下面试大概 40 分钟左右,面试官蛮不错的,抓着 Google Play 一通锤。

公司地址比较偏,在四惠那边,公司内部环境还不错,前台远远的看了一眼,进门领张表格、扫码,一通填。


面试内容:


  • 先来个自我介绍,简单说明工作职责内容。

  • 你是本科在读吗?请对学历这块简单说明下。

  • 看简历,你做过 Android、Flutter 以及微信小程序,能说下为什么做这么多而且这么杂么?团队都是这样的吗?

  • 你们公司是外包么?是否有内部自营项目?团队规模怎么样?公司内是属于技术推动产品还是产品推动技术?

  • Flutter 的开发经验有多久?Flutter 是自学?具体某个项目开发周期多久?Flutter 是独立项目还是混合项目?

  • 项目中有使用 Jetpack 吗?你觉得 Jetpack 有什么优势?请列举说明你使用的具体 Jetpack 内容以及你所感兴趣的点。

  • 项目是全部使用 Kotlin 吗?你怎么评价 Kotlin 和 Java,或者说你认为的 Kotlin 优势是什么?

  • Android 项目是使用的 androidx 吗?是初期使用 androidx 还是后续升级 androidx?有没有遇到哪儿些问题?

  • 说说你是怎么具体操作减少 Apk 大小的?

  • Android 项目中用到了哪儿些框架(MVC/MVP/MVVM),你是怎么选择这些框架的?简单说下对框架个人理解。

  • 你们项目是如何区分国际版、国内版?项目是单独区分还是怎么维护的?

  • Tinker 热修复如何修复指定渠道 Apk?简单说下热修复可以修复哪儿些东西?

  • 看你使用过 CoordinatorLayout,简单说说吧。

  • 你为什么推荐使用 ConstraintLayout?LinearLayout 不好用么?迁移成本你觉得怎么样?从代码层面而言不会乱吗?

  • 有过 IM 开发经验吗?直播/点播是用的阿里云?

  • 看你文章什么类型都有,是个人好奇心比较重?私下下班回去写这些吗?简单谈谈想法。


面试感受:


  • 可能现在的公司隶属于外包性质吧,多多少少能感受到点面试官的无奈。整体回答较为一般,有些东西知道但是没表达出来,有些东西属于太过于久远了,也回答的不太好,整体有待加强。


2021-3-3 雅识二面


线下面试了大概一个多小时,公司在望京南那边,内部属于共享办公性质。面试官貌似是个 iOS。


自我介绍的时候直接表明了,我就是来被锤的。😂


面试内容:


  • 请做一下自我介绍、学历说明以及工作经验。

  • 公司团队多大,主要负责哪儿些内容?公司是否有自营项目?外包吗?

  • 为什么 Google Play 搜索不到,原因是什么?怎么处理的?现在是一个什么样的状态?

  • 关于弹框隐私协议,工信部怎么规定的?

  • Luban 压缩具体在业务中做哪儿些操作?你知道它内部使用了哪儿些算法吗?

  • 图片使用 Glide,你为什么使用它,它有什么优点,内部算法有什么?

  • 请手写 Glide 加载图片地址到 ImageView,并且图片展示效果为一个圆。

  • ShapeableImageView 你知道原理是什么吗?最低兼容版本你知道吗?

  • 假设后端接口列表中返回了超大图片,你是如何处理优化并正常显示列表中的?

  • 使用过 Jetpack 的哪儿些东西,你对它评价怎么说?

  • Jetpack Compose 了解过么?简单谈下个人理解。

  • Kotlin 与 Java 区别在哪儿里?

  • Android 原生 Apk 以及 Flutter Apk 大小优化怎么做的?

  • 怎么统计性能调优数据?

  • 项目中接触过 WebView 相关吗?这块怎么处理的?

  • SpannedString 原理是什么?都用过它做什么操作?

  • TextView 中 setText(Html.fromHtml()) 内部原理知道吗?

  • 简单描述 CoordinatorLayout 以及内部事件如何分发?

  • 图片轮播怎么做的?如何做到我在最后一张无缝滑动到第一张图片?

  • 你知道 Retrofit 是怎么发出的请求吗?

  • 你的 Android 借壳分享微信中 mmessage_content 怎么算出来的?

  • 项目中 Flutter 中是原生开发还是混合开发?使用了哪儿些框架?

  • 假设地图现在没有开源库,你怎么在 Flutter 实现地图效果?如果我想当前页面上面是地图下面是其他内容呢?


面试感受:


  • 一开始还行,到后续工信部怎么规定的给我整的稍微有点蒙圈,以及后续问 ShapeableImageView 原理,多次询问,从认知中的自定义 View 到内部 onDraw() 都描述了,还是再问是什么原理,整的有点懵,后续也多少有点不耐烦了。自己也对原理和细节没有好好掌握,主观能动性还是比较差。也算是受教了。


2021-3-5 凌宇智控(VR)


电话面试大概 30 分钟左右。


面试内容:


  • 自我介绍,公司项目描述。

  • 项目中有使用过哪儿些技术,遇到过哪儿些难点。

  • 对 NDK 开发有了解吗?Kotlin 可以开发 NDK 吗?对 CPU 架构类型了解多少?

  • 性能调优具体是什么操作的?

  • 屏幕卡顿的原因是什么呢?你怎么处理的。

  • 音视频相关开发经验有吗?了解直播背后技术原理吗?比如摄像头怎么采集,如何上传等。

  • 如果让你写 PerfDog 中有关展示 CPU、GPU 等数据,你怎么操作?

  • LeakCanary 底层原理怎么实现的?

  • 跨平台之间你是如何抉择的?为什么选择 Flutter,写过 RN 么?

  • Flutter 实际开发经验多久?其中用到过哪儿些技术?简单描述下。

  • 有跨端研发经验吗,例如 iOS、Android 等。

  • 你是如何实现 Flutter 与原生通信的?

  • 使用过 Flutter 混合原生开发吗?

  • 使用 Flutter 遇到过哪儿些坑,怎么处理的?


面试感受:


  • 感觉更偏向于底层,原理,据说是前期 Flutter 后期给 Unity 写接口调原生。个人对于底层理解片面,深入性不够,一些东西只停留表面。面试官蛮不错的。


2021-3-5 青子未来(电商/游戏)


线上面试,给了几道题,时间 90 分钟。


面试内容:



在线编辑地址:


  • collabedit


面试感受:


  • 相对个人是第一次参与此类型的面试,说实话有点懵,拿到题目后,看了一圈,似乎也只有第四题个人还有点想法。纠结了一会儿给出一个伪代码思路,面试官要求 Java,当时题都贼蒙圈,Kotlin 直接写个思路提交了,也不是最优解。相对个人而言,还行吧,至少没看到题就放弃,也算是小小进步了。

  • 个人关于第四题思路,由于从左到右特征为:小 --> 大 --> 小,所以第一步直接获取数组最大值,随后将这个数组一分为二,直接获取最大值在第一个数组中的 indexOf 索引,之后遍历拆分数组 1,开始位置从 indexOf 开始。而第二个索引直接获取 lastIndexOf index,然后直接遍历第二个数组,结束位置就是 lastIndexOf index。当然这里会有基本判断,如果获取到的 indexOf/lastIndexOf 为 1,直接输出拼接字符串即可。(暴力破解法,面试官可能不太满意,没关系,有所收获、有所成长就好)


2021-3-6 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,全程友好到极致。

  • 所谓的八股文还是要背的,不然仅仅使用还是不够的。白白错失好的机会,蛮可惜的。


2021-3-9 快手(架构组)⭐️⭐️⭐️⭐️


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


面试内容:


  • 自我介绍以及学历简述。

  • HashMap 内部存储是怎样的?

  • hash 冲突是个什么概念?冲突之后怎么解决?

  • 哈希桶是什么结构?

  • 链表结构节点是怎样的?

  • Java 中的 volatile 是线程安全的吗?如果对他做自增操作,例如 a++。

  • Handle 中的 postDelay 实现原理是怎样的,它是怎么实现的延迟处理?

  • 优化线上 Apk 大小都了什么操作?做完 Apk 大小之后从多少降低到多少?

  • 下载转换率怎么统计的?

  • 假设现在给你个需求,需要在打包的过程中去处理图片,你有什么思路?在哪儿个 task 去做 hook?

  • 资源编译的流程是什么样的?

  • 360 加固原因是什么?

  • 你觉得加固或者安全方面,应该从哪儿个方面入手?Dex 层怎么处理能防止反编译?

  • so 加固你知道有什么方案吗?

  • 你比较擅长什么?设计或者某个技术有比较深的了解?

  • 责任链模式简述,一般用于什么场景下。

  • 你怎么理解的依赖倒置设计,具体在什么场景下使用?


面试感受:


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


2021-3-10 欢集 Fun


比较好玩的是,走错楼层了,对方公司直接给我薅进去,面试官一脸懵逼的过来,问我,我们打算招 iOS,没打算招 Android 啊,聊聊?我连忙说我走错了,拿上简历就跑。尴尬了。


公司位于团结湖附近三里屯 SOHO,整体的办公环境还不错,公司氛围个人蛮喜欢的。有个大哥很热情,hr 小姐姐很皮,面试官是个小姐姐 + 男同胞。小姐姐贼漂亮,贼好看。很放松,很开心。


进门需要做题,大概的意思是,启动页广告图获取,用什么方式实现,需要考虑后台下载、广告版本、超时等。给我整的有点蒙,键盘不在手,😂 我又找借口了...


感觉应该是想要偏向于直播类实战经验,聊的时间不到 20 分钟吧。


面试内容:


  • 针对面试题的一些解读。

  • 如果图片资源较大的话,如何保证正常加载出来?

  • Luban 压缩主要做的什么操作?

  • 阿里云直播过程中遇到过什么问题吗?

  • 直播、点播针对断网情况,有什么应急处理?

  • 在这个项目中解决了什么比较深刻的问题,或者说具体进行了什么处理?

  • Apk 瘦身具体是什么操作的?优化结果是什么样的?

  • 加固为什么会导致包大小变大?

  • 你有尝试过破壳操作吗?

  • 简单聊聊 Tinker 热修复?

  • 团队规模是多大?

  • 补丁包生成是怎样?如何下发?

  • App 用户量多少?


面试感受:


  • 只是项目前期简单接触阿里云直播,对实际场景兼容等没有实际开发经验,这也没辙。整体来说回答的一般吧,小姐姐贼好看,不是那么很紧张。偏于实际项目开发。


2021-3-10 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 看看,哪儿怕和我一样被挂了,也能学到不少东西。


2021-3-17 掌心


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


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


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


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


两轮面试... 没问点啥...


面试内容:


  • 公司做什么业务?

  • Kotlin 熟练度怎么样?聊一下协程。

  • MVC、MVP、MVVM 区别是什么?

  • 项目中主要负责什么模块?

  • 聊一下性能优化。

  • 大致聊下 LeakCanary 怎么使用。

  • Handler 通常是什么情况下会导致泄漏。

  • 视频直播、即时通讯用的是什么?

  • 有做过微信语音类似功能吗?

  • Retrofit 简单聊一下。

  • ...


面试感受:


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


2021-3-17 微软


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


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


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


算法内容:


  • 写个方法,接受一个字符串,输出反转后的字符串。

  • 假定现在有 s1 和 s2 两个字符串,求最长公共值。

  • ...


Android 内容:


  • Android 动画有几种?区别是什么?版本发布前推荐使用什么动画?和用户交互推荐使用什么动画?如果两者都要兼顾呢?说明理由。

  • 如何实现代码封装,如何保证团队多人开发代码复用。

  • Android 中 UI 适配的方式有什么?举例说明。

  • 项目中的 Log 模块如何设计?

  • 手写实现 event bus 关键部分。

  • MVP 是什么?有什么优势?手写关键部分。


面试感受:


  • 环境蛮不错,贼老大, 我也是进过微软的男人啦~


2021-3-18 汽车之家


前期发生了一些不愉快,门口保安大叔去热饭了,折腾半天才进去。给 hr 打电话,hr 让找前台登记,找半天没找到,问了一个同事,人直接说哪儿有前台。无奈之下又打电话,又让找水吧,最后得亏大爷热饭回来了,给我带过去了。贼郁闷。还是建议邮件直接写明较好吧。


面试内容:


  • 自我介绍。

  • 从你项目中列举一个你觉得比较有成就感的项目来说说。

  • 从架构上、组件化、插件化或者解决问题的角度上来介绍下你做了哪儿些工作,有什么深刻印象积累?

  • 简单说下常用的 support 包有哪儿些和 androidx 相关的。

  • 既然有 support 包的存在,为什么还要出现 androidx 呢?

  • 对 App 大小优化是怎么操作的?

  • 屏幕适配怎么做的?

  • 比如说,现在有个需求,大分辨率手机一行显示 30 个,小屏幕手机一行显示 20 个,如果是你的话,你会怎么实现?

  • 常见的内存溢出场景有哪儿些?

  • 项目中列表使用 ListView 多还是 RecyclerView 比较多,简单说说。

  • RecyclerView 如何更新一条数据?

  • MVVM 和 MVP 有什么区别?你更喜欢用哪儿种模式,为什么?

  • Retrofit 如何全局监听相应体,比如我现在需要把请求信息全部打印出来。拦截其中具体是如何实现的?

  • Android 中的多线程是如何处理?如果多任务情况下如何处理?

  • Android 中线程池你了解多少?

  • 你项目中全部迁移 Kotlin 了吗?为什么迁移?

  • 你感觉 Flutter 适合用于什么项目类型/场景?

  • Flutter 列表高速滑动和原生列表有什么性能差异性?

  • 你用 Flutter 做列表有没有做过一些列表方面的性能优化?

  • 灰产 App 中主要用了哪儿些技术,解决了什么问题?

  • 你是出于什么想去破解逆向其它 App 的?有尝试过破壳吗?

  • 离职原因以及学历说明。


面试感受:


  • 相比其他家的 hr,汽车之家的多少让人感觉比较无语。可能也是,毕竟我还是小渣渣。面试官很友好,问的很全面。就是面试环境不咋地,后期应该到吃饭时间,好多人,很吵,得趴着凑过去说话,回家听录音进行复盘,后期全是一个小姐姐狂野的笑声。😂


2021-3-18 奥德达斯


相当无语的一家公司,hr 当初打电话的时候问我英语水平怎么样,我说很一般。问平时有阅读英文文档习惯吗,我说看国外的文章会借助翻译软件,平时也在学。结果去了,好家伙,又让我翻译英文选择题,又让我翻译英文文档,直接无语到极限。盈创动力真的好大,里面环境真的差。


面试以笔试为主,阶乘没整过,后续没聊几句走人了,这里简单附上相关题目。


面试内容:


  • 简述 Kotlin 和 Java。

  • 编写一个求阶乘的方法 Fact,方法的返回值为阶乘的结果。

  • Http get 和 post 有什么区别?

  • onCreate() 和 onStart() 区别。

  • 看以下代码会输出什么结果?


data class Foo(var data:Int)var foo1 = Foo(2)var foo2 = Foo1foo2.data = 4print(foo1.data)

  • 你用 var 声明 book1,用 val 声明 book2,他们有什么区别?最后一行能不能编译?

data class Book(var name: String = "", var price: Int = 0)
var book1 = Book("The Last Sun", 250)book1.name = "Incredible hulk"
val book2 = Book("The Last Sun", 250)book2.name = "Incredible hulk"


  • 看以下代码会输出什么结果?

val aVar by lazy { println("I am computing this value") "Hola"}fun main(args: Array<String>){ println(aVar) println(aVar)}

面试感受:


  • 没法说,下次应该直接和 hr 说清楚,英文很烂,别浪费大家时间了。


2021-3-18 考呀呀(教育)


考呀呀 hr 蛮不错的,打电话时,我说下午约好面试了,简单询问了下面试地点,和我说没事,很近,面完随时顺路过来。面完屁颠儿屁颠儿赶过去了。面试先写笔试题,然后和搞算法的老哥聊一波,最后远程视频和总监聊一波。算法老哥人不错。面试内容直接合并了。聊了几乎快一个半小时,ummm


面试内容:


  • Activity 生命周期。

  • Https 和 Http 区别。

  • 下载一张图片如何避免 OOM?

  • 淘口令如何实现?如何实现版本兼容?如何避免微信封锁。

  • 假设下载有个需求需要统计用户观看视频总时长,你如何处理?什么时候下进行数据上报?

  • ...


面试感受:


  • 氛围不赖,楼下奶茶店飘香,全程甜甜的,和面试官调侃,办公氛围蛮不错。整体来说偏向于实际场景给方案的吧,有些地方不是很明白,据说单休。


2021-3-19 亚洲创新集团(社交)⭐️⭐️⭐️⭐️⭐️


周五下午迷迷糊糊就接到电话了,想着去溜达溜达一圈,结果失策了。公司环境很不错,从前台小姐姐到 hr,再到面试官,最后直接给我整的老后悔了,被朋友一通 diss,哪儿来的胆子,不做任何准备,直接下雨杀过去...


面试内容:


  • 工作多久了,你觉得你和其它 Android 工程师相比,有什么优势。

  • 你的 GitHub 主要内容是什么?

  • 假如当你带小朋友,你是如何和他进行分享以及帮助等?

  • 你持续写东西,输出的动力是什么?

  • Kotlin 用多久了,你认为你的 Kotlin 掌握水准在哪儿?初级、中级、高级?

  • var、val、let、apply 有什么区别?

  • let 返回 it,apply 返回 this,它们有什么区别?为什么这么设计。

  • lateinit 作用是什么?

  • Kotlin 协程有用过吗?用在什么场景?

  • 协程是个什么东西?

  • 有了解过协程如何切换线程原理吗?

  • Retrofit 和 OkHttp 是什么关系?

  • Retrofit 是如何通过注解来方便我们 api 调用?基于什么原理。

  • JetPack 用过哪儿些?

  • ViewModel 用来做什么的?

  • ViewModel 如何实现生命周期绑定?

  • ViewModel 为什么存在?那我直接创建个类不可以吗?如何实现数据绑定。

  • ViewModel 如何实例,如何使用的?

  • LiveData 如何实现的?

  • LiveData postValue 和 setValue 赋值,这两个会不会丢失数据,有没有遇到过?

  • MVC、MVP、MVVM 区别是什么?

  • Rxjava 用的多么?map 和 flatMap 有什么区别。

  • RxJava 使用哪儿个操作符能保证顺序执行?

  • 如果让你自己设计一个 Glide 你会如何设计?

  • RGB_565 每个像素点占多少内存?

  • 为什么会使用 RGB_565?

  • 为什么要对图片进行一些压缩?那服务器直接给我们直接裁剪指定尺寸大小不就好了。

  • 假设现在有一张 1MB 图片,我直接设置给 ImageView,那么它在内存中占用空间有多大?

  • 性能优化都做过哪儿些内容?

  • 瘦身的话,我们都是怎么做的呢?

  • armeabi 和 armeabi-v7a 有什么区别?

  • so 库可不可以动态加载,如何实现?

  • Android 版本从 5.0 到 12 都更新了什么东西?

  • Android 5.0 ART 是个什么东西,具有什么优势。

  • 今天的面试,自我感觉怎么样?


面试感受:


  • 和面试官聊着,聊着,突然很想去,如果我 Leader 是这样的该多好。可惜啊,这里奉劝大家一定要做好面试准备,不能浪费每一次面试机会。

  • 超级喜欢这样的 Leader!!!


2021-3-22 映客直播


面试内容:


  • 你之前是做什么项目的?是个什么业务呢?

  • 考虑换工作的原因是什么?

  • 你现在考虑的公司类型是什么样子的。

  • 对直播有了解吗?

  • 能简单介绍下对于某个技术研究比较深入或者对某些方案有深入研究的。

  • 瘦身用到了哪儿些技术呢?

  • so 是否可以热加载,如何操作?加载如何打开 so 库呢。

  • svg 为什么体积会比较小?为什么是可伸缩的?是否可以无损缩放?

  • svg 是否可以放一张照片,为什么?

  • 你对网络协议熟悉吗?比如 https 原理是什么。

  • https 连接建立后,数据传输是加密还是非加密?是对称加密还是非对称加密?

  • 对称加密主要用于什么场景。

  • 菲波列数如何求第 n 项值。

  • 递归时间复杂度。


面试感受:


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


2021-3-22 塔读文学


面试内容:


  • 自我介绍,公司 Android 团队规模、主要业务、个人主要参与什么项目、项目属于什么类型。

  • Java 用的多吗?Kotlin 使用时常。

  • Flutter 是个人私下玩还是公司项目?是否上线。

  • Flutter 和原生开发,你觉得会有哪儿些问题,技术难点在哪儿里。

  • Flutter 是纯 Flutter 还是基于混编?

  • 简单说下 Kotlin 中的协程以及它的优势。

  • 在 Google Jetpack 有用到过一些什么你觉得比较好的控件或者组件。

  • ContentProvider 底层是基于什么实现的。

  • starup 和我直接使用延迟加载有什么区别么?

  • Lifecycle 具体在项目中哪儿些模块有使用?

  • 奔溃率你是如何优化的?具体举例。

  • 期间有没有遇到棘手的问题,如何解决的。

  • 假设现在让你实现图片上覆盖一个旋转角度 45 度 label,如何实现,列举你知道的方案。

  • 自定义 View 中如何实现 View 旋转?

  • 简单说下你日常开发中如何使用约束布局,常用到的方式有哪儿些?

  • 针对框架,有没有你最了解、最深入的吗?

  • 针对 Glide 有没有做过一些复杂操作?

  • Glide 如何实现图片加载进度展示?

  • 简单说下个人优势。

  • Java 中的修饰符作用,默认修饰符作用是什么。

  • Java 中的 Map 如何遍历?Kotlin 又如何遍历?

  • 个人针对加班怎么看?


面试感受:


  • 面试官很和善,丝毫没有紧张感。面试官一直来来回回找我优点,怕漏了忘记问,暖暖。整体来说还不错吧,有一些失误,也把自己想说的说出来了,可能还是自身底蕴不够吧。公司办公环境不错,小姐姐也蛮多。


2021-3-29 好未来


面试内容:


  • 简单自我介绍,最近的项目是独立开发还是团队开发。简单说说项目技术点。

  • 直播怎么做的,有没有遇到过卡顿、黑屏等情况。

  • 高仿抖音上下滑动是怎么做的?有没有做一些缓存策略。

  • RecyclerView 有看过一些原理或者设计吗?

  • RecyclerView 缓存是怎么缓存的?

  • RecyclerView 整体设计采用了什么设计模式?

  • LayoutManager 用的什么设计模式?

  • MVVM 是怎么搭建的?

  • ViewModel 是怎么和 View 之间怎么绑定的?如何通讯。

  • ViewModel 自己写的还是用的 Google 的 ViewModel?

  • ViewModel 充当业务逻辑层,如果两个模块逻辑一样,只是 UI 不一样,如何保证复用?

  • ViewModel 如何绑定不同的页面。

  • ViewModel 是单向绑定还是双向绑定?

  • LiveData 如何实现双向绑定。View 到 Model,Model 到 View 如何实现绑定?

  • 你使用 DataBinding,如果有问题的话,如何调试 XML?

  • DataBinding 有什么优势?

  • DataBinding 和 ViewBinding 有什么区别?

  • Flutter 如何实现调用原生能力,具体实现原理?

  • Flutter 混编原生,混合栈如何解决?

  • 你觉得 MVP 比 MVVM 有什么优势?

  • 项目中有涉及到多线程通讯?如何实现?

  • 说说 Handler 机制。

  • MessageQueue 是一个什么样的数据结构,为什么用这样的数据结构?

  • MessageQueue 为什么要用单向链表,用数组或者集合不行吗?优势是什么?

  • 链表相对数组的优势是什么?

  • 从数据结构的角度层面分析为什么链表插入/删除快,查询慢,而数据查询快,删除/新增慢呢?

  • 如果 MessageQueue 是链表的话,Message 放在 MessageQueue 中轮训起来会不会消耗性能?

  • 链表如何遍历?

  • 如果我开了 18 个子线程,同时发送,并发的情况下如何保证消息及时性?

  • 它是如何分发到子线程中?同时下发还是先后顺序发到子线程?可以并发处理吗?

  • 项目中涉及到插件化、组件化吗?

  • 模块化如何实现模块之间解耦合的呢?

  • module A 和 module B 之间有需要调用 Api 这块怎么解决的?

  • module A 和 module B 之间如何通讯?

  • 有用到路由或者事件总线吗?让你设计一个事件总线怎么设计?

  • EventBus 注册和销毁是成对儿出现的,如果不销毁会出现什么问题?

  • App 性能上有做过哪儿些优化?

  • 你觉得使用 IntentServie 和自己写一个异步加载有什么区别吗?

  • 项目中有涉及到多进程吗?多进程中,进程和进程是如何通讯的?

  • Binder 底层通过什么实现通讯?

  • MMKV 有什么优势?

  • MMKV 内部是如何进行数据存储的?

  • Android 中有哪儿些存储方式?

  • SharedPreference 在使用过程中会出现卡顿情况吗?

  • 做过自定义 View 么,其中有哪儿些需要注意的点?

  • 自定义 View 中有哪儿些方法?

  • APK 瘦身如何做的?

  • Luban 压缩具体实现原理,我们可以自己写吗?

  • Luban 压缩如何保证压缩的同时,图片质量还清晰?

  • 平时怎么去学习的?

  • 你看过哪儿些库的源码?说一个较为擅长的吧?

  • Glide 如何和生命周期绑定的?

  • Glide 如何缓存的?

  • Glide 缓存内存分配大小是多少?

  • 整个 Glide 是用什么设计模式设计的?

  • Glide 网络请求用的是什么?

  • Glide 如何替换网络框架,比如切换 OkHttp?

  • 如果让你封装一个 App 底层网络,且它能随意切换,你会如何实现?


面试感受:


  • 面试官是个小姐姐,特别爱笑,可能是缓解尴尬吧,毕竟我太菜了。问的很细致,很全面。


2021-3-29 百度 - 小度大商业部


面试内容:


  • 自我介绍、学历/工作经验说明。

  • 求一个有序数组中最小绝对值。

  • HashTable 数据结构。

  • 简单说下散列表。

  • 扩容是什么?为什么要扩容?不扩容行不行?

  • 假设现在内存 200MB,需要读取 10 个文件获取用户搜索高频前五个关键词,每个文件 1GB,你怎么操作?


面试感受:


  • 手撕算法,直接趴下。面完小度最大的感受是,并不是说算法、数据结构这些八股文没用,只是目前接触不到,存在即合理,还是要摆正自己心态。百度 hr 贼不错,很贴心,百度办公环境真好,传说中互联网工位百度最好,果然不一样。羡慕了,来个柠檬酸。

  • 回去复盘录音,各种嘈杂,面试官声音较低,有点听不清,只能靠着记忆去回想当时提问内容了,各位见谅~


2021-3-29 百家云


面试内容:


  • 简单介绍下你做 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 方向。


2021-4-9 百家云二面


面试内容:


  • 从哪儿过来的,住哪儿?自我介绍。

  • 博客写了多久了?为什么写博客?

  • 最近一家公司主要做什么 App,App 访问量多少?团队多大?

  • 应用商店上架流程大概是什么样子?

  • 谷歌是怎么检测你 App 有热更代码,有了解过吗?

  • 你的 App 做过性能测试么?或者性能优化,讲讲?

  • 直播用的哪儿家的。

  • 第一学历是什么?高中哪儿年毕业的。

  • 打工都干过什么?去过哪儿些地方。

  • 什么原因想让你去学的安卓开发?

  • 报的哪儿个机构,学了多久,贷款学的吗?

  • 函授最后是给本科证、学位证还是?大概多久能拿到学历?

  • 这个学历平时是如何学习的呢?这个模式是怎样的?

  • 个人职业规划是怎样的呢?

  • 平时下班后会干嘛呢?

  • 我看你现在蛮喜欢学习,为什么高中之后不继续读书呢?

  • 你现在的薪资待遇多少,期望多少?

  • 你现在公司规模多大?

  • 历任公司工资多少?

  • 为什么从第二家公司离职的呢?现在这家为什么想离职?

  • 你了解过我们公司么?你感觉如何?

  • 如果我们给你发 offer,薪资待遇能不能考虑(降低)下?


面试感受:


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


2021-4-15 六零三(工具)


面试内容:


  • 自我介绍以及最近负责项目介绍。

  • App 使用什么架构,当初是如何进行选型?

  • 网络层使用什么?Retrofit 工作原理。

  • OkHttp 工作原理简单说下,如何发起请求、日常如何使用。有看过源码吗?

  • 图片使用的是什么库?有考虑过其他库吗?

  • 对动画了解多么?组合动画使用过么?

  • 常驻通知栏做过吗?

  • 通信用的是 Handler 还是 EventBus?

  • EventBus 可以传递 List 吗?

  • 自定义 View 简单说下。

  • 对组合控件的滑动冲突如何解决?

  • ScrollView 嵌套 ViewPager,会有什么问题?

  • 性能优化怎么做的?

  • 内存优化怎么做的?

  • 内存泄漏如何检测?


面试感受:


  • 首先技术聊完和人事小姐姐聊,公司规模不大。人事蛮漂亮的,声音贼好听。


2021-4-15 凯捷(外派奔驰)


电话沟通,断断续续。


hr 沟通是 Android 开发,面试官得到的是应聘 Android Team Leader。


问的蛮深的,可惜有些没记住,录音文件 gg 了。


2021-4-20 唯医骨科


公司规模蛮大的,环境不错。开会较为激烈,哈哈哈嗝,在外面听的有点慌慌。一面之后就是客户端负责人面试,有点无语,当初约面试就和 hr 沟通过学历问题,再三确认没事后来约面试,随后客户端负责人了解完之后直接开启暴打模式...


一面面试内容:


  • 简单自我介绍。

  • Flutter 做了什么功能,描述大概什么业务方向。

  • 简单说下你在启动、瘦身方面的一个优化经验。

  • 项目用过组件化吗?

  • 你是怎么针对你们项目进行模块化拆分改造?

  • 你现在所负责的项目编译一次时间大概多久,有没有尝试做过一些优化?

  • 你对优化构建速度有什么想法?

  • 简单说下 Glide 原理。

  • 一张图片是如何被 Glide 加载到 ImageView,这个流程你了解过吗?

  • 简单说下 Glide 缓存。

  • 假设现在有张图片分辨率为 1980x720,在电脑内存中占用 2m,那么当他将这个图片加载到内存中,此时图片占用多少内存。

  • 子线程如何刷新 UI?

  • 进程间通讯方式?

  • 在项目中原生和 js 如何交互的?

  • 你了解 js 和原生交互实现原理吗?

  • 假设现在原生需要提供 js 方法,你会怎么操作?

  • 热修复使用过吗?它的原理是什么?

  • 工作中用到过 hook 吗?主要用于哪儿些地方?

  • hook 原理是什么?

  • 一个类是怎么加载的?

  • 在工作中如何收集线上错误异常呢?

  • 如果说我让你实现埋点收集,你会如何设计?

  • Android 中是如何拦截到 Crash?具体怎么操作?

  • 推送用的是什么?

  • 简单说下责任链模式。

  • 公司是外包吗?大概是什么性质,简单聊一下。

  • 如果你自己给自己定级的话,你觉得你在初中高哪儿个级别?


客户端负责人面试内容:


  • 简单自我介绍。

  • 团队规模以及人员配比情况。

  • 产品方面如何进行落地?

  • 离职原因、学历问题说明。

  • 为啥没上大学...

  • 介绍下最近做的项目以及项目类型。

  • 你主要负责开发哪儿个项目中比较重要的模块,简单介绍下?

  • 直播怎么做的?

  • 自己负责的项目有没有遇到过一些技术难点?

  • 举个例子,你做的哪儿块能体现你的技术能力。

  • 你的缓存是在什么时候进行缓存的呢?

  • 为什么会用到 MMKV,从实际角度出发,不用 MMKV 会怎样?

  • 逆向是如何做的?

  • 你们目前项目使用什么框架?简单描述下架构。

  • 项目中你们有写过多进程吗?

  • 假设现在让你从进程 A 往进程 B 发消息,你会怎么做?

  • 设计模式了解过吗?设计模式有哪儿几种类型?

  • 网络相关有了解吗?假如我现在发起一个 http 请求,它背后都做了哪儿些操作?

  • UDP、TCP 底层了解吗?底层链路是怎样的?

  • 一个 http 包是怎么发出去的?


面试感受:


  • 有点屈辱,面试完眼都红了,和老大聊完之后,也理解了。毕竟学历不过关,技术一定要深度,人家才能不在乎我学历,学历不行,技术没达到那个深度,人家为啥要我?打铁还需自身硬呐。

  • 能明显感受到一面面试官友好性,和大佬进行面对面相互交流挺好。可惜是个人未能达到客户端负责人要求的技术深度。


2021-4-20 平行未来


面试内容:


  • 自我介绍,公司、团队介绍、人员配比情况,简单说下项目情况,学历情况说明。

  • 直播用的哪儿家?有看过源码或者优化吗?

  • 就你一个 Android 会不会感觉孤独?

  • 离职原因是什么?

  • 您擅长哪儿些?

  • 说下如何进行瘦身?

  • 微信资源压缩,如果让你实现,你能实现吗?

  • 微信资源压缩原理是什么?

  • 启动优化过哪儿些内容?

  • 内存做过哪儿些优化?

  • 异步实现方式有哪儿些?

  • 简单说下 Handler。

  • 在一个线程中,可以创建多个 Handler 吗?

  • 一个线程中有两个 Handler,那么它有几个消息队列?

  • 消息队列中如何判断当前消息是归属于哪儿个 Handler 得呢?

  • 我能在子线程中创建一个 Handler 吗?

  • 子线程中为什么可以弹 Toast?

  • Looper 更深层次原理你了解吗?

  • 自定义 View 做过哪儿些?

  • 假设自定义 iOS 进度对话框,转圈使用逐帧动画,那么在什么时候销毁呢?

  • 两种实际业务考察以及最终布局考察。


面试感受:


  • 老哥人不错,个人对基础知识掌握不够,还不深入,停留表面,就好像老大说的,仅仅掌握技术层面上的一层油,深入就完蛋。


2021-5-10 立达智胜(工具组)


面试内容:


  • 简单自我介绍、当前工作情况(在职?)

  • 项目为什么做的类型这么多,前端小程序、Android、Flutter?

  • 简单说下 Handler,个人理解、使用流程等。

  • Handler sendMessage 到 Message,它中间经历了一个什么过程?

  • Activity 生命周期。

  • A Activity 打开 B Activity,假设 A 现在到了 onResume() 跳转会经历哪儿几个生命周期?假如我现在在 B Activity 点击返回呢?

  • 你了解 Activity 的渲染过程吗?

  • MeasureSpecs 有了解过吗?

  • View 如何获取到当前大小呢?假设我现在设置的 warp_content,它是怎么拿到 TextView 具体的大小呢?

  • MVC、MVP 以及 MVVM 区别是什么?

  • MVP 和 MVVM 本质区别在于什么?

  • MVP + Databinding 等同于 MVVM 吗?

  • 你知道 Databinding 中的注解是什么时候注入的,它是怎么运行的?

  • Databinding 注解你知道什么时候生成的吗?

  • Java 注解有所了解吗?

  • 从架构层次来讲,MVP、MVVM 有什么区别吗?

  • 我可以在子线程中更新 UI 吗?

  • 假设我现在有个 Button,点击时候开始一个 Thread,并且在 Thread 中去更新 Button text,可以更新吗?

  • ViewRootImpl 什么时候被创建?

  • Android 中动画的估值器和插值器如何配合工作的?

  • Apk 瘦身主要从哪儿几个方面入手的?

  • 微信压缩实现原理是什么?

  • MMKV 和 SharedPreferences 有什么区别?为什么使用 MMKV?

  • 当使用 SharedPreferences,通过 get 获取数据流程是什么样?拿到数据后它放在哪儿了呢?


面试感受:


  • 面试官蛮不错的,上来介绍了岗位定位、职责。面试官源码层研究蛮深入,很 nice。


2021-5-10 微淼财商(教育/电商)


面试内容:


  • 自我介绍,Flutter 实际开发经验有多久。

  • 使用 Flutter 开发过程中有没有遇到过棘手的问题?

  • 又遇到过什么问题引发 App 崩溃的吗?举个场景说说。

  • 插件写过吗?简单说说你写了一个什么样的插件,具体技术涉及到哪儿些方面?

  • Flutter 编写插件的方式有哪儿些?

  • 有尝试做过原生和 Flutter 交互吗?具体技术原理是什么了解吗?

  • 状态管理方面用过哪儿些?在使用过程中遇到过什么问题吗?

  • Flutter 是属于单线程吗?

  • 你有尝试优化过插件加载吗?或者封装组件?

  • 你有操作过父 Weight 操纵子 Weight 吗?这些状态你处理过吗?

  • Flutter 中的 Key 有了解吗?

  • 关于 Dart 中基本类型区别有了解吗?

  • Fluter 是如何渲染页面的?

  • 你找工作更倾向于哪儿个?Android 原生还是 Flutter?

  • 能简单描述下你现在这家公司为什么项目类型以及技术这么乱的原因吗?

  • Flutter App 出现异常为什么不会出现崩溃,而且一个红屏页面呢?


面试感受:


  • 整体聊下来是需要招收纯纯 Flutter 开发,可惜我是个半吊子,只有短短四个月的 Flutter 独立开发的经验,面试官比较随和吧。


2021-5-10 中科物栖 ⭐️⭐️⭐️⭐️⭐️


面试内容:


  • 简单介绍个人学历以及为什么写博客和最近有在写博客吗?

  • 简单描述下个人工作经历。

  • 简单描述下你对 Flutter 的理解,你认为它有哪儿些优劣势,以及它适合开发什么类型项目。

  • 历届公司所在地点以及做的大概内容。

  • 你有没有擅长的地方,或者哪儿方面掌握的更深入一些?

  • 简单聊聊接口和抽象类区别,对比说明下。

  • 接口可以多实现吗?

  • Java 中什么类不可以继承?

  • List、Map、Set 常用的实现类以及它们之间的区别,包括底层原理么?

  • 平时开发过程中有去思考使用的类型的优劣势吗?平时是回去关注这些地方吗?

  • Activity 的启动模式简单聊下。

  • 假如 ABC 三个 Activity,AC 属于默认启动模式,B 属于 SingleInstance,那么我现在依次启动 ABC,然后在 C 点击 back,那么这个时候会回到桌面还是回到 B?

  • 我可以使用 Application 启动一个 Activity 吗?

  • Activity Context 和 Application Context 有什么区别?

  • Intent flag 使用过吗,使用的场景是什么?简单说下用过哪儿些吧。

  • 你说下对 MVC、MVP 以及 MVVM 的理解。

  • 你们的项目中使用的是什么架构?

  • MVP 的 P 层主要做什么操作?

  • 说一下 Android 中的 Handler 消息机制吧。

  • 子线程中可以创建 Handler 吗?它可以直接工作吗?

  • 可以工作的话,需要调用哪儿些方法呢?

  • 一个 Handler 对应几个 Loop?

  • 如果我创建十个 Handler,那么它们有几个 Loop?

  • 那么存在多个 Handler 时,Loop 怎么知道哪儿个是哪儿个?

  • 你知道 Loop 内部时如何管理消息的吗?具体的过程了解有多少?

  • LockHandler 了解有多少呢,简单说下吧。

  • 当我通过 Handler 发送消息后,它内部执行流程是怎样的呢?

  • 直播这块底层细节你了解有多少呢?简单聊聊。

  • 你觉得你在项目中哪儿方面比较深入的,有什么可以聊聊吗?

  • 假如我要你的话,你更希望进我组里负责哪儿方面的内容?

  • 你的个人职业发展方向是怎样的,方便聊聊吗?

  • 有什么想问我的吗?


面试感受:


  • 面试我的是个老大,很不错,整体交谈而言学到蛮多东西的。感谢老哥~

  • 额外提一嘴,公司 hr 小姐姐贼皮~ 推荐各位老铁准备充足来一波~


2021-5-11 有妖气(动漫)


面试内容:


人事小姐姐:


  • 分别讲述下每家公司离职原因。

  • 现在属于在职还是?

  • 现任公司以及工作内容介绍。

  • 期望薪资最低多少?


技术老大:


  • 现任公司外包吗?项目经历为什么这么杂乱?项目是公司自营项目吗?

  • Android 原生是采用 Kotlin 吗?

  • 简述下学历情况。

  • 介绍下 Glide 使用心得以及缓存机制。

  • 简述自定义 View 步骤以及自己心得。

  • 你做的项目中有对图片流或者对图片进行相关优化吗,简述下?

  • 布局优化这块有什么心得吗?

  • 对多图列表,加载大图这方面有什么心得?有哪儿些优化的思路?

  • Glide 的缓存算法是什么?

  • 你个人英文水平是怎么样的?

  • Android 团队多大?你们接口传递的格式是什么样的?

  • 从 Android/Java 角度而言的话,有什么方向是你比较着迷的?

  • 你平时会看漫画吗?

  • 你对移动平台以及 Flutter 有什么个人理解,包括它们的使用场景?

  • 微信小程序是你们 Android 团队在开发吗?

  • 微信小程序使用了一些跨平台框架还是?


面试感受:


  • 面试的是 Android 端 Leader 角色,刚开始和人事沟通觉得 Level 有点高,人事小姐姐说没事直接来面面。面试是技术老大和人事小姐姐一块面试的。整体感觉还不错,小姐姐讲述很直接了当,技术老大蛮不错。公司环境不错,福利待遇也蛮好。算是一个不小挑战吧。


2021-5-12 中广创思(车载)


进去先做题,4 道题,看的出来算是公司项目常用的场景。个人建议还是取消做题环节吧,直接开面,咱们唠起来,快速有效的进行面试,而且避免耽误更多时间,有时候临场反应更能代表个人真实水平(小白理解)。目前应聘 Android 岗位主要是负责将现有产品迁移车载平台相关开发工作,剩下可能还有一些待立项的项目开发。


面试内容:


一面小哥哥:


  • 目前工作状态?为什么离职?

  • 项目为什么做的这么乱糟糟?公司核心业务是什么?

  • 有没有可以演示的作品(我嫌麻烦,没带,哈哈哈嗝)。

  • 在你开发过程中有没有遇到什么难点?可以详细举例说说么?

  • 项目类型、团队情况以及主要负责内容。

  • 你负责的项目,有什么没有比较好的技术亮点?

  • 你是如何进行 Apk 瘦身的?

  • 性能优化方面做过什么操作?

  • 你是如何基于 lifecycle 进行日常组件封装?

  • 你是如何进行日常项目架构设计实践?

  • 模块化的情况下 Activity 之间数据传递以及数据持久化怎么实现的?

  • 目前现有项目采用什么架构?

  • 你觉得你更擅长做哪儿些方面吗?比如业务落地、基础库维护、新技术引入等等。

  • 你在公司中有给公司做过相关操作么?比如引入新技术等。

  • 可以谈谈你对 Flutter 的一个认知吗?比如适用哪儿些场景、个人经验?

  • 简单谈下你的学历情况。什么时候开始做的 Android 开发,自学的还是?

  • 启动、内存优化做过什么操作?

  • 什么情况下会使用软引用?

  • 内存泄漏一般会在什么情况下会遇到?

  • 在平时开发中,有没有注意过一些数据结构适用场景?

  • 平时开发过程中有没有思考过方案更优思路?

  • 字符串拼接 + 和 StringBuilder 有什么区别?

  • 内部类如何访问外部类呢?

  • 父类和子类同时拥有静态代码块和构造方法,它们执行顺序是什么?假设现在父类和子类又新增非静态代码块执行顺序是什么?

  • Activity 异常启动的生命周期是什么样子的?

  • 如何保证 Service 不被杀死?

  • 如何在 Service 中长时间播放一个音乐呢?

  • 自定义 View 做过哪儿些内容?如何实现的?

  • ArrayList 里面数据结构是什么样的?

  • 如果我使用 Arraylist 不断地 add,它的底层扩容机制是什么?

  • HashMap 底层数据结构是什么?

  • HashMap 数据结构为什么会是数据加链表,链表的作用是什么?

  • HashMap 是存储 key-value 形式,那么 value 在 HashMap 中是以什么形式进行存储的?

  • 你之前有涉及过一些车载相关的项目么?

  • 之前和蓝牙是如何进行数据通信的?

  • 机型以及屏幕适配是如何适配的?

  • 公司平时加班多吗?你是怎么看待加班的?

  • 公司有产品么?

  • 公司加班会有加班费或者其他补贴吗?(呵呵哒,有个锤子...)

  • 假如说领导在,让你多写一会儿,你会怎么做?

  • 假如有这样一个场景,领导给你评估的时间太短,这个时候你会怎么做?

  • 你这几家公司都在哪儿呢?


二面老大:


  • 在职还是离职,预计离职需要多久?

  • 曾经任职公司主要业务是什么,你做的工作内容/范围是什么?

  • 你个人主要开发语言是什么?哪儿个用的更多?

  • 有一些工作上的亮点吗?你负责的功能或者亮点?

  • 你对音视频技术的了解有多少?实际当中使用过哪儿些?

  • 细节项目的介绍。

  • 你住哪儿?你是已婚吗?

  • 对我们这边有过了解吗?

  • 来给你秀一下我们目前的 App。

  • 你有什么想问我的吗?(老哥说这话的时候,感觉是信心满满,来哇,开启狂躁的问我吧,哈哈哈嗝)

  • 期望薪资这块能给我一个范围吗?

  • 还有什么其他方面想问我的吗?


面试感受:


  • 小哥哥思维很跳跃,几乎从实际出发,整体来看蛮不错的,公司真正面试的效率蛮高,除了做题等待期(哈哈哈嗝,小哥哥看到不要喷我)。技术老大声音很有磁性,有一种莫名的振奋感,很不错的 Leader。聊完将近 12 点,特意叫住两个小姐姐帮忙送我出去,感谢啦~


2021-5-13 蒸汽橙海(海外语音房)


面试到的有点早,然后直接进去了,在浓浓饭香味儿的会议室开始了


面试内容:


一面面试官:


  • 自我介绍。

  • Handler 简介。针对它源码有了解吗?

  • loop 内部是一个死循环,为什么不会造成页面卡死?

  • 使用 Kotlin 有用过协程吗,说下个人理解。

  • 协程 call 中状态怎么处理?

  • 假设协程中出现异常,它会怎么样?

  • 假设用户退出某个页面,导致这个网络取消了,协程出现异常,你怎么处理?

  • 说一下 Android 中事件分发。

  • 当子 View 事件被父 View 拦截了,那么我现在需要让 子 View 获取事件,你有什么方案?

  • 自定义 View 做到哪儿些?

  • 有演示的作品么?(俺没带手机,哇咔咔)。项目介绍。

  • 针对动画有哪儿些了解?

  • 差值器、估值器作用以及区别。

  • 屏幕适配怎么操作的?使用 AutoSize 有没有遇到什么问题?

  • 头条 AutoSize 的原理是什么?我直接使用官方提供的 dp 为什么做不到屏幕适配?

  • 针对 App 保活做过哪儿些操作?

  • Android 中有没有你擅长的方面?

  • 能说下你针对项目中做了哪儿些优化么?

  • 之前是有独立开发过吗?

  • Flutter 开发周期多久?

  • 热修复用的是哪儿家?成功率大概多少?

  • 上架 Google Play 的一些坑。

  • 你怎么理解 Android 中的 Bitmap 和 Drawable,它们之间有什么区别?

  • Android 多进程如何实现数据交互?


技术 Leader:


  • 简单介绍下你的项目。

  • 公司介绍以及项目杂乱原因说明。

  • 学历原因简单说下。

  • 你们这个组主要承担的日常工作类型。

  • 公司团队规模。

  • 写文章的目的是什么?

  • 语音聊天室开发过吗?

  • 个人职业规划是什么?

  • 个人英文水平怎么样?

  • 目前个人情况是怎么样的,已婚吗?

  • 你是一直在北京吗?这家公司待了多久?


过了几天又和 Boss 聊了会儿,大概就是个人离职原因、期待工作环境、找工作看重的方面、期望薪资以及闲聊天,这里就不做记录了。(其实是时间久远,我忘记了,哈哈哈嗝)

面试感受:


公司环境还行,海外项目据说是某个国家(我忘记了)排名第二,类似外包二次维护。


2021-5-18 上海正圆计算机


面试内容:


。。。


面试感受:


  • 一面二面干了我两个多小时,两次面试相隔时间很短,直接开干,整的有点蒙圈,后期二面技术官对逆向感兴趣,简单的聊了会儿。给我整的有点蒙圈,本来想着半小时或者四十分钟解决战斗来着。公司挺大的,但是空的工位较多。


2021-5-19 新文道教育


按照约定时间进公司,结果等半天,最后又主动找前台,结果呢,给了好几页题,那种 n 年前的题,直接蒙圈了,顿时想走了,墨迹了会儿,hr 又过来催,简单填写完资料又让全部填写,明确说明简历都有,还说要求标明每家具体薪资待遇等等等一系列不爽,都打算直接走人了,结果就在旁边,没法跑。无奈跟着又上楼,又等,接近一个多小时全部都在等待,明确说明了下面还有面试,不行就下午或者改天再约,hr 非要聊,聊到所谓的技术总监出来,开始所谓的不知所云的面试...


面试内容:


  • 个人简介,学历说明,工作内容,团队规模描述。

  • 简单描述下你重构的方面以及重构新开的项目还是在老项目重构。

  • 重构采用了哪儿些架构技术等。

  • 瘦身主要用到了哪儿些技术?

  • 性能优化你主要做了哪儿些方面?

  • LeakCanary 底层如何实现,如何捕获?

  • 造成内存泄漏情况有哪儿些以及如何解决?

  • Java 中的引用类型(强弱软虚)作用以及常用场景。

  • 除了 LeakCanary,你还用过哪儿些,Android Studio 自带工具有使用过吗?

  • 针对重构,有考虑使用组件化和插件化的方式吗?

  • 组件化在不同模块是如何通讯的?

  • 阿里的路由框架有了解过吗?

  • 简单聊下 MVC、MVP 以及 MVVM 的优劣势。

  • DataBinding 和 ViewBinding 区别,在项目中使用了哪儿些?

  • 项目中用到的网络框架是什么?对它们的底层源码有了解吗?

  • 介绍下 OkHttp 有几大工具类吗?

  • OkHttp 有几大拦截器?

  • Retrofit 如何工作的原理。

  • Retrofit 采用的设计模式是什么?

  • Retrofit 常用的几个方法。

  • 对源码的掌握程度怎么样?

  • 简单介绍如何实现一个懒加载。

  • Fragment 如何实现懒加载。

  • Fragment 常用的加载方式有哪儿些?

  • Fragment 常使用的方法或者类有哪儿些?

  • RecyclerView 多类型、分组如何实现?

  • Activity 生命周期以及 A 跳到 B 之间的生命周期是怎样的?

  • 自定义 View 常用到哪儿些方法以及如何实现的。

  • 自定义 View 中对 requestLayout 理解有多少。

  • requestlayout 以及 invalidate 区别。

  • 简单介绍下 Handler 消息机制。

  • loop 在什么时候创建的?你知道它是在什么类中创建的吗?

  • Handler 可以在很多地方都可以创建吗?

  • 假如我现在创建 Handler A、B、C,消息队列怎么知道是谁的?

  • loop 死循环为什么不会造成卡死?

  • ANR 的引起的原因以及解决方案。

  • 假如我现在使用 Handler 延迟五秒后进行业务处理,那么 Handler 内部是如何实现 5 秒后执行我的具体业务操作的呢?

  • Flutter 如何和原生交互?

  • Flutter 如何开启一个服务?

  • 纯 Flutter 可以调用原生吗?

  • Flutter 通道如何编写?通道的实现方式。

  • 为什么选择 Flutter 的原因。

  • Flutter 和 RN 的区别?谈谈个人理解。

  • 原生如何调用 Flutter?

  • 如何让你设计一个项目架构,你会从哪儿几个方面入手考虑,为什么?

  • 架构中有哪儿些内容是可以抽取一个公共的东西,让所有的模块都使用?

  • 你的 BaseActivity 中会放什么东西?

  • 你是如何管理 Activity 栈?

  • Activity 启动模式。

  • 页面中如何预防用户连续点击?如何在项目所有点击事件中使用呢?

  • AOP 知道实现原理吗?适用于哪儿些场景。

  • 动态代理的使用场景有哪儿些?

  • AOP 主要解决哪儿些场景问题?

  • 如何实现一个自定义进度条?

  • 如何实现自定义 View 的渐变色效果?


面试感受:


  • 害...直接拉出来干一架多好,哈哈哈嗝


2021-5-19 微爱(情侣社交)


由于整理的时间太久了,好多东西记录的并不是很清楚了,相关的录音也是太过于嘈杂,没能好好记录下来,可惜了。


一面和 CTO 面相隔两天,也是那几天事儿多,没能及时赶紧过去复试,让一面老哥等了几天,实在不好意思。


三面由于刚从老家干活回来,有点累,暂时没去。


面试感受:


  • 公司蛮大的,情侣社交,氛围蛮不错。面试官和 CTO 很亲切,两次面试时间较长,但是整体下来给人感觉很舒服。



THK


最后在唠叨几句吧。


本文的初衷并不是提供对应的面试答案,更多的是将自己亲身经历的面试过程记录,方便各位跳槽的小伙伴进行自我模拟,也欢迎一起交流学习。


其实,面试这么久,对人的心理以及生理都是一种折腾,58 无缘以及经历汽车之家无奈的面试,导致后续一段时间内的心态崩溃,可能有的老哥会嫌弃这两家,可是对于我小公司出身,这就是蛮大的公司了。还是希望各位准备充分,心态放平,展示自己最好的一面就好了。


千万别像我一样,匆匆忙忙面试,对之前比较不错的面试官道个歉吧...


有时候真的觉得自己蛮幸运的。虽然现实的确也很残酷,但是呢,也希望能把自己的一点小幸运传递下去~


开心开心,一起加油~ 



~ FIN ~



推荐阅读Jetpack MVVM七宗罪 之一 :还在使用 Fragment 作为 LifecycleOwner ?
Kotlin Flow 操作符:篇幅很大 你忍一下
玩转 MotionLayout:实战效果展示
关于Java字节码,了解这些就够了


加好友拉你进群,技术干货聊不停


↓关注公众号↓↓添加微信交流↓


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存