![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源框架
文章平均质量分 94
分析开源框架流程、原理和源码
汤坤Sunshine
微笑人生~
展开
-
六.热修复
应用在上线后出现bug需要及时修复,不用再发布新的安装包,只需要发布补丁包,在用户无感知情况下修复掉bug。所谓字节码插桩,就是在字节码文件中进行代码编写,而我们的class文件就属于字节码文件。我们编写的java文件在经过编译后,会生成class文件,class文件是2进制格式的,0101这种格式,我们肯定是无法直接在这种格式的文件上进行编码的。第三方框架ASM。如果直接对字节码操作是什么样的一个流程呢?通过文件输入流将字节码文件读到字节数组(byte[])中;对字节数组(byte[]原创 2023-05-31 23:24:50 · 882 阅读 · 0 评论 -
五.Glide
Glide 4.11.0版本代码剖析with通过一个空白的Fragment去管理生命周期,最终返回RequestManager对象load构建出RequestBuilder对象给后面into方法使用into实现了缓存机制等待队列和运行队列活动缓存内存缓存磁盘缓存网络请求。原创 2023-05-29 14:33:40 · 763 阅读 · 0 评论 -
四.Retrofit
核心思想就是AOP思想,面向切面编程。AOP使用场景比如:LeakCanary、BlockCanary、Matrix、LifeCycle、OkHttp(拦截器)等。原创 2023-05-26 18:00:45 · 672 阅读 · 0 评论 -
三.OkHttp
Retrofit对我们的网络请求框架OkHttp进行了一次封装,从而可以实现一些别的功能,比如:设置BaseUrl、添加Gson解析、添加RxJava线程间切换、添加OkHttp网络请求客户端.应用拦截器()会添加到所有拦截器的第一位,因此,应用拦截器会最先收到发送的请求数据,最后收到从服务器返回的数据;网络拦截器()会添加到所有拦截器倒数第二位,也就是请求服务器拦截器的前面,因此,网络拦截器会接收到最完整的请求数据。应用拦截器一定会执行,而网络拦截器不一定会执行,因为可能使用了缓存数据。原创 2023-05-25 11:40:56 · 874 阅读 · 0 评论 -
二.组件化配合ARouter框架使用
大型项目、多人协作开发,此时就可以采用组件化,减少编译时间,减少多人协作代码提交导致的冲突.小型项目、独立完成,这种情况下就没有必要采用组件化来进行过度设计.这里我们拿上面创建的global.gradle文件使用来举例.在project目录下创建全局控制的global.gradle文件,ext {原创 2023-05-23 20:09:53 · 700 阅读 · 0 评论 -
一.RxJava
给上面的代码分配线程最终会通过线程池来进行管理,因此后面执行的任务都是在子线程中进行.执行步骤:(Schedulers.io() == IoScheduler(持有线程池)//构造函数中将线程池变量evictor赋值给成员变量evictorService CachedWorkerPool(long keepAliveTime , TimeUnit unit , ThreadFactory threadFactory) {原创 2023-05-22 00:04:06 · 539 阅读 · 0 评论