秋招安卓面经合集(头条、MIUI、快手、美团)

双非本科生,校招也投了不少,然而有的简历挂掉,但是大部分都是死在笔试上,虽然自认为笔试答得真的挺好的。截止到现在只面了头条、小米、快手和美团。昨天接到了金山的面试电话,但是我的校招应该结束了,也懒得去面其他公司了。然后通过笔试拿到面试资格的只有拼多多(八月初的笔试现在还没面试通知),其他的都是内推。
下面是自己整理的一些面经,基本我能回忆起来的都写上了,希望能帮到大家。因为我之前在北京美图公司实习,所以下面的都是在北京的现场面试。

头条抖音实习生面试(四面跪)

头条这个是在校招提前批前大概两周面的,是学长直接内推给Leader,虽然最后玄学挂掉了,不过面试体验还算不错。

一面

  • 层次遍历二叉树
  • 改变数组使其奇数在前偶数在后且相对顺序不变
  • Activity四种启动模式
  • 俩App的activtiy很奇葩的互相启动来启动去,然后依次按返回键判断当前activity
  • 强软弱虚四种启动类型
  • Handler原理
  • EventBus源码
  • 线程通信
  • 广播
  • 服务的分类
  • 如何与服务交互
  • 如何终止线程
  • 服务所在的线程
  • IntentService的原理以及好处

二面

  • Binder原理
  • 服务相关
  • 说说设计模式并且结合Android源码解释
  • OkHttp源码深入讲解
  • 责任链模式
  • 事件分发
  • 以及几个一面稍微重合的问题,就不写出来了

三面

旷日持久的Leader面,问的问题是在太多,下面是我回忆起来的一部分。而且Leader面一般问一个问题会问的越来越深,知道你打不出来为止。当时Leader还说我面的不错,然后就给挂掉了。。。

计组

  • Arm与X86的区别
  • Android使用的是哪儿一个
  • RISC与CISC
  • 两者的优劣
  • 大小端问题
  • 原码,反码和补码
  • 补码的优势
  • 浮点数的表示
  • 浮点数的运算

计网

  • TCP与OSI相比少了哪儿几层
  • 表示层和会话层的功能
  • TCP与UDP的区别
  • ARQ协议
  • 拥塞控制算法
  • 路由器与交换机的区别

编译原理

  • 并没有学过

软件工程

  • 问了好几个名词,然而我都没听说过

数据结构

  • HahMap的原理
  • 冲突,扩容等。。
  • Java中equal与hashCode的意义
  • 如果hashCode返回相同的值的后果
  • 如果equal返回true造成的后果
  • Set,Map讲讲原理

操作系统(问的很细)

  • 操作系统的功能
  • 进程与线程的区别
  • CPU调度的实现
  • 线程组成
  • TCB的组成
  • 线程怎样映射到硬件实现
  • 线程同步
  • Sync与Lock的区别
  • Android多进程
  • 如何实现多进程
  • 多进程的必要性
  • 多进程通信
  • 详细讲每种多进程通信以及相应优缺点
  • 进程调度

Android

  • Glide源码
  • Glide与其他图片加载框架的优劣
  • 三级缓存机制
  • Lru算法
  • 详细讲解Glide的图片缓存

Hr面

  • 对头条的看法
  • 谈谈短视频的未来

一周过去之后给Hr打电话问一下面试结果,Hr说让Leader再考虑考虑,下周一给答复,然后就没有然后了。

快手实习生面试(二面跪)

感觉快手面试画风清奇,难度也不低,跪了也是情理之中。

一面+二面

  • 二叉树交叉层次遍历
  • Activity四种启动模式
  • 任务栈相关
  • 消息分发
  • 如何使当前消息分发停止
  • EventBus扯好久,原理,优劣,使用场景
  • MVP,MVC,MVVM的对比,以及如何去改进
  • OkHttp源码
  • Glide源码
  • RxJava基础
  • 手写RxJava实现十个请求当请求全部完成打印输出,若有错误打印停止请求,并且处理线程切换
  • 手写AsyncTask
  • 事件分发机制
  • 如何实现一个不规则遮罩层实现遮罩层只盖住一部分,而未遮住部分可以响应事件(可以有多种方法)
  • 自定义View流程
  • 如何自定义View实现随着百分比改变View的背景颜色(例如下载进度百分之三十,左边百分之三十是黑色,右面为白色)
  • 跨进程相关
  • Binder原理

小米MIUI面试(五面offer)

一面+二面

一面和二面都很基础,而且很神奇的只问安卓,但是题量很大

  • 手写快排
  • 最大子序列
  • Activity的四个启动方法
  • Activity的生命周期
  • Fragment的生命周期
  • Fragment相比Activity有什么优劣
  • Fragment和Activity的交互
  • Fragment的使用场景
  • 本地广播的用法
  • 本地广播的原理
  • 如何让广播只发送给特定的App
  • Intent如何传递大文件
  • Intent传递超出范围的文件的后果
  • 如何传递大文件
  • 如何避免大图片OOM
  • 图片压缩的原理
  • Glide源码
  • 图片的三级缓存
  • Lru算法
  • EventBus原理
  • RemoteView使用场景及其方法
  • RemoteView能使用的View的范围
  • Notification能否使用自定义View以及原因
  • RemoteView原理
  • 简述事件分发机制
  • 事件分发中的方法名、方法参数以及不同的返回值的意义
  • ListView中如何使不同的Item加载不同的样式
  • ListView中convertview的作用以及意义
  • RecyclerView与ListView的区别
  • 如何解决ListView异步加载图片的问题
  • ContentProvider的用法,详细到方法
  • 跨进程通信的方式
  • AIDL原理
  • Binder原理,详细到方法
  • 启动一个Server和绑定Server的区别
  • 举例Server和绑定Server的不同使用场景
  • IntentServer与普通Server的区别
  • IntentServer的使用场景
  • IntentServer原理
  • 如何保证Server不被杀死
  • 实现多线程的几种方法
  • 几种动画
  • 如何自己去实现一个动画,具体到方法
  • 属性动画的原理

一面和二面是连着的,然后面完之后面试官告诉我leader不在,让我等消息。。。我当时还以为挂掉了,还好几天后接到了面试电话。

三面

  • 两个链表寻找交叉
  • 探讨Json解析器的实现(词法分析 语法分析 采用何种数据结构并且为什么等问题)
  • 图片的三级缓存
  • MVC,MVP,MVVC区别
  • Android中使用MVP而不用MVC的原因
  • 讲解MVP(手写代码)
  • MVVM与DataBinding
  • 实现监听手机拍照和截屏,悄悄地将一些数据隐藏进入图片并且可以通过图片恢复数据(写Demo发到指定Leader邮箱)

交叉面

感觉还是有难度的,面完之后面试官告诉我他之前都是面社招的,没面过校招,所以干脆就拿社招那一套面我了。。。面完之后面试官还劝我这么年轻不如去读个研什么的,感觉小米面试官都特别棒。

  • Fragment与Activity的生命周期
  • Fragment在哪儿个生命周期方法调用后真正加入Activity,在哪儿个生命周期方法getActivity()返回null或者不为null,为什么
  • 讲一下实习中觉得比较不错的东西
  • 以下是实习项目相关
  • 图片压缩
  • 图片缓存
  • 高斯模糊
  • 高斯模糊动态效果
  • 以上是实习项目相关
  • 双栈实现队列
  • Java内存模型
  • GC算法
  • 项目中遇到的内存泄漏类型
  • 解决内存泄漏问题的方法
  • MAT
  • LeakCanary
  • Handler内存泄漏的原因
  • 软引用与弱引用
  • 虚拟机栈以及栈帧
  • Binder原理
  • Java中的同步方法
  • Sync与Lock的区别
  • Sync的原理
  • Lock的内部实现
  • AQS的内部实现
  • CAS
  • startActivity框架层实现
  • ActivityMamagerService
  • ApplicationThread

五面

  • 总监大大和你谈人生

美团餐饮面经(三面offer)

美团是前几天hr打电话给了口头offer,说是月末发意向书和offer,不知道稳不稳。
然后美团问的很多问题都和上面的有重叠,所以我就没有都写出来。

一面+二面

  • 0~n求1的个数
  • n个点,要求画一个圆,使其可以覆盖一般的点
  • Sql多表查询
  • 消息分发机制原理
  • 线程通信
  • 四种线程池的配置
  • 线程池内部实现
  • JMM
  • GC算法
  • 为什么要Stop The Wrold
  • 为什么多次GC会卡顿
  • 内存泄露原理以及如何发现内存泄露
  • 自定义View
  • 举例measureSpec在父布局和当前布局分别使用精确数值和matchparent和wrapcontent的时候分别是哪儿种Mode,里面的数值又分别为多少

三面

  • 基本都是开放题目,也没什么固定答案
  • 以及谈谈以后的工作

感觉自己的秋招也差不多结束了吧,收到美团口头offer的那天,学校发了保研名单。所以大家觉得安卓的话是选择小米MIUI或者是美团餐饮还是说去保研深造呢?求大家给个建议,现在真的很迷茫。。。

#小米##美团##字节跳动##安卓工程师#
全部评论
肯定直接工作啊……读研究生就能找到工作嘛?表示现在研三连工作都找不到…
点赞 回复 分享
发布于 2017-09-10 13:17
工作,千万不要读研,你会后悔的。因为读研跟你想的完全不是一回事。 美团和小米都是好offer,工作了才能发现生活的美好。强烈推荐不要读研,不管基于什么目的,都不要读研,真的。
点赞 回复 分享
发布于 2017-09-10 18:16
安卓别读研了,赶紧工作。读研可以想着转算法,不过算法就是跟很多985科班学校竞争了。
点赞 回复 分享
发布于 2017-09-10 14:28
如果你要多研究一点学术问题,以后想搞算法,那可以去读研。不过很多大学的老师也是混日子的,水水的,即使是985高校。可能你找不到很好的导师的情况下,读研也长进不太大。到时候再去找安卓或者软件开发,岂不是很滑稽吗。。。
点赞 回复 分享
发布于 2017-09-10 17:10
这问题.....我三年前遇到过一模一样的抉择!
点赞 回复 分享
发布于 2017-09-10 13:30
大佬真的很棒,个人觉得保研好处多,只是还要思考,保研还走Android不,假如还走就算了
点赞 回复 分享
发布于 2017-09-10 13:31
工作吧
点赞 回复 分享
发布于 2017-09-10 14:23
大佬,安卓这个真心不用纠结,MIUI妥妥的。我们组不是framwork的,但是好几个人都给Google提过patch我会乱说?
点赞 回复 分享
发布于 2017-09-10 14:40
读研你的优势太小,所以不如工作。具体offer选择就自己看城市吧,如果都在北京建议找人了解小组情况,跟对老大很重要
点赞 回复 分享
发布于 2017-09-10 16:29
面经太长了啊老哥,分几次发效果好点吧
点赞 回复 分享
发布于 2017-09-10 16:39
楼主厉害了。我个人认为做安卓MIUI会更好一些,另外请教一下楼主安卓上面一些类的用法之类的问题是如何准备的呢?感觉项目中用到的不是很频繁,记的不是很熟,比如RemoteView这种
点赞 回复 分享
发布于 2017-09-10 17:01
大佬好厉害,大佬去读研,offer我买了
点赞 回复 分享
发布于 2017-09-10 17:12
楼主,请问你的binder原理是通过native层源码来分析机制,还是讲了下进程间通信的方式,比如aidl,messager?
点赞 回复 分享
发布于 2017-09-10 23:34
跪求回复,楼主,请问头条在你们学校宣讲后直接安排面试了吗?还是宣讲后走了安排在网上面试
点赞 回复 分享
发布于 2017-09-10 23:58
受益匪浅的面经,谢谢你
点赞 回复 分享
发布于 2017-09-11 15:38
大佬实习是在美图?
点赞 回复 分享
发布于 2017-09-13 22:53
膜拜中....
点赞 回复 分享
发布于 2017-09-13 23:07
如何使当前消息分发停止?这个问题怎么答啊
点赞 回复 分享
发布于 2020-02-13 17:15

相关推荐

12 118 评论
分享
牛客网
牛客企业服务