自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (4)
  • 收藏
  • 关注

转载 EventBus使用

本文主要翻译自:https://github.com/greenrobot/EventBus/blob/master/HOWTO.md1. 功能介绍1.1. EventBusEventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。1.2 主要对象事件 (Event)发布者 (Subscriber)订阅者

2016-12-27 21:12:27 325

转载 RxJava 教程第四部分:并发 之线程调度

由于 Rx 目标是用在异步系统上并且 Rx 支持多线程处理,所以很多 Rx 开发者认为默认情况下 Rx 就是多线程的。 其实实际情况不是这样的, Rx 默认是单线程的。 除非你明确的指定线程,否则所有 onNext/onError/onCompleted 以及各个操作函数的调用都是在同一个线程中完成的。例如下面的示例:final BehaviorSubject subject =

2016-12-23 15:37:13 497

转载 打造RxJava生命周期管理框架RxLife

在RxJava实战技巧大全一文中,我们介绍了RxJava使用过程中常见的应用场景和可能遇到的问题,其中我们谈到利用RxLifeCycle来管理RxJava的生命周期,避免内存泄漏问题,今天自己动手打生命周期管理框RxLife来加深对RxJava的认识。  详解Subject   什么是Subject  在RxJava当中,有四个对象值得我们关注:Observable,Subject,O

2016-12-23 15:20:44 722

转载 RxJava简介

通过链式调用序列实现基于事件流的异步编程库。核心思想是把一切重复化的(尤其多重嵌套异步)调用逻辑转换为基于事件(数据)流传递过程的观察者模式。优势在于便捷安全的多种线程切换策略,构建异步事件逻辑,通过事件流(数据流)的切面分解实现逻辑平面化,解除多重异步回调的深层嵌套(Callback Hell)。可在任意复杂场合下保持O(1)的链式结构复杂度,替换AsyncTask / Handle

2016-12-23 14:55:03 366

转载 谜之RxJava (三)—— 线程切换

RxJava最迷人的是什么?答案就是把异步序列写到一个工作流里!和javascript的Promise/A如出一辙。OK,在java中做异步的事情在我们传统理解过来可不方便,而且,如果要让异步按照我们的工作流来,就更困难了。但是在RxJava中,我们只要调用调用subscribOn()和observeOn()就能切换我们的工作线程,是不是让小伙伴都惊呆了?然后结合RxJava的

2016-12-21 20:25:40 356

转载 拆轮子系列:拆 RxJava

本文是 Piasy 原创,发表于 http://blog.piasy.com,请阅读原文支持原创http://blog.piasy.com/2016/09/15/Understand-RxJava/RxJava 这个项目已经持续四年半了,第一个 commit 是在 2012 年 3 月 18 号。我从 14 年 11 月份开始使用 RxJava,应该算是比较早的,将近两年过去了,现在 Rx

2016-12-21 20:21:16 387

转载 RxJava线程切换原理

RxJava在圈子里越来越火,相信很大的一个原因就是它的线程切换。它的线程切换可以用优雅来形容,链式调用,简单、方便。今天,就让我们来窥探一下RxJava的线程切换原理。本次拆轮子,还是按原样,通过小例子,研读RxJava源码等来理解整个过程、结构、原理,我们首要的是先对线程切换的原理有个全局的概览,细节再慢慢来深入。1 前言线程的切换都是通过subscribeOn或者observeOn来

2016-12-21 20:15:47 6942

转载 使用RxJava从多个数据源获取数据

试想,需要一些动态数据的时候,只要每次都请求网络就可以了。但是,更有效率的做法是,把联网得到的数据,缓存到磁盘或内存。具体的说,计划如下:偶尔的联网操作,只为获取最新数据。尽可能快的读取到数据(通过获取之前缓存的网络数据)。 我将通过使用 RxJava,来实现这个计划。基本模式为每一个数据源(网络,磁盘和内存)创建Observable,使用concat(

2016-12-21 19:39:21 709

转载 Android和iOS开发中的异步处理(三)——多个异步任务协作

本文是系列文章《Android和iOS开发中的异步处理》的第三篇。在本篇文章中,我们主要讨论在执行多个异步任务的时候可能碰到的相关问题。通常我们都需要执行多个异步任务,使它们相互协作来完成需求。本文结合典型的应用场景,讲解异步任务的三种协作关系:先后接续执行并发执行,结果合并并发执行,一方优先以上三种协作关系,本文分别以三种应用场景为例展开讨论。这三种应用场景分别是:多级缓

2016-12-21 19:32:50 2336

转载 用一张图解释RxJava中的线程控制

上周五和团队一起讨论了RxJava的用法和实现机制。在讨论中,@坚坚老师 问了一个有趣的问题:如果调用链中包含多个subscribeOn和observeOn,会是什么情况?这实际上是一个至关重要的问题,因为在任何情况下,我们都应该弄清楚我们写的每一行代码到底是运行在哪个线程上。这个问题绝对不能含糊。假设有下面这段伪代码:12345678910111213Obse

2016-12-21 19:17:18 432

转载 Android应用架构

Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play Services我与Ribot Team一起做Android应用已经超过三年了。这段时间,我们所构建的Android应用架构和技术也在不断地演变。本文将向您阐述我们的经验,错误以及架构变化背后的

2016-12-21 16:13:08 317

转载 RxJava简介及在androidstudio中引入RxAndroid

RX的简介RX = Observables + LINQ +Schedulers LINQ 语言集成查询 Language Integrated Query Schedulers 定时任务 RX是一种编程模型,目的是提供统一的编程接口,方便开发者处理仪表数据流。 目前为止RX已经支持几乎所有的主流编程语言。 比较流行的有 RxJava RxJSRx.NET RX

2016-12-21 16:06:29 2482

转载 如何在Eclipse上使用Rxjava

前言前段时间刚玩简书的时候,关注到android开发主题时就留意有个叫Rxjava的东西很火。百度了下并且研究了一番,基本能用上一些基础用法,确实,对于安卓开发来说只能说一句强,无敌。我照着 教程在android studio上试了一把,嗯,好使好用。可是工作项目上想用的时候,发现公司用的Eclipse喔,这tm就尴尬了。百度搜索如何在Eclipse上使用Rxjav

2016-12-21 16:04:51 4507 2

转载 展示模式架构比较MVP(SC),MVP(PV),PM,MVVM和MVC

原文链接:http://www.codeproject.com/Articles/66585/Comparison-of-Architecture-presentation-patterns-M介绍本文将比较4种重要的展示模式架构,包括MVP(SC),MVP(PV),PM,MVVM和MVC。很多开发者围绕着这些模式间有什么不同及何时用哪种模式而感到困惑。本文将首先介绍背景之后解释不同的展示

2016-12-20 20:24:53 978

转载 RxJava操作符(八)Aggregate

在这篇文章里我们来了解一下Rxjava的聚合操作符。    一、Concat    Concat操作符将多个Observable结合成一个Observable并发射数据,并且严格按照先后顺序发射数据,前一个Observable的数据没有发射完,是不能发射后面Observable的数据的。    有两个操作符跟它类似,但是有区别,分别是    1.startWith:仅仅是在前面

2016-12-18 23:10:55 385

转载 RxJava操作符(七)Conditional and Boolean

在这篇文章里我们来了解一下条件和布尔操作符。    一、All/Amb    All操作符根据一个函数对源Observable发射的所有数据进行判断,最终返回的结果就是这个判断结果。这个函数使用发射的数据作为参数,内部判断所有的数据是否满足我们定义好的判断条件,如果全部都满足则返回true,否则就返回false。    Amb操作符可以将至多9个Observable结合起来,让

2016-12-18 23:08:22 638

转载 RxJava操作符(六)Utility

在这篇文章中我们来了解一些辅助操作符,可以让我们更加地方便地处理Observable。    一、Delay    顾名思义,Delay操作符就是让发射数据的时机延后一段时间,这样所有的数据都会依次延后一段时间发射。在Rxjava中将其实现为Delay和DelaySubscription。不同之处在于Delay是延时数据的发射,而DelaySubscription是延时注册Subscr

2016-12-18 23:07:11 533

转载 RxJava操作符(五)Error Handling

我们知道Rxjava对错误的处理很方便,就是当有错误出现的时候就会调用Subscriber的onError方法将错误分发出去,由Subscriber自己来处理错误。这种处理的错误有其优点,也有其缺点,就是每个Subscriber都要来定义如何处理错误,如果由100个Subscriber就要定义100遍,如何来统一地处理这些错误呢?这时我们就可以使用Error handling相关的操作符来集中统一

2016-12-18 23:06:03 280

转载 RxJava操作符(四)Combining

上一篇文章中我们了解了如何对数据进行过滤,在这篇文章里我们来了解一下如何组装多个Observable的数据。    一、CombineLatest    CombineLatest操作符可以将2~9个Observable发射的数据组装起来然后再发射出来。不过还有两个前提:    1.所有的Observable都发射过数据。    2.满足条件1的时候任何一个Observable

2016-12-18 23:04:03 598

转载 RxJava操作符(三)Filtering

在上一篇文章里,我们了解了转化操作符,能将数据转化为我们想要的格式,但是如果数据集合里面有一些我们想要过滤掉的数据怎么办?这时候我们就需要使用过滤操作符了,有点类似于sql里的where,让Observable只返回满足我们条件的数据。    一、debounce    debounce操作符就是起到了限流的作用,可以理解为阀门,当你半开阀门的时候,水会以较慢的速度流出来。不同之处就是

2016-12-18 22:56:31 518

转载 RxJava操作符(二)Transforming Observables

在上一篇文章中,我们了解了如何创建Observable,仅仅创建一个Observable可能无法满足一些复杂的场景,所以我们很可能需要将创建的Observable安装某种规则转化一下来发射数据。在这篇文章里我们来了解一下如何来转化Observable    一、Buffer    顾名思义,Buffer操作符所要做的事情就是将数据安装规定的大小做一下缓存,然后将缓存的数据作为一个集合发

2016-12-18 22:51:41 537

转载 RxJava操作符(一)Creating Observables

RxJava只是ReactiveX(Reactive Extensions)的一种java实现, ReactiveX是一种响应式扩展框架,有很多种实现,如RxAndroid, RxJS, RxSwift, RxRuby等等。RX采用一种类似于观察者的形式来实现各种功能,跟我们一般的写代码思路差别较大。刚开始接触可能会觉得难以理解,但是一旦掌握地话就会体会到其强大之处。其原理就是创建一个Observ

2016-12-18 22:49:51 207

转载 BroadcastReceiver、EventBus的优缺点

今天在知乎上,看到一个关于android中本地广播和eventbus选择的问题,感觉说的挺好的,我在这里记录一下;本地广播是相对消耗时间、空间最多的一种方式,但是大家都知道,广播是四大组件之一,许多系统级的事件都是通过广播来通知的,比如说网络的变化、电量的变化,短信发送和接收的状态,所以,如果与android系统进行相关的通知,还是要选择本地广播;在BroadcastReceiver的 onR

2016-12-11 22:53:50 641

转载 Rx Android实战之项目重构详解

Rx Android算是安卓开发中比较新的一个知识点,今天在网上逛,看到一位Android大神写的有关RxAndroid实战之项目重构相关文章,个人觉得写得非常精彩,分享出来,大家一起观摩观摩~~ RxAndroid + Retrofit 登陆功能重构之前 (只用 Retrofit 做请求): public void onLogin(String phone, St

2016-12-07 20:53:12 457

转载 AsyncTask的缺陷和问题

在Android开发中,AsyncTask可以使得用户避免直接使用Thread类和Handler 来处理后台操作,适用于需要异步处理数据并将数据更新到界面上的情况。AsyncTask适用于后台操作只有几秒的短时操作。但是AsyncTask本身存在很多糟糕的问题,如果使用中不注意,将会影响程序的健壮性。1、生命周期       很多开发者会认为一个在Activity中创建的Async

2016-12-07 20:40:05 332

PhoneGap架构基础及工作原理调研报告

全面而详细的介绍了移动互联网时代用于开发跨平台移动应用程序的成熟框架,该项目由apache维护,只需写一次代码,就能在7个平台上同时运行所写应用程序。

2012-08-26

android https双向通信验证调研报告

全面详细介绍了https 双向 通信 安全验证原理以及在android系统上的实现。

2012-08-26

Oracle合作大学官方培训教材

想学好Oracle的,有这份资料足够啦。听我老师说只有Oracle合作大学才有这些材料。好好珍惜吧

2009-10-09

钱能 C++第二版 第六章性能 课后答案

钱能第二版C++程序设计教程 课后答案答案 今年8月与读者见面

2009-07-12

空空如也

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

TA关注的人

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