11月最新入职阿里android小哥真实面经分享(p6)(代码片段)

上马定江山 上马定江山     2023-02-17     326

关键词:

阿里的前端一直以来都是大热之选,上周一位朋友面进蚂蚁定级P6,总包60W,给大家要来了他的真实面经,接下来把他的全程面经以文字的形式分享给大家,全程肝货建议下载收藏(文末附送一份大厂Android面试题PDF)。

面试过程:

10月初通过阿里工作的同学进行内推,当天收到面试邀约,一个多月完成三轮技术面试、一轮hr面试,收到了offer,总包60W。

下边是他5轮面试的部分考题可以针对性的找找相关资料学习,另外分享一下完整的阿里Android面试考点总结(有PDF版在文末分享给大家),希望能够帮助到计划冲大厂的小伙伴。

蚂蚁3轮技术面+HR面

一面(1h)

  • 自我介绍
  • 问项目的一些细节,优化方案等
  • SurfaceView, TextureView及View的区别。SurfaceView怎么控制它处于的层级
  • Binder工作流程
  • 介绍一下MVC,MVP,MVVM,你们项目用的是哪个?
  • 对组件化的理解,你们是怎么实现组件化的?功能模块之间互相引用会有什么问题?
  • 内存优化工具,LeakCanary和MAT的原理
  • JVM内存模型
  • Java同步机制有哪些,volatile和syncronized区别
  • HashMap和HashTable区别,ConcurrentHashMap分段加锁的原理
  • 二叉树的前中后遍历
  • 算法:判断一棵树是否是平衡二叉树
  • 算法题:给定一个链表L1、L2,每个元素是为10以内的正整数,链表表示一个数字,表头为高位。 求两个链表之差,以链表形式返回
  • Java和Kotlin的一些区别,Kotlin的缺点?
  • SurfaceView和TextureView的区别?
  • 了解过哪些插件化的实现?
  • 说说ARouter的原理
  • 两个业务组件模块之间,怎么实现相互调用接口?
  • 让你设计一个下载功能,实现多个大文件同时下载,考虑哪些(断点续传)?
  • 怎么处理内存泄漏?强引用弱引用?LeakCanary原理说一下。

二面(1h)

  • 问更熟悉Java还是Kotlin,答Java,所以问的都是Java相关的一些题
  • HashMap扩容机制
  • Java volatile原理和作用
  • 乐观锁,悲观锁区别
  • 线程池工作原理,各个参数的作用
  • Android 三缓存是什么?为什么需要它
  • 讲讲做的业务开发中比较有挑战的项目
  • 还有一些比较常规的Android方面的问题,具体想不起来了
  • 算法题:查找单链表中倒数第k个节点。做完后面试官问是不是刷过这道题,那我再出一道吧…
  • 题:给定一台8核的手机,设计一个快速检索出sdcard下所有文件名为a的程序,返回一个列表

三面(1.5h)

  • 主要深挖项目细节,有些不太清楚的最好别提,不然被挖到了很尴尬
  • 平时怎么学习技术
  • 在之前的公司,你对自己的成长满意吗
  • 在面哪些公司,情况怎么样

HR面

  • 你为什么要离开现在的公司
  • 你们公司的岗位等级是怎么评定的,你现在是什么岗位等级
  • 谈谈你在公司的绩效情况
  • 你觉得你做的最有成就感的一件事
  • 你一般解决问题的方法有哪些
  • 你是因为什么契机选择做Android
  • 你有对你所在的公司做过什么流程或制度规范上的改进么
  • 你最近在看什么书,和工作相关么,你为什么要看这些书
  • 你期望的薪资待遇是多少

几点面试意见:

  • 心态放平稳,假设第一题你答不上来很正常,面试官不会因为第一题你不会就PASS你
  • 不会的题目一定不要瞎猜,往往面试官给你挖的坑就是希望你往错的方向猜,一定要答不知道
  • 不要说太多跟当前面试题无关的内容,问你什么问题尽量就答什么问题,除非面试官指定你发散一下思维
  • 如果没有听懂面试题可以试着询问面试官,您要问的是关于xxx的问题么
  • 对于某些问题一定要自己先提前精炼一下(例如activity启动流程、handler原理等问题)
  • 如果面试官问的某项技术自己在某些场景使用过或看到别的场景有使用,可结合这些场景进行讲解(让面试官知道你不仅仅理解它,你还会很好的使用它)
  • 如果是某个框架希望可以深入源码或者至少理解一些别人的源码分析
  • 如果面试阿里那么面试之前一定要好好准备这样一个问题:你觉得你最擅长什么
  • 面试一定要真诚,切勿投机取巧
  • 面试态度一定要谦虚

总结

我也不是什么大佬,最后唠叨几句。希望各位没拿到offer的真的不要灰心,可能你之前所有的失败都是你成功的垫脚石,我面头条一面挂的时候也曾经自闭过,但更多的是反思,如何调整自己的复习计划。在复习的时候一定要有自己的强项,能把这个知识点理解的很透彻并且把相关的知识点拓展出去。另一方面就是让面试官看到你对这个岗位的热情,能够自发性地去学习与岗位相关的东西。

如果你还是不知道怎么去准备面试,可以看下这份由阿里P8Android面试官整理的2021最新Android高频核心考题

1.Activity

1.Activity的启动流程
2.onSaveInstanceState(),onRestoreInstanceState的掉用时机
3.activity的启动模式和使用场景
4.Activity A跳转Activity B,再按返回键,生命周期执行的顺序
5.横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期
6.onStart 和 onResume、onPause 和 onStop 的区别
7.Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案
8.Activity的onNewIntent()方法什么时候会执行

2.Service

1.service 的生命周期,两种启动方式的区别
2.Service启动流程
3.Service与Activity怎么实现通信
4.IntentService是什么,IntentService原理,应用场景及其与Service的区别
5.Service 的 onStartCommand 方法有几种返回值?各代表什么意思?
6.bindService和startService混合使用的生命周期以及怎么关闭

3.BroadcastReceiver

1.广播的分类和使用场景
2.广播的两种注册方式的区别
3.广播发送和接收的原理
4.本地广播和全局广播的区别

4.ContentProvider

1.什么是ContentProvider及其使用
2.ContentProvider,ContentResolver,ContentObserver之间的关系
3.ContentProvider的实现原理
4.ContentProvider的优点
5.Uri 是什么

5.Handler

1.Handler的实现原理
2.子线程中能不能直接new一个Handler,为什么主线程可以
主线程的Looper第一次调用loop方法,什么时候,哪个类
3.Handler导致的内存泄露原因及其解决方案
4.一个线程可以有几个Handler,几个Looper,几个MessageQueue对象
5.Message对象创建的方式有哪些 & 区别?
Message.obtain()怎么维护消息池的
6.Handler 有哪些发送消息的方法
7.Handler的post与sendMessage的区别和应用场景
8.handler postDealy后消息队列有什么变化,假设先 postDelay 10s, 再postDelay 1s, 怎么处理这2条消息
9.MessageQueue是什么数据结构
10.Handler怎么做到的一个线程对应一个Looper,如何保证只有一个MessageQueue
ThreadLocal在Handler机制中的作用

6.View绘制

1.View绘制流程
2.MeasureSpec是什么
3.子View创建MeasureSpec创建规则是什么
4.自定义Viewwrap_content不起作用的原因
5.在Activity中获取某个View的宽高有几种方法
6.为什么onCreate获取不到View的宽高
7.View#post与Handler#post的区别
8.Android绘制和屏幕刷新机制原理
9.Choreography原理
10.什么是双缓冲

7.View事件分发

1.View事件分发机制
2.view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者优先级
3.onTouch 和onTouchEvent 的区别
4.ACTION_CANCEL什么时候触发
5.事件是先到DecorView还是先到Window
6.点击事件被拦截,但是想传到下面的View,如何操作
7.如何解决View的事件冲突
8.在 ViewGroup 中的 onTouchEvent 中消费 ACTION_DOWN 事件,ACTION_UP事件是怎么传递
9.Activity ViewGroup和View都不消费ACTION_DOWN,那么ACTION_UP事件是怎么传递的
10.同时对父 View 和子 View 设置点击方法,优先响应哪个
11.requestDisallowInterceptTouchEvent的调用时机

8.RecycleView

1.RecyclerView的多级缓存机制,每一级缓存具体作用是什么,分别在什么场景下会用到哪些缓存
2.RecyclerView的滑动回收复用机制
3.RecyclerView的刷新回收复用机制
4.RecyclerView 为什么要预布局
5.ListView 与 RecyclerView区别
6.RecyclerView性能优化

9.Viewpager&Fragment

1.Fragment的生命周期 & 结合Activity的生命周期
2.Activity和Fragment的通信方式, Fragment之间如何进行通信
3.为什么使用Fragment.setArguments(Bundle)传递参数
4.FragmentPageAdapter和FragmentStatePageAdapter区别及使用场景
5.Fragment懒加载
6.ViewPager2与ViewPager区别
7.Fragment嵌套问题

10.WebView

1.如何提高WebView加载速度
2.WebView与 js的交互
3.WebView的漏洞
4.JsBridge原理

11.动画

1.动画的类型
2.补间动画和属性动画的区别
3.ObjectAnimator,ValueAnimator及其区别
4.TimeInterpolator插值器,自定义插值器
5.TypeEvaluator估值器

12.Bitmap

1.Bitmap 内存占用的计算
2.getByteCount() & getAllocationByteCount()的区别
3.Bitmap的压缩方式
4.LruCache & DiskLruCache原理
5.如何设计一个图片加载库
6.有一张非常大的图片,如何去加载这张大图片
7.如果把drawable-xxhdpi下的图片移动到drawable-xhdpi下,图片内存是如何变的。
8.如果在hdpi、xxhdpi下放置了图片,加载的优先级。如果是400800,10801920,加载的优先级。

13.mvc&mvp&mvvm

1.MVC及其优缺点
2.MVP及其优缺点
3.MVVM及其优缺点
4.MVP如何管理Presenter的生命周期,何时取消网络请求

14.Binder

1.Android中进程和线程的关系,区别
2.为何需要进行IPC,多进程通信可能会出现什么问题
3.Android中IPC方式有几种、各种方式优缺点
4.为何新增Binder来作为主要的IPC方式
5.什么是Binder
6.Binder的原理
7.Binder Driver 如何在内核空间中做到一次拷贝的?
7.使用Binder进行数据传输的具体过程
8.Binder框架中ServiceManager的作用

15.内存泄漏&内存溢出

1.什么是OOM & 什么是内存泄漏以及原因
2.Thread是如何造成内存泄露的,如何解决?
3.Handler导致的内存泄露的原因以及如何解决
4.如何加载Bitmap防止内存溢出
5.MVP中如何处理Presenter层以防止内存泄漏的

16.性能优化

1.内存优化
2.启动优化
3.布局加载和绘制优化
4.卡顿优化
5.网络优化

17.Window&WindowManager

1.什么是Window
2.什么是WindowManager
3.什么是ViewRootImpl
4.什么是DecorView
5.Activity,View,Window三者之间的关系
6.DecorView什么时候被WindowManager添加到Window中

18.WMS

1.什么是WMS
2.WMS是如何管理Window的
3.IWindowSession是什么,WindowSession的创建过程是怎样的
4.WindowToken是什么
5.WindowState是什么
6.Android窗口大概分为几种?分组原理是什么
7.Dialog的Context只能是Activity的Context,不能是Application的Context
8.App应用程序如何与SurfaceFlinger通信的
View 的绘制是如何把数据传递给 SurfaceFlinger 的
9.共享内存的具体实现是什么
10.relayout是如何向SurfaceFlinger申请Surface
11.什么是Surface

19.AMS

1.ActivityManagerService是什么?什么时候初始化的?有什么作用?
2.ActivityThread是什么?ApplicationThread是什么?他们的区别
3.Instrumentation是什么?和ActivityThread是什么关系?
4.ActivityManagerService和zygote进程通信是如何实现的
5.ActivityRecord、TaskRecord、ActivityStack,ActivityStackSupervisor,ProcessRecord
6.ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的关系
7.手写实现简化版AMS

20.系统启动

1.android系统启动流程
2.SystemServer,ServiceManager,SystemServiceManager的关系
3.孵化应用进程这种事为什么不交给SystemServer来做,而专门设计一个Zygote
4.Zygote的IPC通信机制为什么使用socket而不采用binder

21.App启动&打包&安装

1.应用启动流程
2.apk组成和Android的打包流程
3.Android的签名机制,签名如何实现的,v2相比于v1签名机制的改变
4.APK的安装流程

22.序列化

1.什么是序列化
2.为什么需要使用序列化和反序列化
3.序列化的有哪些好处
4.Serializable 和 Parcelable 的区别
5.什么是serialVersionUID
6.为什么还要显示指定serialVersionUID的值?

23.Art & Dalvik 及其区别

1.Art & Dalvik 及其区别

24.模块化&组件化

1.什么是模块化
2.什么是组件化
3.组件化优点和方案
4.组件独立调试
5.组件间通信
6.Aplication动态加载
7.ARouter原理

25.热修复&插件化

1.插件化的定义
2.插件化的优势
3.插件化框架对比
4.插件化流程
5.插件化类加载原理
6.插件化资源加载原理
7.插件化Activity加载原理
8.热修复和插件化区别
9.热修复原理

26.AOP

1.AOP是什么
2.AOP的优点
3.AOP的实现方式,APT,AspectJ,ASM,epic,hook
27.jectpack
1.Navigation
2.DataBinding
3.Viewmodel
4.livedata
5.liferecycle

28.开源框架

1.Okhttp源码流程,线程池
2.Okhttp拦截器,addInterceptor 和 addNetworkdInterceptor区别
3.Okhttp责任链模式
4.Okhttp缓存怎么处理
5.Okhttp连接池和socket复用
6.Glide怎么绑定生命周期
7.Glide缓存机制,内存缓存,磁盘缓存
8.Glide与Picasso的区别
9.LruCache原理
10.Retrofit源码流程,动态代理

朋友们如果需要这份完整版的《2021最新Android高频核心面试题》,微信扫描下方二维码【免费获取】。

2021最新java面经分享,实战案例

事故背景公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了。经理让我带同事们一起复盘这次线上事故。什么原因造成的?抢购活动计划是零点准时开始,22&#... 查看详情

android移动应用开发实践教程,分享一些行业经验,成功入职阿里

开头今年的金九银十来得比以往要晚一些,但每到“金九银十”的季节,总人很多人去寻找名叫“面经”一样的东西,其实就是一个个具体的题目,然后临阵磨枪,去“背”答案,如果一直是这样的话࿰... 查看详情

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

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

2021最新阿里java高级面试题总结,分享面经(代码片段)

数据库1.MySQL索引使用有哪些注意事项呢?可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则索引哪些情况会失效查询条件包含or,可能导致索引失效如何字段类型是字符串&#... 查看详情

7月最新字节跳动java三面面经分享(框架+线程+redis等等)

前几天有朋友收到了字节的offer,他跟我说了一路面试经历,征得他的同意,我写下了这篇文章,下面我给大家分享一下他碰到的面试题。供大家参考一下。文末给大家准备了福利,记得领取哦~背景昵称:... 查看详情

字节跳动面经分享(android客户端)(代码片段)

作者:老王开篇先说明一下,楼主是二本双非学校,且非科班生,有三个App上架,大三在读9月1号投了字节的简历,9月中旬参加了笔试,9月底收到字节面试邀请10月初参加了第一轮面试,10月中旬参加了二面,10月27日参加了三面10月28日o... 查看详情

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

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

android面经分享阿里技术专家的5年android开发的求职之路(代码片段)

...首发我的微信公众号:徐公,想成为一名优秀的Android开发者,需要一份完备的知识体系,在这里,让我们一起成长,变得更好~。作者:yechaoa来源:https://juejin.cn/post/6996551155220217869前言前段时间在看机会,... 查看详情

硬核!java集合面经大全——双非上岸阿里巴巴系列(代码片段)

...超链接1操作系统面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门12计算机网络面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门23Java并发编程面经大全——双非上岸阿里巴巴系列2021最新版面经—... 查看详情

硬核!java集合面经大全——双非上岸阿里巴巴系列(代码片段)

...超链接1操作系统面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门12计算机网络面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门23Java并发编程面经大全——双非上岸阿里巴巴系列2021最新版面经—... 查看详情

拒绝盲目搜索,最新android面试题已经整理完毕(内含字节阿里大厂面经)

...f1a;在这个信息化时代,我们可以在网络上搜索到大量Android学习资料,有时间的同学还可以去阅读经典教材,去自己运行代码慢慢摸索。但这种方法更适合有充足时间、想要入门Android的人。而面试当前,如临大敌&... 查看详情

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

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

硬核!mysql数据库面经大全——双非上岸阿里巴巴系列(代码片段)

...超链接1操作系统面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门12计算机网络面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门23Java并发编程面经大全——双非上岸阿里巴巴系列2021最新版面经—... 查看详情

硬核!mysql数据库面经大全——双非上岸阿里巴巴系列(代码片段)

...超链接1操作系统面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门12计算机网络面经大全——双非上岸阿里巴巴系列2021最新版面经——>传送门23Java并发编程面经大全——双非上岸阿里巴巴系列2021最新版面经—... 查看详情

阿里大佬首次分享《android11.0最新framework解析》限时免费下载高清pdf文档

前言想要成为Android高级开发者,一定要熟练掌握Framework的底层源码。而且作为Android的经典框架层,它提供了众多API让各个App去调用,诸多机制都是通过Framework包装好来给App使用的,想要做出更好的开发优化,... 查看详情

阿里大佬首次分享《android11.0最新framework解析》限时免费下载高清pdf文档

前言想要成为Android高级开发者,一定要熟练掌握Framework的底层源码。而且作为Android的经典框架层,它提供了众多API让各个App去调用,诸多机制都是通过Framework包装好来给App使用的,想要做出更好的开发优化,... 查看详情

压抑了三个月的我终于可以放声呐喊了!阿里是真的难进,android三面面经+面试题(代码片段)

...某一本大四学生,计算机科学与技术专业。主要学的Android开发,所以投的岗位都是Android开发工程师。六月份快放暑假的时候开始准备找实习,投了知乎,内推了阿里腾讯百度网易。腾讯百度都没有收到面试,... 查看详情

2021年8月前端面试经验最新出炉—胜利收官!(代码片段)

前言:本文暂时不写面试题,分享一下面试的过程。文章目录一、入职携程二、面试日程1.面试日历2.求职不易3.百度一游三、文章最后选择携程感谢粉丝们长期以来的支持!我会变得更强,更棒!一、入职携... 查看详情