chromium浏览器开发系列第三篇:chromium源码⽬录结构
上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码⽬录结构,我也是通过源码和官⽹结合来跟⼤家说,如果有说的不准确的,欢迎交流。
另外,官⽹的不⼀定准确,他们其实也很懒,所以最主要还是靠⾃⼰。官⽹只能作为⼀个参考。
Chromium结构相对两年前变化很⼤。⽬录结构依然很清晰,主要有三个部分(不包括其他的库):浏览器,渲染器,webkit。浏览器是主要的进程,代表所有的UI和I / O。渲染通常是每个tab页的⼦过程,是由浏览器驱动。Webkit做布局和渲染。
简单介绍解决⽅案⽂件:
解决⽅案⽂件是src/chrome/chrome.sln。
启动代码是在chrome/chrome_initial项⽬。
常见的共享库的代码是在base项⽬。此代码是所有项⽬之间共享,chromium团队试着让它尽可能的⼩。
常见的浏览器特定的代码在chrome/common项⽬,它由浏览器和渲染器之间共享。
Webkit内核代码是在项⽬third_party/WebKit(只读)。之前的src/webkit下为chromium对webkit的⼀个封装,现在已经删除webkit_glue项⽬,把⼀些测试⽂件移植到content/下,⼀些⽂件已经删除。
chrome/browser项⽬提供了⽤户界⾯,存储,⽹络请求等
顶级项⽬:
下载chromium源码后,进⼊src⽬录,你会发现⼀些⽬录,如下:
下⾯着重讲⼀下⼀些⽐较重要的⽬录:
android_webview:提供适合集成到Android平台的src /content的封装接⼝。
注意:
apps:。
base:所有⼦项⽬之间共享的通⽤代码。它包含像字符串操作,通⽤程序等。只有当超过⼀个顶级项⽬之间共享的代码才能放到这⾥。
breakpad:⾕歌的开源崩溃报告的项⽬。直接从⾕歌代码版本库拉取。
build:构建相关的配置,由所有项⽬共享。
cc:chromium合成器实现。
chrome:chromium浏览器主程序模块实现代码,核⼼代码。
chrome/test/data:运⾏某些测试的数据⽂件。
components:浏览器依赖的组件⽬录。
content:⼀个多进程沙箱浏览器渲染页⾯的核⼼代码。
net:为chromium开发的⽹络功能库。
sandbox:沙箱项⽬,阻⽌渲染器修改系统。
Skia的:为Android开发⾕歌的Skia的图形库。这是Android的树副本。
SQL: sqlite的封装。
testing:⽤来单元测试的代码。
third_party:第三⽅库,如图像解码器和压缩库等。
UI/GFX:共享图形类。这些是Chromium的图形⽤户界⾯的基础。
公司介绍源码UI/view:UI开发的简单框架,提供渲染,布局和事件处理⼀个简单的框架。⼤部分的浏览器的⽤户界⾯的在该系统中实现。该⽬录包含了基本对象。
url:⾕歌的开源URL解析和标准化库。
V8:V8 JavaScript库。
webkit(⼩写):现在只有⼀⼩部分留在这⾥了。common/gpu/
依赖关系图:
⼀个低层模块不能直接include更⾼的模块的代码(例如:content不能include chrome中的头⽂件),但可以使⽤嵌⼊的API和它通信。
今天就先写到这⾥,希望⼤家能⼀块学习。
讲了源码下载,编译,⽬录结构,那么接下来会讲⼀下如何在windows下调试chromium。希望⼤家继续
关注。
另外附上官⽹地址:
如果⼤家对本系列⽂章有疑问,可以直接在留⾔,⼩编第⼀时间联系原创作者帮你耐⼼解答。
技术⼈员都有⾃⼰的情怀,深陷其中⽽不被理解,欢迎关注个⼈公众平台:程序员互动联盟(coder_online),⼀个开发⼈员的家,来诉说⾃⼰的故事。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论