安卓的后臺(tái)程序?yàn)槭裁搓P(guān)不掉?如果運(yùn)行內(nèi)存大,是不是就不需要關(guān)閉了?
相信很多Android的用戶也都有過這樣的經(jīng)歷,后臺(tái)程序關(guān)閉后,過不了一段時(shí)間某個(gè)程序就會(huì)自動(dòng)啟用,這些自啟的程序?qū)τ谝恍┯袕?qiáng)迫癥習(xí)慣的用戶來說特別難受,那今天小編就借此機(jī)會(huì)給大家講一下為什么Android的后臺(tái)程序關(guān)不掉。
關(guān)于Android的后臺(tái)一直關(guān)不掉的問題,其實(shí)完全是因?yàn)?a target="_blank">Android的廣播機(jī)制。簡(jiǎn)單來說,當(dāng)用戶安裝某一個(gè)程序的時(shí)候,系統(tǒng)會(huì)像面試官一樣把這個(gè)程序的功能記錄下來,當(dāng)用戶在使用手機(jī)時(shí),系統(tǒng)狀態(tài)的變化會(huì)產(chǎn)生各種事件,這些事件需要一些程序來處理的時(shí)候,系統(tǒng)會(huì)發(fā)送廣播消息,而這些能處理這件事的程序會(huì)被啟用,究竟是用哪一個(gè)程序,這個(gè)是由系統(tǒng)默認(rèn)的程序或者由用戶選擇的程序來處理這個(gè)事件。
舉個(gè)例子:就如同你開了一家公司,Android是你的管家,那些程序則是來你這里應(yīng)聘的職工,管家會(huì)記錄這些職工的能力,例如A會(huì)搓澡,B會(huì)大保健。當(dāng)你想要搓澡的時(shí)候,管家會(huì)叫A過來幫你搓澡。當(dāng)你想要大保健的時(shí)候,管家會(huì)叫B過來給你做個(gè)大保健。哪怕這個(gè)程序是在休眠中,也會(huì)被叫起來。也就是不管你怎么去關(guān)閉這些應(yīng)用程序,當(dāng)需要它的時(shí)候,它就是一顆螺絲釘,哪里需要哪里釘。
當(dāng)然還有一些你不需要的程序也一直在自啟動(dòng),這是因?yàn)槔娴脑颍瑖鴥?nèi)的很多流氓軟件都改變了自身程序的優(yōu)先性,外加增加了終止其他程序的權(quán)限,還有增加守護(hù)進(jìn)程的功能,當(dāng)檢測(cè)到自己人被干掉了,直接一個(gè)復(fù)活術(shù)讓這個(gè)程序滿血滿藍(lán)原地復(fù)活。而另外一些社交軟件則是為了保證能夠及時(shí)推送消息,也會(huì)做出一些優(yōu)先權(quán)的改變。
如果運(yùn)行內(nèi)存大,是不是就不需要關(guān)閉了?
其實(shí)Android系統(tǒng)設(shè)計(jì)的理念就是要淡化用戶對(duì)后臺(tái)的管理,手機(jī)資源的分配完全交給系統(tǒng)就可以。Android會(huì)設(shè)定一個(gè)閾值,這個(gè)閾值默認(rèn)設(shè)置的非常小,所以我們所看到內(nèi)存剩余量也會(huì)很少,事實(shí)上并不會(huì)影響手機(jī)的速度,而且它有一個(gè)自己的規(guī)則來回收這些內(nèi)存,當(dāng)內(nèi)存使用達(dá)到臨界值的時(shí)候,再次打開另一個(gè)程序系統(tǒng)會(huì)選擇一些重要性比較低的程序關(guān)閉來騰出內(nèi)存給這個(gè)程序運(yùn)行。
而我們之所以感覺手機(jī)在打開某個(gè)大型程序會(huì)慢的原因就是當(dāng)你打開這個(gè)程序的時(shí)候,這個(gè)程序會(huì)向系統(tǒng)申請(qǐng)內(nèi)存,由于系統(tǒng)不會(huì)關(guān)閉所有的進(jìn)程,只是選擇性的去關(guān)閉,所以會(huì)調(diào)動(dòng)大量的系統(tǒng)資源進(jìn)行操作,自然也就會(huì)拖慢系統(tǒng)。改變系統(tǒng)的閾值會(huì)改善很多,但是也可能會(huì)帶來一些問題。
所以,后臺(tái)的程序本身就不需要關(guān)閉,如果當(dāng)你運(yùn)行某個(gè)大型程序的時(shí)候可以去手動(dòng)關(guān)閉,這樣可以顯著的提高速度,而平常使用的時(shí)候則不需要去管它。至于內(nèi)存的大小,這個(gè)除非你內(nèi)存大到一定程度,否則你安裝N多APP早晚又會(huì)達(dá)到這個(gè)閾值的。