自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

转载 view事件传递

1,view事件的传递图解View的dispatchTouchEventView的onTouchEvent2,viewgroup事件传递一些知识点FLAG_DISALLOW_INTERCEPT,可以使用requestDisallowInterceptTouchEvent来设置ViewGroup的这个标记位,让ViewG

2016-04-22 09:21:55 570

转载 Android Scroll 详解

今天,我们就来探讨一下Android中界面滚动效果的相关机制,本篇文章主要讲解一下滚动相关的知识点,之后的文章会涉及实际的代码和原理。希望大家阅读完这篇文章之后,能够了解或者掌握一下知识:Android 视图的组成部分mScrollX和mScrollY对视图显示的影响scrollTo和scrollBy的使用invalidate和postInvalidate的区别View的mScro

2016-04-22 09:17:06 1708

转载 SQLite 查询处理及优化

查询处理及优化是关系数据库得以流行的根本原因,也是关系数据库系统最核心的技术之一。SQLite的查询处理模块非常的精致,而且很容易移植到不支持SQL的存储引擎,Berkeley DB最新的版本已经将其完整的移植过来。本文将简要的讨论一下SQLite的查询处理及优化。     查询处理一般来说,包括词法分析、语法分析、语义分析、生成执行计划以及计划的执行几个部分。SQLite的词法分析器是手工写

2016-04-11 17:15:20 3528

转载 SQLite 浅析Lemon

1、概述  Lemon是一个LALR(1)文法分析器生成工具。虽然它是SQLite作者针对SQLite写的一个分析器生成工具,但是它与bison和yacc类似,是一个可以独立于SQLite使用的开源的分析器生成工具。而且它使用与yacc(bison)不同的语法规则,可以减少编程时出现错误的机会。Lemon比yacc和bison更精致、更快,而且是可重入的,也是线程安全的——这对于支持多线程的程

2016-04-11 17:13:08 686

转载 SQLite 实现与应用

1、前言有一些日子没有仔细关注SQLite了,今天打开其主页,发现其最新的版本已经是3.6.22了,更让我惊喜的是它的用户越来越多,而且邮件列表的关注者也越来越多,突然觉得自己已经太old了。惊喜的同时,不得不聊上几句了。首先,来看看都有哪些人在使用SQLite,主页上列举一长串NB的用户,其中不乏像Adobe,Apple,Firefox,甚至连google,Microsoft,S

2016-04-11 17:10:39 536

转载 SQLite VACUUM命令分析

VACUUM命令是SQLite的一个扩展功能,模仿PostgreSQL中的相同命令而来。若调用VACUUM带一个表名或索引名, 则将整理该表或索引。在SQLite 1.0中,VACUUM命令调用 gdbm_reorganize()整理后端数据库文件。SQLITE 2.0.0中去掉了GDBM后端,VACUUM无效。在2.8.1版中,VACUUM被重新实现。现在索引名或表名被忽略。当数

2016-04-11 17:05:53 2111

转载 SQLite 存储模型(2)

写在前面:接上一节,本节主要讨论索引页面格式,以及索引与查询优化的关系。(1)索引页面格式sqlite> select * from sqlite_master;table|episodes|episodes|2|CREATE TABLE episodes( id integer primary key,name text, cid int)index|name_index

2016-04-11 17:02:26 534

转载 SQLite 存储模型(1)

写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的。所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面。而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多。就拿Oracle来说吧,它对数据文件不仅从物理进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分

2016-04-11 16:54:13 1575

转载 SQLite 浅谈SQLite的虚拟机

写在前面:虚拟机技术在现在是一个非常热的技术,它的历史也很悠久。最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。由于在这里主要讨论SQLite的虚拟机,不打算

2016-04-11 16:52:19 1725

转载 SQLite 再谈SQLite的锁

写在前面:SQLite封锁机制的实现需要底层文件系统的支持,不管是Linux,还是Windows,都提供了文件锁的机制,而这为SQLite提供了强大的支持。本节就来谈谈SQLite使用到的文件锁——主要基于Linux和Windows平台。 Linux的文件锁Linux 支持的文件锁技术主要包括建议锁(advisory lock)和强制锁(mandatory lock)这两种

2016-04-11 16:50:44 3612

转载 SQLite Page Cache之并发控制

写在前面:本节主要谈谈SQLite的锁机制,SQLite是基于锁来实现并发控制的,所以本节的内容实际上是属于事务处理的,但是SQLite的锁机制实现非常的简单而巧妙,所以在这里单独讨论一下。如果真正理解了它,对整个事务的实现也就理解了。而要真正理解SQLite的锁机制,最好方法就是阅读SQLite的源码,所以在阅读本文时,最好能结合源码。SQLite的锁机制很巧妙,尽管在本节中的源码中,我写了很多

2016-04-11 16:49:24 482

转载 SQLite3.3.6 源代码文件结构

Version 3.3.6源代码文件结构                                               ——整理:hustcat 2009-2-19文件名称大小byte备注API部分main.c35414SQLite Library的大部分接口

2016-04-11 16:47:46 1230

转载 SQLite Page Cache之事务处理(3)

写在前面:由于内容较多,所以断续没有写完的内容。11、删除日志文件(Deleting The Rollback Journal)一旦更改写入设备,日志文件将会被删除,这是事务真正提交的时刻。如果在这之前系统发生崩溃,就会进行恢复处理,使得数据库和没发生改变一样;如果在这之后系统发生崩溃,表明所有的更改都已经写入磁盘。SQLite就是根据日志存在情况决定是否对数据库进行恢复处理。

2016-04-11 16:45:31 1178

转载 SQLite Page Cache之事务处理(2)

写在前面:从本章开始,将对SQLite的每个模块进行讨论。讨论的顺序按照我阅读SQLite的顺序来进行,由于项目的需要,以及时间关系,不能给出一个完整的计划,但是我会先讨论我认为比较重要的内容。本节讨论SQLite的事务处理技术,事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复,由于内容较多,分为两节。好了,下面进入正题。 本节通过一个具体的例子来分析

2016-04-11 16:39:05 534

转载 SQLite 内核概述(2)

写在前面:本节是前一节内容的后续部分,这两节都是从全局的角度SQLite内核各个模块的设计和功能。只有从全局上把握SQLite,才会更容易的理解SQLite的实现。SQLite采用了层次化,模块化的设计,而这些使得它的可扩展性和可移植性非常强。而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对于理解通用DBMS具有重要意义。好了,下面我们开始讨论SQLite剩余的两部分:Back-e

2016-04-11 16:37:49 561

转载 SQLite 内核概述(1)

写在前面:从本章开始,我们开始进入SQLite的内核。为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要。SQLite的内核实现不是很难,但是也不是很简单。总的来说分为三个部分,本章主要讨论虚拟机(Virtual Machine),但是这里只是从原理上概述,不会太多的涉及实际代码。但是概述完内核之后会仔细讨论源代码的。好了,下面我们来讨论虚拟机(VM)。

2016-04-11 16:30:13 491

转载 SQLite 设计与概念

写在前面:谢谢各位的关注,没想到会有这么多人关注。高兴的同时,也感到压力,因为我接触SQLite也就几天,也没在实际开发中用过,只是最近项目的需求才来研究它,所以我很担心自己的文章是否会有错误,误导别人。但是我很想把自己的学习成果与大家分享,所以如果大家觉得我有不对的地方,望不吝赐教。我原打算直接从VDBE入手的,因为它起着承上启下的作用,是整个SQLite的核心,并分析源码,但考虑到这是一个

2016-04-11 15:52:26 1473

转载 SQLite -简介

写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。1、SQLite介绍自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它

2016-04-11 15:46:45 696

转载 Androidtudio

本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。翻译不易,转载请注明CSDN博客上的出处:http://blog.csdn.net/maosidiaoxian/article/details/42417779

2016-02-17 11:55:05 673

转载 AndriodStudio——Gradle 插件用户指南(6)

没想到翻译这篇《Gradle 插件用户指南》拖了差不多一个月,还跨年了。不过还好,在2号时终于一口气把剩下的给翻译完了(其实那天剩下的也就不到一章)。今天先发一下第六章,明天再发第七章。本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-s

2016-02-17 11:54:03 356

转载 AndroidStudio——Gradle 插件用户指南(5)

昨晚把第五章未译完的几句话解决了,不过第六章没怎么译,明后天又是周末,如果周一前第六章翻译完的话,周一再发第六章。本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。翻译不易,转载请注明CSDN博客上的出

2016-02-17 11:52:05 417

转载 AndroidStudio——Gradle 插件用户指南(4)

最近赶项目,白天基本没时间,只有晚上在家的时候才能看一看。昨天晚上只翻译完了第四章,今天就只发第四章吧。本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。翻译不易,转载请注明CSDN博客上的出处:

2016-02-17 11:50:22 376

转载 AndroidStudio——Gradle 插件用户指南(1-3)

不知道是什么网络问题,上午一直发不了博客,其他页面基本正常,就是在写博客这里,每次打开都是响应超时。刚才用了VPN,顺便试了一下,居然可以编辑。想是CDN之类的问题吧。这次翻译的是Gradle 插件用户指南,也就是Gradle上的Android插件的官方文档。文档很长,加上最近激情不够,翻译得有些慢。到昨天为止,才译到第四章。今天先发前三章。本文译自Android官方技术文档《Gr

2016-02-17 11:48:30 559

转载 ImageLoader最新框架解析

一般会在自己的Application子类的onCreate()方法中对ImageLoader进行配置(1) ImageLoaderConfiguration各属性解释l 偷懒点可以直接使用缺省的配置ImageLoaderConfiguration:ImageLoaderConfiguration configuration = ImageLoaderConfiguratio

2015-07-09 11:25:00 400

转载 开源框架Universal-Image-Loader完全解析

---------------------------------------------------------------------基础部分--------------------------------------------------------------------------转载请注明本文出自xiaanming的博客(http://blog.csdn.

2015-05-22 17:01:27 647

转载 asmack实现端到端的消息回执(XEP-0184: Message Delivery Receipts)

要想保证信息的传输,目前在smack/asmack + openfire架构上,我个人想到有两种实现方式:1.端到端确保发送(类似短信)。其实这个就是xmpp协议的XEP-0184: Message Delivery Receipts.里边为了确保消息的到达,需要接收方返回回执,这样发送方就知道对方是否确切收到消息。当然咯,接收回执过程中也可能出现断线,

2015-05-06 17:35:07 600

转载 手机客户端android网络不稳定而导致asmack不能自动重连接openfire的问题

asmact自动重连要能进行,那么asmact必须要使用ReconnectionManager类。可是在asmact的ConnectionConfiguration源码中,没有任何加载ReconnectionManager类的代码,所以在客户端单独使用如下设置是不起作用的:1configuration.setReconnectionAllowed

2015-05-06 17:34:15 803

转载 smack源码分析——接收消息以及如何解析消息

在android里面用的smack包其实叫做asmack,该包提供了两种不同的连接方式:socket和httpclient。该并且提供了很多操作xmpp协议的API,也方便各种不同自定义协议的扩展。我们不需要自己重新去定义一套接收机制来扩展新的协议,只需继承然后在类里处理自己的协议就可以了。而本文今天主要说两点,一点就是消息是如何接收的,另一点就是消息是如何通知事件的。 总

2015-05-06 17:33:06 546

转载 smack源码分析前期准备——XmpPullParser

smack主要封装了xmpp协议,提供更方便的api去操作xmpp协议,具体详细可以到这边文章了解:http://www.cnblogs.com/not-code/archive/2011/07/16/2108369.html鉴于xmpp协议都是以xml格式来传输,因此源码中解析协议都是用到XmpPullParser来解析xml。因此本文先介绍XmpPullParser的用法,在下

2015-05-06 17:31:55 374

转载 asmack 注册 登陆 聊天 多人聊天室 文件传输

XMPP协议简介XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMP

2015-05-06 17:29:58 730

转载 smack 源码分析- PacketReader (android上实现长连接)【3】

smack 源码分析- PacketWriter (android上实现长连接) 介绍完PacketWriter 之后, 接下来分析PacketReader. PacketReader的作用主要用来接收云端推送的消息并解析然后调用相应的监听器完成相关的操作.什么都别说, 先看代码:[java] view plaincopy//

2015-05-06 17:28:45 636

转载 smack 源码分析- PacketWriter (android上实现长连接)2

上一篇smack 源码分析一(android上实现长连接)  整体分析了smack长连接的流程, 本篇将详细介绍PacketWriter.PacketWriter是在上篇在介绍initConnection()方法中创建的,那么详细看下PacketWriter的实现:[java] view plaincopyprot

2015-05-06 17:27:08 385

转载 smack 源码分析一(android上实现长连接)【1】

前段时间应一个项目需求: 要求给终端短信, 联系人信息做一个云存储云备份及云端远程控制终端并且云端能够推送消息到终端的需求. 这需要在终端与云端建立一个长连接以便云端消息能及时推送到终端. 所以项目中用到了smack框架.  smack功能强大, 远不止本文所写的这点内容. 现在我只将对smack的理解以及项目中对smack的使用心得总结并记录下来, 一则给大家分享 , 二则也算是一个

2015-05-06 17:26:01 559

转载 aSmack源码分析PacketReader

PacketReaderPacketReader所有的核心逻辑都在一个线程中完成的,PacketReader的工作很专注,同样的在一个while loop中 不停的解析、刷新reader对象、同时作为事件源发送解析过后的各种Packet,解析这里用的是Android独特的Pull解析,Pull解析的特点事件驱动,在这里被完全的利用了起来,随着不同的标签,PacketReader都会

2015-05-06 17:23:46 381

转载 aSmack源码分析register过程分析

register过程分析RegisterTask这个task在运行中,添加了一个监听,上面说道的PacketReader中有一个消息机制,在不停的解析服务器返回的结果,然后将解析过后的包分发给各个监听器(观察者),而register中就注册了一个监听器,比较有意思的是,监听器被注册时还加了一个过滤器,这个过滤器的目的是监听器只接收自己感兴趣的内容,这个设计真的很赞。这样就不必在数据源头

2015-05-06 17:22:58 306

转载 关于asmack的packetwriter

在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳定些,所以就打算自己研究一下asmack的源码,自己做一个插件,androidnp移动端的源码中包含了一个叫做asmack的jar。Reader和Writer在asmack中有

2015-05-06 17:22:19 468

转载 关于xmpp的协议原理分析

XMPP协议简介XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利

2015-05-06 17:19:55 414

转载 关于xmpp的一些解释

一、定义       XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。       XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允

2015-05-06 17:18:30 592

转载 Java常用算法

在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。1.String/Array/Matrix 在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代

2015-05-02 12:27:10 486

转载 P2P技术基础

导读:   摘 要:分析了P2P基本概念及其基本工作原理,探讨了用JAVA实现p2p网络通信的技术,并用一个实例作了进一步阐述。   关键词:P2P,C/S,JAVA,XML,JDK ,TCP,UDP   一、 前言   P2P(Peer-to-Peer 端到端)模型是与C/S(客户/服务器)模型相对应。基于C/S的用户间通信需要由服务器中转,在C/S中的服务器故障将导致整

2015-05-02 11:57:09 576

jdk 6.0学习笔记

全本的,很好的一本书。 《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API等均进行了详细介绍。本书还安排了一个“文字编辑器”的专题制作。此外,Java SE6的新功能,对Java lang等套件的功能加强,以及JDBC4.0、Apache Derby纯Java数据库等新增功能,本书也都予以介绍。<br>《Java JDK6学习笔记》中介绍了Java JDK6中新增的功能。Java JDK6加强了java.lang、java.util、java.io、java.awt等套件的功能,并增加了JDBC 4.0新功能

2011-05-23

空空如也

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

TA关注的人

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