# 墨迹天气
自己说项目经历,说一下在项目中遇到的难点并且怎么解决的
职业规划是什么,为什么选择做移动端
自定义 View 的流程
onMeasure()
、onLayout()
、onDraw()
事件分发机制有了解吗
Android 事件分发总是遵循 Activity => ViewGroup => View 的传递顺序;
三个与事件分发机制有关的方法:
dispatchTouchEvent()
:事件分发onTouchEvent()
:事件处理onInterceptTouchEvent()
:事件拦截
dispatchTouchEvent()
是负责事件分发的。当点击事件发生后,事件首先会传递给当前的 Activity,然后会调用 Activity 的dispatchTouchEvent()
方法。onTouch()
执行总优先于onClick()
点击一个 Button,发起网络请求,将获取到的数据展示到页面上,怎么优化它的速度/流程?
从点击按钮出现点击时间,开启子线程发起网络请求,这是一个优化点。
请求到的数据如何显示在页面上,这是一个优化点,例如三级缓存机制。
Handler 的消息传递机制
MessageQueue 中是以什么样的策略去存储消息的
MessageQueue 实际上是以单链表的形式存储 Handler 发送过来的消息,有利于插入、删除的操作,主要有两个操作:
- 通过
enqueueMessage(Message msg, long when)
向队列插入一个消息 - 通过
next()
从无限循环队列中取出消息,并从消息队列中删除。
- 通过
进程调度策略
内存泄露有了解吗?怎么样去处理内存泄漏
内存泄漏:程序申请的内存空间,在使用完毕后未释放,一直占据内存单元。
我们创建了一个对象,会在堆内存中给这个对象申请一块内存空间,假如调用了一次或者几次,之后就没有再调用,但仍然占据着内存。
Java 可以使用垃圾回收机制。
三级缓存机制
有了解 Glide 框架中的最少未使用机制 Lru 算法吗?
怎么设计一个数据结构去实现 Lru 算法
RxJava 里的操作符,如果是进行多个网络请求,用哪个操作符
RxJava 操作符
zip()
:使用一个函数组合多个 Observable 发射的数据集合,然后再发射这个结果。通过
Observable.zip()
方法把多个 Observable 组合成新的 Observable。了解哪些设计模式
介绍一下快速排序算法,还了解哪些排序算法