解析學ios還是學android好呢?

Android和iOS那個好?
應該先往哪個上面投入資源?
多次被人問到此類問題,筆者剛好自己的項目也需要考慮iOS版本。就索性進行了一番調研,於是有了本文(本次不討論越獄的iOS)
首先從情感上,你喜歡哪個就好,就像百事可樂和可口可樂,當然這個比喻不是很恰當,因爲可樂喝起來幾乎一樣,但是Android和iOS還是有很大差別的。
 
iOS來源於Apple的OSX,是UNIX系統,OSX已經有差不多10年的歷史,從內核底層到軟件架構都是逐步發展過來的。iOS使用ObjectivC這個古老的語言來做開發。而Android是Google基於Linux搞來的,嚴格意義上講Android並不是一個Linux系統,它沒有Linux的xwin,沒有glibc,缺乏一整套標準的Linux程序。Android應用絕大部分都是使用JAVA開發,跑在Dalvik虛擬機上(一小部分使用NDK)。 Google在底層也修改了很多東西。Android算是一個全新的操作系統所以:
Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,開發效率會高些
iOS沒有虛擬機也沒有GC,性能要好一些,當然這個差別會隨着Google的改進越來越小
iOS的開發框架很成熟,而且和MAC上通用,同樣的知識體系,也可以開發MAC應用,Android相比是全新的框架還會繼續進化.
 
 iOS和設備緊密集成。軟硬件一家公司通吃。但是Android無法做到, 通常的情況是:Google放出源代碼。 芯片廠商需要1-3個月來做自己的芯片方案, 手機廠商從芯片廠商處買到方案和代碼, 進行自己的集成,定製工作,有時候還需要針對運營商進行定製。 所以: 
iOS的設備集成度和驅動優化都是最好的。電源管理一塊就可見一斑,而Android廠商就魚龍混雜。可能排頭的廠商的旗艦機器會好些,但是由於Android工期一般都比iOS設備短(請看HTC和三星出機器的速度),所以整體上和iOS比是有差距的。
Android天然存在升級週期延遲的問題, 而且廠商做升級是也是有成本的。賣手機的廠商無法顧及整個生態鏈,目前這個無解,除非Google做點什麼。
由於有多家廠商自己做定製,Android還存在設備的分裂問題(fragmentation), 作爲過來人,我告訴你這個是很頭痛的事情, 且不論調試時間和人力, 光買一大堆設備的成本就不小。最關鍵的是它會傷美工/UE的心。
 
iOS是被Apple嚴格控制的系統。 在大部分情況下, 第三方應用是無法拿到所有API的。 這意味系統級別的很多功能只有Apple能做(比如打電話,攔截短信)。此外一些涉及用戶隱私的API還會導致系統彈出對話框詢問用戶。 同樣第三方runtime做應用開發也是基本不可行的(Flash當初也是被這個條款拒過)。 反過來Android完全不一樣,首先Android是開源的,在設計上Android就允許自由替換系統組件, Android也沒有強制限制API的情況,(hidden API也可以call,沒有人會找你麻煩)。 系統級別的權限是下放到廠商手中,如果廠商願意給,那第三方開發者就可以做任何事情。 普通應用的權限認證也是在安裝的時候就一次性授權完成。 之後不會騷擾用戶。所以:
Android平臺可以做的事情遠遠比iOS多, 你可以做電話管理,地址簿,短信管理,可以自己跑後臺service。 替換掉系統的組件非常容易
Android平臺也可以跑其他系統的Runtime, 比如Flash, 有了NDK, 你要自己接入一個虛擬機也是可能的。Google不會管你
任何人可以拿Android自己改個獨立的系統出來,也許這樣做的意義和前景有問題,但是同樣,沒有人限制你
 
 iOS上唯一的下載應用途徑就是Appstore,開發者做應用上線還要通過Apple審覈,就算通過了,如果掛羊頭賣狗肉亂來或者調用了不該用的API, Apple一樣隨時可以下架。管理非常嚴格。反過來Android上非常鬆懈:
廠商可以內置應用。經常會扔一些莫名其妙的軟件預裝在手機上筆者在廠商的時候深刻體會到亂選軟件是很好玩的事情。而且我們不會讓你刪除掉的。
Google的官方菜市場不做應用審覈,開發者上傳軟件很隨意,這是個自由市場。
國內還存在大量第三方軟件菜市場。以及豌豆夾類似的PC端管理軟件。
如果用戶選擇允許“未知來源”,那麼通過web下載或者安裝卡上的軟件也是可以的。似乎國內用戶都是允許的。所以:
iOS上的精品軟件多,競爭激烈但管理有序,開發者也容易掙錢。
Android上雖然也有精品軟件,但是垃圾軟件更多, 甚至有惡意軟件。 因爲無門檻,基本上軟件都是免費,賣不起錢, 大部分都靠廣告。
Android還有一堆殺毒軟件,這是典型的“沒有困難,製造困難也要上”的精神。
Android上還有一堆安慰劑軟件,比如能幫你省電的或者是幫你殺後臺進程的來提升性能的, 筆者作爲做過底層開發的人,笑而不語。
 
 
寫了這麼多分析, 結論呢? 事實上你是什麼樣的角色,決定了用誰更好。
如果你是普通用戶,請關貼, 本文不是用來給普通用戶選機的。
如果你是一個個人軟件開發者,  iOS適合你, 市場規範, 做應用省心。
如果你是一個軟件和服務的創業公司, iOS也是適合你做demo的和第一個產品的, 產品靠譜了,用戶在用了,有人給錢了,再往Android走也是可行的。 除非你做的應用要涉及硬件或者需要非常高的系統權限, 如果是那樣你也只有選擇Android。因爲國內的廠商肯定要比蘋果要容易談下來。
如果你是一個要做硬件和系統定製的公司, 那麼基本上你只有Android可以選。Android的解決方案的成本也在不斷下降。
如果你是一個有中國特色的公司,想搞點移動業務玩玩, 還要瞞着用戶做很多事情。  那麼Android也是更好的, 就算你不作惡, 控制權在自己手中也會方便運作一點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章