自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(326)
  • 收藏
  • 关注

原创 android事件多图详解!

最初向要研究android事件的一些机制,是源于MultiDirectionSlidingDrawer这个widget中handler中放置的按钮点击无效.我想可能是我用的widget没有把这个事件传播给子view吧.于是想认真的研究下android中事件传播机制.这里有一往篇篇文章讲得很不错:orgcent.com/android-touch-event-mechanism/...

2014-08-15 14:16:49 194

原创 SpringMVC+Shiro权限管理

SpringMVC+Shiro权限管理  什么是权限呢?举个简单的例子:我有一个论坛,注册的用户分为normal用户,manager用户。对论坛的帖子的操作有这些:添加,删除,更新,查看,回复我们规定:normal用户只能:添加,查看,回复manager用户可以:删除,更新normal,manager对应的是角色(role)添加,删除,更新等对应的是权限(permission)我们...

2014-06-30 10:51:42 1108

原创 Android 触摸事件传递机制

android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:1)public boolean dispatchTouchEvent(MotionEvent ev)  这个方法用来分发TouchEvent2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent3)public...

2014-05-28 17:08:35 171

原创 java加密签名代码备忘

这类代码很容易忘记,所以记到这里,以后方便翻阅:package com.olivephone.olivestat.task;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;...

2013-09-04 16:23:50 180

原创 [转]经典数据结构 [ Hash算法 ]

什么是哈希表?哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,...

2013-07-24 09:13:16 103

原创 android 一些路径的标准写法

一些路径的标准写法Environment.getDataDirectory() = /data Environment.getDownloadCacheDirectory() = /cache Environment.getExternalStorageDirectory() = /mnt/sdcard Environment.getRootDirectory() = /system co...

2013-07-10 10:26:30 227

原创 海量数据处理算法—Bit-Map

1. Bit Map算法简介来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。  2、 Bit Map的基本思想我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。那么我们就可以采用Bit...

2013-06-04 09:52:16 169

原创 数据结构 二叉排序树 查入 搜索 删除

动态查找:动态查找不仅要查找结点,而且还要不断地插入和删除结点,当表采用顺序结构时,这需要花费大量的时间用于结点的移动,效率很低。这里采用树表的形式,树表本身可以动态建立,树表主要有二叉排序树,平衡二叉树,B-树和B+树等。二叉排序树的特点是:lchild <= root <= rchild,对此树中序遍历就可以找到一组有序的数组。二叉树的复杂度一般为O(log n ),但在特殊...

2013-05-31 14:10:24 88

原创 系统程序员成长计划-文本处理(一)状态机(2)

状态机(2)o 用有穷状态机解一道面试题。刚毕业的时候,我到一家外企面试,面试题里有这样一道题:统计一篇英文文章里的单词个数。有多种方法可以解这道题,这里我们选择用有穷状态机来解,做法如下:先把这篇英文文章读入到一个缓冲区里,让一个指针从缓冲区的头部一直移到缓冲区的尾部,指针会处于两种状态:“单词内”或“单词外”,加上后面提到的初始状态和接受状态,就是有穷状态机的状态集。缓...

2013-05-23 15:28:49 108

原创 系统程序员成长计划-文本处理(一)状态机(1)

文章出处:http://www.limodev.cn/blog 作者联系方式:李先静 <xianjimli at hotmail dot com>系统程序员成长计划-文本处理(一)状态机(1)o 有穷状态机的形式定义有穷状态机是一个五元组 (Q,Σ,δ,q0,F),其中:Q是一个有穷集合,称为状态集。Σ是一个有穷集合,称为字母表。δ: Q xΣQ称为状态转移函数。...

2013-05-23 15:27:49 205

原创 WebKit中的html词法解析(dlmu2001)

WebKit中的html词法解析(dlmu2001) [email protected] 摘要:webkit源代码分析,webcore,html解析,htmlparse,htmltoken,htmltokenizer,dlmu2001,浏览器,chrome 语言的解析一般分为词法分析(lexical analysis)和语法分析(Syntax analysis)两个...

2013-05-23 14:26:33 200

原创 HTTP数据包头解析---之温故而知新!

参考: http://blog.csdn.net/baggio785/archive/2006/04/13/661410.aspx模型: http://blog.csdn.net/baggio785/archive/2006/04/13/661412.aspx HTTP请求模型一、连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为8...

2013-05-23 13:57:34 121

原创 UML类图关系大全

1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使用ROSE 生成的代码是...

2013-05-23 13:54:02 73

原创 一个SurfaceView的例子

SurfaceView的双缓存有些不一样,SurfaceView有两个缓存,一个是front buffer,一个back buffer,这两个buffer是交替显示(flip)到界面上的,即当前看到的是front buffer的内容,如果此时界面发生变化,那么back buffer就会在原来的基础上把内容画好,然后front buffer与back buffer交换一下位置;需要注意的是,由于...

2013-05-16 10:02:48 124

原创 C++开源库

C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK...

2013-04-10 12:05:51 133

原创 netty的个人使用心得

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 如果需要客户端和服务器端沟通 分别都需要编写一个 实现了SimpleChannelHandler接口的类,其中类中需要重写的主要方法为 channelConnected() and channelOpen()  这两个方法为  当客户端...

2013-03-20 17:34:32 139

原创 android虚拟机加载img

$ ./mksdcard 256M sdcard.img #创建一个SD卡的镜像文件,大小为256MB$ ./android create avd --target 1 --name jimmy --sdcard sdcard.img #创建模拟器,并挂载SD卡$ ./android list avd #查看模拟器是否被成功创建$ ./emulator -system system....

2013-03-07 17:46:30 721

原创 OOM解决办法

手动进行垃圾回收   调用bitmap.recycle() 或者System.gc();If you use them for fit-in screen display only, just scale them to the screen-size. You don't need any bigger. 1. Figure out the actual width and height ...

2013-02-22 11:28:03 196

原创 android的ant编译打包

Android本身是支持ant打包项目的,并且SDK中自带一个build.xml文件。 通过该文件,可以对文件进行编译、打包、安装等。并且支持多种方式打包,如debug或者release。 一般的,可以按照如下方法进行操作: 首先创建一个Android工程。 工程创建好后,需要为工程添加ant支持,即创建相应的build.xml文件。 这个文件不需要用户自己创建,只需要执行如下命令即可: &lt...

2013-02-21 14:21:26 79

原创 折半查找函数

private static int binarySearch(int[] a, int start, int len, int key) { int high = start + len, low = start - 1, guess; while (high - low > 1) { guess = (high + low) / 2;...

2013-01-10 11:14:23 175

原创 位运算”在程序开发中的妙用!

位运算:位运算符包括: 与(&)、非(~)、或(|)、异或(^)    &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000     | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110     ~:0变1,1变0     ^:两边的位不同时,结果为1,否则为0.如1100^1010=011...

2013-01-10 11:00:42 324

原创 位运算符^ 按位异或的妙用

(1) 使某些特定的位翻转     例如对数10100001的第2位和第3位翻转,则可以将该数与00000110进行按位异或运算。       10100001^00000110 = 10100111     特殊情况:a^=1(a由真变假,由假变真)(2) 实现两个值的交换,而不必使用临时变量。     例如交换两个整数a=10100001,b=00000110的值,可通过下列...

2013-01-10 10:57:31 314

原创 JAVA实现RSA算法:可将密钥存放到文件中并取出

        本程序能实现生成RSA密钥,保存到文件中并取出,再进行加解密,如需将密钥保存到数据库中,请参考http://blog.164288.com/post/21.html。package init;import java.io.*;import java.security.*;import java.security.spec.*;import javax...

2012-11-22 12:56:21 1590

原创 浏览器背景知识(dlmu2001)

1.1     网络接入浏览器是用来上网的,这个很好理解,除了离线浏览,大部分的行为就是用来跟各种服务器做交互,而交互的第一个前提就是网络接入。一个简单的例子就是PC通过modem拨号上网,当你拨号成功以后,你就会获得一个ip地址,可以同网络上的其它ip进行通讯,这就是接入了,当你不上网的时候,你会挂断。因为用户需要接入,就诞生了ISP(Internet Service Prov...

2012-11-07 17:07:41 177

原创 WebKit内核源代码分析(五)

摘要:本文分析WebKit中html的解析过程,DOM节点树的建立。关键词:WebKit,html解析,html tree construction,WebCore,DOM节点树,dlmu20011.    HTML解析模型                                                                           ...

2012-11-07 17:05:42 130

原创 WebKit 内核源代码分析 ( 四 )

摘要:本文介绍 WebCore 中 Loader 模块是如何加载资源的,分主资源和派生资源分析 loader 模块的类关系。关键词: WebKit,Loader,Network,ResouceLoader,SubresourceLoader一、类结构及接口Loader 模块是 Network 模块的客户。 Network 模块提供指定资源的获取和上传功能,获取的资源可能来自网...

2012-11-07 17:05:08 110

原创 WebKit内核源代码分析(三)

摘要:浏览器的请求一般是以页面请求为单位,当用户通过网址栏输入一个url,浏览器就开始一个页面请求。而一个页面请求可能包含有一到多个页面子帧,以及图片、CSS和插件等派生子资源。Page类就是用来对应这样的页面请求。Page类是WebKit中非常重要的一个类,它就像内核对外的一个聚合器。关键词:WebKit内核源代码,WebCore,Page,Frame,WebKit架构1.   ...

2012-11-07 17:03:36 142

原创 WebKit内核源代码分析(二)

摘要:本系列通过分析WebKit的源代码,试图分析WebKit的内核设计架构,模块之间的关系,分析的时候以Qt的移植为参考,涉及移植的东西不多,主要还是以内核为主。FrameLoader类负责一个Frame的加载,在Frame的流程中起到非常重要的重要,同很多组件都有交互,本文将分析FrameLoader类的代码。1. 概述    顾名思义,FrameLoader是一个Frame的...

2012-11-07 17:03:11 117

原创 Activity跳转Flag详解

Android 的一个特色就是 application A 的 activity 可以启动 application B 的 activity,尽管 A 和 B 是毫无干系的,而在用户看来,两个场景紧密联系,视觉上二者构成了一个整体。Android 就是把这种误觉定义为 Task,它既不是 class,也不是 AndroidMainifest.xml 中的一个元素。从表现上看 Task 就像是...

2012-11-06 18:04:24 101

protobuff使用小记

大家都说google protobuf很好用,这两天有时间研究了一下,果然很满意;才开始研究的时候,始终在想一个问题:protobuf里面没有消息头,包长度,如果我有多个消息类型的话,发送方还好说,但是到了接收方,该如何识别接收到的是哪个消息类型呢?苦苦思考良久,发现其实是我的思路原本就不对,其实在发送的时候,把消息头和消息体不要放在一个message里,分开序列化就ok了,费话就不多说了,测试代...

2012-10-31 10:51:44 326

原创 UPnP(这篇写得更清晰)

根据UPnP AV Architecture,在实际生活中, 有些UPnP AV设备包含三个组件(Media Server, Media Render, Control Point)的其中一个组件或者两个组件甚至三个组件的组合。 例如,包含DLNA功能的电视只包含Control Point组件, Window Vista系统就直接包含Media Server和Media Render...

2012-10-12 17:56:26 233

原创 DLNA开发框架介绍-DLNA解决方案

DLNA开发框架介绍-DLNA解决方案DLNA是什么?DLNA ç Digital Living Network Alliance宗旨:Enjoyyour music, photos and videos, athome and beyond1DMP从MDS上找到movies,并播放2DMC发送photos到DMR,让其播放3 DMC发现DMS...

2012-10-11 10:42:22 799

原创 DLNA综述

DLNA简介      DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE, 其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance) 由索尼、英特尔、微软等发起成立、旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互...

2012-10-11 10:14:57 74

原创 DLNA第一步UPnP协议栈

前面公司有DLNA项目,研究了一下,在网上关于DLNA的资源很少,就将自己的心得写出来,以供参考。其它的关于DLNA的介绍就不多说,要了解DLNA需要了解upnp,因为DLNA在upnp之上,初学者可以从http://www.upnp.org下载upnp的资料.也欢迎大家加入197683240 DLNA交流群。 upnp分为四步:发现 、描述 、控制 、事件 发现 当一个UPnP...

2012-10-11 10:09:44 342

原创 多线程Socket服务器

在网上无意看到一个多线程的Socket服务器端例子,觉得非常不错。特别是其中的线程池的思想,简单而且高效。虽然JDK1.5开始已经自带了线程池包,但该代码不失为学习Socket和多线程的一个好的入门例子。下面的代码是对该例子的简单整理,补充了注释。【代码一】PooledConnectionHandler:后台处理类package server;import java.io.Buffered...

2012-10-09 13:35:05 75

原创 20非常有用的Java程序片段

下面是20个非常有用的Java程序片段,转自http://coolshell.cn/articles/889.html1. 字符串有整型的相互转换Java代码  String a = String.valueOf(2); //integer to numeric string    int i = Integer.parse...

2012-10-08 14:08:44 80

原创 Java:Ant打包jar文件(有lib目录)

使用Ant打包Jar文件主要是lib/*.jar的路径需要注意: jar包里的jar包是不能被识别为classpath使用方法:如果代码是如下面的目录结构组织的,不需要修改什么,直接在终端运行ant命令即可在out目录输出对应的jar文件。<?xml version="1.0" ?><project default="jar" name="Acid"&...

2012-09-28 17:39:49 486

原创 TCP的三次握手和四次挥手

一,TCP建立连接(Connection Establishment)由以下三个过程:1)Client给Server发送发送TCP segment:SYN=1,ACK=0,SEQ=x。(这些字段的作用是这样的:通过SYN=1,ACK=0告诉server这是连接请求Connection Requet。SEQ=x表明后面传送数据时的第一个数据字节的序号是x+1)2)Server给Clie...

2012-09-27 15:35:17 122

原创 DLNA介绍(包括UPnP,6月20日更新)

这部分的内容大多来源于网络及官方文档,按照自己的翻译理解整理所成。东西比较多,从头慢慢看还是可以懂个大概的。 目录:一、DNLA的建立二、DLNA的成员三、DLNA标准的制定四、DLNA的设备五、DLNA的架构六、云时代的数字家庭(待填坑) 扩展阅读I: UPnP的工作过程------------DLNA基础协议框架扩展阅读II UPnP AV(A...

2012-09-27 15:33:51 252

原创 几种排序算法

 // datastructure.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "string.h"#include <windows.h> #include "MyTest.h"...

2012-09-24 10:49:39 71

空空如也

空空如也

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

TA关注的人

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