董岩、元凯宁:Crosswalk+Intel XDK: 移动解决方案

8月8日,由HTML5梦工场主办的第四届HTML5峰会暨攻城师嘉年华(iWeb峰会)北京站,会上英特尔软件架构师 董岩、元凯宁表了《Crosswalk+Intel XDK: 移动解决方案》主题演讲。

以下是演讲实录:

董岩:大家下午好,非常感谢这么多同学来参加我们今天的论坛。我叫董岩,来自于英特尔的开源技术研发中心,今天由我和同事元凯宁为大家带来Crosswalk+Intel XDK,HTML5时代的移动开发解决方案。我们今天的内容主要有以下四个方面,首先谈一下移动Web开发的挑战,然后我们会对Crosswalk项目做一个简单的介绍,接下来是如何基于Crosswalk打造一个Web应用。最后元凯宁会给我们大家讲一下英特尔XDK的开发环境。

首先,实际上Web技术这几年一直被寄予厚望,大家做过Web开发也会有体会,我们用Web开发,用Web做一个移动应用的开发一直是不温不火的状态,我们很多的APP的开发者对采用Web会有一些疑虑,我们总结了一下,首先在不同平台上它的浏览器的HTML5能力有较大差异。安卓平台的碎片化,也会对于开发的体验起到很大的影响,这一点在中国市场尤其严重。第三点是性能要求,对Web性能要求很高的APP,尤其是游戏它对性能要求非常高。同时,它会要求我们具备很好的API的访问能力。虽然这一点标准化组织一直在推进这件事情的进程,但是因为标准化组织很松散,而且推进速度很慢,如果我们如何把本地的能力尽快地通过Web的平台提供给Web开发者也是一个挑战。最后是用户定制的一些功能,我们如何让用户很容易的定制功能,扩展Web平台的能力。于是这些问题给我们提出了一些需求,首先我们的Web应该有一个比较好的用户可控的独立的API引擎,给用户提供一个一致的HTML5的开发体验。其次,我们应该能够更好的把硬件的并行能力,比如说SIMD引入Web平台。第三点要求很高的游戏引擎,我们可以提供深度的整合,甚至一些游戏的模式,对游戏开发进行非常好的支持。最后,我们应该提供比较好的扩展能力,让用户利用已有的一些很流行的,比如说插件的方式来很快的去扩展自己系统访问功能。有了这些功能,Crosswalk项目就诞生了,它是从2013年开始,2013年10月份开始开发出来的项目,到现在两年了,一直在蓬勃发展过程中。Crosswalk是基于一个Blink的HTML5的运行时环境。首先Crosswalk包含一个完整的blink的完整引擎,可以实现很好的跨平台支持,我们主流的平台有安卓、IOS、win,我们可以使用它构建我们的应用、发布、管理。Crosswalk提供了一个扩展机制,我们可以扩展Web的功能。最后Crosswalk提供了第三方的无缝集成,我们可以进行非常好的集成。那么Crosswalk的优势主要在哪些地方体现呢?首先Crosswalk在安卓4.0上可以提供一致的Web开发体验,这一点大家可能做过安卓的Web应用开发都会有体会,安卓的每个版本是不支持的,只要你针对一个特定的Crosswalk版本,那么你能够在安卓4.0以上的任何版本得到一致的Web开发体验。然后意味着大家可以非常容易的拿到Crosswalk所有的代码,我们保证六周更新一次,保证最新的标准和API使用,同时我们还提供了一个比较好的性能体验。


Crosswalk发布两年多以来,实际上和很多厂商都有非常紧密的合作,首先它和比较知名的HTML5框架和工具有非常好的集成,同时我们对游戏平台也进行了非常深度的整合,比如我们和ludei等等一些游戏引擎。HTML5应用方面,我们在谷歌play中有超过2000款基于Crosswalk的应用。以及在Crosswalk引用一些新的技术,比如说webcl额、webRTC等等。


下面讲讲Crosswalk的运行模式,其实Crosswalk的运行模式,基础的运行模式主要是两种,第一种叫做嵌入式模式,每一个APP都包括一个完整的Crosswalk运行时。它的好处是我的应有开发者能够独立的控制Crosswalk的版本,但是这个APP无的比较大。我们提供了第二种共享模式的方案,把Crosswalk作为独立的安装包安装在系统上面,所有的APP包括自己的Runtime。有没有办法把这两者的好处结合一下,我们提供了第三点经典模式,在嵌入式模式的基础上进行了一定的精简,裁减掉了很多不是非常常用的HTML5的功能,同时提供了压缩的机制。我们目前可以做到7兆左右,这个工作还在继续过程中,将来我们也对针对用户的需要提供一个定制化的打包服务。业务开发者可以在这三种模式当中选择一个最适合自己的应用开发方式。


接下来我们讲讲怎么基于Crosswalk做一个本地的Web的应用,第一个就是纯HTML5的应用。如果你是一个纯Web的开发者,你只需要给一个文件,里面是原数据,使用我们Crosswalk提供的打包工具,直接在平台上可以编译出你要的目标平台的安装包,比如说安卓的API。你也可以通过设计参数控制Crosswalk的一些行为,比如打开一些硬件加速、开关。这些过程实际上都被集成在英特尔的工具里面。第二种模式是叫做混合应用模式,如果你不仅仅满足于只开发一个HTML5的应有,那么你还想对这个应用进行更多的深入定制或者加入自己的功能,你可以混合应用。它通过API的接口向外提供支持, 把这个嵌入到你的APP里面,就是你要的那部分内容。然后Crosswalk里面的一些功能,一些API这样的实现,它都是通过内部的实现,然后你可以通过用户自己定义的这些去访问GS对象。如果你觉得这些还不够,你还想再去扩展一些自己的功能,也有两种功能,一个实现你自己用户的,用我们Crosswalk的开发方式,定义你的用户。或者你也可以使用我们集成功能,把现有的插件放到里面通过配置,然后在启动的时候,或者某个特定的比较合适的时机加载进来。


Crosswalk的内容大概就是这些,大家可以去看我们的官方网站和下载我们的邮件列表,关注我们的Crosswalk项目,也欢迎大家试用我们的Crosswalk。下面欢迎我的同事元凯宁给大家带来下面的介绍,谢谢。


元凯宁:谢谢,HTML5已经火了几年了,iWeb大会已经开了几年了,现在从布道的模式已经转入到应用的时代了,更多的开发者需要做什么?需要写代码,需要调试,需要打包,需要发布,需要看别人的代码,这些需求在哪儿能解决呢?IDE,英特尔它是为开发者服务的IED,还包括了免费的云服务,这个是传统IDE没有的。但是这个IDE里面我们提供了一个简单的工作流,让你从创建项目,调试项目,包括打包,等等这些功能都是特别简单的。比方说鼠标点几下放进一个项目这是都有的功能,如果你有手机应用,不需要打包就可以调试,其他地方有吗?没有。我们XDK里面就有,你可以点一次鼠标,设备直接跑起来,这会儿会有实时的演示。XDK还支持Crosswalk,因为我们有良好的支持,这是我们自己的产品,如果你想试用Crosswalk的话,XDK是非常简单的模式,你从项目实施只需要点几下鼠标。我们去年的iWeb大会也介绍过XDK,今年介绍的意义是因为我们做了中文版,并且集成了本地的服务,支持了一些游戏的开发,比如说大屏幕的截图左下角,这就是一个游戏资源的管理器,所有的游戏资源都在上面能支持到,而且还可以把这些资源拷贝代码,你可以稍作修改就可以使用。


EMULATE,这个你在开发的时候,直接点鼠标就可以在电脑上把功能模拟出来,这个模拟是有限的,但是可以棒你快速的解决这个问题。TEST,QA可以拿着很多地设备,设备的墙来测试这些同一个设备不同的表现,CPU的差别,分辨率的差距,还有不同操作系统。DEBUG是XDK比较擅长的,还有PROFILE,还有BUILD功能,这是免费的云打包服务,XDK也是免费的,能让你轻松打包多个平台的应用。虽然咱们时间有限,我想多说一句,平台在一般的概念上就是不同的手机的平台,其实还有别的意义的平台,比如说FACE BOOK能接受的HTML5的应用,这个多平台的应用,我们不一定只支持移动应用的,还支持很多IOS、windows的应用。你想把你的应用放到上面去,只有HTML5的应用能放上去,这也是我们开发HTML5应用和开发HTML5游戏的一大意义所在。


下面进入演示的环节。这边我们用了一个应用,能把手机的屏幕投射到电脑上。屏幕的左边被切掉了,所以我作为展开的模式。这个是支持游戏开发的,我随便看一个资源,这是一个爆炸的动画,这是官方的图像,这个是内置的模拟器,直接在电脑上跑起来。在这个里面你可以换不同的APP,还有设备的功能,这都是模拟的功能。因为我是开发人员,开发人员经常带着自己最新的东西来了,流程看起来非常麻烦,但是你们下载到的版本没有这么多特殊的东西。这个投的界面是手机上的界面了,这边有一个断点,这个不只是你的应用,包括第三方的都可以在里面进行调试。有了断点之后可以变亮,可以单独调试,这些就不演示了。因为我自己拿的版本是一个内部稍微有一点问题的版本,所以流程看起来多点几个对话框,实际是没有这些问题的。咱们点击录制的按钮录内容,录一下内存使用的曲线,看着比较明显,新游戏。我们录一小段,然后看一下。如果你从左到右完成了开发、模拟,之后就可以打包。打包也是一键的,你选一个平台,点开一下,因为现场的网络有一点问题,我就不演示了。这个是云打包,上传。还有Web平台都可以打包出来。整个英特尔XDK就是给大家提供比较简单的工具,有些边界的甚至可能觉得有些麻烦,如果是熟练的开发者,英特尔XDK已经有了支持,给所有的开发者提供方便。我们刚才演示的是一个游戏,其实我们支持很多流行的框架,还有老的一些我们都有支持。这样的话,就完成快速开发的流程。