1、okhttp源码核心解析
https://www.jianshu.com/p/02445b48c752
2、okhttp源码详细解析
https://www.jianshu.com/p/412155af841f
3、retrofit源码解析
https://www.jianshu.com/p/f57b7cdb1c99
4、Rxjava使用
https://www.jianshu.com/p/cd3557b1a474
(1)观察者模式
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
(2)Rxjava 内存泄漏的解决方式
- CompositeDisposable
- RxLifecycle
作者:juexingzhe
链接:https://www.jianshu.com/p/c8f4e0e8270e
主要有下面几种使用方式:
1 bindToLifecycle
2 bindUntilEvent
3 LifecycleProvider
myObservable
.compose(RxLifecycle.bind(lifecycle))
.subscribe();
- AutoDispose
//在Activity中使用
myObservable
.as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this))
.subscribe(s -> ...);
(3)RxJava2.0的异步和链式编程
多次指定上游的线程只有第一次指定的有效, 也就是说多次调用subscribeOn()只有第一次的有效。
多次指定下游的线程是可以的, 也就是说每调用一次observeOn() , 下游的线程就会切换一次。
线程变换总结:
1.订阅将会触发生产
2.将上游的订阅过程,封装到runnable,再交由scheduler去执行
3.将下游的消费过程,封装到runnable,再交由scheduler去执行
网友评论