日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

九个角度分析对比 Android、iOS开发区别

發(fā)布時(shí)間:2023/12/14 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 九个角度分析对比 Android、iOS开发区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)于創(chuàng)業(yè)的人來(lái)講,選擇Android還是iOS是一個(gè)棘手的問(wèn)題。有數(shù)據(jù)顯示Android 的市場(chǎng)份額突破80%。有不少人會(huì)覺(jué)得開(kāi)發(fā)者在兩個(gè)平臺(tái)之間的選擇就更加容易,畢竟市場(chǎng)決定利潤(rùn)。但事實(shí)上并非如此。今天從開(kāi)發(fā)環(huán)境、配置、UX設(shè)計(jì)、語(yǔ)言、API、網(wǎng)絡(luò)、分享、碎片化、發(fā)布等九個(gè)方面把Android和iOS平臺(tái)做一次PK。


網(wǎng)絡(luò)通信實(shí)現(xiàn)

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

網(wǎng)絡(luò)連接上都是在后臺(tái)運(yùn)行的,一般不會(huì)阻塞應(yīng)用的主線程,多線程難度比較大。Android提供了一個(gè)AsyncTask類來(lái)解決類似的問(wèn)題,雖然有些冗長(zhǎng),但效果很好。Android另外還提供了一個(gè)簡(jiǎn)單方法來(lái)判斷用戶是否在線。iOS也提供了差不多的東西,但相比之下有些低級(jí),令人不是很滿意。

不過(guò),也有一些開(kāi)源庫(kù)能夠幫助開(kāi)發(fā)者更好的實(shí)現(xiàn)iOS上的網(wǎng)絡(luò)通信功能,比如AFNetworking。不過(guò)這個(gè)在Android上實(shí)現(xiàn)不了,因?yàn)镴ava不支持代碼塊。

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

分享

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

而在分享上,iOS已經(jīng)基本追趕上Android了。這個(gè)大家可以自己判斷下,GitHub上有兩份有關(guān)分享Scanvine故事的源代碼:Android版、iOS版。iOS代碼比較長(zhǎng)一點(diǎn),因?yàn)槲以谄渲屑恿艘恍〨oogle Analytics代碼。

結(jié)論:旗鼓相當(dāng)


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

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

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

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

谷歌也已經(jīng)發(fā)現(xiàn)了問(wèn)題,現(xiàn)在他們準(zhǔn)備推出一個(gè)新的Android Studio IDE:

Android Studio目前為試用版本。仍有不少功能不完整或尚未實(shí)現(xiàn),所以您可能會(huì)遇到一些未知的錯(cuò)誤信息。如果您不愿意使用一個(gè)未完成的產(chǎn)品,您可以下載(或繼續(xù))使用ADT Bundle(通過(guò)ADT插件定制的Eclipse)。

能夠看到谷歌開(kāi)始努力聽(tīng)起來(lái)是不錯(cuò)的,但不知道猴年馬月才能完整的實(shí)現(xiàn)。

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

配置

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

Android則相對(duì)簡(jiǎn)單的的,它有一個(gè)單獨(dú)的manifest文件,當(dāng)開(kāi)發(fā)者保存任何文件時(shí),Eclipse通常會(huì)在整個(gè)系統(tǒng)中構(gòu)建一次應(yīng)用。當(dāng)然,在權(quán)限沒(méi)有配置正確導(dǎo)致應(yīng)用程序不能運(yùn)行的情況下,要是能夠給出更明確的提示就好了。總體講,Android應(yīng)用的配置相對(duì)簡(jiǎn)單容易。

結(jié)論:Android勝出

語(yǔ)言

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

String s2 = s1.replace(“abc”,”xyz”);

到Objective-C中變成了:

NSString *s2 = [s1 stringByReplacingOccurrencesOfString:@"abc" withString:@"xyz"];

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

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

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

API

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

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

另一個(gè)指標(biāo)(有爭(zhēng)議):代碼行數(shù)。對(duì)于擁有相近功能的某個(gè)應(yīng)用來(lái)說(shuō),iOS平臺(tái)上通常利用1596行代碼就可實(shí)現(xiàn),包括頭文件,而對(duì)于Android上的Java代碼及XML,則需要2109行,多了32%。

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

用戶體驗(yàn)設(shè)計(jì)

這一項(xiàng)對(duì)比中大多人會(huì)覺(jué)得蘋(píng)果是勝者。Interface Builder是Mac OS X平臺(tái)下用于設(shè)計(jì)和測(cè)試用戶界面(GUI)的應(yīng)用程序。雖然Mac OS X下所有的用戶界面元素都可以使用代碼直接生成;但I(xiàn)B能夠使開(kāi)發(fā)者簡(jiǎn)單快捷的開(kāi)發(fā)出符合Mac OS X human-interface guidelines的GUI。通常開(kāi)發(fā)者只需要通過(guò)簡(jiǎn)單的拖拽(drag-n-drop)操作來(lái)構(gòu)建GUI就可以了。IB使用Nib文件儲(chǔ)存GUI資源,同時(shí)適用于Cocoa和Carbon程序。在需要的時(shí)候,Nib文件可以被快速地載入內(nèi)存。

理論上說(shuō),Android平臺(tái)也有一個(gè)具有可比性的可視化工具。Android平臺(tái)上應(yīng)用的開(kāi)發(fā)將會(huì)面對(duì)各式各樣不同的屏幕尺寸,這是它不可忽視的問(wèn)題。當(dāng)然,iOS設(shè)備的尺寸也在逐漸多樣化,iOS平臺(tái)未來(lái)一定會(huì)面臨一樣的問(wèn)題。當(dāng)然,Android也向開(kāi)發(fā)者提供了icon包幫助開(kāi)發(fā)者更加容易的完成UX設(shè)計(jì)。不過(guò),iOS開(kāi)發(fā)者也可以利用一些第三方的icon包,比如Icons8。

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

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

碎片化問(wèn)題

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

結(jié)論:顯而易見(jiàn),Android的問(wèn)題嚴(yán)重

應(yīng)用發(fā)布

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

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

結(jié)論:Android大勝

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

github主頁(yè):https://github.com/chenyufeng1991? 。歡迎大家訪問(wèn)!

總結(jié)

以上是生活随笔為你收集整理的九个角度分析对比 Android、iOS开发区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。