自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

<非子墨>的空间

程序员中的好画家

  • 博客(45)
  • 收藏
  • 关注

原创 Java线程池ThreadPoolExecutor深度探索及源码解析

我们的程序里,时常要使用多线程。因此多线程的管理变的尤为重要。ThreadPoolExecutor很好的解决了这一点。本篇文章主要从源码入手,分析ThreadPoolExecutor的原理。1.标记和构造方法 和很多状态对象一样,ThreadPoolExecutor也通过一个int的头3位来记录线程池的状态,后面20多位来标记工作线程数量。并且提供通用的位运算接口来获得你所需要的数据。

2017-03-17 17:13:46 520

原创 深入解析Java异常中的陷阱

Java的异常中的陷阱

2017-03-17 17:12:27 667

原创 Groovy高级特性(一)

Groovy的一些高级特性

2016-09-05 00:13:23 1777

原创 自己动手应用Groovy实现Gradle的DSL(一) Task定义

通过Groovy语法构建Gradle的DSL

2016-09-02 16:10:04 2958

原创 Groovy笔记(二)闭包

闭包应用模式:1.策略模式:def function (Closure clo) { for (i in 1..n) { clo(i) }}function { i-> println i**2}function { i-> println i**3}2.闭包参数:def closure = {Date d,String str-> //TODO}

2016-05-16 12:37:48 685

原创 Groovy学习笔记(一)基本语法

1.变量的定义和赋值 def param type param (param1,param2,param3) = [1,2,3]  //注: 句尾分号可有可无2.包的导入 import com.a.b //解决命名冲突使用as关键字 import com.a.b.C as AC import com.b.b.C as BC AC ac

2016-05-13 16:27:44 736

原创 Android地面站-MavLink解析部分源码

MavLink是轻量级的通讯协议,主要应用于终端与小型无人载具间的通讯。由于它的通用性,MavLink可以被翻译成各种语言的代码应用于各种不同的环境。

2016-04-27 11:52:29 6787 9

原创 Android.V4的ViewPager的源码和改造(一)

ViewPager源码分析

2015-10-12 17:26:59 1658

原创 Gson源码分析(贰) 类型获取和代码规范

Gson源码分析(2)类型采样

2015-03-16 20:20:42 4051 2

转载 Android 4.0的图形硬件加速及绘制技巧

虽然大部分源自于文档,但是作者加入了自己的分析原文地址:http://zuiniuwang.blog.51cto.com/3709988/721798/【51CTO独家特稿】从Android 3.0开始,Android 2D的绘制流程就设计为能够更好地支持硬件加速。使用GPU的View在Canvas上进行画的操作时都会使用硬件加速。在最新的Android版本里,图形硬件加速及绘制技

2015-02-02 15:40:26 861

原创 Android的Drawable缓存机制源码分析

Android的Drawable缓存机制源码分析

2015-01-28 15:07:22 2806

原创 波纹切换Fragment效果

波纹特效切换Fragment

2015-01-14 20:22:08 1205

原创 [Android]浮层视频效果,在另外一个Window使用SurfaceView无法正常显示的问题排查与解决

视频浮层下使用SurfaceView遇到的问题和解决方案

2015-01-04 13:13:35 6434 2

转载 Android应用资源---字符串资源类型(String)

zhua字符串资源给应用程序提供带有文本样式和格式选项的文本字符串。能够给应用程序提供三种类型的字符串资源:1. String提供单一字符串的XML资源。2. String Array提供一个字符串数组的XML资源3. Quantity Strings(Plurals)同一个单词或短语在不同数量时所使用的不同字符串的XML资源文件。通常指单词或短语的单/复数形式

2014-10-20 11:40:44 1664

原创 Note(一) WebServices

"http://www.google.com/s2/favicons?domain=${}";

2014-09-24 20:12:50 785

原创 [Android] Volley源码分析(五)答疑

Volley源码分析系列出了有一段日子了,有不少看官私底下给我留言,同时抛出了一些问题。对于一些比较简单的问题我们跳过去,这两天接到网友是@smali提出的问题。不得不赞一下这位看官看源码时候的细腻程度,我引出这个问题供大家一块思考一下。Q:在写入文件头数据的时候为何不直接写入Int而是通过移位的方式来完成?我们来看一下对应的源码:writeInt(os, CACHE_MAGIC);

2014-08-04 13:00:25 1705 4

原创 [Android]Volley源码分析(肆)应用

通过前面的讲述,相信你已经对Volley的原理有了一定了解。本章将举一些我们能在应用中直接用到的例子,第一个例子是NetworkImageView类,其实NetworkImageView顾名思义就是将异步的操作封装在了控件本身,这种设计可以充分保留控件的移植性和维护性。NetworkImageView通过调用setImageUrl来指定具体的url:public void setIma

2014-07-08 13:08:24 1963

原创 [Android]Volley源码分析(叁)Network

如果各位看官仔细看过我之前的文章,实际上Network这块的只是点小功能的补充。我们来看下NetworkDispatcher的核心处理逻辑:while (true) { try { // Take a request from the queue. request = mQueue.take();

2014-07-08 12:23:30 1654

原创 [Android]Volley源码分析(二)Cache

Volley源码分析

2014-07-08 11:39:56 2296 1

原创 [Android] Volley源码分析(一)体系结构

Volley:google出的一个用于异步处理的框架。由于本身的易用性和良好的

2014-07-07 20:32:24 2870 5

原创 子墨庖丁Android的ActionBar源码分析 (一)实例化

ActionBar源码分析

2014-06-16 12:14:33 3038 1

转载 vim 使用

http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/

2014-04-02 13:11:00 688

原创 子墨对酒《三国杀》里论模式(伍)模板方法

如果你是J2EE的爱好者,相信你对模板方法并不陌生。是的,很多框架的设计都是基于模板方法。在我看来,我们也能用面向方面的概念来理解模板方法(当然这么说可能不合适)。模板方法的就是将它的部分实现逻辑交给子类去实现。而对于原始基类来说,只是提供一个模板。模板方法完全使用了OO语言的后期动态绑定。我补充一段模板方法的代码相信大家能对这种架构恍然大悟public abstract class Ba

2014-02-24 22:49:00 1937

转载 Android xml资源文件中@、@android:type、@*、?、@+含义和区别

一.@代表引用资源1.引用自定义资源。格式:@[package:]type/nameandroid:text="@string/hello" 2.引用系统资源。格式:@android:type/name    android:textColor="@android:color/opaque_red"  注意:其实@android:type/name是

2014-02-20 15:29:15 728

原创 子墨庖丁-Gson的源码分析(1)-开篇

Gson源码分析开篇

2014-02-13 20:42:30 5145

转载 Java开发十大必备网站

本文由 ImportNew - 张文太 翻译自 programcreek。如需转载本文,请先参见文章末尾处的转载要求。ImportNew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的 Java开发 小组。参与方式请查看小组简介。以下是我收集的Java开发牛人必备的网站。这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题、面试问题等。质量是衡量一个网站的关键因素,

2014-02-12 13:46:45 990

转载 Java高速、多线程虚拟内存

本文由 ImportNew - MarkGZ 翻译自 jaxenter。如需转载本文,请先参见文章末尾处的转载要求。Importnew注:如果你也对Java技术翻译分享感兴趣,欢迎加入我们的Java开发小组。参与方式请查看小组简介。你想在标准硬件上运行TB级甚至PB级内存的JVM吗?你想与内存交互一样读写文件,且无需关心文件的打开、关闭、读、写吗?JVM的64位地址空间使这

2014-02-12 13:28:46 1113

转载 Android下的开源项目(1)

主要介绍和Android开发工具和测试工具相关的开源项目。Buckfacebook开源的Android编译工具,效率是ant的两倍。主要优点在于:(1) 加快编译速度,通过并行利用多核cpu和跟踪不变资源减少增量编译时间实现(2) 可以在编译系统中生成编译规则而无须另外的系统生成编译规则文件(3) 编译同时可生成单元测试结果(4) 既可用于IDE编译也可用于持续

2014-02-12 12:26:35 740

原创 Eclipse的工作集Working Set

当你workspace中的项目很多的时候,找项目无疑是件痛苦的事情,这样最好的方式是在项目再增加一层,workingset工作区。最终实现这种效果。实现很简单,就是建立一个workingset,然后将你Package Exploer的顶层显示项从Project改成WorkingSet即可。

2014-02-12 10:26:44 992

原创 子墨对酒《三国杀》里论模式(肆)单例模式

当设计模式的观点被众人所推崇的时候,单例模式似乎已经成了掌握设计模式时候要掌握的基础模式。当然我并不认为设计模式中有基础和非基础之分,我只觉得模式的应用有普遍和非普遍之别。单例模式的普遍并不体现在应用场景多上,我们阅读一个项目的时候发现其实用到单例的类本身屈指可数。但是因为它写法简单,易于识别,所以我们才对它格外的注意。单例模式分成饿汉式和懒汉式。这两种模式在写法上有一定的区别,你不能单独地推崇某

2014-02-11 12:55:47 2151

转载 开源混淆工具ProGuard配置详解及配置实例

ProGuard的作用:  1.创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用. 2.创建的程序和程序库很难使用反向工程. 3.所以它能删除来自源文件中的没有调用的代码 4.充分利用java6的快速加载的优点来提前检测和返回java6中存在的类文件.  参数:  -include {filename}    从给定的文件中读取配置参数 -b

2014-02-10 12:12:22 1643

转载 Android内存之VSS/RSS/PSS/USS

TermsVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占

2014-02-10 12:09:29 1005

转载 Dalvikvm 命令调试

当Java程序运行时,都是由一个虚拟机来解释Java的字节码,它将这些字节码翻译成本地CPU的指令码,然后执行。对Java程序而言,负责解释并执行的就是一个虚拟机,而对于Linux而言,这个进程只是一个普通的进程,它与一个只有一行代码的Hello World可执行程序无本质区别。所以启动一个虚拟机的方法就跟启动任何一个可执行程序的方法是相同的,那就是在命令行下输入可执行程序的名称,并在参数中指定要

2014-02-10 11:12:55 2247

转载 JDK中有关23个经典设计模式的示例

Structural(结构模式)Adapter:把一个接口或是类变成另外一种。    java.util.Arrays#asList()    javax.swing.JTable(TableModel)    java.io.InputStreamReader(InputStream)    java.io.OutputStreamWriter(OutputStrea

2014-02-10 10:35:14 842

转载 Java的字节码class文件结构

学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一 个无关 性那就是语言无关性,要实现语言无关性,那么Java体系中的class的文件结构或者说是字节码就显得相当重要了,其实Java从刚开始的时候就有两套 规范,一个是Java语言规范,另外一个是Java虚拟机规范,Java语言规范只是规定了Java语言相关的约

2014-02-10 10:07:24 1254

转载 Android源码国内下载地址

(注:本人没有一个个测过)Android 2.2.2到Android 4.2.2源码下载地址  可能有些的地址已经过时了 Android-2.2.2_r1.tar.bz2                       迅雷下载Android-2.2.2_r1-20121015.tar.bz2     迅雷下载Android-2.3.3_r1

2014-02-10 09:55:27 1021

原创 混淆的艺术-(苍井空变凤姐)Proguard源码分析(三)Proguard配置解析~上

ConfigurationParser会将我们的 配置文件映射成为Configuration对象。这个功能的主要处理逻辑放在ConfigurationParser的parser中:         if (ConfigurationConstants.AT_DIRECTIVE.startsWith(nextWord)|| ConfigurationConstants.I

2014-02-10 00:12:36 2347

原创 子墨对酒《三国杀》里论模式(三)适配器模式

如果你是一个Android程序员,那么你一定对适配器模式情有独钟。如果你还不知道适配器模式为何物,你还陶醉在自己对AdapterView子类运用的有多熟的暗中自喜中,希望这篇文章能给你当头棒喝。人们常常举电脑适配器的例子作为适配器模式的具象提现。但我更愿意用USB来举这个例子。当然USB接口也是电脑适配器的一部分。我们知道,不论是什么设备要连接上电脑,其实一根USB连接线就够了。(如果你非要跟我深

2014-02-09 22:21:41 1725

原创 子墨对酒《三国杀》里论模式(二)门面模式

学习模式的人对门面模式都不会太陌生,如果说工厂模式是对对象的高层次抽象的话,那么门面模式就是对对象,就是一种更高层次的抽象。这么说可能不好理解,我们举个很好理解的例子,我们知道cpu的目的是为了运算,而运算我们又分成解释和计算。这分别是由解释器对象和运算器对象完成。而对于外部电路来说根本不了解解释器对象和运算器对象的存在。也就是说cpu将整个的逻辑过程都封装在自己内部。只暴露给用户一个简单的计算接

2014-02-09 18:43:12 2177

原创 子墨对酒《三国杀》里论模式(一)工厂模式

我一直很想跟大家好好聊聊设计模式,因为我个人非常看重模式。有人说模式会让代码变的优雅,也有人说模式会让你的代码更利于扩展。其实这些说的都对。虽然市面上关于模式的文章非常多,但是我还是愿意跟大家老生长谈一下。这次我们说工厂模式。很多人觉得工厂模式再简单不过了,但是实际上能用的好的人往往很少,而且工厂模式也常常伴随着其他模式出现,这种复合的模式你又是否能够掌握的很好呢?很多人认为工厂模式的重点在与

2014-01-27 16:27:17 2264

空空如也

空空如也

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

TA关注的人

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