写点什么

2020 这一年的 Android 面经汇总 (百度、腾讯、滴滴,移动端跨平台开发方案

用户头像
Android架构
关注
发布于: 2021 年 11 月 05 日

面试体验


小米每次面试基本上必备的就是手撕算法,so,一定要做好点准备,难度都一般,不是难的那种。另外从 android 的技术上来说,从我的面试经历来说都是一点即过,面试官没有多少深入的挖掘知识点。面试官都很 nice,有些算法上卡着了,会一步一步的引导你。赞一个


[](


)今日头条


======================================================================



今日头条 1 面 30 分钟


  1. 自我介绍

  2. 两个有序数组,求这两个有序数组中最大的 K 个数(要求时间复杂度空间复杂度较低)

  3. 对于栈这个数据结构,实现以下几个方法:push,pop,max(要求空间复杂度较低)


今日头条 2 面 1 小时


  1. 自我介绍

  2. android 事件分发机制说下

  3. touchSlop,touchDelegate 的理解

  4. viewStub,merge、include 的理解

  5. java 引用级别

  6. 用过什么第三方库?(用过 eventBus,Volley。知道 RxAndroid,okHttp 等。。写过 demo)

  7. 用过什么编译器

  8. 内存泄露原因(从 JVM 开始和他说起)

  9. gcRoot 有哪些?

  10. 如何检测内存泄露,有什么方式

  11. 算法:一个有序数组,寻找 k 值出现的第一个位置(针对算法要求最优)

  12. 算法:每个人都有工作时间区间,现在有 N 个人,他们每个人分别有 K 个工作区间。现在要找到一个大家都空闲的时间段进行开会,那么如何来找到这些空闲时间段?讲出思路和时间复杂度,空间复杂度


面试体验


武汉现场面,一面不是 android 开发面试官,应该是 java 的,所以就问了算法了。每个算法不是很难,但是会让你写最优,只有思路不行,必须要完整写出来。二面是 android 面试官,嗯,总的情况的话答下来有 80%左右吧。前面都还好,最后我问他问题的时候我问他对我评价如何,然后他说我对技术不热情,问我是不是跨专业?我一脸懵逼,,理由如下:你知道目前的新框架为什么还在项目中用旧的框架?你项目中还有用到 eclipse 的,为什么不用 androidstudio?然后我给他说:我选择框架只选择针对我这个项目合适的框架,并且框架原理相同,我知道了一个原理了其他的也就是一样的了。并且我平时也用过新框架自己搞 demo;第二:我进入实验室的时候就是 eclipse 的项目,我是接锅的。后面的我自己搞得项目就用 androidstudio 了,平时 demo 我也是用 androidstudio 了,有问题么?拿着我的简历然后问我是不是跨专业?呵呵哒,算您会挖苦人。。直接告诉他,今天就到这吧,面不起我还可以躲得起。。


[](


)华为


====================================================================



华为优招


一面


上来是做自我介绍,之后开始问项目,讲项目中的认为的难点,印象深刻的地方。


即时通讯 IM,BLE 蓝牙连接


针对简历继续问


android 消息机制 view 分发机制 android 性能优化 binder 机制 设计模式(包含设计原则)


android 相关


广播的静态注册与动态注册 广播的有序与无序 service 的如何保持不被杀死 内存泄露(handler 等…)


java


== 与 equals 区别 stringBuffer 与 stringBuilder 区别 hashmap 的原理


网络


post 与 get 区别 http 与 https 区别 网络错误码


二面


聊人生。。。


[](


)拼多多


=====================================================================



拼多多 一面(30 分钟)


  1. 做自我介绍

  2. android 布局说下

  3. android 四大组件说下

  4. activity 和 activity 传输数据怎么做

  5. 使用 intent 传输数据对数据有什么要求

  6. service 和 activity 的区别说下

  7. ANR 了解么?如何解决?

  8. 给你一个数组,里面都是 long 类型数据,有重复数字有空格,要求去重,空间复杂度 O(1)。说下思路

  9. 跨进程通讯你说说看有哪些

  10. binder 机制说说你知道的

  11. 常用的排序算法说下

  12. 自定义 View 实现,应该注意什么

  13. View 的生命周期—如果 activity 被重建,那么 view 的生命周期怎样变化

  14. activity 横竖屏切换,对应的 view 的生命周期

  15. activity 横竖屏切换,activity 的生命周期

  16. activity 横竖屏切换,activity 一定会调用 onDestory 方法么?

  17. 通过在清单文件中进行设置不让他进行横竖屏切换的话,activity 是如何知道进行了横竖屏切换

  18. 有什么想问我的?


二面


  1. lambda 编程知道么?

  2. afinal 框架?呵呵哒

  3. volley 中对 cookie 的处理?呵呵哒

  4. GC 回收算法

  5. http 报文 cookie

  6. GC roots 有哪些

  7. GC roots 遍历递归

  8. 同步,异步函数函数修饰符修饰符?future


面试体验:


拼多多一面远程电话面试,基本上都是基础中的基础,没有什么压力。所以很简单的进入了提前批武汉现场技术终面。技术终面那天先面试的 HR,HR 很 nice。对于技术终面面试官来说,面试体验到巨差:据说是数据挖掘和客户端的 leader,然后我面试客户端方向,我做自我介绍的时候说道 14 年实习的项目,然后他问我 14 年用的框架源码?14 年的框架早就淘汰了好么?我说我可以讲下现在我项目中的网络库 volley 的实现机制,然后他没搭理我,问我 volley 这个库他是如何处理 cookie 的?我勒个去,有没有搞错?volley 没有对 cookie 进行过处理好吧?源码都看过做过解析的,然后他不信。。之后拿出我之前的题目让我做,任务调度的那个题目,一共是三问,面试官问我有没有问题,我在他的提醒下改了前两个题目,第三个题目还没有改就说今天到这结束了,好吧,那就结束吧,我也想结束。。


[](


)网易


====================================================================



网易一面:40 分钟


自我介绍……


  1. 项目挨个问了下(准备充分,无压力)

  2. volley 框架说下

  3. 手写一个生产者消费者

  4. 手写 fragment 生命周期和 activity 生命周期,并把生命周期一一对应上。

  5. 热修复说下,几种方式?各自原理?

  6. 插件化了解么?说下,基本原理知道么?

  7. 混合开发了解么?

  8. A 应用如何打开 B 应用的界面?

  9. 安卓性能优化有哪些?

  10. recycleView 说下

  11. activity 与 fragment 交互,如何互传数据

  12. binder 说下

  13. activityManagerService 知道么?说下

  14. android 中的广播说下,粘性广播知道么


网易二面:基本没问项目,完全面试官自由发挥。40 分钟


无自我介绍,直接开怼。


  1. popupwindow 中是否可以再创建 popupwindow?为什么?

  2. dialog 中是否可以创建子 window?为什么?

  3. dialog 创建为什么传入 activity 的 context 而不是 applicationContext ?

  4. fragement 和 activity 交互方式

  5. fragment 可不可以在构造函数传递参数?使用 setArgument 的原理?

  6. 两个应用程序 A 和 B,A 要用 B 的登录信息,怎么做?

  7. contentprovider 是如何保证操作数据库原子性?

  8. 加载进来的 class 类是否可以动态修改?

  9. 热修复原理有哪些?说下

  10. binder 是在 jni 层怎样实现的(一次拷贝)?

  11. client 使用 serviceManager 可以找到对应的 service,那么自己写的 service 的话,client 是怎样找到的这个 service?

  12. 安卓性能优化你知道有哪些?

  13. 一个后台任务栈,从上到下 A B C 三个 activity,内存不足回收。那么从后台到前台打开是哪个界面?为什么,原理?

  14. 子线程是否可以更新 UI?那为什么安卓要求不能在子线程更新 UI?


结束,几分钟以后问 hr 小姐姐:很遗憾……


面试体验


一面面试官很 nice,基本上问的问题也都答上来了。也乐于听你说的话。二面面试官上来没让自我介绍,拿一个笔开始划你的简历,但是基本上也没有问过简历上的项目。问的问题有些很刁钻也很深入。如果在开发过程中没有真的去搞懂一些 api 的话,会很吃亏。感觉面试官技术有深度,对于一些项目 api 中的细节有比较深的认识。有些自负,问问题都声音小的很。最后都不让问问题。很 nb 的样子


[](


)美团点评


======================================================================



美团点评 1 面 40 分钟


  1. 自我介绍

  2. 手写代码:View 树遍历(有 viewGroup 和 view,打印所有的 view 还有他们对应的层级)

  3. 在列表里,如何实现多种不同的布局?有哪些方法

  4. java 语言中的现在的一些新特性你知道有哪些

  5. java 反射和注解你知道么?讲下

  6. EventBus 的原理说下

  7. 现在有一个书签,书签有三种类型,现在你需要提供一个功能类,针对于不同的需求进行不同的书签选择,你会如何去实现?

  8. 网盘中有 10 个文件,现在用户可以任意拖动这些文件,改变它们的排序,怎么设计上传的接口,使用什么样的数据结构进行存储

  9. 你在开发中使用的是哪种结构框架?有几种结构框架,介绍下

  10. 平常是如何学习的?

  11. 你有什么想问的么?


2 面 40 分钟


  1. 自我介绍

  2. 你认为什么样的代码是最好的?你会注意些什么?

  3. 手写代码


判断一个字符串是否为一个合格的密码,一个合格的密码需要满足如下条件:


  1. 长度必须大于 6;


  1. 首字母必须为大写字母


  1. 只能包含 ‘a ~ z’ 或 ‘A ~ Z’ 或 '_‘或’0~9’


  1. 至少有两种不同类型的字符


  1. github 账号有么?

  2. 使用什么编译器进行开发?gradle 了解么?关于他的配置文件你简单介绍下

  3. 设计模式你在日常开发过程中用到过什么?有没有特别印象深刻的设计模式

  4. 手写代码:有一个类似于 exel 的列命名规则的字符串,现在给你这样的一个字符串,需要你给出这个串后面的串是什么?

  5. 你看过哪些源码?你在里面学到了什么?

  6. 当时为什么选择 volley 这个 http 库?

  7. 你在项目中开发的话,有什么很难解决的 bug 吗?你是怎样解决的

  8. 平时你是怎么学习的?

  9. 你有什么想问我的?


3 面 40 分钟


  1. 自我介绍

  2. 你所在的实验室叫什么名字?

  3. 你在实验室的话,没有让你出去实习,那么平时你是怎样学习进步的

  4. 你们现在研究生毕业不考虑到高校任职?现在一流大学去当老师都是什么要求

  5. 本科和研究生对比的话,你感觉你的成长或者感悟在哪里

  6. 本科同学的毕业去向

  7. 玩游戏么?王者荣耀什么级别?现在不玩了等级不下降?

  8. 现在有几家 offer

  9. 百度的测开岗位你有什么看法,你对这个岗位满意么

  10. concurrent 包下的一些类有了解么?

  11. 画一下 concurrentHashMap 的结构和 hashMap 的结构

  12. 对于 concurrentHashMap 来说的话,同时两个线程的 put 操作会有什么影响?

  13. 对于 concurrentHashMap 来说的话,同时两个线程的 put 和 get 操作会有什么影响?

  14. 你在项目中用过这些类么?为什么知道他们?

  15. 读写锁你知道么?说下

  16. 你有什么想问我的


4 面 HR 30 分钟


  1. 自我介绍

  2. ……


面试体验:


问的一些问题还是挺开放的,注重你的思路。一些题目还是有些深度。但是大部分还是可以轻松搞定。本来因为一些原因晚去了面试,但是还有面试机会,谢谢帮助过我的那个萌妹纸~~


一下午一口气面到三面,爽快三面经理面也是一个爽快人哈哈,要不是太晚了就直接面试 hr 了,无奈,只能第二天面试 hr 了。。最后走的时候三个面试官和我说再见,挺温馨~


[](


)腾讯


====================================================================



腾讯一面 30 分钟


  1. 自我介绍

  2. 你的工作经历太适合我们这个岗位,你还是想从事 android 开发么?——(应届生无所谓,知识面要广,需要多接触东西,不抗拒新技术,新方向)

  3. 我们是做前端游戏的,如果你要是还是坚持 android 开发,我可以考虑给你换面试官,问我的看法-(我还是


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


想尝试下目前这个岗位,如果感觉我合适的话,我希望接着进行面试,如果感觉不可以,那就麻烦给我换岗吧)


  1. 你做 java 多长时间了,学习 android 开发多长时间了?

  2. 一个应用程序,你在开发的过程中会怎样去实现代码架构和项目结构上的安排?

  3. 你平时是怎样学习 android 的?

  4. 技术方面看过一些什么书籍呢?

  5. 你感觉做程序开发,以你的经验看来,你认为开发过程中有什么感悟或者认知?

  6. 学习过其他语言么?—(没有,但是我对我的学习能力是有信心的。语言只是一种工具,我不认为他是我的一种负担)

  7. 你的代码编写风格是怎样的?

  8. 用过什么设计模式?

  9. 你说的这些设计模式中,就单例模式而言,你感觉他为什么会有这样的设计模式?有什么优点和缺点?

  10. builder 设计模式你感觉他解决了什么问题?

  11. 你如何看待你的职业规划

  12. 你有什么想问我的么?

  13. 面试官怎样看待非对口方向的应届生求职?

  14. 假如入职之后,公司是否会给安排业务上的老员工进行帮扶?

  15. 面试官对我的评价?


腾讯二面 25 分钟


  1. 自我介绍

  2. 做 android 多长时间了?

  3. 你对 android 平时的学习是怎样进行的

  4. 你项目中的某某点用的是什么技术

  5. 你们导师下面有多少学生?

  6. 平时你学习的话都看些什么书

  7. 你入职之后有什么学习计划?

  8. 你有什么优缺点?

  9. 你感觉你和其他同学们比起来你有什么优势?有什么缺点?

  10. 你有什么想问的么?


面试体验


好吧,聊天到了二面,确实是该挂人的时候了,该说再见了。应该是招够人了,所以走走过场。恩,还不错吧,至少没有遇到过其他同学面试官上来怼人的情况。面试官还是挺好的,面试体验蛮好再见腾讯


[](


)滴滴


====================================================================



滴滴一面 1 小时(愉快的氛围中 GG)


  1. 设计模式说几种

  2. int 和 Integer 区别

  3. int 类型范围推导

  4. synchronized 的原理

  5. synchronized 场景题目(修饰非静态方法,修饰静态方法,修饰变量)

  6. static 的你对他知道的所有东西说下(JVM 类加载,子类父类调用顺序,静态变量,静态方法,静态内部类,静态代码块和非静态代码块)

  7. 为什么非静态内部类有时候会造成内存泄露?

  8. 子类继承父类,父类中有 static 类型的方法,子类实现同样的方法可不可以(加上 static,不加上 static)

  9. 计算两个 double 数字的差值,你有什么想法,写出方法代码出来。

  10. SQL 语句,,,各种 SQL 语句。。。恩,好吧,android 表示很少用到 sql…然后很差,,

  11. ANR 你知道有什么

  12. 插件化容器化


之后开始聊天,聊人生,,,面试官人挺好,说一开始做后台,后来做 ios,现在接触 android 几个月。恩,好吧,果然这么多 sql 语句不是凭空出来的,哈哈…就挂在了 sql 上,和滴滴说再见…


[](


)搜狐


====================================================================



搜狐 40 分钟


  1. 面试官很 Nice,让我坐下,然后看我简历,期间让我做自我介绍

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
2020这一年的Android面经汇总(百度、腾讯、滴滴,移动端跨平台开发方案