天天看點

Android 和iOS 比較之我見

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上非常松懈:

  1. 廠商可以内置應用。經常會扔一些莫名其妙的軟體預裝在手機上, 筆者在廠商的時候深刻體會到亂選軟體是很好玩的事情。而且我們不會讓你删除掉的。
  2. Google的官方菜市場不做應用稽核,開發者上傳軟體很随意,這是個自由市場。
  3. 國内還存在大量第三方軟體菜市場。以及豌豆夾類似的PC端管理軟體。
  4. 如果使用者選擇允許“未知來源”,那麼通過web下載下傳或者安裝卡上的軟體也是可以的。似乎國内使用者都是允許的。是以:
  • iOS上的精品軟體多,競争激烈但管理有序,開發者也容易掙錢。
  • Android上雖然也有精品軟體,但是垃圾軟體更多, 甚至有惡意軟體。 因為無門檻,基本上軟體都是免費,賣不起錢, 大部分都靠廣告。
  • Android還有一堆防毒軟體,這是典型的“沒有困難,制造困難也要上”的精神。
  • Android上還有一堆安慰劑軟體,比如能幫你省電的或者是幫你殺背景程序的來提升性能的, 筆者作為做過底層開發的人,笑而不語。

寫了這麼多分析, 結論呢? 事實上你是什麼樣的角色,決定了用誰更好。 

  • 如果你是普通使用者,請關貼, 本文不是用來給普通使用者選機的。
  • 如果你是一個個人軟體開發者,  iOS适合你, 市場規範, 做應用省心。 
  • 如果你是一個軟體和服務的創業公司, iOS也是适合你做demo的和第一個産品的, 産品靠譜了,使用者在用了,有人給錢了,再往Android走也是可行的。 除非你做的應用要涉及硬體或者需要非常高的系統權限, 如果是那樣你也隻有選擇Android。因為國内的廠商肯定要比蘋果要容易談下來。
  • 如果你是一個要做硬體和系統定制的公司, 那麼基本上你隻有Android可以選。Android的解決方案的成本也在不斷下降。
  • 如果你是一個有中國特色的公司,想搞點移動業務玩玩, 還要瞞着使用者做很多事情。  那麼Android也是更好的, 就算你不作惡, 控制權在自己手中也會友善運作一點。

轉載于:https://www.cnblogs.com/baoz/archive/2011/12/01/2269933.html