说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

UC李云:基于Chromium的浏览器如何打造更好体验

HTML文档下载 WORD文档下载 PDF文档下载
UC浏览器电脑版正式发布2.0版,内核由Chromium32升级到Chromium35。CSDN移动采访了UC浏览器电脑版技术负责人李云,了解UC浏览器电脑版技术团队对Chromium软件架构的思考。

UC在今年4月份宣布以手机为中心,打造全新多屏战略。并同时发布了UC浏览器电脑版和UC浏览器电视版最新版。UC总裁何小鹏表示年底目标是TV浏览器行业第一,PC浏览器进入第一集团。

近日,UC浏览器电脑版正式发布2.0版,内核由Chromium32升级到Chromium35。CSDN移动采访了UC浏览器电脑版技术负责人李云,了解UC浏览器电脑版技术团队的思考。

CSDN移动你目前在团队中担任什么职务?

李云:从官方的角度,我是一名技术负责人。非官方的角度,我在团队中的工作还包含软件架构师方面的内容。


UC浏览器电脑版技术负责人李云

CSDN移动:现在团队的规模有多大?

李云:开发1.0版本时,我们的开发工程师只有18个人的样子,包括了前端、后端和客户端。我们最近开发人员的规模是30个人的样子,现在仍处于扩张时期。目前在北京和杭州两地都仍在招聘。

CSDN电脑版浏览器产品市场是一片红海,UC为什么还要推电脑版浏览器?

李云:电脑版浏览器产品市场的确是一片红海,但这并不表示市场中的产品都已完美。简单说来,从用户层面UC看到了一条巨大的“缝”,即UC手机浏览器的用户在电脑上不得不使用其他厂商的浏览器,这使得一些功能无法延伸而极大地影响产品的整体使用体验。面对各种不同的终端设备,UC相信各功能在不同屏(电脑、手机、Pad)上的无缝整合和延伸是必然趋势,这就意味着存在创新和进一步完善产品的机会。

CSDNChrome浏览器在速度等方面做得很棒,国内的双核浏览器为什么还有机会?

李云首先一点,Chrome浏览器在兼容性上不如IE,正因如此各厂商采用支持双核的形式来改善这一点。

另一点我认为与Google的战略和产品定位有关。Google的战略主要是放在Android、Chrome OS以及云服务上。对于他来说,浏览器的最大使命在于拉动互联网行业的技术发展,为公司的战略实施做技术准备。从Chrome浏览器产品的定位来看,Google致力于打造一个简约的产品,这就使得一些确实能改善用户体验的功能没有进入Google的视线之内。Chrome虽然提供扩展(extension)这一机制用于对功能进行扩充,但不少功能使用这一方式实现显得过重,体验也不大好,这就涉及对Chromium进行深度定制的问题。在我自己没有加入浏览器团队之前,我是Chrome的忠实用户,当时以为像Chrome这样的产品就足够好了,但后来发现,原来浏览器还可以更易用。不管Chrome做得如何,可以肯定的是,进一步改善用户体验的机会还是存在的。

还有另一点值得一提的是,众所周知,Google的不少服务在国内经常不稳定。这也是国内浏览器可以致力于去改善的一个点。

CSDN听起来WebKit核只是Chromium项目的一个组成部分,UC浏览器电脑版基于Chromium开源项目还有其他的好处吗?

李云:有的。Google团队在Chromium项目上包括WebKit在内做了大量的创新,可以说只要存在影响网页打开速度的瓶颈,就能看到相应的创新点。象DNS Prefetch、SPDY、QUIC、Prerender、多进程架构、PPAPI、v8 JavaScript引擎等技术内容都是很好的创新例子。加上Chromium是一个开源项目,所以很自然地会想到基于它做二次开发而吸收其优点。也正因如此,国内市场上的双核浏览器都是采用这一同样的开发模式。


CSDN为什么要快速跟进Chromium项目的发展?

李云:如果从用户层面解释的话很直接,因为Chromium每一个大版本的出现都会在性能、软件结构和安全上做优化,且会修复一些严重影响稳定性的缺陷。快速跟进意味着能让用户尽早享用到这些益处。

从技术层面解释的话有不少好处,在此列举四点。第一点是与软件的开发效率有关。由于Chromium项目的规模非常庞大,不断提升开发效率是该项目的一个永恒话题。也正因如此,Chromium团队一直致力于改善项目的编译效率问题。比如,在UC浏览器1.0采用Chromium M32(注:M是指Milestone的首字母,后面的数字指的是大版本号)内核的时代,那时我们只能用Visual Studio 2010进行编译,当我们升级到了Chromium M35之后进入UC浏览器2.0时代时,我们采用ninja这一更高效的工具完成编译。还有,现在我们全是采用gyp来实现跨平台的工程源文件管理,按Chromium团队的规划,今年年底会用更为高效的gn取代它,这样生成编译所需的工程文件的效率就更高,如果我们不能快速跟进就没有办法获得这些好处。

第二点关乎解决软件缺陷的效率。我们发现缺陷以后除了自己修复外,还会向Chromium社区报告bug,可以通过与开源社区协作的形式快速解决问题。如果内核版本不跟进的话,Chromium社区不会对老版本中的bug加以理睬,这就不能借助开源社区的力量。当然,这一好处也隐含了我们团队可以通过快速跟进而反哺开源社区。我们团队所修复的一些缺陷会通过告知解决方案或直接upstream的形式提交给Chromium开源社区。这不仅帮助社区解决了问题,更方便了我们下次内核升级,因为如果不将这些代码提交到Chromium的代码库,下次升级时合并代码就可能出现冲突点。

第三点有助于持续优化代码质量。Chromium项目的每个版本变更量都较大,其中很重要的一部分变量就是代码结构与质量在不断地改善。如果我们的设计是基于Chromium的老版本的话,当Chromium在新版本中优化过后,升级到新版本就不得不调整原始设计以适应新的技术方案。这使得团队可以一定程度上避免“技术债”高筑。

第四点好处在于,通过快速跟进有助于帮助网站的建议者在他们的网站中尽早运用上新的技术。某种程度上这也是帮助推进新技术的普及。

CSDN之前有过一些技术弯路吗?你们是怎么克服的?

李云:最大的一个弯路在于忽视Chromium的软件架构。结果使得各工程师在修改代码和增加文件时很混乱,程序的可维护性很差。这一痛苦经历让团队深刻地认识到维护清晰的软件架构是多么重要。目前整个团队在日常工作中都非常重视这一点,日常工作中对这类问题的敏感度很高。

另一个弯路在于我们的做事方法上。在进行软件功能开发时,工程师以前很容易一拿到需求就根据自己的理解立马上手开干,以至于做了不少“重新发明轮子”的事。而后来我们发现,所需实现功能依赖的不少基础模块Chromium项目中已有,于是我们在UC浏览器1.0的开发过程中不断地将“自己发明的轮”子给去除,用Chromium项目中现成的取而代之。我们现在养成的习惯是先看一看Chromium中是否存在可复用的部分,之后再干。这种做事方法表面上看起来慢了,因为要花时间去学习和研究,但长远看来利大于弊,除了通过该方法能不断加深对Chromium项目的熟悉外,这一方法还有助于内核的快速升级。

我想分享的一个弯路是软件设计的解耦方法。我们以前所采用的解耦方法一是很难规范化,二是很难与Chromium的新内核进行合并。现在的解耦方法除了规范化很简单外,使得在合并过程中对于各冲突点总是存在一个“明亮的灯塔”,让合并工作更加明了。实际上,我们所采用的解耦方法很简单,用一句话总结的话是“无论在Chromium之上是增加、调整或去除功能,我们在代码层面总是做加法”。这句话不好理解,但我也只能透露到这个层面。

CSDN要求高多少给人感觉有些空洞,能具体一点吗?

李云:高要求是多方位的,或许不能在此一一列举。对于软件产品的开发来说,只要谈“简单”的两点就可以看出团队的水准。第一,我们团队所编写的代码与Chromium开源项目的风格完全一致。第二,我们团队所实现的每一个软件模块和增加的每一个文件完全符合Chromium的架构与分层模型,彻底杜绝了模块混乱问题。业内能做到这两点的开发团队除了我们无他。我说这话还是很有底气的,因为做浏览器产品的在业内也就那些人,通过多方渠道可以完全掌握同行信息。有些团队的代码质量甚至已经差到将开发工程师逼走的境况。

浏览器是一个复杂度非常高的产品,如果仅仅停留在打磨外表与功能,却没有一个让人放心的“里子”的话,产品质量的高水准是不具可持续性的。这种不可持续性将消耗团队大量的精力,使得团队没能在优化和完善功能这二条路上走得更富质效。

CSDNUC目前主打多屏战略,那UC浏览器电脑版升级至2.0的意义和影响是什么?

李云:既然是战略那就是我们长期努力的方向,不会是一个版本的升级就完全实现了战略目标。表面上看,2.0与1.0在界面上没有大变(但细心的用户还是能看出有些效果差异的),但这个版本是为后面版本做技术储备。

技术储备体现在两大块。一是,我们通过这次大版本的升级更加充分地验证了在技术方面所采用的解耦设计方法具有很强的适应能力,为我们将来持续跟进Chromium的发展做准备。这样做的好处前面已谈及。二是,我们通过Aura化后,可以做出更炫效果的产品,同样为将来吸引更多的用户做准备。不论是怎样的战略,总是要有一定的用户量才更价值。

我认为战略是要一步一个脚印去实现的,持续地打造更高水准的工程师队伍才能让公司战略真正立得住,否则只能是口号。

在VB中引用.dbf及索引文件 在Windows操作系统中改变文件打开方式-VB资料 在程序运行时,怎样把多个文本框的内容保存起来-VB资料 在打印字符串时自动换行 -VB资料 在文本框中快速增加一串字符-VB资料 在文本框中实现由加减号输入数据-VB资料 在引用项目找不到Excel、Word等Office软体Lib的解决法-VB资料 VB怎样从文件列表框中取得文件的完整路径和名称 VB制作一个有参数的执行文件(方法之简单难以想像) 资源档(.RES)的应用-VB资料 自定义Text的pop-up菜单-VB资料 自动出现动画、进度和确认的文件操作 -VB资料 自动选择 Text 的内容-VB资料 VB 调用 IMAGE 控件实现图像缩放的一种方法 VB5 实 现 窗 口 图 像 缩 放、 滚 动 技 巧 VB编程之提速攻略(一) VB开发通讯软件 VB实现图形动画的三种方法 VB随机图像的魅力 VB中不规则图形热点的实现 VB中任意旋转位图的实现 VB中实现图像特技 VB中随机图像的魅力 VB中位图旋转的实现 Visual Basic设计图形浏览器示例 捕捉屏幕图象 -VB资料 放置“透明”的图片-VB资料 分割图像的方法-VB资料 如何将整个画面暗下来,如同关机前一般-VB资料 VB获取桌面图象 简单介绍透明位图的实现方法 -VB资料 我的服务器CPU占有100%,如何解决?!!加急!!!!!! 请问谁在csdn上订购过书啊?需要多少时间才能拿到啊!!!! 小问题:关于AfxBeginThread的参数调用问题 请教高手:关于在ACCESS中的两个数据库之间复制表结构问题 请问谁在csdn上订购过书啊?需要多少时间才能拿到啊!!!! 问题求解 现实一点,各位,我和别人赌了巴西不能赢中国队净3球以上,大家如何看? datagrid连接adodc access转化为mssql时出现的一些问题??? 工作流运行时出现了问题!很奇怪! 一个注册表的问题? 关于STL的弱问题 很少有人问的问题 请教学习路线,散分 一个困扰我很久的难题?(高手帮忙啊) 告诉帮我解决文件关联问题!! 请问如何添加备注字段,用sql server建表,有一备注字段为text类型。。。。。。。。。。。 函數啊﹐怎么么搞的?氣死人了。一百求救。 关于数据库的问题 生命游戏问题!!!!那位大哥指点迷津 VB做的免费软件,大家随便下载!给我提点建议也行! RichEdit问题,急!!! 关于IF语句。我是新手我理解不了请高手帮我,谢谢 请问oricle 有没有像sql server 2000 的企业管理器一样的工具? 关于richedit的问题! 誰能告訴我﹐我給他發又發(88分求找) asp.net就没有什么不足吗? 问题:高级程序员的《数据结构》该怎么复习?请有经验的人给指个明路,多谢! 如何将中文文件存入数据库?是文件,不是表单,谢谢!! 怎样才能得到CDialogBar的控件(如Button)的消息及消息处理 子数据窗口中为什麽filter条件不起作用?急急!!在线等!!!! 菜鸟来了! 怎么把Demo_Adhoc分到两台机上运行 数据库更新 how to 用 insert into 把一个.zip文件保存进数据库?? 请大家推荐一个CD机吧!!!! 急,NOTES与SQL SERVER的问题 asp实例 我的Access库文件原来大小是6.78M,我清空所有记录和减少很多记录时,为什么大小没改变? 关于delphi动态加载控件,在线 代人提问:请问.dcu文件是干什么的?如何才能生成该类型文件。 怎么响应Enabled属性 asp.net做网页,运行后,<asp;....></asp:...>字段仍然存在?? 请教VB高手们一个高难问题! 请问,存储过程在VC如何调用,用ADO,ODBC。 怎么实现这个SQL? 没事瞎问~~~黑客软件能走向海外吗?(比如扫描器,键盘记录器,木马等) windows protect --error ,我装不了系统啊 DbEdit里的数据用adoquery如何更新才好? 有没有办法调试存储过程? 我是个菜鸟,请教大家,VC++和C++ Builer的优点和缺点。 过量二氧化硫通入苯酚钠溶液中离子方程式 Excel表格怎么设置成如图样子?我问下,如图的样子怎么设置的? 您觉得碱性溶液中会出现氢离子浓度大于醋酸根浓度吗就D选项而言自身就不满足电荷守恒 14级地震是什么概念 现有A、B、C、D四种元素,A、B同周期且可形成2种无色无味的气体AB和AB2.D在B的下周期,其最高价氧化物对应的水化物是二元强酸,C、D可形成离子化合物C2D,C离子比D离子少一个电子层.则(1)这四 氧化钠通过什么反应生成过氧化钠?化学反应方程式是什么? 地震的概念板块构造 地震知识 四种短周期元素A、B、C、D原子序数依次增大,已知A、D同主族,B、C同周期,A与B组成的化合物钾是气体,其中A与B的原子个数之比为4:1.A与C组成的化合物乙和丙是液体,乙中A与C原子个数之比为1:1, 有机物峰面积怎么看核磁共振氢谱有三组峰,峰面积之比为1:2:2请问怎么看几组峰,怎么看峰面积谢谢 挺急的 马上高考了没弄懂 氢离子浓度与醋酸根离子浓度的乘积比醋酸浓度,在醋酸稀释时的变化是即时浓度,不是平衡浓度 A、B两元素位于短周期,A原子半径小于B,可形成化合物AB2,下列说法正确的是(D)A.A和B可能属同一周期B.A位于B后的一周期C.A只能是金属元素 D.A可能是第二周期的二主族或四主族元素 怎样看化合物的峰面积之比 用铂电极电解CuCl2与CuSO4的混合溶液(浓度均为2mol/L)50ml,当阴极析出的固体的质量不变时,阳极得到的气体体积为? 为什么要在加压条件下才能向饱和氨盐水中通入二氧化碳气体?加压的作用是什么 沼气作为燃料的化学反应方程式 用铂电极电解一定质量某浓度的CuSO4,一段时间后停止电解.若此时加入19.6gCu(OH)2,所得溶液恰好与原溶液完全相同,则下列说法不正确的是A.原溶液中溶质的质量为32gB.电解过程中转移电子的物质 高效液相进针速度对峰面积的影响最近刚学习液相色谱,遇到了一个很郁闷的问题,在同一台机器上做液相同事测的结果比我的高很多,而且也更稳,开始以为是定量时有差别,我取了一针让她看, 有一种无色无味的气体是什么吸多了这种气体症状为:头晕,眼花,咳嗽,流泪,打喷嚏? 碘化氢与氯气碘化氢气体与氯气 的反应少量 等量 过量 并联电路中支路的滑动变阻器电阻减小,电流如何变化? 科学家发现海底存在大量水合甲烷,请谈谈甲烷燃料开发的前景 液相在用单泵时另一泵也有压力为什么 caco3=cao+co2 的热反应方程式 注明AH可以告诉我你的答案在什么地方找到的吗,就是方程式 科学家发现海底存在大量税和甲烷,谈谈甲烷燃料开发的前景 重介洗煤为什么中煤里有精煤 建筑物被酸雨化腐蚀的化学方程式 有a.b.c.d四种物质,常温下,a是黑色固体,b.c.d都是无色气体,a和b在不同的条件下分有ABCD四种物质,常温下,A是黑色固体,BCD都是无色气体,A和B在不同的条件下分别化合生成D1.写出各物质的化学式.A._ 锌与五水硫酸铜溶液反应的化学方程式 无水硫酸铜与氢氧化钾的水溶液反应的化学方程式还有氢氧化钾在空气中变质后的溶液与稀硫酸溶液反应的化学方程式 把二氧化碳通入饱和氨气的氯化钠溶液中,制备碳酸钠,为何要先放氨气,为什么不可以先放二氧化碳 现有A,B,C,D四种物质,已知A,B为黑色粉末,C,D为无色气体,A,B在高温下作用能生成D,A,C在加热条件下能生成现有A,B,C,D四种物质,已知A,B为黑色粉末,C,D为无色气体,A,B在高温下作用能生成D;A,C在加热 肥精煤是精煤吗 谢谢 分别将二氧化碳和氨气通入饱和食盐水中;为什么生成的碳酸氢根量少 有关沼气前景沼气使用方便吗?前景怎么样? 原煤经洗煤后分为精煤和中煤,之后精煤入仓或者落地;中煤入电厂或者落地。那么其中的落地是什么意思 在并联电路中,支路电阻减小,那么另一支路电流怎么变化? 将某暗紫色固体粉末A加热,可产生无色气体B,同时生成一种黑色固体c和另一种固体物质D.黑色固体c可用于加热氯酸钾制氧气时的催化剂.另一黑色固体E在无色气体B中燃烧,产生使澄清石灰水变 A和B可以相互转化,B在沸水中生成C,C在空气中氧化成D,D有臭鸡蛋味.请问这ABCD分别是什么?爱因斯坦的一道问题! 地震的定义 氢氧根,碳酸跟,醋酸根,硫酸根怎么判断结合质子(氢离子)能力? 向苯酚钠溶液中通入少量二氧化碳的离子方程式 什么是地震灾害?官方定义是什么? γ能谱中的全能峰的峰谷比、峰面积、净面积和总和都有什么物理意义?在测铯137和钴60的γ能谱中,用计算机显示的诸多指标不太明白分别代表什么,有怎样的物理意义 苯酚钠中通入少量的二氧化碳离子方程式? 用氢氧燃料电池电解400毫升硫酸铜溶液,若标况下消耗0.224L氧气,则溶液PH为 什么是峰面积 氯化铜溶液分别滴入氢氧化钠溶液和氢氧化钙溶液中2 氢氧化钙溶液滴入碳酸钠溶液中,两个问题的的现象. 用琼脂糖凝胶电泳分析核酸(DNA和RNA)有哪些影响因素? 氧化钠和氧气反应生成过氧化钠的条件是什么 earthquake是什么意思 候氏制碱法中为什么要先通氨气 A、B、D、F5种物质的焰色反应均为黄色,A、B、C、D与盐酸反应均生成E,此外B还生成一种可燃气体.而C、D还生成一种无色无味气体H,该气体能使澄清石灰水变浑浊.D和A可反应生成C,F和H也可以反应 地震是什么? 制碱是先通氨气还是先通二氧化碳拜托了各位 A,B,C,D四种化合物的焰色反应均为黄色,ABC和盐酸反应均生成D.A和澄清石灰水反应可以生成B.C的固体在加热时得到A.根据以上叙述推断,写出由C转变为A的化学方程式. 地震级别如何定义? excel能做三组数据的面积图吗?而且这三组数据单位还不一样要这种效果 A、B、C、D四种化合物的焰色反应均为黄色,C、D与盐酸反应均生成无色无味气体E,该气体能使澄清石灰水变浑浊,D和A反应可生成C,B与E反应可生成C和另一种无色无味气体F.1.E,2.B与E反应的化学方 醋酸稀释.氢氧根物质的量浓度增大,原因是稀释氢离子使其浓度降低kw为定值.但是为什么可以看成是稀释氢离子不能看成稀释氢氧根离子?这样根据勒夏特列原理.氢氧根浓度降低.很混乱.望详 电子表格里如何进行图形筛选做了一个数学的电子表格,因为里面有大量的图形,可是在筛选的时候(比如筛勾股定理)图形就乱了,怎样才能在筛选的时候保证图形整齐呢. A和B是生活中的常见物质,A和B的焰色反应均为黄色,固体加盐酸都可以产生无色无味气体C,C气体通入澄清石灰水中溶液变混浊,A的固体加热也可以生成B和C(1) B俗名是___ 其水溶液显_性(填酸,碱
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘