关闭

退出Android应用

怎么样退出我们的App呢?一般的做法是调用Activity.finish(),同时会触发onStop(), onDestroy()。其实我们的程序并没有真正退出,只是停止运行,进入后台保存到内存中。可以通过长按Home健检查。何时退出,一般由Android系统决定,当需要回收内存时,而且我们的App是最久没有使用的,就会被kill掉,回收内存。 当然也可以通过killProcess的方式退出,这样...
阅读(351) 评论(0)

浏览器架构

如何开发一个浏览器浏览器的最主要的功能概括起来就是,加载显示网页。怎么样使我们的应用具备这样的功能呢? 最简单的就是利用Android WebView(以Android OS为例),还有CEF(Windows/Linux/Mac OS)。 加载显示网页背后其实是一个很复杂的过程: 从服务器获取主文档 解析主文档,执行js脚本 加载子资源 对页面进行渲染排版 显示页面 每一步都是一个很复杂的过程,...
阅读(758) 评论(0)

Web SQL Database

概要Web SQL Database,中文一般翻译为“本地数据库”,是一组网页API,网页可以利用来存储数据在数据库中,并通过各种SQL进行查询。 Web SQL Database曾经在W3C推荐规范上,但The W3C Web Applications Working Group在2010年已经终止了在该规范上的工作,它最终没成为一个推荐标准。规范工作只所以终止,是因为陷入了一个僵局:所有的实现...
阅读(665) 评论(0)

Chromium开发者生命周期

了解Chromium开发流程...
阅读(692) 评论(0)

Thread, Looper, Handler

Runnable代码一个可执行的命令,通常用于在另一个线程执行一段代码。定义了一个方法run(),要在线程执行的代码就放在run()里面,当线程启动时,会调用run(),run()执行完毕之后,线程就结束了。Runnable时一个抽象类,可以从字面理解,凡是要在一个不同线程执行一段代码的类都需要继承Runnable。 像下面这样的用法实际上没有什么意义:new Runnable() { @...
阅读(395) 评论(0)

git基础

git基础git是什么git是一个分布式版本控制系统,我们熟悉的svn是一个集中式的版本控制系统。分布式意味着每一台运行git的电脑既可以是客户端,也是“服务器”,客户端存储的数据与服务器存储的数据没有什么差别(同步后)。git与svn使用方法比较类似,但差别很大。其中一个比较大的差别是:svn等集中式版本控制系统一般是基于某个版本存储变化的数据,而git是存储各个时间点的完整镜像,如果某个文件没有...
阅读(378) 评论(0)

Chromium主文档加载流程

往下走,到了网络层。网络层加载流程如下: 更详细一点的图: 每个资源对应一个ResourceLoader...
阅读(990) 评论(1)

Chromium线程模型、消息循环

多线程的麻烦 多线程编程是一件麻烦的事,相信很多人深有体会。执行顺序的不确定性,资源的并发访问一直困扰着众多程序员。解决多线程编程问题的方法分为两类:一是对并发访问的资源直接加锁;二是避免并发访问资源;Chromium采用第二种思想来设计多线程模型,通过在线程之间传递消息来实现跨进程通讯。 设计原则 Chromium希望尽量保持UI处于响应状态。为此遵循如下设计原则: 1...
阅读(1171) 评论(0)

Chromium学习指引

面对复杂如操作系统的一个工程,我们应该如何学习,学习什么,从哪里入手?下面是一篇学习指引: 关于Chromium code base,有许多需要学习的,宏观层次比如:进程及其相互之间的关系,IPC如何工作,URL加载流程;微观层次比如:智能指针,消息循环,线程用法,线程模型,string等的使用指引。 学习Chromium的“行为处事”: 编码风格:http://www.chromium.o...
阅读(1027) 评论(0)

HTML 历史项接口

浏览器窗口有一个history对象,用来保存浏览历史。提供了如下接口用来操作历史项: back() :后退,相当于点击后退按钮 forward(): 前进,相当于点击前进按钮 go(n): 移动到指定页面 -- n是一个相对位置 go(-1) :相当于后退 go(0):相当于刷新当前页面 HTML5 为history对象添加了两个新方法,history.pushState()和hi...
阅读(590) 评论(0)

MemoryCache学习

这里(http://blog.csdn.net/wy5761/article/details/41869599)有对MemoryCache的整体介绍。本文说一说MemoryCache核心的部分。      MemoryCache是webkit加载网页的庞大机制 -- Loader的一部分。Webkit采用了缓存机制,发起一个请求时,请求顺序经过一系列的Cache,在每层都会查找请求对应的资源是否...
阅读(1021) 评论(0)

MemoryCache

MemoryCache模块是负责网页加载的一个庞大机制,loader的一部分。这里(https://www.webkit.org/blog/427/webkit-page-cache-i-the-basics/)可以了解更多。本文只谈Memory Cache,以及它内部的一些组件,不涉及到与loader的交互。 你可以在MemoryCache.h中找到关于MemoryCache是什么...
阅读(1074) 评论(0)

webkit加载

关于webkit加载的文章网上很多,各种类型、各种角度的都有,有的说的很细。我的体会是,光看那些文章收获不大,可能看看就忘了。想要理解或记住些东西还是得亲自跟踪调试一下才行。 可以先通过浏览一些文档来建立一个基本的概念,比一来就跟代码要好。 大概的流程是这样的,请求一个资源一般包括如下步骤: 1 创建一请求,涉及到的类主要有:ResourceRequest, ResourceRequ...
阅读(647) 评论(0)

pcap2har

概述 pcap2har: 把.pcap网络抓包文件转换为HTTP Archive file(HAR),是一个开源项目,使用python开发,依赖dpkt库(http://code.google.com/p/dpkt/),githup地址:https://github.com/andrewf/pcap2har。 可以通过简单的运行如下命令来使用该程序: main.py  my.pcap my....
阅读(1470) 评论(0)

webkit智能指针 - RefPtr, PassRefPtr

历史 2005年之前,Webkit中很多对象都采用引用计数的方式。它们通过继承RefCounted】类模板来实现这种模式。RefCounted主要是实现了ref()和deref()两个函数。在需要引用对象时要调用ref()增加引用计数,在不再需要对象时,要调用deref()函数减少引用计数。ref()和deref()需要成对出现。这和使用new/delete一样,多调用、少调用、没调用的问题...
阅读(1108) 评论(0)
88条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:118712次
    • 积分:2066
    • 等级:
    • 排名:第18077名
    • 原创:51篇
    • 转载:2篇
    • 译文:35篇
    • 评论:28条
    最新评论