代码改变世界

对一个PhoneGap技术客户端运行图的理解

2011-12-27 17:52  呦菜  阅读(763)  评论(0编辑  收藏  举报

郁闷,刚刚快要写完了,结果断电。。。。然后就悲剧了。。。再写一遍吧

先上图:

先了解一下Webview:

1、WebView组件实质是移动设备的内置浏览器

    WebView这个内置浏览器特性是Web能被打包成本地客户端的基础,可方便的用HTML5、CSS3页面布局,这是移动Web技术的优势相对于原生开发。简单说在手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。

此处再来介绍一下webkit:

现在浏览器的内核引擎主要有:

   Trident: IE 以Trident 作为内核引擎;   

   Gecko: Firefox 是基于 Gecko 开发;  

 WebKit: Safari, Google Chrome,搜狗浏览器的高速内核,傲游3 基于 Webkit 开发。  

 Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台--Opera mini

    WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用)。同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。

    传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎 JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过, 随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome和Maxthon 3采用V8引擎,却仍然宣称自己是WebKit内核)。

2、WebView提供Web和设备本地API双向通信的能力

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

所以PhoneGap在客户端的运行状况为:应用运行在WebView组件上 —》 通过PhoneGap在各平台的扩展 —》 最终访问设备本地资源

在开发的过程中,PhoneGap框架提供了一系列的API供开发人员在JavaScript代码中调用;通过这些API调用,PhoneGap程序就可以与相应移动平台的SDK API进行交互,以调用运行平台本地的功能。在运行时,使用Web技术编写的资源文件(html/css/js)会被打包为类似“镜像文件”的形成发布到待运行平台之中,在运行时由浏览器解析执行,从而实现了一次开发,跨多平台运行的目的。