PhoneGAP(http://phonegap.com)按官方說法,是HTML5移動應用平臺,它包括兩部分:
1) 應用開發框架:采用Web/HTML5技術編寫應用,支持設備能力(如GPS、重力感應等)調用;支持能力插件靈活擴展。
圖1 PhoneGAP支持設備能力API列表
2) 手機應用創建工具:將遵循PhoneGAP應用框架編寫的程序轉換/封裝生成各平臺支持的手機應用。
圖2 進去的是網頁,出來的是本地應用
2、PhoneGAP有什么用?
1)有了PhoneGAP,用HTML5技術也能開發出傳統意義上的手機本地應用,同時可以通過Javascript調用攝像頭、位置信息等設備能力。
2)有了PhoneGAP,用HTML5寫好程序后就能生成多個手機平臺版本的本地應用,目前支持7個平臺:Android、iOS、WindowsPhone、HP WebOS、BlackBerry、 Symbian、Bada。
簡單地說,PhoneGAP讓Web程序員無需重新學習,即可開發手機應用;實現了Web應用本地化;大大降低開發成本。
3、PhoneGAP基本技術原理:
基于PhoneGap應用框架實現的手機應用相當于展示某個網頁應用的特別瀏覽器。PhoneGAP將Web程序打包成系統支持的手機應用格式(方便應用的分發、使用),通過調用系統的瀏覽器功能實現應用的運行及交互操作。
1) 開發語言選擇:Web/HTML5幾乎是各手機智能平臺唯一共同支持的開發技術。因此,PhoneGAP采用HTML5技術作為程序開發語言。這也是同一套應用程序能在多個平臺運行的技術基礎。
2) 應用呈現:各個智能平臺都具備并開放了瀏覽器功能,因此,PhoneGAP通過調用WebView(瀏覽視圖,具有瀏覽器基本功能的組件)實現應用UI的呈現及業務邏輯處理。
3) JS API擴展:PhoneGAP針對不同平臺的WebView做了擴展和封裝,使得應用可以通過Javascript訪問各種本地設備API。
4) 插件擴展:實現了一套靈活的插件擴展框架,允許開發者自行擴展能力插件。
需要特別說明的是:在SYMBIAN平臺 上,PhoneGAP并非把Web應用打包成本地應用(SIS),而是打包成Widget應用(wgz)(相當于把若干網頁打包成一個文件),因為S60 v5、Symbian3大多手機支持WRT(Web RunTime)Widget格式。這樣做,非常簡單,而且還避免了比較麻煩的SYMBIAN簽名問題。
圖3 設備能力調用原理示意
4、關于PhoneGAP
PhoneGAP是Nitobi公司的產品,該公司位于加拿大溫哥華。
2011年10月,Adobe收購了Nitobi公司,并把PhoneGAP項目捐給Apache基金會(ASF)。PhoneGAP免費并且開源(遵循Apache 2.0 License)。
PhoneGAP在Apache里的項目名稱叫Cordova(原來叫Callback):(網站/源碼:http://incubator.apache.org/projects/callback.html)
目前基于PhoneGAP開發應用有幾千款,應用列表:http://phonegap.com/apps
5、PhoneGAP的未來
盡管PhoneGAP在應用的性能、應用支持的功能以及應用的用戶體驗等方面還有很大的提升空間,
但它的出現無疑將有助于HTML5應用的發展。
在我看來,PhoneGAP最大的價值是:它顛覆HTML5應用的分發方式,改變HTML5應用的商業模式,并加速HTML5應用的發展進程。
它帶來的精彩或許剛剛開始,讓我們拭目以待。