[本文属原创,如有转载,请注明出处http://blog.csdn.net/yl02520/article/]
为什么要开发Content 模块?
正如我们所知,Chromium是一个非常复杂的开源项目,其复杂程度类似于一个操作系统。
Google的Chrome浏览器就是基于Chromium开源项目开发而来。现在假设有个公司或组织计划基于Chromium开发一款自己的浏览器或类似浏览器的应用程序,该怎么进行呢?考虑直接基于Chrome模块来开发会带来什么问题呢?由于Chrome浏览器除了一般浏览器渲染网页的基本功能外,还添加了许多重量级的功能,比如Extension, Packaged APP(类似于采用JavaScript语言写Native程序), NativeClient(让用C/C++编写的原生程序能直接在Chrome浏览器中运行)等。这些模块是Google的研究方向,一般的浏览器是不需要的。
如果不顾一切的把这些不必须的模块编译进来,会增加代码维护的负担,并且编译后的二进制可执行文件的大小也会倍增。如果是一般的桌面程序可能问题不大,但是对于Android平台这样的嵌入式应用是不可接受的。
所以把一些浏览器通用的模块提取出来,单独存放在一个目录下(即为Content模块),提供一些简单易用的接口给开发者,该接口即为Content API。开发者只需实现这些接口就能完成一个类似浏览器的程序开发,得到的浏览器也继承了Chromium的基本特性,例如安全的多进程架构,GPU硬件加速网页渲染,视频音频GPU加速解码,HTML5 API的良好支持等等。
这样做使代码分层更加清晰,代码放在正确的位置,不会导致错误的依赖。如果开发者需要Chrome模块提供的某个特性,可以考虑把该特性单独