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