移動應用快速開發平臺:PhoneGap

jopen 11年前發布 | 28K 次閱讀 PhoneGap 移動Web開發框架 移動開發

一、PhoneGap是什么?

PhoneGap是一個基于HTML、CSS和JavaScript創建跨平臺移動應用程序的快速開發平臺。與傳統Web應用不同的是,它使開發者 能夠利用iPhone、Android等智能手機的核心本地功能——包括地理定位、加速器、聯系人、聲音和振動等,此外它還擁有非常豐富的插件,并可以憑 借其輕量級的插件式架構來擴展無限的功能。PhoneGap由Nitobi 公司創建,并于2011.10被Adobe收購,并捐贈給Apache基金組 織,PhoneGap是唯一的一個支持7個平臺的開源移動框架。框架提供了豐富接口用于訪問移動設備本地API,能夠讓你用javascript輕松調 用。

需要區分的是PhoneGap既不是JavaScript框架,也不是類似jQuery Mobile這樣的移動應用框架,PhoneGap也不提供IDE環境。開發者仍然需要依賴類似JQuery Mobile,Sencha Touch這樣的第三方Web移動應用開發框架開發基本的Web移動應用。

PhoneGap的優點:

  1. 簡單:使用普通的Web技術(JavaScript+HTM+CSS)進行開發,無需從零開始學習IOS開發及Android開發技術。
  2. 省事:一份代碼,多份應用。相同的代碼只要通過編譯后就能在不同的設備上運行,做到了Written Once,Run Everywhere! 避免了重復勞動。
  3. 強大:相比傳統的Web程序,可以直接訪問硬件。比如地理定位,聯系人,重力感應,文件訪問等。

PhoneGap的缺點:

  1. 運行速度慢,相對于原生呈現,PhoneGap的程序載入和UI界面的反應相對較慢,它實際上還是在展示WEB頁面,所有頁面的載入、刷新都需要一定的時間,另外由于程序是運行在內置的webkit瀏覽器上,所以速度是受webkit影響的。
  2. 內存消耗大,由于webkit的WebView不能很好釋放內存(內存釋放較慢),對于頻繁操作會導致內存占用上升,影響響應速度,甚至有可能會引起程序的崩潰。
  3. 調試不方便,目前phonegap可以在控制臺輸出簡單的JS調試日志,但是并不方便。調試js只能選擇firefox firebug調試。

PhoneGap的目標就是快速開發移動應用實現written once, run everywhere跨平臺。PhoneGap一定程度上降低了移動開發的門檻。傳統web開發人員不需要學習object-c、android java就可以開發普通的移動應用。PhoneGap并不能取代Native APP原生態應用。phonegap有它的不足之處,運行速度較慢、操作平臺資源不靈活、操作移動設備不方便,這些都依賴者PhoneGap框架本身的升 級與發展。

是否采用PhoneGap要取決于移動產品本身特性與企業對產品的要求。一般的移動web應用可以采用PhoneGap技術,但是用戶體驗就沒有原生應用好;接近于游戲的應用,經常刷新界面的應用,使用PhoneGap就不太合適了。采用何種技術,要看產品的側重點。

二、PhoneGap的運行邏輯是什么?

PhoneGap架構擁有強大的跨平臺訪問設備能力,提供了豐富的API來幫助移動應用開發者方便地獲取移動設備的信息。打開PhoneGap官方網站的API文檔,可以看到目前PhoneGap擁有如下移動設備本地API。

  • Accelerometer。加速計,也就是我們常說的重力感應功能。
  • Camera。用于訪問前置攝像頭和后置攝像頭。
  • Capture。提供了對于移動設備音頻、圖像和視頻捕獲功能的支持。
  • Compass。對于羅盤的訪問,由此可以獲取移動設備行動的方向。
  • Connection。能夠快速檢查并提供移動設備的各種網絡信息。
  • Contacts。能夠獲取移動設備通訊錄的信息。
  • Device。能夠獲取移動設備的硬件和操作系統信息。
  • Events。能夠為應用提供各種移動設備操作事件,例如暫停、離線、按下返回鍵、按下音量鍵等。
  • File。能夠訪問移動設備的本地文件系統。
  • Geolocation。能夠獲取移動設備的地理位置信息。
  • Media。提供了對于移動設備上音頻文件的錄制和回放功能。
  • Notification。提供了本地化的通知機制,包括提示、聲音和振動。
  • Storage。提供了對于SQLite嵌入式數據庫的支持。

要實現上訴功能,其實靠的是iPhone和Android平臺內置的WebView組件,它具備有兩個特性:

  • WebView組件實質是移動設備的內置瀏覽器。這個特性是Web能被打包成本地客戶端的基礎,可方便地用HTML5和CSS3頁面布局,這是移動Web技術相對于原生開發的優勢。
  • WebView提供Web和設備本地API雙向通信的能力。PhoneGap針對不同平臺的WebView做了擴展和封裝,使 WebView這個組件變成可訪問設備本地API的強大瀏覽器,所以開發人員在PhoneGap框架下可通過JavaScript訪問設備本地API。

一個成熟的PhoneGap技術客戶端運行狀況:應用運行在WebView組件上 -> 通過PhoneGap在各平臺的擴展 -> 最終訪問設備本地資源。

移動應用快速開發平臺:PhoneGap

三、參考資料

引用地址:http://www.biaodianfu.com/phonegap.html
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!