為什麼安卓會比iOS卡頓,背後的原因其實很簡單

安卓黨和iOS黨都一直爭論一個問題,手機系統誰更好,但是都各有各的優勢,但是手機用久都是會卡頓,蘋果也不例外,畢竟有很多人跟我說他們自用的iPhone也會卡,所以只有安卓機用久會卡就太片面了,只是iOS相比較來說會沒安卓的卡,但是為什麼呢?

我們都知道安卓機打開應用,你就算退出了程序,依然會在後臺運行,要手動關閉,如果不關閉後臺,應用都在後臺運行,自然覺得卡了,而蘋果沒有這個煩惱,這是為什麼呢?

系統後臺機制各不同

Android系統

安卓系統是java編寫

這個時候就要說到系統後臺機制的問題了,Android大多數應用,是沒有退出設計,其實有一定道理,這個就跟系統對進程的調度機制有關係,安卓的系統是java編寫的,懂java原理的就明白了,類似java的垃圾回收機制。

系統有一個規則來回收內存,進行內存調度,這個是有個閥值,只有低於這個值,系統才會按一個列表,來關閉用戶不需要的東西,但是這個值的默認設置得很小,所以會看到內存,一直在很少的數值徘徊,其實這個

不會影響到速度,反而會加快下次打開這個應用的速度,這就是安卓系統的優勢之一。

為何內存少的時候會有卡頓、運行緩慢的情況?

因為在內存不多的情況下,打開大型程序,就會觸發系統自身的調進程,調度策略,這是十分消耗系統資源的操作,尤其是一個程序頻繁的向系統申請內存的時候,系統就會選擇性的關閉進程,在頻繁調度的情況下,自然會拖慢系統。

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

這樣的話下載一些清除管理內存的軟件有沒有必要呢?這是有的,就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,可以顯著的提高運行速度,但是一些小程序就可以交給系統自己管理。

不關閉後臺,是否會更耗電?

這個要說到安卓後臺的原理,當應用在切換到後臺時候,其實已經暫停運作,並不會消耗CPU資源,只保留運行狀態,所以為什麼有的程序切換出去,重新進入應用會回到主界面。

但是如果想在後臺處理一些東西,例如音樂播放,他就會開啟一個服務,服務在後臺持續運行,所以也只有帶服務的應用才會在後臺耗電。

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

所以這也是安卓的一個優點,沒帶後臺服務的應用不會有任何耗電,沒有關的必要,下次打開應用速度還會更快,因為不用讀取界面資源。

為何安卓應用耗內存?

大家知道,安卓Android上的應用是java,當然需要虛擬機,而安卓Android 上的應用是帶有獨立虛擬機的,也就是每開一個應用,就會打開一個獨立的虛擬機,這樣設計的原因是可以避免虛擬機崩潰導致整個系統崩潰,但代價就是需要更多內存。

iOS系統

iOS是Obiective-C編寫

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

iOS是用Obiective-C(是擴充C的面向對象編程語言)編寫的,執行效率高,專一性強,iPhone是Mac出的封閉手機系統,iPhone相對要穩定,不開放源代碼的,擴展相對不足,移植性很好!

因為是Objective-C編寫,所以從眾面小,不能定製UI界面,只能進行功能解鎖,比如越獄。

iPhone 的後臺機制模式有四種:

一、無後臺僅推送

僅有蘋果推送機制,這種方式出現在iOS 3.x以下的大部分系統版本上。這個方式下,應用在按下Home鍵後即會關閉退出,其數據通過蘋果搭建的推送服務器傳輸,並不需要應用後臺運行。

這種方式 不太好的原因在於,每次推出後,重新進入均需要重新加載,雖然推送能夠統一解決數據和信息的傳輸,但遇到需要頻繁進入應用(如聊天APP)的時候便會顯得體驗不好。

二、墓碑式

這在iOS 4後被大量採用,也就是人們所說的偽多任務。這方式相比較第一種改進的地方在於,按下Home鍵至主界面後,應用隨即進入後臺,但其被凍結,並不能進行任何操作。

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

三、智能調度後臺

iOS 7新增的background fetch,這個後臺接口在蘋果WWDC 2013(全球開發者大會WWDC)上有提及,其會根據用戶行為自動調整達到效率最優的後臺模式,能夠處理不是很有時效性的信息獲取。

例如一些社交、新聞類的應用的後臺信息更 新,iOS系統便會根據應用啟動頻率、時間和當前網絡和電量的狀況來智能分配每個應用的後臺獲取頻率和啟動時長。

由於擁有該接口的應用的數據後臺刷新操作是統一調度的,因此系統可以在一個進程裡面獲得多個應用的數據,類似統一的推送機制,這樣就能夠最大限度地省電。

不過這個方式也有一個缺點,那便是開發者不能設定數據具體什麼時候更新,因此這個後臺方式只能應用在一些時效性和敏感度不高的地方。

四、真後臺

但iOS的真後臺與Android的後臺機制是不一樣的,為了兼顧系統體驗和統一進程管理,iOS在這上面加入了眾多的限制。

多任務處理

iOS提供最廣泛的基於標準的物理和邏輯協議接口——超過業界任何其他供應商:從雙絞線到光纖,從局域網到園區網到廣域網,Novell NetWare(Novell NetWare是美國開發的一種網絡操作系統。上個世紀90年代Novell系統成為證券交易的標準配置,一個NetWare卷可以由一個物理硬盤組成,也可以增加另外的硬盤對這個捲進行擴容。),UNIX(UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統。)SNA(SNA是IBM公司開發的網絡體系結構,簡單的歷史回顧,有助於瞭解集中、分層的SNA是如何適應今天的對等通信、客戶機/服務器模式的。)以及其他許多接口。即是說,一個圍繞iOS建立的網絡將支持非常廣泛的應用。

iOS的多任務處理其實很聰明,系統會自動終止在背景執行的程序,在有需要時,也會將被中止的程式suspended(注:"中止的程式"不是指關閉程序,而是指由前臺轉向後臺的程序,程序在後臺並不真正運行,不要和關閉程序混淆了)從內存中移除。因此,iOS 裝置的使用者根本就不需要擔心怎麼管理這些執行中或不在執行中的程序,儘管放心用、輕鬆玩就是了!

所謂多任務,無非是CPU速度夠快而足以支撐極短時間內在多個進程內動作罷了。而所謂的“單任務”,無非是隻能讓當前任務獨享資源罷了。

iOS和安卓的區別

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

從開發語言上來說IOS是objective-c,而Android開發語言是Java,明顯是C語言的效率要高些。

其次,就是系統的優先度來說,通俗點說IOS系統最先響應的是屏幕,而Android屏幕響應只是其第三響應級別;第三, iOS和設備緊密集成,軟硬件一家公司通吃。

但是Android無法做到, 通常的情況是:Google放出源代碼。 芯片廠商需要1-3個月來做自己的芯片方案, 手機廠商從芯片廠商處買到方案和代碼, 進行自己的集成,定製工作,有時候還需要針對運營商進行定製,所以各種魚龍混雜。

安卓和iOS系統的優缺點

總結來說,ios優勢封閉式的環境帶給用戶不錯的操作體驗,整個系統運行非常順暢,毫無卡頓感,精美的動畫把每一次切換都銜接得天衣無縫,在APP store這個全世界最好的應用商店裡,你可以盡情下載喜歡的應用程序,高質量的APP,進過優化的遊戲,充分發揮手機性能,即使性能差,也可以有良好的操作體驗。

缺點整個系統毫無樂趣,千篇一律的UI,整天看著一排排圖標真是乏味,無論幹什麼都要進行設置,連接電腦也得要iTunes。

為什麼安卓會比iOS卡頓,背後的原因其實很簡單

而安卓優勢隨心所欲的主屏幕,去美化板塊看看吧,裡面的的美化是越獄後的iOS也望塵莫及的。

快捷的桌面widget(鎖機界面上的天氣、微博等小組件就是Widget

,強大的通知欄,你可以通過通知欄快速開關WIFI等,甚至可以直接在通知欄回短信,通知欄是安卓最有力的王牌功能。

缺點:系統碎片化,APP質量不高。新系統沒人用,老版本用戶一大群。開源造成安卓系統今天這個混亂的局面。市場的垃圾程序如山,走流量傳廣告,甚至官方市場裡也有黃色應用。


分享到:


相關文章: