Android面经:百度腾讯滴滴美团头条网易搜狐华为链家小米拼多多

本文记录了一位Android开发者在秋招期间面试百度、小米、今日头条、华为、拼多多等知名公司的经历,涵盖了Android客户端开发、面试技巧及常见问题。面试涉及内容包括Android基础、性能优化、蓝牙连接、设计模式、数据结构、网络协议等,同时也分享了面试官的评价和面试者的反思。面试官通常关注手撕代码能力、项目经验和对技术的深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

素材选自:无名huster

去年秋招面试了一些公司,现在把面经和面试体验发一下,大佬们共同学习。

由于水平比较差,所以才获得几个offer(小公司不算):百度,美团,小米,华为,链家,百度外卖(后期获得头条,拼多多Offer)

职位都是:android客户端开发

最后有一些资料,是准备面试的知识汇总,数据结构,计算机网络啥的基本上都有了。嗯,自己收录、整理和分类的,还请尊重知识产出。

小米

image

8月29日 小米一面 (1小时20分钟)

  1. 讲一个你印象比较深刻的项目
  2. 讲一下Volley框架的实现机制
  3. BLE蓝牙的使用流程
  4. 设计模式你说下
  5. binder机制应用层面上说下
  6. View事件分发机制说下
  7. android性能优化说下(布局优化、内存泄露、bitmap压缩等等…)
  8. eventBus框架是干什么用的,实现机制?
  9. ANR和crash遇到过么?怎样解决
  10. 编写代码(给一个网址,编写代码)

输入一个n*n的正方形矩阵a,要求填充逻辑代码,将矩阵a顺时针旋转90度

8月30号 小米二面(1小时20分钟)

  1. 自我介绍
  2. 你做的这几个项目挑出一个来讲一下
  3. 步态分析器这个项目的话,你感觉核心实现是什么?
  4. 讲一下蓝牙有几种方式,你用的BLE的蓝牙流程说下
  5. 假如说你的app现在使用了一个A的第三方库,那么为了以后可以容易换成B的第三方库,你会怎样去做减少后面的修改难度?
  6. android的多线程你知道多少?介绍下
  7. asyncTask的内存泄露你知道么?
  8. 给一个网页,手撕代码

题目:一个字符串,开始可能有0-N个空格,然后在这个串中每个单词之间有1-N个空格,最后的结束也有N个空格,现在要求最后的输出结果是开始不能有空格,每个单词之间只能有一个空格,最后全部是空格的格式

一、先实现,无要求

二、空间复杂度要求为O(1),再优化

9月20号 武汉现场面三面 40分钟

  1. 自我介绍
  2. 讲一个你熟悉的项目
  3. 手写代码:一个数组中的数字,有大有小,如何用最少的+1或者-1的操作消除数组中的数字差异过大的情况,返回你的操作次数
  4. intentService了解么?说一下他的用处和原理
  5. intentService和service的区别
  6. intentService现在要求让他的任务可以并行执行,你会怎样去实现
  7. asyncTask说下主要的方法
  8. activity销毁之后,那么asyncTask如果还在执行,那么会造成什么问题
  9. activity的旋转屏幕的生命周期变化
  10. 手写代码:一个单链表,每三个节点反转一次
  11. 你有什么想问我的么?

面试体验:

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

今日头条

image

9月25号 今日头条 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了,有问题么?拿着我的简历然后问我是不是跨专业?呵呵哒,算您会挖苦人。。直接告诉他,今天就到这吧,面不起我还可以躲得起。。

百度

image

8月24日 手机百度电话一面 34分钟

  1. 二叉树的非递归实现(前序、中序、后序)
  2. 给一个NN的矩阵,找出22矩阵的和的最大值,时间复杂度?最优?
  3. android蓝牙连接(传统蓝牙,BLE蓝牙),如何连接?
  4. JVM内存分区(每部分异常会报什么错误?)
  5. JVM垃圾回收算法(详细介绍)
  6. JVM垃圾回收器(详细介绍)
  7. https连接过程,握手过程
  8. 对称加密,非对称加密
  9. 三次握手过程
  10. android消息机制
  11. android事件分发机制

8月29日 百度二面(一小时50分钟)

  1. 讲一下你做的这些项目里面哪个印象最深刻
  2. 你负责的这些部分讲几个你认为比较重要的点
  3. Volley框架机制说下,你能抽取出(学到
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值