研究目的研究chrome有一下目的:
1:学习其程序构架,一个优秀的软件的构架必然很精美。
2:其中有些代码可以借鉴,供以后使用。
3:可以定制自己的浏览器。
源代码chrome 的总体框架它的官方资料上面提及一些,但是不够详细,更多信息得通过它的代码来理解。程序有以下这些模块:
1:chrome主程序:浏览器的UI,渲染,COOKIE,用户配置等功能
2:WEBKIT:苹果的页面的W3C
3:V8:负责JS解析
4: SKIA 适量图形处理工具。在下载完chrome源码我感慨万千,靠! 1G多的代码什么概念,仔细看了源码,发现 WEBKIT 600M,其他开源代码加起来快200M,又靠,chrome的代码也就200M左右。心理的恐惧减轻了,对于200M的代码没什么害怕的!其实研究源码,可怕的不在于代码的数量,而在于要能理解程序的组织,结构,大纲,模块。
编译chrome关于怎样编译网上有N多介绍的文章,这里就不再重复了。附带提一点:源码不要放在中文路径下,还有路径中不能有空格,上次就因为这两个个问题浪费了我三个小时。 研究入口在哪里?对于小小的200M代码,怎么找到突破口呢,先不慌,弄清楚程序结构再下手。关于 WEBKIT,V8,SKIA目前没有时间研究,所以先放到一边去。关于chrome的主程序,目前我认为有一下可以值得研究探讨的地方:
(1)chorme系统
1:chrome的消息系统,这个巨大的消息网络是怎么组织的,网络消息,用户消息,UI消息是怎么来?怎么去的?有谁掌管这些消息?渲染引擎的消息是怎么产生的,怎么发送到UI的,UI怎么处理的?
2:WINDOWS窗口系统设计
3:chrome进程通讯系统是怎么显示的?
4:chrome的线程通讯系统,线程之间是怎么同步的?是怎么样异步的?它的线程系统复用性能怎样?
5:chrome 所采用了那些设计模式?
6: chrome渲染引擎是怎么实现的,渲染进程说渲染的数据是怎么在另外一个窗口进程里面显示出来的?
7:它是怎么支持调试程序的,怎么处理调试信息的?
8:UI,Render,WEBKIT是怎么组织起来的?
9:怎么实现跨平台的?
(2)SKIA矢量系统....<待补充>
(3) WEBKIT系统....<待补充>
(4)V8系统....<待补充>
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!