中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

混合型應用開發全接觸

發布時間:2020-06-21 10:03:05 來源:網絡 閱讀:378 作者:范_佩西 欄目:移動開發

 混合型應用開發全接觸

 
許多企業向實施移動戰略邁出了頭幾步,它們正面臨將影響移動項目成效的一個重要決定。為移動 App 選擇一種開發方法:Native、Web 還是 Hybrid 的過程牽涉許多因素,比如預算、項目時間表、目標群體和 App 功能,等等。每種方法都有天生的優點和局限性,找到最適合本企業要求的一種開發方法可能是項艱巨的任務。
 
我們公司從11年開始一直在做移動應用軟件開發,累積到現在也有二十多人的團隊。但在正常運營過程中發現的很多的問題,比如:開發成本過高、開發效率太低等。從12年下半年開始接觸到混合型應用開發這種模式,一直在關注這塊的發展情況,也了解了國內國外的幾家著名的框架,主要有:國外的phoneGAP、國內的appcan、rexsee、追信等。比較值得推薦的也是我們目前引進的開發框架:APPCAN。
 
下面先簡單介紹一下各種開發方法:
 
一、Native App
  Native App 含有二進制可執行文件,直接下載到設備上,并存儲在本地。安裝過程由用戶啟動;在一些情況下,由企業的 IT 部門啟動。下載 Native App 的最常見方法是訪問應用程序商店,如蘋果的應用程序商店、安卓的應用程序市場或黑莓的應用程序世界;但是還有其他方法,有時由移動開發商來提供。
 
  一旦應用程序安裝到了設備上,用戶可以如同啟動設備提供的其他任何服務那樣啟動應用程序。一旦完成初始化,Native App 就直接與移動操作系統進行聯系,不用通過任何中介或容器。Native App 可隨意訪問由操作系統開發商提供的所有應用編程接口(API);在許多情況下,NativeApp 有著某種特定的移動操作系統所常見的獨特外觀和感覺。
 
  想創建 Native App,開發者必須編寫源代碼(采用人類可讀的形式),并建立額外資源,比如鏡像、音頻段和針對特定操作系統的各種聲明文件。使用由操作系統開發商提供的工具,對源代碼進行編譯(有時還要進行鏈接),目的是為了建立一個二進制形式的可執行文件,它可以連同其余資源封裝起來,并隨時可供分發。
 
  這些工具以及其他實用程序和文件通常名為移動操作系統的軟件開發工具包(SDK)。雖然不同操作系統上進行的開發過程常常很相似,但是 SDK 視特定的平臺而定,每一種移動操作系統都隨帶各自的獨特工具。下面這張表顯示了與四大移動操作系統有關的不同工具、語言、格式和分發渠道。

混合型應用開發全接觸

  平臺之間的這些區別導致了 Native 開發方法的最重大缺點之一:為一種移動平臺編寫的代碼無法在另一種平臺上使用;這樣一來,為多種操作系統開發和維護 Native App 成了一項時間很長、成本很高的任務。
 
  那么,為什么盡管存在成本高昂的這個缺點,許多公司還是選擇 Native 開發這條路呢?為了回答這個問題,我們就要更清楚地了解 API 的角色。
 
  應用編程接口(API)
  一旦 Native App 安裝到了移動設備上,并由用戶啟動,它就能借助操作系統公開的專有 API 調用,與移動操作系統進行聯系。這些 API 可以分為兩大類:低級 API 和高級 API。
 
  低級 API
  正是借助這些低級 API 調用,應用程序能直接與觸摸屏或鍵盤進行聯系、渲染圖形、連接至網絡、處理從麥克風收到的音頻、通過揚聲器或麥克風播放聲音,或者接收來自攝像頭的圖像或視頻。應用程序能訪問全球定位系統(GPS)、接收方位信息,當然還可以讀寫固態硬盤上的文件,或者訪問現有和將來會有的其他任何硬件元件。
 
  高級 API
  除了提供我們剛才提到的低級硬件訪問服務外,移動操作系統還提供對個人移動體驗來說很重要的較高級服務。這類服務包括瀏覽 Web,管理日歷、聯系人資料和相冊等過程,當然還包括打電話或收發文本消息的功能。
 
  雖然大多數移動操作系統包含一組內置的應用程序可以執行這些服務,但是還讓 Native App 可以訪問一組公開的高級 API,讓它們可以訪問上述許多重要的服務。其他 API 讓可下載式應用程序可以訪問操作系統開發商提供的各種基于云的服務,比如推送通知(Push Notifications)或應用程序內購買(In-App Purchase)等服務。
 
  GUI 工具包
  操作系統提供的另一組重要的 API 是 GUI 工具包。每一種移動操作系統都隨帶各自的一組用戶界面組件,比如按鈕、輸入區、滑塊、菜單、菜單欄、對話框及其他。可以使用這些組件的應用程序繼承了該特定移動操作系統的外觀和感覺,通常會帶來非常流暢的用戶體驗。
 
  值得一提的是,不同的移動平臺帶有一系列獨特的用戶界面組件。因而,為了可在多種操作系統上運行而設計的應用程序需要設計者熟悉每一種操作系統不同的用戶界面組件。
 
  雖然 API 視特定的操作系統而定,并且給開發諸多 Native App 的工作大大增添了復雜性和成本,但是這些元素只是創建豐富移動應用程序的手段而已,這些應用程序可以充分利用現代移動設備所提供的全部功能。
 
  二、移動 Web App
  現代移動設備包含功能強大的瀏覽器,這些瀏覽器支持許多新的 HTML5 功能、CSS3和高級 JavaScript。由于最近在這方面取得的進展,HTML5預示著這項技術將從一種“頁面定義語言”,轉變成一種功能強大的開發標準,用于開發豐富的、基于瀏覽器的應用程序。
 
  表明 HTML5 大有潛力的幾個例子包括:高級的用戶界面組件、可以訪問豐富媒體類型、地理位置服務和離線功能。使用這些特性和處于開發中的其他更多特性,開發者就能僅僅使用 Web 技術,開發出高級應用程序。
 
  不妨先來區別一下兩種極端的 Web App 開發方法。我們都熟悉移動瀏覽和針對移動設備優化的網站。這些網站能夠識別何時被智能手機訪問,因而呈現為了在小尺寸屏幕上提供舒適的“觸摸體驗”設計的 HTML 網頁。但是有些公司更進一步,建立了移動網站,以改善用戶體驗。這種移動網站看起來就像 Native App,可通過快捷方式來啟動,這與啟動 Native App 的方式沒什么不同。

混合型應用開發全接觸

 
  這兩個極端之間存在一系列廣泛的可能性,大多數網站實施了各自的 Hybrid 特性。
 
  移動 Web App 是一種很有希望的趨勢。為了緊緊抓住這個趨勢,幫助開發者構建客戶端用戶界面,已開發出越來越多的 JavaScript 工具包,比如 Sencha Touch 和 jQuery Mobile,它們創建的用戶界面在外觀和感覺上與 Native App 大同小異。兩者都完全在移動設備的瀏覽器里面執行,充分利用了現代移動瀏覽器所提供的最新 JavaScript、CSS 和 HTML5 特性。
 
  Web App 最突出的優勢之一是,它支持多種平臺,而且開發成本低。大多數移動開發商利用了瀏覽器中的同一種渲染引擎:WebKit——主要由谷歌和蘋果領導的這個開源項目提供了如今最全面的 HTML5 實現機制。由于應用程序的代碼用與 WebKit 兼容的標準 Web 語言編寫而成,所以一個應用程序在諸多不同的設備和操作系統上提供了統一的體驗,因而使得它在默認情況下支持多種平臺。但是這些優勢并非沒有代價。盡管移動領域的 Web 技術大有潛力和希望,但它們仍存在相當大的局限性。為了解這些局限性,我們就要解釋 Web App 是如何運行的。
 
  不像 Native App 是獨立的可執行文件,直接與操作系統進行聯系,Web App 則在瀏覽器里面運行。而瀏覽器本身是可直接訪問操作系統 API 的一種 Native App,但是只有數量有限的這些 API 向瀏覽器里面運行的 Web App 公開。雖然 Native App 可以完全訪問設備,但是許多特性只是部分可供 Web App 使用,或者根本不可使用。雖然預計這種情況在將來會隨著 HTML 的改進而改變,但是如今的移動用戶無法使用這些功能。
 
  三、Hybrid App
  Hybrid開發方法結合了 Native 開發和 Web 技術。借助這種方法,開發者就能使用跨平臺 Web 技術,開發應用程序的大部分代碼,又可以在需要時直接訪問 Native API。
  App 的 Native 代碼部分使用操作系統的 API 來創建嵌入式 HTML 渲染引擎,該引擎在瀏覽器和設備的 API 之間充當了橋梁。這座橋梁讓 Hybrid App 得以充分利用現代設備所提供的全部特性。
 
  App 開發者可以選擇編寫自己的橋梁,或者充分利用現成的解決方案,比如 PhoneGap——這種開源庫為有選擇的設備功能提供了在諸操作系統上保持一致的統一 JavaScript 接口。
 
  App 的 Native 代碼部分可以獨立開發,但是市場上的一些解決方案把這種類型的 Native 容器作為其產品的一部分來提供,因而讓開發者有辦法只要使用 Web 語言,就可以構建利用設備所有特性的高級 App。在一些情況下,解決方案讓開發者可以充分利用現已掌握的任何 Native 開發技能,根據企業的獨特要求來定制 Native 容器。
 
  App 的 Web 部分可能是駐留在服務器上的網頁,也可能是一組 HTML、JavaScript、CSS 和媒體文件,封裝到 App 代碼中,存儲在設備本地。這兩種方法都有其優勢和局限性。放置在服務器上的 HTML 代碼讓開發者不必經歷提交和批準過程——有些 App 商店要求這個過程,就可以對 App 進行小幅更新。遺憾的是,這個方法擯棄了任何離線可用性,因為設備與網絡沒有連接時,無法訪問設備。另一方面,把 Web 代碼封裝到 App 里面可以提高性能和可訪問性,但是不允許遠程更新。如果結合這兩種開發方法,也許可以集兩者之所長。這種系統采用的架構可以把 HTML 資源放置在 Web 服務器上,以獲得靈活性,但是又把它們本地緩存在移動設備上,以獲得高性能。
 
  比較不同的開發方法
  所以為了總結,不妨看一下這三種開發方法各自相比怎么樣。
 

混合型應用開發全接觸

 
  Native 開發方法在性能和設備訪問方面很出色,但成本和更新方面有缺點。Web 方法更新起來簡單得多,成本較低,也更容易,但是目前功能有限,也無法獲得使用 Native API 調用所能獲得的那種出色的用戶體驗。Hybrid 開發方法提供了折中方案:在許多情況下,它集兩者之所長,如果開發者面向多種操作系統更是如此。

混合型應用開發全接觸

 
  從上面這張表可以推斷出,沒有哪一種開發方法總是提供所有的優點。選擇一種合適的方法取決于企業的具體要求,可能取決于諸多因素,比如預算、時間表、內部資源、目標市場、所需的應用程序功能、IT 基礎設施及其他許多方面。但是有一點很清楚:如今的大多數公司顯然在兩個方面之間作一取舍:一方面是用戶體驗和應用程序功能,另一方面是開發成本和產品上市時間。問題就變成了選擇一種合適的開發方法,能兼顧企業的要求和其在預算和產品上市時間方面的限制。
 
 

混合型應用開發全接觸

 
  選擇合適的開發方法
 
  下面介紹有助于幫助企業選擇合適開發方法的一些場景:
 
  一、Native 開發方法的場景
  現有的 Native 開發技能——反對 Native 開發方法的主要理由之一是,它缺少對多種平臺的支持。要求為多種移動平臺開發 App 的企業需要招聘新員工,或者對內部開發者進行眾多 Native 語言方面的培訓。內部擁有這種 Native 開發技能的企業不需要大筆新的投入,就能夠充分利用這些技能。
  單一移動操作系統——在一些情況下,企業旨在向有限的目標群體發布移動 App——這個群體已知使用單一移動操作系統。比如說,考慮這種場景:向員工發放黑莓設備的企業分發內部 App。在這種情況下,支持多種平臺也許不是優先事項:由于開發單一的 Native App 只需要一套有限的技能和工具,所以這種方法很有意義。
  Native 功能——有些 App 是圍繞某一項功能開發的。就拿 Skype 來說,VOIP 和訪問用戶的聯系人信息是 App 的兩大關鍵要素;考慮到現有的技術,只能采用 Native 方法來開發。對這類 App 而言,Web 語言根本不夠完善,根本無力獲得所需的功能。
  豐富用戶界面的需求——有些游戲類 App 需要提供實時響應的豐富用戶界面,對這類 App 而言,Web 技術還無法提供足夠有效的解決方案。對有這類需求的 App 而言,開發者采用 Native 開發方法仍然比較好。
  二、Web 開發方法的場景
  直接分發——有些企業更喜歡以一種內部控制的方式來分發 App,他們不喜歡受制于有時很漫長、很不確定的審批過程。這種情況下,使用純粹的 Web 語言可以完全規開應用商店的審批過程,讓企業可以完全控制 App 的定期更新和分發。
  試點 App——比較 Native App 與 Web App 開發所需的成本和上市時間時,使用 Web 方法開發試點應用程序是一種引人入勝的、經濟高效的方法。一旦概念得到了證明,企業可以決定從頭開始創建新的 App,或者充分利用 Hybrid App 中的部分現有代碼。
  可視性——除了前面提到的分發外,構建 Web App 的另一個優點是搜索引擎結果具有可視性;在許多情況下,搜索引擎結果將 App 展示給比僅僅通過應用商店獲得的群體更龐大的群體。
  三、Hybrid 開發方法的場景
  折衷考慮——如果企業使用 Hybrid 開發方法,就能集兩者之所長。一方面,Native 讓開發者可以充分利用現代移動設備所提供的全部不同的特性和功能。另一方面,使用 Web 語言編寫的所有代碼都可以在不同的移動平臺之間共享,使得開發和日常維護過程變得集中式、更簡短、更經濟高效。
  內部技能——Web 開發技能十分常見,許多企業都擁有這類技能。如果選擇 Hybrid 開發方法,在合適解決方案的支持下,Web 開發者只要僅僅運用 HTML、CSS 和 JavaScript 等 Web 技能,就能構建 App,同時提供 Native 用戶體驗。
考慮未來——HTML5的可用性和功能都在迅速改進。許多分析師預測,它可能會成為開發前端 App 的默認技術。如果用 HTML 來編寫 App 的大部分代碼,并且只有在需要時才使用 Native 代碼,公司就能確保他們今天的投入在明天不會變得過時,因為 HTML 功能變得更豐富,可以滿足現代企業一系列更廣泛的移動要求。
 
出于上述情況的考慮,我們也是在13年確定引入Hybrid開發方法,并經過近一年的挑選和實際開發體驗,最終選擇了北京正益無線開發的appcan開發框架。先擇appcan開發框架的理由主要有:1、簡單易用:公司原有網站開發人員簡單培訓后,就可以直接上手進行移動應用的開發;2、大幅降低成本:native開發人員的薪資水平與web開發人員的薪資水平差距還是很大的,web開發人員大概只有native的一半,并且可以同時開發多個平臺應用,人員成本至少降低60%。3、支持原生插件自主擴展,需要什么功能擴展什么功能,一次擴展多次使用。4、支付支持:相比國外中間件更具本土優勢,Not Paypal but 'ZhiFuBao'  5、跨平臺:同時支持iOS、Android、Symbian、Windows Phone 6、本地打包:無需配置環境,無需編譯,本地一鍵打包7、統計分析:應用分平臺安裝數統計,應用啟動和使用情況統計8、開放平臺:更具本土優勢,已經對接Sina、QQ、百度等開放平臺 9、正益無線為開發者提供了完善的解決方案及技術支持
具體的情況,大家上appcan的官網了解吧!網址:www.appcan.cn
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

远安县| 鄯善县| 南安市| 苏尼特右旗| 佛冈县| 吉水县| 南投县| 公安县| 海原县| 桓台县| 邻水| 河津市| 岑溪市| 河北省| 龙岩市| 盐边县| 察隅县| 白银市| 五常市| 沁源县| 柳河县| 张家口市| 灯塔市| 嵊州市| 手机| 普兰县| 阳春市| 曲阜市| 如皋市| 新河县| 华阴市| 涟水县| 兰州市| 太和县| 青铜峡市| 普宁市| 曲周县| 涟源市| 墨玉县| 扎鲁特旗| 那曲县|