Android的进阶知识
文章平均质量分 96
3gAndroid
这个作者很懒,什么都没留下…
展开
-
Glide缓存机制
Glide缓存机制Glide缓存机制Glide缓存机制简介内存缓存的取资源第一步:获取缓存key第二步:从弱引用缓存中获取loadFromActiveResources()第三步:从内存LruCache中获取loadFromCache()getEngineResourceFromCache()内存缓存的存资源Engine.load()onResourceReady()notifyCallbacksOfResult()onResourceReleased()磁盘缓存runWrapped()runGenerat原创 2021-07-30 08:58:14 · 317 阅读 · 0 评论 -
Glide图片加载流程源码解析
Glide图片加载流程源码解析Glide图片加载流程源码解析Glide介绍与优势Glide是什么功能优势应用场景Glide整体运转流程with()流程with的重载getRetriever()获取RequestManagerRetriever对象Glide.get(context)build()RequestManagerRetriever.get()获取RequestManager对象1.获取Applicaition类型的RequestManager对象2.获取非Application类型的Request原创 2021-07-28 21:34:47 · 301 阅读 · 0 评论 -
EventBus使用及其源码解析
EventBus使用及其原理解析什么是EventBus?EventBus的使用创建一个发送事件类定义订阅者方法注册和注销订阅事件发送消息EventBus的源码导读Subscribe注解的使用两个全局变量map注册流程EventBus.getDefault()register(this)findSubscriberMethods()findUsingInfo()方法subscribe()方法注销流程unregister()unsubscribeByEventType(subscriber, eventType原创 2021-07-22 21:58:55 · 239 阅读 · 2 评论 -
ARouter的使用及其原理解析
ARouter的使用及其原理ARouter的使用及其原理ARouter介绍ARouter的简单使用ARouter的跳转原理注解&APT注解处理器RouteProcessorARouter Group xxxARouter Root xxxthis.parseRoutes(routeElements)方法categories(routeMeta)方法回到parseRoutes方法路由跳转第一种路由表加载方式LogisticsCenter.init()Postcard类第二种路由原创 2021-07-22 17:32:59 · 1860 阅读 · 1 评论 -
一步一步讲解OkHttp最新源码
文章目录什么是Okhttp?Okhttp的使用流程Okhttp的请求流程源码分析:OkHttpClient()类异步请求流程异步请求的代码示例RealCall.enqueuecallStart()dispatcher.enqueue()promoteAndExecute()asyncCall.executeOn(executorService)AsyncCall.run()client.dispatcher.finished(this)小结同步请求流程同步请求的代码示例RealCal.execute()Ca原创 2021-06-02 18:49:34 · 686 阅读 · 0 评论 -
Retrofit2.0源码解读
Retrofit2.0源码解析Retrofit简介与Okhttp的区别Retrofit的使用流程:创建Retrofit实例源码解析Retrofit类Builder类BaseUrl方法GsonConverterFactory.create()方法addConverterFactory()方法build()方法总结创建网络请求接口的实例源码解析retrofit.create(xxx.class)方法Call call = xxxx.getCall()总结执行网络请求源码解析同步请求OkhttpCall.exec原创 2021-05-25 21:43:13 · 292 阅读 · 1 评论 -
Rxjava------从1.0升级到2.0的变化
Rxjava从1.0升级到2.0的变化1. 观察者模式更新---完美支持背压策略2. 语法更新关于传入null参数关于Action的更新什么是Action?到Rxjava2.0的更新关于Func的更新关于Subscription的更新新增了doOnCanael3. 关于线程调度的更新参考文章1. 观察者模式更新—完美支持背压策略 在RxJava1 中 Observable 不能很好地支持 backpressure ,会抛出MissingBackpressureException。所以在 RxJava原创 2021-05-12 16:04:38 · 314 阅读 · 0 评论 -
Rxjava的背压策略
Rxjava的背压策略同步订阅和异步订阅1. 同步订阅2. 异步订阅异步订阅存在的问题(为什么引入背压策略)背压策略的概述1. 背压的定义2. 背压的作用3. 背压策略的原理背压的实现Flowable1. Flowable的介绍2. Flowable的特点3. Flowable与Observable的区别:3. Flowable的基本使用背压的使用1. 控制观察者接受事件的速度异步订阅情况同步订阅情况2. 控制被观察者发送事件的速度同步订阅情况:异步订阅情况采用背压模式策略:BackpressureStra原创 2021-05-12 15:18:04 · 1157 阅读 · 1 评论 -
Rxjava的操作符(3)------功能操作符和条件操作符
Rxjava的功能操作符和条件操作符Rxjava的功能操作符线程调度1. subscribeOn()2. observeOn()延迟操作1. delay()在事件的生命周期中操作1. do()错误处理1. onErrorReturn()2. onErrorResumeNext()/onExceptionResumeNext()3.retry()retryUntil()retryWhen()重复发生操作1. repeat()2. repeatWhen()Rxjava的条件操作符1.all()takeWhile原创 2021-05-12 15:06:36 · 258 阅读 · 0 评论 -
Rxjava的操作符(2)------组合操作符和过滤操作符
Rxjava的组合操作符和过滤操作符Rxjava的组合操作符组合操作符的作用组合多个被观察者1. concat()/concatArray()2. merge()/mergeArray()3. concatDelayError()/mergeDelayError()合并多个事件1. zip()2. combineLatest()3. combineLatestDelayError()4. reduce()5. collect()发送事件前追加发送事件1. startWith()/startWithArray原创 2021-05-12 15:05:12 · 191 阅读 · 0 评论 -
Rxjava的操作符(1)------创建操作符和变换操作符
Rxjava的创建操作符和变换操作符Rxjava的创建操作符1.基本创建 create()2. 快速创建(1)just()(2)fromArray()(3)fromIterable()(4)其他 empty,error,never等3. 延迟创建(1)defer()(2)timer()(3) interval()(4)intervalRange()(5)range()/rangeLong()Rxjava的变换操作符1. 变换操作符的作用2. 变换操作符的汇总介绍1. Map()2. flatMap()3.原创 2021-05-12 15:03:21 · 202 阅读 · 2 评论 -
Rxjava------初识Rx和Rxjava
文章目录什么是RxRx的特点函数响应式编程Rxjava的原理1. 扩展的观察者模式2. Rxjava的观察者模式流程Rxjava的基本使用分步骤实现Rxjava--基于事件流的链式编程两个使用例子什么是RxRx是一个编程模型,目标是提供一致性的编程接口,帮助我们更方便的处理异步数据流。Rx是一个使用可观察数据流进行异步编程的编程接口,ReactiveX结合了观察者模式,迭代器模式和函数式编程的精华。Rx的特点使用的是观察者模式简化代码:函数式风格:对可观察数据流使用无副作用的输入输出原创 2021-05-12 14:56:20 · 255 阅读 · 1 评论