簡體   English   中英

Dalvik / JVM如何處理多處理的應用程序

[英]How does Dalvik/JVM handle multi processed apps

我想知道Dalvik實例是按應用程序還是按進程分叉的,也就是說,如果我的應用程序具有多個進程,那么我是否也有多個Dalvik實例? 以及實際上如何進行多重處理?

讓我描述一個簡單的場景:

我啟動了一個應用程序,該應用程序啟動了在第一個過程中運行的活動,然后單擊一個按鈕,該按鈕產生了另一個活動,該活動在另一個過程中開始運行。

因此,當我單擊一個按鈕時,是Dalvik的另一個實例被派生了,而字節代碼是否被新實例化的Dalvik解釋了? 如果屬實,流程切換將如何發生。 假設我回到第一個活動,運行時如何確定現在第一個Dalvik應該解釋字節碼?

活動不是過程。 單個進程/應用程序可以具有許多Activity實例,每個實例基本上都是Java對象。 因此,單擊按鈕以啟動新活動比啟動新流程更類似於創建新實例。

進程切換確實發生時,就像在任何其他基於Unix的操作系統中一樣,在操作系統級別進行處理。 進程可以同時運行,並且在OS認為合適的情況下,可以在處理器上獲得更多或更少的時間。

進行“ 管理活動生命周期后台作業最佳實踐”培訓可能會有所幫助,它將為您提供更多的背景知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM