Android面试技术栈
Android面试资料大全:
https://blog.csdn.net/huangqili1314/article/details/72792682
https://blog.csdn.net/huangqili1314/article/details/79824830
1.网络框架
Okhttp
连接池,拦截器,封装Request
2.消息通知 EventBus
EventBus:
原理:
内部实现:观察者模式+注解+反射
代替EventBus的方法:RxBus
RxJava:
原理:
3.图片加载库 Fresco 、Glide、Picasso、ImageLoader
Glide:LruCache结合弱引用 ->LruCache原理->LinkedHashMap原理
Fresco:MVC设计模式, 5.0以下采用共享内存->共享内存怎么用->Fresco怎么实现圆角,怎么配置缓存。
4.消息推送 Push
消息推送原理->如何实现心跳链接?
5.TCP/IP Http/Https
TCP/UDP的区别->TCP三次握手,四次挥手->为什么要三次握手(DDoS攻击)
6.插件化技术/热修复
核心原理:classLoader反射
7.Vue/React/ReactNative
框架比较及优劣势->虚拟DOM核心原理->diff算法
8.微信小程序/支付宝小程序
工作原理:mvc模式,ui.js/work.js分离,实现管控。自定义语言->编译转换成react代码->通过react/reactnative框架编译成html/native view代码。
优劣势:小程序代码的优势介于HTML和native代码之间,做了个均衡的处理。同一套代码实现多段统一,调试方便,部署方便,bug修复方便,用户体验接近原生代码。
9.其他