當前位置:編程學習大全網 - 編程語言 - 為什麽安卓系統用久了會卡,蘋果系統卻依然流暢?誰能科普下,比較容易懂?

為什麽安卓系統用久了會卡,蘋果系統卻依然流暢?誰能科普下,比較容易懂?

蘋果系統的設計和體驗口碑壹直特別好。比如打開控制中心、多任務處理切換,或APP中滾動瀏覽等都會比安卓更流暢、更靈敏。盡管安卓的動畫效果、全面屏手勢等已經可以和蘋果系統硬扛,但整體視覺效果不如蘋果系統。

造成這種現象源於操作系統底層原因。蘋果、安卓系統響應的流程、優先級不壹樣比如鎖屏解鎖時蘋果手機的響應速度會比安卓手機快。蘋果系統對屏幕響應順序為Touch→Media→Service→Core,通俗壹些說就是當用戶觸摸屏幕後,系統會先處理屏幕顯示(Touch),然後才是媒體(Media),服務(Service),架構(Core)。

安卓系統對屏幕響應順序為Application→Framework→Library→Kernal,通俗壹些說就是當用戶觸摸屏幕後,系統會先激活軟件(Application),然後調用框架(Framework),屏幕(圖形圖像處理在Library),架構(Kernal)。

蘋果、安卓系統對硬件加速的表現不壹樣蘋果系統壹開始是為觸摸屏幕交互而設計的,而安卓的設計初衷是為運行更多軟件的兼容平臺而開發。蘋果系統對圖形特效處理基本都是基於專用的GPU硬件,而不用完全借助CPU,通過GPU的渲染可以達到更流暢的操控表現。

安卓系統需要適配不同硬件來滿足各種廠商的差異化硬件配置,它的設計邏輯也不是為了觸控服務。雖然在安卓4之後默認都開啟了GPU硬件進行加速渲染,但仍然無法做到所有圖形特效都靠GPU進行加速。

蘋果、安卓系統的後臺機制不壹樣蘋果系統的後臺機制:當用戶按HOME鍵退出軟件時,系統就直接關閉了該軟件,只保留了軟件的圖像作為再次打開的入口,並默認將軟件的最後運行數據記錄在內存中。當用戶再次打開軟件時,系統就會把之前保存的最後運行數據還原到軟件中,給用戶壹種錯覺,認為軟件壹直在後臺運行。

安卓系統的後臺機制:當用戶按主頁鍵返回桌面或退出軟件時,軟件並沒有關閉而是整個保存在內存中,軟件僅僅只是從前臺掛到了後臺。

這就是為什麽安卓就算關掉了軟件,還是能夠接收到軟件的消息通知,因為軟件壹直都在後臺運行。

為什麽蘋果也能收到軟件的推送消息?用戶開啟了軟件的推送後,軟件服務器推送信息會發送到蘋果的服務器,再通過服務器發送給用戶,而不需要軟件開啟。

後臺機制的不同直接導致蘋果手機雖然內存比安卓手機的低,但還是會給人感覺使用起來更加流暢。蘋果、安卓系統的開發機制不壹樣蘋果系統的編程語言是Objective-C,編譯器是GCC。GCC編譯出來的代碼在蘋果系統運行可謂達到極致,運行過程不需要虛擬機,執行效率非常高。並且GCC自己分配和回收內存,所以蘋果系統的內存使用率並不高,並不需要像安卓那樣需要特別大的內存。

安卓系統的編程語言是Java,Java內存管理是通過jvm,並不需要程序關註內存。當內存使用量達到壹定量時就會觸發gc(gc會把用戶線程停止掉)。這就造成了安卓系統卡頓的等待時間長達幾秒甚至幾分鐘。

安卓的所有軟件都是運行在壹個虛擬的環境中,由底層傳輸數據到虛擬機中,再由虛擬機傳遞給系統UI,在這種情況下任何軟件都可以輕松訪問其他軟件的文件。同時gc內存占用到壹定程度才會回收內存,導致安卓的內存使用率很高。雖然安卓4開始編程語言和機制已經改善很多,卡頓現象也明顯降低了,但還是不如蘋果系統。蘋果、安卓軟件的開發機制不壹樣APP

Store上的每壹個軟件壹年頂多適配兩種CPU,極大的提高了硬件利用率和軟件的開發速度。

而安卓是開源,給開發人員很高的開發自由空間,並且兼容各種各樣的硬件,軟件可以天馬行空不受管制。

所以安卓飽受“流氓”軟件的迫害,系統的流暢度和整潔度遠比不上蘋果。但安卓系統對軟件的操作也越來越規範。蘋果手機也並不是不會卡,當系統更新再更新,每次系統更新都會給舊版本的手機帶來壹定的壓力。雖然響應級別、硬件加速、後臺機制、開發機制和軟件開發等因素造成了安卓不如蘋果流暢,但好在安卓的硬件配置趕超了蘋果壹大截,安卓手機系統和軟件運行流暢度和美觀已經不弱於蘋果系統。

以上個人淺見,歡迎批評指正。認同我的看法,請點個贊再走,感謝!喜歡我的,請關註我,再次感謝!

  • 上一篇:轉運珠手鏈編法視頻
  • 下一篇:哪位學長學電子信息工程專業的,替我講講這專業出來主要幹什麽啊
  • copyright 2024編程學習大全網