
P5初级聊完,进入P6中级。P6是阿里主力级别,面试难度跳一档。P5考"知不知道原理",P6考"能不能讲清源码"。设计模式要结合项目应用,ARouter和EventBus要能画源码级流程图。P6面试最大坑:只说"是什么"不说"为什么"。问ARouter路由原理,"编译期APT生成路由表"是P5的回答。P6要答路由表怎么加载、首次加载怎么优化、拦截器怎么实现。今天8道题给到源码级深度。Q1:Android常用设计模式?项目里怎么用?单例模式:全局唯一实例。AppManager管理Activity栈、网络库getInstance。DCL+volatile防止指令重排。观察者模式:一对多依赖。LiveData、EventBus、RxJava本质都是观察者。网络状态变化通知多页面更新。建造者模式:复杂对象分步构建。Dialog.Builder、OkHttpClient.Builder。链式调用可读性好,参数校验集中在build()。适配器模式:接口转换。RecyclerView.Adapter适配数据到ViewHolder。HeaderViewAdapter在原始Adapter外包一层添加Header。追问:MVP/MVVM属于什么模式?不是GoF的23种之一。MVVM结合了观察者模式(数据绑定)+ 中介者模式(ViewModel协调View和Model)。架构模式是多种设计模式的组合应用。Q2:ARouter路由原理?编译期和运行时分别做了什么?