- 博客(12)
- 资源 (11)
- 收藏
- 关注
原创 RxJava2.0-操作符-Filtering和Combining
简介之前一篇文章讲解了RxJava2.0-操作符-Transforming和内部转换逻辑及原理,现在来看下Filtering(过滤操作符 ),主要有以下几个方法:filter():只发射满足特定条件的项;distinct():过滤重复项;skip():从0开始,跳过前count项;也就是说从count+1项开始发送;skipLast():从count+1项开始跳过;也就
2018-01-29 14:01:49 188
原创 RxJava2.0-操作符-Transforming和内部转换逻辑及原理
简介之前一篇文章讲解了 RxJava2.0-操作符-Creating用法,现在来看下Transforming(转换操作符 ),主要是将一种类型或者值转换为另一种类型或者值;主要有一下几种方法分别是:map:将传入值 根据一定规则去转换,然后返回结果,简单的转换;flatMap:将集合转换成单个的元素;scan:相当于叠加算法,将当前的值和前n个值的和相加buffer:将单个元素...
2018-01-28 09:51:10 547
原创 RxJava2.0-操作符-Creating用法
简介操作符是RxJava中最重要的一部分,主要分为以下几类:创建操作符(Creating ),转换操作符(Transforming),过滤操作符(Filtering),组合操作符(Combining),辅助操作符(Observable Utility),条件操作符(Conditional and Boolean),数学运算操作符(Mathematical and Aggregate),转化操作...
2018-01-28 09:47:28 369
原创 RxJava2.0-Observable原理分析之Create操作符
简介RxJava一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库;扩展了观察者模式以支持数据/事件的序列,并添加操作符,允许您以声明的方式组合序列,同时抽象出对诸如低层次线程、同步、线程安全和conc等问题的关注。相关的入门的介绍有很多,可参考https://www.jianshu.com/p/15b2f3d7141a系列的文章介绍的非常全面;这篇文章的主要介绍相...
2018-01-24 12:02:54 28141 1
原创 线程同步-synchronized
简介之前介绍过线程和线程池的用法,可以很好地提高程序的性能,但是当多个线程访问同一个变量的情况下,变量的值就很难确定,这个时候就需要锁,来确保多个线程访问同一个线程的顺序,确保变量的准确性;就需要用到线程同步(synchronized),当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 阅读之前可先了解线程和线程池的用法synchronized...
2018-01-19 15:43:11 207
原创 AsynTask的用法和内部原理详解
简介AsynTask方便在后台线程中执行操作,然后将结果发给主线程,从而在主线程更新UI,无需关心Thread和Handler;AsynTask只能执行短暂的后台任务,如果需要执行长时间耗时任务,推荐使用java.util.concurrent包中的ThreadPoolExecutor;使用AsynTask至少要重写doInBackground方法,和经常用来更新UI的onPostExecut...
2018-01-19 15:42:55 521
原创 IntentService和HandlerThread
简介IntentService是Service的子类,用来处理异步请求,客服端通过startService(Intentintent)发送请求,IntentService在需要的时候创建,在工作线程(HandlerThread)中处理每个请求,处理完成后IntentService自动关闭;IntentService内部有一个子线程(HandlerThread )和Handler(Serv...
2018-01-19 15:42:26 286
原创 Handler消息机制
简介Handler的使用过程很简单,通过Handler可以轻松的将一个任务切换到Handler所在的线程中去执行;很多人认为Handler的作用是更新UI,这确实没错,但是更新UI只是Handler的一个特殊使用场景;如子线程做耗时任务,当耗时任务结束之后,可能需要在UI上作出改变,由于Android限制子线程不能更新UI,只能在主线程更新UI,所以通过Handler就可以将更新UI 的...
2018-01-16 18:06:57 189
原创 线程和线程池的用法
简介线程是执行并发的单元,有自己的本地存储栈(ThreadLocal),存储参数和局部变量,所有的APP启动的时候,都至少有一个线程(主线程)在运行。系统提供了两种开启线程的方式:1)继承Thread,重写run()方法;2)在Thread的构造函数传入Runnable;然后调用start()方法开启线程。每一个线程都有一个优先级影响系统调用线程的先后顺序;可以通过setPriority(in...
2018-01-16 18:03:50 266
原创 IPC之AIDL
简介 IPC机制:进程间通信(Inter Process Communication的缩写);进程具有独立的资源空间,Android系统为每个进程都分配一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,导致不同虚拟机中访问同一个对象,会产生多个不同的数据副本;所以不同的进程之间无法共享数据,需要IPC机制跨进程通讯,相互传递数据。IPC方式:Bundle,共享文件,广播,Con...
2018-01-10 18:23:31 221
原创 多进程的利弊
简介进程(process):每个APP在启动前必须创建一个进程,该进程是由Zygote进程(孵化器) fork出来的,进程具有独立的资源空间,用于承载APP上运行的各种Activity,Service等组件。一般情况下,一个APP内只有一个进程,除非在AndroidManifest.xml中配置Android:processs属性,四大组件(Activity,Service,BroastRec...
2018-01-10 18:14:31 3947
原创 Service的常见用法分析
简介Service四大组件之一,主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。例如:上传图片,大量计算,保活;Service后台执行任务,但是运行在主线程中,如果需要执行耗时任务,需要开启子线程;Android的后台指:它的运行不依赖UI,即使Activity被销毁,或者程序关闭,只要进...
2018-01-10 17:50:43 807
侧滑删除源码
2018-11-14
二叉查找树的具体实现-java
2018-10-29
OpenCV3编程入门-毛星云
2018-05-15
Android源码设计模式解析与实战-何红辉 关爱民
2018-05-11
Android线程,线程池,AsyncTask,HandlerThread和IntentService的用法
2018-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人