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

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

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

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

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

選擇合適的開發(fā)方法
下面介紹有助于幫助企業(yè)選擇合適開發(fā)方法的一些場景:
一、Native 開發(fā)方法的場景
現(xiàn)有的 Native 開發(fā)技能——反對 Native 開發(fā)方法的主要理由之一是,它缺少對多種平臺的支持。要求為多種移動平臺開發(fā) App 的企業(yè)需要招聘新員工,或者對內(nèi)部開發(fā)者進(jìn)行眾多 Native 語言方面的培訓(xùn)。內(nèi)部擁有這種 Native 開發(fā)技能的企業(yè)不需要大筆新的投入,就能夠充分利用這些技能。
單一移動操作系統(tǒng)——在一些情況下,企業(yè)旨在向有限的目標(biāo)群體發(fā)布移動 App——這個群體已知使用單一移動操作系統(tǒng)。比如說,考慮這種場景:向員工發(fā)放黑莓設(shè)備的企業(yè)分發(fā)內(nèi)部 App。在這種情況下,支持多種平臺也許不是優(yōu)先事項:由于開發(fā)單一的 Native App 只需要一套有限的技能和工具,所以這種方法很有意義。
Native 功能——有些 App 是圍繞某一項功能開發(fā)的。就拿 Skype 來說,VOIP 和訪問用戶的聯(lián)系人信息是 App 的兩大關(guān)鍵要素;考慮到現(xiàn)有的技術(shù),只能采用 Native 方法來開發(fā)。對這類 App 而言,Web 語言根本不夠完善,根本無力獲得所需的功能。
豐富用戶界面的需求——有些游戲類 App 需要提供實時響應(yīng)的豐富用戶界面,對這類 App 而言,Web 技術(shù)還無法提供足夠有效的解決方案。對有這類需求的 App 而言,開發(fā)者采用 Native 開發(fā)方法仍然比較好。
二、Web 開發(fā)方法的場景
直接分發(fā)——有些企業(yè)更喜歡以一種內(nèi)部控制的方式來分發(fā) App,他們不喜歡受制于有時很漫長、很不確定的審批過程。這種情況下,使用純粹的 Web 語言可以完全規(guī)開應(yīng)用商店的審批過程,讓企業(yè)可以完全控制 App 的定期更新和分發(fā)。
試點 App——比較 Native App 與 Web App 開發(fā)所需的成本和上市時間時,使用 Web 方法開發(fā)試點應(yīng)用程序是一種引人入勝的、經(jīng)濟(jì)高效的方法。一旦概念得到了證明,企業(yè)可以決定從頭開始創(chuàng)建新的 App,或者充分利用 Hybrid App 中的部分現(xiàn)有代碼。
可視性——除了前面提到的分發(fā)外,構(gòu)建 Web App 的另一個優(yōu)點是搜索引擎結(jié)果具有可視性;在許多情況下,搜索引擎結(jié)果將 App 展示給比僅僅通過應(yīng)用商店獲得的群體更龐大的群體。
三、Hybrid 開發(fā)方法的場景
折衷考慮——如果企業(yè)使用 Hybrid 開發(fā)方法,就能集兩者之所長。一方面,Native 讓開發(fā)者可以充分利用現(xiàn)代移動設(shè)備所提供的全部不同的特性和功能。另一方面,使用 Web 語言編寫的所有代碼都可以在不同的移動平臺之間共享,使得開發(fā)和日常維護(hù)過程變得集中式、更簡短、更經(jīng)濟(jì)高效。
內(nèi)部技能——Web 開發(fā)技能十分常見,許多企業(yè)都擁有這類技能。如果選擇 Hybrid 開發(fā)方法,在合適解決方案的支持下,Web 開發(fā)者只要僅僅運用 HTML、CSS 和 JavaScript 等 Web 技能,就能構(gòu)建 App,同時提供 Native 用戶體驗。
考慮未來——HTML5的可用性和功能都在迅速改進(jìn)。許多分析師預(yù)測,它可能會成為開發(fā)前端 App 的默認(rèn)技術(shù)。如果用 HTML 來編寫 App 的大部分代碼,并且只有在需要時才使用 Native 代碼,公司就能確保他們今天的投入在明天不會變得過時,因為 HTML 功能變得更豐富,可以滿足現(xiàn)代企業(yè)一系列更廣泛的移動要求。
出于上述情況的考慮,我們也是在13年確定引入Hybrid開發(fā)方法,并經(jīng)過近一年的挑選和實際開發(fā)體驗,最終選擇了北京正益無線開發(fā)的appcan開發(fā)框架。先擇appcan開發(fā)框架的理由主要有:1、簡單易用:公司原有網(wǎng)站開發(fā)人員簡單培訓(xùn)后,就可以直接上手進(jìn)行移動應(yīng)用的開發(fā);2、大幅降低成本:native開發(fā)人員的薪資水平與web開發(fā)人員的薪資水平差距還是很大的,web開發(fā)人員大概只有native的一半,并且可以同時開發(fā)多個平臺應(yīng)用,人員成本至少降低60%。3、支持原生插件自主擴(kuò)展,需要什么功能擴(kuò)展什么功能,一次擴(kuò)展多次使用。4、支付支持:相比國外中間件更具本土優(yōu)勢,Not Paypal but 'ZhiFuBao' 5、跨平臺:同時支持iOS、Android、Symbian、Windows Phone 6、本地打包:無需配置環(huán)境,無需編譯,本地一鍵打包7、統(tǒng)計分析:應(yīng)用分平臺安裝數(shù)統(tǒng)計,應(yīng)用啟動和使用情況統(tǒng)計8、開放平臺:更具本土優(yōu)勢,已經(jīng)對接Sina、QQ、百度等開放平臺 9、正益無線為開發(fā)者提供了完善的解決方案及技術(shù)支持
具體的情況,大家上appcan的官網(wǎng)了解吧!網(wǎng)址:www.appcan.cn
網(wǎng)頁名稱:混合型應(yīng)用開發(fā)全接觸
分享鏈接:http://jinyejixie.com/article48/ppjhhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、動態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、域名注冊、標(biāo)簽優(yōu)化、Google
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)