笔试:合并有序链表,二叉搜索树第k大个节点,循环升序数组最小值,还有一道忘了
面试:
项目拷打,
介绍mvvm(讲了vm处理界面显示逻辑,观察者模式这些)
livedata的几个实例化方法(没答出来
livedata如何实现生命周期绑定问题(大概答了在xxxactivity实现了某个借口实现了对lifecycle的处理,然后进行对数据的生命周期绑定)
不活跃的观察者接收事件的问题(没太清楚问题的核心,答了粘性事件相关,生命周期改变会触发observe方法回调)
retrofit的优点
retrofit的动态代理怎么实现(提了一下invacationHandler,最后实现在invoke方法)
协程线程的区别
协程的优点
介绍协程的上下文的实现(忘了
glide缓存机制
glide会压缩图片吗(不懂
大尺寸的view加载小尺寸的图片会缩放吗(答了需要指定缩放的方式)
WebView加载的优化(答了缓存复用和预启动,预启动提到了idlehandler)
实现预启动如何拿到context(答了mutablecontext)
介绍一下idlehandler
idlehandler什么时候起作用(消息队列没东西)
handle机制,死循环问题(答linux的epoll机制)
epoll机制如何实现(答了读不到数据就释放cpu资源,写端有数据就唤醒)
apk的体积优化(图片资源的处理,apk混淆)
项目中有用过锁吗(真没有)
了解哪些锁(乐观锁,悲观锁)
volatile关键字的作用和实现(可见性,禁止指令重排,修改主存)
synchronized底层原理了解吗(monitorenter和monitorexit指令)
#面经# #Android#