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

一篇文章读懂开源web引擎Crosswalk

HTML文档下载 WORD文档下载 PDF文档下载
Crosswalk发布至今只有不到一年的时间,截止至2014年8月份仅在Google Play上已发现的基于Crosswalk的web应用数量已有380多款,其中百万级下载量的应用有2款。本文将介绍Crosswalk的优势,与WebView的区别等特性。

Web技术的优势早已被广大应用开发者熟知,比如可与云服务轻松集成,基于响应式UI设计的精美布局,高度的开放性,跨平台能力, 高效的分发与部署等等。伴随着移动互联网的快速发展与HTML5技术的逐步成熟,Web应用已经成为移动端跨平台应用开发的热门解决方案。然而要在移动端充分利用Web技术的优势,仍然有许多障碍。


Crosswalk作为一款开源的web引擎,正是为了跨越这些障碍而生。目前Crosswalk正式支持的移动操作系统包括Android和Tizen,在Android 4.0及以上的系统中使用Crosswalk的Web应用程序在HTML5方面可以有一致的体验,同时和系统的整合交互方面(比如启动画面、权限管理、应用切换、社交分享等等)可以做到类似原生应用。现在Crosswalk已经成为众多知名HTML5平台和应用的推荐引擎,包括Google Mobile Chrome App、Intel XDK、Famo.us和Construct2等等,未来的Cordova 4.0也计划集成Crosswalk。同时在今年的中国iWeb大会上,Cocos2d-html5游戏引擎也宣布与Crosswalk展开合作。

Crosswalk有何优势?

Crosswalk采用Chromium内核并不断地快速演进(六周一次更新),使基于Crosswalk的Web应用充分享有Chromium的功能与性能优势,以及较好的平台一致性。同时,Crosswalk支持最新的HTML5 API,包括WebGL,WebAudio,WebRTC,Gamepad,WebSocket等等。一个展示基于Crosswalk的web应用的很好的例子是这款名为HexGL的3D游戏,我们在原有游戏(http://hexgl.bkcore.com)基础上做了一些改进(https://github.com/hmin/HexGL),如图1所示。它是一款用纯web技术开发的游戏,使用了WebGL,WebAudio,Gamepad,Presentation等HTML5 API,支持4.0之后的所有Andorid平台,并且在低端的Android设备上也能流畅运行,诸如红米手机。


图1:HexGL游戏演示

如果Crosswalk提供的API不能满足需求,还支持通过编写原生的Java代码来创建新的Web API。通过这种扩展机制用户可以轻松地获得他们所需的平台和设备能力。如果开发者不想自己动手而是利用已有的一些扩展API的实现,Crosswalk也支持与Cordova的整合,后者已有大量的成熟的API实现供开发者使用。稍后我们更会详细的解释。

Crosswalk允许Web开发者将他们的应用打包成系统的应用安装包(如:Android上的APK),获得与本地应用一致的体验。Crosswalk也支持多个应用同时使用一个Crosswalk库的共享模式,仅当应用第一次启动并且发现系统还没有相应的Crosswalk库时才提示用户下载安装。目前是大多数情况下开发者将Crosswalk直接嵌入到应用本身。在这种嵌入模式下Web应用开发者可以完全控制Crosswalk的更新。

同时,Crosswalk在不断试验各种Web前沿的功能,并积极地反馈与影响标准(W3C)的制定。更重要的是,Crosswalk确保这些被标准化的功能解决了现实的问题并帮助开发者创造更具吸引力的应用与用户体验。HexGL游戏中使用的Presentation API就是这些实验性功能的一个典范。它由英特尔向标准化组织提出,并在Crosswalk中最早实现。使用Presentation API的Web应用可以将网页内容以无线连接的方式显示在其它的屏幕上。例如,在HexGL游戏中用户可以使用一块大屏幕显示游戏的场景,并用一块小触摸屏来控制游戏。

与WebView的不同

WebView组件,如iOS的UIWebview、Android的Webview等,作为系统自带Web引擎,在HTML5能力上相比Safari for iOS、Chrome for Android都要差一截。另外在Android平台上,由于系统碎片化比较严重,不同Android版本的Webview的HTML5能力也有较大差异,导致相应的HTML5应用一致性难以保证。而Crosswalk,如前文所述,作为第三方的独立引擎有较好的HTML5功能和性能支持,较好的平台一致性,以及近似原生应用的系统整合体验。当然这样导致的缺点则是开发者需要将Crosswalk与应用程序一起打包,生成的应用大小会更大。因此Crosswalk提供了共享模式来减少应用的大小。同时Crosswalk一直在模块化与定制化方面不断努力,尽量缩减应用的大小。

有人可能会问,Android WebView自Android 4.4起已经采用了Chromium内核,这与 Crosswalk有和不同?基于Chromium内核的WebView(Chrome WebView)和Crosswalk比起来目前存在两大缺陷:一是不被4.4之前的Android支持;二是性能以及功能与Crosswalk还有较大差别。主要的原因是Chrome WebView要向前兼容基于Android 4.4之前的WebView的应用。这意味着Chrome WebView要支持许多旧的功能,所以架构设计更为复杂, 从而导致部分功能还没有完善,同时在某些情况下会降低性能。目前Chrome WebView的Canvas的性能所受影响最大,WebGL的性能与Crosswalk比也有所差距。由于Crosswalk不需要保持这种兼容性,它可以采用与Chrome浏览器非常相近的设计,  事实上Crosswalk正是构建于Chromium的content模块之上,这使得它速度飞快并易于扩展与维护。同时还有相应的增强 ,比如Web应用不需要采用多进程架构,这样运行时内存可以更加节省,等等。

Crosswalk与Cordova

Cordova(PhoneGap),作为第三方的HTML5应用开发框架工具的代表,极大促进了HTML5应用的发展。它提供了方便的跨平台应用打包/发布服务、实用的API、灵活的扩展机制、以及积累下来的丰富的第三方API实现。然而Cordova使用的web引擎是系统的WebView。如果开发者正在使用Cordova并且渴望更好的性能和更新的功能,如WebGL,那么Crosswalk是一个很好的选择。Crosswalk支持开发者在Cordova中用Crosswalk替换原生的Android WebView,并将两者完美的融合。当然,它仍然支持Crodova的扩展机制,不过如果web应用对扩展的性能要求较高, 采用Crosswalk自带的扩展机制是更好的选择。

目前Crosswalk采用提供定制过的Cordova开发包来支持Cordova中Crosswalk引擎的使用。不过Crodova项目本身也在改进架构以便引入诸如Crosswalk一样的第三方的web引擎,到那时开发者就可以更加灵活自如地在Cordova使用Crosswalk了。

打包基于Crosswalk的web应用

目前Crosswalk支持ARM与X86两种架构,用户在打包时可以自由地选择支持其中一种或全部架构。同时Crosswalk支持多种方式打包基于Crosswalk的应用。一种方式是Crosswalk的自带打包工具链,在这种方式下用户只需为web应用额外写个配置文件并运行一条打包命令即可完成打包。另外一种方式是使用Intel XDK,Crosswalk已经是XDK支持的web引擎之一,在用XDK打包的时候只需选择用Crosswalk打包即可。还有一种方式是我们前文所说的Cordova,开发者无论使用Cordova的CLI(Command Line Interface),还是ADT(AndroidDevelopment Tool),都可以打包基于Crosswalk的web应用。

Crosswalk也提供一种嵌入模式。在这种模式下Crosswalk支持一组类似于WebView的API,称之为XWalkView。通过嵌入XWalkView开发者可以在原生的Android应用中访问网页或运行web应用,如同使用WebView一样。当你的应用中有大量的java代码,但又想用web技术来写UI,这时我们推荐你使用Crosswalk的嵌入模式。在这种嵌入模式下,用户开发的是一种混合型的应用,打包方式上与系统原生的应用没有差别。

如果读者想了解更多使用Crosswalk的细节,请查阅Crosswalk官方文档(https://crosswalk-project.org/#wiki/home)。此外,我们之后也会陆续推出中文文章详细讲解如何使用Crosswalk。

总结

Crosswalk发布至今只有不到一年的时间,但是Crosswalk作为一款基于Chromium内核的web引擎,以其在移动平台上的功能、性能、系统整合体验、API扩展以及支持Cordova等优势。截止至2014年8月份仅在Google Play上已发现的基于Crosswalk的web应用数量已有380多款,其中百万级下载量的应用有2款。因为统计范围有限,我们相信Crosswalk实际使用量不仅于此,更重要的是Crosswalk的使用量仍在持续增长。在Crosswalk的邮件列表以及各类技术网站论坛中,如StackOverFlow,Construct2等等,几乎每天都开发者提出各种问题或给予我们反馈。这些让我们更加相信我们我们走在正确的道路上,今后Crosswalk仍将不断地创新与演进,推动移动端的web应用的发展!

作者:王兴楠,WebKit项目Committer, Chromium项目Committer,2011加入英特尔亚太研发有限公司,任开源技术中心的软件工程师,参与过多个浏览器与Web引擎项目。目前主要致力于移动端开源Web引擎Crosswalk在Android平台上的研发。

技术资料免责声明

1) Crosswalk is a project from the Intel OpenSource Technology Center.

2) Copyright © 2014 Intel Corporation. Allrights reserved. Intel, the Intel logo are trademarks of Intel Corporation inthe U.S. and/or other countries.

3) Any products, systems, dates, plans andfigures provided are preliminary based on current expectations, and are subjectto change without notice.

4) *Other names and brands may be claimed asthe property of others.

5)  By usingthis document, in addition to any agreements you have with Intel, you acceptthe terms set forth below.

You may not use or facilitate the use of thisdocument in connection with any infringement or other legal analysis concerningIntel products described herein. You agree to grant Intel a non-exclusive,royalty-free license to any patent claim thereafter drafted which includes subjectmatter disclosed herein.

INFORMATION IN THIS DOCUMENT IS PROVIDED INCONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OROTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THISDOCUMENT. 

Intel may make changes to specifications andproduct descriptions at any time, without notice. Designers must not rely onthe absence or characteristics of any features or instructions marked"reserved" or "undefined.” Do not finalize a design with thisinformation.

The products described in this document may contain design defects or errorsknown as errata which may cause the product to deviate from publishedspecifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latestspecifications and before placing your product order.

Copies of documents which have an order number and are referenced in thisdocument, or other Intel literature, may be obtained by calling 1-800-548-4725,or go to:
http://www.intel.com/design/literature.htm.

亚特兰大峰会精彩看点:软件吞噬世界,OpenStack是变革核心 数据中心基础设施是大数据战略成败的关键 实时大数据分析:网络分析的一种新方法 最新消息:iPhone 6将采用更大、更清晰的1704x960分辨率屏幕 吴毅挺:OpenStack是开源IaaS平台大势所趋的集大成者 做好扁平化设计-交互篇 狙击Google Glass?三星将推基于Tizen系统的Gear Glass GamePlay:跨平台开源3D游戏引擎,黑莓的努力你不懂 “少即是多” 高通QRD大会精华汇总 天云盾:构筑在云端的Web安全防护 解析大数据时代的数据库集群技术 莫里航海图,最早的大数据实践 弥补空缺!HappyFox面向iOS开发者发布开源移动HelpDesk SDK Chitika北美网络流量报告:WP KO黑莓、iOS超Android 《近匠》秦时明月:知名IP光环下的生存之道 微软研究院正式发布编程学习游戏Code Hunt 走近讲师:Memblaze刘爱贵讲述云计算中的闪存应用 【云先锋】ClouDil云方案:PB级大数据解决方案 一周消息树:这是要“发”啊?Google Brain之父正式加盟百度 最受欢迎的游戏引擎集结号:小白篇 多盟总设计师邢开捷:四两设计拨千金 Cocos2d-x游戏《Monster Strike》终结《智龙迷城》霸榜神话 高通物联网技术解决方案:从汽车到智慧城市 Arduino携手Atmel 发布Arduino Zero开发板 以色列玫瑰:细数十位科技创新领域的女性佼佼者 8款最佳的开源在线学习CMS系统 在发布站点前,Web开发者需要关注哪些技术细节? TOCC、中航信、高德、北斗平台重磅专家登场 邀您共享ITS技术盛宴 腾讯大数据之TDW计算引擎解析——Shuffle AMD APU14 BEIJING技术创新大会精彩看点 这是云整合时代开始的节奏吗?Rackspace考虑退出 关于共享目录的简单问题 怎么判断一个字符是浮点型的 怎么去掉超链接的下划线 如何在BSD上安装jdk,resin,oracle8i 如何利用ADO建立一个与带有密码的ACCESS数据库联接? 在C#中,有一个MDI的父窗体,如何在其上创建几个悬浮的窗口? 请问如何得到鼠标所在的窗口句柄 問題很簡單,請幫我看一下:這個頁面為什麼一按刪除按鈕就會出錯呢? asp中具体怎么用其自带的TreeView控件?(多给分!!!) u 盘的使用问题 急 急 急!!!!! 谢谢大家 两块硬盘,装两个linux系统,如何设置启动? 图象横向和纵向的显示问题 问个基本问题? 问一个SQL查询语句 难题!怎么通过Proxy的NTLM验证? 分不是问题,望高手详解 允许DBGrid对记录进行编辑,在线等待,急急急~ ISO 1054 标准 请问如何使用PFC中数据窗口的resize服务? 页面设置问题!请教!! 哪里有 趣味程序导学 java2這本書的源代碼下載﹖ 关于win2000AD的一个问题?(急) 为什么找不到a.out文件 oracle 的SGA问题,性能优化 写功能模块报告含流程图的问题 请教关于DOM NodeFilter的相关用法! 关于BREW 买书落,便宜啊......(UP有分) 请问,通过java怎么访问其他机器的web services?提供思路就给分! 现在我面临着给50多台机装win2000的任务,怎么办 oracle 的SGA问题,性能优化 刚刚完成的改版公司主页。大家去支持一下小弟呀! ? 有谁知道上海的做J2EE薪水有多少(平均水平),谢谢大家! 几个算法问题,参与者都有分! .NET制作的安装程序安装好后如果删除了打包的一个文件,再次通过快截方式启动时会重新安装,怎么不让他安装? 哪位能给提供一套ISO文档的实例? 如果procedure中执行的是一条SQL语句,如何得到返回的数据集? 可不可以在单线乘里开2个SOCKET? 帮我看看这个c语言的程序! 怎样处理窗口标题? 高分求助 !!!怎样利用INTERNET实现异地多台机器互连? 很简单,如何得到当前的时间和日期?(在线等待) 请问哪里有用applet做的,能绘制数学曲线的动态演示系统?各位,请不吝赐教 今天大清早被人诅咒! Delete 多个表时一条语句怎样写?? 请教:如何获取文本框中SQL语句。50分 日期型的格式应该怎样写?? windows xp internet 浏览器的问题 大家帮我看看这段代码:它是如何得到name和phone的值,并写到文件中取得 100分求李维的delphi5.x分布式系统开发的源代码,电子书我已经有 奇怪。为何win2000的搜索选项中的日期控件是Delphi中的样式?欢迎来讨论,给分!!! 新宝来的方向盘是机器液压,可以改成电子液压吗? 我去年买了表 每个人都有烦恼吗,为是么世界上有烦恼 BYDF0机械方向可以改成液压方向吗?费用下来是多少? 我去年买了个表什么意思 什么地方有火山,多长时间爆发一次? 世嘉方向盘是电子液压还是机械液压 我去年买了个表!什么意思? 什么是实证法 建筑物与避雷针之间有无安全距离的要求?建筑物能否挨着避雷针建造? 有句话是说斧头砍树 把斧头磨锋利点比一开始就去砍树的那把斧头砍的快 那句话怎么 通入过量SO2气体后为什么Na+、Ca2+、K+、Cl- 仍能大量共存不是会生成CaSO3沉淀吗?如果不能反应,原理是什么~ 复式条形统计图是统计图的一种吗 锋利的斧头砍倒了一棵棵树.改为拟人句 SO2气体通入含有大量NH4+,I-,Cl-,Ca2+的溶液答案上说不反应,NH4+,Ca2+不是反应了吗 浅谈如何设计教学情境提高数学课堂实效 人们用锋利的斧头( )地砍倒一棵棵高大的树木 怎样提高英语分数(初三的)? 宇通客车上柴发动机换方向机助力泵时方向要打一边吗 “伐木人用斧子把他砍倒,拉到山谷里去了”换个表达方式,意思不变 三个句子 我初三了英语什么都看不懂不会,我还有希望吗?我怎么才能提高英语成绩, 《诗经》是怎样描写伐木声的 武林外传 锋利的斧头武林外传里的“锋利的斧头”怎么得 日本的火山是怎么形成的 尽头的意思是什么 显示器翻译成英文是什么 成因与非洲板块运动直接相关的地形单元? 孤单,寂寞的尽头是什么呵呵 英语翻译KUVAVARITARKENNUSASETUKSETKIRKKAUEKONTRASTIGAMMAESIASPUNAINPUNAINENVIHREASININENVAAKASUORAPYSTYSUORAKIELTSUOMIosd asentovaakasuorapystysuora 避雷针有什么构成? 砍树的声音是什么声 英语翻译请翻译“Warning!CPU has been changed or cpu ratio changed fail.Please re-enter cpu settings in the CMOS setup and remember to save before quit! 避雷针的构造包括全部技术 提供 砍树的声音用文字表达还有用锯子锯树的声音用文字表达 有一幅图片表现的是一个男人砍掉了所有的树后,一只小鸟对他说:"请把我也带走吧.根据这些写作文400字. 避雷针的组成部分快,急 膈的运动与呼吸运动的关系请问、这个图是呼气还是吸气 为什么说中国革命是新民民主义革命 避雷针由哪几部分组成的? 避雷针的功能是什么 规范研究法和实证研究法的异同? 压力真的能给人带来动力么?这个社会,压力太大,做什么事都是的,真的能激发我的动力吗? 避雷针起什么重要的作用? 谈谈对新民民主义革命基本理论的理解 人是不是要有压力才有动力吗? 家是什么?请说说你对家的理解 恒定刺激法有哪些特点和操作方法? 这是个什么电路,上面各个元件都是神马? 关于电磁波的物理题~~食物的分子在微波的作用下( ) ,使事物的( )能增加、( )升高.注意:不能用( )容器盛食物放入微波炉中加热.谢谢各位了,好的又追加分哦~~~ 形容伐木的象声词 请问上市公司财务风险预警实证研究可以只选取一种方法吗,比如logistic回归分析法. 如果某雷达向一飞机发出波长为6*10^3m的电磁波,经过4*10^-5S又收到信号,问飞机距离该雷达多远?电磁波的频率是多少? 热学的一些概念 这里有一些选择概念,希望master们帮忙分析和判断,1.温度相同的物体,内能都相等.2.物体的温度越高,内能就越大.3.物体的运动速度越大,其内能就越大.4.物体被举的越高,其内能 头孢类和大环内脂类抗生素分别指的哪些抗生素,阿奇类抗生素是哪些?对于孩子来说,哪些副作用小一些? 人类一共发生过几次精神文明危机?从32世纪初(3107年)到47世纪中叶(4650年),人类总共发生了几次大规模的精神文明危机?其中,有多少人重新穿越时空回到20世纪21世纪重新轮回?人类最终如何解决 英语翻译中---->英十字槽盘头螺钉六角头全螺纹螺栓平垫圈环氧玻璃布板 小林和妈妈去超市购物,买日永平花去所带前的三分之一,买食品花去剩下钱的四分之一还剩150元,求她们所带的钱 人类的终极文明是什么? “给大师买表”这句话是什么意思? 人为什么要有那么多烦恼呢? 沙特拒绝联合国安理会席位 声称其执行快讯:杭州德胜一出租房3人相约自杀 首届丝绸之路商旅文化博览会在古城西安尼日利亚军方打死37名武装分子美刊分析中国出境游客因何更爱自助游日政府将制作领土问题宣传片以谋求国际英报报道 高官联袂访华终结中英冰冻期就业数据黯淡或拖延美联储“退出”脚步港报称印中民间互视有温差美国科学家发现DNA时钟 或可重设时美国企业研发氦气球游大气层 每人旅费美报文章 中国良性通胀对世界是好事中美军方高官加快对话步伐美国企业研发氦气球游大气层 每人旅费筱原凉子永作博美 谁是日本最美熟女?美国科学家发现DNA时钟 或可重设时墨报文章 “石油人民币”时代即将到来美国脱口秀节目涉种族歧视 亚裔社团吁候选院士举报同行后退出增选 被举报人美将发放对巴基斯坦16亿美元援助款 上海警方破获百起街头掉包诈骗案:母子经历几轮牛熊市老股民的忠告:以下几种寇乃馨个人资料 寇乃馨黄国伦结婚照 石油危机后,中国和俄罗斯“疯抢”黄金安阳市人社局领导对殷都区再就业培训工违法企业被罚30万元民间艺术进校园 传统艺术展魅力大公报:中纪委反腐引入新“外援” 具欧洲时报:奥地利大选敲响振聋发聩的警曲江新区开展 电梯事故应急演练娄勤俭同志简历住宅内禁开小饭桌您怎么看西安将有序放开 农民工在城市落户限制乘公交周边游 8条线路可任选西安公共自行车 下月起租用时间延长交警做客本报接热线 解答读者疑问42方墓志拓片印证 北魏第一公室大族9月底前将拆改 177台燃煤锅炉以文化为基石 向国家级旅游度假区迈进我市27所民校 今年停止招生小区门口出行不便 能安装信号灯吗?胡和平同志简历
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘