自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (5)
  • 收藏
  • 关注

原创 重构 改善既有代码的设计(读书笔记1)

// 复制,粘贴给程序带来维护上的巨大挑战,一段相同的代码,绝对不应该出现在不同的两个地方。当然,你可以这样做,但是这种代码一旦出现问题,你会记得要修改几个地方吗?  // 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。千万不要说有时间再做重构,有时间再做等于永远不会做(可以自己分析一下,首先,公司明

2012-07-09 21:30:27 2072 1

原创 深入分析 Java 中的中文编码问题

不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必

2012-06-25 15:29:44 1223

原创 HTML5 Canvas 渐变

渐变Context对象可以通过createLinearGradient()和createRadialGradient()两个方法创建渐变对象,这两个方法的原型如下:Object createLinearGradient(x1, y1, x2, y2);创建一个从(x1, y1)点到(x2, y2)点的线性渐变对象。Object createRadialGradien

2011-12-11 14:29:11 10305 5

原创 skip32

在某些应用场景下,需要对数字进行加密,skip32无疑是一种很实用的算法,网上有python的源码(https://bitbucket.org/anuraguniyal/skip32.py/src/403577f22bc2300b30b746526f52b6cf3c8cad51/skip32.py?at=master),可惜没有java的版本。下面送上自己写的java版本:import

2013-09-12 15:21:21 5300

原创 微信 SDK 不能 分享

说多了都是泪水,真的。前段时间,做好了微信的分享功能,测试通过的,最近我又跑了一遍用例,发现不能启动微信客户端了,怎么都启动不了,日志如下:ignore wechat app signature validation。但是我的代码绝对没有动过,网上各种找原因。搞了老久,最后去官网文档一篇一篇的看,如下:http://open.weixin.qq.com/faq/?lang=zh_CN

2013-06-24 15:56:31 9506 10

原创 Android 百度地图 java.lang.UnsatisfiedLinkError

现在的App,都像跟风狗一样,只要是热门的功能,都加上,导致最后一个小小的App,有了聊天功能,有了分享功能,有了拍照功能,有了语音功能……,实力足够的话(或者网上有现成代码),就他妈差点做个操作系统进去了。而其中一些功能,需要借助第三方,这就涉及到一个第三方选择的问题,我一般不喜欢小公司的产品,不是看不起小公司,主要是小公司的产品质量确实不能保证,而且产品的延续性得不到保障。今天做给我们

2013-06-19 22:19:00 11098 10

原创 svn 上传 过滤

都很久没有写博客了,最近恶心了一把,新公司用的是git作为版本控制,但是结合微软的tfs使用,tfs的网络垃圾的一塌糊涂,整个代码的提交过程非常痛苦。后来实在坚持不下去,就自己搭建了svn服务器,毕竟屌丝熟悉svn哇,服务器搭建好以后,代码上传过程中发现.so文件不能上传,查了一下,发现是svn服务器要设置上传过滤;很多文件,会被过滤掉,不能正常上传。设置如下:通过终端打开配置文件

2013-06-14 15:57:05 11162 3

原创 代码腐烂

代码是程序员的一切,让我们快乐,让我们忧愁。看着优雅的代码,赏心悦目,看到恶心的代码,痛苦不堪。那么,是什么让代码变得恶心呢?         网上有如下解释:架构不合理,需求变更,进度压力…… 首先,我觉得任何架构都是合理的,也都是不合理的。一个基本架构,能够完成现有的功能,效率上也说得过去,那么,它就是一个合理的架构。任何一个架构,都会不断的经受需求变更的挑战,没有任何人可以一开始

2012-11-26 15:07:30 3288 1

原创 仿写 微信 界面

网上找的的一份源码,基本实现了微信的所有界面,对于Dialog,动画等UI元素的使用都有很好的借鉴意义。下载地址:http://download.csdn.net/detail/coding_or_coded/4596271

2012-09-25 15:58:39 4974

原创 Android触屏事件流

一次触屏事件分为三个动作ACTION_DOWN, ACTION_MOVE 和 ACTION_UP。其中ACTION_DOWN和ACTION_UP在一次触屏事件中只会触发一次,ACTION_MOVE可能触发任意次(包括0次)。主要响应触屏的组件有两种,一种是可以包含子元素的(ViewGroup比如LinearLayout),另一种是不能包含子元素的View(最底层的View比

2012-09-24 16:05:12 3193 2

原创 Android事件处理的两种模型

UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于基于回调的事件处理而言,主要做法是重写Android组件特定的回调函数,Android大部分界面组件都提供了事件响应的回调函数,我们主要重写它们就行。一 基于监听器

2012-09-24 10:42:38 1520

原创 Android动画

一般简单的动画可以通过Android的帧动画或者渐变动画完成,但是这两种动画的控制粒度都比较大,一旦启动动画,就没有控制的余地。下面介绍另外一种简单的实现方式:通过Handler不停地给UI线程发送消息,当UI线程处理消息时,再调用绘制方法,达到动画的效果。这样,我们可以更加精细的控制动画。关于帧动画或者渐变动画的例子:http://download.csdn.net/detail/cod

2012-09-12 14:26:42 1981

原创 sqlite 升级

在项目不断推进的情况下,数据库表结构不满足需求是很常见的事情,这个时候,我们需要对数据库进行升级。首先,不谈升级的具体实现,谈一下如何尽量避免升级,因为升级是一个痛苦的过程。在第一个发布版本中,数据库表结构要尽量稳定,也就是要多考虑,不要因为一点点需求变动,马上就要修改表结构,这样非常痛苦。我们也可以在可能变动的表中增加备用字段,这样,在需要新字段的时候,启用备用字段,而不用修改表结构。

2012-07-24 11:20:47 4400 1

原创 代码整洁之道

我从不一开始就想写下完美的代码,我想也没有人能办到。我只是不停的雕琢它们,直到我认为完美……命名:1.名副其实,从名称上看出用途,如果需要注释来表达用途,你已经输了……2.具有前缀(后缀)的命名方式是上世纪的产品,以后就忘记吧……3.包的命名规范:域名+项目名+模块名/层名4.类的命名规范:类的名字必须由大写字母开头,一个单词中的

2012-07-18 09:44:39 1390

原创 重构 改善既有代码的设计(读书笔记3)

// 在对象之间搬移特性// 1.在程序中,有个方法与其本类之外的另一个类进行更多的交流,这个时候在该方法最常引用的类中建立一个有着类似行为的新方法,把旧方法变成一个委托函数,或者是直接移除。这有助于隔离变化。// 2.移动实例变量可以参考第一点// 3.搬动一个方法或者属性之前,先注释它,可以瞬间看出一些东西。// 4.当一个类做了应该由两个类做的事情,那么,就提炼一个新

2012-07-16 15:59:17 1022

原创 系统架构方面的博客

http://blog.csdn.net/sdhustyh/article/category/828856

2012-07-12 16:30:18 1150

原创 重构 改善既有代码的设计(读书笔记2)

// 什么时候执行重构——代码的坏味道// 1.重复的代码// 2.过长的方法(当一段代码你觉得别人看起来困难,你可能需要添加注释的时候,其实你可以抽取成一个方法,然后标注一个优雅的方法名)// 3.庞大的类(很有可能职责过多,职责单一是一种很好的设计)// 4.过长的参数列表(让使用者很疲惫)// 5.发散式变化(添加一个功能,可能引起多处变化

2012-07-10 09:28:13 1595

转载 Google故事

“我们俩都有些令对方厌恶”。谢尔盖·布林在接受《经济学人》杂志采访时,曾这样回忆他与拉里·佩奇的首次相遇。未来的两位谷歌创始人对彼此的第一印象都很差。  风云初起双雄会  “能够进入斯坦福大学,我简直太激动了。要实现那样的抱负(指创业)没有比斯坦福更好的地方了,我一直都向往硅谷。”拉里曾这样对《The Search》一书作者约翰·巴特尔说。  1995年3月,拉里进入斯坦福大学

2012-07-03 20:00:40 7553

转载 写更少的代码

软件开发的一个基本事实是:你需要写代码。但是一个最大的概念误区是“写代码就是我的工作”。当我开始我的软件开发者生涯时,我就陷入了这个误区。代码是强大的,它能让你做许多事情,你觉得自己是有效率的,觉得自己完成了工作。然后,这些年来我学到了事情的真实的本质:一个程序员的工作的本质是写尽可能少的代码。不要误解我的意思。我不是说我们应该把压缩代码,以尽量少敲键盘为目的,从而让写出来的代码根本无

2012-07-02 14:38:41 1300 2

原创 第一个完整Andorid项目总结

本文目的:把自己一阶段的东西进行总结,拿出来和大家分享,也希望从读者的评论那里得到启发。本人水平:华东师范大学软件学院毕业,做过两个J2EE项目,一个J2ME项目,一个Android项目(基本就靠Java混饭吃)。项目介绍:一款IM应用,类似于QQ,用户群是企业员工,和企业QQ是竞争对手。下载地址:http://apk.gfan.com/Product/App278699.html

2012-07-01 14:19:24 5068 21

原创 简单工厂模式

简单工厂模式类图: ***************************************************************************************************简单工厂模式目的:提供一个类,由它负责根据一定的条件创建某一具体类的实例,客户端不参与创建具体产品,仅通过传入参数选择需要“消费”对象。而不必管这些对

2012-06-26 16:48:15 1466

原创 使用设计模式改善程序结构(二)

本系列文章的前篇主要讲述了如何使用设计模式来改善我们的程序结构,大家可以看到经过调整的代码具有了更大的弹性,更容易适应变化。读者朋友可能也具有类似的经验,通过使用设计模式使得自己的软件系统更加具有可扩展性和健壮性。但是,这样就可能会造成一个结果:无论遇到任何问题,我们首先做的就是设法找到一个解决它的设计模式来,而不是解决问题的最简洁的方法。上面所述的就是过分使用设计模式的情况,它赋予了代码

2012-06-25 11:37:53 1005

原创 使用设计模式改善程序结构(一)

在进行项目的开发活动中,有一些设计在项目刚刚开始工作的很好,但是随着项目的进展,发现需要对已有的代码进行修改或者扩展,导致这样做的原因主要有:新的功能需求的需要以及对系统进一步理解。在这个时候,我们往往会发现进行这项工作比较困难,即使能完成也要付出很大的代价。此时,一个必须要做的工作就是要对现有的代码进行重构(refactoring),通过重构使得我们接下来的工作变得相对容易。重构就是在不

2012-06-25 10:26:50 1058

原创 很棒的工具网站

1.大量的图标,给那些会编程,但是不会ps的屌丝带来了福音。http://www.iconfinder.com/   http://findicons.com/

2012-06-12 11:44:45 695

原创 java接口与抽象类的区别

一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 呢,面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用,是不是一下子感觉自己对复用理解的

2012-06-12 11:24:36 773 1

原创 做完第一个android项目,在android知识点上增加的经验值

第一:FrameLayout的妙用,框架布局是最简单和最高效的布局类型之一。框架布局的子控件被相对于布局的左上角来绘制。如果框架布局中存在多个子视图,它们将按顺序绘制,最后一个子控件绘制在最上面。示例:。第二:以前做J2ME平台,为了实现跑马灯效果,实现方式是在UI线程(绘图线程)不停的刷新,通过改变坐标来达到动画效果。那时候看到Android上各种炫目的动画,简直吓尿了,后来做了An

2012-06-11 16:32:10 1647 2

原创 那些让我们无可挑剔的代码片段,不服来辩

覆写Object的equals方法package com.imo;/** * * @author 冯小卫 * */public class Main { public int id = 0; public static void main(String[] args) { } @Override public boolean equals(Object obj

2012-06-09 14:23:14 947

转载 Java 线程池的原理与实现

最近在学习线程池、内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享。[分享]Java 线程池的原理与实现这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会

2012-06-03 05:06:57 723

原创 IM基础

最近做IM的项目,由于在大四的时候曾经开发过一简单的QQ聊天机,现在想把它完善,使之尽量能够用于实际应用中。   在开发之前,自己想(推理)了一下QQ的工作原理和一些实现细节,发现自己想的、推理的和网上搜索到资料以及师兄的回答几乎一致。   下面就是我在网上所搜索的资料一、IM技术概念  IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能

2012-06-03 04:58:25 1300

原创 关于做Android+J2ee系统集成开发的一点心得

1. android作为view层,要实现和服务层低耦合,必须使用webservice接口。目前还没有十分完善的插件,曾经试过axis的android包(也是一个兴趣者自己做的),用了之后感觉非常麻烦,特别是复杂数据类型的传递,而且bug也很多,还要改别人源码,无疑增加团队的学习成本和开发难度,无奈之下自己做了。android端使用Apache的httpclient发送交互请求,定义好xml接口传

2012-06-02 12:55:52 1249

原创 简单的去重算法

第一种实现:import java.util.ArrayList;import java.util.List;public class CustomList { private ArrayList list = new ArrayList(); private int capacity = 10; private int count = capacity / 2; pub

2012-06-01 11:26:17 3962

原创 比较好的android博客

1.http://blog.csdn.net/coolszy?viewmode=contents2.http://blog.csdn.net/zkdemon?viewmode=contents3.http://blog.csdn.net/luoshengyang/article/details/69055874.http://www.eoeandroid.com

2012-05-31 21:56:39 1506

原创 android日志工具类

import android.util.Log;/** * 日志记录模块 * */public class LogManager { // 锁,是否关闭Log日志输出 public static boolean LogOFF = HycsConst.LogOFF; // 是否关闭VERBOSE输出 public static boolean LogOFF_VERBOS

2012-05-31 21:52:31 1474

原创 3G时代

一直从事智能手机应用程序开发,经常吼着3G,但是对于3G的了解真的是不够。后来网上查了资料,归纳如下:1.3G只是一个笼统的称为,只要作用是区别于2G,3G有三种实现标准:CDMA,WCDMA,TD-SCDMA。2.CDMA是美国开发的一个3G标准,目前成熟度算得上第二!WCDMA是欧洲的标准,也是目前世界上最成熟的3G网络,可以排第一!TD-SCDMA是中国自己研发的网络制式!还

2012-04-13 09:22:10 911

原创 EditView中插入图片

package com.imo;import android.app.Activity;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Html;import android.text.Spannable;import android.text.Spannab

2012-03-09 21:39:35 2990

原创 Handler简单例子

在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:package com.android.tutor;import java.util.Timer;import java.util.TimerTask;import android.app.Activity

2012-03-08 15:41:36 15992 3

原创 Iphone开发(7) 太你妈辛苦了

把你妹啊,现在终于知道为什么做IPhone开发工资高了——因为学习IPhone开发太难⋯⋯1.学习IPhone开发,首先要一台mac的电脑,但是有多少程序员,关键还是初步学习IPhone开发的程序员有钱买mac呢?对了,你可以用黑苹果,那么,你电脑配置也不能太差了吧,而且配置成功的概率要看你自己的人品⋯⋯2.硬件搞定了,软件的配置还是非常简单的,苹果的IDE做的很整体。开发环境,s

2012-03-06 20:58:31 1873

原创 全面解析NIO

请耐心的读完这篇文章,你会完全理解java new IO⋯⋯  原文出自IBM中国,本人做了少量修改。I/O 简介I/O ? 或者输入/输出 ? 指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分的工作。在 Java 编程中,

2012-03-01 15:34:28 1545

原创 java new IO

原文地址:http://bbs.blueidea.com/thread-2679670-1-1.html,本文在此基础上做了一些修改。PS:此文一般Java New I/O的作用当我们的JAVA程序会使用到大量的I/O操作,而程序性能很大一部分受到I/O影响的话,就可以考虑使用NIO来改写旧的I/O了~所谓的NIO,就是JAVA类里的java.nio这个包~是J2SE1

2012-02-28 20:23:13 5260

原创 Iphone开发(6) 如何保证不出现内存泄露

Objective-C已经有了垃圾回收机制,但是我们最关心的iso不支持垃圾回收,所以,让我们冷静一下,抛开垃圾回收,自己来管理内存吧。对象所有权:当一个对象的属性是另外一个对象的时候,换言之,对象A中,有一个属性是对象B,那么,对象A对于对象B,就有对象所有权。那么,在对象A释放的时候,我们必须确保对象B的引用计数减少1(这里不一定是释放对象B,因为对象B还可能在其他地方被引用)。

2012-02-27 20:39:50 1202 2

仿写 微信 界面

网上找的的一份源码,基本实现了微信的所有界面,对于Dialog,动画等UI元素的使用都有很好的借鉴意义。

2012-09-25

Android 动画

一种简单的实现Android动画的机制,可以对动画有更加精细的控制。

2012-09-12

android Gallery

Android平台的Gallery可以实现很棒的图片拖动效果,本资源是关于Gallery的一个demo

2012-06-12

android 动画 demo

关于android动画做了全面剖析,是很好的android动画资料

2012-06-12

ADT12,ADT

ADT12,官网下载太慢哈,这个快,就不需要在官网下载了

2011-10-04

空空如也

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

TA关注的人

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