自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lin20080410的专栏

从站在巨人的肩上,向成为巨人迈进... 互相学习!

  • 博客(18)
  • 资源 (10)
  • 收藏
  • 关注

原创 设计模式-备忘录模式(Memento)

备忘录模式(Memento),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到之前保存的状态。Originator(发起人),负责创建一个备忘录Memento,用以记录当前时刻他的内部状态,并可使用备忘录恢复内部状态,Originator可以根据需求决定memento存储Originator的那些内部状态。Memento(备忘

2016-04-15 10:31:41 393

原创 设计模式-状态模式(state)

状态模式(state),当一个对象的内在状态改变时允许改变其行为,这个对象看起啦像是改变了其类。状态模式主要解决的问题是当控制一个对象的状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。如果这个状态判断很简单,就没必要使用状态模式了。State抽象状态类,定义一个接口以封装与context的一个特定状态相关的行为。

2016-04-14 14:40:25 291

原创 设计模式-抽象工厂模式(abstract factory)

抽象工厂模式(abstract factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂模式结构图:AbstractProductA,AbstractProductB是两个抽象产品,之所以为抽象,是因为他们都有可能有两种不同的实现,而ProductA1,ProductA2,ProductB1,ProductB2就是对这两个抽象产品的具体分类的实

2016-04-14 13:48:28 371

原创 设计模式-观察者模式Observer

观察者模式(Observer),又叫发布订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。实现代码:Subject类,主题类或抽象通知者类,一般用一个抽象类或接口实现,他把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删

2016-04-13 16:43:46 361

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

建造者模式(Builder),又叫生成器模式,将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将一个产品的内部表象和产品的生成过程分割开来,从而可以是一个建造过程可以生成具有不同内部表象的产品对象。如果我们使用了建造者模式,你们用户就只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。Builder是为创建一个产品对

2016-04-13 10:55:02 320

原创 设计模式 外观模式(Facade)

外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。代码实现:四个子系统的类:class SubSystemOne{public void methodOne(){//子系统的方法一}}class SubSystemTwo{public void methodTwo(){

2016-04-12 16:55:25 348

原创 文件管理添加删除图片,视频等多媒体文件时,图库不会即时更新的问题

遇到过这样的问题,在文件管理删除一个文件夹,这个文件夹里面包含有图片,然后进入图库查看,发现删除的那个文件夹及图片还在,但是不能查看了,同理的问题,如果是音频,视频也会有这个问题,下面说下修改方法:首先,在文件管理中,做完删除操作后,发出一个广播消息,告诉mediaprovide需要重新扫描一些路径,删除文件或者文件夹的操作,最终会调用下面这个文件:\android\packages\

2016-04-12 16:06:46 3506

原创 设计模式中的几个法则

设计模式中的几个法则,迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以借助第三者转发这个调用。迪米特法则强调的前提是在类的结构设计上,每一个类都应该尽量降低成员的访问权限。其根本思想是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。依

2016-04-11 10:25:40 360

原创 隐藏在应用程序背后的Binder机制

相关文档参考:点击打开链接 http://blog.csdn.net/lin20044140410/article/details/73739901点击打开链接 http://blog.csdn.net/lin20044140410/article/details/50951260如果你对Binder比较陌生,那么对BindService这样的接口应该很熟悉。BindService这函数,就是希望...

2016-04-09 18:54:23 478

原创 设计模式 模板方法模式 TemplateMethod

模板方法模式TemplateMethod,定义一个操作中的算法的骨架,而将一些操作步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法的结构图:AbstractClass 是抽象类,其实也就是一个抽象模板,定义并实现了一个模板方法,这个模板方法通常是一个具体方法,他给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类

2016-04-08 17:07:21 400

原创 设计模式 原型模式 Prototype

原型模式prototype pattern,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式的结构图:原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。它采取复制原型对象的方法来创建对象的实例。原型模式的代码:abstract class Prototype{private String id;pub

2016-04-08 14:19:36 308

原创 设计模式 工厂方法模式 factory method

声明:本博客里面设计模式相关的文章,均是学习 《大话设计模式》 的笔记。工厂方法模式factory method,定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法是一个类的实例化延迟到了他的子类。前面有篇文章,是以计算器为例来学习简单工厂模式,这里还是以计算器为例,来把简单工厂模式,工厂方法模式放一起做个比较。简单工厂模式的结构图:工厂类的代码写法:cla

2016-04-07 15:54:11 759

原创 设计模式-代理模式(Proxy) java示例

代理模式(Proxy),为其他对象提供一种代理,以控制对这个对象的访问。代理模式的结构图:Subject类,定义了RealSubject和proxy的公用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。RealSubject类,定义了proxy所代表的真实实体。Proxy类,保存一个引用使得代理可以访问实体,并提供一个与subject的接口相同的接口

2016-04-07 14:11:43 491

原创 设计模式-装饰模式Decorator JAVA示例

装饰模式Decorator,动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。下面是装饰模式的结构图:基本的代码实现:abstract class Component{public abstract void operation();}class ConcreteComponent : Component{public override

2016-04-06 18:38:23 367

原创 设计模式-策略模式 java实现

如果要做一个商场收银软件,输入商品的数量,单价,计算出收费总额,还要考虑商场的促销形式,比如打8折,满200减30等,先来看下使用简单工厂模式来实现这个需求的示例:package strategy.pattern;//现金收费抽象类public abstract class CashSuper {public abstract double acceptCash(double mo

2016-04-05 15:25:11 389

原创 Android 中进程、线程的概念

一,Android 进程和线程进程-Process 是程序的一个运行实例,以区别于“程序”这一静态的概念,线程-Thread则是cpu调度的基本单位。一个进程的创建是通过Process.start()来完成的,其中的参数可以定制进程启动后最先执行的线程,通常会指定为ActivityThread,所以一个进程起来后先运行的就是这个主线程。Process会通过socket把创建进程的请求发给z...

2016-04-05 08:21:42 4983

原创 Android编译系统简析

Android 编译系统 的简单理解一,Makefile 入门  :简单来说,Makefile提供了一种机制,让使用者可以有效的组织“工作”,这里说的是“工作”,而不是“编译”,因为Makefile并一定是用来完成编译工作,事实上它本身只是一种“规则”的执行者,而使用者具体使用它来做什么没有任何限制,比如可以用它来架构编系统,也能用来生成文档,或者打印log信息等。所以理解makefile

2016-04-04 22:09:06 987

原创 简单工厂模式 java示例

简单工厂模式(simple factory pattern):简单工厂模式属于创建型模式,也叫静态工厂模式,是由一个工厂对象来决定创建哪一种产品类的实例,通过定义一个类来负责创建其他类的实例,被创建的实例通常都有共同的父类。实质是由一个工厂类根据传入的参数,动态决定创建那一个产品类。该模式包含的角色及职责:工厂角色:简单工厂模式的核心,负责实现创建所有实例的内部逻辑,工厂类的创建产品类的方

2016-04-01 15:03:57 656

simple-ffmpeg-player.zip

基于ffmpge实现的简单的播放器.仅包含音视频处理相关代码,不涉及UI.主要作为学习ffmpeg的笔记记录.适合小白,大牛请绕行哈...

2020-03-13

simplePlayer.zip

基于ffmpge实现的简单的播放器.仅包含音视频处理相关代码,不涉及UI.主要作为学习ffmpeg的笔记记录.适合小白,大牛请绕行哈...

2020-03-13

jetty-libs-9.4.zip

jetty-client-9.4.24.v20191120, jetty-continuation-9.4.24.v20191120 jetty-http-9.4.24.v20191120 jetty-io-9.4.24.v20191120 jetty-security-9.4.24.v20191120 jetty-server-9.4.24.v20191120 jetty-servlet-9.4.24.v20191120 jetty-util-9.4.24.v20191120

2019-11-26

Gif文件的解码

Gif图片文件的解码过程

2018-02-14

android studio3.1匹配的gradle版本最新4.4

android studio3.1匹配的gradle版本最新4.4,gradle-4.4-20171031235950+0000-all.zip

2017-12-25

release3.1

cglib/cglib/3.1 Code Generation Library maven依赖 &lt;!-- https://mvnrepository.com/artifact/cglib/cglib --&gt; <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency>

2017-11-21

android make 介绍

android make 介绍 Make 文件说明 整个 Build 系统的入口文件是源码树根目录下名称为“Makefile”的文件,当在源代码根目录上调用 make 命令 时,make 命令首先将读取该文件。 Makefile 文件的内容只有一行:“include build/core/main.mk”。该行代码的作用很明显:包含 build/core/main.mk 文 件。在 main.mk 文件中又会包含其他的文件,其他文件中又会包含更多的文件,这样就引入了整个 Build 系统。 这些 Make 文件间的包含关系是相当复杂的,图 3 描述了这种关系,该图中黄色标记的文件(且除了 $开头的文件) 都位于 build/core/ 目录下。 Android 源码中包含了许多的模块,模块的类型有很多种,例如:Java 库,C/C++ 库,APK 应用,以及可执行文件 等 。并且,Java 或者 C/C++ 库还可以分为静态的或者动态的,库或可执行文件既可能是针对设备(本文的“设备”指 的是 Android 系统将被安装的设备,例如某个型号的手机或平板)的也可能是针对主机(本文的“主机”指的是开发 Android 系统的机器,例如装有 Ubuntu 操作系统的 PC 机或装有 MacOS 的 iMac 或 Macbook)的。不同类型的模块 的编译步骤和方法是不一样,为了能够一致且方便的执行各种类型模块的编译,在 config.mk 中定义了许多的常量, 这其中的每个常量描述了一种类型模块的编译方式,这些常量有: BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk BUILD_HOST_

2017-11-16

如何分析JAVA crash

如何分析JAVA crash 为什么程序会Crash? 什么是异常? 如何分析JAVA Crash 程序执行时发生了无法处理的异常 崩溃分为 Java Crash 和 Native Crash

2017-11-16

Arm公司培训资料

ARM7总线接口,ARM_THUMB指令,ARM编程技巧,ARM架构,ARM嵌入式开发,ARM处理器内核介绍

2013-12-20

ADB的安装卸载及使用

adb的使用介绍,包括adb的安装,adb的卸载,以及adb的常用的命令

2013-09-27

空空如也

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

TA关注的人

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