![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 94
BigerBigerWolf
这个作者很懒,什么都没留下…
展开
-
EventBus3.x源码分析之注册(一)
EventBus3.x源码分析之注册(一) 官方链接:https://github.com/greenrobot/EventBus 官方图例: 主要流程: 发布者通过post发送事件,EventBus将事件传递给提前注册好的订阅类。当然分发和处理事件可以指定不同线程,可以给订阅者设置优先级,可以设置粘性事件。索引方式提高性能等。 EventBus的成员: EventBu...原创 2018-04-02 12:52:15 · 436 阅读 · 0 评论 -
EventBus3.x源码分析之注册(二)
EventBus3.x源码分析之注册(二) 上篇文章分析了通用的订阅方法注册,其实EventBus3.0以后提供了一种更加高效的注册方式; 主要思路: 就是配合meta包中提供的SubscriberInfo接口,通过EventBusAnnotationProcessor编译时生成所需的订阅信息,用者只需要在EventBus的构建类EventBusBuilder中通过addIndex添加即可完...原创 2018-04-02 13:10:14 · 325 阅读 · 0 评论 -
EventBus3.x源码分析之发送事件
EventBus3.x源码分析之发送事件 发送事件时,最长使用的就是EventBus.getDefault().post(Object object)方法。 这里只分析非粘性事件发送,因为粘性事件已经再EventBus3.x源码分析之注册(一)中提到过,后续的逻辑同post。 EventBus# public void post(Object event) { PostingTh...原创 2018-04-02 13:32:04 · 304 阅读 · 0 评论 -
SharedPreferences源码分析
初始化操作 @Override public SharedPreferences getSharedPreferences(String name, int mode) { // At least one application in the world actually passes in a null // name. This happened to work becaus...原创 2019-04-17 18:11:09 · 275 阅读 · 0 评论 -
Arouter源码分析
编译期: 在每个module下包括app下,build文件夹com.alibaba.android.arouter.routes包下 a、生成Arouter$$Roo$$(ModuleName) 比如:app下生成Arouter$$Root$$app module-java下生成Arouter$$Root$$modulejava //维护所有的Group public class ARoute...原创 2019-04-17 19:36:19 · 257 阅读 · 0 评论 -
RePlugin源码分析总结
简单介绍(官方wiki) RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。 其主要优势有: 极其灵活:主程序无需升级(无需在Manifest中预埋组件),即可支持新增的四大组件,甚至全新的插件 非常稳定:Hook点仅有一处(ClassLoader),无任...原创 2019-06-14 17:57:33 · 482 阅读 · 0 评论 -
VirtualApk源码分析总结
与RePlugin不同,它进行了Framework层的hook。 ClassLoader: 通过配置,它可以将宿主的ClassLoader中的dexElements数组插入到插件的DexClassLoader的dexElements数组的前面,可以让Dex也能加载宿主中的类。 Resources: 通过配置,可以让宿主的Resources对象访问插件的资源,也可以自己创建插件中的Resour...原创 2019-06-14 18:02:56 · 391 阅读 · 0 评论 -
OkHttp3源码分析总结
//同步请求 Response response = okHttpClient.newCall(request).execute(); //异步请求 okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { ...原创 2019-06-14 18:10:53 · 416 阅读 · 0 评论 -
RxJava2一次流程源码分析总结
//一次调用 Disposable disposable = Observable .create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> e) thro...原创 2019-06-14 18:56:44 · 262 阅读 · 0 评论