Blog Logo

Cordova简介

写于2015-11-25 14:51 阅读耗时4分钟 阅读量


Cordova跨平台原理

Cordova是一个开源的移动开发框架,让你使用HTML、CSS和JavaScript等Web技术来开发跨平台的App。它使开发者能够利用JS来访问IOS、Android、Windows Phone等手机的核心设备功能--如:地理定位、加速器、联系人、声音和振动等。

在Cordova中,通过Android或IOS中的WebView组件(浏览器核心)实现对Web技术开发的App的展示。以Android为例,Cordova是通过增强Android的WebView组件来实现JS调用Java方法的,其实质也是Cordova插件的原理。


IPhone和Android平台共同点是都有内置的WebView组件,其具备两个特性: 1.WebView组件实质是移动设备的内置浏览器 WebView这个内置浏览器是WebApp能被打包成本地客户端的基础,可方便的使用HTML5、CSS3页面布局,这是移动Web技术相对于原生开发的优势。

2.WebView提供Web和设备本地API双向通信的能力 Cordova针对不同平台的WebView做了扩展和封装,使WebView这个组件变成可访问设备本地API的强大浏览器,所以开发人员在Cordova框架下可通过JavaScript访问设备本地API。

运行在WebView组件上WebApp <=>通过Cordova在各平台上的扩展 <=>最终访问设备本地资源 通常我们称利用Cordova开发的手机App叫做混合App(Hybrid App)。 cordova


Cordova优点:

  1. 使具有JS+HTML5+CSS3技术的前端开发人员使用现有的技术来开发手机App;
  2. 利用Web技术开发出来的App具有天然的跨平台的特性;
  3. CSS3布局具有更快、更简单方便的优点。

Cordova缺点:

利用Cordova开发App最大的缺点是性能问题兼容性产生的各种Bug。 例如滚动性能问题主要是由于Android这个残废的WebView导致的不能使用原生来实现下拉刷新和无线加载的功能,导致不得不使用JS来模拟实现。 其实在IOS上面Cordova开发的App性能还是相当棒的,几乎和原生没有区别,xxx在IOS上面的滚动是利用原生的滚动,所以没有性能问题。 还好随着手机的硬件越来越强悍,这个缺点也在慢慢得到弱化。例如xxx在绝大部分的Android手机上面性能表现还是相当好的,就算是5年钱的三星一代机皇I9100上面刷Android4.0以上系统跑起来也是相当令人满意的,所以大家不要过分担心性能问题。只要优化得当,还是能够得到很好的性能表现的,优化不当就算是原生开发的App都能卡出翔。


Cordova和PhoneGap的区别

Cordova是PhoneGap贡献给Apache后的开源项目,是从PhoneGap中抽出的核心代码,是驱动PhoneGap的核心引擎,所以可以把PhoneGap理解为Cordova的一个分支,但它或多或少的和Cordova有所不同,很多不同也是因为要支持PhoneGap Build的。PhoneGap和Cordova的关系就如同Google Chrome和WebKit的关系。

Cordova官方网站:http://cordova.apache.org/

Headshot of Maxi Ferreira

怀着敬畏之心,做好每一件事。