- 博客(53)
- 收藏
- 关注
原创 Ubuntu安装和配置SVN
下面文档分为四个部分: 1、在Ubuntu 14.0.4系统中安装SVN 2、配置SVN 3、启动和关闭svnservice 4、简要的使用SVN 1、 安装SVN apt-get install subversion2. 建立svn仓库cd /mediamkdir svn 可以使用隐藏目录:mkdir /media/.svn
2016-09-21 21:06:45 453
原创 Webkit 浏览器默认焦点查找算法
当我们用 方向键 在 HTML页面 上移动,此时,可通过多种方式控制焦点行为:1、通过 JS 逻辑,控制焦点的移动,此时下一个焦点位置,完全是由 JS 来控制2、可通过浏览器默认行为,浏览器会计算焦点的位置,响应上下左右按键是通过 各个焦点相对位置 来确定下一个焦点注:1、当页面通过 JS 逻辑控制焦点时,要添加 event.preventDefault() 来阻止浏览器的默认焦点行为
2016-09-21 19:01:10 1214
原创 结构体与位域的使用
C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但一不小心就会弄错。写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?开始学的时候,也被此类问题困扰很久。其实相关的文章很多,感觉说清楚的不多。结构体到底怎样对齐?有人给对齐原则做过总结,具体在哪里看到现在已记不起来,这里
2016-09-01 11:10:44 3375
原创 内核空间(kernel-space) VS 用户空间(user-space)
作为一个Linux开发者,首先应该清楚内核空间和用户空间的区别。现代的计算机体系结构中存储管理通常都包含保护机制。提供保护的目的,是要避免系统中的一个任务访问属于另外的或属于操作系统的存储区域。Linux操作系统对自身进行了划分:1、核心软件独立于普通应用程序,运行在较高的特权级别上,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,Linux将此称为内核空间。其它
2016-08-26 14:32:37 5981
原创 智能指针的设计思想
在代码编写过程中,我们不可避免的带入一些bug,某个指针过期失效后,并没有及时将对应的内存释放,这样就造成了内存泄漏,如何避免类似问题的出现,除了代码编写过程中注意,其次可以通过智能指针帮我们做一些类似的工作int test(){ char *pStr1 = (char *)malloc(100); if(pStr1 == NULL) return 0; char *pS
2016-08-08 14:26:34 590
原创 Ubuntu 14.04 提示编译工具链 找不到
NDK 编译工具链 是32位,放在 64 位 Ubuntu 14.04 下,提示不能找到工具链 gcc、g++ 等,需要安装32位兼容库,即ia32-libs -,命令行 sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 后就可以了
2016-08-05 18:35:54 657
原创 线程的创建与使用
#include #include #include #include #include #include using namespace std;void *thread_1(void *){ int i = 0; for (i=0; i<5; i++) { printf("This is thread 1111 -----\n")
2016-06-13 17:34:17 405
原创 WebKit 的事件处理流程
WebKit 浏览器是一个由事件驱动的设计模式,只有事件不断的发送并被指定的目标接收到,程序才能执行事件的发送自不必说,任何时刻都可以根据需求向目标结点发送事件,并在目标结点注册监听器,当接收到事件时,触发响应操作。针对同一个事件,可能有多个结点都注册了监听器,那到底由哪个结点的监听程序处理,又或者多个结点的监听处理先后顺序是如何:监听处理顺序有三种:冒泡、捕获和目标,常用
2016-05-13 15:20:51 911
原创 不同数据类型以及指针之间的转化
前一天突然研究到一个数据类型以及指针间转化的问题,作为基本功的东西,竟然被它绊倒,惭愧之余,决定彻底搞明白他们之间转化的具体细节废话少说,上代码: //#include //#include #include int main() { int a = 64*1024 + 512 + 3; //a 为 int 型在当前机器中占4个字节, a 的字节存储为
2015-08-18 15:21:45 999
转载 设置 webkit 背景透明的几种办法
void FrameLoaderClient::transitionToCommittedForNewPage()02.{03.WebKitWebView* containingWindow = getViewFromFrame(m_frame);04.IntSize size = IntSize(GTK_WIDGET(containingWindow)->allo
2014-11-18 21:59:47 1862
原创 SecureCRT的显示乱码问题解决
SecureCRT的显示乱码问题解决1、中文显示乱码:查看系统的locale结果export LANG=zh_CN.UTF-8export LC_ALL=zh_CN.UTF-8设置 SecureCRT 客户端的字符集为 utf-82、引号等符号乱码查看系统的locale结果export LANG=en_US
2014-11-17 10:02:18 917
原创 C与C++的相互调用问题
extern "C"的双重含义 extern 是C/C++ 语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住下列语句: 1 extern int a; 2 C与C++的相互调用: 作为一种面向对象的语言,C++ 支持函数重载,而过程式语言C 则不支持。函数被C++ 编译后在符号库中的
2014-11-15 20:13:00 1553
转载 g_idle_add
我们知道glib提供了一个名为g_idle_add的函数,这个函数的功能很容易理解:增加一个空闲任务,让应用程序在空闲时执行指定的函数。这种机制非常有用,如果没有这种机制,很多事情将非常麻烦。它的功能虽然简单,但并不是所有人都知道如何充分发挥它的潜力,这里说说它的几个主要用途吧。 1. 在空闲时执行低优先级任务。有的任务优先级比较低,但费耗时间比较长,像屏幕刷新等操作,我们不希望它阻
2014-10-16 16:03:05 6639
原创 WebKit浏览器编译——开启宏定义
例如:VIDEO代码中已经对VIDEO做了一定的支持,但默认情况下并没有开启,这些支持都在一个ENABLE_VIDEO的宏定义中括起来了,可以grep下源代码看下有很多ENABLE(VIDEO)括起来的代码。代码中需要的宏这个ENABLE的宏定义在Source/JavaScriptCore/wtf/Platform.h中被定义的,#define ENABLE(W
2014-08-18 14:46:12 1240
原创 Samba的配置
Samba的配置对于linux与windows共享,和平共处,我们可以用Samba软件Samba是一套免费的开源软件,可以在linux或其他类unix操作系统上实现windows域控制器,文件服务,打印服务等。Samba实现了windows系统所使用的核心网络协议:SMB(Server Message Block)一、安装Sambasudo apt-get in
2014-08-18 14:11:55 861
转载 configure,host,编译
./configure -build,-host,-target设置build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。host:编译出来的二进制程序所执行的主机,因为绝大多数是如果本机编译,本机执行。所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host不同
2014-01-13 10:24:39 4257
转载 GNU工具链简介
1 . 总括 本文分三部分来介绍mips的工具链,首先工具链的总括,其次是每个工具链的简介,最后是各工具链的实际应用举例。 我们的项目使用的工具链就如图1所示, 声明,本文所述的内容实乃GNU工具链的九牛之一毛, 日后会陆续更新。 图12. 工具链简介 下边就以列表的方
2014-01-10 17:10:13 1040
转载 struct和typedef struct 区别
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是
2014-01-07 16:06:50 701
转载 关于typedef的用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别
2014-01-03 14:58:45 689
转载 在Linux下编译WebkitGtk
本以为编译WebkitGtk是个很简单的工作,没想到竟然颇费了些功夫。1、准备WebKit的官方网站是http://webkitgtk.org/,上面可以下载到当前稳定版本的WebKitGtk1.4.1。但是WebKit官方wiki上有一篇文章“Building WebKitGTK+“,看内容好像WebKitGtk的源代码已经融合近了主线WebKit,但是主线WebKit的代码
2013-12-12 23:15:23 4791
转载 Ubuntu 编译Webkit
2.编译:./WebKit-r96832/Tools/Scripts/build-webkit --gtk正常情况下会缺少各种库,没关系,一个一个解决。下面列举了我所遇到的一些问题:sudo apt-get install libtoolsudo apt-get install gtk-doc-tools错误:undefined macro XXX (不记得
2013-12-12 11:04:02 958
转载 Ubuntu下,ll命令没反应
Ubuntu下,在普通用户下,ll命令显示正常,也有颜色,但是当切换到Root用户下再执行ll命令提示找不到命令.Root用户下ls命令显示的文件名也没有颜色,发现/root/.bashrc文件没有被自动加载,手动执行source /root/.bashrc后显示正常,但是当切换回普通用户再切换到Root用户下,就又不能用了,可以通过下面方法成功:在.bashrc文件里加下面一句
2013-12-11 16:02:09 14100
转载 tar.bz2 && .tar.xz 解压命令
bzip2 -d gcc-4.1.0.tar.bz2 ---上面解压完之后执行下面的命令。tar -xvf gcc-4.1.0.tar 或 tar -xvf *.tar解完之后会出现多一个文件夹 gcc-4.1.0
2013-12-10 15:09:19 963
转载 Webkit学习 ----网页资源的构建加载流程
Webkit的作用在这就不多做介绍了,本篇主要还是个人在源码分析了webkit之后的心得总结! webkit有上千个类,在这么错综复杂的结构里看流程无疑找死,好吧,用GDB调试看吧! 环境:webkit + Qt4.8.4 + gdb 调试之前,当然先要生成调试版本的程序了,关于调试环境的搭建后续文章会阐述。。。。。。。 现在
2013-12-02 19:35:22 952
转载 WebKit加载网页的流程
摘要:WebKit源码分析,WebKit文档,WebCore,loader,ResourceLoader,MainResourceLoader,SubresourceLoader,DocumentLoader,WebKit加载流程,浏览器,Chrome,dlmu2001,FrameLoader,框架在WebKit渲染一个页面之前,它需要从网络上(其实也可以从本地文件或者内存加载)加载页面以
2013-11-14 20:24:07 808
转载 Android如何加入对开宏wml的支持
其实就是改makefile文件:1,开启宏定义:在external/webkit/Android.mk中开启宏:ifeq ($(ENABLE_WML), ) ENABLE_WML := true endif 意思是:如果ENABLE_WML环境值没有被定义过,则定义它为true。 然后在同一个文件下加入:ifeq ($(ENABLE_WML),
2013-11-06 20:31:01 1017
转载 Mac Safari VS Mobile Safari开启的宏
宏Mac OS X 10.7 Safari Mobile Safari iOS6.1模拟器版Mobile Safari开了Mac Safari没开的声明位置
2013-11-06 20:26:31 943
转载 linux 下压缩tar、zip命令
linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件;-d:-d /home/sun
2013-11-05 11:24:42 1163
原创 Webkit 编译检索不到错误
在linux下编译android源码或者webkit等程序源码时,不论在源码下加什么错误,编译器都默认正确,检索不到错误,此时,可能是之前编译的生成文件默认编译器不再检索编译新修改过的文件,只是发现修改,但不会重新生成新文件,此时可通过删除生成目录下文件,来重新编译。比如webkit开宏之后,编译器编译不到,此时,可以删除out/target/product/generic/obj/STATIC_
2013-10-30 16:37:20 949
转载 Android编译系统
Android编译系统一、Android编译步骤: 二、初始化编译环境--source build/envsetup.sh 在build/envsetup.sh中主要完成了三件事。 添加编译目标的代码如下:for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorset
2013-10-28 17:22:58 900
转载 跟我一起写 Makefile
么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个
2013-10-17 15:16:52 833
转载 ArrayList的使用方法
1、什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素实现了ICollection和IList接口灵活的设置数组的大小2、如何使用ArrayList 最简单的例子:ArrayList List = new ArrayList();for( int i=
2013-05-15 13:32:45 550
转载 Android开发之旅:环境搭建及HelloWorld
引言本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下:1、环境搭建1.1、JDK安装1.2、Eclipse安装1.3、And
2013-05-12 15:09:37 667
转载 Java中的==和equals区别
概述: A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。 C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。
2013-05-10 16:51:43 643
转载 交换机与路由器的区别
计算机网络往往由许多种不同类型的网络互相连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。 将网络互相连接起来要使用一些中间设备(
2013-05-09 17:28:53 737
转载 socket通信简介
“一切皆Socket!”,话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些
2013-05-09 17:23:01 919
转载 进程:多任务系统的产物
很久很久以前,是没有进程这个东西的。那时候的操作系统只能把要做的工作排好队,做完这件再做下一件,最多也就加个优先级,哪个关系好就先做哪一个。于是那些想一边听歌一边写程序的程序员们便不干了,开始修理那个操作系统,使之能同时运行多个程序。于是进程就出现了:它就是一个程序在数据集合上的一次执行。因为突然变得僧多粥少了,所以每个进程只好做一些额外的事情:在别人使用之前把自己的东西收拾好,下次轮到自己时
2013-05-09 16:37:33 725
转载 Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法
在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意
2013-05-08 09:26:30 752
转载 什么是Socket?
IP Address + TCP Port or UDP Port= Socket你经常听到人们谈论着“socket”,或许你还不知道它的确切含义。现在让我告诉你:它是使用标准Unix文件描述符(filedescriptor)和其它程序通讯的方式。什么?你也许听到一些Unix高手(hacker)这样说过:“呀,Unix中的一切就是文件!”那个家伙也许正在说到一个事实:Unix程序在执行任何
2013-05-06 17:12:33 705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人