馬上註冊  |  找回密碼

SAY討論區

查看: 187|回復: 11
打印 上一主題 下一主題

科普:Android的多任務機制 [複製鏈接]

好友
0
帖子
132401
積分
140276
最後登錄
2019-2-28
在線時間
0 小時
跳轉到指定樓層
樓主
發表於 2014-6-10 18:35:02 |只看該作者 |正序瀏覽
想當年,清內存的習慣由來已久。在Android還沒出生,我們使用 Windows 時,總巴不得把所有沒有用到的進程關掉,這樣才不會“占內存”,不會“占 CPU ”,電腦才不會“卡”。(大部分的“安全軟件”就是靠幫用戶在Windows上清內存,清垃圾而揚名)這算是清內存的歷史原因。然而Android跟Windows 相比,是完全不同的內存管理機制…(PS :Android基於Linux的內核,繼承並改進了Linux的內存管理機制。)
Android的內存管理機制:
有多少內存就用多少,空閑內存全部當緩存。也就是,當一個進程停止活動,Windows 會把它從內存中清除,但Android會把進程保留在內存裡,這樣下次啟動時就會非常快,因為省去了再次從儲存設備讀取的時間,隻有當內存不足以啟動一個新進程時,Android才會清除某些駐留在內存中停止活動的進程。
每個進程以Java虛擬機獨立存在,互不幹擾。確保Android的穩定性,正常情況下即使單個進程崩潰,整個系統也不會崩潰,也永遠沒有內存不足的提示出現。
以上,可以解釋Android剩餘內存總是很少的原因。“但是,進程在後臺運行會耗電耗流量的啊?”這個繼續解釋……
Android的多任務機制:
當進程被切換到後臺時,系統暫停進程。不消耗cpu資源,隻在內存保留運行狀態,並根據應用本身設置優先級。
七個優先級:
- 前臺進程。顧名思義,你當前屏幕正在顯示的進程。
- 可見進程。隨時需要待命的進程,例如隨時需要召喚出來的輸入法。
- 主要服務。系統的必須服務,例如電話。
- 次要服務。與系統關系密切的服務,例如Gmail的郵件推送服務。
- 後臺進程。同樣顧名思義,就是剛剛被你切換到後臺的進程。
- 內容供應節點。沒有應用實體,僅提供內容供別的應用去用的,比如日歷供應節點,郵件供應節點等。
- 空進程。沒有任何東西在運行的進程,有些應用在退出後,依然會在進程中駐留一個空進程,這樣的作用是提高該應用下次的啟動速度或記錄一些歷史信息。
結論
綜上,正常的用戶應用在退出之後要不就成為後臺進程,要不就成為空進程。這些進程已經暫停了運行,不占用 CPU 資源和電量。在內存不足,用戶需要打開另外的應用時,就會自動清除掉,所以完全不需要清理內存。相反有時清理了內存之後系統反而需要用大量的電量和 CPU 去重啟必要的進程。
可是為什麼有些應用在關掉了之後仍然會耗費電量和流量呢?唯一的答案是,這是一個不安分的應用。應用作者在寫應用的時候就為應用申請了各種各樣的主要服務和次要服務,導致用戶退出後仍然繼續運行。
sqnh55dygbq41.jpg
分享分享0 收藏收藏0 讚好讚好0 Unlike!Unlike!0 分享 傳送 邀請

好友
0
帖子
124595
積分
124602
最後登錄
2019-2-28
在線時間
0 小時
12#
發表於 2014-6-14 10:51:41 |只看該作者
頂下再看

好友
0
帖子
124595
積分
124602
最後登錄
2019-2-28
在線時間
0 小時
11#
發表於 2014-6-11 05:44:32 |只看該作者
先頂後看  

好友
0
帖子
132401
積分
140276
最後登錄
2019-2-28
在線時間
0 小時
10#
發表於 2014-6-11 04:46:11 |只看該作者
說的不錯

好友
0
帖子
124715
積分
124721
最後登錄
2019-2-28
在線時間
0 小時
9#
發表於 2014-6-11 03:34:42 |只看該作者
頂.支持,路過.

好友
0
帖子
129971
積分
135466
最後登錄
2019-2-28
在線時間
0 小時
8#
發表於 2014-6-11 02:56:00 |只看該作者
這篇帖子,我還是第一次在這看到

好友
0
帖子
124360
積分
124372
最後登錄
2019-2-28
在線時間
0 小時
7#
發表於 2014-6-10 23:13:41 |只看該作者
不錯的東西  持續關注

好友
0
帖子
135443
積分
146309
最後登錄
2019-2-28
在線時間
0 小時
6#
發表於 2014-6-10 23:13:38 |只看該作者
我十目一行也還是看不懂啊

好友
0
帖子
124390
積分
124397
最後登錄
2019-2-28
在線時間
0 小時
5#
發表於 2014-6-10 22:15:09 |只看該作者
謝謝樓主啊!

好友
0
帖子
125379
積分
125399
最後登錄
2019-2-28
在線時間
0 小時
跟尾3
發表於 2014-6-10 21:29:03 |只看該作者
不錯啊! 一個字牛啊!
您需要登錄後才可以回帖 登錄 | 馬上註冊 |

Archiver|手機版|SAY討論區

GMT+8, 2026-7-10 01:37 , Processed in 0.781402 second(s), 11 queries .

Powered by go2tutor.comDiscuz! X2

© 2026 Community Networks Limited

回頂部