Android面经, 2021面试经验总结

前言

        由于技术有限, 面试的都是一些二线和三四线的公司. 不过也有一些自己的心得体会, 在此记录总结一下.

        面试周期比较长, 从3月份面到了12月份. 期间也是面一个, 总结一下(玩玩游戏, 看看动漫...), 再复习知识, 然后再去面试. 像我这种懒惰的人, 就得经历面试啥都不会的尴尬, 才能有学习的动力...

        面试的公司有B站, 喜马拉雅, 七猫, 完美世界, 传音控股, 人人影视, 播呗等.

面试经历

喜马拉雅 2021.3

算法题

1.两个有序链表合并
2.从n个版本中找到第一个坏的版本
3.给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。

一面
hanler机制
livedata原理

service 使用相关(startService, bindService 区别, 多次调用触发onCreate onStartCommand等细节, 因为我提到项目中使用service比较多, 问得很细...)

跨进程通讯
inline 函数原理

in out 逆变协变基本概念
apply 原理 let also with run对比
协程使用及原理

二面
viewmode原理
rtc是什么

问一面感觉怎么样(不好)

哪些面的不好, 平时工作加班吗

还有些问题不记得了...

小总结

        这次面试问题很大, 因为没有好好复习. 一面的时候八股文回答的不好, 但面试官看我业务上的回答的都还可以, 还是很和蔼的, 让我好好在二面表现. 结果二面上来我就挂了, 也没有面HR, 就被提前撤离了.

七猫 2021.7(内推)
有笔试, 无算法题, 笔试题都是一些基础的Android问题, 包括手写单例,切换线程有哪些方法,view绘制流程等

一面
性能优化(重点)
handler原理
view绘制流程

fragment生命周期

二面

好像没问技术问题, 就说了下公司情况

小总结

        这次还是准备了有一周时间的, 但很多知识点理解的不通透. 不能只简单的看网上的文章解析, 还是要深入理解才行. 加班情况, 面试官说是临时996. 我是不接受996的, 虽然也没给 offer...

        内推的优势很大, 最起码可以得到一个面试机会, 一定要好好准备, 不要浪费机会. 后来我再投喜马拉雅的时候, 没有再给面试机会了...

播呗 2021.11

无笔试, 无算法题

handler 机制原理

activity 启动模式

序列化方式和区别

glide 原理

LRU 原理

view 刷新机制,调用 requestlayout 后会立刻刷新 view 吗, 其实就是 handler 同步屏障相关的知识啦

小总结

        经历了前面两次尴尬的面试, 这次准备的相当充足. 但稍微有点紧张, 回答有点语无伦次的感觉, 后来逐渐进入了状态, 可以说是和面试官对答如流, 渐渐的由我带着面试官走~

        建议大家面试的时候, 不要着急回答问题, 想稍微思考一下从哪里开始讲, 怎么讲会比较通顺. 整体来说面的还可以, 不过竟然没有一次性面完. 两天后又通知我二面(不知道是技术面还是HR面), 由于该公司加班较多, 再者, 本来也是一个试水测试, 就没有接受二面. 不过也为B站的面试增加了信心.

B站 2021.11 直播方向

无笔试, 无算法题

一面

surfaceview 动画

Android 系统源码在哪个版本改动最大

recycleview 源码

描述一下intent intentservice intentfilter

音频直播改成视频直播要注意什么(当场尬住, 不知道该回答啥了, 也是有点紧张...后来想想可能当时打开B站的直播, 根据他们的UI来回答会好一点)

Android各个版本适配

还有其他问题, 想不起来了...

二面

linux 环境下 new 10000个4k文件, 会有什么问题

两个player库(一个开源, 一个不开源), 要求封装代码, 让业务层调用无感知底层的区别, 怎么来实现

怎么保证动画流畅

activity中显示UI的流程(xml文件显示到屏幕上的流程)

viewmodel原理

rxjava 切换线程

擅长Android哪一块, 会问到相关原理

kotlin 文件和 java 文件编译过程对比

exoplayer, ijkplayer 有看过源码吗

直播的推拉流实现, 直播的协议相关

HR面

离职原因

有用过B站app吗, 都用来做什么

当前薪资, 期望薪资

讲述一下工作经历, 每份工作有什么心得体验

小总结

        去B站面试是最紧张的, 面试的前几天, 晚上躺在床上还要刷会儿题. 一共面了两个半小时左右, 从椅子上站起来的时, 腿都是软的...

        问的很广, 当时面完给自己打了70分(满分100). 总体下来感觉面的一般, 但还抱有一点希望, 毕竟面到了HR... 特别感谢给面试机会的组长(暂且称之为组长). So, whatever, 这个月底就要去入职啦~O(∩_∩)O~

人人视频 2021.12

一面

无笔试

判断两个链表是否相交

手撕String的substring

recyclerview 卡顿原因分析

轮播图无线轮播实现

内存泄漏

视频播放UI相关问题

小总结

        面试感觉还好, 但没有给二面的机会. 哎, 心很累, 下了班, 怕面试迟到, 一路狂奔过去的...面试官只问了他准备好的的几个问题. 加班情况, 每周选两天加班到9点...面完等了5分钟, 当场就给我结果了, 痛击心灵的一拳.

完美世界 2021.12

一面(视频面)

app启动流程

java 类加载机制

性能优化

怎么监控屏幕卡顿

recyclerviewe 缓存机制

leakcanary 原理

二面

拿到offer后, 就让HR取消二面了

小总结

        还有一些问题想不起来了, 面了40多分钟. 面试官对于Android八股文很了解, 问题也有深有浅, 一个问题可以延伸很多问题, 沟通起来很顺畅. 让我震惊的是, 是位女面试官! 可惜了, 无缘一睹妹子芳容...

传音控股 2021.12

一面

线程池有了解过吗

handlerthread了解过吗

contentprovider使用

sqlite 使用和升级

讲一下anr

二面

sleep和notify区别

内存泄漏

java如何保证线程安全

死锁的必要条件

如何保证代码的健壮

HR面

公司介绍

离职原因

期望薪资

小总结

        不好的体验就是面试官迟到了半小时, 不过面试官也道歉了. 还好我请了一下午假, 心里不慌. 面试的项目是做系统级app开发的, 拨号通讯录等, 所以应该是不使用第三方库, 有加班, 但面试官也没说清楚具体的加班情况. 后来有了更好的offer, 就没再考虑了, 实际上也感觉不太适合. 当前我是想找一个好的技术方向, 去细细的研究(虽然也不知道哪个方向).

大总结

        想进一二线大厂, LeetCode是必刷的, 大概刷完 剑指offer 应该就没啥问题了(虽然我只刷了简单题...).

        简历上技术栈很重要, 写上去的一定要会, 还要能完善的表达出来. 不知道怎么写技术栈? 可以去招聘网站上, 把他们的要求写上去就好啦~(要抄自己会的哦~) 80%的面试官都会根据你简历上写的技术进行面试.

        性能优化, 内存泄漏都会问到, 如果平时工作中用的少, 网上找一些文章背一下吧(简单的可以记一下, 复杂的了解下原理就好~, 不然容易暴露...)

        待准备工作做好之后, 最好先面一两家试试水, 查缺补漏, 积累面试经验. 然后就向着目标公司出发吧~

        总体来说Android面试要准备的东西还是挺多的, 但我(太菜)基本是不可能把所有知识都准备好的. 基础的八股文一定要完全理解, 不能只是背网上的文章解析, 要自己思考, 再写代码体会一下, 才能加深印象.

        祝大家都能拿到满意的offer ~O(∩_∩)O~

补充

        在此推荐几篇八股文详解, 卷起来~

handler看下面两篇, 就能应付基本的面试啦, 看不懂的就多看几遍, 我也就看了七八遍~

Handler二十七问

万字复盘 Handler 中各式 Message 的使用和原理

RecyclerView的三大流程

Jetpack AAC完整解析

你可能感兴趣的:(面试经历,面试,职场和发展,android)