IOS和Android的區別[轉]


首先聲明:此文章轉自別人,尊重原作者。

http://woshao.com/article/6d348c701bcc11e19f9d000c29fa3b3a/

 

 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沒有虛擬機,性能要好一些,當然這個差別會隨着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也是更好的, 就算你不作惡, 控制權在自己手中也會方便運作一點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM