Android 面经总结分享(相当走心)_安卓面试经验,2024年最新android 面试基础

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

「高offer期」: 这个环节需要你按实际情况伺机而动,因为有的大厂是一条龙面完,有的是每一次面试都单独约,但是大厂一般的流程都比较慢,都在1周以上才能完成整场面试。一般都在4-6面之间。但是建议一天最多安排2场面试,这个面试时长不确定性因素会比较多。如果面试官不是很讨厌你,一般都会在60分钟以上。

面试的基本流程

我先后面试了差不多20几家公司,最后到手的OFFER有8个左右,最后选择的是自己想去的 「阿里」,面试内容我下面会简单总结一些,共分为两部分。一个是面试中出现的频率比较高的问题,二就是面试的这些公司的一些体验分享。

面试高频问题区:
  • HashMap 1.7,1.8的差异,1.8中什么情况下转换为红黑树,构造函数中参数代表的意思
  • 用什么Map可以保证线程安全,为什么?ConcurrentHashMap为什么能保证线程安全?1.7和1.8原理有什么差异。
  • 有多少种单例模式,枚举算不算单例,单例模式中不用volatile会导致什么问题?volatile特性是什么?为什么android中不推荐使用枚举。
  • 进程优先级
  • 反向输出字符串
  • 两个有序链表合并
  • 字符串移除多余空格,且技术单词首字符大写。
  • 二叉树中和为某一值的路径
  • 本地广播和正常广播的区别
  • 二进制低位转高位
  • 字符串数组判重
  • 二叉树 判断是否为搜索二叉树
  • Activity启动流程,Launcher启动流程
  • Glide中怎么实现图片的加载进度条,Glide的缓存是怎么设计的?为什么要用弱引用。
  • implementation 和 api的区别是什么?
  • 事件分发的流程,以及怎么解决滑动冲突?
  • 事件是怎么产生的?mFirstTarget 为什么是一个链表?
  • 自定义View需要经历哪几个过程?
  • A 跳转到 B页面,两个页面的生命周期怎么走?什么情况下A的stop()不会执行。
  • Activity 的4中启动模式分别是什么,有什么不同。
  • okhttp中有几个队列?分别干什么用的?怎么取消一个请求?
  • Rxjava中map和flatMap有什么区别,都用过什么操作符。
  • 如果Rxjava组合发送任务,中间任务出现异常,其他任务该怎么处理。
  • 哪个场景会发生内存泄露,内存泄露怎么检测,怎么解决。以及leak cannery内部原理是什么?为什么新版本的不需要在Application中注册了。
  • 手机适配问题怎么处理,都有什么方案。
  • Android9 10 11 都更新了什么新特性,新版本中无法获取IMEI怎么处理。
  • 数据序列话有那俩种方式,Serialization和Parcelable区别,如果持久化需要用哪一个
  • 组件化怎么分层,各个组件之间怎么通信。
  • 怎防止程序崩溃,如果已经到了Thread.UncaughtExceptionHandler是否可以让程序继续运行。
  • Handler Looper mesaageQueue message 之间的关系。
  • 子线程一定不能更新ui么?什么时候可以?什么时候不可以。检测逻辑是在什么阶段初始化的。
  • ANR发生的原理是什么, 怎么排查。
  • 说下路由ARoute的实现原理,怎么处理页面过多内存占用过大问题。
  • 线程池都什么时候用,怎么创建,构造函数中的参数分别代表什么意思?
公司面试体验分享
「拟合未来」
  • 这公司面试体验很好,一共三轮面试,技术面二面,HR一面。
  • 「一面:」 自定义view、Handler机制、组件化和插件化、HashMap的源码、retrofit和okhttp的源码用到了哪些设计模式、NDK静态库和动态库编译流程、openGL渲染模式、Android中的动画有哪些它们之间的区别、谈谈mvvm。
  • 「二面:」 讲之前做的项目负责哪块,根据业务采用什么架构、使用过哪些设计模式,项目中遇到哪些棘手的问题,如何解决的。
  • 「三面:」 HR整体问下以前公司的情况等问题
  • 总体下来基本面试官都是根据简历来问的。体验心得就是要对自己以前做的项目也好好梳理,提前组织好语言,挖掘项目闪光点。
「百度」
  • 这里主要负责的业务是手机百度开发,总共面试了三次。
  • 「一面内容:」
  1. java引用,以及引用队列,以及使用场景;
  2. 拆装箱
  3. LeakCanary
  4. map
  5. 线上性能监控
  6. SharedPrefrence 遇到的问题
  7. 手写算法
  • 「二面内容:」
  1. Handler
  2. 进程间通信
  3. 序列化
  4. 动画,
  5. native崩溃捕获原理
  6. 结合项目提问
  7. Recyclerview的点击事件原理
  8. 启动一个空的apk,回启动几个线程
  9. 手写算法
  • 「三面内容:」
  1. 跳槽原因
  2. 原来公司规模
  3. 预期薪资
  4. 个人优势
  • 「个人体验心得:」
  1. 简历上写的一定要了解,并且知道原理
  2. 多熟悉项目,找出一些能聊得功能点
  3. 崩溃捕获,以及解决(java ,native)
  4. 优化需要知道(大厂都会问)
  5. 了解由点到面,需要把知识连贯起来
「中软国际」
  • 岗位业务荣耀手机内置APP-主要负责推送,一共两面
  • 「一面:」 问的项目中哪些用到了hook技术,是怎么实现的,Okhttp底层原理,点击应用图标的启动流程,hashmap在java7和java8的区别,为什么要引入红黑树
  • 「二面:」 项目是怎么搭建的,用到了哪些技术点,arouter用到了什么技术点,是用来解决什么问题,socket底层原理,是如何带领团队的,一个功能是如何从分析需求到落地的
  • 「个人体验心得:」 尽量围绕简历上的点来刷面试题,不一定都要研究透彻,被问到自己不熟的点,可以尽量尝试着往自己熟悉点带,例如之前我被问到pms是怎么管理package信息的,我就说目前我对pms了解不深,主要也是研究了ams,然后就把自己了解的说一下就好了。
「杭州红花朵朵(总共三面)」
  • 「一面:」 Fragment和Activity生命周期联动,及Fragment显示与隐藏的一些方法,Handler原理, View绘制流程,事件分发,APP从安装到启动都做了什么,设计模式相关。
  • 「二面:」 线程都有那些状态,线程锁相关的东西,对称与非对称加密,HTTPS请求过程,数组,链表,红黑树二叉树等一些数据结构相关的东西,还有一些开放性的问题
  • 「HR面:」 自由回答
  • 「个人体验:」 基础最重要,不仅要会用,还要知道其中的原理。
「京东到家(总共三面)」
  • 「一面:」 线程,进程,消息,通信,handler,okhttp
  • 「二面:」 事件分发,java一些基础,算法
  • 「三面:」 聊项目
  • 「体验:」 除了技术,沟通,理解能力要好
「apus(总共三面)」
  • 「一面:」 问了java基础,java synchronized和volatile 关键字的作用,问了hashMap数组大小为什么是2的次方,如果经过一次扩容,元素下标会变吗,sharedPreference commit与apply的区别,还有apply为什么会造成anr,view的绘制流程,如何检测应用帧率,gradle的一些知识(没答出来,具体问题忘了)
  • 「二面:」 可能是看我对view的绘制流程比较了解 就主要问了这一块的内容,测量、布局、绘制,然后拿出了一个效果,问我怎么实现
  • 「HR面:」 公司是北京和郑州这边协同办公,经常要和那边协作,如果出了问题,如何解决
  • 「个人感受:」 基础要熟悉,如果一面有哪一个方向回答的好的话,二面就可能深入到那个方向深入的问
「阿里巴巴」
  • 面试的岗位是音视频开发,总共是 3轮技术面+1轮HR面。
  • 「一面内容:」
  1. MediaCodec连环炮:MediaCodec报错,只有错误码,没有任何其它信息,如何解决?使用MediaCodec遇到了哪些问题?同步使用和异步使用有什么区别?
  2. 如何计算音频帧,一帧音频帧有多大
  3. YUV基础知识,相比于RGB减少了多少空间,YUV 各个分量都是0实际渲染出来是什么颜色的,NV21和NV12有什么区别
  4. MP4是如何存储音视频文件的,它是什么结构
  5. OpenSL 相关的问题,如何使用。可以干什么不可以干什么
  6. 结合项目问题
  • 「二面内容:」
  1. SurfaceView和TextureView区别
  2. OpenGL ES相关问题,MVP矩阵左乘和右乘有什么区别,什么是外部纹理,为什么叫外部
  3. OpenGL如何渲染一个View
  4. VBO是用来干嘛的解决什么问题
  5. 结合项目问问题
  • 「三面内容:」
  1. 项目是什么架构,如何设计的,为什么这么设计
  2. 算法题:字符串反转
  3. 平时如何学习的
  • 「个人感受:」 音视频开发感觉OpenGL ES问的比较多,这方面多看看LearnOpenGL这个网站的教程,多加体会。

其实还有几家小型公司的面试,我就不在此一一的说明了,因为文章篇幅长度有限,所以就挑选了几个自己觉得面的还不错的公司进行跟大家分享。庆幸的是等到了自己想要的 「阿里 OFFER」,看了自己前期的2个多月的面试准备没有白费。

推荐分享

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

Android 性能优化篇:https://qr18.cn/FVlo89
Android 车载篇:https://qr18.cn/F05ZCM
Android 逆向安全学习笔记:https://qr18.cn/CQ5TcL
Android Framework底层原理篇:https://qr18.cn/AQpN4J
Android 音视频篇:https://qr18.cn/Ei3VPD

更多Android高级工程师进阶学习资料

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

章等,资源持续更新中…**

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-J1HlSevW-1713029086775)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值