自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java中循环嵌套跳出的高效写法

(下面写的这些并不是Jdk的新特性,也不是Java某个版本提供的语法糖,不过是java语言早就提供的书写技巧,但是却被一直忽略的技巧) 最近代码中总能用到循环嵌套的情况,大致模板如下: forech1(..) { forech2(...) { ... ...

2014-04-24 19:31:07 108 0

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

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

2014-02-11 18:40:47 34 0

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

如果你是一个Android程序员,那么你一定对适配器模式情有独钟。如果你还不知道 适配器模式为何物,你还陶醉在自己对AdapterView子类运用的有多熟的暗中自喜中,希望这篇文章能给你当头棒喝。人们常常举电脑适配器的例子作为 适配器模式的具象提现。但我更愿意用USB来举这个例子。当然USB接口...

2014-02-11 18:39:17 37 0

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

学 习模式的人对门面模式都不会太陌生,如果说工厂模式是对对象的高层次抽象的话,那么门面模式就是对对象,就是一种更高层次的抽象。这么说可能不好理解,我 们举个很好理解的例子,我们知道cpu的目的是为了运算,而运算我们又分成解释和计算。这分别是由解释器对象和运算器对象完成。而对于外部电路来说根本不 ...

2014-02-11 18:38:27 31 0

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

有人说模式会让代码变的优雅,也有人说模式会让你的代码更利于扩展。我个人觉得这些说 的都对。但是滥用模式一样会成为被人诟病的痛点。与其说面向对象语言考察的主要标准是语法,不如考察对模式的理解更加切合实际。很大一部分人都觉得模式枯 燥无味,但其实模式是一些充满智慧的集合,可以用在任何的领域,本系列文...

2014-02-11 18:37:32 30 0

原创 Sublime Text 2:代码提示插件(转)

Sublime Text 2:代码提示插件 Sublime Text 2是个相当棒的编辑器,这一点异次元和Lucifr的文章都介绍的很充分了。用了一段时间觉得Sublime确实“性感”而“强大”。 只是Sublime Text 2毕竟是一款“编辑器”而非“集成开发环境”IDE。在很多ID...

2014-01-07 20:53:10 114 0

原创 Linux Shell编程学习笔记(二)函数

这次我们回顾一下函数的定义,在此之前,如我们学习结构化编程一样,任何语言都脱离不了某种范式,我们先从这些范式入手。首先是条件判断。 具体的结构是: if condition; then command; elif  condition; then commands; else  ...

2014-01-05 22:51:20 30 0

原创 Linux Shell编程学习笔记(一)变量和文件描述符

看了<Unix的设计思想>,情不自禁希望重新学习我曾经忽视的linux的shell脚本编程。我并不是随波逐流,也不是那种顽固的技术党,只是很纯粹的想了解这么技术,如果你有什么好的想法,也可以跟我交流,下面是我的微博地址: http://weibo.com/1752...

2013-12-15 21:34:47 36 0

原创 gvim的安装以及配置 (转)

将自己的安装和配置过程记录下来供参考:安装: sudo apt-get install vim-gtk vim-doc cscope 创建启动项 sudo cat > /usr/share/applications/gvim.desktop <...

2013-12-07 22:17:48 35 0

原创 Android各版本新增功能一览(转)

Android3.0新增功能:主要增加全息主题     1、Fragments:较activity粒度小的拥有独自生命周期的模块。可作为acitivity的一部分,activity通过FragmentManager管理独自的fragments back stack。     2、Act...

2013-12-05 20:43:24 39 0

原创 NotificationManager和Notification的使用总结(转)

这几天一直在修改twigee的源代码,其中一个要加入的功能是常驻Notification栏,以前写的时候只能出现 在“通知”这一组中,想把它放在“正在运行”组中却不知道怎么放,查了下官方文档,找到了方法,在notification的flags字段中加一下 “FLAG_ONGOING_EVEN...

2013-11-26 12:51:27 26 0

原创 Android应用程序资源的编译和打包过程分析 (转自老罗的博客)

    我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。在本文...

2013-11-13 10:57:54 103 0

原创 Proguard 源码分析 (七) 混淆

本章我们讲Proguard非常重要的一个步骤:混淆Obfuscator 混淆的目的很明显,是为了混淆语义。 我们能轻车熟路的找到混淆的源头: Obfuscator 的execute方法 我们来看一下就行混淆器给我们设置了怎样的访问者: ClassVisitor memberInfoL...

2013-11-10 21:19:00 47 0

Proguard源码分析(六)前文总结

目前,我们读了Proguard的代码,相信已经开始对访问者模式和装饰器模式有很深的理解,现在我们再带着这两个模式认真的回顾下代码,因为只有这样,我们才能更好的进行下面的代码阅读。但是如果你还带着疑问,不妨看下前面的章节,或者看一些有关设计模式的书体会一下。我们回到我们熟悉的入口Proguard类的...

2013-11-05 14:40:44 29 0

原创 java class文件结构(转)

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

2013-11-05 13:46:31 39 0

原创 Proguard源码分析(五) ConfigurationParser.keep参数

本章节我们绕回来讲Keep参数,也就是ConfigurationParser 这个类。 ConfigurationParser这个类是非常重要的类,如果你已经开始看源码,你会发现所有的类和功能都围着它来转,本章节我们来揭开它的地一层面纱。 else if (ConfigurationCon...

2013-10-31 14:43:50 39 0

Proguard源码分析(四) 压缩

上一次我们讲了seed文件,这次我们说压缩,对应的输出文件是usage,可以通过命令-printusage usage.txt来配置 压缩的目的是为了删除一些我们不使用的类和方法,从而达到字节码压缩的目的。 这里我贴出我的微博:http://weibo.com/1752090185/prof...

2013-10-30 10:59:45 32 0

Proguard源码分析(三)Seed文件

Seed文件就是保持住的类文件,直白一点就是不被混淆的文件,他主要是通过printSeeds() 方法实现 这里我们要引入一个类ClassVisitor 。这个我们要区分ClassPoolVisitor ClassPoolVisitor可以看成是ClassVisitor的组合, 也就是说我...

2013-10-29 12:45:01 50 0

原创 Proguard源码分析(二)输出文件

ProGuard outputs thefollowing files after it runs: dump.txt···描述apk文件中所有类文件的内部结构  PrintStream ps = createPrintStream(configuration.dump);try{    p...

2013-10-28 10:28:07 35 0

原创 Android 2.2.2到Android 4.2.2源码下载地址(转)

Android 2.2.2到Android 4.2.2源码下载地址  可能有些的地址已经过时了 Android-2.2.2_r1.tar.bz2                       迅雷下载 Android-2.2.2_r1-20121015.tar.bz2     迅雷下载 Andr...

2013-10-28 10:13:28 85 0

代码混淆器Proguard源码分析(一) 读取

Proguard是Android中经常用的混淆工具,当然你也可以采用其他的混淆工具。但我这边谈到的只是Proguard。 大多数人了解Proguard大都通过文档,但是我这次决定从源码入手,分析Proguard。我个人觉得Proguard的源码写的还是非常的出彩的,当然你可能跟我有不一样的品味...

2013-10-22 19:40:18 59 0

原创 Android内存之VSS/RSS/PSS/USS

Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - Proportional Set Size 实际使用的物理...

2013-09-25 14:07:49 15 0

原创 Android内存泄露利器(内存统计篇) (转)

我们可以通过adb shell "dumpsys meminfo %curProcessName%"命令得到某个进程的内存使用情况。 getMemoryState.bat主要用于解析该命令返回的内存,得到NativeSize,DalvikSize,NativeAlloca...

2013-09-25 13:49:19 33 0

原创 开源混淆工具ProGuard配置详解及配置实例(转)

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

2013-09-17 14:25:53 14 0

原创 chrome开源工程(转)

在chrome地址栏输入about:credits就可以看到chrome使用的开源工程了,之前也有一篇介绍chrome开源工程的文章:Code Reuse in Google Chrome Browser,大家可以参考一下。 David M. Gay's floating poin...

2013-09-13 10:42:19 28 0

原创 dex文件结构(转)

Dex文件和Dalvik虚拟机 在Android系统中,dex文件是可以直接在Dalvik虚拟机中加载运行的文件。通过ADT,经过复杂的编译,可以把java源代码转换为dex文 件。 那么这个文件的格式是什么样的呢?为什么Android不直接使用class文件,而采用这个不一样文件呢?其实...

2013-09-03 14:10:36 27 0

原创 android clipPath切割画布

(转自:http://wallage.blog.163.com/blog/static/1738962420101012439991/)       [java] view plaincopy public class PictureTestActivity exte...

2013-08-29 12:00:10 177 0

原创 Mat工具

MAT安装 话分两头说,有了heap dump还得安装MAT。可以在http://www.eclipse.org/mat/downloads.php选择合适的方式安装。安装完成后切换 到Memory Analyzer视图。在Eclipse的左上角有Open Heap Dump按钮,按照刚才说的路...

2013-07-01 10:28:37 29 0

原创 eclipse MAT hprof 文件无法打开

QA1:eclipse MAT hprof 文件无法打开 分类: QA 2012-03-28 13:46 1381人阅读 评论(0) 收藏 举报 eclipsesystemjava eclipse错误: Error opening heap dump '...

2013-07-01 10:24:42 476 0

原创 Activity透明

方法一: 只要在配置文件内activity属性配置内加上 android:theme="@android:style/Theme.Translucent" 就好了。 这样就调用了android的透明样式! 方法二: 先在res/values下建colors.xml文件...

2013-06-14 17:11:22 22 0

原创 Android WebView控件

android.webkit库聚合了webkit内核的浏览器功能,webview就是她的一个控件,可以使得网页轻松的内嵌到app里。 并且比较强大的是,还可以直接跟js相互调用。 webview有两个方法:setWebChromeClient和setWebClient setWebChro...

2013-06-06 11:46:37 16 0

原创 smali 语法1

dalvik字节码有两种类型,原始类型和引用类型。对象和数组是引用类型,其它都是原始类型。 V void,只能用于返回值类型 Z boolean B byte S short C char I int J long(64位) F float D double(64位) 对象以Lpackage/n...

2013-05-29 14:39:58 20 0

原创 TagList Install (转)

将vim 改造成功能强大的IDE系列之二 『插件介绍』 Taglist是vim的一个插件,提供源代码符号的结构化视图。 效果图:(直接使用了别人的图片。在我机器上也差不多~) 『下载和安装』          1)从http://www.vim.org/scripts/script...

2013-05-29 13:41:04 21 0

原创 Ctags install (转)

这两天看到网上有将vim 改造成功能强大的IDE的blog,突然心血来潮,亲身经历了一下。 网友的帖子都不错,我这里只是将各种插件分开罗列,然后加上一些使用技巧。 希望本文对你有所帮助! 『插件介绍』 Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或...

2013-05-29 13:39:25 17 0

原创 Android APK反编译详解(附图) (转)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。     本文And...

2013-05-29 10:46:02 34 0

原创 浏览器如何工作~(转)

简介 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。 将讨论的浏览器 今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。 本文将基...

2013-05-28 15:17:59 28 0

原创 动态创建交换分区~

交换分区一般只在xen VPS有这种功能,openvz则 没有。swap交换分区可以增加一定量的内存使用,但增加swap分区的最重要的作用是防止网站流量突然增大而导致系统分配内存不够用而死机。如果你的 VPS长期处理使用swap的状态下,建议你检查下程序或VPS,或者升级更大的内存的VPS,因为...

2013-04-19 15:35:11 23 0

原创 vim分割窗口

 Vim用户手册 - by Bram Moolenaar          译者:Nek_in http://vimcdoc.sf.net                分割窗口显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文件。这一切都可以通过分割窗口实现。|08.1...

2013-04-17 00:02:25 19 0

原创 adb常用命令

Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Conte...

2013-04-03 00:17:42 10 0

原创 dalvikvm 命令调试(转)

当Java程序运行时,都是由一个虚拟机来解释Java的字节码,它将这些字节码翻译成本地CPU的指令码,然后执行。对Java程序而言,负责解释并执行的就是一个虚拟机,而对于Linux而言,这个进程只是一个普通的进程,它与一个只有一行代码的Hello World可执行程序无本质区别。所以启动一个虚拟...

2013-04-03 00:09:49 57 0

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