前面一篇我们介绍了一些简历准备、知识体系简历、面试投递、面试技巧,这一篇我将就我这段时间的面试做一些介绍。
1. Rokid:7.6 14点 飞书面试
一面 Android TL面:
1.技术选型是如何做的?
2.我说到了MVVM,然后问MVVM的架构细节,LiveData+Livecycler+ViewModel实现原理
3.说到了AB模块相互依赖,但是AB又对外暴露,如何处理这种情况?
4.消息处理分发器如何实现,能否参考其他的来实现,比如网络编程,或者前端等?
5.项目中有什么亮点
6.还有什么项目架构方面的亮点或者你想拿出来说说的和我讨论一下?
二面:7.7 17:30
一些项目上的点展开讨论的
同事内推的,第一家面试的,准备不是特别充分,二面主管聊项目没聊下来。
2. 科大讯飞 大模型 7.7 14点
1.如何保证项目的质量?
2.有遇到什么难解决的问题?
3.就着项目简历来说
4.平时项目中用过哪些设计模式?
5.项目用户数多少?
科大讯飞,在合肥,本来也没打算去,就是为了攒经验而面试的。面试整体下来不是很好,就很奇怪,一上来就是类似领导的面试。而且科大讯飞出名的抠,美其名曰合肥和你们的消费水平不一样的哈。
3. 华为 7.10 下午15点
一面:
1.四大组件都有哪些,分别是做什么用的?
2.内存优化都做哪些?
3.app都可以做哪些性能优化
4.Intent、bundle都是做什么的?
5.应用启动都做了哪些?apk构建流程都有哪些?
二面 素质面试:
7.11 晚上八点半
类似于hr面试
浙江华为是华为的外包,听到这里你是不是就不想面了 哈哈,其实吧攒经验就好。最后这个是拿到offer了。
4. 小红书 基础架构 7.12 周三下午2点
1.性能优化做了哪些?
2.插件化、热修复(说到了java的热修复的原理,那so等呢?)、增量更新,插件化和热修复的一个区别
3.事件分发机制
4.简历上关于module+appshell的具体细节了解
5.快速排序
小红书在上海,其实我是想去的,但是奈何这个面试官有点倾向了,基本只问架构、性能优化相关,然后我当时也是准备不充分,这个面试凉凉。
5. vivo外包 7.13 周四上午10点
一面:
1.事件冲突举例、滑动冲突举例、cancel事件是如何产生的?
2.插件化如何实现的,说是如何替换activity的,说到了activity启动原理
3.kotlin和java的区别?我说到了空安全、扩展函数、协程及其原理
4.启动优化你做了什么?我说到了自己写了一份Task启动框架,支持优先级、异步同步任务、有向无环图
5.Android中多线程,首先我说道了Java同步可以做到的,比如synchronized及其原理、volatile、ReentrantLock、ThreadLocal、线程池及其原理,后面说到了Handler,面试官补充问到post和send区别
6.线程池使用当中有遇到什么问题?
面试整体体验很好,基本能感受到他的满意。
二面:
1.如果把签名放到后端,如何去做签名 应该是在build.gradle写一个插件,然后挂靠打包的插件,这个插件中实现拉取后端的签名,然后做签名校验的过程
2.如何处理和产品经理的分歧
三面:hr面
虽然是外包,但是明显能看出来技术的这块算是可以的,也能够给自己一个信心,最终这里拿到了offer。但是肯定是不去的了。
6. 阿里来赞达 7.13 周四下午2点
阿里全资子公司
一面:
1.插件化和热修复的区别,问的插件化原理很多,包括资源如何获取,这个我回答得不是很好;还问了插件化目前有哪几种实现?
2.Activity和Fragment的区别,我介绍了Activity大部分是一个页面,Fragment在之后推出,为了解决分片的问题,然后介绍了各自的生命周期,最后介绍了通信方式,比如Intent、findFragmentById、findFragmentByTag等来拿到Fragment去通信
3.Java线程同步都有哪些?我回答了synchronized、原理及其注意事项,volatile、AtomicBoolean、ThreadLocal、线程池及其原理
4.问我看了三方源码,我回答了Lifecycle+liveData+viewModel,leakcanary、blockcanary、Okhttp、Glide
5.Lifecycle问我如何去做生命周期管理的,我回答大于29的时候做了application.activityLifecycleCallback,同时加上无UI Fragment来做生命周期管理的
6.ViewMode问我如何做到数据存储的,我回答是把数据存储到了ActivityClientRecord的一个属性中的,这个ActivityClientRecord不会因为activity横竖屏而改变,所以我们存储的数据也就不会丢失
7.Leakcanary如果让你去做,你怎么做?我回答的是可以参考Leakcanary源码,通过ActivityLifecycleCallback来拿到activity生命周期,给当前activity包裹一层弱引用,通过一次GC来判断有可能存在内存泄漏,再通过二次GC来确定,同时通过dump最短路径来确定内存泄漏的位置
8.Okhttp用到了哪些涉及模式,我回答用到了责任链模式,门户模式,建造者模式。又问我有哪些责任链,我没回答出来
9.性能优化做了哪些?一直追着问,问了还问还有嘛?我回答了启动白屏优化、启动Task框架、内存优化、布局优化、方法耗时统计、大图检测插件、内存泄漏排查、包体积优化,包体积优化我说到了做一个阈值控制,通过CI来做检测,一旦超过阈值做警告处理同时我们需要做CodeReview。最后他问我是怎么做的这个检测,我回答CI这边提供了一个接口,我们在Gradle Task中获取包体积大小,与阈值进行判断,如果超过就在打包的时候提醒警告(我胡扯的,不过他也没说啥)
10.应用安装的流程?我基本上也答上来了,在这整个过程中,可以加速哪些地方?
11.既然做了分库处理,那不同模块之间的通信是怎么做的?我说到了微服务的这种方式
12.有哪些结构是Java没有的,但是Android中有的。我回答了SpareArray,ArrayMap,然后又问我ArrayMap原理,没答出来
13.如何在线程中启动Handler,我回答了在run方法中调用Looper.prepare和Looper.loop,在这两个方法直接创建Handler,给定当前线程的looper,同时我还介绍了一个线程有一个Looper的原理,最终还介绍了HandlerThread就是采用了这个方式去解决线程中启动Handler
14.对于未来的规划,我回答的是深度和广度,深度就是继续深耕Android底层,比如性能优化、车机等,广度就是拓展前后端。
15.你对团队的看法?我回答的是希望团队积极向上,能够有技术探索,能够互相探讨知识,毕竟每个人的见解都不一样,互相取长补短。
二面:7.19周三下午4点
1.总体下来没问啥技术相关的,都在问项目以及优势、亮点,还问给团队带来什么
2.问我的亮点。我说到了整个一套模块化的处理方案以及遇到的问题及解决方案,然后问我大概多久能完成这个,我说了一个月,他好像听着不太满意??
3.Flutter和RN的区别
阿里来赞达一面技术面下来感觉体验蛮好的,就是面试官一副没睡醒的样子,有点不尊重人了,但是还是过了一面。二面是个领导,一眼看上去年龄就很大,都是问指标、团队作用等等,目前到现在也没有消息,基本凉了。
7. 企迈科技
一面:7.14 周五早上10点
1.性能优化做了什么?
2.j2v8是用来做什么?打印小票是如何做的?
3.最近使用的数据库是什么?
4.对跨端都了解哪些?
5.问了一些关于Android的技术方面的
6.优缺点都有哪些?
由于做的是和有赞类似的产品,问的很多的是有赞相关的内容。基本聊下来就能感觉到他还是满意的,最后说了一下那就不浪费彼此的时间了。
二面:hr面试 7.18 周二下午3点
1.项目中的亮点
2.自己的优势
基本都是一些hr问的相关,这里没有列举很多。最后拿到offer
8. InShot影笑 7.14 周五下午2点现场面试
1.a="123",b="123",ab相等嘛?为什么?
2.String、StringBuilder、StringBuffer的区别?string是不可变的,每次+都会重新创建对象,StringBuilder和StringBuffer都是在原对象上进行修改,地址值不变,其中StringBuffer是线程安全的。
3.java基本数据类型,分别都多少位
4.Bitmap内部是什么,10241024的bitmap是多少字节 应该是10241024*4B
5.int的取值范围 应该是-2^31 ~ 2^31-1
6.序列化的意义
7.Intent传递、bundle传递数值为什么有大小限制?
8.如何将一个文本分享到微信?
9.Binder原理
10.Hashmap原理,红黑树是平衡二叉树嘛?平衡二叉树是什么?
11.Activity的四个启动模式?
12.性能优化都做了什么?
13.Java和Kotlin的区别?
14.ArrayList内部数据结构,如何扩容?
面试官是个Android转产品的,全程看着面试题一个个去问,对于回答好与不好的,都不会继续深入,问的问题也都比较特殊。整个面试下来体验不是很好,最终也没有继续走下去。
9. 大华 7.17 周一上午10点 现场面试 滨兴路1399
委托的使用
协程的原理、协程的异常捕获
Flutter和RN的原理以及区别
面试官看我经验比较充足说Android的就不一个个问了
由于是现场面试,面完一面就接着二面,二面是个移动端负责人,后来我脉脉一查,哈哈,在大华呆得八九年熬的,也是牛逼。
最终问我工资,然后就说你要的可能比较难,现在这市场比较差什么的,bb了半天,最后拜拜。
10. 海康威视 7.17 周一下午3点
事件分发机制
View绘制流程
Handler机制
可以在子线程中更新UI嘛?
协程的原理,协程的调度是怎么做的?状态机说是?
设计模式在自己的项目中的使用?
一面面试完,马上hr就打电话要通知现场面试。这次我学精了,我直接反问了句,你们这边薪资大概多少,我说我现在薪资多少,如果你们能给得起就继续下轮面试,给不起就算了,就不用浪费大家的时间了。
这里针对海康大华这种的,要面试的话可以提前问下薪资上限,以免浪费大家时间。那个大华我从余杭开车到滨江,我.....?
11. 阿里飞猪 7.18 周二早上10点半
待更,整个流程是笔试+三轮技术面+hr面,目前是到了hr面,等后续再更新这块,敬请期待。
12. 九州文化 7.20 一面、二面一起 周四下午4点
1.自我介绍
2.自定义View做过哪些?挑一个说说,是怎么做的,如何通知刷新、重绘等,还聊到了vsnc机制
3.多线程同步
4.HashMap原理,我说的比较多,原理、2的次幂、index、不安全性、异或的用法等等。
5.dplink有使用过嘛?
6.算法练过嘛?我说这段时间没怎么刷算法,只看了一些排序、多线程;然后问我排序有哪些,快排的原理。还问了链表的前序遍历。
整个聊下来后,问了我薪资,然后什么时候能够入职等,最后就是hr联系我了。
整个面试下来,属于是一开始面试官是在自己的领域,被我带到了自己的领域,从而获得了通过。如果硬按照他的这个架势就比较难通过看起来。最后成功拿到了offer。
喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!