重點在於Android有Memory Leak以及Resource Manage的問題加上本身Android是Open Source在安全性來說絕絕對對得比其他系統來的安全性低!以PC的OS來解釋Android像是Windows 2000
memory leak 主要發生的原因還是 app 開發者在寫程式時的一些疏忽, 這與 Android 或 iOS 並沒有直接的關係.
另外, 嚴格的說起來 iOS的 Objective-C App 產生 memory leak 的機會比 android Java App 大的多.
因為 Java 本身有 GC 機制, 在 JVM 查覺到在這程式的生命周期內不可能會再使用到的記憶體區塊都會自動的釋放,
且 Java 的程式也可以去呼叫 System.gc() 來建議 jvm 要做 gc 的動作 讓記憶體分配下去卻使用不到的機會大大降低!
反觀 objective-C 這種古代的語言根本就沒有 gc 的機制, 緊管後來他們查覺到現在先進一些的程式語言都有 gc 機制, 有加入了這個功能,
但是在 iOS 上這個功能是無效的!
何來 Android 的系統有 Memory Leak 的問題?
另外, Resource Management 的部份, 並不是說 Android 系統做的比 iOS 差, 相反的 Linux kernel 比起古代的過時的 Darwin kernel, 不管是 resource 分配或是穩定性其實都是大大的好過 Darwin kernel的.
您會有這種錯誤的觀念是因為你是從使用者的角度去看這兩套系統, 而並不真正了解這兩套系統的歷史.
以使用者的角度來說, iOS 一堆東西都要錢, 而非 Android 系統一堆東西免費; 在 iPhone 手機上您裝的 app 若是 10 個, 同樣的人在操作 android 時往往會忘我的裝下 30 個!
又, iOS 系統的 app 一次開一個, 程式間的往返都幾乎等於是只有你眼前在操作的 app 在動, 剩下的都跑去背景休綿; 反觀 android 的 app 三五個都同時在運作, 充份發揮他多功的能力!
再來, 一個系統安不安全與是不是 OpenSource 根本沒有太直接的關係.
反觀, 正因為是 OpenSource 的, 大家都看的到原程式碼的情況下, 有心人想要植入惡意行為的程式碼會更加的困難, 加上是 OpenSource 的關係, 有 bug 出來通常都是在幾天, 甚至幾小時內就會有解決的辦法. 而 Darwin 有問題時, 只有 apple 公司可以去找問題, 一個 bug report 他們可以裝死或是等個半年才出更新.
之前我剛開始買了台 Mac 回來想玩玩新的系統, 只是想測試一下 8 thread 全都跑到 100% 時系統會怎麼樣, 所以在 shell 下只是簡單的跑 cat /dev/urandom > /dev/null, 吃到第 5 個 thread 而已系統就快不行了, 還沒跑到第 8 個 apple 就當機了.
同樣的動作在 Linux 系統上, 跑個 20個, load avg 跑到 30 了都還可以讓你 ssh 進去 kill, 過程中甚至不會感覺到一點點的不順暢
Linux 一整個比 Darwin 先進數倍.
是甚麼地方可以讓你認為 Android 是 PC 上的 Windows 2000? @_@
事實上, Android 就是 Linux, 而 iOS 是 Darwin!
誇張一點來比喻, Windows 2000 kernel 的技術上甚至超越 iOS 的 Darwin kernel...
親身體驗過這兩種系統後, 我很後誨買這台 MBPR...