对一个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)会被打包为类似“镜像文件”的形成发布到待运行平台之中,在运行时由浏览器解析执行,从而实现了一次开发,跨多平台运行的目的。