![](https://img-blog.csdnimg.cn/20210826161727253.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
框架源码解析
文章平均质量分 80
框架源码解析
哆啦A梦z
Android开发工程师
展开
-
blockcanary UI卡顿优化框架源码解析
我们都知道Android应用程序只有一个主线程ActivityThread,这个主线程会创建一个Looper(Looper.prepare),而Looper又会关联一个MessageQueue,主线程Looper会在应用的生命周期内不断轮询(Looper.loop),从MessageQueue取出Message 更新UI。链接:https://www.jianshu.com/p/e58992439793主要是3个:ActivityThread,Handle,Looper流程:1、handle.pos原创 2021-03-13 22:05:50 · 381 阅读 · 0 评论 -
leakcanary 内存优化框架源码解析
造成内存泄露的原因1.单例传入Activity的context上下文,导致activity关闭了,但是还是被单例模式引用,内存无法回收解决:采用getApplicationContext2.非静态内部类会默认持有外部类的引用解决:使用静态内部类3.Handle造成的内存泄露解决:使用静态内部类+activity弱引用4.new 一个线程造成的使用静态内部类5.webview造成的通过killprocess杀掉进程解决总结一下:大部分都是非静态内部类造成的Java的4种对象引用:强引原创 2021-03-13 21:59:23 · 114 阅读 · 0 评论 -
eventbus异步框架源码解析
EventBus功能:1、Android事件发布/订阅框架2、事件传递可用于Android四大组件通讯3、EventBus的优点是代码简洁,使用简单,并将事件发布和订阅充分解耦。Handle通信的两种方式?1、UI线程中发送消息给子线程去处理?Handle方式实现:子线程是否可以创建Handle?可以,但是不能直接new,要结合looper,这样就可以在主线程通过sendMessage的方式发送消息给handle了。Handler handler = null; class M原创 2021-03-13 21:56:10 · 224 阅读 · 0 评论 -
retrofit源码解析
APP使用retrofit接口层封装请求参数,之后有okhttp完成后续的请求操作。在服务端返回数据之后,okhttp将原始的结果交给retrofit,retrofit根据用户的需求对结果进行解析。一、用法:上传下载的一些正确用法请求过程7步骤:1、添加gradle依赖,网络权限2、创建接收数据的Bean3、注解配置网络请求接口4、创建Retrofit实例(builder模式)5、创建具体的网络请求接口的实例6、通过call发送网络请求(enqueue或execute)7、处.原创 2021-03-13 21:39:57 · 172 阅读 · 0 评论 -
okhttp网络框架源码解析
一、okhttp使用方法总结1、创建OkHttpClient和Request对象2、将Request封装成Call对象( Call call = client.newCall(request))3、调用call的enqueue(异步)或execute(同步)发送请求 OkHttpClient.Builder builder = new OkHttpClient.Builder(); OkHttpClient client = new OkHttpClient.Bu.原创 2021-01-25 17:13:43 · 179 阅读 · 0 评论