框架源码解析
文章平均质量分 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 · 494 阅读 · 0 评论 -
leakcanary 内存优化框架源码解析
造成内存泄露的原因 1.单例传入Activity的context上下文,导致activity关闭了,但是还是被单例模式引用,内存无法回收 解决:采用getApplicationContext 2.非静态内部类会默认持有外部类的引用 解决:使用静态内部类 3.Handle造成的内存泄露 解决:使用静态内部类+activity弱引用 4.new 一个线程造成的 使用静态内部类 5.webview造成的 通过killprocess杀掉进程解决 总结一下:大部分都是非静态内部类造成的 Java的4种对象引用: 强引原创 2021-03-13 21:59:23 · 191 阅读 · 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 · 328 阅读 · 0 评论 -
retrofit源码解析
APP使用retrofit接口层封装请求参数,之后有okhttp完成后续的请求操作。 在服务端返回数据之后,okhttp将原始的结果交给retrofit,retrofit根据用户的需求对结果进行解析。 一、用法: 上传下载的一些正确用法 请求过程7步骤: 1、添加gradle依赖,网络权限 2、创建接收数据的Bean 3、注解配置网络请求接口 4、创建Retrofit实例(builder模式) 5、创建具体的网络请求接口的实例 6、通过call发送网络请求(enqueue或execute) 7、处.原创 2021-03-13 21:39:57 · 275 阅读 · 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 · 290 阅读 · 0 评论
分享