自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Android SPI的简单实现

Spi 全称 Service Provider Interface. 即服务提供接口其实就是为某个接口寻找服务的机制,有点类似IOC的思想,将装配的控制权移交给ServiceLoader。SPI在平时我们用到的会比较少,但是在Android模块开发中就会比较有用,不同的模块可以基于接口编程,每个模块有不同的实现service provider,然后通过SPI机制自动注册到一个配置文件中,就可以实现...

2018-04-24 10:36:02 2655

原创 React 组件之间的传值--尤其子组件给父组件传值

组件之间的传值有三种情况,1.父组件给子组件传值2.子组件给父组件传值3.兄弟组件相互传值 1.父组件给子组件传值子组件中通过props 封装属性,当父控件用到子组件是 给属性赋值例:子组件import React from 'react';export default class Chileren extends React.Component{ren...

2018-11-13 17:22:46 429

原创 Java中自定义注解,以及通过反射获得注解

元注解:  元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:    1.@Target,    2.@Retention,    3.@Documented,    4.@Inherited  这些类型和它们所支持的类在java.lang.annotation包中可...

2018-04-24 10:26:32 258

原创 观察者模式

定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都能得到通知并被自动更新简单来说:被观察者发生改变 通知观察者好处 程序不用实时检索 一些数据的更新 观察者模式里有两个元素1.被观察者2.观察者之间的关于 订阅关系Java中 已经定义出了 两个类Observable类和Observer接口为了更好的理解观察者模式 下面通过一个简单的例子 理解一下这个设计...

2018-02-27 15:18:13 218

原创 代理模式

一、概述1. 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后者可抽象为委托类(被代理类)。通过使用代...

2018-02-27 11:27:01 234

原创 建造者模式

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示定义没什么卵用,看下面的例子:我们通过一个例子来引出Builder模式。假设有一个Person类,我们通过该Person类来构建一大批人,这个Person类里有很多属性,最常见的比如name,age,weight,height等等,并且我们允许这些值不被设置,也就是允许为null,该类的定义如下。//要建造的对象public ...

2018-02-27 11:26:09 170

原创 设计模式适配器模式

适配器模式 主要解决 两个模块不兼容的问题 适配器模式主要有两种1.类适配器2.对象适配器(较为常用Android ListView 的适配器采用这种模式)模拟场景:假如A类想用M方法,X类有M方法,但是M方法的结果不一定完全符合A类的需求那么X类就是写死了,不好用,这样设计不好那就把X类换成一个接口,弄出一些B,C,D,E.....类中间类出来,让他们都有一个方法来处理M方法的东西,再给A类用...

2018-02-27 11:24:48 183

原创 GreenDao3.0 的基本使用

GreenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。这里只做了3.0版本基本使用的讲解,想要了解更多关于greenDAO的概念可以看官网greenDAO或者BaiDugreenDAO 优势 1、一个精简的库 2、性能最大化 3、内存开销最小化 4、易于使用的 APIs 5、对 Android 进行高度优化 GreenDao 3.0使用 GreenDao

2017-05-27 11:01:19 1149

原创 Retorfit+RxJava的联合使用

有关Retofit 的知识请看http://blog.csdn.net/outofthinair/article/details/71663349有关RxJava 的知识请看http://blog.csdn.net/outofthinair/article/details/71703027当我们对这两者有了一个认识之后,我们来看一下它们的结合使用 在使用之前我们要添加依赖 标准的retrof

2017-05-26 21:15:12 704

原创 EventBus 事件总线

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦.EventBus有三个主要的元素需要我们先了解一下: ● Event:事件,可以是任意类型的对象。 ● Subscriber:事件订阅者,

2017-05-21 19:57:45 336

原创 RXJava入门

第一个问题 RxJava 是什么?RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。有点抽象,

2017-05-12 08:44:11 295

原创 Retrofit一GET,POST

如果你对Retrofit 不了解请看本博主的Retrofit一依赖于OkHttp 的请求库.了解了相关理论后再看一.GET:1.在URL中没有参数//完整的url//http://result.eolinker.com/Xbiu2Ui13158320a01833d7edf4208fc506fe42578ca5c7?uri=data31.1定义请求接口packagec

2017-05-11 20:33:49 658

原创 Retrofit一依赖于OkHttp 的请求库

首先我们先看gitHup官方上的介绍 A type-safe HTTP client for Android and Java Android和Java的类型安全的HTTP客户端请求库 那么到底什么是Retrofit 框架呢 Retrofit 是Squarre公司出品的目前非常流行的网络框架,效率高,实现简单.运用注解原理和动态代理,极大的简化了网络请求得繁琐步骤,非常适合处理REST fu

2017-05-11 18:32:15 1050

原创 Dagger2 进一步解读

一.在我们编程中可能回出现下面的情况有一个类会在多个类中用到,这时我们想依赖注入,就会出现一个Module对象注入到多个调用者中的情况这时候我们应该怎么做呢?在这里我要说明一下Module 和桥梁Component是成对存在的1.定义一个顶级的Module这个module 提供了Context@ModulepublicclassAppModule {privat

2017-05-10 15:39:35 294

原创 依赖注入--Dagger2

一.什么是依赖注入,首先我认为是一种编程思想简单来说,依赖注入就是为了控制反转和解耦的当两个类或多个类 组合使用时,不可避免的会发生以下情况:public class MovieLister {private MovieFinder finder;public MovieLister() {finder = new MovieFinderImpl();}

2017-05-09 16:20:22 381

原创 Git--忽略文件

忽略文件一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为.gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:$ cat .gitignore*.[oa]*~第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一

2017-05-08 18:06:50 394

原创 Git--远程仓库的使用

远程仓库的使用第一次使用要将仓库克隆到本地1.在本地选好一个文件夹进入该文件夹的命令cd f:cd githup/text2.将远程仓库克隆到本地克隆仓库的命令格式是 git clone [url] 。 比如,要克隆 Git 的可链接库 libgit2,可以用下面的命令:$ git clone https://github.com/libgit2/lib

2017-05-08 18:05:10 368

原创 Git--常用功能及命令

1.获取 Git 仓库 有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。 1.1在现有目录中初始化仓库 如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入: $ git init进入已有目录的命令以F:/XiangmuFirstWork/ChenYipeng2017050

2017-05-06 15:37:05 343

原创 Git分布式版本管理工具--安装,配置

关于Git的简史请自行找百度下面我们详细了解一下Git的使用 1.安装 Git 在不同系统上安装的方法不一样,在此以 Linux 和Windows为例 在 Linux 上安装 如果你想在 Linux 上用二进制安装程序来安装 Git,可以使用发行版包含的基础软件包管理工具来安装。 如果以 Fedora 上为例,你可以使用 yum: sudoyuminstallgit如果你在基于Debi

2017-05-06 15:34:28 418

原创 Android 联网判断

public classNetChecket {public static booleanisHaveNet(Context context){//判断有没有网ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)

2017-05-04 18:50:15 384

原创 Android 系统架构

平台架构 Android 是一种基于 Linux 的开放源代码软件栈,为广泛的设备和机型而创建。上图所示为 Android 平台的主要组件。 1.Linux 内核 2.硬件抽象层 (HAL) 3.2Android Runtime 3.1原生 C/C++ 库 4,Java API 框架 5.系统应用Linux 内核 Android 平台的基础是 Linux 内核。例如,Android

2017-05-04 15:02:02 435

原创 Android 中的对象序列化

1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface must also have a static field called CREATOR, which

2017-05-04 14:34:37 256

原创 Android 中 PopupWindow 的用法

package com.example.popupwindowndemo;import android.os.Bundle;import android.app.Activity;import android.graphics.Canvas;import android.graphics.ColorFilter;import android.graphics.drawa

2017-05-04 14:29:16 400

原创 Java 一些基础知识

1.什么是JDK、JRE、JVM? 之间的关系是什么?JDK: Java Development Kit --> javac命令JRE: Java Runtime Environment --> java命令JVM: Java Virtual Machine --> 核心虚拟机JDK包含JRE JRE包含JVM2.java如何跨平台,简述原理通过javac命令 将j

2017-05-03 20:21:46 313

原创 Java IO流 读写

//加载本地缓存privateString okGetBenDiRequse(String path)throws Exception {//已存在的文件File file =new File(path,"json.txt");//文件输入流FileInputStream inputStream =new FileInputStream(file);

2017-05-03 20:08:06 309

原创 网络编程中TCP/UDP区别

Tcp和UDP的区别TCP传输控制协议) 是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!HTTP和HTTPSHTTP:超文本传输协议是基于TCP的用用层的网络传输协议 端口号是80;连

2017-05-03 19:59:36 351

原创 JAVA IO流简单读写文件

//加载本地缓存privateString okGetBenDiRequse(String path)throws Exception {//此文件已经存在File file =new File(path,"json.txt");//文件读取流(输入流)FileInputStream inputStream =new FileInputStream(fi

2017-05-03 19:55:02 271

空空如也

空空如也

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

TA关注的人

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