自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Support依赖库大全

Support依赖库大全 //okHttp请求 implementation 'com.squareup.okhttp3:okhttp:3.11.0' implementation 'com.squareup.okhttp:okhttp-url...

2019-09-01 20:27:59

阅读数 701

评论数 0

翻译 VirtualView属性

VirtualView属性 公共属性+组件容器属性 $ 属性引用, 如 KaTeX parse error: Expected '}', got 'EOF' at end of input: … @ 三元条件表达式,如 @{{logoUrl} ? visi...

2019-04-14 17:37:54

阅读数 172

评论数 0

翻译 Tangram属性

Tangram属性 标题一,流式布局 依次填充,满一行换下一行。 type属性: container-oneColumn 单列(一排一) container-twoColumn 双列 container-threeColumn 三列 container-fourColumn 四列 containe...

2019-04-14 16:01:18

阅读数 320

评论数 0

原创 Tngram用法(一)

Tngram用法(一) 1.依赖库 implementation 'com.alibaba.android:tangram:2.0.5@aar' implementation 'io.reactivex.rxjava2:rxjava:2.2.3' ...

2019-04-14 15:36:14

阅读数 174

评论数 0

转载 Java NIO

Java NIO 非阻塞IO Java NIO

2019-01-09 21:54:46

阅读数 164

评论数 0

原创 Java8 Stream

Stream Stream是元素的集合,将集合数据以流的形式表现出来,以便对其进行操作,各种操作不改变数据源,不存储值,一旦遍历就会失效,需要重新创建。 一,Stream流的创建:需要API 24 1.创建串行流 Stream stream = mList.stream(); stream1.se...

2018-12-18 22:02:43

阅读数 161

评论数 0

原创 Android @ 注解

@注解 1.java.lang包下 //表明重写的是父类方法,检查方法名是否写错 @Override //被弃用的API,不赞成使用 @Deprecated //告诉编译器Lint,对警告保持静默 //deprecation 使用了不赞成使用的...

2018-12-17 23:27:25

阅读数 160

评论数 0

原创 AtomicReference,AtomicInteger,AtomicBoolean

Atomic原子家族 Atomic原子家族可保证在多线程下操作的是同一个对象,而且同一时间只有一条线程能进行操作,保证了下一条线程操作它时是最新数据。 1.AtomicReference原子引用 提供一个对象来供原子读写,可确保在多线程下操作的是同一个对象,且是同步操作。 private stat...

2018-12-14 22:56:40

阅读数 335

评论数 0

原创 RxRelay源码解析

RxRelay源码解析: Relays 是既是Observable也是Consumer的RxJava 类型,由于没有onComplete 或 onError,所以发生异常时不会触发下游的终止状态,不会抛出异常。 //接收订阅之后数据 Relay relay = Publi...

2018-12-13 23:38:00

阅读数 407

评论数 0

原创 自定义RxBus + RxRelay

RxBus + RxRelay实现不抛出异常的事件总线 RxRelay源码地址 依赖库: implementation 'com.jakewharton.rxrelay2:rxrelay:2.0.0' public class RxBus { private Rel...

2018-12-13 23:32:05

阅读数 297

评论数 0

原创 EventBus实战

EventBus实战 1.依赖库 implementation 'org.greenrobot:eventbus:3.1.1' 2.定义事件类,用于Activity/Fragment之间通信 public class MessageEvent { private St...

2018-12-09 19:19:59

阅读数 164

评论数 0

原创 EventBus源码解析(三)EventBus类

EventBus类 public class EventBus { /** Log tag, apps may override it. */ public static String TAG = "EventBus"; //单实例EventBus,默...

2018-12-09 19:00:07

阅读数 353

评论数 0

原创 EventBus源码解析(二)

1.Subscribe 注解接口 /** * 注解接口:用于注解订阅方法 */ @Documented @Retention(RetentionPolicy.RUNTIME) //运行时才处理注解 @Target({ElementType.METHOD}) //注解目标为方法 pub...

2018-12-09 18:51:02

阅读数 165

评论数 0

原创 EventBus源码解析(一)

EventBus事件总线框架 EventBus基于事件的订阅和推送,实现Activity/Fragment之间的通信。 主要角色: Event 传递的事件对象,自定义的一个类,封装了要传递的信息。 Publisher 事件的发布者。 Subscriber 事件的订阅者。 Thr...

2018-12-09 18:34:45

阅读数 434

评论数 0

原创 RxJava(九)并行编程

RxJava的并行编程 RxJava发射的数据流虽然经过各种变换,切换线程,但并没有产生并行效果。 并行:多个处理器或多核处理器同时处理多个任务。 并发:单个处理器同时处理多个任务。 1.Java8并行流 集合上调用parallelStream @TargetApi(24) p...

2018-12-05 22:03:09

阅读数 303

评论数 0

原创 RxJava(八)Disposable和Transformer

Disposable和Transformer 一,Disposable 1.当Observable发送数据,Observer订阅数据时,就形成一个Disposable,可用于在退出时取消订阅。 Disposable disposable = Observable.just(1,2,3) ...

2018-12-04 21:57:29

阅读数 358

评论数 0

原创 RxJava(七)背压Flowable

RxJava背压Flowable 1.背压:在RxJava的异步场景中,被观察者发送数据太快,以至于操作符和订阅者来不及处理数据,造成buffer溢出。 2.Flowable:RxJava中专门用来支持背压,默认队列大小128,所有操作符强制支持背压。 3.背压策略: public enum Ba...

2018-12-03 22:37:35

阅读数 237

评论数 0

原创 RxJava(六)变换操作符

变换操作符 map 对原始Observable的数据进行一个函数操作。 flatMap 对原始Observable的数据进行一个函数操作,然后将每一项数据合并,作为自己的数据序列发射,合并的数据顺序可能交错。 map 对原始Observable的数据进行一个函数操作。 fla...

2018-11-26 23:17:18

阅读数 236

评论数 0

原创 RxBinding2(三)Support-V4库和RecyclerView

RxBinding3 之 RecyclerView,DrawerLayout 依赖库: implementation 'com.jakewharton.rxbinding3:rxbinding-recyclerview:3.0.0-alpha1' implementati...

2018-11-21 22:38:24

阅读数 415

评论数 0

原创 RxBinding2(二)MaterialDesign系列

RxBinding3之MaterialDesign系列 依赖库 implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0-alpha1' 支持组件: private void materi...

2018-11-21 21:37:42

阅读数 628

评论数 0

原创 RxBinding2源码解析

RxBinding源码解析 此处解析一个Click点击事件,其他组件大同小异。 RxBinding/rxbinding/src/main/java/com/jakewharton/rxbinding3/view/ViewClickObservable.kt 源码1: @file:Jvm...

2018-11-21 20:54:53

阅读数 193

评论数 0

原创 RxBinding2(一)基础库组件

RxBinding绑定View事件 通过RxBinding我们可以将View的事件转化为事件流,然后就可以采用RxJava发射事件流,操作符进行操作。 JakeWharton大神开源-项目地址 依赖库support支持: implementation 'com.jakewhar...

2018-11-21 20:15:12

阅读数 698

评论数 0

原创 ButterKnife注解绑定View/资源/事件

ButterKnife注解 ButterKnife提供注解绑定View,资源,事件。不用在写 findViewById(R.id.xxx) ,大大简化了代码。 ButterKnife:注解组件,资源,我丢失绑定事件。 Retrofit:注解网络请求 RxBinding:绑定View事件。 ...

2018-11-18 21:34:56

阅读数 322

评论数 0

原创 Retrofit2 网络请求框架

Retrofit2 一,简介: Retrofit可以将服务端的数据接口 API 转换为在客户端的Java对象,即可进行方法调用,得到希望请求的数据。它采用注解的方式动态生成请求API。 1.首先,创建远程请求接口: public interface UsersService{ ...

2018-11-18 19:38:24

阅读数 489

评论数 0

原创 RxPermission权限请求

RxPermission权限请求 依赖库 implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar' 危险权限 需要用户授权 联系人系列 group:android.permissi...

2018-11-16 23:34:58

阅读数 1450

评论数 0

原创 RxLifecycle防内存泄露

RxLifecycle防内存泄露

2018-11-16 22:41:30

阅读数 224

评论数 0

原创 Andoid 线程池

线程池 一,优点: 重用线程池中的线程,避免因为线程的创建和销毁带来的开销。 能够有效控制线程池的最大并发数,避免线程之间因抢占系统资源而造成阻塞。 能够对线程进行简单的管理,比如提供定时执行和间隔执行的功能。 二,线程池概念源于Executor,实际的实现是Th’readPoo...

2018-11-15 22:17:38

阅读数 144

评论数 0

原创 RxJava2(五)线程调度器Scheduler

线程调度器Scheduler RxJava是一个为异步编程而实现的库,但异步也存在线程安全问题,比如,那些操作需要在前台线程,那些操作又需要在后台线程等等。而Scheduler就是这样一个线程调度器,可以在线程间来回切换。理想的操作是Observable发射数据流,操作符在后台线程处理数据,Ob...

2018-11-11 20:54:54

阅读数 292

评论数 0

原创 RxJava2(四)创建操作符

创建被观察者的操作符 创建操作符: create 从头开始创建一个ObserVable。 just 创建一个发射指定值的Observable。 from 可以将其他种类对象和数据如:Array,Iterable,Future转换为Observable。 repeat 创建一个重...

2018-11-11 16:18:38

阅读数 216

评论数 0

原创 Future

Future Java现在的多线程机制,核心方法run是没有返回值的;如果要得到run方法里面的计算结果,调用mThread.join()保证值返回,必须等待run方法计算完,无论计算过程多么耗时,才会进行下一步。 而Future的核心思想是:分别启动方法去计算几个耗时的操作,不需要等待1计算...

2018-11-11 14:39:23

阅读数 145

评论数 0

原创 RxJava2(三)Subject和Processor

一, Subject 它既是一个Observable可不断调用onNext发射数据,直到遇到onComplete结束,又是一个Observer可订阅数据。它可以将订阅的数据作为自己的数据发射出去。 包含4种类型:AsyncSubject,BehaviorSubject,ReplaySubject,...

2018-11-11 12:24:19

阅读数 740

评论数 0

原创 RxJava2(二)五种被观察者

Observable 一简介 1.Observable即被观察者,决定什么时候触发事件以及触发怎样的事件。 2.Oberver即观察者,他可以在不同的线程中执行任务,极大的简化了并发操作,因为他创建了一个处于待命状态的观察者,可以在某一时刻相应Observable的通知,而不会造成阻塞。 ...

2018-11-11 11:06:45

阅读数 550

评论数 0

原创 RxJava2(一)完整生命周期

RxJava2 学习笔记之简介 ###简介: 1.RxJava用于通过使用被观察者Obverserable/Flowable序列来构建异步和基于事件的库。 2.RxJava支持Java5之后版本,还支持跑在JVM上的各种语言。 3.RxJava可以用在Android开发的任何地方,包括Ap...

2018-11-09 21:52:17

阅读数 243

评论数 0

原创 Android IPC进程间通信(七) Binder连接池

Binder管家之Binder连接池 IPC进程间通信(四)之AIDL中的AIDL由一个Service进行管理,若是创建10个AIDL业务模块是不是也要创建10个Service来进行管理,那100个呢?显然繁琐,怎么办么,用Binder连接池呀! 工作机制: 1.每个业务模块创建其AIDL接...

2018-11-08 22:53:42

阅读数 191

评论数 0

原创 Android IPC进程间通信(六)Socket

网络通信之Socket 特点:功能强大,可通过网络传输字节流,支持一对多并发即时通信。 不支持RPC。 服务端实现: public class SorviceSocket extends Service { private static final String TAG = ...

2018-11-07 22:05:15

阅读数 321

评论数 0

原创 Androi IPC进程间通信(五)ContentProvider

进程间通信之ContentProvider 一,介绍 1.底层实现也是Binder 2.其6个方法除了onCreate方法运行于主线程,其他4个方法由外界回调并运行于Binder线程池。 3.注册ContentProvider需要一个属性android:authorities=“XXXXX...

2018-11-04 22:12:52

阅读数 141

评论数 0

原创 Android IPC进程间通信(四)AIDL

AIDL-Android接口定义语言 一· 1.相比于Messenger AIDL可跨进程调用方法。 2.支持数据类型: (1) Java 的原生基本类型(int, long, char, boolean, double等) (2)String 和CharSequence (3) Ar...

2018-11-04 21:22:39

阅读数 156

评论数 0

原创 Android IPC进程间通信(三)Binder

进程间通信的介质Binder Binder实现了IBinder接口,是android中跨进程通信的一种方式。是服务端和客户端通信的媒介。 Binder的创建: 1.创建自定义类Book.java实现Parcelable接口,以实现序列化可反序列化。 public class Book im...

2018-11-02 22:06:51

阅读数 148

评论数 0

原创 Android IPC进程间通信(二)Messenger

Messenger实现进程间低并发即时通信 Messenger是一种轻量级的IPC,底层实现是AIDL,即可认为Binder。通过在Message中携带Bundle进而实现进程之间传递数据。由于Messenger一次只能处理一个请求,因此服务端们不用考虑线程同步问题。 一,我们在服务端创建一个...

2018-10-31 22:42:41

阅读数 166

评论数 0

原创 Android IPC进程间通信(一)文件共享

IPC进程间通信系列之文件共享

2018-10-30 23:09:30

阅读数 180

评论数 0

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