雜談:後台進程對Android效能的影響

來源:互聯網
上載者:User

Android現在這麼火,各種的裝置也是琳琅滿目,高中低等,大小螢幕都有,但是它始終未能達到iOS那樣的令人稱讚的卓越體驗和效能,其操作的流暢度,效能和安全性方面總是略輸iOS一籌。據說iPhone4雖然是單核512M記憶體,但是比Android的雙核1G記憶體的操作起來更流暢,iPad2雖然是也只有512M的記憶體但是操作起來比Android四核1G記憶體還要流暢。另外在安全性方面也不如iOS。

造成Android效能,待機時間,操作流暢和安全性不好的原因是Android後台進程的管理。

Android的進程管理很差勁,這也是它效能差的原因,操作的流暢性,待機時間,效能都跟進程管理,特別是後台進程的管理有很大關係。開啟手機一看,有幾十條進程在跑,比如簡訊,郵件,IME等系統核心應用,另外還有很多很應用也都在後台運行,不管是否是使用者啟動的,很多應用都在後面跑,這點已經成為Android使用者最受困擾的地方。更為可氣的是很多進程用工作管理員,進程殺手等工具殺都殺不掉。

主要的原因就是Android中的關鍵的組件都有著過長的生命週期,比如BroadcastReceiver和Service,還有就是線程的不正當應用。Service就是專門用於在後台長期啟動並執行組件,用以在後台完成長期的任務比如在背景播放歌曲,在後台內送郵件和簡訊等等。BroadcastReceiver是一種長期存在的組件,它正常時候是處於不活躍的,只有當其感興趣的Intent廣播出現時就被啟用,雖然它不活躍,但是它依然活著,它所在的進程依然運行。此外,Activity也可以長期的運行,通過moveTaskToBack()就可以不銷毀的把Activity放到後台去,或者在Activity中運行Thread,如果在Activity銷毀時沒把Thread停止,那麼Thread就會仍然運行,進程就會仍然運行。

這是Android系統架構決定的,對於有組件在啟動並執行進程,即使用工作管理員把它殺掉,那麼ActivityManager還會把這個進程重啟。所以對於Android的程式來講,需要開發人員的努力才能正確的應用這些組件讓應用在使用者用到的時候運行,不需要的時候就完全退出。

但是造成現在大多數的應用都在後台偷偷的跑的原因還主要是Android開發人員的原因。

眾所周知,Android開發人員盈利並不是很好,所以開發人員就不願意在最佳化效能方面做太多的精力投入,因為它無法得到回報。

另外就是,因為無法盈利,所以就讓程式在後台跑,收集收集一些使用者的使用習慣和一些資料等,以便作為後續開發的參考資料。

iOS的裝置就沒有這樣的情況,它對於後台進程的控制相當的嚴格,程式退出了,就是退出了,另外在它的近期應用條中(雙擊Home鍵,或四指觸摸向上拉),長按應用後,點擊左上方的頭號,即可關閉應用,而且關閉了應用不會再次啟動,除非使用者啟動它。這裡不管應用是否真正退出了,至少從使用者角度來看是退出了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.