Android研发大厂面试记:阿里,字节,快手

  1. GC有哪些算法,现代虚拟机基本采用什么算法,为什么这么做

  2. Activity的启动流程

  3. 在APP进程还没创建的时候,会做哪些额外操作,app进程是谁创建的

  4. View是如何显示出来的

  5. 如何把像素点显示到屏幕上

  6. Glide三级缓存策略有了解过么

  7. Glide为什么会感知生命周期

  8. 做过哪些性能优化

  9. 最近写的这篇博客写的什么,遇到了什么问题,怎么解决

二面:

  1. 讲讲项目的组成

  2. retrofit2原理

  3. 用过rxjava2哪些操作符,zip什么作用。

  4. 热修复的原理

  5. APT技术怎么实现,如何理解AOP,有过哪些应用场景

  6. MVC,MVP,MVVM的区别

  7. 讲一下LiveData+ViewModel怎么实现生命周期, 屏幕旋转时,会保存数据么

  8. 有没有碰到过LiveData接收多次消息的问题,LiveData的postValue和setValue有什么区别,平时怎么使用

  9. glide怎么实现生命周期的监听

  10. 组件化的方案,如何提高编译效率

  11. 组件通信用的什么

  12. 有没有写过印象深刻的框架

  13. 平时周末会遇到线上事故么,怎么处理

  14. 平时开发过程怎么沟通协调,在里面作为什么角色存在。

三面:

  1. 讲一下你觉得成长最大的一个项目,为什么

  2. 组件化考虑的因素有哪些,为什么这么考虑,为什么使用AAR包就会提高编译效率

  3. 说一个你觉得做的比较好的点。

  4. 有没有跨端经验

  5. 有没有推动过项目的一些方案的制作和实施。讲一下怎么做的

哈啰出行(过)

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

一面:

  1. 讲述一下自己做的最有亮点的项目

  2. view的绘制流程

  3. View的事件分发流程

  4. ViewPager内部嵌套同向RecyclerView,RecyclerView滑动与ViewPager滑动冲突解决方案

  5. 详细说下Handler机制

  6. Handler会存在哪些问题,怎么解决

  7. 设计模式用过哪些,简要讲述下最熟悉的几个设计模式,怎么设计,为什么这么设计

  8. APT怎么实现的,元注解什么作用。 IOC怎么实现

二面:

  1. 讲述一下自己项目亮点

  2. 讲一下路由框架的架构设计,路由还可以实现哪些功能

  3. 容灾方案怎么实现,怎么做降级处理,怎么做AbTest

  4. App Link有了解过没

  5. Handler的机制,如果取不到消息接下来怎么做。

  6. APP启动做过哪些优化,如果启动优化的负责人,你会怎么做

  7. Activity的冷启动流程

  8. Application由谁创建,Activity由谁创建。ContentProvider的onCreate发生在什么时候

  9. 热更新的原理,插件化的原理

三面:

  1. 讲述项目经历

  2. 讲一下自己觉得做得最好的地方

  3. 有做过哪些性能优化

  4. 让你负责埋点功能,你怎么设计实现

  5. leakcanary实现原理

  6. flutter有了解过么

  7. 讲当前部门的主要业务

涂鸦智能(过)

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

一面:

  1. Activity启动流程

  2. Handler机制

  3. 项目中解决过的难题

  4. Http1.0 http1.1 http2.0的区别

  5. Https的请求过程

  6. 用过抓包工具么,抓包工具为什么可以抓到请求,如何抓到HTTPS请求,怎么实现

二面:

  1. 讲几个项目中遇到的难题(技术上的难题或者团队协作上面的难题),怎么解决

  2. 如何进行团队协作

  3. 讲下项目亮点

  4. EventBus的原理,还有哪些可以通信的

  5. LiveData+ViewModel怎么实现生命周期的

  6. EventBus和LiveData的优缺点

  7. OKHttp的原理

三面:

  1. 组件化开发怎么实现

  2. 路由怎么实现,组件化通信有哪些

  3. 介绍下opengles开发魔方的流程

  4. retrofit实现原理

  5. 为什么这个时候选择看机会

  6. 涂鸦对你来说整体印象如何

字节跳动(过)

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

一面:

  1. git cherry-pick 操作commit id一样么

  2. git merge和rebase的作用

  3. Fragment 如何传参的,有没有使用构造函数传参

  4. SurfaceView和View绘制上面的差别,可以设置层级么。 mediaOverlay什么作用

  5. 插件化和组件化的差别, 插件化的加载过程

  6. 长图加载解决方案 DecodeRegion的底层原理

  7. 算法: A方法返回0和1的概率是p和1-p, 设计一个算法让0和1返回的概率各是1/2

  8. opengl 顶点着色器, 片段着色器

  9. classLoader通过什么判断class是否已经加载到内存中

  10. 内存优化怎么做的

  11. 滑动冲突怎么解决 nestchild和nestparent如何实现手势分发

二面:

  1. OpenGLES 怎么使用

  2. 线程启动方式

  3. HandlerThread了解过么

  4. Synchronized原理,notify wait底层是怎么做的, 了解过锁的膨胀么

  5. CAS操作如何保证两个线程数据安全

  6. Dialog和Activity属于同一个window么,为什么

  7. 用过哪些设计模式

  8. 讲讲设计原则,项目里使用情况

  9. 讲讲现在项目里的网络库, OKHttp有哪些优势(相比较于以前的HttpClient和HttpUrlConnection)

  10. EventBus 内部使用什么样的数据结构保存,EventBus的优缺点

  11. Bitmap内存怎么计算 假设一个100*100的图片放入xxhdpi的文件夹,在720的手机上面显示,Config是ARGB8888。 内存大小多少

  12. 讲讲为什么使用MVVM,MVP为什么会出现内存泄漏, MVVM为什么不会出现内存泄漏

  13. VSync信号 什么作用 同步多次执行addView,removeView等UI操作为什么不会多次进行View的绘制

  14. 算法: 如果将一串路径反转 例如 /a/b/././c/…d/e -> /e/d/c/b/a

三面:

  1. 自动登出如何处理的

  2. 登录之后页面,数据刷新怎么处理

  3. TCP和UDP的区别, 讲下视频通话中哪些用到了UDP,哪些用到了TCP

  4. Java的Thread是JVM创建的还是系统的

  5. Thread可以设置大小么

  6. JVM的内存回收算法

  7. View的onMeasure测量逻辑

  8. 解决过的难题

  9. 讲下mvvm的设计,与mvp相比优势是什么,如果用mvp如何防止内存泄露

  10. 100个人编号为1100,山洞有100盏灯,编号为1100。 人依次过山洞,当人经过【灯编号可以整除人编号】的路灯时,按下开关。假设刚开始灯都是灭的,那么100个人出去以后,有多少盏灯是亮着的。

  11. 给定两个职员,找出最近的公共上级 (树的最近公共祖先节点


上面就是一些主要面试中所遇到的题目了,还有一些没有放上来的,以及自己复习刷题中的重难点,都已经记录在了PDF或markdown当中,有需要的朋友们文末自行查阅领取。

最后

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

在这里就还分享一份由大佬亲自收录整理的Android学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。

当然,你也可以拿去查漏补缺,提升自身的竞争力。

真心希望可以帮助到大家,Android路漫漫,共勉!

如果你有需要的话,只需 点击这里快速免费获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值