蔣健健
摘要:本文旨在對當下流行的三種移動端應用開發模式Native APP,Web APP和Hybrid APP進行一下總結,分析各種模式利弊。在全面介紹三種開發模式的配置工作的同時,本文還著重討論最新的Hybrid APP模式的概念,并以安卓系統模擬器作為實驗平臺,對三種模式的性能進行測試。最后我們將會展望一下未來html5對我們移動應用開發的影響,并總結我們當下三種開發模式各自擅長的開發領域。
關鍵詞:Native APP;Web APP;Hybrid APP
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2017)02-0202-02
從07年喬布斯正式發布第一代iphone開始,我們的世界就正式邁入了移動互聯網時代,當時的幾大功能機巨頭(諾基亞、摩托羅拉)怎么也不會想到智能機會在10年后進入千家萬戶成為人手一只的必備工具。現在的人們已經越來越依賴于智能機帶給他們的便捷功能,他們可以足不出戶看遍天下、買遍天下,甚至手機在越來越多的場合下成為了身份證一樣的存在。智能機規模的急劇膨脹,對于程序開發者來說機遇也是空前的,移動APP開發已經是當下極為熱門的IT行業崗位,而且崗位的工資也隨之水漲船高,根據調查截至16年底,手機app開發者的薪水平均值為5000元每個月。為了提升我們開發者自身技術水平,選擇適合自己工作任務的開發模式是極為重要的,而當下主流的移動app開發模式有三種,分別為:Native APP、Web APP和Hybrid APP。
1 三種移動APP開發模式
1.1 Native APP
Native APP開發模式算是最傳統、最經典的開發模式,此模式建立于手機操作系統(Android/IOS)之上進行開發,幾乎完全依賴于本地硬件或者OS的基礎功能來實現APP的各項需求,所以我們又將此模式稱為本地開發模式。這種模式充分利用了用戶本身手機的本地資源,這對于APP服務提供方來說可以極大的減輕他們的服務流量壓力,同時此模式下的穩定性和性能效益上都極為優秀。但是優點與缺點并存,完全依賴于本地硬件進行開發的APP在后續升級以及硬件的兼容性上都極為的受限,很容易使得一部分機型用戶遇到各種兼容性問題,不利于APP的推廣。
1.2 Web APP
Web APP從本質上來講,其實就是一個針對特殊需求進行了針對性優化后的web瀏覽器,這種app的兼容性可以說是最強的,因為其對硬件上沒有任何個性化的需求,只有帶有瀏覽器功能api的手機都可以安裝并使用此種app,并且由于我們將所有功能都放在了我們的web站點上,所以app本身的開發難度也是低的可怕。但是此種app從本質上來說就是網絡瀏覽器,所以此種app對于網絡本身性能的依賴極大,一旦用戶因為其他客觀原因造成其網絡性能低下,那么app就會處于低效甚至是不可用狀態,同時因為不依賴于本地硬件和操作系統,所以也幾乎不可能實現需要本地硬件或者操作系統支持的功能。
1.3 Hybrid APP
Hybrid APP開發模式,即混合開發模式。前兩種開發模式都有了一定的使用歷史,而且其應用優點和缺點都極為的極端,所以開發者在強烈的需求中催生出了這種中合后的新型開發模式,這種模式建立于第三方技術方提供跨平臺開發框架之上,我們可以只使用一種編程語言開發出多平臺都可以使用的app。
2 三種開發模式的環境配置及APP運行
2.1 Hybrid APP的PhoneGap開發框架
PhoneGap框架由Nitobi公司推出,從根上講是基于Web APP的理念(不幸的是這家公司已經被業界毒瘤adobe收購,筆者對此深表遺憾),該公司對其框架的官方定義是:使用了web技術的移動端本地應用程序,其所使用的語言統一為html5??偠灾摽蚣芷鋵嵕褪墙⒃趆tml5這門強大web語言基礎之上的移動端開放模式。
PhoneGap最為卓越和成功的地方在于它成功地將java web技術移植到了移動設備之上,所以對于那些擁有過多年java web開放經驗的程序員來說,他們在此框架內進行移動端app的開發會更為得心應手,無論是html5還是css或者js都在本框架的兼容范圍之內。PhoneGap框架的兼容能力是無以倫比的,主流的ios、Android和wp都是他的核心支持名單之上,開發者可以很輕松利用該框架避免多次的重復開發,同時該框架吸收了native app的一些強大特性,提供給開發者一部分穩定的api允許他們安全可靠的調用手機的聯系人列表、GPS數據或者使用手機的攝像頭和麥克風。更為令人可喜的是該框架是完全免費的,這對于一些中小型的獨立工作室來說是巨大的福音。不過強大兼容性和泛型的背后是大量計算消耗作為代價,所以此框架開發出來的APP運行速度較為緩慢,同時在對本地硬件資源的利用率上也完全不如native app模式。
2.2 PhoneGap APP開發環境搭建
開發PhoneGap APP可以使用Dreamweaver工具來制作 Java Web 頁面,并使用 PhoneGap Build(PhoneGap的在線編譯云服務)生成安裝包。但如果想測試某一平臺的硬件功能,就必須配置對應的開發環境,再進行編譯和測試。例如安卓開發的SDK工具包提供了手機模擬器,可以在PC機上進行APP測試。
下面介紹在配置好安卓開發環境后,如何使用PhoneGap框架開發應用。首先,下載好PhoneGap的工具包,打開Eclipse后,按照創建步驟,新建一個安卓應用項目。復制cordova-x.x.x.jar文件到項目中的lib文件夾下,右擊該jar文件添加引用。然后,在項目的assets目錄下新建文件,復制PhoneGap工具包內的cordova.js文件到個文件夾下,并創建Ja-va Web運行的級聯樣式表,Html文件和其他js文件。
2.3 Native APP的開發環境配置及APP運行
上一節已經說過,native app開發模式是本地開發模式,所以對于每一種不同的操作系統,所使用的框架和編程平臺都是不同的,比如蘋果手機的ios系統需要使用switch語言或者傳統的obj-c語言,Android手機一般使用java進行開發,但是在Android更新到5.0增加了C++虛擬機后,也開始廣泛的使用C++進行安卓手機上的大型應用的開發,wp手機使用的則是微軟自家經典的.net平臺和C#語言。
3 HTML5對開發模式的影響
3.1 HTML5的新特性
HTML5能夠成為現在最被看好的web語言的一個核心理由就是他通過獨有的技術實現了離線存儲功能,也就是說即使手機的網絡暫時斷開了,用戶在使用應用的時候也可以憑借緩存文件繼續進行一段時間的交互,這樣就極大的避免了web app受到的網絡性能的限制,同時html5的交叉定位api也使得原本web app極差的定位短板得到了有效的彌補。所以說HTML5是在WEB APP的基礎之上的又一次重大飛躍。
為了適應移動設備,HTML5頁面的表單元素可與鍵盤形成對應,不同輸入對應不同鍵盤,以節省屏幕中鍵盤占用的空間。HTML5放棄了Flash插件,提供了Canvas繪圖API來,開發者只需編寫Ja-vaScript實現動畫效果,提高了穩定性。新加入的視頻和音頻元素,為開發者統一了使用規范,再也無需安裝插件。移動設備上不通過嵌入音頻或視頻來達到效果而是使用多個組件來實現。
同時作為一門腳本語言,html5最為卓越的進步在于它具有了JS多線程的特性,這是極大的性能提升,所以用戶在運行HTML5的APP時,手機系統是在多線程的進行多項任務的,這對于當下動輒4核乃至8核的手機CPU來說,無異于是好馬配好鞍。
3.2 應用商店
手機上的五花八門、千差萬別,但是對于絕大部分用戶來說他們下載安裝APP往往都是在幾個核心的大IT公司提供的應用商店內進行的,而這幾家最大的應用商店背后的公司同時也分別是手機操作系統的持有方。比如我們拿最為優秀的例子蘋果商店來說,對于如今硬件上已經幾乎沒有明顯差距的智能機硬件時代來講,蘋果手機之所以能夠牢牢占據銷量的綁手,依靠的正是他安全可靠同時內容又豐富多彩的應用商店,其實如果我們追根溯源的話就會發現應用商店的概念發揚光法者也正是蘋果上一任傳奇CEO史蒂夫喬布斯。喬布斯制定了一系列嚴格的手段將所有蘋果系統應用開發者集中到統一平臺上進行管理,同時也對開發者發布的每一個APP和每一次更新都嚴格把關,從而形成了如今優秀而又卓越的蘋果應用商店。
喬布斯的成功在于他意識到了用戶真正的需求是什么,對于一個手機用戶來說,其實他們并不在意自己手里的小東西在硬件上有多么牛逼的參數,又或者他使用的軟件采用了多么優秀的算法和優化策略,我們往往只在乎最終呈現給我們的結果是不是好的,這個軟件夠不夠流暢、穩定才是我們真正所在乎的。喬布斯正是認識到了這點,所以他在推出幾乎完全由蘋果設計和訂制的手機本體之外,他還悍然的建立了唯一的應用發布平臺,使得在蘋果手機上運行的每一款APP都是經過了嚴格審核的,都是被確認足夠適應于蘋果手機的才會被放出來。
當然成功的案例背后也有一定的缺陷,蘋果商店的這種嚴格限制其實從某種意義上也限制 了其平臺上web app的發展。與此相反的是,完全開源的安卓系統上就有百花齊放的各類web app提供給人們使用。這促使了安卓平臺山雖然APP的質量良莠不齊,但是善于使用和挑選APP的年輕群體其實更青睞于安卓手機,因為他能通過更豐富的app獲得更多的功能實現。
4 結語
Web應用是云時代下的大勢所趨,而從web app上走出來的Hybrid APP模式就是順應技術潮流誕生的新貴,雖然目前從最終性能上不能盡如人意,但是相信隨著html5的不斷發展,該模式肯定還可能更加優秀,其前景是很可觀的。相信在未來移動端越來越強大,其范圍越來越廣泛的時候,WEB應用會成為唯一存活下來的技術核心。
參考文獻
[1]李莉,張超然,劉丹,李紀成.移動APP開發模式研究[J].長春理工大學學報(自然科學版),2016,(05):110-114+126.
[2]李新星,許倩,張筱倩,明均仁.面向湖北省35所本科高校圖書館的移動APP調查與分析[J].圖書館學研究,2016,(09):18-23.
[3]楊毅.移動APP開發模式探討[J].福建電腦,2014,(06):86-87.
[4]顧春來.APP應用程序開發模式探究[J].硅谷,2014,(05):35-36.
[5]黃悅深.基于HTML5的移動Web App開發[J].圖書館雜志,2014,33(7):72-77.