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

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化后,可以做出更炫效果的产品,同样为将来吸引更多的用户做准备。不论是怎样的战略,总是要有一定的用户量才更价值。

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

云适配CEO陈本峰:8年磨一剑 Splashtop企业应用:SplashApp让办公移动起来 时空旅行+内付费“植物大战僵尸2”下月18日全球同步发行! 中移动推网络电话Jego 后来者能否居上? 防止数据泄露:BYOD下的管理员5大妙招 咕咚副总裁司建铭谈移动时代的“软硬整合” 未来的物联网结点:可穿戴设备 应用开发的4个技巧,让程序能真正为用户使用 Google早期的10个API:它们现在在哪? 为啥微软开发产品总是慢半拍? Visual Studio 2013 Preview新功能预览 “中国手机游戏四月流水榜”出炉 超半数基于Cocos2d-x引擎 为移动而设计之信息架构篇 难逃厄运:Zynga将关闭Draw Something母公司OMGPOP 直接拿来用!最火的iOS开源项目(一) 是时候抛弃Eclipse转向IntelliJ了 Arrow:轻量级的Python时间日期库 编程语言API,你最青睐哪一款? 推动新输入方式发展:英特尔为感知计算设1亿美元基金 AWS到底有多大?目前看来有158000台服务器 C语言实现树的动态查找 第五届中国云计算大会于北京隆重举行 改变企业移动化:新Google地图API支持用户定制 诺基亚旗舰手机EOS真机图曝光 配备“巨型”摄像头 走进豆瓣:豆瓣的技术架构与团队文化分享 加速Web开发的10款HTML5工具 微软式微?AMD、英特尔等开始疏远Windows 语音技术现状:四千万突破语音产业的技术壁垒? 万维网联盟W3C推荐Web性能API 微软郑子颖:Windows Azure如何支持开源系统和软件? EMC 叶成辉:软件定义数据中心实现统一、开放的管理 停止函数执行 请问如何在鼠标点击xx button 的时候获得 JtextField 中的文本输入--有重分送 我不能关机了!救救我哟~~给你分! tomcat4.0.1无法启动的问题 SoS!俺用fireworks做了一套菜单,但是应用于框架结构中时,只显示菜单所在框架的部分菜单。也就是说菜单显示不完整,如何能够让菜单跨越 刚装了REDHAT 7.2,不知道网络怎么设置 报表打印,望各位指点..... 是不是我这里设错了? 菜鸟有问题,Win2k的定时关机程序 关于天数累加的问题 webbrowser控件问题? 421连续进纸标准,打印问题,难啊,难 有个小问题难住偶了! 请教 bdf 文件的格式 在JPrint中如何设置页面的打印范围(不使用打印机的默认打印范围),找不到例子,那位能够给个实例。。。 开发jsp需要什么环境和安装软件,目前版本为多少? 在PASCAL语言中的"集合"概念,如何转化成C语言表示 怎么回事。formshow 不能写太多sql语句么〉?,怎么不显示?大家快帮看看,急死了 自动累加的问题?(100)我只能给这么多了 哪里可以下载powerbuilder7.0 网页自动累加的问题(100) help 求肋!! 有关SUN WORKSTATION OPENBOOT的问题 请问一下vb6和.NET 请问,如何用flash 做一个网页“访问量统计”计数器? 请问在win98繁体下开发的pb源程序,在简体win98下怎样转过来?急,请帮忙! 手提电脑,没有软驱,现有一外置USB软驱,但是找不到光盘驱动, 谁有用vb开发组件的详细文档资料或教程 关闭窗口的问题!! 欢迎有志向的VB程序员加入到我的团队!!! 大家做Web Service的时候,是使用SqlDataAdapter这类控件 ,还是自己写SQL语句访问,还是自己写数据访问中间件(e.g:dll),那个在生产环境 webbrowser问题 hello 请问我的servlet程序应该放在哪里?我使用tomcat 欢迎有志向的VB程序员加入到我的团队!!! 有没有当网管的兄弟啊,交流一下 在IE设置为缺省的情况下,怎么用ActiveX? 急!急!100分问题求解(不够可加)输入中文到oracle数据库乱码的问题 请教一个小问题:通常自己定义的ID在那里定义好?也放在Resource.h里面吗? pascal求问 请问有谁知道哪里有水晶报表的中文教材? 这个问题我很头疼,大家能否帮帮忙? pascal 哪位大虾告诉我哪里可以下载bc3.1的编译器 怎么样在mts object代码中使用计时器?类似TTimer.onTime哪样 请问如何在对话框中,设定单选的默认值? 在PASCAL语言中的"集合"概念,如何转化成C语言表示 探讨数据库设计的最实际的原则!高手新手都请进!! ActiveSkin 的问题,知道的人来捡分啊!:) VB可以写COM? 高分求教:怎样用DX Show将获得压缩卡的压缩流? 一棵树能做多少张A4复印纸 一道物理磁场题,为什么图像f会超过mg? 哺乳动物有多少种? 为什么人都要活得那么累呢,为什么世界不可以多点宽容, 如图,匀强电场方向水平向右,场强E,丝线长L,上端系于O点,下端系质量为m带电量为+q的小球,已知Eq=mg如图,匀强电场方向水平向右,场强E,丝线长L,上端系于O点,下端系质量为m带电量为+q的 进化世界哺乳动物怎么弄? 决定圆心大小是(?) A直径 B圆心 C半径 为何匀速圆周Eq=mg,请说明,我做计算题碰到的 为什么自行车在行驶过程中受到的是静摩擦力?车轮子明明在动啊? 圆心符号问题,不知道是直径还是半径一个圈,然后在上面一根斜线从右往左,这是直径还是半径的意思? 如果绵羊的只数比山羊的只数多20%,那么,山羊的只数比绵羊的只数少百分之几?有没有在详细一点的我看不懂 某农场有绵羊490只,山羊只数是绵羊的7分之4.山羊有多少只?(写出数量关系式,再用方程计算) ()叫做圆心,()叫做半径,()叫做直径,()叫做圆的周长.准确点 山羊比绵羊多12只,多的只数正好占绵羊的25分之4,绵羊有多少只求助啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!帮忙知道的,告诉我解答方式好吗?快快快快 某农场有绵羊490只,山羊只数是绵羊的7分之4.山羊有多少只?(写出数量关系式,再用方程计算) 急 汽车通过拱形桥 圆周运动对于一辆汽车通过拱形桥最高点时,恰好无压力是v=根号gr(半径),老师说当汽车通过最高点恰好对桥面没压力时,是能够安全通过的最大速度,当时经过计算当汽车以根 人怎么才能做到相互理解 相互宽容 世界上共有多少种水生哺乳动物 汽车通过拱形桥作圆周运动,则以一定速度通过最高点时?为什么? 李爷爷养山羊和绵羊共50只,山羊比棉羊多24只,山羊的只数占羊总数的?棉羊的只数占羊总数的? 苹果的三分之二与利的五分之四正好相等,梨25千克,苹果多少千克 如图16所示,汽车过拱形桥时的运动可以看做匀速圆周运动,质量为1吨的汽车以20m/s的速度过桥,桥面的圆弧半径为500m,g取9.8m/s2,则汽车过桥面顶点时对桥面的压力是A.800N B 如何做到,相互信任,相互理解,相互包容. 毕业很久了,帮人做题,发现全忘啦.载人舱在将要着陆之前,由于空气阻力作用有一段匀速下落过程.若空气阻力与速度的平方成正比,比例系数为k,载人舱的质量为m,则此过程中载人舱速度应为? 一张普通的A4纸的重量是多少?我前几天寄了三张A4纸, 是寄往本市的. 我只贴了8角的邮票, 我总是担心超重被退回来.邮局现在很黑, 到不到就超重. 包括信封, 邮票, 和里面的三张A4张, 加起来会 父母之间怎样才能做到相互理解,相互宽容? 利用频闪照相法可以测量物体间的动摩擦因数.在暗室中,有一正方体小物块在倾角为θ的固定斜面上做初速度为零的匀加速直线运动.若在释放小物块的同时打开照相机的快门利用闪光灯将它 一张A4纸有多厚?多重? 可以宽容待人人怎样做到? 一张A4纸面积多少 汽车在凸拱形桥上由A匀速运动到B,以下正确的是(A在B上方)A牵引力做功与克服摩擦力做的功相等B合外力对汽车做功为0C该过程汽车机械能守恒 买2千克苹果5千克梨比买6千克苹果5千克梨少支付12.4元,买1千克苹果多少元 动物之最:最长寿的哺乳动物? 汽车在圆弧拱形桥上由桥顶A匀速运动到B,下列首说法正确的是A 牵引力和摩擦力做工之和为0B 牵引力和重力做工之和等于汽车克服摩擦力做的工C合外力对汽车做工为0D重力做工的功率保持不 一张A4纸加一个信封大约多重?寄一封省内平信 不知道贴几元邮票 就一张A4大小的纸和信封 最长寿的哺乳动物是?如题 F=Eq(匀强电场)这式子怎么来的 两张明信片加一个信封有多重?准备给国外的朋友寄明信片,邮局说一张的邮资是4.5,一封20g以内的信件是6块钱,所以想一个信封装两张明信片.但是不晓得会不会超重.明信片是同学定制的,信封 1.最长寿的哺乳动物是什么?2.最聪明的哺乳动物是什么?3.跑得最快的动物是什么?4.飞得最快的动物是?5.世界上最长的昆虫是什么?6..世界上最小的鱼是什么? 物理w=fd,适用于什么电场中? 一张照片加两张信纸加一个航空信封有多重还有一张邮票 请问哺乳动物中最长寿的动物是谁 什么情况下用F-f=ma,什么情况下用F=ma? 信封一般什么纸 如何测量一张a4纸的体积 物理:为什么E=F/q适用于一切电场,E=kQ/r^2仅适用于真空中点电荷的电场?后者是前者舍去q得到的,为什...物理:为什么E=F/q适用于一切电场,E=kQ/r^2仅适用于真空中点电荷的电场?后者是前者舍去q 信封用什么纸 一张A4的纸怎样叠体积最大用来装水的 你怎样理解''人与人之间相互沟通''的重要性?谈谈自己的看法. 世界上有哪几种哺乳动物 谁知道在陆地上生活的哺乳动物最大的,最小的最低的与最高的各是什么?```急用```~陆地上生活的哺乳动物,那个最大```那个最小```那个最低`那个最高?`````````急用亚`````各位帮帮我``````! 造句:( ),我不一定( ),我( ).所以人与人之间需要相互倾听,相互理解与沟通. 山羊的只数比绵阳的7倍多12只,山羊比绵阳多120只,求山羊和绵羊各多少只 陆地哺乳动物介绍是特征 怎样理解沟通 自行车匀速前进时所受摩擦力是静摩擦力,这是为何? 直径是圆里最长的线段.对不对 女孩与花的私语中“只要用心交流,你也能听到花的细语”这句话的理解 世界上一共有多少种哺乳动物 一包A4纸多少钱?有几张?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘