解析后臺進(jìn)程對Android性能影響的詳解
Android現(xiàn)在這么火,各種的設(shè)備也是琳瑯滿目,高中低等,大小屏幕都有,但是它始終未能達(dá)到iOS那樣的令人稱贊的卓越體驗和性能,其操作的流暢度,性能和安全性方面總是略輸iOS一籌。據(jù)說iPhone4雖然是單核512M內(nèi)存,但是比Android的雙核1G內(nèi)存的操作起來更流暢,iPad2雖然是也只有512M的內(nèi)存但是操作起來比Android四核1G內(nèi)存還要流暢。另外在安全性方面也不如iOS。
造成Android性能,待機(jī)時間,操作流暢和安全性不好的原因是Android后臺進(jìn)程的管理。
Android的進(jìn)程管理很差勁,這也是它性能差的原因,操作的流暢性,待機(jī)時間,性能都跟進(jìn)程管理,特別是后臺進(jìn)程的管理有很大關(guān)系。打開手機(jī)一看,有幾十條進(jìn)程在跑,比如短信,郵件,輸入法等系統(tǒng)核心應(yīng)用,另外還有很多很應(yīng)用也都在后臺運(yùn)行,不管是否是用戶啟動的,很多應(yīng)用都在后面跑,這點已經(jīng)成為Android用戶最受困擾的地方。更為可氣的是很多進(jìn)程用任務(wù)管理器,進(jìn)程殺手等工具殺都?xì)⒉坏簟?/P>
主要的原因就是Android中的關(guān)鍵的組件都有著過長的生命周期,比如BroadcastReceiver和Service,還有就是線程的不正當(dāng)應(yīng)用。Service就是專門用于在后臺長期運(yùn)行的組件,用以在后臺完成長期的任務(wù)比如在后臺播放歌曲,在后臺接收郵件和短信等等。BroadcastReceiver是一種長期存在的組件,它正常時候是處于不活躍的,只有當(dāng)其感興趣的Intent廣播出現(xiàn)時就被激活,雖然它不活躍,但是它依然活著,它所在的進(jìn)程依然運(yùn)行。此外,Activity也可以長期的運(yùn)行,通過moveTaskToBack()就可以不銷毀的把Activity放到后臺去,或者在Activity中運(yùn)行Thread,如果在Activity銷毀時沒把Thread停止,那么Thread就會仍然運(yùn)行,進(jìn)程就會仍然運(yùn)行。
這是Android系統(tǒng)架構(gòu)決定的,對于有組件在運(yùn)行的進(jìn)程,即使用任務(wù)管理器把它殺掉,那么ActivityManager還會把這個進(jìn)程重啟。所以對于Android的程序來講,需要開發(fā)者的努力才能正確的應(yīng)用這些組件讓應(yīng)用在用戶用到的時候運(yùn)行,不需要的時候就完全退出。
但是造成現(xiàn)在大多數(shù)的應(yīng)用都在后臺偷偷的跑的原因還主要是Android開發(fā)者的原因。
眾所周知,Android開發(fā)者盈利并不是很好,所以開發(fā)者就不愿意在優(yōu)化性能方面做太多的精力投入,因為它無法得到回報。
另外就是,因為無法盈利,所以就讓程序在后臺跑,收集收集一些用戶的使用習(xí)慣和一些數(shù)據(jù)等,以便作為后續(xù)開發(fā)的參考數(shù)據(jù)。
iOS的設(shè)備就沒有這樣的情況,它對于后臺進(jìn)程的控制相當(dāng)?shù)膰?yán)格,程序退出了,就是退出了,另外在它的近期應(yīng)用條中(雙擊Home鍵,或四指觸摸向上拉),長按應(yīng)用后,點擊左上方的頭號,即可關(guān)閉應(yīng)用,而且關(guān)閉了應(yīng)用不會再次啟動,除非用戶啟動它。這里不管應(yīng)用是否真正退出了,至少從用戶角度來看是退出了。
- Android應(yīng)用開發(fā)SharedPreferences存儲數(shù)據(jù)的使用方法
- Android 動畫之TranslateAnimation應(yīng)用詳解
- Android 動畫之ScaleAnimation應(yīng)用詳解
- Android開發(fā)中多進(jìn)程共享數(shù)據(jù)簡析
- Android 多進(jìn)程資料總結(jié)
- Android 進(jìn)程間通信實現(xiàn)原理分析
- Android應(yīng)用程序四大組件之使用AIDL如何實現(xiàn)跨進(jìn)程調(diào)用Service
- Android編程防止進(jìn)程被第三方軟件殺死的方法
- Android結(jié)束進(jìn)程的方法詳解
- Android中應(yīng)用多進(jìn)程的整理總結(jié)
相關(guān)文章
Android如何讓APP無法在指定的系統(tǒng)版本上運(yùn)行(實現(xiàn)方法)
這篇文章主要介紹了Android如何讓APP無法在指定的系統(tǒng)版本上運(yùn)行(實現(xiàn)方法),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02