回覆列表
-
1 # 科技君的探討
-
2 # DeepLearning
這歸根結底是因為安卓系統採用Java開發應用的原因。
眾所周知,Java向來是吃記憶體大戶,這得歸咎於它的JVM虛擬機器,虛擬機器內部有個垃圾回收器,簡稱GC,它的工作原理我們就不深入探討了,簡而言之,GC會尋找並主動釋放沒有被引用的記憶體。由於程式語言的技術的限制,決定了GC總是不能非常高效的回收記憶體,有些程式設計師寫的糟糕程式碼還導致記憶體洩漏無法回收。
以上就是安卓機吃記憶體的原因,那為什麼安卓機要採用Java來開發應用,這就是谷歌當年的市場策略了,為了與蘋果的iOS抗衡,降低開發門檻,於是就採用開源加上Java的組合搶奪市場份額。
那麼為什麼iOS沒有這個吃記憶體問題?因為iOS的開發語言是 Objective-C或Swift,都是靜態編譯的語言,沒有虛擬機器沒有垃圾回收器!
其中有很多原因的,我簡單說幾個原因,關於儲存記憶體吧。
首先,不僅僅是安卓機,蘋果也是一樣,只不過蘋果在手機軟體有更大的限制。
像安卓機,個人使用者隱私一直是一個問題,但是卻是一直髮生。像一些軟體的捆綁式連線,只要一旦下載了其中一款,那麼全家桶就會向你襲來。同時手機許可權一款應用開始使用時就頻繁跳出,一旦你不給許可權那麼就用不了,最後只得怪怪的給各種各樣的許可權。這一給,軟體就不得了了,各種後臺執行,後臺下載,神不知鬼不覺手機記憶體就滿了,最後不得不格式化。
其次,就是現在各大應用程式開始逐步趨於完善,就拿QQ來說,從曾經的幾十M到現在幾個G,這就是變化,裡面含有巨大的資料包,按照目前的趨勢,軟體一升級記憶體就變大,未來會一直增加,所以手機記憶體需要變大,你買個64G一定不行,一到兩年128GB也遠遠不夠。
最後就是手機框架有所不同,廣告漫天飛,哪天不小心點到,那麼不好意思,你又多軟體程式。