Android現(xiàn)在這么火,各種的設(shè)備也是琳瑯滿(mǎn)目,高中低等,大小屏幕都有,但是它始終未能達(dá)到iOS那樣的令人稱(chēng)贊的卓越體驗(yàn)和性能,其操作的流暢度,性能和安全性方面總是略輸iOS一籌。據(jù)說(shuō)iPhone4雖然是單核512M內(nèi)存,但是比Android的雙核1G內(nèi)存的操作起來(lái)更流暢,iPad2雖然是也只有512M的內(nèi)存但是操作起來(lái)比Android四核1G內(nèi)存還要流暢。另外在安全性方面也不如iOS。
造成Android性能,待機(jī)時(shí)間,操作流暢和安全性不好的原因是Android后臺(tái)進(jìn)程的管理。
Android的進(jìn)程管理很差勁,這也是它性能差的原因,操作的流暢性,待機(jī)時(shí)間,性能都跟進(jìn)程管理,特別是后臺(tái)進(jìn)程的管理有很大關(guān)系。打開(kāi)手機(jī)一看,有幾十條進(jìn)程在跑,比如短信,郵件,輸入法等系統(tǒng)核心應(yīng)用,另外還有很多很應(yīng)用也都在后臺(tái)運(yùn)行,不管是否是用戶(hù)啟動(dòng)的,很多應(yīng)用都在后面跑,這點(diǎn)已經(jīng)成為Android用戶(hù)最受困擾的地方。更為可氣的是很多進(jìn)程用任務(wù)管理器,進(jìn)程殺手等工具殺都?xì)⒉坏簟?/P>
主要的原因就是Android中的關(guān)鍵的組件都有著過(guò)長(zhǎng)的生命周期,比如BroadcastReceiver和Service,還有就是線(xiàn)程的不正當(dāng)應(yīng)用。Service就是專(zhuān)門(mén)用于在后臺(tái)長(zhǎng)期運(yùn)行的組件,用以在后臺(tái)完成長(zhǎng)期的任務(wù)比如在后臺(tái)播放歌曲,在后臺(tái)接收郵件和短信等等。BroadcastReceiver是一種長(zhǎng)期存在的組件,它正常時(shí)候是處于不活躍的,只有當(dāng)其感興趣的Intent廣播出現(xiàn)時(shí)就被激活,雖然它不活躍,但是它依然活著,它所在的進(jìn)程依然運(yùn)行。此外,Activity也可以長(zhǎng)期的運(yùn)行,通過(guò)moveTaskToBack()就可以不銷(xiāo)毀的把Activity放到后臺(tái)去,或者在Activity中運(yùn)行Thread,如果在Activity銷(xiāo)毀時(shí)沒(méi)把Thread停止,那么Thread就會(huì)仍然運(yùn)行,進(jìn)程就會(huì)仍然運(yùn)行。
這是Android系統(tǒng)架構(gòu)決定的,對(duì)于有組件在運(yùn)行的進(jìn)程,即使用任務(wù)管理器把它殺掉,那么ActivityManager還會(huì)把這個(gè)進(jìn)程重啟。所以對(duì)于Android的程序來(lái)講,需要開(kāi)發(fā)者的努力才能正確的應(yīng)用這些組件讓?xiě)?yīng)用在用戶(hù)用到的時(shí)候運(yùn)行,不需要的時(shí)候就完全退出。
但是造成現(xiàn)在大多數(shù)的應(yīng)用都在后臺(tái)偷偷的跑的原因還主要是Android開(kāi)發(fā)者的原因。
眾所周知,Android開(kāi)發(fā)者盈利并不是很好,所以開(kāi)發(fā)者就不愿意在優(yōu)化性能方面做太多的精力投入,因?yàn)樗鼰o(wú)法得到回報(bào)。
另外就是,因?yàn)闊o(wú)法盈利,所以就讓程序在后臺(tái)跑,收集收集一些用戶(hù)的使用習(xí)慣和一些數(shù)據(jù)等,以便作為后續(xù)開(kāi)發(fā)的參考數(shù)據(jù)。
iOS的設(shè)備就沒(méi)有這樣的情況,它對(duì)于后臺(tái)進(jìn)程的控制相當(dāng)?shù)膰?yán)格,程序退出了,就是退出了,另外在它的近期應(yīng)用條中(雙擊Home鍵,或四指觸摸向上拉),長(zhǎng)按應(yīng)用后,點(diǎn)擊左上方的頭號(hào),即可關(guān)閉應(yīng)用,而且關(guān)閉了應(yīng)用不會(huì)再次啟動(dòng),除非用戶(hù)啟動(dòng)它。這里不管應(yīng)用是否真正退出了,至少?gòu)挠脩?hù)角度來(lái)看是退出了。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注