Android 2021面经分享

喜马拉雅一面

类加载机制
android中有哪些ClassLoader
设计一个线程池
设计一个方法耗时检测框架
重构Module流程
Handler、Binder
ANR处理、内存泄漏
Service的理解
单Activity下Fragment栈维护
负责的页面架构、项目中负责的模块
然后一堆直播相关的问题

小红书一面

object对象有哪些方法
创建对象不用new还有哪些方式
线程池,线程池怎么保证核心线程不被kill
java锁,wait和sleep的区别
hashmap,为什么扩容是2的幂,链表转化为红黑树为什么是8
handler、view绘制流程,哪个流程可以异步
事件分发,滑动冲突解决
onCreate可以异步更新ui吗,异步view
rxjava、retrofit、okhttp源码
mvvm、mvp的理解
kotlin协程、with apply let run区别
kotlin扩展函数等语法糖原理
java转kotlin时遇到了哪些坑
Idelhandler原理
负责的模块如何封装
google push、发版流程
算法:数组中两个数相加等于target,三个数相加呢?

叮咚买菜一面

glide、retrofit
kotlin 协程、高阶函数
组件化模块划分、无依赖调用、传实体类
网络优化
RecyclerView优化
behavior、滑动冲突
MVVM
okhttp http2.0的实现

货拉拉一面

Arouter原理,不用apt你怎么设计
方法耗时检测框架
性能优化、ANR处理
比较有印象的Crash
你对比其它小伙伴的优势
MVVM,LiveData
协程,协程的好处
日志上报框架设计
LeakCanary原理
okhttp,http2.0好处
https原理,加密方式
换肤原理、冷启优化
组件化、了解的一种热更新方案
Flutter Debug和Release区别;android呢,是JIT还是AOT

满帮一面

Crash,印象最深的Crash
设计一个图片占用内存检测框架
ANR检测框架、方法耗时检测
binder机制,为什么拷贝一次,client到service过程
性能优化、启动优化、CI
Activity启动流程
MVVM好处
Flutter接入流程

Soul一面

软引用、弱引用
GC算法
双亲委托
volatile
ThreadLocal
打包流程、Apk包有哪些东西、包瘦身
性能优化,做的最好的地方
c层crash
okhttp
Apt和Transform

百度一面

项目开发流程
重构Module流程
负责的模块
主导过哪些工作,如何推进
MVVM好处
ViewModel屏幕旋转如何恢复
handler、looper、messagequeue、线程对应关系
activity A->B生命周期 为什么A pause后要先B
activity启动模式对应任务栈处理
application context启动activity
组件化
kotlin apply run
子线程中能更新ui吗,为什么android系统要做checkThread

叮咚买菜二面

项目负责的模块
做的最好的一个项目
组件化思路
MVVM的好处
做了哪些性能优化
协程的好处、协程和线程区别、协程调度器实现
具体的业务场景:控制线程并发数,不用线程池实现
算法:最长回文子串

比心一面、二面

项目中最好的技术两个点
组件化模块依赖关系,无依赖传实体类、调用方法
性能优化、Crash、ANR处理,常见的Crash如何避免
内存泄漏、内存抖动
自定义View、ViewGroup
事件分发
设计一个页面帧数检测框架
为什么选择重构一个模块
协程、线程池
MVVM、ViewModel
一些性格相关问题、职业规划

货拉拉二面

Lifecycle、LiveData源码
MVVM,有遇到哪些坑吗
组件化、组件间通信
Arouter源码
ANR、Crash
AspectJ,有什么坏处
Transform、ASM
严格模式
MMKV
C层Crash、C层堆栈如何打印
你有什么优势,未来的规划

小红书二面

锁,关键字和lock,锁的类型;AQS
HashMap,ConcurrentHashMap
线程池如何保证核心线程存活
结合业务场景讲RecyclerView缓存机制以及做了哪些优化
比较擅长的部分,讲了View的绘制流程
handler,looper为什么不会卡死,epoll原理
算法:第K大的数

百度二面

为什么要选择重构,重构的流程
评论模块客户端到服务端业务流程
项目相关问题
https,网络相关
算法:三个线程排队执行

Soul二面、三面

组件化
Crash指标、ANR
性能优化、项目相关
职业规划、不足之处
算法:遍历View树非递归

腾讯一面

项目相关问题
具体模块的实现,加密问题
登录状态,token机制
HashMap
binder、retrofit、rxjava
进程通信
多线程、锁
JVM堆栈
双亲委托、热更新
协程好处,解决了什么问题
MVVM好处
常用的设计模式、单例有什么优缺点
设计一个图片加载框架、缓存key的选择
算法:两数之和、三数之和

触宝一面

JVM内存区域,哪些是线程私有、哪些会发生GC
多进程
性能优化、内存抖动
RecyclerView中秒杀功能实现
帧动画100张图片如何处理
kotlin闭包解决了什么问题、协程
线程池构造方法参数

喜马拉雅一面

JVM内存区域
volatile
锁、关键字和lock、wait和notify
数据结构,HashMap等
http2.0、https
组件化、Arouter
View绘制流程,setContentView干了啥
事件分发、滑动冲突
ThreadLocal,同步屏障,postDelay、epoll机制
binder,为什么Android不用共享内存
打包流程、Activity启动流程
启动模式,A->B->BACK生命周期
ViewModel、LiveData、Lifecycle原理
MVVM好处
binder传大数据
做了哪些性能优化
C层Crash
Flutter比较RN
如何打印Crash调用栈

喜马拉雅二面、三面

为什么看机会
下一份工作的规划
MVVM与MVP
DataBinding,为什么不用
锁的原理
算法:fun a生成1-5的随机数,实现fun b生成1-25的随机数;两数之和;三数之和

阿里一面

二叉树层序遍历时间复杂度空间复杂度
斐波拉契递归时间复杂度
java和native crash堆栈打印
印象比较深刻的crash
写日志时发生崩溃如何处理
volatile
v1 v2签名有什么不同,签名算法
对称加密,非对称加密;RSA加密算法
ABTest和灰度
协程和线程,线程和进程
进程内存分配
做的比较好的项目

腾讯一面、二面

项目相关
设计模式
oauth2.0
RSA加密算法
unicode和utf-8
Crash打印堆栈
内存泄漏,GCRoot用哪些对象
性能优化
view绘制流程
ANR、卡顿监控实现
弹幕智能防挡人脸实现思路
进程间通信、binder
handler,Looper死循环,postDelay原理,epoll机制
双亲委托、热修复、插件化
MVVM、相关组件原理,有什么坑吗,和MVP区别
协程和线程的区别,挂起恢复如何实现
JVM内存区域
JNI,java和c++如何实现互相调用

字节一面

有印象的crash
最近项目做的最好的东西
进程间通信,binder
ANR实现机制
handler,epoll机制
try catch能catch住子线程异常吗
类锁和对象锁
app启动流程,ASM相关
设计模式
double check单例
三个线程循环打印

你可能感兴趣的:(Android 2021面经分享)