自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【白皮書】HTML5、Native或Hybrid App開發(fā)全接觸

譯文
移動開發(fā) Android
許多企業(yè)向?qū)嵤┮苿討?zhàn)略邁出了頭幾步,它們正面臨將影響移動項(xiàng)目成效的一個重要決定。為移動App選擇一種開發(fā)方法:Native、Web還是Hybrid的過程牽涉許多因素,比如預(yù)算、項(xiàng)目時間表、目標(biāo)群體和App功能,等等。每種方法都有天生的優(yōu)點(diǎn)和局限性,找到最適合本企業(yè)要求的一種開發(fā)方法可能是項(xiàng)艱巨的任務(wù)。

【51CTO獨(dú)家譯文】本白皮書的目的不是確定哪一種是***的開發(fā)方法,因?yàn)椴淮嬖?**的開發(fā)方法,而是列出每一種方法的優(yōu)缺點(diǎn),并描述最適合某一種開發(fā)方法的不同場景或企業(yè)需求。英文白皮書可以在微盤上下載:http://vdisk.weibo.com/s/6ru7u/1338949809

[[78303]]

以下為全部譯文:

開發(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)所常見的獨(dú)特外觀和感覺。

想創(chuàng)建Native App,開發(fā)者必須編寫源代碼(采用人類可讀的形式),并建立額外資源,比如鏡像、音頻段和針對特定操作系統(tǒng)的各種聲明文件。使用由操作系統(tǒng)開發(fā)商提供的工具,對源代碼進(jìn)行編譯(有時還要進(jìn)行鏈接),目的是為了建立一個二進(jìn)制形式的可執(zhí)行文件,它可以連同其余資源封裝起來,并隨時可供分發(fā)。

這些工具以及其他實(shí)用程序和文件通常名為移動操作系統(tǒng)的軟件開發(fā)工具包(SDK)。雖然不同操作系統(tǒng)上進(jìn)行的開發(fā)過程常常很相似,但是SDK視特定的平臺而定,每一種移動操作系統(tǒng)都隨帶各自的獨(dú)特工具。下面這張表顯示了與四大移動操作系統(tǒng)有關(guān)的不同工具、語言、格式和分發(fā)渠道。

平臺之間的這些區(qū)別導(dǎo)致了Native開發(fā)方法的最重大缺點(diǎn)之一:為一種移動平臺編寫的代碼無法在另一種平臺上使用;這樣一來,為多種操作系統(tǒng)開發(fā)和維護(hù)Native App成了一項(xiàng)時間很長、成本很高的任務(wù)。

那么,為什么盡管存在成本高昂的這個缺點(diǎn),許多公司還是選擇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)收到的音頻、通過揚(yáng)聲器或麥克風(fēng)播放聲音,或者接收來自攝像頭的圖像或視頻。應(yīng)用程序能訪問全球定位系統(tǒng)(GPS)、接收方位信息,當(dāng)然還可以讀寫固態(tài)硬盤上的文件,或者訪問現(xiàn)有和將來會有的其他任何硬件元件。

高級API

除了提供我們剛才提到的低級硬件訪問服務(wù)外,移動操作系統(tǒng)還提供對個人移動體驗(yàn)來說很重要的較高級服務(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)的外觀和感覺,通常會帶來非常流暢的用戶體驗(yàn)。

值得一提的是,不同的移動平臺帶有一系列獨(dú)特的用戶界面組件。因而,為了可在多種操作系統(tǒng)上運(yùn)行而設(shè)計的應(yīng)用程序需要設(shè)計者熟悉每一種操作系統(tǒng)不同的用戶界面組件。

雖然API視特定的操作系統(tǒng)而定,并且給開發(fā)諸多Native App的工作大大增添了復(fù)雜性和成本,但是這些元素只是創(chuàng)建豐富移動應(yīng)用程序的手段而已,這些應(yīng)用程序可以充分利用現(xiàn)代移動設(shè)備所提供的全部功能。#p#

二、移動Web App

現(xiàn)代移動設(shè)備包含功能強(qiáng)大的瀏覽器,這些瀏覽器支持許多新的HTML5功能、CSS3和高級JavaScript。由于最近在這方面取得的進(jìn)展,HTML5預(yù)示著這項(xiàng)技術(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)為了在小尺寸屏幕上提供舒適的“觸摸體驗(yàn)”設(shè)計的HTML網(wǎng)頁。但是有些公司更進(jìn)一步,建立了移動網(wǎng)站,以改善用戶體驗(yàn)。這種移動網(wǎng)站看起來就像Native App,可通過快捷方式來啟動,這與啟動Native App的方式?jīng)]什么不同。

特性

純粹的移動Web App

純粹的移動網(wǎng)站

工具和知識

完全用HTML、CSS和JavaScript來編寫

完全用HTML、CSS和JavaScript來編寫

執(zhí)行

“已安裝”快捷方式,啟動方式如同Native App

可通過URL導(dǎo)航至網(wǎng)站來訪問

用戶體驗(yàn)

為觸摸操作優(yōu)化的、交互式的用戶體驗(yàn)

顯示靜態(tài)數(shù)據(jù)的頁面之間的導(dǎo)航用戶界面

性能

用戶界面的邏輯駐留在本地,使得應(yīng)用程序反應(yīng)迅即、可離線訪問

所有代碼從服務(wù)器端執(zhí)行,導(dǎo)致了性能與網(wǎng)絡(luò)有關(guān)

這兩個極端之間存在一系列廣泛的可能性,大多數(shù)網(wǎng)站實(shí)施了各自的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)的這個開源項(xiàng)目提供了如今最全面的HTML5實(shí)現(xiàn)機(jī)制。由于應(yīng)用程序的代碼用與WebKit兼容的標(biāo)準(zhǔn)Web語言編寫而成,所以一個應(yīng)用程序在諸多不同的設(shè)備和操作系統(tǒng)上提供了統(tǒng)一的體驗(yàn),因而使得它在默認(rèn)情況下支持多種平臺。但是這些優(yōu)勢并非沒有代價。盡管移動領(lǐng)域的Web技術(shù)大有潛力和希望,但它們?nèi)源嬖谙喈?dāng)大的局限性。為了解這些局限性,我們就要解釋W(xué)eb App是如何運(yùn)行的。

不像Native App是獨(dú)立的可執(zhí)行文件,直接與操作系統(tǒng)進(jìn)行聯(lián)系,Web App則在瀏覽器里面運(yùn)行。而瀏覽器本身是可直接訪問操作系統(tǒng)API的一種Native App,但是只有數(shù)量有限的這些API向?yàn)g覽器里面運(yùn)行的Web App公開。雖然Native App可以完全訪問設(shè)備,但是許多特性只是部分可供Web App使用,或者根本不可使用。雖然預(yù)計這種情況在將來會隨著HTML的改進(jìn)而改變,但是如今的移動用戶無法使用這些功能。#p#

三、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代碼部分可以獨(dú)立開發(fā),但是市場上的一些解決方案把這種類型的Native容器作為其產(chǎn)品的一部分來提供,因而讓開發(fā)者有辦法只要使用Web語言,就可以構(gòu)建利用設(shè)備所有特性的高級App。在一些情況下,解決方案讓開發(fā)者可以充分利用現(xiàn)已掌握的任何Native開發(fā)技能,根據(jù)企業(yè)的獨(dú)特要求來定制Native容器。

App的Web部分可能是駐留在服務(wù)器上的網(wǎng)頁,也可能是一組HTML、JavaScript、CSS和媒體文件,封裝到App代碼中,存儲在設(shè)備本地。這兩種方法都有其優(yōu)勢和局限性。放置在服務(wù)器上的HTML代碼讓開發(fā)者不必經(jīng)歷提交和批準(zhǔn)過程——有些App商店要求這個過程,就可以對App進(jìn)行小幅更新。遺憾的是,這個方法擯棄了任何離線可用性,因?yàn)樵O(shè)備與網(wǎng)絡(luò)沒有連接時,無法訪問設(shè)備。另一方面,把Web代碼封裝到App里面可以提高性能和可訪問性,但是不允許遠(yuǎn)程更新。如果結(jié)合這兩種開發(fā)方法,也許可以集兩者之所長。這種系統(tǒng)采用的架構(gòu)可以把HTML資源放置在Web服務(wù)器上,以獲得靈活性,但是又把它們本地緩存在移動設(shè)備上,以獲得高性能。

比較不同的開發(fā)方法

所以為了總結(jié),不妨看一下這三種開發(fā)方法各自相比怎么樣。

比較不同的開發(fā)方法

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

特性

Native App

Hybrid App

Web App

開發(fā)語言

只用Native開發(fā)語言

Native和Web開發(fā)語言或只用Web開發(fā)語言

只用Web開發(fā)語言

代碼移植性和優(yōu)化

訪問針對特定設(shè)備的特性

充分利用現(xiàn)有知識

高級圖形

升級靈活性

總通過應(yīng)用程序商店來升級

常通過應(yīng)用程序商店來升級

安裝體驗(yàn)

從應(yīng)用程序商店來安裝

從應(yīng)用程序商店來安裝

通過移動瀏覽器來安裝

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

選擇合適的開發(fā)方法

選擇合適的開發(fā)方法#p#

下面介紹有助于幫助企業(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)先事項(xiàng):由于開發(fā)單一的Native App只需要一套有限的技能和工具,所以這種方法很有意義。

Native功能——有些App是圍繞某一項(xiàng)功能開發(fā)的。就拿Skype來說,VOIP和訪問用戶的聯(lián)系人信息是App的兩大關(guān)鍵要素;考慮到現(xiàn)有的技術(shù),只能采用Native方法來開發(fā)。對這類App而言,Web語言根本不夠完善,根本無力獲得所需的功能。

豐富用戶界面的需求——有些游戲類App需要提供實(shí)時響應(yīng)的豐富用戶界面,對這類App而言,Web技術(shù)還無法提供足夠有效的解決方案。對有這類需求的App而言,開發(fā)者采用Native開發(fā)方法仍然比較好。

二、Web開發(fā)方法的場景

直接分發(fā)——有些企業(yè)更喜歡以一種內(nèi)部控制的方式來分發(fā)App,他們不喜歡受制于有時很漫長、很不確定的審批過程。這種情況下,使用純粹的Web語言可以完全規(guī)開應(yīng)用商店的審批過程,讓企業(yè)可以完全控制App的定期更新和分發(fā)。

試點(diǎn)App——比較Native App與Web App開發(fā)所需的成本和上市時間時,使用Web方法開發(fā)試點(diǎn)應(yīng)用程序是一種引人入勝的、經(jīng)濟(jì)高效的方法。一旦概念得到了證明,企業(yè)可以決定從頭開始創(chuàng)建新的App,或者充分利用Hybrid App中的部分現(xiàn)有代碼。

可視性——除了前面提到的分發(fā)外,構(gòu)建Web App的另一個優(yōu)點(diǎn)是搜索引擎結(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ā)者只要僅僅運(yùn)用HTML、CSS和JavaScript等Web技能,就能構(gòu)建App,同時提供Native用戶體驗(yàn)。

考慮未來——HTML5的可用性和功能都在迅速改進(jìn)。許多分析師預(yù)測,它可能會成為開發(fā)前端App的默認(rèn)技術(shù)。如果用HTML來編寫App的大部分代碼,并且只有在需要時才使用Native代碼,公司就能確保他們今天的投入在明天不會變得過時,因?yàn)镠TML功能變得更豐富,可以滿足現(xiàn)代企業(yè)一系列更廣泛的移動要求。

總結(jié)

由于移動App繼續(xù)在商業(yè)界扮演核心角色,全球各地的企業(yè)為越來越多的關(guān)鍵任務(wù)服務(wù)賦予移動特性。許多公司正在力求找到***的開發(fā)方法來實(shí)現(xiàn)目標(biāo),但是許多公司很快認(rèn)識到:每一種開發(fā)方法有天生的局限性,沒有哪一種方法能夠滿足現(xiàn)代移動企業(yè)的所有要求、應(yīng)對復(fù)雜情況。

正如本白皮書試圖表明的那樣,答案不在于使用哪一種開發(fā)方法,而在于使用靈活的解決方案;這種解決方案能利用各種方法提供的優(yōu)點(diǎn),不僅支持首款移動App的開發(fā),還支持將來所有的App,不管他們采用哪種開發(fā)方法。

但是Hybrid、Native和Web之間的選擇不是唯一的選擇,盡管無疑是重大的選擇。制定移動戰(zhàn)略的公司還必須考慮這個市場的未來:

  • 移動設(shè)備和技術(shù)的進(jìn)一步分散,這反過來會繼續(xù)增加與移動App開發(fā)、集成和日常管理有關(guān)的總體成本和復(fù)雜性。
  • 消費(fèi)者和企業(yè)內(nèi)部加快采用移動技術(shù),從而提高了安全性、擴(kuò)展性和日??刂频确矫娴男枨螅?/li>
  • 新的設(shè)備特性和補(bǔ)充技術(shù)(如近場通信、地理位置、增強(qiáng)現(xiàn)實(shí)、社交網(wǎng)絡(luò)及其他技術(shù))無疑會帶來移動應(yīng)用程序的新類型和新用例。
  • 新的App分發(fā)渠道(包括公共和私有渠道)讓企業(yè)很容易把應(yīng)用程序交到用戶手上,迅速部署更新版、管理整批App,不需要經(jīng)歷漫長的提交和審批過程。

如果考慮到所有這些方方面面,公司必須選擇這樣一種解決方案:不僅足夠靈活,可以支持各種類型的App,還能支持將App安全而靈活地集成到IT基礎(chǔ)設(shè)施中,并且讓公司可以通過一個集中式界面來監(jiān)測和控制整批App。

【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請注明原文出處、作者及51CTO譯者!】

責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2012-06-29 09:54:53

HTML5

2012-05-28 14:13:26

HTML5Web AppNative App

2013-10-09 09:10:28

移動應(yīng)用開發(fā)NativeHybrid

2014-09-10 11:02:15

移動應(yīng)用App監(jiān)測性能測試

2012-05-30 09:22:56

Hybrid App助HTML5JavaScript

2011-12-14 18:14:25

SAP

2013-05-29 13:28:06

移動開發(fā)企業(yè)級應(yīng)用移動中間件

2014-03-24 11:17:53

Hybrid App混合應(yīng)用

2023-04-26 12:36:20

Thoughtwor數(shù)據(jù)工程

2014-12-18 10:29:22

開放平臺白皮書App運(yùn)營

2020-09-25 19:03:17

Omdia5G運(yùn)營商

2013-12-16 15:07:59

NativeHybrid開發(fā)移動

2014-07-28 14:07:05

Google移動設(shè)計網(wǎng)頁

2021-06-08 14:53:13

多云多云環(huán)境云平臺

2018-10-15 14:57:14

華為

2012-07-02 09:21:23

2013-11-01 10:26:02

SAP

2010-08-20 09:37:10

2011-08-02 15:19:28

2013-12-26 09:14:49

TIA無線頻譜共享
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號