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

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

如 何 恢 复Sybase SQL Anywhere 的 数 据 库-Delphi资料 如何捕捉KEY VIOLATION等错误-Delphi资料 如何得到SQL返回的计算结果-Delphi资料 如何动态的读取Delphi中的PopupMenu的Caption ? 如何动态设置DBGRID。比如,动态设置DBGRID的COLUMNS。及如何在数值数据格式成千分位 如何返回BDE的状态信息?-Delphi资料 如何控制关键字段的重复输入及报错-Delphi资料 如何设置Microsoft SQL Server 全文索引服务 ?-Delphi资料 如何设置多用户环境的PARADOX数据库-Delphi资料 如何实现在一个Dbgrid中显示多数据库-Delphi资料 如何用SQL查询日期型字段?-Delphi资料 如何在数据库中存放avi文件-Delphi资料 如何在注册表中注册BDE-Delphi资料 筛选数据-Delphi资料 实现不同数据库系统之间的数据转移-Delphi资料 使 用WISQL32 同 时 访 问SQL SERVER 和SYBASE 数 据 库Delphi资 使用Session构件可以在打开有密码的库时不用输入密码-Delphi资料 使用SQL实现字段数据的模糊查询-Delphi资料 数据表的索引被损坏了怎么办-Delphi资料 数据库的密码、日期显示-Delphi资料 数据库应用程序开发中图像数据的存取技术-Delphi资料 数据库中图像数据的存取技术-Delphi资料 数据库转换-Delphi资料 数据浏览部件的应用及编程-Delphi资料 数据文件路径的管理-Delphi资料 随意控制DBGrid每一行的颜色-Delphi资料 通过DELPHI实现JAVA调用ORACLE数据库数据 通过编写代码来设置数据库的别名-Delphi资料 为Delphi数据表格增加彩色 为Delphi提供Pack和Undelete功能 为Delphi中数据库报表加网格 转分 介绍制作DLL专业书籍 有关image的函数问题 请教? TObject和integer之间的转换问题 数据库简单问题 文本文件的最后一行怎末去掉换行符,用程序实现。 善良的程序员,当心QQ骗子啊! 谁有Qamonitor,小弟急用! 不要笑偶 转分 有会打印对象编程的吗?printer对象怎样打印横线??怎样打印带风格的报表?? 表分区的数量有上限吗 ASP 0178 (0x80070005) 各位高人,请一定帮个忙吧 !! SetCellImage 利用C# 读取系统当前进程的出现问题,帮忙!! 请教高手:怎样在一个窗口里能够输入文本文件(按回车键) 另一个窗口显示出同样的文本 高手在何方 (大力请进)sql字符串处理的问题 上哪能下到exchange 2000,下到马上给分! ado问题? 数据迁移问题??? 怎么把列名选出来? [在线求助]:有什么好的方法可以使得鼠标放上有链接的地方状态栏不显示真实地址? 高手在哪!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 各位大哥﹐何為微创软件开发管理﹖﹖﹖﹖ 3com switch 3300 xm 有网管的功能吗? 关于窗口大小的问题,快来捡分~~~ 为什么2001年前的提问的问题、得分的问题、信誉分变化纪录都不见了。 无法在人才频道上提交简历。。。 请问:wsad4支持滚轮鼠标的插件哪里有下载??? 自动锁定计算机? 请问如何终止一个正在运行的应用程序 无法在人才频道上提交简历。。。 后面数据库为ms sql server2000的时间问题? DoEvents 怎么用?(不好意思,只有这么多分了!) CSDN真让我失望,大家都喜欢回答无聊的问题(不要回复) jdbc中LIKE条件如何使用prepareStatement? 请问,如果想报考系分的话,需要先过高程吗? 请问怎么把Excel形式的表结构导入到Oracle … 请问数据窗口中如何自动记录资料修改的帐户? 我倒要看看谁有本事让javac输出这样的信息? ADSL 可以直联吗? linfeng1216 (林枫) 请来领分。 在java中的暴露事件如何处理? 求PowerDesigner电子书籍资料!急! 有关_SERVER["HTTP_CONNECTION"] 两个窗体 带有setup程序和一堆代码的电子书怎么看? 这个web控件谁能介绍的详细一点 一下事件按什么顺序排列更符合逻辑?53.(1)众人称赞(2)被捕入狱(3)痛改韵非 (4)人室盗窃(5)刑满释放A.4—2—3—5—1 B.2—4—3—5—1C.2—4—5—3—1 D.4—2—5—3一l 逻辑的力量怎么样 今天晚上 在西班牙几点能看到流星雨?今天晚上 在西班牙几点能看到流星雨?要说清楚是国内时间还是西班牙时间.今晚在西班牙到底能不能看到流星雨(除去天气因素)? 甲队和乙队共修一条公路,甲队修了全长的百分之60,比乙队多修60米,这条公路长多少米? 逻辑中真包含关系与真包含于关系的区别逻辑推理确实难推敲啊 两向量方向相反怎么表示 初中七年级信息技术开学的第一节课要怎么上~ 与、或逻辑具备什么特性 你愿意给我多少时间,就证明你有多在乎我~这句话的意思?RT, 已知函数f(x)=x^3-x在(0,a]上递减,在[a,+∞)上递增,求a的取值范围. 思维是什么?如何拥有“逻辑”? 古代楷书四大家哪一位是元朝人? 七年级学生入学要做到哪些? 说话没有逻辑我该怎么办 为什么古代中国皇帝不去打世界比如说元朝 唐朝 明朝 甲乙丙三村合修路三村修路比8:7:5三村按修路派劳动丙没派劳动付甲乙1350元甲派60人乙40人甲乙各分多少元 已知函数f(x)=x^2(x-a)在区间(0,2/3)内单调递减求a的取值范围 Are you,let me know how the warm embrace的意思? 甲乙丙三村修路程比是8:7:5因丙村无法派出劳动力,需要给甲乙两村1350元这样甲派了60人,乙派了40人,求甲乙两村各应分多少元? 香港割让后的情景有没有一本书,或是电影,描写一百多年前香港刚刚被割让给英国时,香港民众的反应或是当时的情景的?比如说英国是怎样对待当时的香港民众的,或是香港的生活状况 为什么梦是没有逻辑的? 音程是什么? 割让香港岛给香港带来的影响 、下列句中“之”字用法归类正确的一项是:( ) ①缘溪行,忘路之远近.②渔人甚异之③莲之出淤泥而不染甚蕃⑥箬篷覆之⑦盖简桃核修狭者为之⑧宋孟浩然之广陵A ①⑤\②③\⑦④⑧\⑥ B 音程的表现 意义 8米旗杆用几号国旗 什么是逻辑 扬子江的介绍是什么, 经过三点《2,2》 《5,3》《6,0》的圆的方程 我为什么写作文那么没有逻辑呢?要怎么写啊? 什么的扬子江 圆面积计算如图,半圆的直径AB为2,AC垂直AB于A,BD垂直AB于B且AC=1,BD=3,P为半圆上任意一点,则封闭图形ABDPC面积最大为—————— Warm as you,all the 止战之殇描述的是什么? 圆形面积计算一个圆形面积之比是9:1,直径之比是多少? 下列各组句子中之的用法与"渔人甚异之"相同的一项是A莲,花之君子者也B老人引杨氏入山之大穴C杨谢而从之D何陋之有 求歌曲 女的唱的 非摇滚 歌词里边有you hope to find me i'm sorry but i can help you求歌曲 女的唱的 非摇滚 歌词里边有you hope to find me i'm sorry but i can help you 果园里桃树占总树数的1/3,李子树占总树数的1/9,其余的是苹果树.写出这个果园的桃树和李子树的棵树比. 土字旁加个山字怎么打 数学面积计算在下图中,平行四边形ABCD的边长BC长10cm,直角三角形ECB的直角边EC长8cm,已知阴影部分的总面积比三角形的面积大10平方厘米,求平行四边形ABCD的面积.对不起!是比三角形EFG的面积 果园里桃树的棵数占果树总数的3/2,李子树的棵数占果树总数的9/1,其余的是苹果树.写出这个果园的桃树和李子树的棵数比 提土旁加一个"龙"怎么读, 张家港扬子江石化有限公司,简称“扬子江石化”这个单位怎么样?如题:张家港扬子江石化有限公司,简称“扬子江石化”这个单位怎么样,待遇情况,越详细越好,要我下周去面试,应聘的是中控 大棚蔬菜种植可以一起栽种的蔬菜搭配有哪些? 以环保为题用什么题目好? 直译 果园里有桃树三分之八亩,苹果树六分之十三亩,李子树八分之十五亩,请问该果园有多少亩, 指出下列加点字的用法:渔人甚异之 之:处处志之 志:欲穷其林 穷:复前行 前: 周杰伦的{止战之殇}是什么意思啊 当当问:“香港割让给英国是永久割让吗?” The most warm affection 一个言字旁一个沈的右半边读什么 Did you know?How many time have you been late for school?(合并为一个宾语从句)怎么改有提示 Did you know how many times ____ ____ ____ late for school? 怎样做才能我们环保更加优美 求三个数学小故事!急只要三个,不许多,不许少 科学发展对人类的利大于弊还是弊大于利(原因)(辩论) 【高一英语】I don't mind___the decision as long as it is too late.A.you to delay makingB.your delaying makingC.you delaying to makeD.you delay to make每个选项求详解还有哇,我在有道词典里查 delay doing 和 delay to do 都是有 故交通之利,不若扬子江与珠江也.意思快噢~ The world's most pitiable the! Is forever Only Love you apromise 如图AF=DB,BC=EF,AC=ED求证CB=EF 俄罗斯不阻挠斯诺登协助德调查永康一辆百吨槽罐车侧翻 压住宝马致母杭州10岁女童遭淫魔猥亵 家长怒称出法国阿尔萨斯华人联谊会接受国侨办赠送黎巴嫩北部发生枪击事件造成10人受伤特大生产销售假药告破 上万支假狂犬疫奥地利媒体称奥也遭到美国情报机构监听中国和伊朗签署互设文化中心谅解备忘录马来西亚外长:监听破坏盟友关系马来西亚外长:监听破坏盟友关系德国与巴西共同向联合国提交有关反监控白岩松评伤医事件频发:欠账改革让医生五角大楼否认美日制定“钓鱼岛共同防卫埃及宣布14日起解除紧急状态和宵禁印度首都新德里一成衣厂发生大火 至少印度发生火车撞人事故至少8人死公安部破获特大制售假药案 查获假药1阿根廷:监狱财政吃紧 多人“捡漏”越澳大利亚中国学者举行优秀论文报告会巴基斯坦全国高度警戒防巴塔袭击海军实兵演习执行导演:远海训练只会加曝光 | 2015各行业最顶尖的微信提高短线操作成功率!能力提升篇!早报:诺基亚将推硬件新品人在最低谷时,往往是人生转折点! 满四则故事,让用人变得简单流量经营实践存疑,运营商自身短板何时各种手影摆法,可以做给孩子,要收藏学“沪港通”开通就意味成功了一半用镜头光线带出写意风格宝宝日常护眼10要点! 妈妈们一定要这是央视最成功的励志广告,我沉默了很“韩流”强劲 国产剧为何难以抵挡合作社仍将是我国中小规模养猪出路的最一个中央财大教授的呐喊:迷信金融迟早俄罗斯一如既往地“打了再说”教育部:营养改善计划4年使3160万没想到美国中央情报局用这些间谍武器古装相似场景大PK!谁美醉了,谁丑哭梵高与蒙克:同样疯狂不同人生【爆笑】每次我妈叫我不要玩手机去外面什么是死玉?传道士驱邪镇鬼就用死玉
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘