自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 集成腾讯bugly的热修复功能sdk步骤

版权声明:本文为博主原创文章,转载发表时请注明出处,尊重原创。首先为什么要集成bugly热修复。市面上有其他的热修复框架,为什么就用bugly?这里给出2张图大家就明白了。引用腾讯bugly官网的一段话:无需关注Tinker是如何合成补丁的无需自己搭建补丁管理后台无需考虑后台下发补丁策略的任何事情无需考虑补丁下载合成的时机

2017-04-26 11:09:13 929

原创 《JAVA与模式》之调停者模式

调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。为什么需要调停者  如下图所示,这个示意图中有大量的对象,这些对象既会影响别的对象,又会被别的对象所影响,因此常常叫做同事(

2016-12-30 11:26:27 331

原创 《JAVA与模式》之解释器模式

解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式的结构  下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示:  模式所涉及的角色如下所示:  (1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色都

2016-12-30 11:25:49 330

原创 《JAVA与模式》之访问者模式

访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。分派的概念  变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。比如:

2016-12-30 11:25:08 340

原创 《JAVA与模式》之状态模式

状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。  状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式的结构  用一句话来表述,状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在

2016-12-29 15:03:24 227

原创 《JAVA与模式》之备忘录模式

备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。  备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。备忘录模式的结构

2016-12-29 15:02:46 260

原创 《JAVA与模式》之命令模式

命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。  命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式的结构  命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。

2016-12-29 15:02:06 225

原创 《JAVA与模式》之迭代子模式

迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。聚集和JAVA聚集  多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化,具有复杂化和多样性。数组就是最基本的聚集,也是其他的JAV

2016-12-29 15:00:59 191

原创 《JAVA与模式》之策略模式

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:

2016-12-29 14:59:42 221

原创 《JAVA与模式》之不变模式

一个对象的状态在对象被创建之后就不再变化,这就是所谓的不变模式。不变模式的结构  不变模式可增强对象的强壮型(robustness)。不变模式允许多个对象共享某一个对象,降低了对该对象进行并发访问时的同步化开销。如果需要修改一个不变对象的状态,那么就需要建立一个新的同类型对象,并在创建时将这个新的状态存储在新对象里。  不变模式只涉及到一个类。一个类的内部状态创建后,在

2016-12-29 14:58:09 249

原创 《JAVA与模式》之桥梁模式

桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。桥梁模式的用意  桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都

2016-12-29 14:57:14 247

原创 《JAVA与模式》之门面模式

门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 医院的例子  现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人

2016-12-29 14:56:22 270

原创 《JAVA与模式》之享元模式

Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型  在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常

2016-12-29 14:55:36 193

原创 《JAVA与模式》之代理模式

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构  所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。  代理模式类图如下:    在代理模式中的角色:  ●  抽象对象角色:声明了目标对象和

2016-12-29 14:54:58 192

原创 《JAVA与模式》之合成模式

合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式  合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。  比如,一个文件系统就是一个典型的合成模式系统。下图是常见的

2016-12-29 14:54:03 187

原创 《JAVA与模式》之单例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构  单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。  饿汉式单例类public class EagerSingleton { private s

2016-12-29 14:52:35 195

原创 《JAVA与模式》之简单工厂模式

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明:  就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证、域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中验证用户)。那么自然的做

2016-12-29 14:48:51 211

原创 《JAVA与模式》之工厂方法模式

工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。  工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明:  相信很多人都做过导入导出功能,就拿导出功能来说。有这么一个需求:XX系

2016-12-29 14:48:12 198

原创 《JAVA与模式》之抽象工厂模式

场景问题  举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。  事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。  同样,在选择主板的时候,也有一系列问题,比如品牌、

2016-12-29 14:47:44 202

原创 《JAVA与模式》之建造模式

建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象  一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象(internal representation)。不同的产品

2016-12-29 14:46:43 265

原创 《JAVA与模式》之装饰模式

装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构  装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。  装饰模式的类图如下:    在装饰模式中

2016-12-29 14:45:02 272

原创 《JAVA与模式》之责任链模式

责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。从击鼓传花谈起  击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客依次坐定位置,由一人击鼓

2016-12-29 14:44:14 457

原创 《JAVA与模式》之适配器模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途  用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决此问题,而

2016-12-29 14:43:09 236

原创 <Java设计模式>—UML类图

UML类图几种关系的总结在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)   1. 泛化(Generalization)  【泛化关系】:是一种继承关系,表示一般

2016-12-29 14:40:54 447

原创 《JAVA与模式》之模板方法模式

模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构  模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。  模板方法模式需要开发抽象

2016-12-28 16:20:42 195

原创 《JAVA与模式》之观察者模式

观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。  观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模

2016-12-28 11:32:27 166

原创 《JAVA与模式》之原型模式

原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原型模式的结构  原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法

2016-12-26 16:45:17 199

原创 <Java设计模式>—UML类图

UML类图几种关系的总结在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)   1. 泛化(Generalization)  【泛化关系】:是一种继承关系,表示一般

2016-12-21 15:19:39 1293

原创 Git查看、删除、重命名远程分支和tag

查看远程分支删除远程分支和tag删除不存在对应远程分支的本地分支重命名远程分支把本地tag推送到远程获取远程tag查看远程分支加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话):$ git branch -a master remote tungway v1.52* zrong remotes/orig

2016-08-17 11:30:39 336

原创 git 查看远程分支、本地分支、删除本地分支

1 查看远程分支123456789101112131415$ git branch -a * br-2.1.2.2 master remotes/origin/HEAD->

2016-08-17 11:17:10 2279

转载 FlowLayout详解(二)——FlowLayout实现

经过上篇的铺垫,这篇就开始正式开始FlowLayout的开发啦,还是先给大家上上效果:从效果图中可以看到,底部container的布局方式应该是layout_width="match_parent",layout_height="wrap_content";好了,废话不多说了,下面开始进入正规。一、XML布局从布局图中可以看到,FlowLayou

2016-02-22 18:01:07 1579

转载 FlowLayout详解(一)——onMeasure()与onLayout()

今天给大家讲讲有关自定义布局控件的问题,大家来看这样一个需求,你需要设计一个container,实现内部控件自动换行。即里面的控件能够根据长度来判断当前行是否容得下它,进而决定是否转到下一行显示。效果图如下在上图中,所有的紫色部分是FlowLayout控件,明显可以看出,内部的每个TextView控件,可以根据大小自动排列。 效果图就是这样子了,第一篇先讲下预备知识。

2016-02-22 18:00:25 573

转载 PullScrollView详解(六)——延伸拓展(listview中getScrollY()一直等于0、ScrollView中的overScrollBy)

延伸一:为什么PullScrollView中getScrollY()有值而ListView中的getScrollY()却一直为零通过查源码,你会发现getScrollY()是View的一个方法。那ScrollView为什么getScrollY()有值呢?让我们仔细分析一下源码:(1)、先看派生ScrollView->FrameLayout->ViewGroup->V

2016-02-22 17:56:53 1933

转载 PullScrollView详解(五)——完全使用listview实现下拉回弹(方法二)

言归正转,这篇就是终极篇了,一般来讲,终极篇总是最有难度的,已经折磨大家四篇文章,这篇文章也终于千呼万唤始出来了。在listview中实现下拉回弹是比较有难度的,因为在listview中有关scroll各方面的获取都需要自己来做,所以整体难度还是比较大。废话不多说,现在开整吧。先来看看效果图:(与PullScrollView的效果是一样一样的)一、搭框架同前

2016-02-22 17:56:12 521

转载 PullScrollView详解(四)——完全使用listview实现下拉回弹(方法一)

在前面三篇中,我为大家展示了使用ScrollView实现下拉回弹的效果。但如果ScrollView里如果嵌套使用ListView就可能会出现问题,因为两者都会有滑动监听。操作起来可能会起冲突,然后解决了冲突问题,到后面页面性能也会很差强人意。即然如此,那我们就直接使用listview来实现下拉回弹的效果就好了。在这篇中,我先给大家展示一种比较容易出效果的方法——重写overScrollBy()

2016-02-22 17:55:10 640

转载 PullScrollView详解(三)——PullScrollView实现

前面铺垫的已经很多了,这篇就要进入正式环节了,下面就是这个系列最终的效果图:  下面我们就一步步来做,这篇就先跟大家一起来实现一个雏形,先把最基本的功能实现。下篇再对一些问题进行优化。一、框架搭建先看看我们要搭建的框架:  大家可以看不明白,它是怎么搭的,我们还是直接上XML代码吧:1、XMLFrameLayout xmlns:android="http

2016-02-22 17:54:07 357

转载 PullScrollView详解(二)——Animation、Layout与下拉回弹

这篇先给大家梳理下有关TranslateAnimation和Layout的知识点,然后我们初步做一个下拉回弹的效果出来。一、TranslateAnimation和Layout我们这里只讲这里所能用到的最重要的知识点,有关各个TranslateAnimation详细的使用方法,可以参考我以前写的博客系列:<Animation动画详解(三)—— 代码生成alpha、scale、tran

2016-02-22 17:53:30 536

转载 PullScrollView详解(一)——自定义控件属性

这里又将介绍另一个控件了——PullScrollView,同样是利用几篇来详细讲述它的实现方法,先看看最终的效果吧:其实效果也挺简单,下拉回弹,然后在下拉的时候顶部的图片伸展。看似简单的效果,用到的知识可不少,今天就先给大家做个铺垫,讲讲如何给自定义控件添加上自定义的控件属性。一、概述平时大家在看别人写的代码时,可能在一个自定义控件的XML中也发现过

2016-02-22 17:52:23 354

转载 PopUpWindow使用详解(二)——进阶及答疑

上篇为大家基本讲述了有关PopupWindow的基本使用,但还有几个相关函数还没有讲述,我们这篇将着重看看这几个函数的用法并结合源码来讲讲具体原因,最后是有关PopupWindow在使用时的疑问,给大家讲解一下。一、常用函数讲解这段将会给大家讲下下面几个函数的意义及用法,使用上篇那个带背景的例子为基础。[java] view plain copy

2016-02-21 20:21:58 560

转载 PopUpWindow使用详解(一)——基本使用

有同学讲到想要知道PopUpWindow的知识,这里就给大家讲一讲PopUpWindow的基本用法和原理吧。这段时间博客可能会更新比较慢,因为你懂的 !!-_- ,往左看公告,嘿嘿。 先看一下我们要做的效果:这个效果很容易理解:当点击btn时,在底部弹出PopupWindow,然后点击各个item弹出对应toast。一、概述1、Popup

2016-02-21 20:20:13 4793 3

空空如也

空空如也

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

TA关注的人

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