<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OutOfThinAir的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OutOfThinAir</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OutOfThinAir]]></copyright><item><title><![CDATA[React 组件之间的传值--尤其子组件给父组件传值]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/84032330</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/84032330</guid><author>OutOfThinAir</author><pubDate>Tue, 13 Nov 2018 17:22:46 +0800</pubDate><description><![CDATA[组件之间的传值有三种情况,

1.父组件给子组件传值

2.子组件给父组件传值

3.兄弟组件相互传值

 

1.父组件给子组件传值

子组件中通过props 封装属性,当父控件用到子组件是 给属性赋值

例:

子组件

import React from 'react';

export default class Chileren extends React.Component{

ren...]]></description><category></category></item><item><title><![CDATA[Android SPI的简单实现]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/80060815</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/80060815</guid><author>OutOfThinAir</author><pubDate>Tue, 24 Apr 2018 10:36:02 +0800</pubDate><description><![CDATA[Spi 全称 Service Provider Interface. 即服务提供接口其实就是为某个接口寻找服务的机制，有点类似IOC的思想，将装配的控制权移交给ServiceLoader。SPI在平时我们用到的会比较少，但是在Android模块开发中就会比较有用，不同的模块可以基于接口编程，每个模块有不同的实现service provider,然后通过SPI机制自动注册到一个配置文件中，就可以实现...]]></description><category></category></item><item><title><![CDATA[Java中自定义注解,以及通过反射获得注解]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/80060704</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/80060704</guid><author>OutOfThinAir</author><pubDate>Tue, 24 Apr 2018 10:26:32 +0800</pubDate><description><![CDATA[元注解：　　元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型，它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解：　　　　1.@Target,　　　　2.@Retention,　　　　3.@Documented,　　　　4.@Inherited　　这些类型和它们所支持的类在java.lang.annotation包中可...]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79388806</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79388806</guid><author>OutOfThinAir</author><pubDate>Tue, 27 Feb 2018 15:18:13 +0800</pubDate><description><![CDATA[定义:定义对象间的一种一对多的依赖关系，当一个对象的状态发送改变时，所有依赖于它的对象都能得到通知并被自动更新简单来说:被观察者发生改变 通知观察者好处 程序不用实时检索 一些数据的更新  观察者模式里有两个元素1.被观察者2.观察者之间的关于  订阅关系Java中 已经定义出了 两个类Observable类和Observer接口为了更好的理解观察者模式  下面通过一个简单的例子 理解一下这个设计...]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385904</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385904</guid><author>OutOfThinAir</author><pubDate>Tue, 27 Feb 2018 11:27:01 +0800</pubDate><description><![CDATA[一、概述1. 什么是代理我们大家都知道微商代理，简单地说就是代替厂家卖商品，厂家“委托”代理为其销售商品。关于微商代理，首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁，也就是说，“委托者”对我们来说是不可见的;其次，微商代理主要以朋友圈的人为目标客户，这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象，前者可抽象为代理类，后者可抽象为委托类(被代理类)。通过使用代...]]></description><category></category></item><item><title><![CDATA[建造者模式]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385881</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385881</guid><author>OutOfThinAir</author><pubDate>Tue, 27 Feb 2018 11:26:09 +0800</pubDate><description><![CDATA[将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示定义没什么卵用,看下面的例子:我们通过一个例子来引出Builder模式。假设有一个Person类，我们通过该Person类来构建一大批人，这个Person类里有很多属性，最常见的比如name，age，weight，height等等，并且我们允许这些值不被设置，也就是允许为null，该类的定义如下。//要建造的对象public ...]]></description><category></category></item><item><title><![CDATA[设计模式适配器模式]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385831</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/79385831</guid><author>OutOfThinAir</author><pubDate>Tue, 27 Feb 2018 11:24:48 +0800</pubDate><description><![CDATA[适配器模式 主要解决 两个模块不兼容的问题  适配器模式主要有两种1.类适配器2.对象适配器(较为常用Android ListView 的适配器采用这种模式)模拟场景:假如A类想用M方法，X类有M方法，但是M方法的结果不一定完全符合A类的需求那么X类就是写死了，不好用，这样设计不好那就把X类换成一个接口，弄出一些B，C，D，E.....类中间类出来，让他们都有一个方法来处理M方法的东西，再给A类用...]]></description><category></category></item><item><title><![CDATA[GreenDao3.0 的基本使用]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72779532</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72779532</guid><author>OutOfThinAir</author><pubDate>Sat, 27 May 2017 11:01:19 +0800</pubDate><description><![CDATA[GreenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。这里只做了3.0版本基本使用的讲解,想要了解更多关于greenDAO的概念可以看官网greenDAO或者BaiDugreenDAO 优势 
1、一个精简的库 
2、性能最大化 
3、内存开销最小化 
4、易于使用的 APIs 
5、对 Android 进行高度优化 
GreenDao 3.0使用 
GreenDao]]></description><category></category></item><item><title><![CDATA[Retorfit+RxJava的联合使用]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72773644</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72773644</guid><author>OutOfThinAir</author><pubDate>Fri, 26 May 2017 21:15:12 +0800</pubDate><description><![CDATA[有关Retofit 的知识请看http://blog.youkuaiyun.com/outofthinair/article/details/71663349
有关RxJava 的知识请看http://blog.youkuaiyun.com/outofthinair/article/details/71703027
当我们对这两者有了一个认识之后,我们来看一下它们的结合使用 
在使用之前我们要添加依赖 
标准的retrof]]></description><category></category></item><item><title><![CDATA[EventBus 事件总线]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72604340</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/72604340</guid><author>OutOfThinAir</author><pubDate>Sun, 21 May 2017 19:57:45 +0800</pubDate><description><![CDATA[EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment，Activity，Service，线程之间传递消息.优点是开销小，代码更优雅。以及将发送者和接收者解耦.EventBus有三个主要的元素需要我们先了解一下： 
  ● Event：事件，可以是任意类型的对象。 
  ● Subscriber：事件订阅者，]]></description><category></category></item><item><title><![CDATA[RXJava入门]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71703027</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71703027</guid><author>OutOfThinAir</author><pubDate>Fri, 12 May 2017 08:44:11 +0800</pubDate><description><![CDATA[第一个问题 RxJava 是什么?
RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for
 the Java VM"（一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库）。
有点抽象,]]></description><category></category></item><item><title><![CDATA[Retrofit一GET,POST]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71692936</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71692936</guid><author>OutOfThinAir</author><pubDate>Thu, 11 May 2017 20:33:49 +0800</pubDate><description><![CDATA[如果你对Retrofit 不了解请看本博主的Retrofit一依赖于OkHttp
 的请求库.了解了相关理论后再看
一.GET:
1.在URL中没有参数
//完整的url
//http://result.eolinker.com/Xbiu2Ui13158320a01833d7edf4208fc506fe42578ca5c7?uri=data3
1.1定义请求接口
package
c]]></description><category></category></item><item><title><![CDATA[Retrofit一依赖于OkHttp 的请求库]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71663349</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71663349</guid><author>OutOfThinAir</author><pubDate>Thu, 11 May 2017 18:32:15 +0800</pubDate><description><![CDATA[首先我们先看gitHup官方上的介绍 
A type-safe HTTP client for Android and Java 
Android和Java的类型安全的HTTP客户端请求库 
那么到底什么是Retrofit 框架呢 
Retrofit 是Squarre公司出品的目前非常流行的网络框架,效率高,实现简单.运用注解原理和动态代理,极大的简化了网络请求得繁琐步骤,非常适合处理REST fu]]></description><category></category></item><item><title><![CDATA[Dagger2 进一步解读]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71537428</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71537428</guid><author>OutOfThinAir</author><pubDate>Wed, 10 May 2017 15:39:35 +0800</pubDate><description><![CDATA[一.在我们编程中可能回出现下面的情况
有一个类会在多个类中用到,这时我们想依赖注入,就会出现一个Module对象注入到多个调用者中的情况
这时候我们应该怎么做呢?
在这里我要说明一下Module 和桥梁Component是成对存在的
1.定义一个顶级的Module
这个module 提供了Context
@Modulepublic
class
AppModule {
privat]]></description><category></category></item><item><title><![CDATA[依赖注入--Dagger2]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71480232</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71480232</guid><author>OutOfThinAir</author><pubDate>Tue, 09 May 2017 16:20:22 +0800</pubDate><description><![CDATA[一.什么是依赖注入,首先我认为是一种编程思想
简单来说，依赖注入就是为了控制反转和解耦的
当两个类或多个类 组合使用时,不可避免的会发生以下情况:
public class MovieLister {
private MovieFinder finder;


public MovieLister() {
finder = new MovieFinderImpl();
}

]]></description><category></category></item><item><title><![CDATA[Git--忽略文件]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71427655</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71427655</guid><author>OutOfThinAir</author><pubDate>Mon, 08 May 2017 18:06:50 +0800</pubDate><description><![CDATA[忽略文件
一般我们总会有些文件无需纳入 Git 的管理，也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件，比如日志文件，或者编译过程中创建的临时文件等。 在这种情况下，我们可以创建一个名为.gitignore 的文件，列出要忽略的文件模式。
 来看一个实际的例子：
$ cat .gitignore*.[oa]*~
第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一]]></description><category></category></item><item><title><![CDATA[Git--远程仓库的使用]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71427547</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71427547</guid><author>OutOfThinAir</author><pubDate>Mon, 08 May 2017 18:05:10 +0800</pubDate><description><![CDATA[远程仓库的使用
第一次使用要将仓库克隆到本地
1.在本地选好一个文件夹
进入该文件夹的命令
cd f:
cd githup/text


2.将远程仓库克隆到本地
克隆仓库的命令格式是 git clone
 [url] 。 比如，要克隆 Git 的可链接库 libgit2，可以用下面的命令：
$ git clone https://github.com/libgit2/lib]]></description><category></category></item><item><title><![CDATA[Git--常用功能及命令]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71268206</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71268206</guid><author>OutOfThinAir</author><pubDate>Sat, 06 May 2017 15:37:05 +0800</pubDate><description><![CDATA[1.获取 Git 仓库 
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中； 第二种是从一个服务器克隆一个现有的 Git 仓库。 
1.1在现有目录中初始化仓库 
如果你打算使用 Git 来对现有的项目进行管理，你只需要进入该项目目录并输入： 
$ git init进入已有目录的命令以F:/XiangmuFirstWork/ChenYipeng2017050]]></description><category></category></item><item><title><![CDATA[Git分布式版本管理工具--安装,配置]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71268016</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71268016</guid><author>OutOfThinAir</author><pubDate>Sat, 06 May 2017 15:34:28 +0800</pubDate><description><![CDATA[关于Git的简史请自行找百度下面我们详细了解一下Git的使用 
1.安装 Git 
在不同系统上安装的方法不一样,在此以 Linux 和Windows为例 
在 Linux 上安装 
如果你想在 Linux 上用二进制安装程序来安装 Git，可以使用发行版包含的基础软件包管理工具来安装。 如果以 Fedora 上为例，你可以使用 yum： 
  sudoyuminstallgit如果你在基于Debi]]></description><category></category></item><item><title><![CDATA[Android 联网判断]]></title><link>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71173488</link><guid>https://blog.youkuaiyun.com/OutOfThinAir/article/details/71173488</guid><author>OutOfThinAir</author><pubDate>Thu, 04 May 2017 18:50:15 +0800</pubDate><description><![CDATA[public class
NetChecket {
public static boolean
isHaveNet(Context context){


//判断有没有网
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)]]></description><category></category></item></channel></rss>