怎么保证一个流式布局的流畅图片加载和缓存
glide加载图片的原理,它是怎么加载GIF的
将 Gif 解码成多张图片进行无限轮播,每帧切换都是一次图片加载请求。
在加载到新的一帧数据之后会对旧的一帧数据进行清除,然后再继续下一帧数据的加载请求。
以此类推,使用 Handler 发送消息实现循环播放。
复制代码
我们自定义一个View去加载GIF该怎么实现
Movie
自定义View,重写onDraw,计算时间,刷新绘制
复制代码
为什么要做项目组件化,组件之间的通信怎么处理
包大小瘦身和打包工具做了哪些事情
线下卡顿怎么排查,用哪些工具
线上问题怎么排查,需要什么信息,怎么获取
Android中inflate一个View的流程
解析xml
createViewFromTag
反射出类
添加到布局里面
复制代码
Android怎么在xml里添加一个引用不到的自定义View
使用<view>标签,然后添加class
LayoutInflater添加Factory,自定义标签
复制代码
网络请求会经历哪几个流程,怎么排查网络问题
DNS解析
TCP链接
HTTPS加密过程
数据传输
复制代码
有没有自己封装过长链接,你们用的网络框架是什么
简单讲一下OKHTTP,它有哪些默认的拦截器
- `RetryAndFollowUpInterceptor`
**第一个接触到请求,最后接触到响应(U型调用)** ;负责判断是否需要重新发起整个请求
- `BridgeInterceptor`
补全请求,并对响应进行额外处理
- `CacheInterceptor`
请求前查询缓存,获得响应并判断是否需要缓存
- `ConnectInterceptor`
与服务器完成TCP连接
- `CallServerInterceptor`
与服务器通信;封装请求数据与解析响应数据(如:HTTP报文)
复制代码
怎么统计整个APP的页面启动时长
HOOK,通过HOOK ActivityThread的Handler消息处理,拦截生命周期相关的逻辑。
复制代码