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

九大角度全方位對比Android、iOS開發(fā)

移動開發(fā)
對于許多創(chuàng)業(yè)者來說,選擇Android還是iOS永遠是一個棘手的問題。最近,有數(shù)據(jù)顯示Android 的市場份額已經(jīng)突破80%。可能有不少人會覺得因此開發(fā)者在兩個平臺之間的選擇就更加容易,畢竟市場決定利潤。

對于許多創(chuàng)業(yè)者來說,選擇Android還是iOS永遠是一個棘手的問題。最近,有數(shù)據(jù)顯示Android 的市場份額已經(jīng)突破80%。可能有不少人會覺得因此開發(fā)者在兩個平臺之間的選擇就更加容易,畢竟市場決定利潤。但事實上并不一定如此。軟件工程師、TechCrunch專欄作者Jon Evans從開發(fā)環(huán)境、配置、UX設計、語言、API、網(wǎng)絡、分享、碎片化、發(fā)布等九個方面把Android和iOS平臺做一次PK。

有人認為,目前ios在體驗上更勝一籌,但在整個趨勢來看,Android已經(jīng)擄走了互聯(lián)網(wǎng)電視,可穿戴設備,物聯(lián)網(wǎng)的大半江山,在未來能創(chuàng)造更多價值的開源硬件上,也取得了良好的系統(tǒng)支持。
Android才會是最大的贏家。

[[90002]]

開發(fā)環(huán)境

許多人會用純文本或者命令行寫代碼,但利用一個集成開發(fā)環(huán)境或者IDE顯然更加有效率。

蘋果的開發(fā)環(huán)境是Xcode,具有運行速度快、功能強大且安全性高不易被入侵等特點。且隨著不斷完善優(yōu)化,Xcode詭異的編譯機制以及強加給開發(fā)者的那些有關iOS應用程序?qū)υO備控制權的復雜證書機制也逐漸被開發(fā)者所忽略。且Xcode的調(diào)試器能夠無縫完美調(diào)試Bug,模擬器的響應速度也非常快。

再回頭來看看Android。目前最先進的IDE是利用Android插件定制的Eclipse,非常糟糕。運行緩慢、笨拙等缺點顯而易見,Android碎片化也帶來了不必要的復雜性。調(diào)試器非常糙,大部分時間讓開發(fā)者自己在日志文件中除錯,而Xcode則提供了除錯工具。而模擬器,往往需要幾分鐘時間才能夠啟動,還常常會連接不上Android Debug Bridge。

谷歌也已經(jīng)發(fā)現(xiàn)了問題,現(xiàn)在他們準備推出一個新的Android Studio IDE:Android Studio目前為試用版本。

Android Studio大家真是褒貶不一。從最新的版來看,仍有不少功能不完整或尚未實現(xiàn),所以您可能會遇到一些未知的錯誤信息。如果您不愿意使用一個未完成的產(chǎn)品,您可以下載(或繼續(xù))使用ADT Bundle(通過ADT插件定制的Eclipse)。

能夠看到谷歌開始努力聽起來是不錯的,但,不知道猴年馬月才能完整的實現(xiàn)。

結(jié)論:顯然,iOS勝出。

配置

正如前面寫到的,在Xcode與Objective-C的完美搭配之下,隱藏著令人恐怖的編譯機制。開發(fā)者需要面對宏、頭文件、項目、計劃以及構(gòu)建配置等一大串構(gòu)建配置的列表。當遇到一個莫名其妙的連接器錯誤時,是不是有人會徹底絕望,雖然提示里寫著:“噢,你的第三方代碼不支持ARC,添加 –fno-objc-arc 標志即可解決!很簡單不是嗎?”

Android則相對簡單的的,它有一個單獨的manifest文件,當開發(fā)者保存任何文件時,Eclipse通常會在整個系統(tǒng)中構(gòu)建一次應用。當然,在權限沒有配置正確導致應用程序不能運行的情況下,要是能夠給出更明確的提示就好了??傮w來說,Android應用的配置相對簡單容易。

結(jié)論:Android勝出

用戶體驗設計

在這一項對比中,相信大多人都認為覺得蘋果是勝者。Interface Builder是Mac OS X平臺下用于設計和測試用戶界面(GUI)的應用程序。雖然Mac OS X下所有的用戶界面元素都可以使用代碼直接生成;但IB能夠使開發(fā)者簡單快捷的開發(fā)出符合Mac OS X human-interface guidelines的GUI。通常開發(fā)者只需要通過簡單的拖拽(drag-n-drop)操作來構(gòu)建GUI就可以了。IB使用Nib文件儲存GUI資源,同時適用于Cocoa和Carbon程序。在需要的時候,Nib文件可以被快速地載入內(nèi)存。

理論上將,Android平臺也有一個具有可比性的可視化工具,但還是不提了吧。Android平臺上應用的開發(fā)將會面對各式各樣不同的屏幕尺寸,這是它不可忽視的問題。當然,iOS設備的尺寸也在逐漸多樣化,iOS平臺未來也一定會面臨一樣的問題。當然,Android也向開發(fā)者提供了icon包幫助開發(fā)者更加容易的完成UX設計。不過,iOS開發(fā)者也可以利用一些第三方的icon包,比如Icons8。

在這項對比上,iOS尤其特殊的優(yōu)勢。首先,屏幕種類相對更加簡單,只有三種(iPad、iPad mini及iPhone)尺寸和兩種分辨率;其次是其默認的iOS視覺元素如彈出式菜單和消息,比Android的視覺效果更有吸引力。

結(jié)論:iOS更勝一籌

語言

Android是利用Java;iOS利用Objective-C。當然,也有例外,如Xamarin。相比Java,Objective-C顯得較為啰嗦,比如,在Java中的這句定義字符串的語句:

  1. String 
  2. s2 
  3. s1.replace(“abc”,”xyz”); 
  4.   

到Objective-C中變成了:

  1. NSString 
  2. *s2 
  3. [s1 
  4. stringByReplacingOccurrencesOfString:@"abc" 
  5. withString:@"xyz"]; 
  6.   

但用Objective-C時間久了就會發(fā)現(xiàn)比Java更好更干凈。Objective-C有代碼塊,Java沒有;它有類別(categories),Java沒有。Objective-C不需要開發(fā)者去用try/catch進行異常處理,Java需要。

當然,Java有其自己的優(yōu)點。比如更好的堆棧追蹤,這意味著追蹤零星的錯誤更加容易。在幾年前,Android在垃圾回收機制上一直有巨大的優(yōu)勢。而現(xiàn)在,iOS平臺上有了自動引用計數(shù),Android的優(yōu)勢也漸漸消失了。

結(jié)論:iOS的Objective-C勝出

API

Android和iOS都給自己的開發(fā)者提供了巨大的軟件庫,廣義上講,這些庫基本類似:提供手機功能及特點的API、提供網(wǎng)絡訪問功能、提供包括功能強大的WebView(基本上可以實現(xiàn)一個完整瀏覽器的功能)在內(nèi)的全套視圖對象。最重要的是同時還提供控制器,基本上iOS ViewController與Android Acticity十分類似。

iOS提供了一組Android不具備的框架和特性——比如,沒有一款Android系統(tǒng)能夠提供媲美iOS Core Data framework的框架或其它特性。并且,iOS比Android更加干凈,有著更好的設計。

另一個指標(有爭議):代碼行數(shù)。對于擁有相近功能的某個應用來說,iOS平臺上通常利用1596行代碼就可實現(xiàn),包括頭文件,而對于Android上的Java代碼及XML,則需要2109行,多了32%。

結(jié)論:iOS更優(yōu)

網(wǎng)絡通信實現(xiàn)

現(xiàn)在大多數(shù)應用都采用互聯(lián)網(wǎng)API,iOS和Android都提供了一整套工具和API幫助開發(fā)者實現(xiàn)這樣的功能,都提供了非常類似的WebView——基本上相當于一個瀏覽器窗口,開發(fā)者可以將其插入到應用程序的任何位置。

網(wǎng)絡連接基本上都是在后臺運行的,所以一般不會阻塞應用的主線程,多線程難度比較大。Android提供了一個AsyncTask類來解決類似的問題,雖然有些冗長,但效果很好。Android另外還提供了一個簡單的方法來判斷用戶是否在線。iOS也提供了差不多的東西,但相比之下顯得低級,令人并不是那么滿意。

不過,也有一些開源庫能夠幫助開發(fā)者更好的實現(xiàn)iOS上的網(wǎng)絡通信功能,比如AFNetworking。不過這個在Android上實現(xiàn)不了,因為Java不支持代碼塊。

結(jié)論:不考慮第三方庫的情況下,Android有優(yōu)勢,而iOS在第三方庫上具有優(yōu)勢。

分享

從應用中分享內(nèi)容到社交網(wǎng)絡上到底有多容易?原以為這是Android的一大利器,因為Android很早之前就有了一個功能強大的應用內(nèi)通信系統(tǒng)Intents。通常情況下,Android仍然能夠比較方便的實現(xiàn)應用之間的數(shù)據(jù)分享。

而在分享上,iOS已經(jīng)基本追趕上Android了。這個大家可以自己判斷下,GitHub上有兩份有關分享Scanvine故事的源代碼:Android版、iOS版。iOS代碼比較長一點,因為我在其中加了一些Google Analytics代碼。

結(jié)論:旗鼓相當

碎片化問題

這點的對比就無需多言了,Android的碎片化問題一直飽受詬病。但值得注意的是,谷歌正在著手進行碎片化整理工作,值得期待一下。

結(jié)論:顯而易見,Android的問題嚴重

應用發(fā)布

Android平臺應用的發(fā)布非常簡單,只需要通過一個簡單的Eclipse引導簽署你的應用,然后開發(fā)者就能擁有一個可以在任何Android平臺運行的APK文件。然后開發(fā)者可以將這個APK文件發(fā)布到各種平臺上進行推廣,用戶安裝即可。如果應用在使用中出現(xiàn)了問題,出現(xiàn)代碼錯誤,開發(fā)者也能馬上上傳修復的版本供用戶下載。

而在iOS平臺上發(fā)布一款應用簡直就是一場噩夢。單在創(chuàng)建證書及Distribution Profiles環(huán)節(jié),不少開發(fā)者就需要花費一天的時間來搞定。而測試工作,如果不是有TestFlight這樣的應用,絕對是難以描述的糟糕。

結(jié)論:Android大勝

綜合來看,iOS比Android更有優(yōu)勢。雖然Android有自己的一些優(yōu)勢,但顯然開發(fā)一款優(yōu)秀的iOS應用比開發(fā)一款Android應用更加容易。除自身因素之外,iOS用戶人群相對高端(富裕、甚至可能有影響力),所以大部分開發(fā)者會選擇iOS平臺作為應用開發(fā)的第一平臺。

責任編輯:張葉青 來源: eoe Android開發(fā)者社區(qū)
相關推薦

2011-04-22 09:05:26

2022-08-27 21:31:04

Tauri框架二進制

2011-03-21 15:08:56

MongoDBCouchDB

2021-08-24 07:57:26

KafkaRocketMQPulsar

2017-09-13 15:37:53

2011-12-14 10:33:35

云計算

2009-07-15 08:25:42

微軟Windows 7性能測試

2016-12-14 14:43:11

ButterknifeAndroid

2016-12-28 09:41:45

2019-09-18 15:22:52

消息中間件RabbitMQ

2019-11-13 14:43:12

容器云平臺軟件

2010-01-27 13:52:15

Android多媒體框

2010-08-04 14:15:44

nfs服務

2009-12-16 13:44:43

路由器IOS恢復

2019-03-04 14:27:03

數(shù)據(jù)科學面試HR

2014-09-25 14:29:03

測評郵箱APP

2011-10-18 16:13:38

2023-08-02 11:39:11

鏈路追蹤技術微服務

2009-12-15 10:10:42

Ruby過程對象

2009-10-26 13:41:49

機房監(jiān)控
點贊
收藏

51CTO技術棧公眾號