2014 年 7 月前后,浏览器使用 Chromium 35 内核的技术难度很大吗
发布网友
发布时间:2022-05-02 09:10
我来回答
共1个回答
热心网友
时间:2023-10-15 07:23
刚问了我们技术童鞋(技术大神,他们的浏览器也突破到了M34),他也觉得这次UC浏览器电脑版团队的确挺牛,也说了一些难点。我转述下吧,有不对的地方,还望大家评论指正。
1. Aura引擎的实现难度比较大
今年1月份的时候,Chrome 32正式发布,但时间已经过了四个月,国内的浏览器厂商还没有跟进的。按照以前的经验,国内浏览器厂商一般都会在30天内跟进到新的内核,但M32这次,确实没有。
说明了一个什么问题?当时cnbeta有一篇文章《为什么众多外壳浏览器的内核都止步在Chromium 32 到底发生了什么》,它就说到了一个原因:
Chromium 32相对于Chromium 31,最大的架构上的变化应该是全面启用了Aura引擎。Aura 是 Google2011年6月份的时候推出的适用于 Chrome 和 Chrome OS 的新一代窗口管理器,将会是 Chrome 发展的下一个里程碑。它被定位在 Chrome 的新的加速用户界面框架,旨在提供更丰富的视觉效果,大型动画过渡和其他只能由硬件加速产生的效果。现在的 Aura UI要集中考虑实现硬件平台的兼容性。有趣的是 Mozilla采用了类似的做法,他们将在其浏览器未来版本中删除 GTK,这体现出浏览器发展的一种趋势。
Aura引擎会对浏览器厂商的开发有什么影响呢?粗略分析大概有以下几点:
a. 新的桌面窗口结构,需要厂商全部重新调整应用程序顶端架构;
b. 国内厂商大多是双核浏览器,Aura引擎的介入,使得双核在协调上出现障碍;
c. 国内厂商加入太多自制的交互元素,这些交互元素需要针对Aura引擎重新设计开发;
有过软件项目经验的朋友应该能从上述三点看出这个Aura引擎,对第三方浏览器的开发造成了多大的麻烦,上述三点的工作量估计,没有几个月至半年是不够的,并且前提是要有对架构把握很好的技术人员来操作。其实Google在很早就开始对Chromium使用Aura,只是一直处于小范围功能的尝试,这次Chromium 32全面启用Aura引擎,从Google方面来说,并不是什么意料之外的事情。
显然,在此看来,国内的厂商未能突破Chrome 32,面临的技术难题正是这个Aura引擎。所以,也很容易理解,为什么目前除了UC浏览器,国内大部分浏览器均还处于题主说的处于Chromium 32阶段或以下。
2.很多厂商忽视Chromium的软件架构
内核升级最大的一个弯路在于忽视Chromium的软件架构。同事说,他们曾经也犯过这样的错,结果使得各工程师在修改代码和增加文件时很混乱,程序的可维护性很差。这一痛苦经历让团队深刻地认识到维护清晰的软件架构是多么重要。所以,目前他们整个团队在日常工作中都非常重视这一点,日常工作中对这类问题的敏感度很高。
3.容易“重新发明轮子”
在进行软件功能开发时,工程师很容易一拿到需求就根据自己的理解立马上手开干,以至于做了不少“重新发明轮子”的事。其实,所需实现功能依赖的不少基础模块Chromium项目中已有,在浏览器的开发过程中,应该不断地将“自己发明的轮”子给去除,用Chromium项目中现成的取而代之。
这种做事方法表面上看起来慢了,因为要花时间去学习和研究,但长远看来利大于弊,除了通过该方法能不断加深对Chromium项目的熟悉外,这一方法还有助于内核的快速升级。
4. 软件设计的解耦方法需要巧妙
很多技术团队所采用的解耦方法一是很难规范化,二是很难与Chromium的新内核进行合并。
所以,你的解耦方法除了规范化很简单外,还需要在合并过程中对于各冲突点总是存在一个“明亮的灯塔”,让合并工作更加明了。我们技术童鞋所采用的解耦方法很简单,用一句话总结的话是“无论在Chromium之上是增加、调整或去除功能,我们在代码层面总是做加法”。
(转载)