HTML5、Web引擎与跨平台移动App开发
移动端跨平台应用开发是个有趣的话题。纵观该领域目前各个开发商提供的多种方案,大致可以分为三大类:
本文重点介绍基于HTML5的方案相比其他方案的优缺点,如何实现更好的效果,以及目前的一些进展。
原生API映射的方案,如Titanium、Xamarin,其优点在于功能和性能与原生系统比较接近。但是,由于不同系统原生API设计上还是会有不少差异,API的映射还是需要不少的权衡取舍。同时,由于这些API是这些厂商自定义的,谈不上什么标准,相应的开发资源(程序库/技术支持/社区等等)也相对有限。
而另一方面,标准化、开发资源的丰富则是HTML5方案最大的优点,同时第三方的HTML5框架工具比如PhOneGap/Cordova也极大促进了HTML5应用的发展,它们提供了方便的跨平台应用打包/发布服务、实用的API、灵活的扩展机制、以及积累下来的丰富的第三方API实现。而上游的W3C一旦开始支持一些新的API,PhoneGap/Cordova也可以很快沿用这些标准的API将相关能力开放出去。
HTML5方案的主要不足则在于功能和性能方面,这主要是因为HTML5应用的能力严重依赖于系统自带的Web引擎:iOS的UIWebview、Android的Webview等,此类组件的HTML5能力相比SafariforiOS、ChromeforAndroid都要差一截。另外在Android平台上,由于系统碎片化比较严重,不同Android版本的Webview的HTML5能力也有较大差异,导致相应的HTML5应用一致性难以保证。
好消息是,现在已经出现一些第三方的Web引擎以提供比系统默认的Webview更好的功能和性能,而PhoneGap/Cordova也正在改进架构以便引入这些更好的第三方Web引擎。另外对于Tizen、FirefoxOS这样本身就是HTML5Runtime加上扩展API的系统而言,HTML5应用是一等公民,在功能拓展方面相比iOS、Android上会增强不少。
而第三种方案,CocoonJS的优点是专注于2D/3D游戏开发,画图性能很好,比如同时画1000个精灵也能达到60FPS,这是绝大多数的浏览器/通用的HTML5引擎目前还做不到的。这个方案的缺点在于,由于它的画图操作简化了很多路经,它无法做到和HTML5DOM元素的互操作,而且它的HTML5能力也只是一个子集,功能比较受限。目前CocoonJS针对Android也引入了另外一种模式Webview+作为补充,Webview+基于Chromium的内核加上CordovaAPI的支持以实现更通用的HTML5能力。
HTML5应用的能力很大程度上依赖于Web引擎的能力。因此,无论是移动操作系统开发商还是开发工具的开发商,都持续在Web引擎的方向投入了更多的努力。
Web引擎目前大致可分为三种方式:
浏览器方式很容易理解,一个HTML5应用就是一个Web页面,用户通过浏览器打开一个url,然后进入浏览器的全屏模式/App模式进行操作,或者是通过点击一个事先创建好的快捷方式打开应用。这种方式的性能取决于浏览器本身对HTML5的支持情况,一般来说要优于Webview组件的方式,但是问题在于不同的浏览器有差异,而且通过浏览器运行HTML5较难做到类似原生应用的体验(应用切换/权限管理/系统资源访问/整合等)以及丰富的API支持。
Webview组件方式的一般用法是以Hybrid的方式发布HTML5应用,即上述提到的PhoneGap/Cordova方案所采用的方式。其问题已经在上面提到过,主要是Webview组件本身对HTML5的支持能力不足。
专门的Web引擎可以有较好的HTML5功能和性能支持,同时有较好一致性,类似原生应用的系统整合也可以做得较好。这种方式的缺点则在于开发者需要将Web引擎与应用程序一起打包,生成的应用大小会更大,因此有的Web引擎(如Crosswalk)也提供了一种共享模式,让多个应用可以共享一个Web引擎。
标签: CSS3、 网站建设、 HTML5、 html5、 HTML5、 Web引擎与跨平台移动App开发、 app、本文地址: https://yihaiquanyi.com/article/c23df73e2522a5a49851.html
上一篇:照应的形式及作用照应式设计网站设计网站树...