五年android开发的面经总结

冬天的毛毛雨 冬天的毛毛雨     2022-12-30     695

关键词:

TOP

转眼就到了开学季的9月,而我毕业走出学校已有五年了。真想在回到大学时代,去谈一场轰轰烈烈的恋爱…… 而不会像现在是一个没人疼没人爱的单身狗!

在这个五年的时光里,我一直在Android 行业摸爬滚打,待过的公司差不多有五六家了,待得最久的一家时长好像是一年多,基本都是中大型的公司。在进入这些公司前,少不了的肯定是面试环节,而在这些年内去面试的公司也比较多。如何要说具体多少家公司的话,说实话我自己也记得不是很清楚了。但是近一年中我去面试的公司,我是有所简单的记录。

想在金九银十面试的这个季度,通过这篇文章分享给大家做个参考,失败和成功的面经案例都有,我们一起往下看吧。

面试前期准备

相信大家在面试前都会一个备战的预习期,因为大家都想把Offer拿到手,然后自己进行去挑选公司,这个周期的长短不宜过长。其实在这个期间最重要的是,给自己做好一份优质的简历,HR或者面试官第一眼见的就是你的简历,从简历中进行筛选确定是否通知你来面试,这个是最关键的一步。二就是对自己简历中所记录熟知的技术点和项目进行复习,从网络上去找相关的面试题进行刷。还有就是回想之前做的项目中遇到的一些问题,自己是如何却解决,这个是面试官跟你聊项目中可能会问道的。

面试过程(不分时间先后)

小米(三面)

一面

两个面试官(一个我们小组Android的leader,一个是同事),上来先当着他们的面写了一个笔试题(都是很基础的题没啥难度,算法题也就是一个list的反转,但是小米比较注重手写代码的一些细节,所以要考虑好该判空的判空,还有防止越界啥的问题),然后就开始问,90%都在问Java基础(GC的机制,GC算法,内存相关的问的比较多,多线程线程安全问题是如何发生的,HashMap的原理)

二面

我们组的主管(全程聊项目,没有问技术相关的了,然后介绍了一下这个部门的工作内容啊之类的)

三面:

本来应该有三面…三面是我们部门的领导,但是因为一些其他的原因吧,三面就没有面直接过了

感受:

其实自已算是运气好,遇到的问题算是偏容易的,要多看看算法方面的视频


腾讯音乐(5次技术面)

面试内容

1.activity和service的生命周期与使用场景

2.thread和服务的差别,单例的类型,多少种?优缺点说一下死锁的原因,与场景,单例的使用场景

3.使用过啥来源框架,有啥特点,为什么,从中学到了什么。

4.kotlin的特点与java的差别,

5.三种架构的区别handler和view的原理,

6.线程池原理与种类

7.javastackoverflow的原因

8.性能优化和卡顿优化的实际案例

9.虚拟机的构成与原理

10.热修复和插件化的区别与原理

11.rxjava源码

12.多线程应该注意的问题

13.databinding原理

14.binder原理

15.网络方面知识

16.平时解决问题的流程

感受

掌握基础知识很重要,算法也有问到,还有就是开放式问题,他想知道我怎么解决问题的一个过程,怎么发现和定位,平时学习的方法。


美团

1.java的话static变量各种访问可见性,final关键字的作用,封装继承多态展开问,多线程通讯,线程池原理,线程同步方式,jvm内存模型,常见的gc算法,类加载过程

2.网络的话主要是问的https,http1/2/3的区别特性
Android问了一些常见的handler原理,recycleview缓存机制,view事件的分发

3.glide缓存机制

4.然后引申如何实现我LRU。内存泄露和如何预防处理,

5.算法的话,有top-k排序(堆排序,位图法),旋转输出矩阵,链表逆序,hashmap concurrenthashmap原理,线程安不安全,它的锁机制等等


华捷艾米(基础面)

1.冒泡排序,堆排序算法
2.平衡二叉树和红黑树的区别
3.多线程,用过哪些并发api?踩过哪些坑?
4.C++的 指针和引用的区别
5.手写对赋值运算符重载
6.GC 会不会把所有线程暂停?
7.GC不同时期有何区别?
8.说一下Handler Looper的休眠机制
9.设计一个算法,已知某年某月某日是星期几,求另外年月日对应的星期几。


厦门美图

1.多线程

2.handler

3.网络请求

4.性能优化

5.view绘制

6.opengl部分

7.camera相关

8.自定义view

9.asyncTask

10.图片加载框架原理


汇丰银行

1.线程池的工作原理
2.synchronized锁方法和锁静态方法有什么区别
3.锁的理解,什么是乐观锁,悲观锁,可重入锁。
4.View的事件分发流程
5.View的三种测量模式理解,什么时候会发生Excatly
6.HashMap的工作原理。
7.怎么实现多线程下载,断点续传怎么实现。
8.rxjava的背压了解吗
9.kotlin的协程,怎么做到和rxjava的zip操作一样,等待所有结果后再处理。


盒马生鲜

1.bitmap在内存中的大小计算
2.系统级的全局异常如何捕获打印堆栈?
3.APT技术原理(这个居然忘了?)
4.如何中断一个线程?AsyncTask如何中断?(加标记位中断)
5.CoordinatorLayout滑动机制?两个CoordinatorLayout嵌套如何通过事件分发传递处理滑动?
父View中嵌套子View,快速滑动fling状态,如何处理在父View到顶部停止滑动,子View继续滑动?
6.Flutter热重载原理
7.组件化用了什么技术?实现原理是什么?
8.如何分析主线程中的消息队列耗时情况
9.绘制优化、APP启动优化,activity跳转启动速度优化?(网络请求可不可以放在setContentView之前?)
10.如何实现旋转动画?(帧动画、属性动画、gif、Lottie动画框架)
11.GC分代回收介绍?Eden和survivor为什么是8:1?老年代存活下来的会进入永久代么?
12.如何修改JVM内存分配?(AS中在vmoptions修改,gradle.properties)
13.Android9.0隐藏的属性方法是咋反射获取的 (原理居多)


小红书

(1)concurrentHashMap 如何加锁的
(2)measure参数详解,view设置wrap不起作用
(3)Bind service,如何实现保活
(4)两个进程act,如何加快启动速度
(5)性能优化(面试官老插嘴,都说不上话)
(6)Eventbus如何实现线程的切换
(7)jetpack的Navigation的xml引用,在什么时候调用的?
(8)Inflater.inflate如何实现xml转java的(framework),方法中的各个参数含义。


京东(凉经)

(1)如何设计模块,组件,sdk,如何考虑
(2)说说你项目的架构,为何这么设计或这么考虑
(3) 说说内存泄漏,越多越好
(4) 说说你的技术难点,如何解决,如何思考
(5)apk安全,你如何考虑
(6)act+fragment的完全生命周期(不是单个说哦)
(7)京东北辰:recyclerView源码,必会,包括缓存如何实现,哪几个缓存,运作流程等;各种notifyXX的原理,触发哪些重绘;如何实现下半部分item不移动,上半部分的item高度变化的实现?


探探(凉经)

(1)手拖动View,手松开后完成一个泡泡破裂的动画效果(本质是view事件分发机制+动画选型,分发机制哪个方法处理什么参数,之后怎么触发动画效果等,问的灰常具体,吐了)
(2) 自定义view相关,invalidate,postInvalidate,requestLayout,深入的说说framework层的流程原理
(3)kotlin 协程深层原理如何实现的
(4)dcl是否线程安全?哪一块出问题,为什么volatile能实现防止指令重排,指令级别如何实现的,对象的创建过程等(多家都问了,很深入)


shopee基金

shopee一面:

1.java的四种引用分析
2.synchronize和volatile各自的机制是怎样的
3.handler源码原理相关的问题
4.自定义view的绘制,事件分发机制,怎么解决滑动冲突,activity启动的过程
5.https单向认证,对称加密和非对称加密,在浏览器输入url发生了什么
6.jvm相关,如new一个对象的过程发生了什么,垃圾回收机制
8.问了关于线程池的一些问题
9.跨进程通信有什么方案
10.binder机制
11.hashmap源码
12.用什么方案缩小apk体积
13.recyclerview和listview对比
14.做过什么内存优化,性能优化
15.okhttp源码设计原理
16.手写一道算法题,关于DFS+回溯算法的

shopee二面

1.问了之前的一些项目经历,在团队做了什么,主要负责哪一块,选择一两块自己认为做得最好的展开讲讲,过程中会打断问问题
2.有没有做过插件化,做到什么程度,讲讲原理
3.由于我之前项目有用到mvvm和jetpack,问了一些jetpack组件相关的源码,和mvvm跟mvp的对比
4.又问了okhttp,缓存拦截器原理是怎样的
5.项目中做过什么性能优化,具体说说
6.平时项目中用到什么设计模式,挑几个常用讲讲
7.聊人生聊职业规划


WPS

1.线程切换(handler机制)
2.多线程,几种锁,有什么区别
3.如何实现线程排队
4.Https加密机制
5.项目经验
6.Okhttp原理
7.设计一个线上日志收集系统
8.项目经验
9.Activity启动流程
10.性能优化
11.Viewstub实现原理,自己设计一个类似的
12.Https如何保证安全的,如何防止中间人攻击,可以伪造证书吗
13.Looper死循环为什么不会导致主线程卡死
14.epoll机制是怎么样子的
15.热修复资源id冲突怎么解决
16.AIDL如何实现的
17.Binder原理


字节跳动

一面:

1.SharedPreferences线程安全吗
2.SharedPreferences多进程调用会有问题吗?如果需要多进程调用,怎么实现
3.自己在项目代码中写一个java.lang.String类会有问题吗
4.内存泄漏除了用LeakCanary还有没有其他办法检测
5.如何监控线上内存泄漏
6.native的内存泄漏怎么监控
7.如何监控线上OOM,如何知道是哪里造成的OOM
8.Error和Exception的区别
9.怎么监控应用中的线程,都是在哪创建的(AOP)
10.post一个延迟5秒的消息,怎么做到5秒后才执行的
11.同步屏障原理
12.ContentProvider初始化的时机
13.组件化-A组件要调用B组件的某个功能,怎么调用(回答了接口下沉,AutoService等等)
14.组件化-如果不用接口下沉,没有任何依赖,怎么方便的调用(不让用反射,太麻烦)
15.A进程调用B进程的b方法(AIDL实现的,B进程有个服务),B进程没有创建的情况下,B进程中是b方法先执行还是Application的onCreate方法先执行?16.如果b方法很耗时,A进程会被阻塞住吗
17.算法:写一个二叉树的层序遍历
18.数据库的索引原理
19.B+树和二叉树的区别,性能对比
20.HashMap的缺点,怎么解决
21.ArrayMap的原理,为什么内存消耗低
22.flutter与其他跨平台方案对比,flutter为什么好(除了跨平台),跟原生的性能比怎么样
23.硬件加速的原理

二面:

1.触摸事件中的cancel事件什么时候触发
2.handler延时消息怎么实现的
3.主线程有好多handler,分发消息的时候怎么知道给哪个handler
4.主线程每5秒钟发一个需要执行10秒的消息到子线程,会发生什么
5.实现了AIDL接口的服务的方法是运行在哪个线程?有多个方法,是不是运行在同一个线程?
6.Binder通讯中,客户端调用服务端是阻塞的吗?怎么做到不阻塞?
7.bitmap的像素数据在哪里?一直申请bitmap会oom吗?
8.view的绘制刷新机制是怎么样的?vsync信号发出后怎么触发绘制逻辑的?
9.页面静止的时候,onDraw会执行吗?vsync信号会发吗?
10.vsync信号发出的时候,怎么控制需不需要onDraw?
11.用canvas怎么绘制一个倒影
12.对canvas做矩阵变换的matrix有哪些参数配置
13.做过哪些性能相关的优化
14.怎么分析anr问题
15.如果是死锁导致的anr,在日志上怎么看
16.应用启动速度怎么优化
17.没有内存泄漏的情况下,应用占用内存比业内其他应用内存要多,怎么分析优化
18.布局层级太多怎么优化
19.页面内有一些不需要每次都显示的view,怎么优化
20.recyclerview里面的图片显示速度比较慢,怎么优化
21.做过的最复杂的项目
22.工作几年中自身提升比较大的地方
23.JavaScript中bind,call,apply的区别
24.RxJava中的背压是什么意思
25.flutter有了解吗
26.最近有学习什么
27.mvvm与mvp的区别
28.装饰模式和代理模式的区别

三面:

1.介绍在上一家公司做的app,app的crash率是多少
2.详细介绍最有技术难度的项目
3.应用crash的本质原因是什么
4.重写和重载的区别,应用场景
5.hybrid开发中遇到了什么问题
6.线性布局和相对布局那个性能更优
7.js和java之间传递大对象会怎么样,怎么保证传输性能
8.activity横竖屏切换会发生什么?怎么避免

其实还有几家小型公司的面试,我就不在此一一的说明了,因为文章篇幅长度有限,所以就挑选了几个自己觉得面的还不错的公司进行跟大家分享,大家可以参考这些面试题,去进行记录学习,可能对你将来面试是有帮助的。

推荐分享

之前在做面试准备的时候,从网上查找收集整理了一些 Android 开发相关的学习文档、面试题、Android 核心笔记等等文档,进行刷题复习 Android 相关的知识,通过这次的面试效果检测,也体验出了结果。这次面试能通过一半原因是自己的技术还过的去,另一半的原因就是吸收了这些学习文档精华。

所以我想拿出来跟大家进行分享,希望能帮助到大家学习提升,在面试中能顺利通过。如有需要参考的可以直接去我 CodeChina地址:https://codechina.csdn.net/u012165769/Android-T3


五年android开发面经总结

背景描述这是来自一位粉丝朋友的面经分享,他在Android开发行业摸爬滚打5年多的开发,呆过的互联网公司有三家,均从事的Android开发的工作。最后离职的一家公司也是做的最久的一家,工作了将近3年多时光。废... 查看详情

java开发三年的面经总结,一份面试阿里网易的面经(高开岗)

前言15年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要特别感谢点... 查看详情

大佬有用的面经总结

清水河畔上大牛的面经10年大牛的面经直接上链接地址专业技能的问题:Linux编程---所有互斥方法,多线程编程,进程间通信网络编程---网络编程范式,非阻塞connect,TCP/IP(time_wait状态,如何更改这个状态的时间,OSI/TCP/IP)简单数据... 查看详情

五年android开发面经汇总

...人爱的单身狗!在这个五年的时光里,我一直在Android行业摸爬滚打,待过的公司差不多有五六家了,待得最久的一家时长好像是一年多,基本都是中大型的公司。在进入这些公司前&# 查看详情

“烤面经了“~2022android最新大厂面试真题总结,先收藏了,可带劲了

前言我今天来分享一篇Android开发的面经技巧方法和面试题的总结分享,该文的面经来源于本人和朋友,文中公司有腾讯、网易、美团、哔哩哔哩、百度等知名公司。面试攻略一.简历攻略简历的投递,可以通过腾讯招... 查看详情

3年android开发在上海的面经之旅

作者:海宝面试经历面了一些上海互联网公司,例如爱奇艺,阿里巴巴,京东,某安,百度,喜马拉雅,得物等等,记录了部分面试真题。大部分可以自行搜到答案,有疑问的可以留言交流&... 查看详情

2021年android开发岗面经汇总(腾讯网易哔哩哔哩等)

##前言我今天来分享一篇Android开发的面经总结分享,该文的面经来源于本人和朋友,这一年中面试经典记录,文中公司有腾讯、网易、美团、哔哩哔哩、百度等知名公司。话不多,看下方面经吧!腾讯社招面... 查看详情

2018网易的初级游戏开发工程师的面经

2018网易的初级游戏开发工程师的面经自我介绍:先是自我介绍,简单介绍了一下自己的项目经历,会什么技术(自己认怂,说了非科班出身,技术不咋地);然后问我,有看那些计算机相关的书籍;自己却只回答了一本书,简直是失败呀;好的... 查看详情

8年android老司机的面经,教你如何进入阿里腾讯华为等大厂

前言因为离职,前段时间面试了很多公司,其中有让我心血沸腾的经历,也有让我感到失望到无助的经历,我将这些体会都记录下来,细想之后很值得,面了这么多公司,要是最后什么也没有留下来... 查看详情

苦逼的面经之路,历经20天最终才拿到阿里的offer(面试过程分享)

背景描述首先描述一下背景,小编是一个在Android开发行业摸爬滚打5年多的开发,呆过的互联网公司有三家,均从事的Android开发的工作。最后离职的一家公司也是做的最久的一家,工作了将近3年多时光。至于离职... 查看详情

进字节了!3年android开发的艰辛三面经历总结!

...厂的面经和相关的面试干货,这有一份最新字节跳动Android面经+笔记带给大家。面试过程:普本/软件工程/3年经验,9月初通过字节工作的学长进行内推,7天的简历评估11号接到电话面试,尽管猝不及防回答... 查看详情

面试题同学的面经

...符有哪几种?有什么的区别?2、面向对象三大特性?在开发中怎么体现?3、redis有哪些数据类型?4、数据库索引了解过吗?5、springmvc一个请求的处理过程是怎么样的?6、List有那些类型,内部由什么构成?7、从上一家公司离职... 查看详情

(面经总结)冲刺大厂之面经总结

将该专栏的面经仔细研读思考,冲刺大厂没问题加油!!!!文章目录一、JVM知识点整理二、Java基础知识整理三、Java高并发知识点整理四、Java相关内容补充五、Java框架知识五、数据库知识点整理六、计网知... 查看详情

android开发五年,我总结了一份android中高级开发面试题,堪称史上最全

从Java转到Android五年了,在这五年间,我经历了很多次面试,也曾面试过很多人。众多求职者中,有技术水平高、面对任何问题都能侃侃而谈的,也有原理、性能、底层统统不了解、企图蒙混过关的。要知道&#x... 查看详情

为了进大厂,我深扒了阿里字节等大厂面经,总结了50道必考题

我昨天突发奇想,就去网上搜Java最近的面经了。经常了解市场招聘动态,有利于随时掌握市场对岗位的需求情况,也方便清楚自己的竞争力,百利而无一害。所以我总结了阿里、字节、美团、滴滴等大厂的面经干... 查看详情

android基础掌握好,面试基本不会倒!(android开发面经基础部分知识点整理)

...此前来分享给其他粉丝参考学习,望能帮助到大家。Android中大厂面试都很重视基础知识的考察,面试前不仅要熟悉这些知识点,也要 查看详情

我的面经-1

我的面经-1开个新系列?一直想有一天找个机会写一下退役总结,但是总是无法下笔。感觉自己就是一个acm的半桶水选手,在“两年半的练习”过程中,可能失败的压力大于对acm的热爱,对得失的在意大于对算法的研究。我想也... 查看详情

android面经分享阿里大佬的5年android开发的求职之路(代码片段)

作者:yechaoa来源:https://juejin.cn/post/6996551155220217869前言前段时间在看机会,本文就是我对求职过程的一个总结。同时,也作为一个面试官,来说说求职中需要注意的点。各大厂的面试会考核哪些知识点5年开发应该具备... 查看详情