自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不积跬步无以至千里,不积小流无以成江海

Making the world different with beautiful design

  • 博客(30)
  • 收藏
  • 关注

转载 android apk 防止反编译技术第一篇-加壳技术

做android framework方面的工作将近三年的时间了,现在公司让做一下android apk安全方面的研究,于是最近就在网上找大量的资料来学习。现在将最近学习成果做一下整理总结。学习的这些成果我会做成一个系列慢慢写出来与大家分享,共同进步。这篇主要讲apk的加壳技术,废话不多说了直接进入正题。一、加壳技术原理所谓apk的加壳技术和pc exe的加壳原理一样,就是在

2015-03-30 19:30:14 4367

转载 FFMPEG高级编程第一篇:环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了。今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考。本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点:一、重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),

2015-03-30 19:18:11 621

转载 linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动。本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。下面就开始学习如何写一个简单的字符设备驱动。首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作。1、主设备号和次设

2015-03-30 11:13:52 642

转载 你所不知道的html[5]与html中的那些事(一)

文章简介:      关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢?      本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的

2015-03-29 13:02:22 657

原创 [WebKit内核] JavaScript引擎深度解析--基础篇(一)字节码生成及语法树的构建详情分析

看到HorkeyChen写的文章《[WebKit] JavaScriptCore解析--基础篇(三)从脚本代码到JIT编译的代码实现》,写的很好,深受启发。想补充一些Horkey没有写到的细节比如字节码是如何生成的等等,为此成文。      JSC对JavaScript的处理,其实与Webkit对CSS的处理许多地方是类似的,它这么几个部分:(1)词法分析->出来词语(Token)

2015-03-26 23:26:13 9077 3

转载 浏览器开发系列第一篇:如何获取最新chromium源码(转)

背景:     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧。于是乎,本文顺理成章。由于有些细节必需描述清楚,所以这次先讲如何拿到chromium的源码,下次直接把编译过程写出来,供大家参考。前期准备:     之前的chromium源码都是用svn来维护,所以源码地址网上贴的到处都是,我看了一下,svn的版本最新的

2015-03-26 11:19:44 852

转载 Android Metro风格的Launcher开发系列第一篇

android apk目录(?)[+]可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。首先要做的事情是环境搭建:大家可以装双

2015-03-24 10:35:37 1370

原创 Android上学习ARM指令集之开篇

工作中经常碰到crash的问题,如果是Debug版本,有源代码,那还好,调试信息多。万一Release给QA甚至客户之后,再发现crash之类的问题,如果不熟悉ARM指令、看不懂现场,那调试起来可就费劲了。往往只能到处去猜,相信大家都有过这种难过的经历。 这段时间比较闲,正好利用起来为入门ARM指令集写点初级文章,没什么远大理想,写到哪里算哪里,权当娱乐罢了。

2015-03-21 16:04:29 2406

转载 计算机航向

回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢):     就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。     如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计

2015-03-20 15:13:31 674

原创 词法分析器的工作过程分析

Webkit中,有个词法分析器HTMLTokenizer,她是怎么工作的呢,网页字节流是她的输入,她的输出是一个个的词语Token,比如div,input,img,script等等HTML文件中的标准元素(Element)。

2015-03-20 12:57:24 2397

原创 Webkit初始化以及加载URL过程中各种对象的建立时序以及DOM树的建立详情分析

众所周知,Webkit需要创建DOM树。为此它需要创建WebView, Chrome,Page,Frame, Document, Document Parser, DOM Tree Builder(DOM树的建造引擎),ScriptRunner, Resource Handle等等对象。 同时,还需要创建为上面这些对象服务或者与之通信的支持对象,比如:与本地窗口相关的ChromeClient, 与FrameLoader事件相关的FrameLoaderClient,为Document服务的D

2015-03-20 12:22:41 1960

原创 QtWebkit里RenderLayer树的绘制详细流程分析

QtWebKit从绘制事件(Qt的paint)发出,到WebCore的RenderLayer数的绘制详细流程分析如下。       首先是QWidget收到paintEvent,发送给Qt的QWebView,在QWebView里,创建Qt的画笔QPainter,然后使用此画笔再调用Qt的QWebFrame的渲染函数render把这个QWebFrame绘制到裁剪区里。在QWebFrame的ren

2015-03-19 00:04:48 1797

原创 从最简单的实例学习ARM 指令集(五)

上一篇文章里,我们的子函数f1的参数是4个,arm果然如我所料采用r0-r3传递函数参数,这次我们再把参数加多: test7.c#include void f1(int p1, int p2, int p3, int p4, int p5){  p5++;}void main(){  int d = 4;  f1(d, d, d, d, d);}   然后

2015-03-18 12:16:55 1668

原创 从最简单的实例学习ARM 指令集(四)

上一篇讲到子函数调用,这篇讲讲参数传递。先看下面一个小不点程序:test5.c#include void f1(int p1){}void main(){ int d = 4; f1(d);}   然后编译:arm-linux-gnueabihf-gcc test.c -o test5   然后看看汇编代码:arm-linux-gnueabihf-objdump -

2015-03-18 11:18:35 3954

原创 改进的SMS4算法的差分故障与暴力联合攻击

改进的SMS4算法的差分故障与暴力联合攻击(1.中国科学院研究生院,北京100049)摘要SMS4是在国内正式使用并于2006年公布的第一个用于无线局域网的商用分组密码算法.文中研究了SMS4对差分故障和暴力联合攻击的安全性.攻击使用随机故障模型,提出一种简化的轮函数差分故障攻击与暴力攻击相结合的方法.用该攻击方法不到1分钟就可以完全恢复出128位的种子密钥

2015-03-18 09:15:45 2659

原创 从最简单的实例学习ARM 指令集(三)

上一篇讲到赋值运算,这篇讲讲子函数调用,先看最简单范例:test4.c#include void f1(){}void main(){ int d = 4; f1();}      然后编译:arm-linux-gnueabihf-gcc test.c -o test4      然后看看汇编代码:0000835c :1    835c:       b48

2015-03-18 00:36:33 2258

原创 从最简单的实例学习ARM 指令集(二)

本篇研究赋值运算是如何实现的。我们在上一篇的范例test2.c的基础上,加上赋值语句 d = b;test3.c#include void main(){ int d = 4; char b = 2; d = b;}       然后编译:arm-linux-gnueabihf-gcc test.c -o test3      然后看看汇编代码:arm-linux-g

2015-03-17 23:27:48 1595

原创 从最简单的实例学习ARM 指令集(一)

打算为入门ARM指令集写点初级文章,没什么远大理想,纯当娱乐算了。 首先编辑一个最简单的函数,包含变量分配及初始化:test1.c

2015-03-17 19:17:59 4946

原创 编译Sanbox

chromium启动总是出现警告提示:[4428:4428:51288848814:WARNING:zygote_host_impl_linux.cc(165)] Running without the SUID sandbox! See http://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on. 更新

2015-03-14 16:20:54 2765

原创 Backing Store ( 五 )的创建

不是所有的RenderLayer都需要创建它的Backing Store,只有网页的RenderObject树之RenderLayer满足如下条件:1 Transform:几何变换2 Video:页面有3 Canvas: 页面有4 Plugin5 Frame6 3DTransforms7 Animation8 Filters:CSS过滤器9 Position

2015-03-10 11:49:35 3979

原创 查看RenderObject树的内部表示

有时候我们需要知道自己写的页面排版的具体细节,DumpRenderTree是个不错工具。它位于WebKit/WebKitBuild/[Debug|Release]/bin目录下,直接运行会出错:gdb ./DumpRenderTree./DumpRenderTree http://192.168.1.100/BoxModeofCSS.html[Thread debugg

2015-03-10 07:52:03 2931

原创 树莓派上运行android

树莓派II来了!这对于想研究安卓的人来说是一个福音。官方配置如下:900MHz 主频四核 ARM Cortex-A7 处理器(博通 BCM2836)1G LPDDR2 SDRAM (Micron)两个全尺寸 USB 接口(可用于供电)一个 microUSB 接口一个全尺寸 HDMI 接口3.5 毫米音频接口RJ45 以太网线接口   想当年我用树莓派I运

2015-03-05 15:28:41 58444 17

转载 SVN cleanup 失败后的处理

svn: 工作副本“某某某某”已经锁定  svn: 运行“svn cleanup 某某某某”删除锁定 (输入“svn help cleanup”得到用法)  然后你就老老实实的运行“svn cleanup 某某某某”。结果SVN又报告一个错误  svn: 在目录“某某某某”中  svn: 处理命令 “modify-wcprop” 于 “某某某某” 出错  s

2015-03-05 11:21:53 865

转载 RefPtr和PassRefPtr基础[1]

历史:     在WebKit中,许多对象采用了引用计数。这种模式是通过类的ref,deref成员函数来递增和递减对象的引用记数。调用一次ref必须调用一次deref。当对象的引用记数为0的时候,对象就被删除。WebKit中许多类创建的新对象引用记数都为0,这被称作是浮动状态(Floating State)。在浮动状态的对象必须调用ref,在删除之前必须调用deref。WebCore中许多

2015-03-04 16:28:18 892

翻译 Tiled Backing Store(四)

3.3 分片底衬仓库(TiledBackingStore)的可见区域矩形      如下图所示,WebCore::Frame::tiledBackingStoreVisibleRect最终请求QGraphicsWebView给出可见区域:3.4 使分片底衬仓库无效     如果frame内容所在的矩形变脏了,WebCore::Frame会使这个矩形变成无效区域,同时告诉分片

2015-03-03 12:56:09 1283

翻译 Tiled Backing Store(三)

3.Qt WebKit之QGraphicsWebView     本节叙述如何通过Qt的QGraphicsWebView实现分片底衬仓库(tiled backing store)。如上静态类图所示,只有实现了分片底衬仓库客户端(TiledBackingStoreClient)的接口的WebCore::Frame才拥有分片底衬仓库实例。其他类只能通过WebCore::Fra

2015-03-03 11:31:49 1255

翻译 Tiled Backing Store (二)

2.2 前缓冲区(Front buffer)       通过QPinter来绘制tile实际上就是要绘制存储在前缓冲区里的pixmap。没有前缓冲区的tile意味着它不需要绘制。2.3 后缓冲区(Backend Buffer)       后缓冲区充当tile内容的屏下(off-screen)后缓冲区并且可以采用Qt的画笔绘制到Qt widget上。在更新后缓冲区的过

2015-03-03 00:56:27 1662

翻译 Tiled Backing Store(一)

1. 概述下列图片从层次的角度解释了什么是Tiled Backing Store:viewport 视图端口:代表用来显示网页内容的区域。Qt里,实际上就是QWidget。Tiled backing store: 可以看作是off-screen的pixmap的缓冲区。为了滚动、缩放操作的平滑,它覆盖的区域总是比viewport要大。 Co

2015-03-03 00:23:21 1942

原创 各种各样的client

我们看webkit代码,到处是client,那么何为client呢? 其实,client(客户端)指的就是对某件事情感兴趣的人(物),对Frame加载感兴趣的人,他可以继承Frame加载器的客户端,通过客户端的一系列接口,他就可以获知Frame加载到什么阶段了。请看FrameLoaderClient的各种各样的事件接口:将要发生型:    virtual void dispat

2015-03-02 18:09:30 1154

原创 Frame

frame允许我们在多个独立于窗口的视图(view)里表现文档(document),多视图使我们很方便,比如我可以让有些信息可见、其他信息不可见(比如滚动显示)。举例来说,我们可以在同一个窗口内,让一个frame显示静态标签,而让另一个frame显示导航菜单,第三个frame显示能滚动的document,如何滚动却由第二个frame来选择。是不是很有意思?下面给出一个例子:      fr

2015-03-01 23:24:58 876

空空如也

空空如也

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

TA关注的人

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