自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 Rxjava从使用到原码的解析十三: Rxjava线程切换源码分析(终结版)

先来一段标准代码分析 Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { ...

2019-11-22 14:53:08 111

原创 Android中HashMap分析

本文源码基于AndroidSDK 28里的代码分析,其它的也大同小异,由于SDK里的源码不能Debug,这里就自己创建一个MyHashMap来分析基本使用 MyHashMap<String,String> maps = new MyHashMap<>(); maps.put("12","aaa"); maps....

2019-11-21 17:03:56 552 1

原创 Rxjava从使用到原码的解析十二: Rxjava转换型操作符map原码解析

上一篇讲了创建型操作符,里面需要传个一个泛型假设为String,那么下游接收的泛型也是Stringmap操作符的作用就是,假设我下游需要接收的是一个Bitmap那这个时候就需要类型来转换.下来来分析下Rxjava是如果做到泛型转换的,先来看来.map的代码 public final <R> Observable<R> map(Function<? ...

2019-11-20 11:14:59 122

原创 Rxjava从使用到原码的解析十一: Rxjava创建操作符原码解析

被观察者Observable 实现了ObservableSource接口,泛型为T,从Observable.create方法可以看出,create这个方法一定是一个静态的,代码好下 public static <T> Observable<T> create(ObservableOnSubscribe<T> source) { O...

2019-11-20 10:34:36 114

原创 Rxjava从使用到原码的解析十: Rxjava实战之配合Retrofit请求完注册接口直接再请求登陆接口

一个注册和登陆接口public interface LoginApi { @FormUrlEncoded @POST("user/login") Observable<HttpResult<LoginBean>> login(@FieldMap Map<String, Object> params); @FormUrl...

2019-11-18 16:23:22 361

原创 Rxjava从使用到原码的解析九: Rxjava背压策略

Rxjava背压策略由来:RxJava1.X的时候,还没有背压模式,在我们上游就可以无限发射事件出来,当我们下游处理不过来的时候,就会造成内存泄漏RxJava2.0之后,作者就增加了背压策略-->>Flowable,他拉功能跟Obserable功能基本一样什么时候用Obserable,什么时候用Flowable当上游有大量事件发射的时候,有时会导致下游处理不过来时用Fl...

2019-11-18 15:22:00 408

原创 Rxjava从使用到原码的解析八: Rxjava线程切换

来一个最基本的测试在主线程中做如下操作 Log.e(TAG, Thread.currentThread().getName()); Disposable subscribe = Observable.create(new ObservableOnSubscribe<String>() { @Override ...

2019-11-17 21:52:43 127

原创 Rxjava从使用到原码的解析七: Rxjava异常型操作符

Rxjava异常型操作符onErrorReturn当发射onError事件的时候,就会拦截这个事件onErrorResumeNext 跟onErrorReturn 差不多,只是onErrorResumeNext 返回的是一个被观察者,可以自己发射事件onExceptionResumeNext可以防止应用异常崩溃retry重试操作符,就是当上游发射了onErro...

2019-11-17 20:55:48 120

原创 Rxjava从使用到原码的解析六: Rxjava合并型操作符

Rxjava合并型操作符 : 二个或以上的被观察者进行合并startWithconcatWith跟startWith相反concatmerge合并操作符,跟concat一样,但是他跟concat不同的是他是并列的zipstartWith //Observable(被观察者1).startWith(Observable(被观察者2)) ...

2019-11-17 16:54:25 124

原创 Rxjava从使用到原码的解析五: Rxjava过滤型操作符和条件型作符

Rxjava过滤型操作符主要有以下几种filtertakedistinctelementAtfliterDisposable disposable = Observable.just("sanlu", "feihe") .filter(new Predicate<String>() { ...

2019-11-17 15:47:16 140

原创 Rxjava从使用到原码的解析四: Rxjava变换型操作符

Rxjava变换型操作符: RxJava从上游发射事件到下游接收事件过程中对进行事件变换.创建变换操作符主要有以下几种map Observable.just(1, 2)//内部会先发送A再发送B .map(new Function<Integer, String>() { @Override...

2019-11-17 15:27:27 107

原创 Rxjava从使用到原码的解析三: Rxjava创建型操作符

Rxjava创建型操作符主要有以下几种createjustformArrayemptyrange是用来创建Observable(被观察者)的just操作符的使用 Observable.just("A","B")//内部会先发送A再发送B .subscribe(new Observer<String>()...

2019-11-16 22:10:07 138

原创 Rxjava从使用到原码的解析二:Rxjava2的响应式框架设计的事件流向

Rxjava我们可以把他理解成一个河流,事件的起点我们称为上游,事件的终点我们称为下游,河里面的水都是从上而下流动,所以Rxjava也一样,只能从事件的起源再到事件的处理,不可逆状态,我们如果想要改变事件只能在上游和下游之间对事件进行拦截.上游: 被观察者(Observable)下游: 观察者(Observer)示例代码 public void rx01(View view...

2019-11-16 21:46:22 139

原创 Rxjava从使用到原码的解析一:Rxjava 的使用和标准观察者模式的写法

Rxjava: 一切满足于起点和终点的这种需求都可以用Rxjava这种事件流来完成.比如我们从服务器拿到一个图片,然后经过很多种处理最终显示在我们手机上.先来 看一下Rxjava的观察者模式Observable:被观察者.一个事件的起点Observer: 观察者,一个事件的终点 public void rx01(View view) { //Rxjava的起点...

2019-11-16 21:09:05 160

原创 Binder机制原理的理解(方便以后自己回忆)

Binder的由来Linux内核有几种方式进程间通信Socket :适用网络通信共享内存 : 所有进程共享同一片管道:半双工管道,就比如,A给B事件,跟B给A是二件事情,对讲机这样. 全双工管道: A给B事件,跟B给A同时在一个方向传输,比如电话管道通信: 开始创建A进程管道,A进程打开管道,然后B进程打开管道,进程A就会往管道里写数据 B进程在管道里读数....

2019-11-07 17:36:16 378

原创 组件化4---组件之间相互跳转的逻辑实现

完整组化件和插件化可以参考我的github项目,已经用在线上项目中上面三篇文章我们已经了解了组件化的原理和一些跳转思路,下面我们就一步一步来搭建我们的组件化架构.首先是环境的搭建,可以参考上面三篇文章其次是搭建apt环境1: 创建一个java模块compile,配置相应依赖,下面是配置import javax.tools.JavaCompilerapply plugin:...

2019-11-06 11:22:42 432

原创 组件化3---组件化路由架构

完整组化件和插件化可以参考我的github项目,已经用在线上项目中先看一下路由架构的设计图上面设置图中可以分析出,一个组名对应的一个ARouter$$Apth$$xxx,,而一个ARouter$$Apth$$xxx下面会有多个跟转路径比如: 我们在一个app模块下组名为app,他对应的唯一path为 ARouter$$Apth$$app,而ARouter$$Apth$$app里面又...

2019-11-06 10:49:51 189

原创 组件化2---APT的实现(ARoute)--传统写法和JavaPoet写法

APT技术就是得用注解来自动生成一些类式代码比如下面这个注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.CLASS)public @interface ARouter { String path();//如 /app/MainActivity //可不写,会在path是截取 String gr...

2019-11-05 17:55:08 347

原创 组件化1---组件化架构初步原理

完整组化件和插件化可以参考我的github项目,已经用在线上项目中组件化: 就是将一个完整的功能拆分成多个子模块,而每个子模块可以独立编译和运行,也可以任意的组合成一个新的APP优势: 团队开发过程中方便项目管理,它分工非常明确互不干扰,不存在甩锅.组件与组件之间他们不相互依赖却可以相互交互,任意组合,高度解耦.可以分模块打包,分模块测试,可以统一版本的管理(比如buildto...

2019-11-05 16:27:10 645

MVP简单封装

mvp框架简单封装,支持加载更多数据,get put 请求 mvp框架简单封装,支持加载更多数据,get put 请求

2017-11-28

Android代码实现布局

Android代码实现布局

2017-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除