自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

转载 【Android】从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)

Handler每个初学Android开发的都绕不开Handler这个“坎”,为什么说是个坎呢,首先这是Android架构的精髓之一,其次大部分人都是知其然却不知其所以然。今天看到Handler.post这个方法之后决定再去翻翻源代码梳理一下Handler的实现机制。异步更新UI先来一个必背口诀“主线程不做耗时操作,子线程不更新UI”,这个规定应该是初学必知的,那要怎么来解决

2017-11-24 20:36:13 394

转载 【软件架构】通俗易懂的MVP架构讲解

从MVC到MVP再到MVVP,相信大家就已经听说过这些架构了。但你真正应用到哪个阶段了呢?是不是还苦于网上对MVP晦涩的讲解?今天,Coder哥就用最通俗易懂的方式告诉你,MVP怎么用!先上一张MVP结构图。 接下来就一步步教你用:1、首先把结构包分好,方便理清思路2、定义Model层的接口IModel/** * Model层接口---实现该接口的

2017-11-24 19:41:45 884

转载 【Android】手机屏幕分辨率与dip、dp、sp的区别

以下文章知其然不知所其然,只能先看看,还有,现在的分辨率除了640x480这几种,还有720x1080这些,所有不一定就是 HVGA屏density=160;QVGA屏density=120WVGA屏density=240;WQVGA屏density=120,所以必须要知道如何计算。android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理

2017-11-24 19:08:03 3639

转载 【Android】ViewPager+Fragment的基本使用

利用ViewPager+Fragment简单实现页面的切换项目的大概组成:以下是代码的实现,首先在activity_main.xml新建菜单栏和ViewPager控件:[html] view plain copyLinearLayout xmlns:android="http://schemas.and

2017-11-23 15:13:20 597

转载 【Android】Android的Adapter中,bindview被调用了多次

http://www.360doc.com/content/13/0422/11/9462341_280069151.shtml在设计某个Activity时,界面使用了ListView,其相应的Adapter中,实现了方法newView()和bindView()。      在测试时发现,放置在方法bindiew()中的Log输出,在每个ListView ite

2017-11-22 21:44:13 1285

转载 【Git】gitk图形界面中文乱码情况

当打开gitk图形界面时,文件中的中文部分乱码了,这大部分是因为编码格式的问题,为了跟上时代的脚步,本人建议都是用utf-8编码。 为了方便,我将全局配置为utf-8编码:git config --global gui.encoding utf-81在备注一下,window下忌用自带记事本编辑文档,使用vim/notepad++,调整编码方式utf-8 without BOM, 因

2017-11-20 21:00:50 422

原创 【事件总线】解析EventBus

/* 为了简化并且更加高质量地在 Activity、Fragment、Thread 和 Service 等之间的通信,同时解决组件之间高耦合的同时能继续高效地通信,事件总线设计出现了。 提到事件总线我们会想到 EventBus 和 otto,所以本章就来讲解它们的使用方法以及原理。*//* EventBus 是一款针对 Android 优化的发布-订阅事件总线。它简化了应用程序内各组件

2017-11-20 20:56:14 483

转载 【Android】XLIFF的应用

在最近的一个开发中,有一个这样的小小需求,就是某一个标签存在三种状态: a、正在连接XXX设备 b、已连接XXX设备 c、与XXX设备已断开从上面我们可以看出,不变的是XXX,我们在实际开发中很有可能遇到这样的情况。当然其解决办法也是有很多种,但是今天我想说的是可以利用XLIFF实现这种效果。XLIFF全称为XML Localization Interchange Fi

2017-11-20 17:37:03 441

转载 【AndroidStudio】Error:Could not find com.android.tools.build:gradle:2.3.3

导入时钟项目时,在C盘用户目录下配置好了3.4的gradle(只需要复制压缩包即可),但打开项目时还是报错了:Error:Could not find com.android.tools.build:gradle:2.3.3. Searched in the following locations: file:/D:/Software/AS3.0/gradle/m2repository/com

2017-11-20 11:50:21 4951

原创 【设计模式】观察者模式

/* 观察者模式又称为发布-订阅模式,属于行为型设计模式的一种,是一个在项目中经常使用的模式。 定义:定义对象间一种一对多的依赖关系,每当一个对象改变状态时,则所有依赖于它的对象都会得到通知并被自动更新。 在观察者模式中有如下角色: Subject:抽象主题(抽象被观察者)。抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删

2017-11-19 21:12:38 297

原创 【设计模式】模板方法模式

/* 在软件开发中,有时会遇到类似的情况:某个方法的实现需要多个步骤,其中有些步骤是固定的;而有些步骤并不固定,存在可变性。 为了提高代码的复用性和系统的灵活性,可以使用模板方法模式来应对这类情况。 定义:定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变一个算法的结构即可重定义算法的某些特定步骤。 模板方法模式中有如下角色: AbstractClass:抽象类,定

2017-11-19 20:02:45 242

转载 【设计模式】回调方法、钩子方法以及模板方法模式

在面向对象的语言中,回调则是通过接口或抽象类来实现的,我们把实现这种接口的类称为回调类,回调类的对象称为回调对象,其处理事件的方法叫做回调方法。(摘自百度百科)那么通过上面那句话将百度百科中的“回调函数”翻译成JAVA版:回调方法就是一个通过回调对象的引用(java中的引用存的是对象的地址)调用的方法。如果你把回调对象的引用(地址)作参数传递给另一个方法,当这个引用被用来调用其所指

2017-11-19 19:35:30 556

原创 【设计模式】策略模式

/* 行为型模式主要处理类或对象如何交互及如何分配职责。 它共有11中模式:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和解释器模式。*//* 策略模式 定义:定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换。策略模式使得算法可独立于使用它的客户而独立变化。 在策略模式中有如下角色: Contex

2017-11-19 18:40:45 342

原创 【设计模式】享元模式

/* 享元模式是池技术的重要实现方式,它可以减少应用程序创建的对象,降低程序内存的占用,提高程序的性能。 定义:使用共享对象有效地支持大量细粒度的对象。 要求细粒度对象,那么不可避免地使得对象数量多且性质相近。这些对象分为两个部分:内部状态和外部状态。内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境的改变而改变; 而外部状态是对象依赖的一个标记,它是随环境改变而改变的并

2017-11-19 17:45:22 242

原创 【SublimeText3】输入法候选窗口跟随光标/安装插件

SublimeText3默认不支持输入法跟随光标,这在输入中文的时候看起来不方便。进入SublimeText3在上面菜单栏里Perferences点击PackageControl,这样就会自动安装一个可支持插件的终端窗口。安装完毕之后,按快捷键ctrl+shift+p会弹出终端窗口,输入install package(下方会有提示)。然后输入imesupport 安装这个插件,安装完毕

2017-11-19 17:05:40 3644

原创 【设计模式】外观模式

/* 外观模式也被称为门面模式。当我们开发Android的时候,无论是做SDK还是封装API,大多会用到外观模式,它通过一个外观类使得整个系统的结构只有一个统一的高层接口,这样能降低用户的使用成本。 定义:要求一个子系统的外部与内部的通信必须通过一个统一的对象进行。此模式提供一个高层的接口,使得子系统更易于使用。 在外观模式中有如下角色: Facade:外观类,知道哪些子系统类负责处理

2017-11-19 16:22:40 243

原创 【设计模式】装饰者模式

/* 装饰模式是结构型设计模式之一,其在不必改变类文件和使用继承的情况下,动态地扩展一个对象的功能,是继承的替代方案之一。 它通过创建一个包装对象,也就是装饰来包裹真实的对象。 定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 在装饰模式中有如下角色: Component:抽象组件,可以是接口或是抽象类,被装饰的最原始的对象。 Concre

2017-11-19 15:38:25 243

转载 【设计模式】代理模式详解

1 学习动态代理的目的  动态代理技术都是在框架中使用,例如:Struts1、Struts2、Spring和Hibernate中都使用了动态代理技术。如果你不想自己写个框架,那么你基本上是用上不动态代理技术的。学习动态代理技术的目的是为了更好的理解框架内部的原理,也就是说是为了将来学习框架打基础!动态代理技术有点难度!而且明白了动态代理技术可能一时也想不到他适合在什么情况下使用它。这些东西都会

2017-11-18 21:30:56 236

转载 【Win10】修改标题栏颜色

Win10标题栏颜色有多种选择,但是默认的那个颜色却很难看。所以就有必要修改一下Win10窗口标题栏颜色,怎么修改呢?一起来看一下:  修改Win10标题栏颜色步骤  1、首先在win10系统打开文件夹到C:/Windows/Resources/Themes;复制Aero文件夹,并在原所在文件夹粘贴,如果MSS文件存取被拒,直接略过;把“aero -副本”文件夹更名

2017-11-18 21:07:11 2977

原创 【设计模式】代理模式

/* 代理模式也被称为委托模式,它是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多,比如代理上网、打官司等。 定义:为其他对象提供一种代理以控制对这个对象的访问。 在代理模式中有如下角色: Subject:抽象主题类,声明真是主题与代理的共同接口方法。 RealSubject:真实主题类,代理类所代表的真实主题。客户端通过代理类间接地调用真实主题类的方法。

2017-11-18 21:00:54 233

转载 【AndroidStudio】识别不到手机,设备管理器设备显示感叹号

今天公司停电,因此把安卓项目带回宿舍做。宿舍的笔记本,装的是Win7 x64,手机连上电脑后,windows可以识别,但Eclipse的DDMS中却无法识别,什么都没有:然后打开设备管理器查看,发现windows能正常识别设备(HUAWEI C8817E),而ADB Interface(有的机器可能显示Android ADB什么的)却显示有黄色感叹号,是驱动程序没有正常安装:

2017-11-18 17:37:51 11361

原创 【AndroidStudio】开模拟器HAXM加速

在AndroidStudio创建模拟器时会提示没有HAXM,直接下载HAXM,如果提示HAXM is disable,重启电脑进bios把开关打开,只支持Intel,不支持AMD。在SDKManager最下面Extras也可以下载HAXM。

2017-11-18 16:35:51 1769 1

原创 【设计模式】建造者模式

/* 建造者模式也被称为生成器模式,它是创建一个复杂对象的创建型模式,其将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示分离开来。 例如我们要DIY一台台式计算机,我们找到DIY商家。这时我们可以要求这台计算机的CPU、主板或者其他部件都是什么牌子的,什么配置的,这些部件是我们可以根据自己的需求来变化的。 但是这些部件组装成计算机的过程是一样的,我们无需知道这些部件是怎么组装

2017-11-18 15:01:23 282

原创 【设计模式】工厂方法模式

/* 定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法模式中有如下角色: Product:抽象产品类 ConcreteProduct:具体产品类,实现Product接口。 Factory:抽象工厂类,该方法返回一个Product类型的对象。 ConcreteFactory:具体工厂类,返回ConcreteProduct实例。 工厂

2017-11-18 13:44:45 231

转载 【AndroidStudio】手动配置gradle的方法

1 问题(1) android sutdio第一次打开一个工程巨慢怎么办? (2) 手动配置Gradle Home为什么总是无效? (3) 明明已经下载了Gradle,配置了gradle home,为什么打开工程还是去自动下载Gradle?2 简介(1) Android Studio怎么知道该用哪个Gradle呢? AS一个项目所用的Gradle是由我们的工程中

2017-11-18 12:55:04 3717

转载 【notepad++】更换主题

到Textmate Theme Directory下载主题;用文本编辑器把它打开,复制所有代码,贴到theme converter page里,然后“Download”;保存;在Notepad++中选择设置->导入->导入主题;或者直接copy到Notepad++安装目录Notepad++\themes下;导入后,选择设置->语言格式设置,选择新的主题就可以了。推荐下面这两个主题:

2017-11-18 12:17:44 4765

转载 【AndroidStudio】http proxy And SDK Manager代理设置

亲测,腾讯Bugly 镜像代理飞一般快! 其他,借见:http://blog.csdn.net/boonya/article/details/38752647 Android Studio刚安装设置:android-mirror.bugly.qq.comSDK Manager设置:

2017-11-17 11:21:34 8293

转载 【设计模式】简单工厂模式

/* 简单工厂模式(又叫做静态工厂方法模式),其属于创建性设计模式,但并不属于23种GoF设计模式之一。 提到它是为了让大家能够更好地理解后面讲到的工厂方法模式。 定义:简单工厂模式属于创建性模式,其又被称为静态工厂方法模式,这是由一个工厂对象决定创建出哪一种产品类的实例。*//* 我们用生产计算机来举例,假设有一个计算机的代工生产商,它目前已经可以代工生产联想计算机了。 随着业务

2017-11-16 22:17:47 294

转载 【JAVA】枚举使用详解

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。package com.ljq.test;/** * 枚举用法详

2017-11-16 21:49:53 227

原创 【设计模式】单例模式的6种写法

// 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。// 单例模式的6种写法// 1.饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstan

2017-11-16 21:40:13 285

转载 【设计模式】依赖倒置原则(Dependence Inversion Principle)

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

2017-11-16 20:41:36 300

转载 【Android】gradle-wrapper.properties中各属性的含义

版权声明:本文为 Abracadabra(爱博客大伯) 原创文章,转载请注明作者及链接,请勿用于任何商业用途。目录(?)[+]gradle-wrapper.properties中各属性的含义1. gradle-wrapper.properties每一个用gradle编译的工程,都会有一个gradle\wrapper目录。该目录下有2个文件

2017-11-16 19:34:00 2567

转载 【JAVA】核心点之注解

原文出处: absfree本博文是对Java中注解相关知识点的简单总结,若有叙述不清晰或是不准确的地方,希望大家可以指正,谢谢大家:)一、什么是注解我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一些事情,注解是注释的升级版,它可以向编译器、虚拟机等解释说明一些事情。比如我们非常熟悉的@Override就是一种元注解,它的作用是告诉编译器它所注解的方

2017-11-12 17:21:16 213

转载 【JAVA】四种引用,强弱软虚以及用到的场景

1、强引用(StrongReference)         强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:                                   1Object o=new Object();   //  强引用当内存空间不足,Java虚拟机宁愿抛出Out

2017-11-12 14:57:28 334

转载 【JAVA】代码重构技巧

简介重构是持续改进代码的基础。抵制重构将带来技术麻烦:忘记代码片段的功能、创建无法测试的代码等等。而有了重构,使用单元测试、共享代码以及更可靠的无bug 的代码这些最佳实践就显得简单多了。鉴于重构的重要性,我决定在整个8 月份每天介绍一个重构。在开始之前,请允许我事先声明,尽管我试着对每个重构进行额外的描述和讨论,但我并不是在声明它们的所有权。我介绍的大多数重构都可

2017-11-10 17:11:47 4256 1

转载 【JAVA】可变参数总结

许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊?[java] view plaincopypublic class TestVarArgus {      public static void dealArray(int... intArray){

2017-11-05 20:59:11 222

转载 【Git】git status 中文文件名编码问题解决

Git发展至今,对中文的支持任然不足,本地化做得并不完善,命令的输出及命令的帮助还只能输出英文。        目前大家最关心的问题是:可以在提交说明中使用中文。        要实现提交说明的中文注释,这就需要需要对Git进行特殊设置。        Linux平台的中文用户一般会使用UTF-8字符集,Git在UTF-8字符集下可以工作

2017-11-05 16:46:45 760

sublime主题配色

sublimeText2主题配色,使用简单,一键导入,无后顾之忧。

2017-11-18

APK反编译工具合集

APK反编译工具老三套。

2017-07-16

android开发使用的ADB免安装版

2017-01-07

空空如也

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

TA关注的人

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