自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 手动模拟Retrofit2 + OkHttp3的拦截器工作原理

模拟拦截器工作原理,加深对责任链模式的理解Request.javapublic class Request {String RequestParams="";}Response.javapublic class Response {String responseParams = “”;}定义拦截器的核心类Interceptor接口与RealInterceptorChainInt...

2019-10-13 21:42:48 303

原创 责任链模式的应用:Retrofit2 + OkHttp3 配置及Interceptor原理

Okhttp的Interceptor拦截器源码解析OkHttp的调用流程:在调用client.newCall(request)将会调用到RealCall.newRealCall(this, request, false);方法,之后将会调用到RealCall.getResponseWithInterceptorChain()函数,而在其中将进行拦截器链的构建。RealCall.java核心...

2019-10-13 21:34:56 416

原创 Java设计模式-责任链模式

责任链模式(Chain of Responsibility Pattern)定义:责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。这使得系统可以在不影响客户端的情况下动态...

2019-10-13 21:06:09 161

原创 View的移动方式

View的移动方式View的移动方式View坐标系scrollTo()/scrollBy()setTranslationX/Y、setX/setY使用平移动画或者属性动画设置View的LayoutParams来移动ViewView的移动方式常见的View的移动方式有setX()/setY()、setTranslationX()/setTranslationY()、动画、scrollTo/scr...

2018-10-29 18:00:33 602

原创 组件化遇到的问题

1.TransformException: java.util.zip.ZipException: duplicate entry: android/support/design/widget/CoordinatorLayout$1.class解决办法: your one of dependency has different version of android support l...

2018-08-30 17:26:33 762

原创 Java数据结构和算法(一)数组

Java数据结构和算法(一)数组分类初始化存储数组为何比链表查询快?使用场景分类基本类型数组 对象数组初始化静态初始化 动态初始化public static void main(String[] args) { //动态初始化 只指定数组长度,由系统分配初始值,初始值根据定义的数据类型来 int[] numbe...

2018-08-19 21:25:46 295

转载 HashMap实现原理分析

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。...

2018-08-16 14:12:35 368

原创 深入理解IntentService(HandlerThread的经典应用)

IntentService 简介public abstract class IntentService extends Service { .......}IntentService是一个抽象类,继承Service。IntentService因为是一个Service,在后台不会轻易被系统杀死。他能够在onHandleIntent中接收intent请求。然后在子线程中...

2018-07-18 20:31:26 303

转载 深入源码解析Android中的Handler,Message,MessageQueue,Looper

转载:https://blog.csdn.net/iispring/article/details/47180325本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文《 Android中Handler的使用》,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解。概括来说,Handler是Android中引入的一种...

2018-07-18 11:31:32 123

原创 深入理解HandlerThread

1.HandlerThread 是什么?英文解释:Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.HandlerThread就是一...

2018-07-17 19:54:20 646

原创 Gson解析泛型对象时TypeToken的使用方法

参考:https://www.jianshu.com/p/cdea9a8db18bpackage com.chen.fanxing;public class Foo<T> { T value; @Override public String toString() { return "Foo [value=" + value + "]"; } ...

2018-07-17 11:13:14 4372 1

原创 设计模式之静态代理与动态代理

1,什么是代理模式?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。2,代理模式有什么好处?在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。静态代理模式代码:package test;public interface Subject { public void doSomething(); }...

2018-07-06 18:27:23 114

原创 Java内存管理

在Java中内存管理,引用分为四大类,强引用HardReference、弱引用WeakReference、软引用SoftReference和虚引用PhantomReference强引用HardReference:    HardReference对象是即使虚拟机内存吃紧抛出OOM也不会导致这一引用的对象被回收弱引用WeakReference:    最容易被垃圾回收。GC发生时即被回收。    通...

2018-07-03 18:43:48 134

原创 RxJava学习(Rxjava1.x)

RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)非常简洁的异步操作以及链式调用。工作过程:事件产生、事件加工、事件订阅1.事件产生:1.1、cre...

2018-07-02 16:51:04 200

原创 搭建Nexus Maven 私有服务器(使用gradle脚本上传aar)

1.安装jdk1.8 下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在~/.bash_profile配置环境export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home...

2018-04-03 13:16:44 792

原创 导入第三方项目因gradle引起的不能运行问题

Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection Possible causes for this

2017-01-10 14:00:52 14394 1

原创 Android Studio在创建项目是一直处于building “project name”gradle project info的解决办法

定位一下gradle的版本以及存放位置。查看gradle版本:gradle -v 查看目录C:\Users\用户名.gradle\wrapper\dists\gradle-1.XX-all存放位置:C:\Users\用户名.gradle\wrapper\dists\gradle-1.XX-all\3jdgemv0iv8uqohg3kcp2o88r1\gradle-1.XX-all.zip知道了版本

2017-01-06 17:09:57 1166

原创 Android Studio 出现 Gradle's dependency cache may be corrupt 错误分析

解决办法: 重新配置gradle路径。

2016-12-28 15:32:05 1170

原创 Unsupported major.minor version 52.0

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcenter() } dependencies { classpath 'com.an

2016-08-25 11:44:23 308

原创 View学习笔记(2)-View的坐标系以及View的滑动1

笔记来自Android群英传与Android开发艺术探究。View的滑动本质来说就是移动一个view,改变当前所处的位置,他的原理和动画的实现非常相似,都是通过不断改变view的坐标来实现滑动效果。所以要实现view的滑动,需要监听用户的触摸事件,根据事件传入的坐标动态且不断改变view的坐标。Android窗口中的坐标系和触控事件 1.Android坐标系 获取坐标系中的点的位置: getL

2016-06-06 15:36:52 305

原创 View学习笔记(1)-Android控件架构

笔记来自Android群英传与Android开发艺术探究。Android中控件被分为两类:View、ViewGroup,每个控件都会在界面中占得一块矩形区域。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。其职责可定义为:给出子View建议的高和宽、测量模式以及决定子view的位置。(子view的高宽属性定义为warp_content时只有其自身才能计算出精确的

2016-06-06 11:56:00 279

原创 自定义ViewGroup---measureChildren

1.遍历所有的子view/** * 遍历所有的子view去测量自己(跳过GONE类型View) * @param widthMeasureSpec 从父容器传递给子容器的布局需求(宽) * @param heightMeasureSpec 从父容器传递给子容器的布局需求(高) */ protected void measureChildren(int

2016-02-29 21:34:07 1018

原创 自定义ViewGroup---理解1

—–记录自定义View学习过程中的点点滴滴,学习自定义ViewGroup的目的是为了自定义控件1.自定义ViewGroup之前要理解AndroidFrame中View的绘制过程/** view的绘制过程: 当Activity获取焦点时,他将被要求绘制自己的布局(onResume中),Activity只需提供他布局的根节点。 绘制过程从布局的根节点开始,从根节点开始测量和绘制整

2016-02-29 18:06:06 448

原创 知识点滴记录:onCreate()过程中获取View的width和Height为0

public class CarJumpActivity extends Activity { private ImageView iv1, iv2; private int[] location1, location2; private CarJumpView jumpview; @Override protected void onCreate(Bundle

2016-02-26 14:09:58 394

原创 Android 线程池

Java为我们提供了ExecutorService线程池来优化和管理线程的使用 使用线程池管理线程的优点1、线程的创建和销毁由线程池维护,一个线程在完成任务后并不会立即销毁,而是由后续的任务复用这个线程,从而减少线程的创建和销毁,节约系统的开销2、线程池旨在线程的复用,这就可以节约我们用以往的方式创建线程和销毁所消耗的时间,减少线程频繁调度的开销,从而节约系统资源,提高系统吞吐量3、在执行大量异步

2016-02-19 11:37:24 253

原创 多线程

1:多线程 (1)就是应用程序有多条执行路径。 进程:就是正在运行的程序。 线程:就是进程的执行路径,执行单元。 (2)如何使用多线程程序: A:方式1 继承Thread类。 a:创建类继承Thread类 b:重写Thread类的run()方法。

2016-02-17 14:50:46 338

原创 医疗项目:电话问诊,需要为电话按钮添加波纹扩散效果

package heshi.x_tools.activity;import android.app.Activity;import android.os.Bundle;import heshi.x_tools.R;import heshi.x_tools.widget.CustomWave;public class WaveActivity extends Activity { priva

2015-12-27 20:11:20 463

原创 JAVA---关于public class的理解

最近突然想到为什么一个类只有一个public class的问题?理解:当我们用public class 来修饰一个类时,这就要求.java文件的文件名与类名要相同。否则编译时会报错说明jvm是根据文件的文件名来寻找同名的类。如果不用public 类名可以与文件名不相同,但使用javac运行程序时 必须使用定义的类名来执行。

2015-11-13 10:50:19 845

转载 android 开发 常用到的一些网络通信包

无线开发一定少不了与服务端进行交互,这自然离不开使用类似于HttpClient的工具包来发送和接受HTTP请求。常用的有一些这些:1. Apache 的 HttpClient(Android2.3之前使用)2. Android 简化扩展版 HttpUrlConnection3. Google 推出的 Volley(在Android2.3之前使用HttpClient,之后使用HttpUr

2015-06-17 15:26:27 458

原创 ActiveAndroid 管理数据库以及ActiveAndroid 如何管理boolean类型

适用于Android平台的轻量级ORM架构第一步配置我们的基本信息: 1 2 3 4 5 6 7 8 910manifest ...> application android:name="com.activeandroid.app.Application" ...> ...

2015-06-08 12:21:17 1252

原创 Android获取网络图片

public void click(View v) throws Exception {try {URL url = new URL(editText.getText().toString());HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setConnec

2014-11-15 16:56:04 317

原创 frameset之间的传值

$("#inspectidsR",parent.topFrame.document).val($("#inspectids").val()+$(this).val()+",");

2014-09-24 09:36:20 1628

转载 yarn

以下为文章内容带有 MapReduce 的 Apache Hadoop 是分布式数据处理的骨干力量。借助其独特的横向扩展物理集群架构和由 Google 最初开发的精细处理框架,Hadoop 在大数据处理的全新领域迎来了爆炸式增长。Hadoop 还开发了一个丰富多样的应用程序生态系统,包括 Apache Pig(一种强大的脚本语言)和 Apache Hive(一个具有类似 SQL 界面的数据仓库

2014-06-25 11:58:23 420

转载 Hadpoop组件介绍

1.1. Hadpoop组件介绍如今Apache Hadoop已成为大数据行业发展背后的驱动力。Hive和Pig等技术也经常被提到,但是他们都有什么功能,为什么会需要奇怪的名字(如Oozie,ZooKeeper、Flume)。Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化、非结构化等)的能力。但这与之前有什么不同?

2014-06-25 09:24:13 1745

转载 vim

vim 选择文本,删除,复制,粘贴  文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 V    从光标当前行开始,光标经过的行都会被选中,再按一下V结束。 Ctrl + v   从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。 

2014-06-24 17:08:40 317

转载 hadoop MapReduce实例解析

hadoop MapReduce实例解析时间2013-04-11 11:06:26  CSDN博客原文  http://blog.csdn.net/liuxiaochen123/article/details/87867151、MapReduce理论简介 1.1 MapReduce编程模型MapReduce采用"分而治之"的思想,把对大规模数据集的操作,

2014-06-23 10:50:50 377

原创 MySQL存储过程和存储函数

1.有输入参数

2014-06-20 15:48:17 557

转载 Orcal之Cursor

一  概念游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率。二  类型  Cursor类型包含三种: 隐式Cursor,显式Cursor和Ref Curs

2014-06-19 17:29:42 476

原创 String、StringBuffer与StringBuilder之间区别

1.String和StringBuffer的区别

2014-06-19 11:05:25 466

转载 JAVA的序列化机制serialVersionUID的作用

Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

2014-06-17 10:29:38 363

dimens文件生成器

根据标准分辨率生成你想要的分辨率适配

2017-07-21

空空如也

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

TA关注的人

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