Android進程與線程解析,android進程解析

來源:互聯網
上載者:User

Android進程與線程解析,android進程解析

當一個應用組件開始並且該應用沒有其他組件在啟動並執行時候,Android系統便為該應用建立一個包含了一個正在啟動並執行線程的Linux進程。

預設情況下,一個應用的所有組件都在一個相同的進程和線程(叫做主線程)中運行。如果一個應用組件開始運行而且該應用中已經存在了一個進程(這是由於該應用中其他組件的存在),則該組件在該進程中開始並使用相同的線程去執行。

然而,你可以在你的應用中安排不同的的組件在不同的進程中執行,並且你可以為任何進程建立額外的線程。

進程

預設情況下,一個相同的應用中所有的組件都運行在相同的一個進程中,而且大多數應用都不應該有例外。然而,如果你需要去控制一個確切的組件應該屬於哪一個進程,則可以在mainfest檔案中進行如下操作:

android 的 mainfest 檔案為每種類型的組件元素:、、、and 提供入口,這幾種組件元素都支援 android|:process 屬性,該屬性是用來描述一種組件應該運行在什麼進程中的。你可以設定這個屬性,然後每個組件就會運行在它所屬於的進程,或者是部分組件能夠共用進程而其它組件沒有共用,能夠這樣是因為每個應用都共用相同的Linus user ID 並且被分配了相同的認證。

元素同樣支援 android:process屬性,如果設定一個預設值,則可以應用到所有的組件中。

當 Android 系統記憶體不夠或者是其它更加直接服務使用者的進程需要記憶體的時候,系統可能會決策性地殺掉部分進程。當進程被殺掉的時候,進程中所有的組件也會被銷毀。

當系統要決策性殺掉進程的時候,它會權衡每個進程相對於使用者的相對重要程度。例如:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.