為什么不需要清內(nèi)存?想當(dāng)年,清內(nèi)存的習(xí)慣由來已久。在 Android 還沒出生,我們使用 Windows 時(shí),總巴不得把所有沒有用到的進(jìn)程關(guān)掉,這樣才不會(huì)“占內(nèi)存”,不會(huì)“占 CPU ”,電腦才不會(huì)“卡”。(大部分的“安全軟件”就是靠幫用戶在 Windows 上清內(nèi)存,清垃圾而揚(yáng)名)這算是清內(nèi)存的歷史原因。然而 Android 跟 Windows 相比,是完全不同的內(nèi)存管理機(jī)制… 背景: Android 基于 Linux 的內(nèi)核,繼承并改進(jìn)了 Linux 的內(nèi)存管理機(jī)制。 Android 的內(nèi)存管理機(jī)制:
以上,可以解釋 Android 剩余內(nèi)存總是很少的原因。“但是,進(jìn)程在后臺(tái)運(yùn)行會(huì)耗電耗流量的?。俊边@個(gè)繼續(xù)解釋…… Android 的多任務(wù)機(jī)制:當(dāng)進(jìn)程被切換到后臺(tái)時(shí),系統(tǒng)暫停進(jìn)程。不消耗cpu資源,只在內(nèi)存保留運(yùn)行狀態(tài),并根據(jù)應(yīng)用本身設(shè)置優(yōu)先級(jí)。 七個(gè)優(yōu)先級(jí):
結(jié)論綜上,正常的用戶應(yīng)用在退出之后要不就成為后臺(tái)進(jìn)程,要不就成為空進(jìn)程。這些進(jìn)程已經(jīng)暫停了運(yùn)行,不占用 CPU 資源和電量。在內(nèi)存不足,用戶需要打開另外的應(yīng)用時(shí),就會(huì)自動(dòng)清除掉,所以完全不需要清理內(nèi)存。相反有時(shí)清理了內(nèi)存之后系統(tǒng)反而需要用大量的電量和 CPU 去重啟必要的進(jìn)程。 可是為什么有些應(yīng)用在關(guān)掉了之后仍然會(huì)耗費(fèi)電量和流量呢?唯一的答案是,這是一個(gè)不安分的應(yīng)用。應(yīng)用作者在寫應(yīng)用的時(shí)候就為應(yīng)用申請了各種各樣的主要服務(wù)和次要服務(wù),導(dǎo)致用戶退出后仍然繼續(xù)運(yùn)行。(所以后臺(tái)運(yùn)行最牢固的就是那些在你下拉通知欄的“XX電池醫(yī)生”和“XX手機(jī)助手”。)這種現(xiàn)象在一些國產(chǎn)應(yīng)用上尤其常見。面對這些亂七八糟的沒良心的應(yīng)用和應(yīng)用作者,果斷把它卸載并沖到臭水溝里面去吧,差評! |
|