自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (11)
  • 收藏
  • 关注

原创 Java23种设计模式总汇

Java23种设计模式总汇设计模式分为三大类:创建型模式:(共五种)分别是工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式:(共七种)分别是适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式:(共十一种)分别是策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

2016-08-23 22:58:39 646

原创 Android四大组件之Service服务学习笔记(一)

Android四大组件之Service服务学习笔记  Service是安卓四大组件之一,服务是用在后台处理事情的,并且是不可见的,该服务不是我们所说的服务器的服务,他经常用来处理一些循环操作,但是它不同于子线程,服务是运行在主线程中的。   服务一般分为本地服务和远程服务,这里先介绍本地服务。   本地服务通常用两种启动方式   1. 直接启动模式     我们可以通过startSe

2016-08-31 20:03:55 662

原创 Java设计模式之抽象工厂模式

Java设计模式之抽象工厂模式抽象工厂模式介绍   抽象工厂模式是创建型设计模式之一,在之前的学习中,我们已经了解了工厂方法模式,那么这个抽象工厂模式又是什么呢?大家可以联想一下现实中的工厂肯定都是具体的,也就是说每个工厂都会生产某一种具体的产品,那么抽象工厂意味着生产出来的产品是不确定的,那这样是不是很奇怪呢?其实定义这种设计模式,是非常方便的,因为我们都知道,如在Android中,有对应的B

2016-08-29 23:51:35 549

原创 Android之BroadcastReceiver(接收广播消息)学习笔记(一)

Android之BroadcastReceiver(广播消息)学习笔记  BroadcastReceiver是四大组件之一,这种组件本质上就是一个全局监听器,用于监听系统全局的广播消息。这种实现,就是我们典型的观察者设计模式了,谁需要监听广播,就注册一个相应的广播即可

2016-08-29 21:47:30 3971

原创 Java设计模式之工厂方法模式

Java设计模式之工厂方法模式工厂方法模式介绍      工厂方式模式是创建型设计模式之一。工厂方法模式是一种结构简单的模式,其在我们平时开发的过程中应用很广泛,也许你并不知道,但是你已经使用了无数次该模式了,如在Android中的Activity里的各个声明周期方法,以onCreate方法为例,它就可以看作是一个工厂方法,我们在其中可以构造我们的View并通过setContentView返回

2016-08-28 23:57:11 496

原创 Android之ViewPager学习笔记(MVP模式)

Android之ViewPager学习笔记(MVP模式)  今天来分享分享我在android中学习的ViewPager控件,相信大家对这款控件非常熟悉也非常喜爱,在我们平时的微信中,滑动一个个的界面,就可以用我们的ViewPager来实现,由于内容不是很多,我今天就只用简单的MVP模式来写,不使用通用MVP模式了。 今天主要学习的内容有: 1. 如何实现简单的图片滑动

2016-08-28 13:38:57 1217

原创 Android之okHttpClient+handler+LruCache缓存网络图片学习笔记(通用MVP模式)

Android之okHttpClient+handler+LruCache缓存网络图片(通用MVP模式)上一次我在学习过程中,写了一篇关于缓存网络图片的学习笔记,在那一篇博客中使用的是AsyncTask异步任务请求的方式缓存的,这一次我从学习中,学会了一种新的缓存方法,就是通过LruCache去缓存数据,LruCache是一种内存缓存机制,采用了最近最少LRU算法,这样的效率比直接去判断从本地出数据

2016-08-27 17:03:20 1260

原创 Android之通用MVP模式框架

Android之通用MVP模式框架在最近的学习中,我写代码都一直在使用通用的MVP模式框架,在使用的过程中,最让我感触非常深的是,整个代码的层次感非常清晰,耦合度非常低,扩展非常方便,以及能很好的处理Presenter和View直接内存溢出情况。如果你在写代码,我非常建议你使用这种框架下,下面请跟着我的思路走吧。1、先看以下的构架:在这里你将看到model层下的BaseModelInter、pres

2016-08-27 15:42:27 6521 6

原创 Java设计模式之原型模式

Java设计模式之原型模式原型模式的介绍:     原型模式是一个创建型的模式,原型二字表名了该模式应该有一个样板实例,然后用户想从这个样板中复制出一个内部属性一致的对象,这种过程也就是我们所说的“克隆”。被复制的实例就是我们所称的“原型”,对于原型模式来说,他是可以定制的,你先要拷贝什么样的数据就自己定义需要什么样的数据即可。原型模式多用于创建复杂的或者构造耗时的实例,因为在这中情况下,复制

2016-08-26 00:07:32 528

原创 Java设计模式之建造者(Builder)模式

Java设计模式之建造者(Builder)模式建造者模式介绍: Builder模式是一步一步创建一个复杂对象的创建性模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的不见解耦,使得构建过程和部件表示隔离起来。因为一个复杂的对象又很多大量组成部分,如电脑,有主板,显卡,显示器,CPU,电源,还有各种小零件等,如何将这些部件装

2016-08-24 23:53:20 888

原创 Android学习笔记MVP模式框架

Android学习笔记MVP模式框架1.MVP模式介绍: 在上一次学习中,我简单的介绍了MVC构架,这次我来简单的介绍下什么是MVP。对于MVP,他其实就是MVC的一个演化版本,MVP全称Model View Presenter。目前MVP在android应用开发中越来越重要了,相信不少的开发者也在各种讨论关于MVP的理论了。那么这个MVP模式他到底有哪些应用的好处呢?首先MVP能够有效的降低

2016-08-23 21:56:16 1019

原创 Java设计模式之单例设计模式

Android设计模式之单例模式单例模式简介:单例模式是应用最广泛的模式之一,相信很多学过java的同学都会使用的这一种设计模式,在应用该模式时, 单例对象的类必须保证只有一个实例存在。因为在很多时候,我们整个系统只需要一个全局变量,这样有利于 我们协调整体的行为。如果在一个应用中,该应用只有一个ImageLoader实例,而这个实例中又含有线程池、 缓存系统、网络请求等,很消耗资源,因此我

2016-08-23 11:49:55 711

原创 Android动画学习之补间动画

Android动画学习笔记之补间动画首先看看补间动画的共同属性:Duration:动画持续的时间(单位:毫秒) fillAfter:设置为true,动画转化在动画被结束后被应用 fillBefore:设置为true,动画转化在动画开始前被应用 interpolator:动画插入器(加速、减速插入器) repeatCount:动画重复的次数 repeatMode:顺序动画(res

2016-08-23 09:43:23 444 1

原创 Android之MVP与MVC、MVVM的区别

Android之MVP与MVC、MVVM的区别1.MVC特点:用户可以向View发送指令,再有View直接要求Model改变状态用户也可以直接向Controller发送指令,再由Controller发送给viewController起到事件路由的作用,同时业务逻辑都部署在controller中MVC图示:由上图可以看到,MVC的耦合性还是相对较高,View可以直接访问model,导致3者之间

2016-08-22 18:18:29 1193

原创 Android之MVC模式

Android之MVC模式1.什么是MVCMVC全称是Modle-View-Controller也就是模型-视图-控制器,他是一种框架模式而非设计模式,作为框架来说,其主要的用途是对软件设计进行分工的。 view层:负责向用户展示界面信息。 model层:负责主要的业务逻辑处理。 controller层:主要负责从view读取数据,控制用户输入,并向模型发送数据,2.MVC的优点对于M

2016-08-22 17:42:20 633

原创 Android之SqliteDatabase(MVP模式)实现用户登录注册功能

Android之SqliteDatabase(MVP模式)实现用户登录注册功能用户登录以及注册功能的普遍使用就不用我说了,任何一款应用软件基本都具有登录和注册功能,今天通过前面的学习,我写了一个小demo,就是使用MVP模式写一个用户登录和注册的功能。有关MVP模式我就不做讲解了,通常来说很多实现的登录或者注册功能都是使用MVC的模式来实现的,今天我将采用MVP模式来实现这个小demo,主要是为了巩

2016-08-20 18:58:32 4776 4

原创 Adroid之SqliteDatabase学习笔记

Android之SqliteDatabase数据库学习笔记SqliteDatabase概述: 大家对sqlite数据库应该是比较了解的,他是一个轻量级的数据库,并且他只是一个嵌入式的数据库引擎,专门适合于资源有限的设备(如手机、PAD等)上存储适量的数据。那么android为我们提供了SqliteDatabase代表一个数据库(底层就是一个数据库文件),只要获取到这个对象,我们就可以对数据库进行

2016-08-19 23:31:35 476

原创 Android之选项菜单子菜单学习笔记

Android之选项菜单和子菜单学习笔记菜单简介:菜单在桌面应用中使用十分广泛,几乎所有的桌面应用都有菜单。但是随着手机的发展,对于手机桌面菜单的使用减少了很多,一般来说我们把菜单都放到应用中是实现,桌面应用的菜单与手机应用的菜单的不同之处就是,桌面菜单一般可见,而手机不可见,通常需要用户按下手机上的MENU键时,才会弹出菜单的相关应用,这里简单的来说下菜的简单使用情况,通过一个小案例来讲解。

2016-08-18 17:58:00 1404

原创 Java设计模式之模板方法模式

Java设计模式之模板方法模式1.什么是模板方法模式(Template Method) 为算法的执行定义了一个统一的框架,其中的某些具体实现方法需要他在子类中去完成,每个子类所做的事情可能都不一样,而子类可以在不改变这个框架的同时去完成该算法的某个具体步骤,这就是我们所说的模板模式。生活中的模板:银行办理业务,1、进门取号 2、填写单据 3、等待叫号 4、窗口办理,对于这四个规则,所有来办理业务的

2016-08-18 14:50:01 480

原创 Android-缓存网络图片(MVP模式)学习笔记

Android之缓存网络图片到内存中学习笔记访问网络图片是很普遍的事了,在前面的学习中,我也写过了几次异步网上请求网络图片,但是没有缓存图片,那么我们也都知道,有时候访问一些经常访问的网络图片,如果不采取缓存的形式,那么对流量的消耗会非常大,所以,有必要的时候我们可以采取缓存图片的方式来解决流量消耗问题,下面就通过一个MVP模式的简单设计来这里写代码片讲解一下缓存网络图片。整体的结构如下:首先对于缓

2016-08-18 13:41:48 1853

原创 AndroidUI控件-AlertDialog弹窗控件

AndroidUI控件-AlertDialog弹窗控件有关android的弹窗界面相信大家见过不少了,手机上很多应用软件都涉及到弹窗控件,比如典型的每次删除一个图片或者卸载一个等都会弹出一个窗口询问是否删除/卸载等,还有我们系统的设置时间/日期等,都用到了这样的控件,下面我将通过代码来总结下常用的几个弹窗控件activity_main.xml<?xml version="1.0" encoding=

2016-08-15 20:22:43 839

原创 Android之ListView分页加载数据功能实现

Android之ListView分页加载数据功能实现什么是ListView分页加载数据功能呢?在现在的大数据时代,我们不可能把某些数据全部展示到界面,好比我们经常会看的QQ空间一样,当你看动态的时候,系统不可能会把所有好友的动态都展示在上面,你能看到的一般都是最新好友更新的动态,假如你要看非最新的好友动态,通常你都会手指向上滑动屏幕然后去查看,当界面下滑到一定数量的时候,就会看到一个“查看更多”,然

2016-08-14 16:48:06 4581

原创 Android之自定义实现BaseAdapter(通用适配器三)

Android之自定义实现BaseAdapter(通用适配器三)在上一篇中,我们说过,在setData中如果有很多控件的话,我们还是要在该方法中写入很多代码,为了降低开发的方便性,本次就在此基础上再一次优化。实现原理是这样的,每次在setData中都要查找控件,然后setXXX()什么的,我们可以把这写实现放如到ViewHolder中去,在ViewHolder中写入一个链式的方法,来帮助我们来实现功

2016-08-14 11:23:02 587

原创 Android之自定义实现BaseAdapter(通用适配器二)

Android之自定义实现BaseAdapter(通用适配器二)在上一篇通用适配器一中,我们已经把ViewHolder抽取为了一个通用的持有类,极大程度上减少了我们对代码的书写,现在开始在那样的基础上在此抽取,从而达到更优。先回顾上一篇中的MyAdapter.java类中的代码,然后通过这个代码我们再一次抽取封装。public class MyAdapter extends MyBaseAdapte

2016-08-14 10:42:44 494

原创 Android之自定义实现BaseAdapter(通用适配器一)

Android之自定义实现BaseAdapter(通用适配器)通过前面的优化布局之后,我们接着来讲如何打造一个通用的适配器,那么通用适配器能干吗呢?很简单,减少我们对代码的书写,下面开始上代码了。MyAdapter.javapublic class MyAdapter extends BaseAdapter { private List<Student> data; public M

2016-08-13 18:36:51 1778

原创 Android之自定义实现BaseAdapter(优化布局)

Android之自定义实现BaseAdapter(优化布局)上一篇中我们介绍了自定义实现BaseAdapter的普通实现布局,然而上一章也说了普通实现的方式效率会很低,而且对系统开销也很大,所以,那样的实现是为了让初学者能知道可以这样使用,在实际项目中不可能使用那种方式的,要是你在做项目的时候使用普通布局方式,我敢保证,不过试用期你的老板就给你飞机票走人了,好了,闲话少说,本次讲解一下优化布局的实现

2016-08-13 17:29:52 656

原创 Android之自定义实现BaseAdapter(普通实现)

Android之自定义实现adapter(普通实现)对于ListVie来说,数据项的设置有很多种方式,而自定义实现BaseAdapter是最经常用的了,那么这里我们来讲解一下自定义实现BaseAdapter的普通实现。MainActivity.javapublic class MainActivity extends AppCompatActivity { //数据源 private

2016-08-13 16:57:38 790

原创 Android布局控件之ScrollView(滚动视图)

Android布局控件之ScrollView(滚动视图)什么是ScrollView?它就是一个用于为普通组件添加滚动条的组件,一种可供用户滚动的层次结构布局容器,允许显示比实际多的内容。该组件里面最多只能包含一个组件,该组件在默认的情况下,只为其他组件添加垂直滚动条,如果要应用需要添加水平滚动条,则可以借助于另一个滚动视图-HorizontalScrollView来实现。布局:<ScrollV

2016-08-13 10:25:42 7385

原创 Android MVP模式 ListView中嵌入checkBox的使用

MVP模式 ListView中嵌入checkBox的使用本文写的是一个小demo,如何在ListView中嵌入checkBox配合使用,本篇文章与前面的嵌入Button类似,同样的采用MVP模式的写代码,本次案例中会有几个小细节,我将会在案例中介绍。程序基本框架如下: View层:MainActivity.javapublic class MainActivity extends AppCompa

2016-08-12 20:51:15 523

原创 ListView中嵌入布局的Button或多个点击事件

ListView中嵌入布局的多个点击事件有时候在ListView嵌入的布局中有多个事件需要点击,比如一个item中有TextView和Button两个布局,当我们需要获取这两个点击事件时,我们应该如何去获取呢,通常来说,我们都是已经固定好了TextView和Button的id的,,所以,这两个点击事件的id肯定是不会变的,假如我们有10个item,我们需要获取第5个item中的布局的button和T

2016-08-11 11:24:04 19550 2

原创 Android MVP模式 解析JSON 显示到ListView上

Android MVP模式 解析JSON 显示到ListView上有关MVP模式的介绍,这里不作详细解释,稍后会更新MVP设计模式,请等待链接……简述本次的主要功能实现: 通过mvp设计模式,(MVP的主要优势是将view层和model层完全解偶)解析json数据,然后展示到ListView上,所有的讲解将通过注释详细解释整体功能框架如下图所示: view层:负责界面的更新和展示MainA

2016-08-10 22:02:45 5944 5

原创 Android-Activity生命周期 基本方法的作用

Activity什么是生命周期,通俗的讲就是从出生到死亡Activity的生命周期:onCreate() 创建时调用 activity 的第一个生周期,创建一些视图对象等等(不是创建 activity 对象),初始化控件,加载数据等等所有的操作都在这里执行onRestart() 不可见到可见时调用,activity重新回来的回调,比如被其他 activity 遮挡后,遮挡的activit

2016-08-05 21:00:15 729

原创 Java8大排序算法-冒泡排序

冒泡排序冒泡排序算法的运作如下:(从后往前) 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数 3. 针对所有的元素重复以上的步骤,除了最后一个 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较时间复杂度:     数组的初始状态如果是正序的,一趟扫描即

2016-08-04 23:36:08 1275

转载 设计模式六大原则(6)开闭原则(Open Close Principle)

开闭原则(Open Close Principle)定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

2016-08-04 21:39:03 6976

转载 设计模式六大原则(5)迪米特法则(Law Of Demeter)

迪米特法则(Law Of Demeter)定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样

2016-08-04 21:36:23 753

转载 设计模式六大原则(4)接口隔离原则(Interface Segregation Principle)

接口隔离原则(Interface Segregation Principle)定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用

2016-08-04 21:31:12 1041

转载 设计模式六大原则(3)依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则(Dependence Inversion Principle)定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将

2016-08-04 21:26:38 549

转载 设计模式六大原则(2)里氏替换原则(Liskov Substitution Principle)

里氏替换原则(Liskov Substitution Principle)肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,

2016-08-04 21:21:25 943

转载 设计模式六大原则(1)单一职责原则(Single Responsibility Principle)

单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有 可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。

2016-08-04 21:14:41 2115

原创 经典算法-给出2n+1个数,其中有2n个数出现过两次,用简便的最方法求出现一次的数

给出2n+1个数,其中有2n个数出现过两次,用简便的最方法求出现一次的数思路分析:列如给定一个数组 array1 [5,2,4,3,5,2,4,10,3] 想要通过最简单的方式那就是异或了,我们都知道0异或 任何数都是那个数的本身,任何数与自身异或都是0,按照本题的要求,我们可以这样简单的分析 假设n与非自身n的任何数异或,比如n 异或了 m,x,y最后异或到了n,那么最终的结果为m,

2016-08-04 20:40:04 3232

DatabaseUtils

封装数据库操作工具包

2016-09-30

DatabaseUtils工具包

封装的数据库操作

2016-09-30

Fragment+ViewPager滑动界面切换

实现点击选中滑动界面切花效果

2016-09-04

Fragment界面切换

实现简单的界面切换

2016-09-04

LruCache缓存网络图片

网络缓存图片

2016-08-27

MVPCommonDemo

MVP通用框架

2016-08-27

okio-1.9.0.jar

okio-1.9.0

2016-08-26

okio-1.9.0

okio包

2016-08-26

安卓逆向助手

反编译android项目工具

2016-08-25

okhttp3.0.1下载

网络请求工具包,okhttp3.0.1

2016-08-25

MVP模式用户登录注册功能

使用mvp模式实现的用户登录和注册功能

2016-08-20

空空如也

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

TA关注的人

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