Android 和iOS 比較之我見

來源:互聯網
上載者:User

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也是更好的, 就算你不作惡, 控制權在自己手中也會方便運作一點。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.