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

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

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

从YunOS话阿里移动互联网云生态布局 Mobile First!苹果联合IBM发布10款企业级App iOS8.1.1越狱又惹急苹果!扒一扒黑客与苹果的斗争史! Firefox.html:用HTML重现Firefox UI Qt 5.4正式发布!引入WP,支持HTML5混合开发 2014智能硬件盘点第二弹!这次咱走暖心的 聚合数据资产,推动产业创新——2014中关村大数据日看大数据变现 拥抱开源:微软Windows 10宣布全面支持AllJoyn技术 改变App领域发展!友盟推“数据工场”战略,两款新品亮相 Cloudera正式登陆中国市场:与英特尔携手共助本土企业淘金大数据 Go 1.4正式发布 支持Android开发 【特别提醒】2014中国大数据技术大会门票全面告罄 不接受现场购票 累计4000万美元 Qualcomm在华投资5家公司 支持Android、WatchKit开发,全新RubyMotion 3面世! 快速开发移动医疗App!开源框架mHealhDroid 2014CVW﹒产业互联网大会解密未来20年 Nimble VR的收购与一封来自友商的感言 Google Earth API将在2015年12月彻底关闭 AR、美颜、机器人:计算机视觉库几乎无所不在 不激增,无爆收,年度最佳手游为80 Days带来了什么? 《近匠》机智云CEO黄灼:跨越智能硬件的“鸿沟” 智能手机≠智能家居!我们要的究竟是什么? 亚信大数据事业部总经理张灏:打通各行业数据壁垒 让大数据变现畅通无阻 Web App和Native App不是生死之争,而是可以和平共处! 微信之父张小龙说微信坚持“去中心化”,这样真的好吗? 亚信CFO武军谈进军海外市场成功经验 前瞻性思维是开路先峰 Swift,任重而道远! DevOps系统的变迁 玩转Docker镜像 “扫描建模”速建AR应用 Vuforia 4.0 SDK更新 硅谷里的外星人:纵观Reddit十年风雨路 还是.net连oracle的问题 急救!VB访问Linux服务器上的Oracle8i的问题 如何在没有安装.net的机子上运行C#程序阿?? 在模板实参推演中,数组的长度是如何得知的呢??? asp作提交表单 自动发到指定邮箱里。 急哭了!在线等待!!!!!! 为何我的sql服务管理器停止不了,一直为“正在停止”,而一旦停止了却又启动不起来? 怎样调用IE的一些功能??? 求教,急! 初学asp,问个简单的问题吧:怎么样知道客户端的时间? strus的配置和使用,我用jdevelop, ADO+MSSQL对DataSet中Record定位 欢迎讨论,关于水晶报表实现:折线图,或者柱形图问题 在线求助:如何读取B端操作系统信息和浏览器信息? 系統用戶使用權限的設計 combox 问题 急寻MAYA编程高手 服务器端有一个很大的XML(10M)文件,怎样从client端读取? CMainFrame 的窗口句柄怎么得到 从数据库读出文本如何保持原来格式 ? 在winform中,请教关于combobox的一个小问题 Stream Write error??????????? 存储过程的and和or连用 谁有新浪或网易等的短信网关接口? 请问如何在水晶报表里面定义一个全局变量?谢谢 如何配置SMTP服务 使用触发器时想到的 为什么要实现双接口 求DOM(DOMAIN OBJECT MODEL)的详细资料,顶着有分 winxp 在重启时总是提示:"此媒体的类型产品号无效请用正确的cd重新安装",系统进不去! 那位老大给仍一个visual assist 6.0的key,等待中。。。。 请问哪儿有类似于TDBchart数据显示的图形控件? 服务器端有一个很大的XML(10M)文件,怎样从client端读取? 业务导肮? 安全操作系统,谁能用? delphi7中怎么关闭一个子窗体,然后又能正常创建 急!请问怎样把SimensSDK和CodeWarrior整合起来? 江湖救急! 还是关于两个时间之间的处理的问题,大家看看! 高分求助:关于OPENFORM的问题! <秦>(全本) :am(酒徒) 强烈推荐 安全操作系统,谁能用? 高手助我!!!如何从数据库中的日期格式中分别取得年、月、日??? 关于拦截文件操作的API的钩子程序求教:qq:55020921(再问) 我用asp.net开发的网站。客户机没装。net框架,能不能访问网站。 跨年的问题 在线等 谢谢 嗨!哥们们!中科大美国加里福尼亚州州立大学计算机硕士张左伟“软件测试管理体系与案例分析”免费公开课去吗???? 求代码(屏蔽源代码的),给高分 评职称,大学的时候没过4级,能评吗? 急!请问怎样把SimensSDK和CodeWarrior整合起来? 有几个问题请高手指教,多谢,多谢!!! 为什么www.989888.com 不能注册了? 求证:当n为整数时,n(2n+1)—2n(n—1)的值一定是3的倍数. sat语法题 请问a为什么用的是had been?我虚拟语气不是很好T^T 还有就是b为什么sat语法题 请问a为什么用的是had been? 我虚拟语气不是很好T^T 还有就是b为什么错? 给我5个电路图和实物连接的图一定要有电流表谢谢 一辆汽车从甲地开往乙地,又返回到甲地,一共用了15小时,去时所用时间是返回的1.5倍,去比回来时每小时慢12千米.甲,乙两地相距多少千米?求详解1/6-1/9=1/18麻烦说一下1/6和1/9怎么来的? 第四题和拓展应用怎么写 英语翻译天之道,损有余而补不足,是故虚胜实,不足胜有余.其意博,其理奥,其趣深,天地之象分,阴阳之候列,变化之由表,死生之兆彰,不谋而遗迹自同,勿约而幽明斯契,稽其言有微,验之事不忒,诚 请问:已知a与b互为相反数,x与y互为倒数,│c│=2,求 [a+b]/2+xy-1/3*c的值 墙角有一个四分之一圆锥形的沙堆 底面半径为1.5米 高为两米 已知每立方米沙重108千克求这堆沙的质量 在下图的矩形ABCD中,△AOB的面积为16平方厘米,△DOC的面积占矩形面积的18%,求矩形ABCD的面积.见图片 在下图的矩形ABCD中,△AOB的面积为16平方厘米,△DOC的面积占矩形面积的18%,求矩形ABCD的面积. 奥特曼格斗进化3我用雷欧打圆盘生物败为什么双人光线出不来?在第五项那里出不来,难道要打马哥马那关? 浙江一高校新规:学生3次不叠被将取消大学生被指厕所内施强奸获刑 重审后改中国航母辽宁舰再出海 将开展舰载机海台防务部门:台军计划7年采购2236英国乔治王子穿蕾丝长袍受洗礼 模样超马尼拉议员抵港就人质事件道歉 家属重上海自贸区将设立离岸产权交易中心 首中央再选十地展开巡视 更加强调对“一北京推7折商品房无户籍限制 业内称将山东青州豪华车站成形象工程 1天仅卖老汉旅店约见网友开房 发现对方系自己中德联手,这样培养应用型人才(看深化公安部部署行动 整治娱乐场所 涉黄涉校园赛事值得关注(体坛观澜)如果今年冬季只能买一件 那一定是飞行云南将迈入高铁时代柯洁决战李世石外交部:中国不接受、不参与南海仲裁龚全珍工作室倾情便民百亿大额定增方案频出, “破发”股反中国第一个商品房小区:东湖新村 可否切磋修复技艺
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘