自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sphere/sector 深度剖析之二

本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息     转载请注明: 转载自sin的专栏 http://blog.csdn.net/yclzh0522                                                       理解Sphere编程模型         为了介绍Sphere编程模型,举了下面一个例子。假如我们有

2012-05-14 16:01:14 1307

原创 Sphere/sector 深度剖析之一

本文原创,可以转载, 但必须以超链接形式标明文章原始出处和作者信息     转载请注明: 转载自sin的专栏 http://blog.csdn.net/yclzh0522一,背景介绍: Sector/Sphere系统包括两个组件,一个是Sector分布式文件系统,一个是Sphere并行数据处理框架。 开源的,用C++开发的,遵循Apache 2.0许可证,可以从官网下载 http:

2012-05-14 11:46:18 2915

原创 诺亚基如何重振昔日霸主地位?

前不久,看到三星依然超越诺基亚,成为全球最大手机厂商,这不禁让我沉思了起来,作为一名手机行业人士,突然在想如果你现在是诺基亚的决策者,你如何去拯救这么一个昔日的一流手机品牌?或许,大家对于诺基亚手机的质量是佩服得五体投地,是的,在手机质量方面,诺基亚是值得每位消费者信赖的。我曾看见我的一个大学同学在用一个很老的诺基亚手机,那个手机看似至少用了5年,可是仍然很好用。      这一点我觉得值得国

2012-05-01 20:30:11 2484 3

转载 stagefright与opencore对比

1引言Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,弃用之前的opencore,仅仅对opencore中的omx-component部分做了引用。Stagefright自android2.0后才添加,其稳定性有待商榷,是否存在bug也未知,opencore自android诞生起便存在,稳定性有保障

2012-04-25 18:37:31 713

转载 媒体格式分析之flv -- 基于FFMPEG

本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写。今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv.FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能.当前主流的媒体网站像国内的优酷、国外youtub

2012-04-25 18:25:25 829

转载 Android 的用户层 uevent处理机制

摘录几篇android研发日志1 http://blog.csdn.net/linweig/archive/2010/06/01/5640697.aspxFirmware 加载原理分析----分析的比较透彻,我在wifimodule调试时遇到的问题几乎跟这个一样,不过我采取了另外一个方法,直接用kernel的read和write了,没有使用request_firmware,有空小结下。

2012-04-22 11:05:33 3795

转载 JAVA线程同步锁机制分析

打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。  在此我们先来明确一下我们的前提条件。该

2012-02-26 17:40:02 10097 1

转载 定时器+工作队列 内核周期性任务的实现机制

1 /* 本程序结合了内核定时器 和 工作队列 用于实现 周期性任务  2  * 其工作原理是 在定时器处理函数中 做完相应的工作后 延后expires 并将定时器  3  * 再次添加到内核定时器链表 以便定时器能再次触发    4  */  5 #include  6 #include  7 #include  8 #include /*timer*/  9 #

2011-12-31 13:47:46 1260

转载 linux kernel 工作队列

朋友 , 你相信 , 一只蝴蝶在北京拍拍翅膀 , 将使得纽约几个月后出现比狂风还厉害的龙卷风吗 ? 看过那部经典的影片蝴蝶效应的朋友们一定会说 , 这不就是蝴蝶效应吗 . 没错 . 蝴蝶效应其实是混沌学理论中的一个概念 . 它是指对初始条件敏感性的一种依赖现象 . 蝴蝶效应的原因在于蝴蝶翅膀的运动 , 导致其身边的空气系统发生变化 , 并引起微弱气流的产生 , 而微弱气流的产生又会引起它四周空气或

2011-12-30 21:52:43 1092

转载 sysfs接口函数的建立

说道sysfs接口,就不得不提到函数宏 DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store)函数宏DEVICE_ATTR内封装的是__A

2011-12-30 21:16:16 951

转载 linux内核input子系统解析

Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系统了。一、input输入子系统框架下图是input输入子

2011-12-30 20:47:40 749

转载 Linux输入子系统input_dev概述

Linux 系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,因此,12.1~12.2节的按键和触摸屏设备驱动都可以作为input设备驱动而实现。在Linux 内核中,input设备用input_dev 结构 体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键、触摸屏、键盘、鼠标等输入事件(event,通过in

2011-12-30 20:27:54 945

原创 D-BUS详细分析

一、概述      官方网站:http://www.freedesktop.org/wiki/Software/dbus,但是如果要下windows版的代码最好不要从sourceforge下,多次下来的1.2.4版本都无法正常解压。可以从svn上拿,具体见后面的dbus编译部分。      从官方首页中可以看到这样一段描述D-BUS 的话:“D-Bus is a message b

2011-12-21 11:05:36 11708 1

转载 PackageInstaller 原理简述

PackageInstaller 原理简述 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。Android应用安装有如下四种方

2011-12-09 13:18:05 1322

转载 Hadoop中TeraSort算法分析

1、概述1TB排序通常用于衡量分布式数据处理框架的数据处理能力。Terasort是Hadoop中的的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒。那么Terasort在Hadoop中是怎样实现的呢?本文主要从算法设计角度分析Terasort作业。2、算法思想实际上,当我们要把传统的串行排序算法设计成并行的排序算法时,通常会想

2011-11-28 15:01:31 1521

转载 UDT协议详细介绍

基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)是一种互联网数据传输协议。UDT的主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差。 顾名思义,UDT建于UDP之上,并引入新的拥塞控制和数据可靠性控制机制。UDT是面向连接的双向的应用层协议。它同时支持可靠的数据流传输和部分可靠的数据报传

2011-11-28 14:33:37 28672

原创 Mahout算法集

在Mahout实现的机器学习算法见下表算法类算法名中文名分类算法Logistic Regression逻辑回归Bayesian贝叶斯SVM支持向量机Perceptron

2011-11-23 16:40:32 7000

转载 Mahout聚类分析

聚类分析什么是聚类分析?聚类 (Clustering) 就是将数据对象分组成为多个类或者簇 (Cluster),它的目标是:在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。所以,在很多应用中,一个簇中的数据对象可以被作为一个整体来对待,从而减少计算量或者提高计算质量。其实聚类是一个人们日常生活的常见行为,即所谓“物以类聚,人以群分”,核心的思想也就是聚类。

2011-11-23 11:07:45 4582

转载 Bloom Filter算法及应用

1. 引言问题:有1000瓶药,但是其中有一瓶是有毒的,小白鼠吃了24小时后就会死掉,请问,在24小时找出有毒的药物,最少需要多少只小白鼠?答案是:10只,一只小白鼠可以表示2种状态,2^10可以表示1024种状态分析可参考:http://lzj0470.iteye.com/blog/657579通过二进制向量组来扩展描述的状态,Bloom Filter(BF)算法也是

2011-11-22 15:37:11 883

转载 Hadoop MapReduce 任务执行流程源代码详细解析

1 引言1.1 目的该文档从源代码的级别剖析了Hadoop0.20.2版本的MapReduce模块的运行原理和流程,对JobTracker、TaskTracker的内部结构和交互流程做了详细介绍。系统地分析了Map程序和Reduce程序运行的原理。读者在阅读之后会对Hadoop MapReduce0.20.2版本源代码有一个大致的认识。1.2 读者范围如果读者想只是想从原理

2011-11-22 13:16:39 2294

转载 Hadoop shuffle机制中针对中间数据的排序过程详解(源代码级)

在所有公开资料中,很少有对Hadoop 中间数据的sort过程进行详细介绍的。如果想要深入了解hadoop对中间数据的排序机制,只有通过阅读源代码才能达到。而hadoop的这段代码本身具有非常大的迷惑性,如果不注意细节,很容易会发生错误的理解。 本篇文章从原理上详细介绍了hadoop针对中间数据的排序机制,并且对一些重要的源代码段进行了介绍。阅读本文对理解该机制或者深入阅读该部分的hadoop源代

2011-11-22 13:14:14 1348

原创 实时竞价(RTB)介绍

什么是RTB?RTB 是英语 Real Time Bidding 的简称,翻译为中文是: 实时竞价。在解释RTB到底是什么之前,我们先看一下目前展示型广告市场的一些传统购买模式:CPM: cost per 1000 impressions - 按照每1000个展示曝光进行付费CPC: cost per click - 按照每个点击进行付费Monthly Flat: 广告位包月

2011-11-21 17:07:18 10337

原创 经典的垃圾回收算法

本文主要关注垃圾回收算法。垃圾回收机制,最早出现于世界上第二元老语言Lisp,Jean E. Sammet曾经说过,Lisp语言最长久的共享之一是一个非语言特征,即代表了系统自动处理内存的方法的术语极其技术——垃圾收集(GC,Garbage Collection)。接下来我们介绍几种经典的垃圾回收算法,这些算法尽管出现于60、70年代,但是现在的CLR、JVM等上面的垃圾回收器,仍然使用了它们。

2011-11-17 16:11:49 5853

原创 Android之通信RIL模块分析

Android RIL的原生代码包括四个主题: 1.Android RIL框架介绍2.Android RIL与 WindowsMobile RIL3.Android RIL porting4.Android RIL的java框架 在本文档中将Android代码中的重要模块列出进行分析,并给出了相关的程序执行流程介绍,以加深对模块间交互方式的理解。 对于java代

2011-11-10 10:36:07 3965

转载 Hadoop RPC机制

Hadoop RPC机制转载:http://www.iteye.com/topic/7099931、心跳机制 心跳的机制大概是这样的: 1) master启动的时候,会开一个ipc server在那里。 2) slave启动时,会连接master,并每隔3秒钟主动向master发送一个“心跳”,将自己的状态信息告诉master,然后master也是通过这个心跳的返回值,

2011-10-31 18:44:32 1141

原创 优秀的技术blog推荐(持续更新)

算法专区:http://blog.csdn.net/v_JULY_vlinux专区:http://www.linuxidc.com/Android专区:http://blog.csdn.net/Luoshengyang/http://blog.csdn.net/zhenwenxianhttp://blog.csdn.net/haojunming数据挖掘专区:ht

2011-10-31 17:42:08 1125

转载 海量数据处理方法总结

第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。      首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几

2011-10-31 17:25:32 1212 2

转载 Android 事件捕捉和处理流程分析

在Android系统中,键盘按键事件是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的;在上一篇文章《Android应用程序消息处理机制(Looper、Handler)分析》中,我们分析了Android应用程序的消息处理机制,本文将结合这种消息处理机制来详细分析Android应用程序是如何获得键盘按键消息的。

2011-10-31 15:10:15 13829 4

转载 Linux之awk命令详解

AWK介绍0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。2.三种方式调用awk1) awk [opion] 'awk_script' input_file1 [input_file2 ...]

2011-10-30 16:38:22 746

原创 SIFT算法详解

SIFT算法由D.G.Lowe 1999年提出,2004年完善总结,论文发表在2004年的IJCV上:David G. Lowe, "Distinctive image features from scale-invariant keypoints,"International Journal of Computer Vision, 60, 2 (2004), pp. 91-110论文

2011-10-28 18:05:11 5430

原创 11款相似图片搜索引擎推荐,以图搜图将不再是难事

你想凭着一张现有图片找出它的原始图片,或者是凭着一张小的缩略图找出原始大图吗?下面的十一款搜索引擎可以帮你实现,以图找图,以图搜图,以图片搜索相似的图片。1.http://tineye.com/Tineye是典型的以图找图搜索引擎,输入本地硬盘上的图片或者输入图片网址,即可自动帮你搜索相似图片,搜索准确度相对来说还比较令人满意。TinEye是加拿大Idée公司研发的相似图片搜索

2011-10-28 15:21:15 28437

原创 图片搜索之感知哈希算法

TinEye是如何工作的呢?这里面也许有十分复杂的原理。不过从结果看来,它使用了一种叫做“感知哈希算法(以下简称PHA)”的东西。     PHA是一类比较哈希方法的统称。图片所包含的特征被用来生成一组指纹(不过它不是唯一的),而这些指纹是可以进行比较的。     PHA与加密哈希方法(以下简称CHA),如MD5、SHA1等,是不同的概念。CHA的哈希值是随机的。用来生成哈希的数据的行为就

2011-10-28 15:10:31 8831 4

转载 Android 深入研究拖放功能Launcher(二)

看了上面代码知道,当开始点击桌面时,celllayout就会根据点击区域去查找在该区域是否有child存在,若有把它设置为tag.cell,没有,tag.cell设置为null,后面在开始拖放时launcher.onlongclick中对tag进行处理,  这个理顺了,再深入到workspace.startDrag函数,workspace.startDrag调用DragController

2011-10-28 10:07:37 1247 1

转载 Android 深入研究拖放功能Launcher(一)

Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解  1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈java代码:at com

2011-10-28 10:06:31 992

转载 Dalvik技术揭秘之四-Dalvik虚拟机的指令格式

在分析Dalvik虚拟机运行之前,先要了解Davlik指令,但是了解Davlik指令之前又要先懂得指令的格式,才能看得懂指令是怎么样构成,怎么样表达,怎么样查看,下面就来仔细地学习指令格式,这样在代码里看到指令时,就会很自然而然知道这条指令是干什么用了。在Dalvik虚拟机的目录下面有这样一份文档,我们来仔细学习它,如下:本文描述了在Dalvik虚拟机里字节码的指令格式,这种指令格式是

2011-10-27 10:37:49 2349

转载 Davlik技术揭秘之三Dalvik虚拟机的JNI方法和类表示

从上一节里,我们学习到JNI的方法表示可知,GetStaticMethodID方法最后一个参数“([Ljava/lang/String;)V”。这个参数是一个字符串,但内容排列比较奇怪,其实它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。这里只是方法描述符,但也有类描述符。其实这串参数“([Ljava

2011-10-26 14:40:22 1415

转载 Dalvik技术揭秘之二Dalvik虚拟机运行ZygoteInit类

从上一节可以知道Dalvik虚拟机入口点和创建虚拟机的函数,这一节继续分析运行时类调用虚拟机的代码片段,需要搞清楚怎么样运行JAVA的ZygoteInit类,Dalvik虚拟机又提供什么样的接口调用。运行时类代码如下:/*start the virtual machine */if (startVm(&mJavaVM, &env) != 0)goto bail;这一段是创建虚拟机,

2011-10-26 14:39:01 970

转载 Dalvik技术揭秘之二Dalvik虚拟机的入口点

要分析Dalvik虚拟机的代码,到底从那里开始比较好呢?从事软件开发人员都知道,每个程序都有生命周期,都有出生点,也就是程序的进入位置。像C语言里控制台程序是使用main函数作为入口点的,java程序也是使用main函数作为入口点。其实Dalvik虚拟机作为应用程序启动时,也是一样的从main函数开始。从Dalvik虚拟机源码目录dalvik/dalvikvm/Main.c文件,就可以看到入口函数

2011-10-26 14:37:08 1430

转载 Davlik虚拟机技术揭秘之一

为了挖掘Dalvik虚拟机的秘密,需要仔细分析Dalvik的每一个目录,每一个文件,才能把它的细节了然于胸。下面就开始吧! Android.mk 这个文件是虚拟机编译的makefile文件。 dalvikvm 这个目录是虚拟机命令行调用入口文件的目录,主要用来解释命令行参数,调用库函数接口等。 dexdump 这个目录是生成dex文件反编译查看工具,主要用来查看

2011-10-26 14:34:45 1295

原创 EM算法介绍

在Mitchell的书中也提到EM可以用于贝叶斯网络中。下面主要介绍EM的整个推导过程。1. Jensen不等式      回顾优化理论中的一些概念。设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的(),那么f是凸函数。如果或者,那么称f是严格凸函数。      Jensen不等式表述如下:      如果f是

2011-10-24 15:01:12 2405 1

空空如也

空空如也

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

TA关注的人

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