本人能力有效,面对chromium庞大的代码就头大.还是先由前辈的chromiumFrame入手. 1. chromeFrame概貌 chromiumFrame是前辈的心血之作,以最小化的方式抽出chromium界面部分的代码,并以demo的方式展现给我.让我可以不用直接面对chromium这样的庞然大物. 先看看chromiumFrame目录结构, animation,静态库,动画类. base,基础静态库,一些logging,只能指针等基础的东东. gfx,画图的基础库,对windows上的…
Message framework 是对消息循环的封装和扩展,Chromium在消息循环中增加处理内部任务的工作.将内部工作处理寄生在Windows的消息循环中,会有一个问题,就是没有Windows自身消息,而有Chromium内部工作,此时内部动作就无法及时处理.Chromium这里定义了一个自定义消息kMsgHaveWork,用来在Chromium内部有工作的时候,驱动Windows的消息一直会运行. 从代码级别来说,Chromium内部工作队列被塞入工作时Post一条kMsgHaveWor…
ChromiumFrame的入口函数在main.cpp中,打开main.cpp.中包含3个类和_tWinMain函数._tWinMain就是我们要找的入口函数.我做了部分注释: int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // 1. 支持OLE,退出管理机制,GDIPlus 初始化,本地资源管理(new) HRESULT hRes =…
在_tWinMain中有这样两条语句: MainWindowDelegate delegate; view::Window::CreateNativeWindow(NULL, gfx::Rect(), &delegate); 从这开始窗口相关的探索,目的就是要找到WNDCLASS注册与CreateWindow的地方.Window类顾名思义就是的窗口.chromium对原始窗口做的封装.window相关的类主要有Window / WindowDelegate / WindowWin / Widge…
本打算在CSDN写完这系列文字,却因为在CSDN中误删了一篇blog,该篇blog被移到了回收站.然而CSDN居然没有从回收站撤销删除的操作方法.联想到之前CSDN泄密的问题,其可靠性值得怀疑.随转向CNBlog来写这些文字. 偷得浮生半日闲.忙中偷闲看看chromium代码.看过一段,不禁感慨,不亏是一流的公司,写出的架构也是不一般.不看代码,就凭chrome在windows上运行的效率也能感受到chromium代码上的高效. 本人能有幸看到chromium的源代码,还要感谢google为开源…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6633311 在上一篇文章中,我 们分析了Android系统进程间通信机制Binder中的Server在启动过程使用Service Manager的addService接口把自己添加到Service Manager守护过程中接受管理.在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过Service Manager的…
在上一个系列中我们分析了UiAutomator的核心源代码,对UiAutomator是怎么执行的原理有了根本的了解.今天我们会開始另外一个在安卓平台上基于UiAutomator的新起之秀--Appium的源代码分析之旅. 本文在真个系列中会扮演一个简单介绍的角色,不会分析不论什么的代码.仅仅会先给大家一个主要的印象,方便大家在持有这个印象的基础上往下和本人一块分析. 1. Bootstrap定义及在Appium中扮演的角色 我们先看一下本人大概一个月之前刚接触appium时整理的一个高层架构图…
Android HttpURLConnection源代码分析 之前写过HttpURLConnection与HttpClient的差别及选择.后来又分析了Volley的源代码. 近期又遇到了问题,想在Volley中针对HttpURLConnection加入连接池的功能.開始有点懵了,不知道HttpURLConnection要怎么加连接池. 尽管感觉这是不是必需的,可是心底确拿不出根据. 所以研究下HttpURLConnection的源代码进行分析. 在使用的时候都是通过URL.openConnec…
android-plugmgr是一个Android插件加载框架,它最大的特点就是对插件不需要进行任何约束.关于这个类库的介绍见作者博客,市面上也有一些插件加载框架,但是感觉没有这个好.在这篇文章中,我们将不仅止于原理,对源代码的具体实现进行分析.文章中涉及的代码可从https://github.com/kissazi2/AndroidDemo/tree/master/PlugLoadDemo下载,基于Android Studio 1.2编译. 在正式开始分析源代码之前,我们首先需要有一些动态加载…
徐明明博客:Twitter Storm源代码分析之ZooKeeper中的目录结构 我们知道Twitter Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任务,supervisor,task通过从zookeeper中读状态来领取任务,同时supervisor, task也会定义发送心跳信息到zookeeper, 使得nimbus可以监控整个storm集群的状态, 从而可以重启一些挂掉的task.ZooKeeper 使得整个sto…