北京阿里云ACE会长
操作符分类 ReactiveX的每种编程语言的实现都实现了一组操作符的集合。不同的实现之间有很多重叠的部分,也有一些操作符只存在特定的实现中。每种实现都倾向于用那种编程语言中他们熟悉的上下文中相似的方法给这些操作符命名。 本文首先会给出ReactiveX的核心操作符列表和对应的文档链接,后面还有一个决策树用于帮助你根据具体的场景选择合适的操作符。最后有一个语言特定实现的按字
调度器 Scheduler 如果你想给Observable操作符链添加多线程功能,你可以指定操作符(或者特定的Observable)在特定的调度器(Scheduler)上执行。 某些ReactiveX的Observable操作符有一些变体,它们可以接受一个Scheduler参数。这个参数指定操作符将它们的部分或全部任务放在一个特定的调度器上执行。 使用ObserveO
Subject Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射新的数据。 由于一个Subject订阅一个Obse
Single 介绍 RxJava(以及它派生出来的RxGroovy和RxScala)中有一个名为Single的Observable变种。 Single类似于Observable,不同的是,它总是只发射一个值,或者一个错误通知,而不是发射一系列的值。 因此,不同于Observable需要三个方法onNext, onError, onCompleted,订阅Sing
Observable 概述 在ReactiveX中,一个观察者(Observer)订阅一个可观察对象(Observable)。观察者对Observable发射的数据或数据序列作出响应。这种模式可以极大地简化并发操作,因为它创建了一个处于待命状态的观察者哨兵,在未来某个时刻响应Observable的通知,不需要阻塞等待Observable发射数据。 这篇文章会解释什么是
reactivex.io。 什么是ReactiveX 微软给的定义是,Rx是一个函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序,使用Rx,开发者可以用Observables表示异步数据流,用LINQ操作符查询异步数据流, 用Schedulers参数化异步数据流的并发处理,Rx可以这样定义:Rx = Observables + LINQ
Windows 7 中放大镜的使用方法和快捷键 Windows7下自带了一款放大镜软件,可以很好的帮助视力不太好的朋友或者老人,今天我们深入了解一下Win7的放大镜使用。 打开放大镜的方法是同时按下键盘上的Windows徽标键+加号,打开之后移动鼠标即可浏览不同区域的放大。 如下图所示: 还有很多其中可以进行设置的快捷键,下面的图中都有介
简介 说起 RxJava ,相信诸多 Android 开发者都不会陌生。作为一个知名的响应式编程库,从前年开始逐渐变得火热,从小众到被众多 Android 开发者们广泛引入与流传,其在 GitHub 的 仓库 截止笔者写这篇文章时,已经有16400+个 star 。甚至有一些大牛专门为 Android 写了 RxJava 的适配库,如 RxAndroid RxBindin
观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 观察者模式的组成 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽
前言 很久没有发表从零开始搭建android框架系列这个系列的文章了 。由于最近工作确实有点忙碌,也在脚踏实地的花时间研究android方面自己很多不懂的东西。但是写博客确实是一个坚持不懈和自我提高的过程,也希望在保持文章更新的同时能够保持文章的质量 。之前翻译了一些文章,有兴趣的小伙伴可以去看一下。今天这篇文章来谈一谈RecyclerView的封装,对RecyclerVie
在应用程序内容中使用的标准工具栏。 工具栏是在应用程序布局中使用的操作栏的概括。虽然操作栏传统上是由框架控制的活动的不透明窗口装饰的一部分,但是工具栏可以放置在视图层次结构内的任何任意嵌套级别。应用程序可以选择使用setActionBar()方法将工具栏指定为活动的操作栏。 工具栏支持比ActionBar更集中的功能集。从开始到结束,工具栏可以包含以下可选元素的组合: 导航按钮。
点击下载完整项目 一个Android动画库,可以轻松地添加itemanimator到RecyclerView项目。 特征 动画添加和删除ItemAnimator RecyclerView.Adapter中项目的外观动画 Demo ItemAnimator Adapters Setup Gradle
UltimateRecyclerView是一个RecyclerView(高级和灵活版本的ListView)拉动刷新,加载更多,滑动关闭,拖放和拖放,动画,粘性标题,滚动时显示或隐藏工具栏和FAB和许多其他功能。你可以使用它 就像RecyclerView。 注意,UltimateRecyclerView是一个正在开发的项目。 项目下载地址 特征: 滑动即可刷新
笔记本链接外设显示器或者电视机,正常都是既能现实视频, 又能在外设上传输声音的。 但是在个别笔记本存在只有图像无法传输声音的问题。 比如:联想IBM笔记本, 没有HDMI输出,只有一个DP输出。 需要通过dp转接HDMI,然后连接外部设备,但是声音总是无法传输。 网上很多朋友都在寻找这些问题。但是最终都不了了之,很难解决。这里侥幸解决了。特别分享记录下。 先说电脑
照相机拍照需要的权限: <!--写sd卡权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--读sd卡的权限 --> <uses-permission android:name="android.permis
Camera、 1.权限设置 2.intent、startActivityForResult启动照相 3.onActivityResult 接收照相的返回值 3.1、数据图片保dsdcard 3.2、读取sdcard图片 3.3、图片加载到imageView上 4.点击图片;popupwindow或者新页面放大展示 /** * 1.启动系统的相机
SoundPool SoundPool 主要用于播放一些较短的声音片段,与 MediaPlayer 相比, SoundPool 的优势在于 CPU 资源占用量低和反应延迟小。另外, SoundPool 还支持自行设置声音的品质、音量、 播放比率等参数。 SoundPool(int maxStreams, int streamType, int srcQuality
//=================【frame animation 帧动画】=============================== Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。 Frame动画可以被定义在XML文件中,也可以完全编码实现。(animation-list,标签内容没有提示,就手动添加) 《studio 中
此前一直在使用 UE NODpad++ 等有没有。这些用的很卡很卡,误解啊。 自从发现了 sublime atom 才知道什么叫差距,什么叫飞翔的感觉,就一个字爽啊。 快来认识一下这神一样的编辑器吧。 Sublime Text3超强视觉特效插件—activate-power-mode (ATOM编辑器特效) http://ww2.sinaimg.c
源码下载地址:http://download.csdn.net/detail/flyingsir_zw/9658434 设置 android:galleryItemBackground 后的效果 不设置的效果如下: 设置 android:galleryItemBackground 的方法如下: 1.项目目录res/values/a
/** WebServcie 概念 多个系统数据交换: 跨平台语言的相互通信; 如:java 的客户端 和dotnet的服务器端的接口调用: 得到接口和方法 : 基于标准的协议,可编程语言; 服务器开发 api; 特点: 自包含:只要客户端支持http和xml就可以; 自描述:只需要知道请求响应的类型; 其他的不需要考虑 跨平台:不同语言可以相互通信。
myeclipse tomcat 启动报错,但是不影响访问。 解决问题: 各种查询,只看到相同的问题,没有发现有效的解决办法。 最后的解决是,更换了tomcat,使用了一个免安装的tomcat 8.0.5,启动正常了。 问题如下: 七月 22, 2016 10:15:32 上午 org.apache.catalina.core.AprLifecycleLi
用MyEclipse 创建 Servlet 自己接接口,供客户端访问使用。 /*MyEclipse 创建 WebProject 项目 如:TT 1.创建web项目 1)项目部署 2)启动Tomcat(默认自带的或者本地安装的配置都可以) 端口冲突,需要把8080端口进行修改 Windows-Preferences-MyEclipse-Server
常用的 Android Studio 快捷键: Ctrl+N:查找类 Ctrl+Shift+N:查找文件 Ctrl+Alt+L :格式化代码 Ctrl+Alt+O:优化导入的类和包 Ctrl+/:注释代码 格式://代码块 Ctrl+Shift+/:注释多行代码 格式:/*代码块*/ Ctrl+Alt+Space(空格):自动补全代码 C
android studio 2.1.2 run提示错误信息:Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled. Instant Run requires 'Tools | Android | Enable ADB
各种的动画xml配制文件 给Activity设置启动动画 //设置启动意图 1.startActivity(new Intent(demoMain.this, demoDetail.class)); //设置启动后的,进入和退出的动画 2.overridePendingTransition(R.anim.fade, R.anim.hold); 启动界面:
package android.animation; /** * 时间插值器定义了一个动画的变化率。 * 这让动画让非线性的移动轨迹,例如加速和减速。 * <hr/> * A time interpolator defines the rate of change of an animation. This allows animations * to
//=================【frame animation 帧动画】=============================== Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。 Frame动画可以被定义在XML文件中,也可以完全编码实现。 实现方法两种: 1)xml中的实现方法在/res下的anim或drawable目
关键代码: 简单的通知的实现。 @SuppressLint("NewApi") private void showNotification() { Notification.Builder builder = new Builder(this); // new Notification.Builder(this) builder.setContentTitl
Git for Windows v2.8.3 Release Notes Latest update: May 20th 2016 Introduction These release notes describe issues specific to the Git for Windows release. The release notes covering the
主要代码 package com.cc.selftabhost; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TabHost; import and
广播接收器也是运行在UI线程,因此,onReceive方法中不能执行太耗时的操作。否则将因此ANR。一般情况下,根据实际业务需求,onReceive方法中都会涉及到与其他组件之间的交互,如发送Notification、启动service等。 当此Activity实例化时,会动态将MyBroadcastReceiver注册到系统中。 当此Activity销毁时,动态注册的MyBroa
public class MyAdapter extends BaseAdapter { private Context mContext; private ArrayList<Map<String, Object>> data; public static HashMap<Integer, Boolean> mapisSelector;
View 点击事件的三种形式 2016年4月18日 import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.
1.Activity 中 事件修改 webview中内容 2.webview中事件修改activity中的内容 3.webview中的事件,响应js函数 主要代码实现: @SuppressLint("JavascriptInterface") public class MainActivity extends Activity { private static
Since you're reading these lines, chances are you're among the lucky 2 percent of Android users who happen to have Marshmallow running on their smartphone. You've either received an update t
腾讯数码讯(编译:Raul)现在,各大手机厂商都已经开始陆续推送谷歌最新的Android 5.0 Lollipop系统,甚至谷歌旗下的Nexus系列机型都已经OTA推送了Android 5.0.2版本。对于谷歌的新系统,许多拥有升级资格的Android用户来说真的都非常期待。 Android Lollipop最引人注目的改变之一就是重新设计的用户界面。谷歌官
主要使用 android.media.MediaPlayer; android.widget.SeekBar; <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi
android原生rom,本自带tts语音,在这基础上可以直接调用使用即可。源码如下。 public class TTSdemo extends Activity implements OnInitListener{ /** Called when the activity is first created. */ private EditText inputTe
public class MainActivity extends Activity { //自定义的弹出框类 SelectPicPopupWindow menuWindow; @Override public void onCreate(Bundle savedInstanceState) { super.onCrea
Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。 Intent主要有以下四个重要属性,它们分别为: Action:Action属性的值为一个字符串,它代
win7 64 gradle 2.1 build.gradle task hello { doLast { println 'Hello world!' } } In a command-line shell, move to the containing directory and execute the build
/** * PS2接口,圆口 * */ public interface PS2Port { public void workWithPS2(); } /** * 对象适配器 * 将PS2接口装换成USB接口 * 所以此类类型是USB接口(implements USBPort) + 成员变量ps2Port
Android Studio 版本号 Windows Mac OSX Linux 0.8.9 下载 下载 下载 0.8.8 下载 下载 下载 0.8.7 下载 下载 下载 0.8.6 下载 下载 下载 0.8.5 下载 下载 下载 0.8.4 下载 下载 下载 0.8.3 下载
Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本 Ctrl+F 查找文
svn 报错如下 org.tigris.subversion.javahl.ClientException: RA layer request failed svn: OPTIONS of '【你的svn地址】': Could not resolve hostname `svn.123.net': 不知道这样的主机。 (http://svn.123.net:
前几天群成员讨论过关于9patch的工具【我比较喜欢喊它9妹子,西西(*^_^*)】、然后研究了一下,比较简单但是很实用的一个Android sdk 自带工具、这里给大家做一个分享下经验! 1.什么是“9妹”(9patch)? 它是一个对png图片做处理的一个工具,能够为我们生成一个"*.9.png"的图片; 2.何为"*.9.png"? 所谓
ids.xml 前面我们见识过ids.xml文件,但是这个文件是什么意思呢?我们来看下文档中的介绍: 先看下它给的例子: XML file saved at res/values/ids.xml: 使用方式: 一: android:id="@id/button_ok" 二:Button btn=new