-----------基于Chromium 36内核的七星浏览器是怎样炼成的
2014年7月28日,七星工作室发布了采用 Chromium 36稳定版内核的七星浏览器1.36.0。本文来自于七星工作室架构师,详述了基于Chromium 36的七星浏览器制作的心路历程。
七星浏览器从面世之初,也就是2014年2月份的时候,采用Chromium 32稳定版的七星浏览器1.32.1正式版发布了,这是当时国内知名的基于Chromium 32内核的浏览器,从全球来讲,也是唯一一个采用Chromium 32内核作为极速的内核的双核浏览器。五个多月过去,2014年7月28日,基于Chromium 36稳定版的七星浏览器1.36.0,又是率先打破僵局,成为全国首个采用Chromium 36稳定版内核的浏览器。在这五个月当中,七星浏览器发布了数个版本,经历了从Chromium 32稳定版一步一步跟进到Chromium 36稳定版的艰辛过程,每一次都是国内首家跟进最新稳定版Chromium的浏览器。2014年Chrome与七星浏览器更新时间轴:
对于国内的其他浏览器厂商,如此快节奏的跟进几乎是无法想像的,更多浏览器产品采用了跳级的策略,来减小更新内核的难度与工作量。这样做对于厂商自己来说固然可以降低成本和风险,但是缺憾就是无法使自己的用户及时体验到新内核更新的功能和更好的性能。
有人可能会以为,新版本的Chrome没有旧版本的好,所以厂商们才不升级。其实不然,从Chromium社区的反馈上来看,性能、安全性上的进步都是很大的。Chrome 32加强了对未知来源扩展的安装的限制,Chrome 33提高了对插件执行的验证门槛,Chrome35也带来23个安全修补程序,这些改动,都进一步增强了安全性;Chrome 34优化了界面图形引擎,提高了软件交互性能。另外Google作为一家全球领先的科技公司,其开发流程是非常严谨的,一个版本从进入开发分支到发布,中间会经历至少3 - 4个月的迭代期,期间每次Build还会自动执行大量的Unit Tests,可以说,一个正式发布的版本出现大问题的可能性是很小的。
从各大厂商的反应来看,有竞争意识且有技术实力的,已经成功的跟进了Chromium 34或35,并正在向Chromium 36迈进,其他未跟进的厂商要么是对于浏览器竞争压力认识不足,要么是技术上短时间难以突破。
之前有网友问起过,我们是基于Chrome还是基于Chromium的,其实两种说法都没有问题。那么Chrome和Chromium有什么区别和联系呢?七星浏览器又是如何确定自己应该跟进哪一个版本的Chromium呢?
Chromium是谷歌主导的一个开源项目,其主要目的就是为了服务Chrome,Chrome可以看作是Chromium的谷歌官方编译版本,七星浏览器可以看作Chromium项目一个第三方编译版本。Chrome稳定版是从Chromium开发过程中挑选的出来的一个相对较稳定的版本编译而来的,七星浏览器也是取和Chrome稳定版相同版本号的Chromium进行合并和编译的,版本选择上基于Chrome稳定版,源码上基于Chromium。正是因为有了Chromium开源项目这样一个坚固的基石,才有了七星浏览器这样好用的产品,如牛顿所说,如果说七星浏览器比其他的好用些,那是因为它站在巨人的肩膀上。七星浏览器从Chromium项目中获取的V8引擎、PPAPI、Aura和GPU等各种优秀的技术和成果,这些功劳都是Chromium项目的,七星浏览器不会把这些功劳的帽子带在自己头上。在此再次感谢Chromium开源项目和所有为七星浏览器做出贡献的热心用户。
前几天有网友提出这样的疑问,有其他浏览器厂商说他们是首家采用Chromium 35内核的双核浏览器,你们也自称是首家采用Chromium 35内核的双核浏览器,到底哪一个对呢?这个问题,其实只要看发布日期就可以了,七星浏览器基于Chromium 35内核的版本最早是2014年6月11日发布的1.35.0内测版,并于2014年6月26日发布了1.35.1正式版,这已经是上个月的事情了。
还有人问,实时跟进Chromium 项目发展不累吗?七星团队的回答是:当然累,但是Chromium项目作为全球首屈一指的大型开源项目,每天都会产生大量的补丁与内容修复,或许是性能、安全甚至架构上的优化,或许是影响稳定性的问题修复,国内浏览器厂商的产品有义务让国内的用户第一时间享受到Chromium项目带来的安全与便利。所以对此问题,我们的态度始终是以用户体验为第一追求,力争以最短时间同步Chromium社区的动态。快速跟进稳定版,使得用户尽早享受到这些益处。
从软件研发的的角度讲,实时跟进虽然会让团队比较辛苦,但带给我们的益处也是很多的:
1、实时掌握Chromium社区动态,跟进业内最新架构思想,及时优化架构,改进性能;
2、借力于Chromium社区,及时修复系统漏洞,一个漏洞如果晚一个月修复,可能会对用户造成巨大损失;
3、Google对Webkit建立Blink分支之后,就开始快速的对Blink进行优化改进,及时跟进内核,使我们可以看到Chromium开发者对Blink内核的思考,对提升我们团队的技术实力是非常有益处的。
罗马不是一天建成的,七星工作室能够做到对Chromium项目了解的如此深入,也不是一蹴而就的。
七星工作室自从在Chromium基础上建立分支以来,对于如何管理新增代码与内核代码,如何处理私有特性与Chromium基础特性的关系,一直没有停止思考,也一直在努力实践。
这其中孕育出很多具有七星特色的技术架构与思想,我们也很高兴的看到,现在已经有国内厂商初步跟上了七星浏览器项目初期思想及方式的步伐。
七星浏览器项目早期,我们就很自然的制定了增量式开发规范,以便于在修改代码的同时,尽量少的影响Chromium项目本身。最近已经有一些浏览器厂商开始意识到这样做的好处了,但是对我们来讲,这样设计其实是团队经验的自然产物,并没有什么高明以及可炫耀之处。
七星浏览器项目进展到现在,我们已经告别了上述采用代码嵌入形式的原始阶段,在项目架构上发展到了全新的第二阶段,这个阶段的特征可以总结为:超低耦合,独立测试,性能ADM模型。这三个特征的优点简单来说:
超低耦合:代码耦合度、冗余度极低,便于内核更新与升级;
独立测试:各模块独立自动化测试,接口快速验证,降低低级Bug产生机率;
性能ADM:新功能的代码对Chromium内核性能的干扰更小,风险更低;
七星团队并没有固步自封,依旧探索着更好的方式,已经形成了初步的DSCA设计构想,并在实验中进行了验证。
对于上述特征的具体实现方式,可能说起来就显得太专业,并且其中蕴含的信息量足够写一本技术专著了,我们这里就不想赘述太多枯燥的技术话题了。
总之,七星浏览器发展至今,凝聚了众多七星工程师们的辛勤劳动与心血,七星团队至此的成果积累,可能也是其他厂商短时间内难以企及的,但我们始终没有忘记,技术永远为产品服务、为用户服务,只有根植于产品的土壤之中,优秀的技术才能生根发芽,开出绚丽的花朵,结出丰硕的果实。
七星团队就是这样,不断将自己的技术实力转变为诚恳的产品;七星浏览器就是这样,做以用户为本,以体验为纲,不断努力创造着,功能全面而不臃肿,性能出色而不阉割,更贴心,更顺手,更好用的浏览器产品。
本文转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。