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

一篇文章读懂开源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.

c#采用递归非递归两种方式遍历目录下所有文件 使用DataContractJsonSerializer进行JSON序列化的JSONHelper类 宏病毒ToDOLE及专杀工具 如何构建和运行基于cocos2d的HelloWorld程序 C# .net 2.0 以Gmail发送Smtp邮件 ASP.NET优化性能方法之一:禁用调试模式 开源SMTP和POP3邮件服务器 三星:在专利上不会和苹果妥协 不止谷歌,微软也有自己的眼镜计划?! Windows 8商店应用总数突破20000大关 硝烟弥漫:三星起诉苹果最新iPad、iPod侵权 效仿Google Facebook欲整合Instagram用户数据 与苹果全面竞争?传微软明年推Xbox机顶盒 微软Ralph Haupter:WP8即将在中国上市 开发者黄金时代来临 Paul Graham:Y Combinator创始人成长轨迹 我们需要强密码吗? 为了改变?英特尔CEO宣布将于明年5月辞职 传苹果下一代Mac OS中将整合Siri及地图服务 TripAdvisor:使用AWS比服务器托管成本节省50% [MDCC精华]亚马逊AWS布道师Kingsley Wood:灵活IT架构之道 亚马逊诉讼彰显谷歌在公有云领域威慑力十足 AWS全球创业大赛 奖金100000美元 YY:破冰而出,成功上市 Xtreme Labs工程师:Android开发常陷入的五大深坑 Elon Musk:没了乔布斯的苹果干不过谷歌 旁门左道:第一次开发移动游戏就赚到28623美元 移动周报:小聪明赚大钱 游戏SEO如何耍鸡贼? 创翼全国 六城联动——2012移动互联网应用创新大赛开放日 全国六城联动沙龙 爱丽丝+福尔摩斯 Game Insight解谜游戏玩出新花样 Windows Phone 8 SDK大升级:部分功能兼容WP7 信息大图《愤怒的小鸟》发家史 男人的花样,女人的年华(淡月儿) 如何在VB中正确将调用的Excel进程关闭? 请问 void UpdateDialogControls()函数怎么用……(******) 求教:我想拦截CreateProcess()的调用,并取出参数是否可行???? 我想请问一下sql的认证问题 触发器:For ,Instead OF 和After有什么区别?? slq7.0是不是不支持Instead OF 和After 远程访问方案征求!!! 为什么在我的XP的文件夹里面有Thumbs.db???? 不难的问题,请帮忙!! 如何改变ASP.NET Web应用程序生成的项目的位置?? 如何在JBuilder7中连接远程MS SQL2k数据库? 为什么在x-win32的窗口中,不能使用KDevelop,创建QT工程?? 数据源的连接问题?急!急!急!急!急!急!急!急!在线等待! paradox7表有没有最大记录数或最大容量?! 请问safety-critical systems是什么系统? 为什么<textarea>会有字数限制,我写了超过330个字符就不能提交表单了。 看看吧,想改變這种現象!!<marquee>能移動內容,但它移動時有空白(要等全移完后才又重新移)能否不要這中間的空隙。 那里有 netapi32.dll 中所有的函数及结构体的Delphi版定义? 在ASP里怎么能才让字符的ASC2码值加一。比如a加一之后等于b 谁有ehlib和fastreport的使用资料,哪下载??? 有关排序的问题? 高分相送!,求地税信息化方案 一个java程序,怎么写不进去?等待…… SOS!!! 是显卡的问题吗? 挂接的Fat32文件系统文件名为乱码 Linux 下的 中文输入法 十分奇怪的问题,win2000下编辑框粘贴文本出错。 为什么我的iis打不开了?(在线等待) win2000下 “内存指令不能读” 的错误怎么解决???? 问用ASP+SQL SERVER的朋友一个问题。在线等待。。 Web Services 的客户端和服务器能不能双向通信 98里的IIS服务在哪里停掉! 怎样在同一系统中既做服务器又作客户端?谢谢! 喜欢的女孩,交往半年后才知道大我2岁,郁闷!大家说该怎么办??? 怎么样用create函数创建一个窗口,用来显示提示信息 有两天没加可用分了,大家是没感觉,还是无所谓?我要饿死了,救命……来者有分! 用PHP如何在取得了属性drwxrwxrwx之后,判断是否为可删除? 在VC中,用quickwatch看vector变量时,怎么只能看到装在容器里的第一个变量 状态栏问题 如何使鼠标移到输入框上,输入框里面的字就会成 被选择 状态? 五百里加急(分不够另给) 与 硬件 有关 怎样配置root启动菜单~???~ [求助][急]关于SQL语句优化 高分求IBM WebSphere Application Server 高级版! 经常上csdn上的哥们把照片亮出来啊:) 在asp.net(用vb)中怎么连接ORACLE数据库? 从页面A转到页面B后,再从B转到A,怎样使A中控件的显示仍保持?即类似注册失败时返回,其他资料仍存在,仅密码需重输。 关于调色板管理器和动画的问题 请问如何使文本框处于选择状态(蓝底白字) J2EE 1.4 beat发布了。 Mike除了迈克(男名)还有什么意思? today 用什么时态 英语中什么是情态动词,助动词,祈使句,如何将肯定句转化为疑问句? mike什么意思 现在的情感事情为什么过去时态例如说我现在仍然喜欢音乐,但是在描述我过去的生活时,用的却是Ilikedmusic,在一些英语文章中时常会出现,这是为什么呢 ___is that toy bus? Is it a korean or an english car?Is it a korean or an english car?english car 不是一个名字短语吗?前面应该放a才对啊,korean 是形容词,前面应该不能放a的啊? His mother often makes him____(clean)his room on weekends 求全新版大学英语听说教程3的原文 havesomlunch,mike的意思? 英语好的请进来帮忙,在线等啊刚刚联邦快递的人打电话给我们,以下的货物已经到意大利了,他们一直联系不上你们,请尽快跟他们联系,否则货物将会退回我们公司,谢谢 疑问句,倒装句,否定句的助动词是什么? Is it a Koren car or an English car or 前面的car是不是多余, Li Hua cleans his room every day to keep it ------(clean) 英语中 实意动词的【否定句】需要【助动词do】帮助构成【否定句】? make sure后宾语从句是否要用一般表将来 《格列佛游记》的故事梗概 That is a white cup.改变为一般疑问句 写英语评论时最好用什么时态 格列佛游记内容梗概? 变成一般疑问句 The bus is black.That dog is cute.The cow is big.That is your sister. 2013年8月20号是星期几? 谁知道新视野大学英语视听说教程4 mp3在哪里下啊我要的是和CD那样的 很长 连贯的 不是一小段一小段的MP3模式的 make up组成,造句 2013年8月19号星期几? 新视野大学英语4,mp3哪找啊? Can you ()the word in English?A Say B speak C talk Dtell选A 还是B Next time I neet to make a lunch invitation personal I will send a letter.until then, I will stick with text message翻译 股票技术指标中的MIKE是什么意思 John,can you ______the new word in French?A.speak B.say C.tell D.talk 求翻译:我们预计下周寄样品给你.We will send you the sample by next week.这样写对吗? mike是什么意思呢? 英语较好的请进来下我需要以6年级标准写的一篇周末计划的英语作文,请带上翻译。 把下面句子变为被动语态I will send a message immediately well的比较级和最高级是什么 Can you tell me how to ( ) this word in English?A.said B.say C.tell D.speak 反意疑问句 如果陈述部分没有助动词,be动词,情态动词那么疑问句部分的动词用什么? 急求用英文介绍carly rae jepsen用英语介绍 详细一点 谢谢! 英语好的请进来一下采纳后必有重谢这是亚洲90年前没人能预见它的潜力但我们看到光明的未来我们化“危”为“机”将不可能一一实现因为有你你 是激励的源泉你 是进步的动力我们为你的 that power的歌词翻译成中文 MiKe是什么意思? Can you ____them in English A.say B. Speak C.talk D. Tell good well的比较级和最高级是怎么样 2011年12月英语三级作文,作文:如果你捡到了别人的钱包,你想写一个海报来寻找给失主 地点:汽车站 时间2011年10月8号 描述:黑色的钱包一个,里面有一张身份证,银行卡2张,现金若干Lostand foun 英语作文怎么提高分数啊! well的比较级和最高级是神马? 清朝期间中国和英国政治方面有什么相同之处 介词填空Does she go to London________air or ___sea?,请问应该填什么介词? well的比较级和最高级 be made of 和 be made up of 的区别 Scott's favorite subject is math(改为特殊疑问句) 把It is a English book转换为一般疑问句 be made up 帮我找与OF有关的短语(有翻译哦)急 1、be different from...为什么不用difference2、look the 3、the same far和well的比较级和最高级 you said it out ofenvy中文翻译 格列佛游记反映了英国皇家怎样的生活? Amy has got some toys. 回忆今天所发生的事应该用什么时态 《格列佛游记》中,小人国里的高跟党和低跟党分别影射英国哪两个党派?求正确答案.蟹蟹.《格列佛游记》中,小人国里的高跟党和低跟党分别影射英国哪两个党派?求正确答案.蟹蟹.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘