小米Android面试(Rust方向)

这次小米的面试准备很不充分,面试包括算法和八股文。作为一个工作的9年的程序员,以为说说自己做的项目就可以了。说实话自己对负责的业务模块还是很熟悉的,业务涉及技术知识也很清楚,但是如果别人不问,就会抓瞎,所以还是需要补充点知识广度。提升竞争力。

一,首先自我介绍一下,我工作经历都写着简历上的,不知道意图是什么,随便说了一下工作经历,因为他们招聘上说了要求懂一点framework,所以我说了我最开始做过框架,虽然那是很遥远的事情了。

一,算法
首先来了一道中等难度的算法,leetcode的第15题,三数之和,这道题比较简单。但是很遗憾没有做出来,主要不知道可以直接使用排序api,而且几年没有刷过算法题了,死得不冤。于是我想到一个问题:“程序员是否应该偶尔刷刷算法”,
如果去大厂肯定是要刷的,大部分公司特别是非互联网公司基本不需要算法,但是我决定还是偶尔刷刷,尽量每天刷一道题,并非为了去大厂,更多是为了提升自身逻辑能力,三十多岁,去大厂的机会很渺茫了。

二,开始面经(不到40分钟)
1. 讲讲binder线程池
2. 讲讲Android view的绘制流程,不是measure,layout,draw那套,需要从框架层讲起
3. 四大组件都会触发ANR吗?(陷阱题)
4. 内存泄露场景,我随便举了几个例子,对面不是很满意
5. 如何分析anr问题,虽然工作中经常排除ANR,但是不好描述,能用但是不熟悉
6. 使用过rust吗?或者用rust写过代码吗?

总结:
面试之前一定要了解招聘方的要求,
1. 是否需要算法,算法难道范围,
2. 面八股文技术还是项目经验,对于工作5~10年的程序员,项目经验应该没什么问题,如果是面试八股文,那需要准备了

面试这个还跟运气有关,技术这个东西,你不能保证自己所有的认识都是正确的,问的问题也不一定都知道,都很深入。如果跟面试官技术栈相似,成功的概率很大。当然随机应变能力也很重要。
全部评论
果然安卓社招是地狱
点赞 回复 分享
发布于 05-17 22:16 甘肃
我已经知道你有多难了
点赞 回复 分享
发布于 04-08 15:07 北京

相关推荐

1 移动互联网红利消退,增量市场转为存量竞争:过去十年,客户端开发(尤其是移动端)的爆发式增长得益于智能手机普及和移动互联网红利。然而,据工信部数据,2023年中国移动互联网用户规模已超12亿,渗透率接近饱和,新增用户增速降至个位数。市场从“争夺增量”转向“瓜分存量”,头部应用(如微信、抖音、淘宝)垄断绝大多数流量,新App获客成本飙升。中小厂商难以突围,导致纯客户端岗位需求锐减,企业更倾向于优化现有App而非从零开发新产品,甚至直接依托超级App的小程序生态(如微信、支付宝)降低开发成本。  2 跨端技术崛起,原生开发需求被挤压:为降低多端适配成本,企业普遍采用跨平台技术(如Flutter、React Native、小程序)替代传统原生开发。例如,闲鱼、美团等头部App已通过Flutter实现代码复用率超80%,而微信小程序生态容纳了数百万轻应用,进一步减少独立App的需求。原生客户端开发者若仅掌握平台特定技术(如Swift、Kotlin),竞争力将大幅削弱。即便在需要高性能的场景(如游戏、音视频),跨端方案也通过Skia引擎、原生模块混合开发等方式逐步渗透,原生开发的“护城河”日益收窄。  3 大前端融合趋势下,单一客户端技能价值稀释: 企业对开发者的技术要求从“专精单一平台”转向“全端通吃”。招聘需求中,“客户端+前端”“Android/iOS+小程序”的复合技能成为标配。例如,字节跳动等大厂已推行“大前端”团队模式,开发者需同时应对Web、Native、Hybrid等多种场景。纯客户端开发者若无法扩展技术栈(如学习JavaScript、Node.js),不仅晋升机会受限,还可能因团队结构调整被边缘化。这种趋势使得客户端岗位的“纯粹性”逐渐消失,转而成为大前端领域的一个子集。      
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
分享
一面1.hashmap的原理2.一个浏览器点击一个URL的全流程3.DNS是在哪里解析的4.讲讲activity的生命周期5.一个activityA点击ActivityB的生命周期6 .讲讲handler机制7.如果主线程用handler回调子线程,有什么要注意的8.View的事件分发的原理9.FrameLayout,A按钮把B按钮盖住了,谁响应事件10.一个ScrollView有两个全屏RecyleView,想要第一个RecycleView滑到底后丝滑的拉出第二个,讲讲思路和方法11.讲讲View的绘制流程12.算法题:层序遍历二面1.Java上有没有一本完整看完的技术书籍2.实习过程当中学习到了哪些3.用户角度的指标你有做一定的衡量吗,比如ab实验4.有没有遇见比较难解决的性能优化的卡点问题5.流媒体的业务场景你了解过相关的缓存类的优化吗6.那你的视频以什么形式来存储呢,比如一个视频我看到了五秒,但缓存到了十秒,我跳到了三十秒,这是个什么缓存形式呢7.Android操作系统上,每一层有哪些多媒体框架呢8.讲讲看过的源码里你讲讲很好的设计,抛开Glide的三级缓存9.现在让你做一个插件系统,你要让其他同学写的页面都在你的体系内成为一个插件,你要怎么设计,讲讲最核心的几个方法10.讲讲你觉得那些编译器的插件是怎么管理和提供的呢11.讲讲你用过的哪些设计模式12.操作信号上有异常信号,常见的异常信号你了解哪些13.Android程序的编译过程是什么样的14.如果让你去设计一个圆形的可以拖拽的进度条,进度条是渐变色的,怎么做15.布局优化怎么系统的来看和优化,从发现问题到解决16.渲染除了层级还有哪些因素影响17.你任务编排优化启动是怎么做的18.有些同步依赖异步,异步依赖同步,你怎么去管理19.讲讲你认为的卡顿,怎么优化,卡顿底层原理是什么20.讲讲HTTP的header字段里和缓存有关的字段21.跨平台学习过吗,做过吗22.如果给你一个技术,要求你三天内学会他,你会怎么做23.讲讲你认为自己的优点和缺点算法题 三数之和hr面,基本就是职业规划,实习时间,地点等老生常谈的问题,时间跨度六天,算上速通了
凌offer:明天HR面,接好运
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务