10 2013 档案
摘要:流媒体 流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。 这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方式,而非一种新的媒体。 流媒体技术全面应用后,人们在网上聊天可直接语音输入;如果想彼此看见对方的容貌、表情,只要双方各有一个摄像头就可以了;在网上看到感兴趣的商品,点击以后,讲解员和商品的影像就会跳出来;更有真实感的影像新闻也会出现。 流媒体技术发端于美国,在美国目前流媒体的应用已很普遍,比如惠普公司的产品发布和销售人员培训都用网络视频进行。 所谓流媒体...
阅读全文
摘要:GitHub GitHub是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 对于一般人来说公共仓库就已经足够了,而且我们也没多少代码来管理,O(∩_∩)O~。本地仓库建立1,注册账户以及创建仓库 要想使用github第一步当然是注册...
阅读全文
摘要:通信协议 串行通信接口(如RS232、RS485等)作为计算机与单片机交互数据的主要接口,广泛用于各类仪器仪表、工业监测及自动控制领域中。 通信协议是需要通信的双方所达成的一种约定,它对包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,在双方的通信中必须共同遵守。在实际应用系统中,如果缺少一个严格、合理、规范的串口通信协议,将无法保证数据传输的正确性及通信的可靠性。 因此,需要提出一种基于状态机串口通信协议的设计方法:通过合理地设置数据包格式来保证了数据传输的正确性:引入了状态机方法,简化了协议的实现难度,提高了通信的可靠性,同时使通信过程具有较高...
阅读全文
摘要:Spcomm属性设置 SPCOMM 控件的属性设置很关键的,特别是使用事件驱动时接收大数据块时尤为明显,如果设置不当,接收到的数据可能严重出错。 ReadIntervalTimeout:=100 SPCOMM 属性中,所有 可设置 True 和 False 的属性应当设置成 False; SPCOMM 控件每次只能接收 2048 个字节,如果大于 2048 个字节,则分多次接收.Spcomm串口通信的关键技术问题 Spcomm应用的核心在于主线程、读线程和写线程之间的消息传递机制,而通信数据相关信息的传递也是以消息传递的方式进行的。 在使用Spcomm进行串口通信编程,除按照说明使...
阅读全文
摘要:本文基于Android-4.0理论层次解读 请看:www.cnblogs.com/lcw/p/3373214.html如何管理各种驱动设备 在理论中谈到EventHub,这个一看就是一个做实事的,肯定不是领导,哪它的领导是谁呢? 从以下几方面来分析此问题:每个功能模块是怎么产生的?读取设...
阅读全文
摘要:linux输入子系统 Android是linux内核的,所以它的事件处理系统也在linux的基础上完成的。 Linux内核提供了一个Input子系统来实现的,Input子系统会在/dev/input/路径下创建我们硬件输入设备的节点,一般情况下在我们的手机中这些节点是以eventX来命名的,如e...
阅读全文
摘要:类图关系 在看Android的窗口机制之前,先看看其主要的类图关系以及层级之间的依赖与调用关系 1.window在当前的android系统的中的呈现形式是PhoneWindow (frameworks/base/policy/src/com/android/internal/polic...
阅读全文
摘要:计算机的存储层次 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。原因一:距离不同 距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读取。 以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内,光可以前进10厘米。因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的读取,这还没有考虑硬件的限制和电流实际上达不到光速。相比之下,寄存器在CPU...
阅读全文
摘要:ADB命令简介 ADB是一个功能强大的命令行工具。通过它可以直接和模拟器或真机进行交互。它是一个具有客户端和服务器端的程序。 它主要由三个部分组成:客户端,它运行在你的开发机上,你可以通过执行adb命令来唤起一个客户端。其他的工具例如:ADT插件以及DDMS也可以创建一个ADB客户端。服务端,它运行在你的后台进程,这个服务管理客户端和运行在你模拟起或真机上的守护进程。守护进程,它运行在每台模拟器或真机的后台进程。 当你启动一个adb客户端的时候,客户端会首先检测是否已经有adb服务进程运行,如果没有运行,那么它会首先启动一个服务进程,当服务进程启动后,服务进程绑定本地的5037端口,并且...
阅读全文
摘要:absolute{它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同.}var Str: string[32]; StrLen: Byte absolute Str;{这个声明指定了变量StrLen起始地址与Str相同.}{由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度.}begin Str := 'abc'; Edit1.Text := IntToStr(StrLen);end;View Code abstract{它允许你创建抽象的方法, 包括有抽象方法的类称为抽象类.}{Abstract关键字必须与Virtual或Dynami
阅读全文
摘要:另外两种多线程的同步方法 CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同;CriticalSection(临界区) 类似于只有一个蹲位的公共厕所, 只能一个个地进;Mutex(互斥) 对象类似于接力赛中的接力棒, 某一时刻只能一个人持有, 谁拿着谁跑.什么是 Semaphore(信号或叫信号量) 譬如到银行办业务、或者到车站买票, 原来只有一个服务员, 不管有多少人排队等候, 业务只能一个个地来. 假如增加了业务窗口, 可以同时受理几个业务呢? 这就类似与 Semaphore 对象, Semaphore 可以同时处理等待函数(...
阅读全文
摘要:TStringList 常用方法与属性var List: TStringList; i: Integer;begin List := TStringList.Create; List.Add('Strings1'); {添加} List.Add('Strings2'); List.Exchange(0,1); {置换} List.Insert(0,'Strings3'); {插入} i := List.IndexOf('Strings1'); {第一次出现的位置} List.Sort; ...
阅读全文
摘要:string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节; 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度、引用计数等信息。字符序列以NULL结束。string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型; Str[0]存储着字符的个数,第一个字符从Str[1]开始存放,不以NULL结束。 只要理解这一理论,转string应该就...
阅读全文
摘要:在 Delphi 中使用多线程有两种方法: 调用 API、使用 TThread 类; 使用 API 的代码更简单.CreateThreadfunction CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; {堆栈大小} lpStartAddress: TFNThreadStartRoutine; {入口函数} lpParameter: Pointer; {函数参数} dwCreation...
阅读全文
摘要:SQLite SQLite是一个老牌的轻量级别的本地文件数据库,完全免费且开源,不需要安装,无须任何配置,当然,这样管理功能就不是很强大了,但是它的主要应用也是在本地数据库,可以说是最简单好用的嵌入式本地数据库了。 SQLite只要一个DLL就可以实现全部功能。SQLite不需要数据库引擎,只有一个数据文件,占用系统资源非常少,很适合做Demo或小型应用。 同时,SQLite也是关系型数据库,支持大部分SQL语句。它支持事务机制和blob数据类型,支持大部分SQL92标准,最大支持数据库到2T。 它还有Python、Tcl、PHP、Java的绑定,这些语言可以直接使用SQLite数据库...
阅读全文
摘要:无名管道pipe 无名管道又被称为pipe,是进程间通信的一种方式。 pipe具有以下特点:只能用于具有血缘关系的进程之间半双工的通信模式,具有固定的读端和写端一种特殊的文件,存在于内存中。可通过read、write对其操作 因为pipe存在于内存中,所以无法像操作普通文件那样通过指定路径来打...
阅读全文
摘要:概述^: 指针@: 取址#: 十进制符$: 十六进制符@ :取址运算符1 var2 int :integer;3 p :^integer;4 begin5 new(P);6 int :=24;7 p :=@int;8 dispose(P);9 end;^ :指针的引用解析操作符var pint :^integer;begin new(pint); showmessage(inttohex(integer(@pint),8)); pint^ :=$ff; showmessage(inttohex(pint^,4));end; 符号 ^ 有两种用途 当它出现在...
阅读全文